Fiyatlandırma

Genel bakış

BigQuery teknik ihtiyaçlarınıza ve bütçenize uyacak şekilde ölçeklenebilir, esnek fiyatlandırma seçenekleri sunar.

Depolama maliyetleri BigQuery'de depolanan veri miktarına bağlıdır. Depolama ücretleri için iki seçenek sunulur:

  • Aktif: Tablo veya bölümlerde depolanan ve son 90 gün içinde değiştirilmiş olan veriler için alınan bir aylık ücret.
  • Uzun süreli: Tablo veya bölümlerde depolanan ve son 90 gün içinde değiştirilmemiş olan veriler için alınan daha düşük bir aylık ücret.

Sorgu maliyetleri için iki fiyatlandırma modelinden birini seçebilirsiniz:

  • İsteğe bağlı: Bu, en esnek seçenektir. İsteğe bağlı fiyatlandırma, çalıştırdığınız her sorgu tarafından işlenen veri miktarına bağlıdır.
  • Sabit ücret — Bu fiyatlandırma seçeneği maliyetlerini öngörebilmek isteyen müşteriler için idealdir. Sabit ücret fiyatlandırması kullanan müşteriler sorgu işleme için özel kaynaklar satın alır ve tek tek sorgular için ücretlendirilmez.

Depolama alanı ve sorgu fiyatlandırması hakkında daha fazla bilgi edinmek için Google Cloud SKU'ları bölümünü inceleyin. İsteğe bağlı sorgu fiyatlandırmasının, SKU sayfasında analiz fiyatlandırması olarak adlandırıldığını unutmayın.

Fiyatlandırma özeti

Aşağıdaki tabloda, BigQuery fiyatlandırması özetlenmektedir. Bu işlemler için BigQuery'nin kotalar ve sınırlar şartları geçerlidir.

Ödemelerin faturalandırılması

Oluşturduğunuz her projenin kendisine bağlı bir faturalandırma hesabı vardır. Projede çalıştırılan BigQuery işlerinin ücretleri, bağlı faturalandırma hesabına faturalandırılır. BigQuery depolama ücretleri de bağlı faturalandırma hesabına faturalandırılır.

Faturalandırma verilerinin analizi

Cloud Console'daki Cloud Faturalandırma raporları sayfasını kullanarak BigQuery maliyetlerini ve eğilimlerini görüntüleyebilirsiniz. Raporlar kullanarak fatura verilerini analiz etme hakkında bilgi için Faturalandırma raporlarınızı ve maliyet trendlerinizi görüntüleyin bölümünü inceleyin.

BigQuery'de faturalandırma verilerinizi analiz etme hakkında daha fazla bilgi için Cloud Billing belgeleri sayfasının Cloud Billing verilerini BigQuery'ye aktarma bölümünü inceleyin.

Ücretsiz işlemler

Aşağıdaki tabloda, tüm konumlarda ücretsiz olan BigQuery işlemleri gösterilmektedir. Bu işlemler için BigQuery'nin kotalar ve sınırlar şartları geçerlidir.

İşlem Ayrıntılar
Veri yükleme

Cloud Storage'dan veya yerel dosyalardan BigQuery'ye veri yükleme işlemi için ücretlendirilmezsiniz. Ancak Cloud Storage'da veri depolama işlemi için ücretlendirilirsiniz. Ayrıntılar için Cloud Storage fiyatlandırma sayfasının Veri depolama bölümüne bakın. BigQuery'ye yüklenen verileriniz, BigQuery'nin Depolama alanı fiyatlandırmasına tabi olur.

Hedef veri kümesi US çoklu bölgesinde bulunuyorsa diğer bölgelerdeki Cloud Storage paketlerinden yükleme yaparken ağ çıkışı için ücretlendirilmezsiniz. Daha fazla bilgi için Konumla ilgili dikkat edilmesi gerekenler bölümünü inceleyin.

Veri kopyalama Tablo kopyalama işlemi için ücretlendirilmezsiniz ancak yeni tabloyu ve kopyaladığınız tabloyu depolamak için ücret ödemeniz gerekir. Daha fazla bilgi için Mevcut bir tabloyu kopyalama bölümüne bakın.
Verileri dışa aktarma BigQuery'den Cloud Storage'a veri aktardığınızda dışa aktarma işlemi için ücretlendirilmezsiniz ancak verileri Cloud Storage'da depolamak için ücret ödemeniz gerekir. Ayrıntılar için Cloud Storage fiyatlandırma sayfasının Veri depolama bölümüne bakın. Daha fazla bilgi için BigQuery'deki verileri dışa aktarma bölümüne bakın.
Veri kümelerini silme Veri kümesi silme işlemi için ücretlendirilmezsiniz.
Tabloları, görünümleri, bölümleri ve işlevleri silme Bir tabloyu, görünümü, belirli tablo bölümlerini veya kullanıcı tanımlı işlevleri silme işlemi için ücret ödemezsiniz.
Meta veri işlemleri Çağrılarla ilgili listeleme, alma, yama uygulama, güncelleme ve silme işlemleri için ücretlendirilmezsiniz. Veri kümelerini listeleme, veri kümesinin erişim kontrol listesini güncelleme, tablonun açıklamasını güncelleme ve kullanıcı tanımlı işlevleri veri kümesinde listeleme, bu işlemlere örnek olarak gösterilebilir (ancak bunlarla sınırlı değildir).
Yapay sütunların okunması Aşağıdaki yapay sütunların içeriğinin sorgulanma işlemi için ücretlendirilmezsiniz:

_TABLE_SUFFIXJoker karakter tablolarını sorgularken veya standart SQL'de tablo tasarımcısı anlamları elde etmek için kullanılır
_PARTITIONDATEKullanım süresine göre bölümlendirilmiş tabloları sorgularken kullanılır
_PARTITIONTIMEKullanım süresine göre bölümlendirilmiş tabloları sorgularken kullanılır
_FILE_NAME — Tabloları harici veri kaynaklarına dayanarak sorgularken kullanılır
Meta tabloların okunması Aşağıdaki meta tabloların içeriğinin sorgulama işlemi için ücretlendirilmezsiniz:

