BigQuery Rehberi: Verilerinizden En İyi Şekilde Yararlanmak için İhtiyacınız Olan Her Şey

Günümüzün dijital dünyasında işletmeler, müşteri etkileşimleri, sosyal medya, IoT cihazları, tedarik zincirleri ve iç operasyonlar gibi farklı kaynaklardan büyük miktarda veri üretmektedir. Bu veriler genellikle farklı sistemlerde izole edilmiş halde bulunur ve hem bir zorluk hem de bir fırsat sunar.
Rekabetçi kalabilmek için işletmelerin aşağıdaki nedenlerle merkezi bir veri ambarına ihtiyacı vardır:
- Veri Konsolidasyonu: Farklı veri kümelerini tek bir doğru kaynakta birleştirme
- Gerçek Zamanlı Karar Alma Yeteneği: Dinamik piyasa koşullarına yanıt verebilmek için verileri anında analiz etme
- Ölçeklenebilirlik: Büyüyen işletmelerde verinin üstel artışını yönetme
- İnovasyon: İleri düzey analiz, makine öğrenmesi ve öngörüsel modellemeyi mümkün kılma
BigQuery Nedir?
BigQuery, Google Cloud Platform (GCP) tarafından sunulan tamamen yönetimli ve sunucusuz bir veri ambarı çözümüdür. Büyük ölçekli veri kümelerinde hızlı SQL sorguları ve gelişmiş analizler yapmaya uygun şekilde tasarlanmıştır. Temel özellikleri şunlardır:
- Sunucusuz Mimari: Altyapı yönetimi gerektirmez.
- Ölçeklenebilirlik: Petabaytlarca veriyi zahmetsizce işler.
- Gerçek Zamanlı Analiz: Akan (streaming) verileri neredeyse gerçek zamanlı olarak işler.
- Maliyet Verimliliği: Kullandıkça öde fiyatlandırma modeli sunar.
BigQuery ve CAP Teoremi: BigQuery, CAP Teoremi‘nin AP (Erişilebilirlik ve Bölünme Toleransı) kısmıyla uyumludur. Bu, ağ bölünmeleri durumunda, BigQuery’nin sorguların erişilebilirliğini sürdürmeye öncelik verdiği anlamına gelir. Böylece veritabanının bazı bölümleri erişilemez hale gelse bile sistem çalışmaya devam eder. Ancak, bu durum bölünme sırasında tutarlılıktan ödün verilmesine neden olabilir. Yani sorgular sonuç döndürebilir, ancak her zaman verilerin en güncel halini yansıtmayabilir.
BigQuery, yapılandırılmış ve yarı yapılandırılmış verileri analiz etmek için idealdir. Looker, Data Studio ve makine öğrenmesi altyapılarıyla sorunsuz bir şekilde entegre olur. Sadece bir veri ambarı değil, çeşitli veri ihtiyaçları için kapsamlı çözümler sunan bir platformdur. Modern işletmeler için vazgeçilmezdir.
BigQuery’nin Çok Yönlü Kullanım Alanları
Veritabanı Olarak BigQuery
BigQuery, yapılandırılmış veriler için güçlü bir veritabanı görevi görür. İşletmelerin ilişkisel veri kümelerini SQL tabanlı sorgularla depolamasına, sorgulamasına ve yönetmesine olanak tanır. Gerçek zamanlı analiz ve ACID uyumluluğu gibi özelliklerle hem işlemsel hem de operasyonel iş akışlarını verimli bir şekilde destekler.
Veri Ambarı Olarak BigQuery
BigQuery’nin temel gücü, sunucusuz bir veri ambarı olarak aşağıdaki avantajları sunmasında yatar:
- Merkezi Depolama: Farklı veri akışları için birleşik depolama yapar.
- Hızlı Sorgu Çalıştırma: Büyük ölçekli SQL sorguları için optimize edilmiştir.
- Ölçeklenebilirlik: Petabaytlarca veriyi sorunsuzca işleyebilir.
Bu özellikler, BigQuery’yi ileri düzeydeki analiz, raporlama ve iş zekası görevleri için ideal hale getirir.
Veri Gölü Olarak BigQuery
BigQuery aynı zamanda veri gölü olarak da işlev görür ve JSON, Avro ve Parquet gibi yapılandırılmamış ve yarı yapılandırılmış formatları destekler. Cloud Storage ile entegrasyonu sayesinde, işletmeler ham veri kümelerini ön işlem veya şema tanımı olmadan analiz edebilir. Öne çıkan özellikleri şunlardır:
- Okuma Anında Şema (Schema-on-Read): Yapılandırılmamış veriler üzerinde keşifsel analiz yapılmasını destekler.
- Maliyet Etkin Depolama: Yalnızca sorgulanan veriler için ödeme yapılır.
BigQuery’nin Özellikleri
BigQuery’de Bölümleme (Partitioning)
Bölümleme, tabloları belirli kriterlere göre daha küçük ve yönetilebilir parçalara ayırarak sorgu performansını artırır ve maliyetleri düşürür. Bölümleme türleri şunlardır:
- Zaman Tabanlı Bölümleme: Verileri zaman damgalarına veya tarihlere göre bölümlere ayırır.
- Alım Zamanı Bölümlemesi: Verileri alım zamanına göre otomatik olarak bölümlere ayırır.
- Tam Sayı Aralığı Bölümlemesi: Verileri bir tam sayı sütununa göre bölümlere ayırır.
Diyelim ki; tüm kitapların tek bir odada saklandığı büyük bir kütüphane işletiyorsunuz. Biri bir kitap istediğinde, o kitabı tüm koleksiyon içinde aramak zorunda kalıyor. Bu durum, özellikle binlerce kitap olduğunda, yavaş ve sinir bozucu olabilir.
Sonra akıllıca bir fikir buluyorsunuz: kitapları türlerine göre bölümlere ayırmak. Böylece “Bilim Kurgu” türündeki kitaplar bir bölümde, “Polisiye” türündeki kitaplar başka bir bölümde yer alıyor. Biri bir bilim kurgu kitabı aradığında, sadece “Bilim Kurgu” bölümünde arama yapması yeterli oluyor. Bu çok daha hızlı ve verimli!

