JavaScript devre dışı. Daha iyi bir deneyim için, önce lütfen tarayıcınızda JavaScript'i etkinleştirin.
BigQuery – Analitik Script Tablosu (Profesyonel Set)
BigQuery – Analitik Script Tablosu (Profesyonel Set) 1) Dataset & Table Yönetim Komutları
Amaç Script Açıklama Dataset oluşturma CREATE SCHEMA `archive.logs`;BigQuery'de “schema” dataset anlamına gelir Tablo oluşturma CREATE TABLE `archive.logs.events` ( id INT64, msg STRING, ts TIMESTAMP );Standart tablo Partitioned table CREATE TABLE `archive.logs.events_partitioned` ( id INT64, msg STRING, ts TIMESTAMP ) PARTITION BY DATE(ts);Zaman bazlı bölümleme Clustered table CREATE TABLE `archive.logs.events_cluster` ( id INT64, msg STRING, ts TIMESTAMP ) CLUSTER BY id;Sorgu maliyetini azaltır Tablo silme DROP TABLE `archive.logs.events`;Geri dönüş yok
2) Veri Ekleme – Insert Komutları
Amaç Script Tek satır ekleme INSERT INTO `archive.logs.events` (id, msg, ts) VALUES (1, 'CPU error', CURRENT_TIMESTAMP());Çoklu satır ekleme INSERT INTO `archive.logs.events` VALUES (2, 'OK', CURRENT_TIMESTAMP()), (3, 'Timeout', CURRENT_TIMESTAMP());JSON’dan yükleme INSERT INTO `archive.logs.events` SELECT * FROM `archive.raw.json_logs`;
3) Temel SELECT & Analitik Sorgular
Amaç Script Veri listeleme SELECT * FROM `archive.logs.events` LIMIT 100;Filtreleme SELECT * FROM `archive.logs.events` WHERE msg LIKE '%error%';Gruplama SELECT msg, COUNT(*) FROM `archive.logs.events` GROUP BY msg;Zaman bazlı analiz SELECT DATE(ts) AS day, COUNT(*) FROM `archive.logs.events` GROUP BY day ORDER BY day;DISTINCT SELECT DISTINCT msg FROM `archive.logs.events`;
4) SQL Analitik Fonksiyonlar (Window Functions) En çok kullanılan analitik fonksiyonlar tablo halinde:
Fonksiyon Script Açıklama ROW_NUMBER SELECT id, msg, ROW_NUMBER() OVER(PARTITION BY msg ORDER BY ts DESC) rn FROM `archive.logs.events`;Sıralı satır numarası RANK SELECT id, msg, RANK() OVER(ORDER BY ts DESC) rnk FROM ...Sıra numarası (eşitlerde atlama) SUM OVER SELECT id, SUM(id) OVER(ORDER BY ts) AS total FROM ...Kümülatif toplam MOVING AVG SELECT AVG(id) OVER(ORDER BY ts ROWS BETWEEN 5 PRECEDING AND CURRENT ROW) AS mov_avg FROM ...Kayar ortalama LEAD/LAG SELECT id, LAG(id) OVER(ORDER BY ts) prev, LEAD(id) OVER(ORDER BY ts) nxt FROM ...Önceki / sonraki değer
5) Nested – JSON – Struct Sorguları
Amaç Script JSON alan içinden veri alma SELECT JSON_VALUE(payload, '$.user.name') FROM `archive.logs.events_json`;STRUCT oluşturma SELECT STRUCT(id, msg) AS obj FROM `archive.logs.events`;ARRAY açma SELECT id, message FROM `archive.logs.events`, UNNEST(tags) AS message;
6) Partition / Cluster Optimizasyon Sorguları
Amaç Script Partition bilgisi SELECT * FROM `archive.logs.__PARTITIONS_SUMMARY__`;Partition filtreleme SELECT * FROM `archive.logs.events_partitioned` WHERE _PARTITIONDATE = DATE('2025-01-10');Cluster optimize edilmiş sorgu SELECT * FROM `archive.logs.events_cluster` WHERE id = 500;
7) BigQuery ML (Makine Öğrenimi) Komutları
Amaç Script Model oluşturma CREATE MODEL `archive.ml.logistic_model` OPTIONS(model_type='logistic_reg') AS SELECT * FROM `archive.dataset`;Model tahmin SELECT * FROM ML.PREDICT(MODEL `archive.ml.logistic_model`, (SELECT * FROM ...));Model değerlendirme SELECT * FROM ML.EVALUATE(MODEL `archive.ml.logistic_model`);
8) BigQuery Storage & Export Komutları
Amaç Script CSV export EXPORT DATA OPTIONS(uri='gs://bucket/data.csv', format='CSV') AS SELECT * FROM `archive.logs.events`;Parquet export EXPORT DATA OPTIONS(uri='gs://bucket/dataset/*.parquet', format='PARQUET') AS SELECT * FROM ...;External table (GCS üzerinden) CREATE EXTERNAL TABLE `archive.ext.logs` OPTIONS (format='CSV', uris=['gs://bucket/logs/*.csv']);
9) Fiyat / Performans Optimizasyon Komutları
Amaç Script Sorgu maliyet tahmini EXPLAIN SELECT * FROM `archive.logs.events`;Sadece ihtiyacı olan kolonları seçme SELECT msg FROM ...; (Full scan cost düşer) Partition filtre şartı WHERE _PARTITIONDATE BETWEEN ...
BigQuery’nin Güçleri & Zayıfları (Kısa Teknik Özet)
Güç Detay Milyarlarca satırda saniyeler içinde sorgu Gerçek analitik motor Sunucusuz (serverless) Bakım yok, cluster yok SQL + ML desteği Dahili ML motoru Sıkıştırılmış kolon bazlı depolama Ucuz, hızlı
Zayıflık Detay Fiyat, yanlış sorguda çok artabilir Fullscan → pahalı DELETE/UPDATE pahalıdır DWH mantığı gereği Sadece analitik için uygundur OLTP için değil