Quay lại bộ đề
Question #259 Topic 1
You are building a report-only data warehouse where the data is streamed into BigQuery via the streaming API. Following Google's best practices, you have both a staging and a production table for the data. How should you design your data loading to ensure that there is only one master dataset without affecting performance on either the ingestion or reporting pieces?
Bạn đang xây dựng một kho dữ liệu chỉ dành cho báo cáo, nơi dữ liệu được stream vào BigQuery thông qua API streaming. Tuân theo các thực hành tốt nhất của Google, bạn có cả bảng tạm (staging) và bảng sản xuất (production) cho dữ liệu. Bạn nên thiết kế quy trình nạp dữ liệu của mình như thế nào để đảm bảo chỉ có một tập dữ liệu master duy nhất mà không ảnh hưởng đến hiệu năng của cả phần thu nhận dữ liệu (ingestion) và phần báo cáo (reporting)?
A
Have a staging table that is an append-only model, and then update the production table every three hours with the changes written to staging.
Sử dụng bảng tạm theo mô hình append-only, sau đó cập nhật bảng sản xuất mỗi ba giờ một lần với các thay đổi được ghi vào bảng tạm.
B
Have a staging table that is an append-only model, and then update the production table every ninety minutes with the changes written to staging.
Sử dụng bảng tạm theo mô hình append-only, sau đó cập nhật bảng sản xuất mỗi 90 phút một lần với các thay đổi được ghi vào bảng tạm.
C
Have a staging table that moves the staged data over to the production table and deletes the contents of the staging table every three hours.
Sử dụng bảng tạm để di chuyển dữ liệu tạm sang bảng sản xuất và xóa nội dung của bảng tạm mỗi ba giờ một lần.
D
Have a staging table that moves the staged data over to the production table and deletes the contents of the staging table every thirty minutes.
Sử dụng bảng tạm để di chuyển dữ liệu tạm sang bảng sản xuất và xóa nội dung của bảng tạm mỗi 30 phút một lần.
Giải thích & Tài liệu tham khảo
Khi stream dữ liệu vào BigQuery bằng Streaming API:
- Streaming Buffer và hạn chế DML: Dữ liệu vừa được stream vào BigQuery sẽ được lưu tạm thời trong streaming buffer trước khi được ghi hoàn toàn xuống ổ đĩa lưu trữ dạng cột vật lý. Quá trình chuyển đổi này có thể mất từ 30 phút đến 90 phút. Trong thời gian dữ liệu nằm ở streaming buffer, BigQuery không cho phép thực hiện các câu lệnh thay đổi dữ liệu (DML) như
DELETE,UPDATEhayMERGEtrực tiếp trên các dòng dữ liệu chưa được commit này (sẽ gây ra lỗiUPDATE/DELETE statement over table metadata not supported). - Giải pháp an toàn: Để di chuyển dữ liệu từ bảng tạm (staging) sang bảng sản xuất (production) và xóa sạch dữ liệu ở bảng tạm mà không gặp lỗi xung đột khóa của streaming buffer, chu kỳ xử lý cần phải đủ dài để đảm bảo toàn bộ dữ liệu cũ trong staging đã được ghi hoàn toàn xuống đĩa và thoát khỏi streaming buffer.
- Chu kỳ 3 giờ (Lựa chọn C) cung cấp một khoảng thời gian đệm an toàn tuyệt đối (lớn hơn giới hạn tối đa 90 phút của buffer) giúp việc thực thi tác vụ xóa dữ liệu staging diễn ra trơn tru mà không làm gián đoạn luồng stream hay gây lỗi hệ thống.
(Đáp án được gợi ý bởi AI)