__PARTITIONS_SUMMARY__ — Bölümlendirilmiş tablolar veya kullanım süresine göre bölümlendirilmiş tablolardaki bölümlendirmeler hakkında meta veri alınırken kullanılır
__TABLES_SUMMARY__ — Veri kümesindeki tablo ve görünümler hakkında meta veri alınırken kullanılır
Kullanıcı tanımlı işlevler oluşturma, değiştirme veya arama Kalıcı kullanıcı tanımlı işlevleri (UDF) oluşturmak, değiştirmek veya almak için ücret ödemezsiniz.

"Daima Ücretsiz" kullanım sınırları

BigQuery, Google Cloud Ücretsiz Katmanı'nın bir parçası olarak bazı kaynakları belirli bir sınıra kadar ücretsiz olarak sunar. Bu ücretsiz kullanım sınırları hem ücretsiz deneme süresi boyunca hem de sonrasında kullanılabilir. Bu kullanım sınırları aşıldığında ve ücretsiz deneme süresi sona erdiğinde bu sayfadaki fiyatlandırmaya göre ücretlendirilirsiniz.

Kaynak Aylık ücretsiz kullanım sınırları Ayrıntılar
Depolama alanı Her ay ilk 10 GB ücretsizdir. BigQuery ML modelleri ve BigQuery'de depolanan eğitim verileri BigQuery depolama ücretsiz katmanına dahildir.
Sorgular (analiz) Her ay işlenen ilk 1 TB sorgu verisi ücretsizdir. BigQuery ML tahmin, inceleme ve değerlendirme işlevlerini kullanan sorgular, BigQuery analiz ücretsiz katmanına dahildir. CREATE MODEL ifadeleri içeren BigQuery ML sorguları buna dahil değildir.
Sabit bir aylık ücreti tercih eden yüksek sorgu hacmine sahip müşteriler için BigQuery sabit ücret fiyatlandırması da mevcuttur.
BigQuery ML CREATE MODEL sorguları Her ay CREATE MODEL ifadeleri içeren sorgular tarafından işlenen ilk 10 GB veri ücretsizdir. BigQuery ML CREATE MODEL sorguları, BigQuery analiz ücretsiz katmanından bağımsızdır ve yalnızca yerleşik BigQuery ML modelleri (BigQuery içinde eğitilen modeller) için geçerlidir.

Sorgu fiyatlandırması

Sorgu fiyatlandırması, SQL komutlarınızı ve kullanıcı tanımlı işlevlerinizi çalıştırmanın ve Veri Manipülasyon Dili (DML) ile Veri Tanımlama Dili (DDL) ifadelerini nitelemenin maliyetini belirtir.

BigQuery iki fiyatlandırma modeli sunar:

  • İsteğe bağlı fiyatlandırma esnek ve etkilidir. Yalnızca çalıştırdığınız sorgular için ödeme yaparsınız.
  • Sabit ücret fiyatlandırması, tahmin edilebilir ve tutarlı aylık maliyetler sunar.

Varsayılan olarak isteğe bağlı fiyatlandırma modeline göre faturalandırılırsınız. Faturalandırma modelinizi sabit ücretli faturalandırmaya geçirebilir veya belirli bir proje ve konum kombinasyonu için isteğe bağlı ve sabit ücretli faturalandırma arasından seçim yapabilirsiniz.

İsteğe bağlı fiyatlandırma

İsteğe bağlı fiyatlandırmada BigQuery, sorgular için tek bir metrik kullanarak ücret alır: işlenen bayt sayısı (okunan bayt sayısı olarak da adlandırılır). Verilerin BigQuery'de ya da Cloud Storage, Drive veya Cloud Bigtable gibi bir harici veri kaynağında depolanmasından bağımsız olarak işlenen bayt sayısı için ücret ödersiniz. İsteğe bağlı fiyatlandırma, yalnızca kullanıma bağlıdır.

İsteğe bağlı sorgu fiyatlandırması şu şekildedir:

Sorgu ücretleriyle ilgili olarak aşağıdaki noktaları göz önünde bulundurun:

  • BigQuery'de sütunsal veri yapısı kullanılır. Seçtiğiniz sütunlarda işlenen toplam veri miktarına göre ücretlendirilirsiniz ve sütun başına toplam veri miktarı sütundaki veri türleri temel alınarak hesaplanır. Veri boyutunuzun hesaplanma yöntemi hakkında daha fazla bilgi edinmek için Veri boyutu hesaplaması bölümünü inceleyin.
  • Hata döndüren sorgular veya sonuçları önbellekten alan sorgular için ücretlendirilmezsiniz.
  • Ücretler, sorgu tarafından referans verilen tablo başına en az 10 MB veri ve sorgu başına en az 10 MB veri işlenecek şekilde en yakın MB değerine yuvarlanır.
  • Çalışmakta olan bir sorgu işini iptal ederseniz sorgunun tamamlanmasına izin verildiğinde gerçekleşecek olan tam sorgu maliyetine kadar ücret alınabilir.
  • Bir sorgu çalıştırdığınızda, sonuçlar için açık bir LIMIT belirleseniz bile seçtiğiniz sütunlarda işlenen verilere göre ücretlendirilirsiniz.
  • Tablolarınızı bölümlendirmek ve kümelemek, sorgular tarafından işlenen veri miktarının azaltılmasını sağlayabilir. En iyi uygulama olarak, mümkün olduğunda daima bölümlendirme ve kümelemeyi kullanın.
  • İsteğe bağlı sorgu fiyatlandırması Google Cloud SKU'ları sayfasında analiz fiyatlandırması olarak adlandırılır.

İsteğe bağlı sorgularda maliyet kontrolleri

