Bài 4/8Kiến thức

Bài 4, Khi nào cần BigQuery (và khi nào chưa)

BigQuery cho bạn dữ liệu sự kiện thô, không lấy mẫu, ghép được với dữ liệu bán hàng. Nhưng nó cũng là chi phí và độ phức tạp mới. Bài này đưa ra checklist khi nào thật sự cần một kho dữ liệu, giải thích schema sự kiện lồng nhau của GA4 và mẫu truy vấn cốt lõi, và cách kiểm soát chi phí.

The Data Way7 phút đọc
Một khối lập phương sáng ở giữa với nhiều dòng dữ liệu chảy vào từ các hướng, ẩn dụ kho dữ liệu nơi các nguồn gặp nhau

Từ bài này, series bước vào phần quy mô dữ liệu, tức Tầng C của lộ trình. Đây là phần thiên về kỹ thuật, và tôi nói thẳng ngay: phần lớn doanh nghiệp nhỏ chưa cần tới nó. Nếu giao diện GA4 và một dashboard Looker vẫn trả lời đủ câu hỏi của bạn, hãy dừng ở đó và quay lại phần này khi thật sự chạm trần. Đọc trước để biết con đường phía trước là tốt, nhưng đừng dựng kho dữ liệu chỉ vì thấy nó "chuyên nghiệp".

Nhà Gọn giờ đã lớn: web, ứng dụng đặt hàng, hệ thống bán hàng, và một danh sách khách trung thành. Câu hỏi họ bắt đầu hỏi mà GA4 không trả lời được: giá trị vòng đời của khách đến từ Facebook so với khách đến từ tìm kiếm tự nhiên là bao nhiêu. Câu này cần ghép hành vi web với doanh thu thật, và đó là lúc BigQuery có nghĩa.


Kho dữ liệu là nơi mọi nguồn gặp nhau

Kho dữ liệu là một cơ sở dữ liệu tập trung, tối ưu cho việc phân tích khối lớn, nơi mọi nguồn dữ liệu của bạn hợp lại. Nó khác cơ sở dữ liệu vận hành của ứng dụng (loại phục vụ giao dịch hằng ngày). BigQuery là kho dữ liệu của Google, và GA4 có thể tự đổ dữ liệu sự kiện thô vào đó.

Giá trị nằm ở ba thứ giao diện GA4 không cho:

  • Dữ liệu thô, không lấy mẫu. Giao diện GA4 đôi khi lấy mẫu (ước lượng từ một phần dữ liệu) khi khối lớn, và gộp những giá trị hiếm thành nhóm "khác". BigQuery cho bạn từng sự kiện một, đầy đủ.
  • Ghép tự do. Bạn nối dữ liệu web với dữ liệu bán hàng, CRM, ứng dụng, bất cứ nguồn nào có chung một mã khách.
  • Giữ lâu. GA4 chỉ giữ dữ liệu chi tiết một thời gian; BigQuery giữ bao lâu tùy bạn.

Checklist: khi nào thật sự cần BigQuery

Bạn cần BigQuery nếu có ít nhất một trong các điều sau:

  • Câu hỏi cần ghép GA4 với dữ liệu bán hàng, CRM, hoặc cơ sở dữ liệu ứng dụng, ví dụ giá trị vòng đời theo kênh.
  • Giao diện GA4 bị lấy mẫu hoặc gộp nhóm "khác" làm bạn không thấy chi tiết cần thấy.
  • Cần retention hoặc quy công chính xác trên dữ liệu thô.
  • Muốn giữ dữ liệu lâu hơn thời hạn của GA4.
  • Chuẩn bị cho bước tiếp theo: mô hình hóa dữ liệu, product analytics, hoặc máy học.

Bạn CHƯA cần nếu giao diện GA4 cộng Looker vẫn trả lời đủ. Đừng dựng kho dữ liệu vì thấy sang, hãy dựng vì có một câu hỏi cụ thể mà cách hiện tại không trả lời được. Với Nhà Gọn, câu hỏi giá trị vòng đời theo kênh là lý do chính đáng; nếu chưa có câu hỏi như vậy, họ đã không cần.


Schema sự kiện lồng nhau và lệnh mở lồng

Đây là chỗ làm người mới bối rối nhất. Trong bảng sự kiện của GA4 trên BigQuery, mỗi dòng là một sự kiện. Nhưng thuộc tính sự kiện không nằm ở các cột phẳng, mà là một mảng các cặp khóa và giá trị lồng bên trong.

