0

Google BigQuery - Bài học 34: Capstone Project (Đồ án cuối khóa) – Thiết kế kiến trúc Data Platform hoàn chỉnh cho hệ thống E-commerce & Logistics

Chào anh em! Chúc mừng chúng ta đã đi đến chặng đường cuối cùng của chuỗi series chuyên sâu về Google BigQuery.

Trong suốt 33 bài học vừa qua, chúng ta đã đi qua một hành trình trọn vẹn từ việc mổ xẻ tầng vật lý sâu nhất của hạ tầng Google (Colossus, Capacitor, Dremel, Jupiter), làm chủ cấu trúc tài nguyên, thông thạo GoogleSQL (ARRAY, STRUCT, UNNEST, JSON, Window Functions, Procedural SQL, GIS, Time Travel, Clones), cho đến các kỹ thuật tối ưu hiệu năng đỉnh cao (Partitioning, Clustering, BI Engine, Materialized Views, Search Indexes) và hiện đại hóa quy trình biến đổi dữ liệu với Dataform / dbt.

Hôm nay, trong Bài học 34 (Đồ án cuối khóa - Capstone Project), chúng ta sẽ xâu chuỗi toàn bộ những kiến thức tinh hoa đó lại thành một Kiến trúc Data Platform hoàn chỉnh, chuẩn Enterprise, phục vụ cho một hệ thống E-commerce và Logistics quy mô lớn (với hàng chục triệu giao dịch đơn hàng và hàng vạn sự kiện vận tải mỗi ngày).

Hãy cùng phác thảo bản thiết kế hệ thống tổng thể ngay bây giờ!

1. Bức tranh toàn cảnh: Kiến trúc Data Platform E-commerce & Logistics

Một hệ thống dữ liệu hiện đại không thể dựng bằng cảm tính. Dưới đây là mô hình kiến trúc chuẩn mực (End-to-end Data Architecture) mà một Data Architect sẽ thiết kế cho toàn bộ doanh nghiệp:

Plaintext

+-----------------------------------------------------------------------------------+
| 1. TẦNG NGUỒN DỮ LIỆU (DATA SOURCES)                                              |
|    - MySQL / PostgreSQL (OLTP Databases: Users, Orders, Inventory)                |
|    - Mobile & Web Client Apps (Clickstream, Webhooks, Device Logs)                |
|    - GPS Tracking Devices (Logistics Fleet Telemetry)                             |
+-----------------------------------------------------------------------------------+
                                    |
                                    v (CDC qua Debezium / Kafka / Storage Write API)
+-----------------------------------------------------------------------------------+
| 2. TẦNG NẠP DỮ LIỆU THỜI GIAN THỰC & BATCH (INGESTION LAYER)                      |
|    - Google Cloud Pub/Sub / Apache Kafka (Real-time stream)                       |
|    - Google Cloud Storage - GCS (Batch Parquet dumps)                             |
+-----------------------------------------------------------------------------------+
                                    |
                                    v (Đẩy thẳng vào BigQuery)
+-----------------------------------------------------------------------------------+
| 3. TẦNG LƯU TRỮ VÀ TỐI ƯU TRÊN BIGQUERY (STORAGE & OPTIMIZATION LAYER)           |
|    - Project: `company-data-warehouse`                                            |
|    - Dataset `bronze_raw` (Dữ liệu thô nguyên bản từ CDC & Logs)                  |
|    - Dataset `silver_core` (Làm sạch, khử trùng lặp Deduplication qua ROW_NUMBER) |
|      * Áp dụng Table Partitioning theo `created_at` (DATE)                        |
|      * Áp dụng Table Clustering theo `customer_id`, `status`                      |
|    - Dataset `gold_marts` (Mô hình Star Schema & Flat Tables / Materialized Views) |
+-----------------------------------------------------------------------------------+
                                    |
                                    v (Quản lý code biến đổi qua Dataform / dbt + Git)
+-----------------------------------------------------------------------------------+
| 4. TẦNG BIẾN ĐỔI VÀ KIỂM THỬ (TRANSFORMATION & GOVERNANCE LAYER)                  |
|    - Dataform / dbt Project (CI/CD tự động qua GitHub Actions)                    |
|    - Kiểm thử tự động (Data Tests: not_null, unique, relationships)               |
+-----------------------------------------------------------------------------------+
                                    |
                                    v (Phục vụ người dùng cuối)
+-----------------------------------------------------------------------------------+
| 5. TẦNG PHỤC VỤ & KHAI THÁC (SERVING & BI LAYER)                                  |
|    - Looker Studio & Power BI (Tăng tốc dưới 1 giây nhờ BigQuery BI Engine)       |
|    - Remote Functions (Gọi API AI chống gian lận trên Cloud Run)                  |
|    - Authorized Views (Phân quyền bảo mật tuyệt đối cho Khối Kế toán / Vận hành)   |
+-----------------------------------------------------------------------------------+

2. Chi tiết từng phân đoạn trong Đồ án hệ thống