BigQuery, sorgu maliyetlerinizi sınırlandırmanızı sağlayan maliyet kontrol mekanizmaları sunar. Ayarlayabileceğiniz mekanizmalar şunlardır:

Cloud Storage verilerini sorgulama

BigQuery'den harici bir kaynağı sorgularken sorgu başına okunan bayt sayısına göre ücretlendirilirsiniz. Daha fazla bilgi için Sorgu fiyatlandırması bölümüne bakın. Cloud Storage'da veri depolama işlemi için de ücretlendirilirsiniz. Daha fazla bilgi için Cloud Storage Fiyatlandırması bölümüne bakın.

Cloud Storage'da sütunsal biçimleri sorgulama

Harici verileriniz ORC veya Parquet'te depolanıyorsa ücretlendirilen baytların sayısı BigQuery'nin okuduğu sütunlarla sınırlıdır. Harici veri kaynağındaki veri türleri, sorgu tarafından BigQuery türlerine dönüştürüldüğü için okunan baytların sayısı, BigQuery veri türlerinin boyutuna bağlı olarak hesaplanır. Veri türü dönüşümleri hakkındaki bilgiler için aşağıdaki sayfalara bakın:

Sabit fiyat

BigQuery, işlenen TB veri miktarına göre isteğe bağlı fiyat üzerinden ödeme yapmak yerine sorgular için sabit bir ücret ödemeyi tercih eden müşterilere sabit ücret fiyatlandırması sunmaktadır.

BigQuery Rezervasyonları'nı kullanarak sabit ücret fiyatlandırmasını seçebilirsiniz.

Sabit ücret fiyatlandırmasına kaydolduğunuzda, BigQuery slotları olarak ölçülen özel sorgu işleme kapasitesi olan slot taahhütleri satın alırsınız. Sorgularınız bu kapasiteyi kullanır ve işlenen baytlar için ücretlendirilmezsiniz. Kapasite talepleriniz taahhüt edilen kapasiteyi aşarsa BigQuery slotlardan sıra oluşturur ve sizden ek ücret alınmaz. BigQuery'nin sorgu işlemede slotlardan nasıl yararlandığı hakkında daha fazla bilgi edinmek için Slotlar bölümünü inceleyin.

Sabit ücret fiyatlandırması:

  • BigQuery ML, DML ve DDL ifadeleri dahil sorgu maliyetlerine uygulanır.
  • Depolama alanı, akış alma veya BI Engine'in maliyetlerine uygulanmaz.
  • Bölgesel kaynak olarak satın alınır. Bir bölgede veya çoklu bölgede satın alınan slot taahhütleri başka bir bölgede veya çoklu bölgede kullanılamaz ve taşınamaz.
  • Müşterilerin Google Cloud Destek ekibiyle iletişim kurarak proje başına eşzamanlılık kotalarını artırabilmesini sağlar.
  • Saniye başına, aylık ve yıllık taahhüt seçenekleri mevcuttur.
  • Tüm kuruluşunuzda paylaşılabilir. Her proje için slot taahhütleri satın almanıza gerek yoktur.
  • Minimum 100 slotu vardır ve 100 slotluk artışlarla satın alınır.
  • Taahhüdünüz süresince saniye başına faturalandırılır.

Aylık sabit ücret taahhütleri

Aşağıdaki tablo, aylık slot taahhüdünüzün maliyetini gösterir.

Yıllık sabit ücret taahhütleri

Aşağıdaki tablo, yıllık slot taahhüdünüzün maliyetini gösterir.

Esnek slotlar: kısa vadeli taahhütler

Esnek slotlar özel bir taahhüt türüdür:

  • Taahhüt süresi yalnızca 60 saniyedir.
  • Bu sürenin ardından Esnek slotları istediğiniz zaman iptal edebilirsiniz.
  • Yalnızca taahhüdünüzün dağıtılmış olduğu saniyeler için ücretlendirilirsiniz.

Esnek slotlar, kapasite kullanılabilirliğine tabidir. Esnek Slot satın almaya çalıştığınızda bu işlemin gerçekleşeceği garanti edilmez. Ancak taahhütlü satın alma işleminiz gerçekleştiğinde iptal edene kadar kapasiteniz garanti edilir.

Aşağıdaki tablo, Esnek slot taahhüdünüzün maliyetini gösterir.

Deneme slotları (promosyon)

BigQuery, yeni veya hizmeti tekrar kullanmaya başlayan BigQuery müşterileri için 20 Mayıs 2020'de sınırlı bir promosyon sundu. Promosyona katılmaya uygun olan müşteriler 500 slottan oluşan deneme slotlarını, yüksek oranda indirimli bir fiyatla ve 6 aylık taahhütle satın alabilir.

Deneme slotları aşağıdaki özelliklere sahiptir:

  • 6 aylık taahhüt vermeniz gerekir.
  • Satın alma tarihinden itibaren 182 gün boyunca iptal edemezsiniz.
  • Yalnızca 500 slot satın alabilirsiniz.
  • Diğer taahhüt türlerini satın alarak bunları Deneme slotlarıyla birleştirebilirsiniz.
  • Deneme slotları yalnızca ABD ve AB çoklu bölgelerinde kullanılabilir.
  • Deneme slotları sınırlı sayıdadır ve ilk talep edenlere öncelik verilecek şekilde sunulur.
  • Deneme slotlarıyla diğer slot taahhüdü türleri arasında performans veya kullanılabilirlik açısından herhangi bir fark yoktur.

Deneme slotları yeterlilik kriterlerine tabidir ve aşağıdaki müşterilere sunulur:

  • BigQuery'ye kaydolan yeni Google Cloud müşterileri
  • BigQuery'ye kaydolan mevcut Google Cloud müşterileri
  • Son 3 aydaki harcamaları ayda 500 ABD dolarını aşmayan mevcut BigQuery müşterileri
  • Şirketlerinin e-posta adreslerini kullanarak kaydolan müşteriler
  • Teklif yalnızca doğrudan Google'dan satın alındığında kullanılabilir; bayiler veya distribütörler aracılığıyla satın alındığında kullanılamaz