Veritabanında Bölümleme (Partitioning) Nasıl Çalışır
Veritabanlarında (görseldeki gibi), bölümleme (partitioning), kütüphaneyi bölümlere ayırmak gibidir. Tüm verileri tek bir büyük parça halinde saklamak yerine, belirli bir anahtar özelliğe göre daha küçük parçalara ayırırız—bu örnekte, tarihe göre.
Görselin sol tarafında, stackoverflow.questions_2018 adlı bir tablo yer almaktadır. Bu tabloda (Stack Overflow’da sorulan sorular gibi) çok sayıda veri, tek bir büyük grup içinde saklanır.
İşlemleri hızlandırmak için, veriler Creation_date’e (her sorunun oluşturulma tarihi) göre bölümlere ayrılır.
Sağ tarafta ise, yeni bölümlemeli tabloyu (stackoverflow.questions_2018_partitioned) görüyorsunuz. Her bölüm, yalnızca belirli bir tarihe ait verileri içerir:
- 2018-03-01 tarihli veriler bir bölümde yer alır.
- 2018-03-02 tarihli veriler başka bir bölümde yer alır.
- Bu şekilde devam eder.
Artık, 2018-03-02 tarihinde oluşturulan sorulara bakmak istersek, tüm veri kümesini incelememize gerek yok. Doğrudan 20180302 etiketli bölüme (partition) gidebiliriz. Bu da bilgiye çok daha hızlı ulaşmayı ve işlem süresinin azalmasını sağlar.
BigQuery’de Kümeleme (Clustering)
Kümeleme, verileri belirtilen sütunlara göre bir bölüm (partition) içinde düzenler ve veriye daha hızlı erişilmesini sağlar. Daha önceki kütüphane örneğimize devam edelim. Hatırlarsanız, kütüphaneyi türe göre bölümlere ayırmıştık (bölümlendirme). Bu, bilim kurgu ya da polisiye türünde bir kitabı hızlıca bulmak için harikaydı.
Şimdi işleri daha da düzenli hale getirelim. Her bir tür bölümünün içinde kitapları bu kez yazar adına göre sıralamaya karar verdik. Yani “Bilim Kurgu” bölümündeki tüm kitaplar yazarlara göre gruplanıyor: önce Asimov’un kitapları, sonra Clarke’ın kitapları ve bu şekilde devam ediyor.
Bu ek adım, belirli bir kitabı bir tür içinde bulmayı daha da kolaylaştırır.