Phân đoạn 1: Ingestion (Nạp dữ liệu từ Backend sang BigQuery)

  • Dữ liệu giao dịch (Transactional Data): Sử dụng công nghệ Change Data Capture (CDC) với Debezium kết hợp Apache Kafka để bắt mọi sự kiện INSERT, UPDATE, DELETE từ cơ sở dữ liệu MySQL của hệ thống đặt hàng, đẩy thẳng vào BigQuery thông qua BigQuery Storage Write API (giao thức gRPC tốc độ cao).

  • Dữ liệu log và sự kiện (Event Logs): Các sự kiện clickstream và vị trí GPS của đội ngũ shipper được gom nhóm qua Google Cloud Pub/Sub và ghi thành các file định dạng Parquet lên Google Cloud Storage (GCS) trước khi nạp batch vào BigQuery bằng lệnh bq load.

Phân đoạn 2: Storage & Partitioning Strategy (Quy hoạch lưu trữ)

  • Tách biệt Project: Tách rõ ràng company-storage-project (chỉ chứa dữ liệu Colossus) với các Compute Projects (bq-compute-bi, bq-compute-logistics) để kiểm soát ngân sách và hóa đơn Cloud minh bạch theo đúng Bài 5 và Bài 6.

  • Mô hình Medallion (Bronze →\rightarrow Silver →\rightarrow Gold):

    • Bronze (raw_ecommerce): Lưu trữ toàn bộ payload JSON thô nguyên bản, kết hợp đánh Search Index để tra cứu log khi có sự cố.

    • Silver (core_dwh): Dữ liệu đã được làm sạch, chuyển đổi múi giờ Asia/Ho_Chi_Minh, khử trùng lặp (Deduplication) bằng ROW_NUMBER() và QUALIFY. Các bảng lớn được cấu hình chuẩn Partition by DATE(created_at) kèm Cluster by customer_id, store_id và bật require_partition_filter = TRUE.

    • Gold (mart_sales, mart_logistics): Các bảng phẳng (Flat Tables) tổng hợp và Materialized Views tự động cập nhật ngầm phục vụ trực tiếp cho báo cáo.

Phân đoạn 3: Transformation với Dataform / dbt (Chuẩn kỹ thuật phần mềm)

  • Toàn bộ mã nguồn SQL biến đổi dữ liệu không viết tùy tiện trên giao diện web mà được tổ chức thành các mô hình module trong một Project Dataform / dbt tích hợp sẵn với kho lưu trữ Git (GitHub).

  • Sử dụng hàm ref() để tự động tạo sơ đồ phụ thuộc DAG, đảm bảo các bảng dimension chạy trước, bảng fact đơn hàng chạy sau, và các báo cáo mart chạy cuối cùng.

  • Thiết lập các quy tắc kiểm thử dữ liệu tự động (not_null, unique) chạy mỗi khi có lệnh deploy code mới qua CI/CD.

Phân đoạn 4: Serving & Security (Phục vụ và Bảo mật)

  • Tăng tốc BI: Kích hoạt BigQuery BI Engine với dung lượng RAM In-memory phù hợp cho Dataset báo cáo tổng hợp, giúp các biểu đồ trên Looker Studio phản hồi mượt mà dưới 1 giây.

  • Bảo mật đa tầng: Sử dụng Authorized Views và Row-Level Security để che giấu thông tin nhạy cảm của khách hàng, đảm bảo nhân viên mỗi phòng ban chỉ thấy đúng dữ liệu thuộc quyền hạn của mình.

  • Mở rộng tính năng: Sử dụng Remote Functions để gọi các Microservice phân tích AI đặt trên Cloud Run ngay trong câu lệnh SELECT khi cần chấm điểm rủi ro đơn hàng.

3. Lời kết: Hành trình trở thành một Data Platform Engineer thực thụ

Anh em thân mến!

Đến đây, chúng ta đã khép lại toàn bộ hành trình 34 bài học chiến lược và kỹ thuật sâu sắc về Google BigQuery.

Từ một người mới bắt đầu dễ mắc phải những cái bẫy cơ bản như SELECT *, LIMIT 10, hay làm sập hệ thống vì thiếu phân vùng bảng, giờ đây bạn đã có trong tay tư duy toàn diện của một Data Architect / Senior Backend Engineer:

  • Hiểu thấu đáo từ tầng vật lý ổ cứng Colossus, mạng Jupiter cho đến bộ máy tính toán Dremel.

  • Thành thạo GoogleSQL thượng thừa, xử lý mảng ARRAY, STRUCT, UNNEST, JSON, Window Functions và Procedural Scripting.

  • Nắm vững nghệ thuật tối ưu hóa hiệu năng, cắt giảm chi phí với Partitioning, Clustering, BI Engine, Materialized Views và Search Indexes.

  • Biết cách hiện đại hóa quy trình phát triển với Dataform và dbt theo chuẩn công nghiệp.

Kiến thức đã sẵn sàng, công cụ đã nằm trong tay. Giờ là lúc anh em tự tin bước ra chiến trường thực tế, áp dụng những kiến thức này vào việc xây dựng và vận hành những hệ thống dữ liệu triệu đô cho doanh nghiệp!

Chúc anh em luôn giữ vững ngọn lửa đam mê kỹ thuật và hẹn gặp lại trong các series chuyên sâu tiếp theo!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí