Sự khác biệt giữa BigQuery và BigTable là gì? [đóng cửa]


82

Có lý do gì khiến ai đó sử dụng BigTable thay vì BigQuery không? Cả hai dường như đều hỗ trợ các hoạt động Đọc và Ghi với việc cung cấp sau cũng là các hoạt động 'Truy vấn' nâng cao.

Tôi cần phát triển một mạng liên kết (do đó tôi cần theo dõi số lần nhấp và 'bán hàng') nên tôi khá bối rối trước sự khác biệt vì bigQuery dường như chỉ là bigTable với API tốt hơn.


Tôi có thể nói BigTable giống như một Kho dữ liệu đám mây cấp thấp và ít được quản lý hơn cho những người cần hiệu suất tốt hơn.
nhuộm màu

1
Chủ đề SO quá khứ này có thể giúp quá: stackoverflow.com/questions/34437572/...
Elliott Brossard

@dyeray vâng Tôi biết điều đó nhưng có lý do gì để ai đó duy trì cùng một dữ liệu trong cả BigTable và BigQuery thay vì chỉ BigQuery không?
Người dùng không có mũ

BigTable rất tốt trong việc tra cứu hàng đơn hoặc phạm vi nhỏ. BigQuery rất giỏi về bức tranh lớn. Nếu bạn muốn phân tích với chi tiết hiệu quả, bạn sử dụng BigQuery để phân tích quy mô lớn và BigTable để phân tích trên phạm vi nhỏ.
Solomon Duskis

So sánh các thuộc tính hệ thống Google BigQuery so với Google Cloud Bigtable và Google Cloud Datastore. ! hình ảnh (! Disclaimer sao chép từ db-engines.com)
Lê Khiêm

Câu trả lời:


103

Sự khác biệt về cơ bản là:

BigQuery là một Công cụ truy vấn dành cho các tập dữ liệu không thay đổi nhiều hoặc thay đổi bằng cách thêm vào. Đó là một lựa chọn tuyệt vời khi các truy vấn của bạn yêu cầu "quét bảng" hoặc cần xem toàn bộ cơ sở dữ liệu. Suy nghĩ tổng, trung bình, đếm, nhóm. BigQuery là thứ bạn sử dụng khi bạn đã thu thập một lượng lớn dữ liệu và cần đặt câu hỏi về nó.

BigTable là một cơ sở dữ liệu. Nó được thiết kế để làm nền tảng cho một ứng dụng lớn, có thể mở rộng. Sử dụng BigTable khi bạn đang tạo bất kỳ loại ứng dụng nào cần đọc và ghi dữ liệu và quy mô là một vấn đề tiềm ẩn.


2
trong đoạn thứ hai - bạn có nghĩa là Use BigTable: o)
Mikhail Berlyant

Nhờ @MikhailBerlyant, biên tập
Michael Manoochehri

3
Một quy ước đặt tên đáng tiếc của Google ở ​​đây. Khi tôi thường nghĩ về SQL - tôi nghĩ đến cấu trúc dữ liệu dạng bảng trong khi khi tôi nghĩ đến Truy vấn, tôi nghĩ đến khóa-giá trị hoặc kiểu tra cứu của cơ sở dữ liệu. Trong trường hợp này, BigTable là Không có SQL trong khi cơ sở dữ liệu BigQuery Sql.
Maksood

@Michael Manoochehri cloud.google.com/bigquery/… vui lòng đọc trích dẫn bên dưới:
gstackoverflow

Bạn có thể chia sẻ quyền truy cập vào bảng bên ngoài vĩnh viễn với người dùng (bao gồm cả tài khoản dịch vụ) hoặc nhóm. Để truy vấn bảng bên ngoài, người dùng hoặc nhóm của bạn cần được cấp (tối thiểu): Vai trò bigquery.dataViewer ở cấp tập dữ liệu hoặc cao hơn để truy cập tập dữ liệu có chứa bảng bên ngoài Vai trò bigquery.user ở cấp dự án hoặc cao hơn để chạy các công việc truy vấn Vai trò bigtable.reader trong Cloud Bigtable cung cấp quyền truy cập chỉ đọc vào siêu dữ liệu và bảng
gstackoverflow

80

Google Cloud - Lưu đồ quyết định tùy chọn cơ sở dữ liệu GCP

Điều này có thể giúp ích một chút trong việc quyết định giữa các kho dữ liệu khác nhau mà Google cloud cung cấp (Tuyên bố từ chối trách nhiệm! Được sao chép từ trang Google Cloud)

Nếu yêu cầu của bạn là cơ sở dữ liệu trực tiếp, BigTable là thứ bạn cần (Tuy nhiên, không thực sự là một hệ thống OLTP ). Nếu nó thiên về một loại phân tích, thì BigQuery là thứ bạn cần!

Hãy nghĩ về OLTPOLAP ; Hoặc nếu bạn đã quen thuộc với Cassandra vs Hadoop, BigTable gần tương đương với Cassandra, BigQuery gần tương đương với Hadoop (Đồng ý, đó không phải là một so sánh công bằng, nhưng bạn có ý tưởng)

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

Ghi chú

Xin lưu ý rằng Bigtable không phải là một cơ sở dữ liệu quan hệ và nó không hỗ trợ các truy vấn SQL JOINvà cũng không hỗ trợ các giao dịch nhiều hàng. Ngoài ra, nó không phải là một giải pháp tốt cho lượng dữ liệu nhỏ. Nếu bạn muốn có OLTP RDBMS, bạn có thể cần phải xem cloudSQL (mysql / postgres) hoặc cờ lê.

Quan điểm chi phí

https://stackoverflow.com/a/34845073/6785908 . Trích dẫn các phần có liên quan ở đây.

Chi phí tổng thể tính đến tần suất bạn sẽ 'truy vấn' dữ liệu. Nếu đó là một bản sao lưu và bạn không phát lại các sự kiện quá thường xuyên, nó sẽ rất rẻ. Tuy nhiên, nếu bạn cần phát lại hàng ngày một lần, bạn sẽ bắt đầu kích hoạt 5 $ / TB được quét rất dễ dàng. Chúng tôi cũng rất ngạc nhiên về mức độ rẻ tiền của chèn và dung lượng, nhưng điều này là không nên vì Google mong rằng bạn sẽ chạy các truy vấn đắt tiền vào một thời điểm nào đó trên chúng. Tuy nhiên, bạn sẽ phải thiết kế một số thứ. Ví dụ: phụ trang phát trực tuyến AFAIK không có gì đảm bảo sẽ được ghi vào bảng và bạn phải thăm dò ý kiến ​​thường xuyên ở phần cuối của danh sách để xem liệu nó có thực sự được viết hay không. Tuy nhiên, việc điều chỉnh có thể được thực hiện hiệu quả với trình trang trí bảng phạm vi thời gian (không phải trả tiền cho việc quét toàn bộ tập dữ liệu).

Nếu bạn không quan tâm đến thứ tự, bạn thậm chí có thể kê một bảng miễn phí. Sau đó không cần phải chạy một 'truy vấn'.

Chỉnh sửa 1

Cờ lê đám mây tương đối trẻ, nhưng mạnh mẽ và đầy hứa hẹn (Và cũng đắt tiền). Ít nhất, google marketing tuyên bố rằng các tính năng của nó là tốt nhất của cả hai thế giới (RDBMS truyền thống và noSQL)

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


Bạn có thể chia sẻ quyền truy cập vào bảng bên ngoài vĩnh viễn với người dùng (bao gồm cả tài khoản dịch vụ) hoặc nhóm. Để truy vấn bảng bên ngoài, người dùng hoặc nhóm của bạn cần được cấp (tối thiểu): Vai trò bigquery.dataViewer ở cấp tập dữ liệu hoặc cao hơn để truy cập tập dữ liệu có chứa bảng bên ngoài Vai trò bigquery.user ở cấp dự án hoặc cao hơn để chạy các công việc truy vấn Vai trò bigtable.reader trong Cloud Bigtable cung cấp quyền truy cập chỉ đọc vào siêu dữ liệu và bảng
gstackoverflow

Tôi đã trích dẫn ở trên từ cloud.google.com/bigquery/… . Tại sao để truy cập bigtable tôi cần một quyền có chứa từ bigquery ?
gstackoverflow

-3

BigQuery và Cloud Bigtable không giống nhau. Bigtable là một cơ sở dữ liệu NoSQL dựa trên Hadoop trong khi BigQuery là một datawarehouse dựa trên SQL. Họ có các kịch bản sử dụng cụ thể.

Nói một cách ngắn gọn và đơn giản;

  • Nếu bạn không yêu cầu hỗ trợ cho các giao dịch ACID hoặc nếu dữ liệu của bạn không có cấu trúc cao, hãy xem xét Cloud Bigtable.
  • Nếu bạn cần truy vấn tương tác trong hệ thống xử lý phân tích trực tuyến (OLAP), hãy xem xét BigQuery.

5
Bigtable không phải là cơ sở dữ liệu NoSQL dựa trên Hadoop, thực tế là ngược lại - dựa trên Bigtable white paper mà HBase (NoSQL dựa trên Hadoop) đã được xây dựng. Bởi vì điều này, chúng chia sẻ API tương tự (giống nhau?).
Igor Dvorzhak
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.