Google Cloud Bigtable và Google Cloud Datastore


124

Sự khác biệt giữa Google Cloud Bigtable và kho dữ liệu Google Cloud Datastore / App Engine là gì, và những ưu / nhược điểm thực tế chính là gì? AFAIK Cloud Datastore được xây dựng dựa trên Bigtable.


8
Xin đừng đóng cửa. Hiện tại không có tài liệu chính thức về những điều này và google có thể sẽ bình luận ở đây.
Zig Mandel

Kiểm tra điều này bằng terrenceryan.com/blog/index.php/…
Zig Mandel

Câu trả lời:


97

Dựa trên kinh nghiệm với Datastore và đọc tài liệu Bigtable , sự khác biệt chính là:

  • Ban đầu, Bigtable được thiết kế để tương thích với HBase, nhưng hiện đã có các thư viện máy khách bằng nhiều ngôn ngữ . Datastore ban đầu hướng đến các nhà phát triển ứng dụng web Python / Java / Go (ban đầu là App Engine)
  • Bigtable 'nhiều IaaS hơn một chút so với Datastore ở chỗ nó không chỉ' ở đó 'mà yêu cầu cấu hình một cụm .
  • Bigtable chỉ hỗ trợ một chỉ mục - 'khóa hàng' (khóa thực thể trong Kho dữ liệu)
    • Điều này có nghĩa là các truy vấn nằm trên Khóa, không giống như các thuộc tính được lập chỉ mục của Kho dữ liệu
  • Bigtable chỉ hỗ trợ tính nguyên tử trên một hàng - không có giao dịch nào
  • Các đột biến và xóa có vẻ không phải là nguyên tử trong Bigtable, trong khi Datastore cung cấp tính nhất quán mạnh mẽ và cuối cùng, tùy thuộc vào phương pháp đọc / truy vấn
  • Mô hình thanh toán rất khác:
    • Tính phí kho dữ liệu cho các hoạt động đọc / ghi, lưu trữ và băng thông
    • Các khoản phí lớn cho 'nút' , bộ nhớ và băng thông

98

Bigtable được tối ưu hóa cho khối lượng lớn dữ liệu và phân tích

  • Cloud Bigtable không sao chép dữ liệu giữa các vùng hoặc khu vực (dữ liệu trong một cụm duy nhất được sao chép và bền), có nghĩa là Bigtable nhanh hơn và hiệu quả hơn và chi phí thấp hơn nhiều, mặc dù nó kém bền hơn và có sẵn trong cấu hình mặc định
  • Nó sử dụng API HBase - không có nguy cơ bị khóa hoặc mô hình mới để học
  • Nó được tích hợp với các công cụ Big Data mã nguồn mở, có nghĩa là bạn có thể phân tích dữ liệu được lưu trữ trong Bigtable trong hầu hết các công cụ phân tích mà khách hàng sử dụng (Hadoop, Spark, v.v.)
  • Bigtable được lập chỉ mục bởi một Khóa hàng duy nhất
  • Bigtable nằm trong một khu vực duy nhất

Cloud Bigtable được thiết kế cho các công ty và doanh nghiệp lớn hơn, những người thường có nhu cầu dữ liệu lớn hơn với khối lượng công việc phụ trợ phức tạp.

Kho dữ liệu được tối ưu hóa để cung cấp dữ liệu giao dịch có giá trị cao cho các ứng dụng

  • Cloud Datastore có tính khả dụng cực cao với khả năng nhân rộng và đồng bộ hóa dữ liệu
  • Kho dữ liệu, vì tính linh hoạt và tính sẵn sàng cao, nên đắt hơn
  • Kho dữ liệu ghi dữ liệu chậm hơn do sao chép đồng bộ
  • Kho dữ liệu có nhiều chức năng tốt hơn xung quanh các giao dịch và truy vấn (vì tồn tại các chỉ mục phụ)

3
Bigtable hiện nhân rộng trên các khu vực để cung cấp tính khả dụng khi khu vực ngừng hoạt động: cloudplatform.googleblog.com/2018/07/…
Brandon

Tôi nghĩ rằng giao dịch không phải là một điểm bán hàng mạnh mẽ cho kho dữ liệu. Từ [doc | cloud.google.com/datastore/docs/concept/transactions] "Giao dịch là một tập hợp các hoạt động của Google Cloud Datastore trên một hoặc nhiều thực thể trong tối đa 25 nhóm thực thể." Ngoài ra, kho dữ liệu được xây dựng trên Bigtable, phải không?
zyxue

19

Bigtable và Datastore cực kỳ khác nhau. Có, kho dữ liệu được xây dựng trên Bigtable, nhưng điều đó không làm cho nó giống như nó. Điều đó giống như nói rằng một chiếc xe hơi được xây dựng trên các bánh xe, và vì vậy một chiếc xe hơi không khác mấy so với bánh xe.

Bigtable và Datastore cung cấp các mô hình dữ liệu rất khác nhau và ngữ nghĩa rất khác nhau về cách dữ liệu được thay đổi.

