BigQuery ile BigTable arasındaki fark nedir? [kapalı]


85

Birinin BigQuery yerine BigTable'ı kullanmasının herhangi bir nedeni var mı? Her ikisi de Okuma ve Yazma işlemlerini destekliyor ve ikincisi gelişmiş 'Sorgu' işlemleri de sunuyor.

Bir satış ortaklığı ağı geliştirmem gerekiyor (bu nedenle tıklamaları ve 'satışları' izlemem gerekiyor) bu yüzden aradaki fark beni oldukça karıştırıyor çünkü bigQuery daha iyi bir API'ye sahip bir bigTable gibi görünüyor.


BigTable'ın daha iyi performansa ihtiyaç duyan kişiler için daha düşük seviyeli ve daha az yönetilen bir Cloud Datastore'a benzediğini söyleyebilirim.
dyeray

1
Bu geçmiş SO ileti dizisi de yardımcı olabilir: stackoverflow.com/questions/34437572/…
Elliott Brossard

@dyeray evet bunu biliyorum, ancak birinin aynı verileri yalnızca BigQuery yerine hem BigTable hem de BigQuery'de tutmasının bir nedeni var mı?
kullanıcı

BigTable, tek sıralı veya küçük aralıklı aramalarda çok iyidir. BigQuery, büyük resimde çok iyidir. Etkili ayrıntılı inceleme ile analiz istiyorsanız, büyük ölçekli analizler için BigQuery'yi ve küçük aralıklarda analiz için BigTable'ı kullanırsınız.
Solomon Duskis