Deneme slotlarının çalışma şekli hakkında daha fazla bilgi için Deneme slotları bölümüne göz atın.

Bu promosyona katılmak için BigQuery Deneme Slotları Promosyonu formunu doldurun. Formu doldurmanızın ardından en geç beş iş günü içinde sizinle iletişime geçeriz.

Depolama alanı fiyatlandırması

Verileriniz BigQuery'ye yüklendiğinde, söz konusu verilerin depolanması için ücretlendirilirsiniz. Depolama alanı fiyatlandırması, tablolarınızda depolanan sıkıştırılmamış verilerin miktarına bağlıdır.

Verilerin boyutu, ayrı ayrı sütunlardaki verilerin türlerine göre hesaplanır. Verilerin hesaplanma yöntemiyle ilgili ayrıntılı açıklama için Veri boyutu hesaplaması bölümüne bakın.

Etkin depolama

Etkin depolama maliyetleri aşağıdaki gibidir:

Depolama alanı fiyatlandırması, MB/saniye cinsinden hesaplanır. Örneğin:

  • Ayın yarısında 100 MB depoluyorsanız 0,001 ABD doları (bir sentin onda biri) ödersiniz
  • Ayın yarısında 500 GB depoluyorsanız 5 ABD doları ödersiniz
  • Tam bir ay boyunca 1 TB depoluyorsanız 20 ABD doları ödersiniz

Uzun süreli depolama

Bir tablo birbirini izleyen 90 gün boyunca düzenlenmezse o tablonun depolama alanının fiyatı otomatik olarak yaklaşık %50 düşer. Bir tablo, uzun süreli depolama alanı olarak kabul edildiğinde performans, dayanıklılık, kullanılabilirlik veya diğer işlevlerde herhangi bir kesinti olmaz.

Bölümlendirilmiş bir tablonun her bölümü, uzun süreli depolama alanı fiyatlandırması için ayrı olarak değerlendirilir. Bir bölüm son 90 gün içinde değiştirilmemişse bu bölümdeki veriler, uzun süreli depolama alanı olarak kabul edilir ve indirimli fiyat üzerinden ücretlendirilir.

Uzun süreli depolama fiyatlandırması şu şekildedir:

Tabloda düzenleme yapılırsa fiyat tekrar normal depolama alanı fiyatlandırmasına döner ve 90 günlük zamanlayıcı sıfırdan saymaya başlar. Bir tablodaki verileri değiştiren tüm işlemler, zamanlayıcıyı sıfırlar. Söz konusu işlemler şunlardır:

İşlem Ayrıntılar
Bir tabloya veri yükleme Bir hedef tabloya veri ekleyen veya bir hedef tablonun üzerine yazan tüm yükleme ve sorgu işleri.
Bir tabloya veri kopyalama Bir hedef tabloya veri ekleyen veya bir hedef tablonun üzerine yazan tüm kopyalama işleri.
Bir tabloya sorgu sonuçları yazma Bir hedef tabloya veri ekleyen veya bir hedef tablonun üzerine yazan tüm sorgu işleri.
Veri Manipülasyon Dili'ni (DML) kullanma Tablo verilerini değiştirmek için DML ifadesi kullanma.
Veri Tanımlama Dili'ni (DDL) kullanma Tabloyu değiştirmek için CREATE OR REPLACE TABLE DDL ifadesi kullanma.
Tabloya veri akışı sağlama tabledata.insertAll API çağrısı kullanarak verileri alma.

Şunlar dahil başka herhangi bir işlem, zamanlayıcıyı sıfırlamaz:

  • Bir tabloyu sorgulama
  • Tabloyu sorgulayan bir görünüm oluşturma
  • Bir tablodan veri aktarma
  • Bir tabloyu kopyalama (başka bir hedef tabloya)
  • Bir tablo kaynağı üzerinde yama veya güncelleme işlemi uygulama

Bir faturalandırma dönemi sırasında 90 günlük eşiğe ulaşan tablolar için fiyatlandırma buna göre hesaplanır.

Uzun süreli depolama fiyatlandırması yalnızca BigQuery depolama alanı için geçerlidir; Cloud Bigtable, Cloud Storage ve Drive gibi harici veri kaynakları için geçerli değildir.

BigQuery Storage API fiyatlandırması

BigQuery Storage API, isteğe bağlı fiyatlandırma modelini kullanır. Okuduğunuz veriler için ücret ödersiniz. Sabit ücret fiyatlandırmasından yararlanan müşteriler, ayda 300 TB'a kadar veriyi ücretsiz okumak için BigQuery Storage API'yi kullanabilir. Ayda 300 TB'ı aşan okumalar, isteğe bağlı kullanım ücretleriyle faturalandırılır.

İsteğe bağlı fiyatlandırma

İsteğe bağlı fiyatlandırmada BigQuery Storage API ücretleriniz, ReadRows için yapılan çağrılar tarafından BigQuery deposundan okunan bayt sayısını temel alır.

Okunan bayt sayısına filtreleme için kullanılan ancak ReadRows üzerinden size çıkış şeklinde döndürülmeyen veriler dahil edilir. Geçici tablolardan okunan veriler için ücret ödemezsiniz.

İsteğe bağlı BigQuery Storage API ücretleri aşağıdaki gibidir:

