Tổng quan về Google BigQuery

Tháng Sáu 4, 2021
Nga Pham

Google BigQuery được phát hành vào năm 2011 và là kho dữ liệu doanh nghiệp của Google Cloud, với mục tiêu là nhắm đến sự linh hoạt kinh doanh. Kiến trúc không máy chủ (serverless architecture) cho phép nó hoạt động ở quy mô và tốc độ lớn để cung cấp phân tích SQL nhanh chóng trên các tập dữ liệu lớn. Kể từ khi bắt đầu, nhiều tính năng của BigQuery đã được cải tiến để cải thiện hiệu suất, tính bảo mật, độ tin cậy và giúp người dùng khám phá những thông tin chi tiết dễ dàng hơn.

Trong bài viết này, hãy cùng xem xét cách kho dữ liệu ảnh hưởng đến việc ra quyết định trong kinh doanh, cách BigQuery giải quyết các vấn đề với kho dữ liệu truyền thống, đi sâu vào tổng quan nâng cao về kiến trúc BigQuery, và cuối cùng là cách làm quen với BigQuery nhanh chóng.

Kho dữ liệu tác động đến các quyết định kinh doanh như thế nào?

Kho dữ liệu (Data Warehouse) tổng hợp dữ liệu từ các nguồn khác nhau và thực hiện phân tích trên dữ liệu tổng hợp để tăng thêm giá trị cho hoạt động kinh doanh bằng cách cung cấp các thông tin chi tiết. Kho dữ liệu là nơi lưu trữ dữ liệu kinh doanh quan trọng của doanh nghiệp, và khi định hướng của doanh nghiệp ngày càng phụ thuộc vào dữ liệu, kho dữ liệu càng đóng vai trò quan trọng hơn trong hành trình chuyển đổi kỹ thuật số (digital transformation) của doanh nghiệp. Các trường hợp sử dụng kho dữ liệu đã vượt ra khỏi phạm vi báo cáo vận hành truyền thống. Ngày nay, các doanh nghiệp cần:

  • Có một cái nhìn tổng quan, toàn diện về doanh nghiệp. Dữ liệu rất đáng giá. Khi chi phí lưu trữ và xử lý dữ liệu được giảm thiểu, doanh nghiệp sẽ có thể xử lý, lưu trữ và phân tích tất cả các tập dữ liệu có liên quan, cả nội bộ và bên ngoài tổ chức của họ.
  • Nhận thức được tình huống và phản ứng nhanh với các sự kiện kinh doanh trong thời gian thực. Doanh nghiệp cần thu thập những thông tin chi tiết từ các sự kiện xảy ra theo thời gian thực và có hiểu biết về chúng, chứ không phải đợi hàng ngày hoặc hàng tuần để phân tích dữ liệu. Kho dữ liệu cần phản ánh tình trạng kinh doanh hiện tại tại mọi thời điểm.
  • Giảm thời gian tìm hiểu thông tin. Doanh nghiệp cần được thiết lập và vận hành nhanh chóng mà không cần chờ đợi hằng ngày hoặc hàng tháng để cài đặt hay cấu hình phần mềm hoặc phần cứng.
  • Cung cấp thông tin chi tiết cho người dùng để thúc đẩy những quyết định dựa trên dữ liệu trong toàn doanh nghiệp. Để triển khai văn hóa dựa trên dữ liệu, các doanh nghiệp cần dân chủ hóa quyền truy cập vào dữ liệu.
  • Bảo mật dữ liệu và quản lý việc sử dụng dữ liệu. Dữ liệu cần được bảo mật và các bên liên quan trong và ngoài doanh nghiệp có thể truy cập được dữ liệu.

Khi doanh nghiệp muốn mở rộng việc sử dụng các kho dữ liệu truyền thống với khối lượng dữ liệu ngày càng tăng, họ phải đối mặt với những thách thức to lớn vì chi phí tăng cao. Kho dữ liệu truyền thống không được thiết kế để xử lý sự phát triển bùng nổ về dữ liệu và chắc chắn không được xây dựng cho các pattern xử lý dữ liệu mới ra đời.

BigQuery – Cloud Data Warehouse

Google BigQuery được thiết kế như một kho dữ liệu gốc đám mây (cloud-native). Nó được xây dựng để giải quyết nhu cầu của các tổ chức dựa vào dữ liệu trong thế giới đám mây.

Big Query là kho dữ liệu đám mây không máy chủ, có khả năng mở rộng cao và hiệu quả về chi phí GCP. Nó cho phép các truy vấn siêu nhanh tới petabyte bằng cách sử dụng sức mạnh xử lý của cơ sở hạ tầng của Google. Vì khách hàng không cần quản lý cơ sở hạ tầng, họ có thể tập trung vào việc khám phá thông tin chi tiết có ý nghĩa bằng cách sử dụng SQL quen thuộc mà không cần quản trị viên cơ sở dữ liệu. Đồng thời, nó cũng tiết kiệm hơn vì khách hàng chỉ cần chi trả chi phí cho quá trình xử lý và bộ nhớ mà họ sử dụng.

BigQuery nằm ở đâu trong vòng đời dữ liệu?

BigQuery là một phần trong nền tảng phân tích dữ liệu toàn diện của Google Cloud, bao gồm toàn bộ quá trình nhập, xử lý và lưu trữ dữ liệu, sau đó là phân tích và cộng tác nâng cao. BigQuery được tích hợp sâu với các dịch vụ phân tích và xử lý dữ liệu cho GCP, nhờ đó khách hàng có thể thiết lập kho dữ liệu gốc đám mây cho doanh nghiệp của mình.

Ở mỗi giai đoạn trong vòng đời dữ liệu, GCP cung cấp nhiều dịch vụ để quản lý dữ liệu. Hay nói cách khác, khách hàng có thể chọn một tập các dịch vụ phù hợp với dữ liệu và quy trình làm việc của họ.

BigQuery in Data Lifecycle
BigQuery in Data Lifecycle

Chuyển dữ liệu vào BigQuery

BigQuery hỗ trợ một số phương pháp để nhập dữ liệu và bộ nhớ được quản lý bởi Google. Phương pháp nhập cụ thể phụ thuộc vào nguồn gốc của dữ liệu, chẳng hạn như với một số nguồn dữ liệu trong GCP như Cloud Logging và Google Analytics sẽ được hỗ trợ xuất trực tiếp sang BigQuery.

BigQuery Data Transfer Service cho phép truyền dữ liệu sang BigQuery từ các ứng dụng Google SaaS (Google Ads, Cloud Storage), Amazon S3 và các kho dữ liệu khác (Teradata, Redshift).

Dữ liệu trực tuyến, ví dụ như logs hoặc dữ liệu của thiết bị IoT có thể được ghi vào BigQuery bằng cách sử dụng đường ống Cloud DataflowCloud Dataproc jobs hoặc trực tiếp sử dụng API nhập luồng BigQuery.

Kiến trúc của BigQuery

Kiến trúc không máy chủ của BigQuery phân tách bộ nhớ và máy tính, đồng thời cho phép chúng mở rộng quy mô một cách độc lập theo yêu cầu. Cấu trúc này cung cấp cả tính linh hoạt và kiểm soát chi phí cho khách hàng vì họ không cần phải duy trì và chạy các tài nguyên máy tính đắt đỏ của mình mọi lúc. Điều này rất khác với các giải pháp kho dữ liệu đám mây dựa trên node theo truyền thống, hay các hệ thống xử lý song song hàng loạt tại chỗ (on-premise massively parallel processing (MPP) systems). Cách tiếp cận này cũng cho phép khách hàng ở mọi quy mô đưa dữ liệu của họ vào kho dữ liệu và bắt đầu phân tích dữ liệu bằng các sử dụng SQL chuẩn mà không cần lo lắng về các hoạt động cơ sở dữ liệu và kỹ thuật hệ thống.

BigQuery Architecture

Bên cạnh đó, BigQuery sử dụng một loạt các dịch vụ đa nhiệm được thúc đẩy bởi các công nghệ cơ sở hạ tầng cấp thấp nhất của Google như Dremel, Colossus, Jupiter và Bord.

BigQuery: Under the hood
  • Tính toán bằng Dremel – một cụm đa nhiệm lớn thực thi các truy vấn SQL

Dremel biến các truy vấn SQL thành cây thực thi. Các lá của cây được gọi là slot và thực hiện nhiệm vụ đọc dữ liệu từ kho lưu trữ và những tính toán cần thiết. Các nhánh cây được gọi là mixer, là nơi tập hợp các dữ liệu lại với nhau.

Dremel tự động sắp xếp vị trí cho các truy vấn tùy theo mức độ cần thiết, duy trì mức độ ưu tiên tương đương cho các truy vấn đồng thời từ nhiều người dùng. Một người dùng có thể nhận được hàng nghìn vị trí để chạy các truy vấn của họ.

  • Bộ nhớ là Colossus – hệ thống lưu trữ toàn cầu của Google