Sự khác biệt chính là Kho dữ liệu cung cấp các giao dịch ACID giống cơ sở dữ liệu SQL trên các tập con của dữ liệu được gọi là nhóm thực thể (mặc dù ngôn ngữ truy vấn GQL hạn chế hơn nhiều so với SQL). Bigtable hoàn toàn là NoSQL và đi kèm với các đảm bảo yếu hơn nhiều.


4
Bạn đã làm tốt cho đến đoạn cuối cùng. Kho dữ liệu cung cấp các giao dịch, nhưng chúng không giống SQL và chắc chắn không phải ACID.
Daniel Roseman

4
@DanielRoseman Trên thực tế, nó rất nhiều. Đây là trích dẫn từ bài báo trên Megastore (trên đó Datastore được xây dựng): "Mỗi nhóm thực thể Megastore hoạt động như một cơ sở dữ liệu nhỏ cung cấp ngữ nghĩa ACID có thể tuần tự hóa." "chúng tôi phân vùng kho dữ liệu và sao chép từng phân vùng riêng biệt, cung cấp ngữ nghĩa ACID đầy đủ trong các phân vùng". (research.google.com/pubs/pub36971.html)
user2771609

Tôi nghĩ rằng nó gây hiểu lầm khi gọi nó là Sql. Nhiều nhất là một tập hợp con. Không có số hiệu quả / nhóm, tất cả các truy vấn phải sử dụng chỉ số vv
Zig Mandel

4
Ngôn ngữ truy vấn và sự cô lập giao dịch là những thứ khác nhau , dường như bạn đang trộn lẫn chúng. Tôi đang yêu cầu bồi thường về thứ sau ( giao dịch ACID ). Trong nhận xét của bạn, bạn đang giả định rằng tôi đang nói về điều trước đây. Có lẽ một số dấu gạch nối sẽ làm rõ? Tôi sẽ đề cập rõ ràng vấn đề ngôn ngữ truy vấn để loại bỏ bất kỳ nghi ngờ nào.
user2771609

8

Nếu bạn đọc báo, BigTable là cái này và Datastore là MegaStore . Kho dữ liệu là BigTable cộng với sao chép, giao dịch và chỉ mục. (và đắt hơn nhiều).


Nó có thực sự đắt hơn không? mức tối thiểu cho BigTable là 3 nút, ở ổ cứng 10GB là 1400 đô la / tháng. Có vẻ khá cao phải không?
benji

@ben, trong kinh nghiệm trước đây của tôi là như vậy. Kho dữ liệu được tính phí cho mỗi lần hoạt động thay vì mỗi giờ. (Nếu bạn không sử dụng nó nhiều như vậy thì có, bạn không phải trả cho Datastore nhiều. Nhưng nếu bạn có lưu lượng truy cập cao và tôi nghĩ rằng bigtable rẻ hơn nhiều.) Tôi nghĩ Bigtable yêu cầu 10k ops mỗi giây? Trong thực tế, tôi thấy nó thấp hơn, như khoảng 1-2k, nhưng 3 nút vẫn là> 5k / s. Nếu bạn duy trì thông lượng đó trong một tháng và ánh xạ nó với giá của Kho dữ liệu, nó có thể cao hơn nhiều so với 1,4k.
Justin Zhang

Liên kết MegaStore bị hỏng
gstackoverflow

7

Tôi sẽ cố gắng tóm tắt tất cả các câu trả lời ở trên cộng với những gì được cung cấp trong Coursea Google Cloud Platform Big Data và Machine Learning.

+---------------------+------------------------------------------------------------------+------------------------------------------+--+
|      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    |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+

Kiểm tra hình ảnh này quá: nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


2

Một điểm tương đối nhỏ cần xem xét, kể từ tháng 11 năm 2016, thư viện ứng dụng khách trăn bigtable vẫn ở phiên bản Alpha, có nghĩa là thay đổi trong tương lai có thể không tương thích ngược. Ngoài ra, thư viện python bigtable không tương thích với môi trường tiêu chuẩn của App Engine. Bạn phải sử dụng cái linh hoạt.


Kể từ tháng 11 năm 2016, điều tương tự cũng xảy ra với Java
Aram Paronikyan

2

Đây có thể là một tập hợp các điểm khác biệt chính giữa Google Cloud Bigtable và Google Cloud Datastore cùng với các dịch vụ khác. Nội dung hiển thị trong hình ảnh dưới đây cũng có thể giúp bạn lựa chọn dịch vụ phù hợp.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


1

nhập mô tả hình ảnh ở đây

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.

nhập mô tả hình ảnh ở đây

 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

Kho dữ liệu sẵn sàng hơn cho ứng dụng và phù hợp với nhiều loại dịch vụ, đặc biệt là cho các dịch vụ nhỏ.

Công nghệ cơ bản của Datastore là Big Table, vì vậy bạn có thể hình dung Big Table mạnh mẽ hơn.

Kho dữ liệu đi kèm với 20K hoạt động miễn phí mỗi ngày, bạn có thể mong đợi để lưu trữ một máy chủ với DB đáng tin cậy với chi phí KHÔNG CÓ.

Bạn cũng có thể xem thư viện Datastore ORM này, nó đi kèm với rất nhiều tính năng tuyệt vời https://www.npmjs.com/package/ts-datastore-orm

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.