BigQuery Storage API ücretleriyle ilgili olarak aşağıdakileri dikkate alın:

  • Toplam okunan veri miktarına göre ücret ödersiniz. Sütun başına okunan toplam veri miktarı, sütundaki veri türüne göre hesaplanır. Veri boyutu ise sütunun veri türüne göre hesaplanır. Verilerin hesaplanma yöntemiyle ilgili ayrıntılı açıklama için Veri boyutu hesaplaması bölümünü inceleyin.
  • ReadRows araması başarısız olsa bile okuma oturumunda okunan tüm veriler için ücret ödersiniz.
  • ReadRows çağrısını akışın sonuna gelinmeden iptal ederseniz iptalden önce okunan tüm veriler için ücret ödersiniz. Okunan ancak ReadRows çağrısının iptalinden önce size döndürülmeyen veriler ödemeniz gereken ücrete dahil edilebilir.
  • Mümkün olduğunda bölümlenmiş ve kümelenmiş tablolar kullanmanız önerilir. Bölümlendirmeleri ayıklamak için WHERE koşulunu kullanarak okunan veri miktarını azaltabilirsiniz. Daha fazla bilgi edinmek için Bölümlendirilmiş tabloları sorgulama bölümünü inceleyin.

Veri boyutu hesaplaması

BigQuery'ye veri yüklediğinizde veya verileri sorguladığınızda veri boyutuna göre ücretlendirilirsiniz. Veri boyutu, her bir sütunun veri türüne göre hesaplanır.

Depolanan verilerinizin ve sorgularınız tarafından işlenen verilerin boyutu gigabayt (GB) cinsinden hesaplanır. 1 GB, 230 bayt olarak kabul edilir. Bu ölçüm birimi, gibibayt (GiB) olarak da bilinir. Benzer şekilde, 1 TB 240 bayttır (1.024 GB).

BigQuery'nin veri türlerinin boyutları aşağıdaki gibidir:

Veri türü Boyut
INT64/INTEGER 8 bayt
FLOAT64/FLOAT 8 bayt
NUMERIC 16 bayt
BOOL/BOOLEAN 1 bayt
STRING 2 bayt + UTF-8 ile kodlanmış dize boyutu
BYTES 2 bayt + değerdeki bayt sayısı
DATE 8 bayt
DATETIME 8 bayt
TIME 8 bayt
TIMESTAMP 8 bayt
STRUCT/RECORD 0 bayt + içerilen alanların boyutu
GEOGRAPHY 16 bayt + 24 bayt x coğrafya türündeki köşe noktası sayısı (köşe noktası sayısını ST_NumPoints işlevini kullanarak doğrulayabilirsiniz)

Herhangi bir veri türü için boş değerler 0 bayt olarak hesaplanır.

Tekrarlanan bir sütun, dizi olarak depolanır. Ayrıca boyut, değerlerin sayısına göre hesaplanır. Örneğin, bir tamsayı sütunu (INT64) tekrarlanıyor (ARRAY<INT64>) ve 4 giriş içeriyorsa 32 bayt olarak hesaplanır (4 giriş x 8 bayt).

Akış fiyatlandırması

Akışlı veriler için uygulanan düşük ücret dışında, BigQuery'ye veri yüklemek ücretsizdir.

Akış eklemeler için uygulanan fiyatlandırma aşağıdaki gibidir:

Veri Manipülasyon Dili (DML) fiyatlandırması

DML sorguları için BigQuery ücretleri, sorgu tarafından işlenen bayt sayısına göre hesaplanır.

Bölümlendirilmemiş tablolar için DML fiyatlandırması

Bölümlendirilmemiş tablolar için işlenen bayt sayısı aşağıdaki gibi hesaplanır:

DML ifadesi İşlenen bayt sayısı
INSERT Sorgu tarafından taranan tablolardan başvurulan tüm sütunlar için işlenen baytların toplamı.
UPDATE Sorgu tarafından taranan tablolardan başvurulan tüm sütunlar için baytların toplamı
+ UPDATE başladığında güncellenen tablodaki tüm sütunlar için baytların toplamı.
DELETE Sorgu tarafından taranan tablolardan başvurulan tüm sütunlar için baytların toplamı
+ DELETE başladığında güncellenen tablodaki tüm sütunlar için baytların toplamı.
MERGE MERGE ifadesinde yalnızca INSERT ibareleri bulunuyorsa sorgu tarafından taranan tablolarda başvurulan tüm sütunlar için işlenen baytların toplamı kadar ücretlendirilirsiniz.
MERGE ifadesinde UPDATE veya DELETE ibaresi bulunuyorsa sorgu tarafından taranan kaynak tablolarda başvurulan tüm sütunlar için işlenen baytların toplamı
+ hedef tablodaki tüm sütunlar için baytların toplamı (MERGE başladığında) için ücretlendirilirsiniz.

Bölümlendirilmiş tablolar için DML fiyatlandırması

Bölümlendirilmiş tablolar için işlenen bayt sayısı aşağıdaki gibi hesaplanır:

DML ifadesi İşlenen bayt sayısı
INSERT Sorgu tarafından taranan tüm bölümlendirmelerde başvurulan tüm sütunlar için işlenen baytların toplamı.
UPDATE Sorgu tarafından taranan tablolar için tüm bölümlendirmelerde başvurulan tüm sütunlar için işlenen baytların toplamı
+ güncellenmekte olan tablodaki güncellenen veya taranan bölümlerde bulunan tüm sütunlar için baytların toplamı (UPDATE başladığında).
DELETE Sorgu tarafından taranan tablolar için tüm bölümlendirmelerde başvurulan tüm sütunlar için işlenen baytların toplamı
+ değiştirilmekte olan tablo için değiştirilen veya taranan bölümlendirmelerde bulunan tüm sütunlar için baytların toplamı (DELETEbaşladığında).
MERGE MERGE ifadesinde yalnızca INSERT ibareleri bulunuyorsa sorgu tarafından taranan bölümlendirmelerde başvurulan tüm sütunlar için işlenen baytların toplamı kadar ücretlendirilirsiniz.
MERGE ifadesinde UPDATE ya da DELETE koşulu bulunuyorsa sorgu tarafından taranan kaynak tablolarda başvurulan tüm sütunlar için işlenen baytların toplamı
+ hedef tablo için güncellenen, silinen veya taranan bölümlendirmelerdeki tüm sütunlar için baytların toplamı (MERGE başladığında).

