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.
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.
Câu trả lời:
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à:
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.
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.
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).
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 | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
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.
Đâ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.
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.
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.
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