Sistem Özellikleri Karşılaştırması Google BigQuery ile Google Cloud Bigtable ve Google Cloud Datastore Karşılaştırması. ! resim (Sorumluluk Reddi! db-engines.com'dan kopyalandı)
Le

Yanıtlar:


110

Fark temelde şudur:

BigQuery, fazla değişmeyen veya ekleyerek değişen veri kümeleri için bir sorgu Motorudur. Sorgularınız "tablo taraması" gerektirdiğinde veya tüm veritabanına bakma ihtiyacı duyduğunuzda harika bir seçimdir. Toplamları, ortalamaları, sayıları, grupları düşünün. BigQuery, büyük miktarda veri topladığınızda ve bununla ilgili sorular sormanız gerektiğinde kullandığınız şeydir.

BigTable bir veritabanıdır. Büyük, ölçeklenebilir bir uygulamanın temeli olacak şekilde tasarlanmıştır. Veri okuması ve yazması gereken herhangi bir tür uygulamayı oluştururken BigTable'ı kullanın ve ölçeklendirme potansiyel bir sorundur.


2
ikinci paragrafta - şunu demek Use BigTable
istediniz

@MikhailBerlyant teşekkürler, düzenlendi
Michael Manoochehri

4
Google tarafından yapılan talihsiz bir adlandırma kuralı burada. Genellikle SQL'i düşündüğümde - Tabular veri yapısını düşünüyorum, Sorguları düşündüğümde ise anahtar-değer veya veritabanı arama türü düşünüyorum. Bu durumda BigTable, No-SQL iken BigQuery Sql veritabanıdır.
Maksood

@Michael Manoochehri cloud.google.com/bigquery/… lütfen aşağıdaki alıntıyı okuyun:
gstackoverflow

Kalıcı bir harici tabloya erişimi kullanıcılar (hizmet hesapları dahil) veya gruplarla paylaşabilirsiniz. Dış tablo sorgulamak için, kullanıcıların veya grupların (en azından) verilecek gerekir: bigquery.dataViewer veri kümesi seviyede veya daha yüksek bir rol dış masayı içeren veri kümesini erişmek için bigquery.user proje düzeyinde veya rol Sorgu işlerini çalıştırmak için daha yüksek Cloud Bigtable'da meta verilere ve tablolara salt okunur erişim sağlayan bigtable.reader rolü
gstackoverflow

87

Google Cloud - GCP veritabanı seçenekleri karar akış şeması

Bu, Google bulutunun sunduğu farklı veri depoları arasında karar vermede biraz yardımcı olabilir (Sorumluluk Reddi! Google Cloud sayfasından kopyalandı)

Gereksiniminiz canlı bir veritabanıysa, ihtiyacınız olan şey BigTable'dır (Gerçekte bir OLTP sistemi değil ). Daha çok analiz türü bir amaçsa , ihtiyacınız olan şey BigQuery'dir !

OLTP ve OLAP'ı düşünün ; Veya Cassandra ile Hadoop'a aşina iseniz, BigTable kabaca Cassandra'ya eşittir, BigQuery kabaca Hadoop'a eşittir (Kabul edildi, adil bir karşılaştırma değil, ancak fikri anladınız)

https://cloud.google.com/images/storage-options/flowchart.svg

Not

Lütfen Bigtable'ın ilişkisel bir veritabanı olmadığını ve SQL sorgularını veya sorgularını desteklemediğini veya JOINçok satırlı işlemleri desteklemediğini unutmayın. Ayrıca, küçük miktarlarda veri için iyi bir çözüm değildir. RDBMS OLTP istiyorsanız, cloudSQL'e (mysql / postgres) veya anahtarına bakmanız gerekebilir.

Maliyet Perspektifi

https://stackoverflow.com/a/34845073/6785908 . İlgili kısımları buradan alıntılamak.

Genel maliyet, verileri ne sıklıkta 'sorgulayacağınıza' bağlıdır. Bu bir yedekse ve olayları çok sık tekrarlamazsanız, çok ucuza gelir. Ancak, her gün bir kez yeniden oynatmanız gerekirse, taranan 5 $ / TB'yi çok kolay bir şekilde tetiklemeye başlayacaksınız. Eklemelerin ve depolamanın ne kadar ucuz olduğuna biz de şaşırdık, ancak bu genellikle Google sizden bir noktada bunlar üzerinde pahalı sorgular çalıştırmanızı beklediği için. Yine de birkaç şeyin etrafında tasarlamanız gerekecek. Örneğin, AFAIK akış eklerinin masaya yazılma garantisi yoktur ve gerçekten yazılı olup olmadığını görmek için listenin sonunda sık sık anket yapmanız gerekir. Kuyruklama, zaman aralığı tablosu dekoratörü ile verimli bir şekilde yapılabilir (tüm veri setini taramak için ödeme yapmadan).

Siparişi önemsemiyorsanız, ücretsiz bir masa bile listeleyebilirsiniz. O zaman bir 'sorgu' çalıştırmaya gerek yok.

Düzenle 1

Bulut anahtarı nispeten genç, ancak güçlü ve gelecek vaat ediyor (Ve aşırı derecede pahalı). En azından, google pazarlama, özelliklerinin her iki dünyanın da en iyisi olduğunu iddia ediyor (Geleneksel RDBMS ve noSQL)

görüntü açıklamasını buraya girin


Kalıcı bir harici tabloya erişimi kullanıcılar (hizmet hesapları dahil) veya gruplarla paylaşabilirsiniz. Harici tabloyu sorgulamak için, kullanıcılarınızın veya gruplarınızın (en azından) verilmesi gerekir: Harici tabloyu içeren veri kümesine erişmek için veri kümesi düzeyinde veya daha yüksek bigquery.dataViewer rolü Proje düzeyinde bigquery.user rolü veya Sorgu işlerini çalıştırmak için daha yüksek Cloud Bigtable'da meta verilere ve tablolara salt okunur erişim sağlayan bigtable.reader rolü
gstackoverflow

Yukarıdaki alıntıyı cloud.google.com/bigquery/… adresinden aldım . Neden bigtable'a erişmek için kelime bigquery içeren bir izne ihtiyacım var ?
gstackoverflow

-3

BigQuery ve Cloud Bigtable aynı değildir. Bigtable, Hadoop tabanlı bir NoSQL veritabanıdır, BigQuery ise SQL tabanlı bir veri deposudur. Belirli kullanım senaryoları vardır.

Çok kısa ve basit terimlerle;

  • ACID işlemleri için desteğe ihtiyacınız yoksa veya verileriniz yüksek düzeyde yapılandırılmamışsa Cloud Bigtable'ı düşünün.
  • Çevrimiçi analitik işleme (OLAP) sisteminde etkileşimli sorgulamaya ihtiyacınız varsa BigQuery'yi düşünün.

5
Bigtable, Hadoop tabanlı bir NoSQL veritabanı değil, aslında tam tersi - Bigtable teknik incelemesine dayalı HBase (Hadoop tabanlı NoSQL) oluşturuldu. Bu nedenle benzer (aynı?) API'yi paylaşıyorlar.
Igor Dvorzhak
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.