Veri Tanımlama Dili (DDL) fiyatlandırması

DDL sorguları için BigQuery ücretleri, sorgu tarafından işlenen bayt sayısına göre hesaplanır. DDL ifadeleri için işlenen baytların sayısı aşağıdaki şekilde hesaplanır:

DDL ifadesi İşlenen bayt sayısı
CREATE TABLE Yok.
CREATE TABLE ... AS SELECT ... Sorgu tarafından taranan tablolardan başvurulan tüm sütunlar için işlenen baytların toplamı.
CREATE VIEW Yok.
DROP TABLE Yok.
DROP VIEW Yok.

Kümelenmiş tablo fiyatlandırması

BigQuery'de kümelenmiş tablolar oluşturup kullandığınızda, sizden alınan ücretler tablolarda ne kadar veri depolandığına ve verilerde çalıştırdığınız sorgulara bağlı olur. Kümelenmiş tablolar sorgu tarafından işlenmemeleri için verileri ayıklayarak sorgu masraflarını azaltmanıza yardımcı olur. Bu işlem blok ayıklama olarak adlandırılır.

Blok ayıklama

BigQuery kümelenmiş tablodaki verileri kümeleme sütunlarındaki değerlere göre sıralar ve bunları bloklar halinde düzenler.

Kümelenmiş bir sütunda filtre içeren bir sorgu gönderdiğinizde BigQuery blokların sorguyla ilgili herhangi bir veri içerip içermediğini etkili bir şekilde tespit etmek için kümeleme bilgilerini kullanır. Bu özellik BigQuery’nin blok ayıklama olarak adlandırılan bir işlem yürüterek yalnızca ilgili blokları tarayabilmesini sağlar.

Sorgu fiyatlandırması işlenen baytların sayısına bağlıdır. Kümelenmiş bir tabloda sorgu çalıştırdığınızda ve bu sorgu kümelenmiş sütunlarda bir filtre içerdiğinde BigQuery, filtre ifadesini ve blok meta verilerini kullanarak sorgu tarafından taranan blokları ayıklar.

Ayıklanan bloklar taranmaz. Sorgu tarafından işlenen verilerin baytını hesaplamak için yalnızca taranan bloklar kullanılır. Bir sorgunun kümelenmiş bir tabloda işlediği baytların sayısı, taranan bloklarda sorgu tarafından başvurulan her sütunda okunan baytların toplamına eşittir.

Kümelenmiş bir tabloya birkaç filtre kullanan bir sorguda birden fazla kez başvurulması halinde BigQuery, ilgili filtrelerin her birinde uygun bloklardaki sütunların taranması için ücret alır.

Komut dosyası çalıştırma fiyatlandırması

BigQuery komut dosyası çalıştırma beta sürümü sırasında BigQuery ekibi, istenmeyen sorgu maliyetlerini önlemek için sabit ücret rezervasyonları olan projeleri önerir çünkü komut dosyasının taradığı bayt sayısı genelde dosyayı yürütmeden bilinmez. Sınırlı miktardaki ücretsiz komut dosyası yürütme işleminden faydalanmak için BigQuery korumalı alanını da kullanabilirsiniz. BigQuery ekibi, zaman içinde komut dosyaları ve bunların içindeki ayrı ifadeler tarafından taranan toplam bayt üzerinde daha açık kontrol sunar. Bu beta sürümüdür; fiyatlandırma güncellemeleri için BigQuery sürüm notlarına bakabilirsiniz.

Bir komut dosyası başarısız olursa söz konusu hataya kadar olan ifadelerin maliyeti için ücretlendirilirsiniz. Başarısız olan ifade ücretlendirilmez.

SELECT, INSERT ve UPDATE gibi genel kullanıma açık olan ifade türleri için ifadeyi yürütme maliyeti, genel fiyatlandırma belgelerinde belirtildiği gibidir. Komut dosyası yürütmeye özgü ifade türleri için aşağıdaki fiyatlandırma geçerlidir:

  • DECLARE: DEFAULT ifadesinde başvurulan tablolar için taranan baytların toplamı. Tablo başvurusu olmayan DECLARE ifadeleri ücretlendirilmez.
  • SET: İfadede başvurulan tablolar için taranan baytların toplamı. Tablo başvurusu olmayan SET ifadeleri ücretlendirilmez.
  • IF: Koşul ifadesinde başvurulan tablolar için taranan baytların toplamı. Tablo başvurusu olmayan IF koşul ifadeleri ücretlendirilmez. IF blokunda yürütülmeyen ifadeler ücretlendirilmez.
  • WHILE: Koşul ifadesinde başvurulan tablolar için taranan baytların toplamı. Koşul ifadesinde tablo başvurusu olmayan WHILE ifadeleri ücretlendirilmez. WHILE blokunda yürütülmeyen ifadeler ücretlendirilmez.
  • CONTINUE veya ITERATE: İlişkili maliyet yoktur.
  • BREAK veya LEAVE: İlişkili maliyet yoktur.
  • BEGIN veya END: İlişkili maliyet yoktur.

Geçici tablolar, komut dosyası çalışırken depolama alanı için ücretlendirilmez. Ancak bunları oluşturan, değiştiren veya sorgulayan ifadeler için normal fiyatlandırma uygulanır.

BigQuery fiyatlandırması örnekleri

Sorgu maliyetlerini tahmin etme

Sorgu fiyatlandırma örnekleri için Sorgu maliyetlerini tahmin etme bölümüne bakın.

Depolama maliyetlerini tahmin etme

Depolama fiyatlandırması örnekleri için Depolama maliyetlerini tahmin etme bölümüne bakın.

Bölümlendirilmemiş tablolar için DML fiyatlandırması örnekleri

Aşağıdaki örnekler, BigQuery'nin, bölümlendirilmemiş tabloları değiştiren DML ifadeleri için okunan baytları nasıl hesapladığını göstermektedir.

