Google Cloud Bigtable - Google Cloud Datastore


124

Google Cloud Bigtable ile Google Cloud Datastore / App Engine veri deposu arasındaki fark nedir ve temel pratik avantajlar / dezavantajlar nelerdir? AFAIK Cloud Datastore, Bigtable'ın üzerine inşa edilmiştir.


8
Lütfen kapatmayın. şu anda bunlarla ilgili resmi bir belge yok ve google muhtemelen burada yorum yapacak.
Zig Mandel

Yanıtlar:


97

Datastore deneyimine ve Bigtable belgelerini okumaya dayalı olarak ana farklar şunlardır:

  • Bigtable başlangıçta HBase uyumluluğu için tasarlanmıştı, ancak şimdi birden çok dilde istemci kitaplıkları var . Datastore aslında daha çok Python / Java / Go web uygulaması geliştiricilerine (orijinal olarak App Engine) yönelikti
  • Bigtable, Datastore'dan "biraz daha IaaS", çünkü "sadece orada" değil, yapılandırılması için bir küme gerektiriyor .
  • Bigtable yalnızca bir dizini destekler - "satır anahtarı" (Datastore'daki varlık anahtarı)
    • Bu, Datastore'un dizine eklenen özelliklerinden farklı olarak sorguların Anahtar üzerinde olduğu anlamına gelir
  • Bigtable, atomikliği yalnızca tek bir satırda destekler - işlem yoktur
  • Bigtable'da mutasyonlar ve silinmeler atomik görünmüyor, Datastore ise okuma / sorgulama yöntemine bağlı olarak nihai ve güçlü tutarlılık sağlıyor.
  • Faturalandırma modeli çok farklıdır:
    • Datastore okuma / yazma işlemleri, depolama ve bant genişliği için ücret alır
    • 'Düğümler' , depolama ve bant genişliği için Bigtable ücretleri

98

Bigtable, yüksek hacimli veri ve analitik için optimize edilmiştir

  • Cloud Bigtable , verileri bölgeler veya bölgeler arasında çoğaltmaz (tek bir küme içindeki veriler çoğaltılır ve dayanıklıdır); bu, Bigtable'ın daha hızlı ve daha verimli olduğu ve maliyetlerin çok daha düşük olduğu, ancak daha az dayanıklı olduğu ve varsayılan yapılandırmada mevcut olduğu anlamına gelir.
  • HBase API'yi kullanır - kilitlenme riski veya öğrenilecek yeni paradigmalar yoktur
  • Açık kaynaklı Büyük Veri araçlarıyla entegredir, yani Bigtable'da depolanan verileri müşterilerin kullandığı çoğu analitik araçta (Hadoop, Spark, vb.)
  • Bigtable, tek bir Satır Anahtarı tarafından dizine eklenir
  • Bigtable tek bir bölgede

Cloud Bigtable, genellikle karmaşık arka uç iş yükleriyle daha büyük veri ihtiyaçları olan daha büyük şirketler ve kuruluşlar için tasarlanmıştır.

Datastore, uygulamalara yüksek değerli işlem verileri sunmak için optimize edilmiştir

  • Cloud Datastore , çoğaltma ve veri senkronizasyonuyla son derece yüksek kullanılabilirliğe sahiptir
  • Datastore, çok yönlülüğü ve yüksek kullanılabilirliği nedeniyle daha pahalıdır
  • Veri deposu, eşzamanlı çoğaltma nedeniyle verileri daha yavaş yazıyor
  • Datastore, işlemler ve sorgular etrafında çok daha iyi işlevselliğe sahiptir (ikincil dizinler mevcut olduğundan)

3
Bigtable, bir alt bölge kesintisi karşısında kullanılabilirlik sağlamak için artık alt bölgeler arasında çoğaltılıyor: cloudplatform.googleblog.com/2018/07/…
Brandon DuRette

Veri deposu için işlemlerin güçlü bir satış noktası olmadığını düşündüm. [Doc | cloud.google.com/datastore/docs/concepts/transactions] "Bir işlem, en fazla 25 varlık grubundaki bir veya daha fazla varlık üzerindeki bir dizi Google Cloud Datastore işlemidir." Ayrıca, veri deposu Bigtable'ın üzerine inşa edilmiştir, değil mi?
zyxue

19

Bigtable ve Datastore son derece farklı. Evet, veri deposu Bigtable'ın üzerine inşa edilmiştir, ancak bu onu böyle bir şey yapmaz. Bu, bir arabanın tekerleklerin üzerine yapıldığını söylemek gibidir ve bu nedenle bir araba tekerleklerden çok da farklı değildir.

Bigtable ve Datastore, verilerin nasıl değiştirildiği konusunda çok farklı veri modelleri ve çok farklı anlamlar sağlar.

Temel fark, Datastore'un varlık grupları olarak bilinen verilerin alt kümelerinde SQL-veritabanı benzeri ACID işlemleri sağlamasıdır (GQL sorgu dili SQL'den çok daha kısıtlayıcıdır). Bigtable kesinlikle NoSQL'dir ve çok daha zayıf garantilerle birlikte gelir.


4
Son paragrafa kadar iyiydin. Veri deposu işlemleri sağlar, ancak bunlar SQL gibi değildir ve kesinlikle ACID değildir.
Daniel Roseman

4
@DanielRoseman Aslında öyle. İşte Megastore'daki (Datastore'un inşa edildiği) makaleden bir alıntı: "Her Megastore varlık grubu, serileştirilebilir ACID semantiği sağlayan bir mini veritabanı olarak işlev görür." "veri deposunu bölümlere ayırıyoruz ve her bölümü ayrı ayrı çoğaltıyoruz, bölümler içinde tam ACID semantiği sağlıyoruz". (research.google.com/pubs/pub36971.html)
user2771609