BigQuery tận dụng định dạng lưu trữ theo cột và thuật toán nén để lưu trữ dữ liệu trong Colossus, được tối ưu hóa để đọc một lượng lớn dữ liệu có cấu trúc.

Colossus cũng xử lý sao chép, phục hồi (khi đĩa gặp sự cố) và quản lý phân tán (do đó sẽ không có điểm lỗi nào). Colossus cho phép người dùng BigQuery mở rộng quy mô lên hàng chục petabyte dữ liệu được lưu trữ liền mạch mà không phải trả tiền phạt khi đính kèm tài nguyên máy tính đắt hơn nhiều so với kho dữ liệu truyền thống.

  • Máy tính và bộ nhớ giao tiếp với nhau thông qua mạng petabit Jupiter

Giữa bộ nhớ và bộ xử lý tính toán có một shuffle với nhiệm vụ sử dụng mạng Jupiter của Google để di chuyển dữ liệu từ nơi này sang nơi khác với tốc độ cực kỳ nhanh chóng.

  • BigQuery được điều phối thông qua Bord – tiền thân của Kubernetes

Borg phân bổ tài nguyên phần cứng và điều hành các mixer và slot.

Google rất chú trọng vào việc liên tục cải tiến những công nghệ này. Người dùng BigQuery sẽ được hưởng lợi từ những cải tiến liên tục về hiệu suất, độ bền, hiệu quả và khả năng mở rộng mà không cần ngừng hoạt động để nâng cấp như theo công nghệ truyền thống.

Bắt đầu với BigQuery

Bạn có thể bắt đầu sử dụng BigQuery đơn giản bằng cách tải dữ liệu về và chạy các lệnh SQL. Không cần phải xây dựng, triển khai hoặc cung cấp các cụm, không cần điều chỉnh kích thước máy ảo, cũng không cần bộ nhớ hay tài nguyên phần cứng. Bạn không cần phải làm bất kỳ công việc thiết lập hay cấu hình nào như khi xây dựng một kho dữ liệu truyền thống.

Để giúp bạn bắt đầu với BigQuery, BigQuery sandbox cung cấp cho bạn quyền truy cập miễn phí vào sức mạnh của BigQuery, 10GB bộ nhớ miễn phí và 1TB dữ liệu truy vấn được phân tích mỗi tháng. Hãy xem danh sách phát BigQuery Spotlight để biết cách thiết lập một BigQuery sandbox, cho phép bạn chạy các truy vấn mà không cần có thẻ tín dụng (credit card).

Bạn có thể truy cập BigQuery theo nhiều cách:

Hãy thử ngay bây giờ, bằng cách truy cập giao diện web của BigQuery trên Google Cloud Consone, gõ đoạn mã lệnh sau và nhấn nút Run.

SELECT EXTRACT(YEAR FROM creation_date) AS year, EXTRACT(MONTH FROM creation_date) AS month, COUNT(creation_date) AS number_posts 
FROM `bigquery-public-data.stackoverflow.stackoverflow_posts` 
WHERE answer_count > 0 GROUP BY year, month ORDER BY year ASC, month ASC;

Truy vấn xử lý khoảng 30GB bài đăng trên StackOverflow có sẵn từ năm 2008 đến năm 2016 trong bộ dữ liệu BigQuery công khai, để tìm ra số lượng bài đăng có ít nhất một câu trả lời, phân nhóm theo năm và tháng.

BigQuery: Query editor and query results

Có thể thấy từ kết quả truy vấn, chỉ mất chưa đầy 2 giây để phân tích 28GB dữ liệu và trả về kết quả. Công cụ BigQuery rất thông minh khi chỉ đọc các cột cần thiết để thực hiện truy vấn và thật ra, chỉ xử lý 327MB dữ liệu trong toàn bộ tập dữ liệu 28MB.

Sử dụng BigQuery trên các tập dữ liệu lớn

Để có bản demo về những gì BigQuery có thể làm với một tập dữ liệu thật sự lớn, hãy xem video sau của Jordan Tigani. Anh đã phân tích tập dữ liệu khoảng 1PB trong BigQuery trong vòng vài giây, với những cải tiến được thực hiện trong nhiều năm để cải thiện hiệu suất cho BigQuery.

Nguồn: Google Cloud Blog