Örnek 1: Bölümlendirilmemiş tablo UPDATE

table1 iki sütun içerir: INTEGER türünde col1 ve STRING türünde col2.

UPDATE table1 SET col1 = 1 WHERE col2 = 2;

Bu örnekte işlenen baytlar =

  • col1 sütunundaki baytların toplamı +
  • col2 sütunundaki baytların toplamı

Örnek 2: Bölümlendirilmemiş tablo UPDATE

table1 iki sütun içerir: INTEGER türünde col1 ve STRING türünde col2. table2 bir sütun içerir: INTEGER türünde field1.

UPDATE table1 SET col1 = 1 WHERE col1 in (SELECT field1 from table2)

Bu örnekte işlenen baytlar =

  • UPDATE öncesinde table1.col1 içindeki baytların toplam sayısı +
  • UPDATE öncesinde table1.col2 içindeki baytların toplam sayısı +
  • table2.field1 içindeki baytların toplam sayısı

Bölümlendirilmiş tablolar için DML fiyatlandırması örnekleri

Aşağıdaki örneklerde BigQuery'nin, bölümlendirilmiş tabloları değiştiren DML ifadeleri için okunan baytları nasıl hesapladığı gösterilmektedir. Örneklerde kullanılan tabloların JSON şeması gösterimlerini görüntülemek için DML İfadeleri Kullanarak Bölümlendirilmiş Tablo Verilerini Güncelleme sayfasındaki Örneklerde kullanılan tablolar bölümüne bakın.

Örnek 1: Kullanım süresine göre bölümlendirilmiş tablo INSERT

mytable2 iki sütun içerir: INTEGER türünde id ve TIMESTAMP türünde ts. mytable iki sütun içerir: INTEGER türünde field1 ve STRING türünde field2.

INSERT INTO mytable (_PARTITIONTIME, field1) AS SELECT TIMESTAMP(DATE(ts)), id from mytable2

Bu örnekte işlenen baytlar =

  • mytable2.ts içindeki baytların toplam sayısı +
  • mytable2.id içindeki baytların toplam sayısı

Satırların eklendiği tablonun boyutu - mytable - sorgu maliyetini etkilemez.

Örnek 2: Bölümlendirilmiş tablo INSERT

mytable2 iki sütun içerir: INTEGER türünde id ve TIMESTAMP türünde ts. mycolumntable dört sütun içerir: INTEGER türünde field1, STRING türünde field2, BOOLEAN türünde field3 ve TIMESTAMP türünde ts.

INSERT INTO mycolumntable (ts, field1) AS SELECT ts, id from mytable2

Bu örnekte işlenen baytlar =

  • mytable2.ts içindeki baytların toplam sayısı +
  • mytable2.id içindeki baytların toplam sayısı

Satırların eklendiği tablonun boyutu - mycolumntable - sorgu maliyetini etkilemez.

Örnek 3: Kullanım süresine göre bölümlendirilmiş tablo UPDATE

DML ifadesi 1: Tek bir bölümlendirmenin güncellenmesi

mytable2 iki sütun içerir: INTEGER türünde id ve TIMESTAMP türünde ts. mytable iki sütun içerir: INTEGER türünde field1 ve STRING türünde field2.

UPDATE project.mydataset.mytable T SET T.field1 = T.field1 + 100 WHERE T._PARTITIONTIME = TIMESTAMP(“2017-05-01”) AND EXISTS (SELECT S.id from project.mydataset.mytable2 S WHERE S.id = T.field1)

Bu örnekte işlenen baytlar =

  • mytable2.id içindeki baytların toplam sayısı +
  • "2017-05-01" bölümlendirmesinde mytable.field1 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mytable.field2 konumundaki baytların toplamı

DML ifadesi 2: Bir bölümlendirmenin tablodaki başka bir bölümlendirmeye göre güncellenmesi

UPDATE project.mydataset.mytable T SET T._PARTITIONTIME = TIMESTAMP(“2017-06-01”), T.field1 = T.field1 + 100 WHERE T._PARTITIONTIME = TIMESTAMP(“2017-05-01”) AND EXISTS (SELECT 1 from project.mydataset.mytable S WHERE S.field1 = T.field1 AND S._PARTITIONTIME = TIMESTAMP("2017-06-01") )

Bu örnekte işlenen baytlar =

  • "2017-05-01" bölümlendirmesinde mytable.field1 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mytable.field2 konumundaki baytların toplamı +
  • "2017-06-01" bölümlendirmesinde mytable.field1 konumundaki baytların toplamı +
  • "2017-06-01" bölümlendirmesinde mytable.field2 konumundaki baytların toplamı

Bu durumda, UPDATE ifadesinin maliyeti, "2017-05-01" ve "2017-06-01" tarihlerine karşılık gelen bölümlendirmelerdeki tüm alanların boyutlarının toplamıdır.

Örnek 4: Bölümlendirilmiş tablo UPDATE

DML ifadesi 1: Tek bir bölümlendirmenin güncellenmesi

mytable2 iki sütun içerir: INTEGER türünde id ve TIMESTAMP türünde ts. mycolumntable dört sütun içerir: INTEGER türünde field1, STRING türünde field2, BOOLEAN türünde field3 ve TIMESTAMP türünde ts.

UPDATE project.mydataset.mycolumntable T SET T.field1 = T.field1 + 100 WHERE DATE(T.ts) = “2017-05-01” AND EXISTS (SELECT S.id from project.mydataset.mytable2 S WHERE S.id = T.field1)

Bu örnekte işlenen baytlar =

  • mytable2.id içindeki baytların toplam sayısı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.field1 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.field2 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.field3 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.ts konumundaki baytların toplamı

DML ifadesi 2: Bir bölümlendirmenin tablodaki başka bir bölümlendirmeye göre güncellenmesi