Sql olarak adlandırmanın yanıltıcı olduğunu düşünüyorum. En fazla bir alt küme. Etkili bir sayım / grup yok, tüm sorgular dizinler vb.
Kullanmalıdır

4
Sorgu dili ve işlem izolasyonu farklı şeylerdir , onları karıştırıyor görünüyorsunuz. İkincisi (ACID işlemleri ) hakkında bir talepte bulunuyorum . Yorumunuzda, eskisinden bahsettiğimi varsayıyorsunuz. Belki bazı kısa çizgiler açıklığa kavuşturur? Herhangi bir şüpheyi ortadan kaldırmak için sorgu dili sorunundan açıkça bahsedeceğim.
user2771609

8

Gazeteleri okursanız, BigTable olan bu ve Datastore olduğunu Megastore . Datastore, BigTable'ın yanı sıra çoğaltma, işlem ve dizindir. (ve çok daha pahalıdır).


Gerçekten daha pahalı mı? BigTable için minimum 3 düğüm, 10GB HDD'de aylık 1400 $ 'dır. Oldukça yüksek görünüyor değil mi?
benji

@ben, geçmiş deneyimimde öyleydi. Datastore, saatlik yerine işlem başına ücretlendirilir. (Bu kadar kullanmazsanız, o zaman evet, Datastore'a fazla ödeme yapmazsınız. Ama trafiğiniz yüksekse ve bence bigtable çok daha ucuzdur.) Bence Bigtable saniyede 10.000 işlem talep ediyor? Gerçekte 1-2k gibi daha düşük buldum, ancak yine de 3 düğüm> 5k / s. Bu işleme hızını bir ay boyunca sürdürür ve bunu Datastore fiyatlandırmasıyla eşleştirirseniz, muhtemelen 1,4 bin'den çok daha yüksektir.
Justin Zhang

MegaStore bağlantısı kesildi
gstackoverflow

7

Yukarıdaki tüm cevapların yanı sıra Coursea Google Cloud Platform Büyük Veri ve Makine Öğreniminin Temelleri'nde verilenleri özetlemeye çalışacağım.

+---------------------+------------------------------------------------------------------+------------------------------------------+--+
|      Category       |                             BigTable                             |                Datastore                 |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| Technology          | Based on HBase(uses HBase API)                                   | Uses BigTable itself                     |  |
| ----------------    |                                                                  |                                          |  |
| Access Mataphor     | Key/Value (column-families) like Hbase                           | Persistent hashmap                       |  |
| ----------------    |                                                                  |                                          |  |
| Read                | Scan Rows                                                        | Filter Objects on property               |  |
| ----------------    |                                                                  |                                          |  |
| Write               | Put Row                                                          | Put Object                               |  |
| ----------------    |                                                                  |                                          |  |
| Update Granularity  | can't update row ( you should write a new row, can't update one) | can update attribute                     |  |
| ----------------    |                                                                  |                                          |  |
| Capacity            | Petabytes                                                        | Terbytes                                 |  |
| ----------------    |                                                                  |                                          |  |
| Index               | Index key only (you should properly design the key)              | You can index any property of the object |  |
| Usage and use cases | High throughput, scalable flatten data                           | Structured data for Google App Engine    |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+

Bu resmi de kontrol edin: görüntü açıklamasını buraya girin

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


2

Dikkate alınması gereken görece küçük bir nokta, Kasım 2016 itibarıyla, bigtable python istemci kitaplığı hala Alpha sürümündedir , bu da gelecekteki değişikliğin geriye dönük uyumlu olmayabileceği anlamına gelir. Ayrıca, bigtable python kitaplığı, App Engine'in standart ortamıyla uyumlu değildir. Esnek olanı kullanmalısınız.


Kasım 2016 itibarıyla aynısı Java için de geçerlidir
Aram Paronikyan

2

Bu, diğer hizmetlerle birlikte Google Cloud Bigtable ve Google Cloud Datastore arasındaki başka bir temel farklar kümesi olabilir. Aşağıdaki resimde gösterilen içerik de doğru hizmeti seçmenize yardımcı olabilir.

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

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


1

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

Cloud Datastore is a highly-scalable NoSQL database for your applications.
Like Cloud Bigtable, there is no need for you to provision database instances.
Cloud Datastore uses a distributed architecture to automatically manage
scaling. Your queries scale with the size of your result set, not the size of your
data set.
Cloud Datastore runs in Google data centers, which use redundancy to
minimize impact from points of failure. Your application can still use Cloud
Datastore when the service receives a planned upgrade.

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

 Choose Bigtable if the data is:
Big
● Large quantities (>1 TB) of semi-structured or structured data
Fast
● Data is high throughput or rapidly changing
NoSQL
● Transactions, strong relational semantics not required
And especially if it is:
Time series
● Data is time-series or has natural semantic ordering
Big data
● You run asynchronous batch or real-time processing on the data
Machine learning
● You run machine learning algorithms on the data
Bigtable is designed to handle massive workloads at consistent low latency
and high throughput, so it's a great choice for both operational and analytical
applications, including IoT, user analytics, and financial data analysis.

0

Datastore, uygulamaya daha hazırdır ve özellikle mikro hizmetler için geniş bir hizmet yelpazesi için uygundur.

Datastore'un altında yatan teknoloji Big Table'dır, bu yüzden Big Table'ın daha güçlü olduğunu hayal edebilirsiniz.

Datastore günde 20K ücretsiz işlemle gelir, SIFIR maliyetle güvenilir DB'ye sahip bir sunucu barındırmayı bekleyebilirsiniz.

Bu Datastore ORM kitaplığına da göz atabilirsiniz, birçok harika özellikle birlikte gelir https://www.npmjs.com/package/ts-datastore-orm

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.