Veritabanında Kümeleme (Clustering) Nasıl Çalışır?
- Tablo halihazırda Creation_date alanına göre bölümlendirilmiştir, yani veriler tarihe göre ayrılmıştır.
- Her bölüm (tarih) içinde, veriler artık Android, Linux, SQL gibi etiketlere göre kümelenmiştir.
Bu, her tarih bazlı bölüm içinde şunların geçerli olduğu anlamına gelir:
- Aynı etikete (örneğin, Android) sahip tüm satırlar birlikte gruplanır.
- Android satırlarından sonra Linux, ardından SQL ve benzeri satırlar gelir.
Bölümlendirme VE Kümeleme Ne Zaman Kullanılır?
Diyelim ki 2018-03-02 tarihinden Linux hakkındaki soruları bulmak istiyorsunuz:
- Tarihe göre bölümlendirme sizi 20180302 bölümüne yönlendirir (bilim kurgu bölümüne gitmek gibi).
- Etiketlere göre kümeleme, o bölüm içinde Linux ile ilgili satırlara kolayca odaklanmanızı sağlar (belirli bir yazarın kitaplarına doğrudan gitmek gibi).
Bölümleme ve kümeleme işlemleri bir arada kullanıldığında, veritabanları büyük veri kümelerini hızlı ve düzenli bir şekilde işleyebilir.
Harici Tablolar (External Tables)
BigQuery’nin harici tabloları, BigQuery dışındaki veri kaynaklarında (örneğin Cloud Storage, Google Sheets veya Bigtable) depolanan verileri yüklemeden sorgulamanıza olanak tanır. Şimdi BigQuery’de harici verilere erişmenin iki temel yöntemini inceleyelim: Birleşik Sorgular (Federated Queries) ve Harici Tablolar (External Tables).
1. Birleşik Sorgular (Federated Queries): Harici Verilere Gerçek Zamanlı Erişim
Birleşik sorgular, verileri BigQuery’ye aktarmadan harici kaynaklardan doğrudan sorgulamanıza olanak tanır. Bu yöntem, diğer sistemlerde bulunan canlı, işlem tabanlı veriler için idealdir. Birleşik sorgular ile BigQuery veri kümelerinizi harici veri kaynaklarıyla sorunsuz bir şekilde birleştirerek analiz gerçekleştirebilirsiniz.
Desteklenen Kaynaklar:
- Cloud SQL: Google Cloud üzerindeki MySQL veya PostgreSQL veritabanlarında depolanan verileri sorgulayabilirsiniz.
- Cloud Spanner: Google Cloud Spanner üzerinde barındırılan küresel olarak dağıtılmış veritabanlarına erişebilirsiniz.
💡 Kullanım Senaryosu: Bir e-ticaret platformu yönettiğinizi ve müşteri siparişlerinin Cloud SQL’de saklandığını düşünün. Birleşik sorgular ile bu veriyi BigQuery’de saklanan satış analizlerinizle anında birleştirerek, ek veri işlem hatlarına gerek duymadan güçlü içgörüler elde edebilirsiniz.
2. Harici Tablolar (External Tables): Veriyi İçeri Aktarmadan Erişim
BigQuery’deki harici tablolar, BigQuery dışında depolanan verileri referans alarak bir tablo tanımlamanıza olanak tanır. Bu yaklaşım, özellikle başka sistemlerde depolanan büyük veri kümelerini BigQuery’ye aktarma maliyetine katlanmadan analiz etmek için faydalıdır.
2.1 Google Servislerindeki Harici Veriler
BigQuery, Google’ın depolama ve veri araçlarıyla sorunsuz bir şekilde entegre olur:
- Cloud Storage: Google Cloud Storage (GCS) üzerinde CSV, JSON, Avro, Parquet ve ORC formatlarında depolanan dosyaları sorgulayabilirsiniz.
- Bigtable: Google Cloud Bigtable üzerinde depolanan, yapılandırılmış ve yüksek performanslı verileri analiz edebilirsiniz.
- Google Drive: Google Drive’da depolanan Google Sheets veya CSV gibi dosyalara hafif ve hızlı sorgularla erişebilirsiniz.
💡 Kullanım Senaryosu: Eğer Cloud Storage’ta Parquet formatında büyük bir veri kümeniz varsa, bunu BigQuery’de bir harici tablo olarak tanımlayarak doğrudan sorgulayabilir, böylece pahalı veri aktarımından kaçınabilirsiniz.
2.2 BigQuery Omni: Farklı Bulut Platformları Arasındaki Güç
BigQuery Omni, analiz yeteneklerinizi Google Cloud’un ötesine taşıyarak, diğer bulut ortamlarında depolanan verileri sorgulamanıza olanak tanır. Örneğin:
- Amazon S3: AWS S3 bucket’larında depolanan verilere BigQuery arayüzünden çıkmadan erişebilirsiniz.
- Azure Blob Storage: Azure Blob Storage’de depolanan veri kümelerini doğrudan BigQuery üzerinden sorgulayabilirsiniz.
💡 Kullanım Senaryosu: Çoklu bulut stratejileri olan organizasyonlar için BigQuery Omni, bulutlar arası veri analizini kolaylaştırır. AWS S3’teki müşteri günlüklerini BigQuery’deki pazarlama verileriyle birlikte, verileri çoğaltmadan analiz edebilirsiniz.

