Tại sao BigQuery lại nhanh “như chớp”?

Ruby Duong
Google Cloud Vietnam
5 min readApr 6, 2023

Một thử nghiệm từ Google cho thấy rằng để chạy 1 câu lệnh truy vấn có thời gian phản hồi dưới 30 giây với BigQuery, các tài nguyên sau cần phải được triển khai: 330 ổ cứng chuyên dụng 100MB/giây, mạng 330 Gigabit, 3300 lõi. Thay vì phải lo lắng về tài nguyên, bạn có thể chạy câu lệnh truy vấn đó theo cách không cần máy chủ, không cần phần mềm, máy ảo hoặc cấu hình, trong vòng 30 giây với BigQuery!

Bài viết này sẽ giải thích:

BigQuery là gì?

Kiến trúc gốc của BigQuery giúp đẩy nhanh tốc độ xử lí truy vấn

3 cách thực hiện bộ nhớ đệm (caching) để tăng tốc hơn nữa thời gian phản hồi truy vấn.

BigQuery là gì?

BigQuery là kho dữ liệu dựa trên đám mây do Google Cloud Platform (GCP) cung cấp. Một số điểm mạnh chính của BigQuery là:

  • Không có máy chủ (serverless) và khả năng mở rộng lên đến petabytes. Điều đó có nghĩa là 100% thời gian và công sức của bạn hiện được dành cho việc khám phá và phân tích dữ liệu, không phải lo lắng về cơ sở hạ tầng, ngay cả khi khối lượng dữ liệu tăng lên.
  • Hiệu quả về chi phí: cơ chế định giá đơn giản, có thể dự đoán trước và linh hoạt giúp kiểm soát chi phí. (Hãy đón đọc bài viết về cơ chế giá mới của BigQuery bắt đầu hiệu lực vào ngày 5 tháng 7 năm 2023!)
  • Phân tích tích hợp, học máy, không gian địa lí: kiến ​​trúc gốc được thiết kế để truy vấn nhanh, khả năng học máy tích hợp với SQL, phân tích không gian địa lý…

Tìm hiểu thêm về BigQuery tại đây.

Bí mật của BigQuery — 3 Công nghệ cơ bản tạo nên BigQuery

  1. Lưu trữ phân tán với Colossus: Colossus cung cấp cho mỗi người dùng BigQuery hàng nghìn ổ đĩa chuyên dụng cùng lúc và cung cấp hiệu suất nhanh như cơ sở dữ liệu trong bộ nhớ. BigQuery tận dụng định dạng lưu trữ dạng cột và thuật toán nén, cung cấp cách tối ưu nhất để đọc lượng lớn dữ liệu.

Vậy lưu dữ liệu dạng cột và lưu dữ liệu dạng dòng khác nhau như thế nào?

  • Lưu trữ dữ liệu theo hàng: các hàng được lưu trữ cùng nhau. Hệ thống phải đọc tất cả các cột khi truy cập một bảng dữ liệu.
Ví dụ về lưu trữ dữ liệu theo hàng
  • Lưu trữ dữ liệu dựa theo cột: các cột được lưu trữ riêng biệt. Hệ thống chỉ cần quét các cột riêng lẻ có liên quan đến câu truy vấn.
Ví dụ về lưu trữ dữ liệu theo cột

Ví dụ: Nếu bạn muốn tính tổng số lượng (quantity) đã bán ở ảnh 2 bên trên, BigQuery có thể đọc dữ liệu cột số lượng (quantity) để tính ra số lượng tổng, mà không cần đọc các trường khác như sản phẩm (product), kho hàng (warehouse).

2. Công nghệ điện toán Dremel: thực hiện kiến trúc Cây Thực Thi (Execution Tree). Dremel là công nghệ cốt lõi cho nhiều sản phẩm của Google như Ads, Youtube, Gmail,… Các câu lệnh SQL được Dremel xử lý với kiến trúc Cây Thực Thi, cho phép xử lý song song hàng loạt, do đó dẫn đến kết quả cực nhanh.

  • Cụ thể như au: Thay vì có một máy duy nhất xử lý toàn bộ việc đọc dữ liệu và tính toán cho truy vấn, câu lệnh truy vấn được được đẩy vào kiến trúc Cây Thực Thi. Hàng chục nghìn node lá (leaf nodes) đọc dữ liệu từ hệ thống lưu trữ Colossus và thực hiện bất kỳ tính toán cần thiết nào. Việc tổng hợp được thực hiện bởi các bộ trộn (mixers) và được gửi trở lại máy chủ gốc để trả lại cho người dùng.
Cấu trúc Cây Thực Thi của BigQuery

3. Băng thông petabit/giây với mạng Jupiter. Bộ phận lưu trữ và tính toán của BigQuery được kết nối bởi Jupiter, có thể cho phép 100.000 máy giao tiếp với bất kỳ máy nào khác ở tốc độ 10Gbs.

Ngoài cách BigQuery được thiết kế cho việc xử lý câu lệnh truy vấn rất nhanh, còn có nhiều cấp bộ nhớ đệm thông minh mà bạn có thể triển khai để nâng cao hiệu suất truy vấn với BigQuery. Việc lựa chọn bậc nào phụ thuộc vào độ trễ và yêu cầu bộ nhớ đệm của bạn.

  • Warm(100 TB): Xem xét phân vùng và nhóm (partitioning and clustering) các bảng dữ liệu để cải thiện hiệu suất cho các câu lệnh truy vấn. BigQuery còn hỗ trợ việc tự động phân cụm (automatic reclustering)
  • Hot (10 TB): Sử dụng chế độ xem cụ thể hóa (materialized views), là chế độ lưu lại kết quả câu lệnh vào bộ đệm để tăng tốc độ trả về kết quả khi câu lệnh được chạy lại.
  • Very Hot (GB): Sử dụng BI Engine, là công cụ truy vấn trong bộ nhớ, được vectơ hóa, cho độ trễ thấp và yêu cầu đồng thời cao hơn (higher concurrency).

Hiệu suất truy vấn chạy chậm là một vấn đề lớn đối với các doanh nghiệp, gây ra sự chậm trễ cho việc lấy được giá trị từ dữ liệu. Google BigQuery là kho dữ liệu được thiết kế để giải quyết vấn đề này: cung cấp thời gian phản hồi nhanh như chớp!

👏 và Comment vào bài viết chủ đề nào bạn muốn được tìm hiểu thêm về Google Cloud Platform!

💻 Hãy follow và đón đọc cái bài viết tiếp theo ở channel Google Cloud Vietnam!

📚 Đã sử dụng Google Cloud và muốn chia sẻ về trải nghiệm sử dụng của bạn hoặc công ty của bạn, hãy viết bài và đóng góp vào channel!

#googlecloud #bigquery #googlecloudvietnam #gcp

--

--