Nghĩa là để lấy giá trị của một thuộc tính, ví dụ kênh của đơn hàng, bạn phải "mở lồng" mảng đó rồi lọc theo khóa. Đây là mẫu truy vấn cốt lõi cần thuộc:

SELECT
  event_name,
  (SELECT value.string_value FROM UNNEST(event_params)
     WHERE key = 'channel') AS channel,
  (SELECT value.int_value FROM UNNEST(event_params)
     WHERE key = 'value') AS order_value
FROM `du-an.analytics_123456.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20260601' AND '20260630'
  AND event_name = 'purchase';

Chú ý dòng lọc theo ngày ở cuối. Nó không phải tùy chọn.

Luôn lọc theo ngày, nếu không hóa đơn sốc

BigQuery tính tiền theo lượng dữ liệu mỗi truy vấn quét. Bảng sự kiện được chia theo ngày. Nếu bạn quên lọc ngày, một truy vấn có thể quét toàn bộ nhiều tháng hoặc nhiều năm dữ liệu, và hóa đơn có thể nhảy lên bất ngờ.

Luôn thêm điều kiện lọc theo khoảng ngày trong mọi truy vấn. Và đừng dùng lệnh lấy tất cả cột trên bảng lớn, chỉ chọn cột bạn cần. Đặt một cảnh báo ngân sách trong Google Cloud để được báo khi chi phí vượt ngưỡng. Đây là kỷ luật cơ bản nhưng bỏ qua nó là bài học đắt.


Câu hỏi mà chỉ BigQuery trả lời được

Sức mạnh thật của BigQuery lộ ra khi ghép nguồn. Đây là kiểu truy vấn Nhà Gọn cần, ghép sự kiện đăng ký web với doanh thu thật để thấy giá trị theo kênh:

SELECT
  g.first_channel,
  COUNT(DISTINCT g.user_id) AS khach,
  SUM(b.total_spent) AS doanh_thu
FROM ga_users g
JOIN sales.customers b ON b.user_id = g.user_id
GROUP BY g.first_channel
ORDER BY doanh_thu DESC;

Truy vấn kiểu này trả lời câu "kênh nào mang về khách có giá trị vòng đời cao nhất", điều mà giao diện GA4 không làm được vì nó không biết doanh thu thật của bạn. Đây chính là loại câu hỏi biện minh cho việc dựng kho dữ liệu.

Một lưu ý khi đối chiếu: số trong BigQuery sẽ hơi lệch số trong giao diện GA4, do khác định nghĩa phiên và cách quy công. Lệch nhẹ là bình thường, đừng hoảng.


Ba lỗi thường gặp với BigQuery

LỗiVì sao hạiCách sửa
Bật xuất dữ liệu muộnMất toàn bộ dữ liệu quá khứ, không hồi tốBật ngay cả khi chưa dùng
Quên lọc theo ngàyQuét cả kho, hóa đơn sốcLuôn lọc khoảng ngày, đặt cảnh báo ngân sách
Sửa trực tiếp bảng xuất gốcMất dữ liệu gốc, không dựng lại đượcLàm việc trên bảng trung gian riêng

Trước khi sang bài 5

  1. Nếu bạn qua được checklist ở trên, bật xuất dữ liệu GA4 sang BigQuery, chọn chế độ hằng ngày.
  2. Chờ dữ liệu về, kiểm tra bảng sự kiện xuất hiện.
  3. Luyện lệnh mở lồng: lấy ba thuộc tính ra thành cột cho một sự kiện, luôn lọc theo ngày.
  4. Thực hiện một phép ghép giữa GA4 và dữ liệu bán hàng qua mã người dùng.
  5. Đặt một cảnh báo ngân sách trong Google Cloud.

Có dữ liệu thô trong kho rồi, bạn sẽ nhanh chóng thấy mình viết đi viết lại cùng những phép mở lồng và biến đổi. Bài 5 nói về công cụ tự động hóa việc đó, biến sự kiện thô thành các bảng sạch dùng được, một cách có kỷ luật và kiểm thử được, gọi là dbt.

Đọc tiếp

Đọc xong rồi?

Bạn muốn nhờ rà soát khâu quy công quảng cáo hoặc kho dữ liệu?

30 phút trao đổi miễn phí. Bạn chia sẻ cách đang đo quảng cáo và kho dữ liệu hiện có, chúng tôi chỉ ra chỗ conversion đang bị đếm sai hoặc chi phí BigQuery đang lãng phí. Không sales, không ép.