Birleşik Sorgular veya Harici Tablolar Ne Zaman Kullanılmalı?
Her iki yaklaşım da karmaşık veri alma süreçlerine olan ihtiyacı azaltarak zaman ve kaynak tasarrufu sağlar:
- Birleşik sorgular, canlı veya sık güncellenen veriler için idealdir.
- Harici tablolar, harici sistemlerde saklanan statik veya yarı yapılandırılmış veri kümeleri için mükemmeldir.
- BigQuery Omni, farklı bulut platformlarında kolayca sorgular çalıştırmanıza olanak tanıyarak eşsiz bir esneklik sunar.
Materyalize Tablolar (Materialized Tables)
Materyalize tablolar, önceden hesaplanmış sorgu sonuçlarını depolayarak, tekrarlayan ve kaynak tüketen sorguları daha hızlı hale getirir. Altta yatan veri her değiştiğinde otomatik olarak güncellenir, böylece zaman ve işlem gücü tasarrufu sağlar.
İdeal Kullanım Alanları:
- Hızlı güncelleme gerektiren panolar
- Sık yapılan analitik sorgular
💡 Kullanım Senaryosu: Ekip incelemeleri için anında yüklenen, önceden hesaplanmış aylık satış raporu
Zaman Yolculuğu (Time Travel)
Zaman yolculuğu, bir tablonun önceki hallerine 7 güne kadar (varsayılan olarak) erişmenizi sağlar. Bu, kaybolan verilerin kurtarılması veya geçmiş değişikliklerin incelenmesi için faydalıdır.
Faydaları:
- Yanlışlıkla silinen veya üzerine yazılan verileri kurtarma
- Tablo değişikliklerini denetleme veya hata ayıklama
💡 Kullanım Senaryosu: Bir güncelleme sırasında yaşanan veri kaybı sonrasında önceki tablo sürümünü geri yükleme
Anlık Görüntüler (Snapshots)
Anlık görüntüler, tabloların belirli bir zamandaki kopyalarıdır. Analiz için tutarlı veri veya uzun vadeli yedekleme sağlar. Anlık görüntüler, zaman yolculuğundan farklı olarak, açıkça oluşturulur ve daha uzun süre saklanabilir.
💡 Kullanım Senaryosu: Yasal uyumluluk için geçmiş kayıtları koruma veya büyük bir olay sonrası felaket kurtarma sağlama
BigQuery Özellikleri – Özet Tablo
| Özellik | Açıklama | En Uygun Kullanım Senaryosu |
|---|---|---|
| Bölümleme (Partitioning) | Veri setlerinin tarih veya bölge gibi bir anahtara dayalı olarak daha küçük, yönetilebilir bölümlere ayrılması işlemidir. | Sıkça belirli sütunlara göre (örneğin tarih veya kimlik) filtreleme yapılan büyük veri setleri için idealdir, sorgu performansını artırır ve maliyetleri düşürür. |
| Kümeleme (Clustering) | Veri, bir veya birden fazla sütuna göre bölümlerde organize edilir ve bu, benzer verileri fiziksel olarak gruplandırarak sorgu performansını iyileştirir. | Ülke veya ürün kategorisi gibi sıklıkla belirli sütunlara göre filtreleme veya toplama yapılan veri setleri için uygundur, veri alımını hızlandırır. |
| Harici Tablolar (Federated Queries) | BigQuery dışındaki (örneğin Cloud Storage veya Google Sheets’teki) verileri, BigQuery’ye yüklemeye gerek olmadan, sorgulama imkanı sunar. | Verileri BigQuery’ye yüklemeden doğrudan harici veri kaynaklarını sorgulamanız gerektiğinde kullanışlıdır, depolama maliyetlerini düşürmeye yardımcı olur. |
| Harici Tablolar ve BigQuery Omni | Verilerin Google Cloud dışındaki AWS veya Azure gibi başka bulut platformlarda saklanmasını ve veriyi taşımadan bu verilere sorgu yapabilmeyi sağlar. | Birden fazla bulut ortamı kullanan kurumlar için idealdir. Veriyi taşıma gereksinimi olmadan farklı bulut platformları arasında kolayca sorgulama yapılmasına olanak tanır. |
| Materyalize Tablolar (Materialized Tables) | Sorgu sonuçlarının önceden hesaplanmış bir tablo olarak depolanmasıdır. Bu tablo belirli aralıklarla yenilenebilir ve performansı artırır. | Sıkça çalıştırılan karmaşık sorgular için çok uygundur. Gösterge panelleri veya raporlar gibi performansın kritik olduğu durumlarda, tekrarlanan sorgu yürütmeyi engeller. |
| Zaman Yolculuğu (Time Travel) | Belirli bir tarih ve saatteki verilere sorgu yapmanıza olanak tanır, belirli bir saklama süresi içinde veri geçmişine erişim sağlar. | Veri silme veya değiştirme işlemlerinden geri döndürme veya verilerin önceki durumlarını sorgulayarak geçmiş eğilimleri analiz etme için kullanışlıdır. |
| Anlık Görüntüler (Snapshots) | Bir tablonun belirli bir zaman için oluşturulmuş bir kopyasını sağlar, yedekleme veya kurtarma amaçlı kullanılabilir. | Yedeklemek veya denetim amaçlı kullanım için en iyisidir. Veriyi, orijinal tabloyu bozmadan, önceki bir duruma kolayca geri döndürmeyi sağlar. |
⭐⭐⭐
BigQuery, bölümleme, kümeleme, materyalize tablolar ve çoklu bulut özellikleri gibi gelişmiş özellikleri birleştiren güçlü ve çok yönlü bir veri ambarı çözümüdür. Zaman yolculuğu ve anlık görüntüler gibi ek işlevlerle, veri yönetimini sağlam, güvenilir ve yüksek performanslı hale getirir. Veritabanı, veri ambarı veya veri gölü ihtiyacı olan kurumların veri odaklı modern dünyada başarılı olmalarını sağlayan kapsamlı bir platformdur.
Verilerinizden en iyi şekilde yararlanmaya hazır mısınız? Hemen BigQuery’yi inceleyin ve iş öngörülerinizi nasıl dönüştürebileceğini keşfetmek için bizimle iletişime geçin.
Yazan: Umniyah Abbood
Yayınlanma Tarihi: 16.04.2025