UPDATE project.mydataset.mycolumntable T SET T.ts = TIMESTAMP(“2017-06-01”), T.field1 = T.field1 + 100 WHERE DATE(T.ts) = “2017-05-01” AND EXISTS (SELECT 1 from project.mydataset.mycolumntable S WHERE S.field1 = T.field1 AND DATE(S.ts) = "2017-06-01")

Bu örnekte işlenen baytlar =

  • "2017-05-01" bölümlendirmesinde mycolumntable.field1 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.field2 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.field3 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.ts konumundaki baytların toplamı +
  • "2017-06-01" bölümlendirmesinde mycolumntable.field1 konumundaki baytların toplamı +
  • "2017-06-01" bölümlendirmesinde mycolumntable.field2 konumundaki baytların toplamı +
  • "2017-06-01" bölümlendirmesinde mycolumntable.field3 konumundaki baytların toplamı +
  • "2017-06-01" bölümlendirmesinde mycolumntable.ts konumundaki baytların toplamı

Bu durumda, UPDATE ifadesinin maliyeti, "2017-05-01" ve "2017-06-01" tarihlerine karşılık gelen bölümlendirmelerdeki tüm alanların boyutlarının toplamıdır.

Örnek 5: Kullanım süresine göre bölümlendirilmiş tablo DELETE

mytable2 iki sütun içerir: INTEGER türünde id ve TIMESTAMP türünde ts. mytable iki sütun içerir: INTEGER türünde field1 ve STRING türünde field2.

DELETE project.mydataset.mytable T WHERE T._PARTITIONTIME = TIMESTAMP(“2017-05-01”) AND EXISTS (SELECT S.id from project.mydataset.mytable2 S WHERE S.id = T.field1)

Bu örnekte işlenen baytlar =

  • mytable2.id içindeki baytların toplam sayısı +
  • "2017-05-01" bölümlendirmesinde mytable.field1 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mytable.field2 konumundaki baytların toplamı

Örnek 6: Bölümlendirilmiş tablo DELETE

mytable2 iki sütun içerir: INTEGER türünde id ve TIMESTAMP türünde ts. mycolumntable dört sütun içerir: INTEGER türünde field1, STRING türünde field2, BOOLEAN türünde field3 ve TIMESTAMP türünde ts.

DELETE project.mydataset.mycolumntable T WHERE DATE(T.ts) =“2017-05-01” AND EXISTS (SELECT S.id from project.mydataset.mytable2 S WHERE S.id = T.field1)

Bu örnekte işlenen baytlar =

  • mytable2.id içindeki baytların toplam sayısı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.field1 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.field2 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.field3 konumundaki baytların toplamı +
  • "2017-05-01" bölümlendirmesinde mycolumntable.ts konumundaki baytların toplamı

Kümelenmiş tablo fiyatlandırması örneği

ClusteredSalesData adlı bir kümelenmiş tablonuz var. Tablo, timestamp sütunu tarafından bölümlendirilmiş ve customer_id sütunu tarafından kümelenmiş. Veriler aşağıdaki blok seti şeklinde organize edilir:

Bölüm tanımlayıcı Blok kimliği Bloktaki customer_id için minimum değer Bloktaki customer_id için maksimum değer
20160501 B1 10.000 19.999
20160501 B2 20.000 24.999
20160502 B3 15.000 17.999
20160501 B4 22.000 27.999

Tabloda aşağıdaki sorguyu çalıştırın. Sorgu, customer_id sütununda bir filtre içerir.

SELECT
  SUM(totalSale)
FROM
  `mydataset.ClusteredSalesData`
WHERE
  customer_id BETWEEN 20000
  AND 23000
  AND DATE(timestamp) = "2016-05-01"

Bu sorgu:

  • B2 ve B4 bloklarındaki timestamp, customer_id ve totalSale sütunlarını tarar.
  • timestamp bölümlendirme sütunundaki DATE(timestamp) = "2016-05-01" filtre koşulu nedeniyle B3 blokunu ayıklar.
  • customer_id kümeleme sütunundaki customer_id BETWEEN 20000 AND 23000 filtre koşulu nedeniyle B1 blokunu ayıklar.

Komut dosyası çalıştırma fiyatlandırma örneği

Aşağıdaki örnek komut dosyası, her ifadenin üstünde, aşağıdaki ifadenin ne kadar maliyete neden olduğunu (varsa) belirten yorumlar içerir.

-- No cost, since no tables are referenced.
DECLARE x DATE DEFAULT CURRENT_DATE();
-- Incurs the cost of scanning string_col from dataset.table.
DECLARE y STRING DEFAULT (SELECT MAX(string_col) FROM dataset.table);
-- Incurs the cost of copying the data from dataset.big_table.  Once the
-- table is created, you are not charged for storage while the rest of the
-- script runs.
CREATE TEMP TABLE t AS SELECT * FROM dataset.big_table;
-- Incurs the cost of scanning column1 from temporary table t.
SELECT column1 FROM t;
-- No cost, since y = 'foo' doesn't reference a table.
IF y = 'foo' THEN
  -- Incurs the cost of scanning all columns from dataset.other_table, if
  -- y was equal to 'foo', or otherwise no cost since it is not executed.
  SELECT * FROM dataset.other_table;
ELSE
  -- Incurs the cost of scanning all columns from dataset.different_table, if
  -- y was not equal to 'foo', or otherwise no cost since it is not executed.
  UPDATE dataset.different_table
  SET col = 10
  WHERE true;
END IF;
-- Incurs the cost of scanning date_col from dataset.table for each
-- iteration of the loop.
WHILE x < (SELECT MIN(date_col) FROM dataset.table) DO
  -- No cost, since the expression does not reference any tables.
  SET x = DATE_ADD(x, INTERVAL 1 DAY);
  -- No cost, since the expression does not reference any tables.
  IF true THEN
    -- LEAVE has no associated cost.
    LEAVE;
  END IF;
  -- Never executed, since the IF branch is always taken, so does not incur
  -- a cost.
  SELECT * FROM dataset.big_table;
END WHILE;