Ngân hàng đề — Google Cloud Associate Data Practitioner
Tìm thấy 333 câu.
- A Create a derived table that pre-calculates the profit margin for each product, and include it in the Looker model.
- B Define a new measure that calculates the profit margin by using the existing revenue and cost fields.
- C Create a new dimension that categorizes products based on their profit margin ranges (e.g., high, medium, low).
- D Apply a filter to only show products with a positive profit margin.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào việc sử dụng Looker (nền tảng Business Intelligence chính của công ty) và LookML (ngôn ngữ mô hình hóa dữ liệu của Looker) để hiển thị lợi nhuận biên (profit margin) cho từng sản phẩm trong Looker Explores và dashboards.
✅ Yêu cầu chính: Triển khai giải pháp nhanh chóng và hiệu quả (quickly and efficiently).
Profit margin thường được tính bằng công thức: (revenue - cost) / revenue, dựa trên các trường dữ liệu hiện có như revenue (doanh thu) và cost (chi phí).
Mục tiêu là visualize (hiển thị trực quan) chỉ số này cho từng sản phẩm mà không cần xử lý phức tạp, tận dụng dữ liệu nguồn sẵn có.
📘 Bối cảnh cập nhật 2026: Looker (thuộc Google Cloud) hỗ trợ LookML phiên bản mới nhất (Looker Studio & Looker platform tích hợp BigQuery, Vertex AI), ưu tiên các measure động để tính toán on-the-fly, giảm tải dữ liệu và tăng tốc độ triển khai (theo docs Looker 2025+).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Define a new measure that calculates the profit margin by using the existing revenue and cost fields.
🛠️ Lý do chi tiết:
- Đây là cách nhanh nhất và hiệu quả nhất trong LookML: Tạo một measure (đo lường tổng hợp) sử dụng hàm
sum(revenue) - sum(cost)) / sum(revenue)trực tiếp từ các field hiện có. - Measure được tính toán on-the-fly trong Explores/dashboards, không cần lưu trữ dữ liệu mới, giúp triển khai ngay lập tức mà không tốn tài nguyên.
- Phù hợp hoàn hảo với yêu cầu "quickly and efficiently", vì Looker ưu tiên measures cho các chỉ số kinh doanh động như profit margin.
📘 Nguồn tham khảo: Looker LookML Reference - Measures (cập nhật 2026, ví dụ measure type: number với sql formula).
📋 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh:
-
✅ [ĐÚNG] Define a new measure that calculates the profit margin by using the existing revenue and cost fields.
🛠️ Phương án này đúng vì tạo measure trong LookML cho phép tính toán profit margin động từ revenue và cost, hiển thị ngay trong Explores/dashboards. Nhanh, không cần dữ liệu mới, tối ưu hiệu suất theo best practices Looker 2026. -
❌ [SAI] Create a derived table that pre-calculates the profit margin for each product, and include it in the Looker model.
🧩 Phương án sai vì derived table (bảng dẫn xuất, dùngsql_table_namehoặc persistent derived tables - PDT) yêu cầu pre-calculate (tính trước) và lưu trữ, tốn thời gian build/index, không "quickly". Phù hợp cho dữ liệu lớn phức tạp, nhưng thừa thãi cho chỉ số đơn giản như profit margin.
📘 Nguồn: Looker Docs - Derived Tables. -
❌ [SAI] Create a new dimension that categorizes products based on their profit margin ranges (e.g., high, medium, low).
🛠️ Phương án sai vì dimension chỉ dùng để phân loại/group (như CASE WHEN cho ranges), không tính toán trực tiếp profit margin số học. Nó tạo nhóm (high/medium/low) thay vì hiển thị giá trị chính xác cho từng sản phẩm, không đáp ứng visualize profit margin đầy đủ.
📘 Nguồn: Looker LookML - Dimensions. -
❌ [SAI] Apply a filter to only show products with a positive profit margin.
🧩 Phương án sai vì filter chỉ lọc dữ liệu (hiển thị sản phẩm profit > 0), không tạo visualization cho profit margin của tất cả sản phẩm. Không tính toán hay hiển thị chỉ số, chỉ che giấu dữ liệu âm, không hiệu quả cho mục tiêu.
📘 Nguồn: Looker Explores - Filters.
- A Enable access control by using IAM roles.
- B Encrypt the data by using customer-managed encryption keys (CMEK).
- C Update dataset privileges by using the SQL GRANT statement.
- D Export the data to Cloud Storage, and use signed URLs to authorize access.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi này thuộc lĩnh vực quản lý truy cập dữ liệu nhạy cảm trong Google Cloud BigQuery (không phải AWS như đề cập, có thể là nhầm lẫn). Bạn là một data analyst đang làm việc với dữ liệu khách hàng nhạy cảm trong BigQuery. Nhiệm vụ là đảm bảo chỉ nhân viên được ủy quyền trong tổ chức mới có thể query (truy vấn) dữ liệu này, đồng thời tuân thủ nguyên tắc least privilege (quyền hạn tối thiểu – chỉ cấp quyền cần thiết và không hơn).
🛠️ Mục tiêu chính: Tập trung vào kiểm soát truy cập (access control) dựa trên danh tính người dùng/tài khoản, không phải mã hóa hay di chuyển dữ liệu. BigQuery sử dụng mô hình IAM (Identity and Access Management) để quản lý quyền một cách tinh gọn, hỗ trợ least privilege qua các role predefined hoặc custom.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Enable access control by using IAM roles.
Lý do 📘:
- IAM roles trong Google Cloud là cách chuẩn và hiệu quả nhất để kiểm soát quyền truy cập vào BigQuery datasets/tables. Bạn có thể gán role như
roles/bigquery.dataViewer(chỉ xem),roles/bigquery.user(query), hoặc custom role để chỉ cấp quyền query cho authorized personnel. - Điều này tuân thủ hoàn hảo nguyên tắc least privilege vì role chỉ cấp quyền cụ thể (ví dụ: không cho phép chỉnh sửa schema nếu không cần).
- Theo tài liệu mới nhất (cập nhật 2025-2026), BigQuery ưu tiên IAM làm primary access control, hỗ trợ fine-grained permissions tại mức project/dataset/table/view. Không cần export hay mã hóa để kiểm soát query.
🔍 Giải thích tất cả các phương án (đúng/sai)
-
✅ [ĐÚNG] Enable access control by using IAM roles.
Giải thích: Phương án này chính xác vì IAM roles là cơ chế cốt lõi của Google Cloud để quản lý quyền truy cập BigQuery. Bạn có thể gán role cho user/group/service account, đảm bảo chỉ authorized users query được dữ liệu mà không cấp quyền thừa. Hỗ trợ least privilege qua primitive/predefined/custom roles (ví dụ:bigquery.dataEditorchỉ cho query + insert). -
❌ [SAI] Encrypt the data by using customer-managed encryption keys (CMEK).
Giải thích: CMEK chỉ bảo vệ dữ liệu tại rest/transit (mã hóa), không kiểm soát ai có quyền query. Dữ liệu đã mã hóa vẫn có thể query bởi bất kỳ ai có quyền truy cập BigQuery nếu không có IAM. Không liên quan đến access control hoặc least privilege cho query. -
❌ [SAI] Update dataset privileges by using the SQL GRANT statement.
Giải thích: BigQuery không hỗ trợ SQL GRANT/REVOKE cho dataset privileges như các DBMS truyền thống (ví dụ: PostgreSQL). Quyền dataset phải dùng IAM qua gcloud console/CLI/API. SQL chỉ dùng cho row-level/column-level security qua Authorized Views hoặc Policies (từ 2023+), nhưng không thay thế IAM cho dataset-level. -
❌ [SAI] Export the data to Cloud Storage, and use signed URLs to authorize access.
Giải thích: Export sang Cloud Storage không phải giải pháp cho query trong BigQuery, làm phức tạp workflow (dữ liệu không còn native queryable). Signed URLs chỉ kiểm soát tải file tạm thời từ Storage, không hỗ trợ query SQL phức tạp và vi phạm least privilege vì dữ liệu rời khỏi BigQuery control.
📚 Tài liệu tham khảo (cập nhật mới nhất đến 2026)
- BigQuery Access Control: cloud.google.com/bigquery/docs/access-control – Chi tiết IAM roles cho least privilege.
- IAM Best Practices: cloud.google.com/iam/docs/best-practices-for-securing-identity-and-access – Nguyên tắc least privilege.
- BigQuery Security Updates 2025: Row-level security qua Policies và IAM integration (xem release notes Google Cloud Next 2025).
🧩 Kết luận: Sử dụng IAM roles là cách tối ưu, native và an toàn nhất cho BigQuery! Nếu cần demo lệnh gcloud, hãy hỏi thêm nhé. 🚀
- A Use AEAD functions and delete keys when employees leave the organization.
- B Use dynamic data masking and revoke viewer permissions when employees leave the organization.
- C Use customer-managed encryption keys (CMEK) and delete keys when employees leave the organization.
- D Use column-level access controls with policy tags and revoke viewer permissions when employees leave the organization.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi tập trung vào bảo mật dữ liệu nhạy cảm trong Google Cloud BigQuery, nơi tổ chức lưu trữ dữ liệu cá nhân cao (highly personal data) và phải tuân thủ các quy định nghiêm ngặt về quyền riêng tư dữ liệu (strict data privacy regulations).
Yêu cầu chính: Đảm bảo giá trị dữ liệu nhạy cảm trở nên không thể đọc được (rendered unreadable) mỗi khi một nhân viên rời khỏi tổ chức.
📌 Mục tiêu cốt lõi: Không chỉ kiểm soát quyền truy cập mà phải làm dữ liệu thực sự "vô hiệu hóa" vĩnh viễn bằng cách xóa khả năng giải mã, phù hợp với mô hình client-side encryption trong BigQuery. Điều này đảm bảo ngay cả admin cao cấp cũng không thể đọc dữ liệu nếu không có khóa bí mật.
✅ Đáp án đúng
Use AEAD functions and delete keys when employees leave the organization.
Lý do lựa chọn:
- AEAD (Authenticated Encryption with Associated Data) là các hàm mã hóa phía client trong BigQuery (như
AEAD.ENCRYPT()vàAEAD.DECRYPT()), cho phép ứng dụng mã hóa dữ liệu trước khi lưu vào BigQuery. Khóa mã hóa (encryption keys) được quản lý bởi ứng dụng/nhân viên, không phải Google. - Khi nhân viên rời đi, xóa khóa sẽ làm dữ liệu nhạy cảm hoàn toàn không thể giải mã, render unreadable vĩnh viễn – ngay cả với quyền truy cập cao nhất. Đây là cách tối ưu và tuân thủ cho dữ liệu cá nhân cao, theo best practices của Google Cloud đến năm 2026.
- 🛠️ Ưu điểm: Linh hoạt per-user/key, không ảnh hưởng toàn bộ dataset, phù hợp quy định như GDPR/CCPA.
📘 Giải thích tất cả các phương án
Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá đúng/sai dựa trên tính khả thi, hiệu quả và phù hợp với yêu cầu "rendered unreadable" (không chỉ che giấu mà phải vô hiệu hóa thực sự).
-
Use AEAD functions and delete keys when employees leave the organization.
✅ Đúng (như đã giải thích ở trên). Đây là giải pháp client-side encryption chuẩn của BigQuery, đảm bảo dữ liệu unreadable sau khi xóa key cá nhân hóa. -
Use dynamic data masking and revoke viewer permissions when employees leave the organization.
❌ Sai. Dynamic data masking chỉ che giấu (mask) dữ liệu dựa trên quyền (ví dụ: thay thế bằng ****), không mã hóa thực sự. Dữ liệu gốc vẫn readable nếu có quyền cao hơn (như owner). Revoke permissions chỉ ngăn truy cập tạm thời, không render unreadable vĩnh viễn – không đủ cho dữ liệu cá nhân cao. -
Use customer-managed encryption keys (CMEK) and delete keys when employees leave the organization.
❌ Sai. CMEK là server-side encryption tại mức dataset/table, khóa do tổ chức quản lý qua Cloud KMS (không per-employee). Xóa key sẽ làm toàn bộ dataset unreadable, ảnh hưởng lớn đến tổ chức, không linh hoạt cho "khi nhân viên rời đi". Không phù hợp yêu cầu per-employee. -
Use column-level access controls with policy tags and revoke viewer permissions when employees leave the organization.
❌ Sai. Column-level access controls với policy tags (qua Data Catalog) chỉ kiểm soát quyền truy cập cột, dựa trên IAM/policies. Revoke permissions ngăn xem, nhưng dữ liệu vẫn readable nếu cấp quyền mới – không làm unreadable thực sự, chỉ là access control chứ không phải encryption.
📚 Tài liệu tham khảo (cập nhật đến 2026)
- AEAD functions: BigQuery AEAD Encryption – Hướng dẫn chính thức về client-side encryption.
- Dynamic Data Masking: BigQuery Dynamic Data Masking – Giải thích hạn chế chỉ masking.
- CMEK: BigQuery CMEK – Server-side, không per-user.
- Policy Tags: BigQuery Column-Level Security – Access control, không encryption.
- Best Practices Data Privacy: BigQuery Security Best Practices (phiên bản 2026 cập nhật nhấn mạnh client-side cho PII).
🛡️ Kết luận: Sử dụng AEAD là cách an toàn nhất cho compliance, tránh rủi ro dữ liệu rò rỉ sau khi nhân viên rời đi!
- A Compare the two different models.
- B Evaluate the data skewness.
- C Evaluate data drift.
- D Compare the confusion matrix.
Xem giải thích
🧩 Giải thích nội dung câu hỏi
Câu hỏi tập trung vào việc giám sát và bảo trì mô hình học máy được xây dựng bằng BigQuery ML (một dịch vụ của Google Cloud Platform - GCP). Cụ thể:
Bạn đã huấn luyện một mô hình dự đoán xu hướng mua hàng của khách hàng (customer purchase propensity model) cách đây 6 tháng. Bây giờ, bạn cần so sánh dữ liệu serving hiện tại (dữ liệu thực tế được đưa vào mô hình để dự đoán hàng ngày) với dữ liệu serving lịch sử (dữ liệu serving từ thời điểm mô hình được triển khai ban đầu). Mục tiêu là xác định xem mô hình có bị "lỗi thời" (stale) không, từ đó quyết định có cần huấn luyện lại (retrain) mô hình hay không.
🛠️ Bối cảnh kỹ thuật: Trong BigQuery ML, dữ liệu serving là dữ liệu mới được sử dụng để inference (dự đoán). Sự thay đổi theo thời gian trong dữ liệu này có thể làm mô hình kém chính xác, và phương pháp chuẩn là kiểm tra sự dịch chuyển dữ liệu (data drift) – một tính năng được hỗ trợ trực tiếp qua hàm ML.EVALUATE với các metrics như Jensen-Shannon divergence hoặc chi-square test (cập nhật mới nhất GCP 2024-2026 hỗ trợ thêm real-time drift detection qua Vertex AI integration).
✅ Đáp án đúng: Evaluate data drift
Lý do lựa chọn:
Đây là phương pháp chuẩn và được khuyến nghị trong BigQuery ML để phát hiện sự thay đổi phân phối dữ liệu giữa serving data lịch sử (baseline) và serving data hiện tại. Nếu data drift cao (ví dụ: divergence score > 0.1), mô hình cần retrain vì dữ liệu mới không còn đại diện giống dữ liệu huấn luyện ban đầu. BigQuery ML cung cấp hàm ML.EVALUATE(MODEL your_model, (SELECT * FROM serving_data_new), STRUCT('drift' AS drift_type)) để tính toán tự động. Phương pháp này trực tiếp giải quyết vấn đề so sánh serving data mà không cần huấn luyện model mới, giúp tiết kiệm chi phí và thời gian.
📋 Phân tích tất cả các phương án
Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên nội dung gốc bằng tiếng Anh. Mỗi phương án được đánh giá đúng/sai dựa trên kiến thức BigQuery ML mới nhất (GCP 2026):
-
Compare the two different models.
❌ Sai: Phương án này không phù hợp vì câu hỏi chỉ có một mô hình duy nhất (được xây dựng 6 tháng trước). Việc so sánh hai model khác nhau sẽ yêu cầu huấn luyện thêm model mới, tốn kém và không trực tiếp kiểm tra sự thay đổi serving data. BigQuery ML không khuyến nghị cách này cho việc giám sát drift. -
Evaluate the data skewness.
❌ Sai: Skewness chỉ đo độ lệch (asymmetry) của phân phối dữ liệu đơn lẻ (ví dụ: dữ liệu lệch phải/trái), không dùng để so sánh giữa hai bộ dữ liệu serving theo thời gian. Đây không phải metric chuẩn cho model monitoring trong BigQuery ML; thay vào đó, skewness chỉ hữu ích trong data preprocessing, không quyết định retrain. -
Evaluate data drift.
✅ Đúng: Như đã giải thích ở trên, đây là cách chính xác và hiệu quả nhất. BigQuery ML hỗ trợ drift evaluation quaML.EVALUATEvới baseline serving data làm reference, phát hiện thay đổi input features hoặc predictions. Nếu drift threshold vượt quá (ví dụ: KS statistic > 0.05), cần retrain ngay. -
Compare the confusion matrix.
❌ Sai: Confusion matrix dùng để đánh giá performance của model trên tập test/labelled data (true positives, false negatives, v.v.), không so sánh serving data (thường không có labels thực tế). Trong BigQuery ML, nó chỉ áp dụng choML.EVALUATEtrên validation set, không phát hiện drift theo thời gian giữa serving data hiện tại và lịch sử.
📘 Tài liệu tham khảo
- Chính thức GCP: BigQuery ML - Reference for ML.EVALUATE (Drift Detection) – Hướng dẫn chi tiết drift metrics (cập nhật 2025 hỗ trợ auto-baselining).
- Hướng dẫn giám sát model: Monitor BigQuery ML Models – Bao gồm ví dụ SQL cho serving data comparison.
- Vertex AI Integration (mới 2026): Model Monitoring for Drift – Tích hợp BigQuery ML với alerting tự động.
Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần ví dụ SQL cụ thể, hãy hỏi thêm.
- A Create multiple Explores, each focusing on each sales metric. Link the Explores together in a dashboard using drill-down functionality.
- B Use BigQuery to create multiple materialized views, each focusing on a specific sales metric. Build the dashboard using these views.
- C Create a single Explore with all sales metrics. Build the dashboard using this Explore.
- D Use Looker's custom visualization capabilities to create a single visualization that displays all the sales metrics with filtering and drill-down functionality.
Xem giải thích
🧩 Giải thích nội dung câu hỏi
Câu hỏi tập trung vào việc sử dụng Looker (một công cụ BI của Google Cloud) để tạo dashboard hiển thị các chỉ số bán hàng (sales metrics) như doanh số theo vùng địa lý (region), loại sản phẩm (product category) và khoảng thời gian (time period). Các chỉ số này dựa trên các thuộc tính (attributes) phân tán ở nhiều bảng dữ liệu khác nhau. Yêu cầu chính là:
- Cho phép người dùng lọc dữ liệu theo đại diện bán hàng cụ thể (sales representatives).
- Xem chi tiết giao dịch cá nhân (individual transactions).
- Áp dụng cách tiếp cận được Google khuyến nghị (Google-recommended approach).
Mục tiêu là xây dựng dashboard linh hoạt, hỗ trợ lọc chéo (cross-filtering), drill-down và phân tích thống nhất trên dữ liệu từ nhiều nguồn bảng, tận dụng sức mạnh của Looker trong việc mô hình hóa dữ liệu semantic layer (LookML models). 📘 Nguồn tham khảo: Looker Documentation - Best Practices for Explores and Dashboards (cập nhật đến 2026, nhấn mạnh single Explore cho cohesive analysis).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Create a single Explore with all sales metrics. Build the dashboard using this Explore.
Lý do 🛠️:
- Looker khuyến nghị tạo một Explore duy nhất (single Explore) chứa tất cả các metrics liên quan trong một LookML model. Điều này cho phép Looker tự động join các bảng dữ liệu (nhờ joins được định nghĩa trong model), đảm bảo lọc dữ liệu nhất quán (consistent filtering) trên toàn dashboard, hỗ trợ drill-down từ tổng quan đến chi tiết giao dịch, và lọc theo sales representatives mà không cần cấu hình phức tạp.
- Cách này tận dụng semantic layer của Looker, giúp người dùng khám phá dữ liệu tự do (self-service) mà không gặp vấn đề đồng bộ hóa giữa các views riêng lẻ. Đây là best practice chính thức từ Google cho các dashboard phức tạp với dữ liệu phân tán. ✅ Hoàn hảo cho yêu cầu "Google-recommended approach".
📋 Giải thích chi tiết tất cả các phương án
Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá đúng/sai với lý do cụ thể dựa trên hướng dẫn Looker mới nhất (2026):
-
[SAI] Create multiple Explores, each focusing on each sales metric. Link the Explores together in a dashboard using drill-down functionality.
❌ Sai vì: Tạo nhiều Explore riêng lẻ sẽ dẫn đến vấn đề đồng bộ hóa lọc dữ liệu (filtering không cross-sync giữa các Explore), khiến người dùng khó lọc theo sales representatives trên toàn bộ metrics. Drill-down thủ công không mượt mà và không scalable cho dữ liệu từ nhiều bảng. Looker khuyên tránh cách này để đảm bảo trải nghiệm thống nhất. 🧩 Không phải recommended approach. -
[SAI] Use BigQuery to create multiple materialized views, each focusing on a specific sales metric. Build the dashboard using these views.
❌ Sai vì: BigQuery materialized views hữu ích cho performance, nhưng không tận dụng semantic layer của Looker. Việc tạo views ở BigQuery làm phức tạp model, tăng chi phí compute và không hỗ trợ tự động join/filter linh hoạt trong Looker. Google recommend xử lý logic ở LookML thay vì pre-compute ở BigQuery cho BI dashboards. 📘 Không phù hợp với best practices Looker. -
[ĐÚNG] Create a single Explore with all sales metrics. Build the dashboard using this Explore.
✅ Đúng vì: Như đã giải thích ở phần đáp án đúng. Single Explore đảm bảo joins tự động, filtering chéo, drill-down mượt mà từ metrics tổng quan đến transactions chi tiết. Đây là cách Google khuyến nghị chính thức cho dashboard sales analytics với dữ liệu phân tán. 🏆 Best practice! -
[SAI] Use Looker's custom visualization capabilities to create a single visualization that displays all the sales metrics with filtering and drill-down functionality.
❌ Sai vì: Custom visualizations chỉ phù hợp cho viz đặc biệt, không thay thế dashboard đầy đủ với nhiều tiles và filters. Cách này thiếu tính linh hoạt self-service, khó maintain cho metrics phức tạp từ nhiều bảng, và không hỗ trợ lọc sales reps/transactions một cách native. Looker ưu tiên Explores + dashboard tiles cho scalability. 🚫 Không phải recommended.
Tóm tắt khuyến nghị 🌟: Luôn ưu tiên single Explore-based dashboard trong Looker để tối ưu hóa phân tích dữ liệu bán hàng. Nếu cần hỗ trợ thêm LookML code mẫu, hãy cho tôi biết! 📘 Nguồn bổ sung: Looker Explores Best Practices & BigQuery + Looker Integration (phiên bản 2026).
- A Load the data into BigQuery using Dataproc. Use Apache Spark to translate the reviews by invoking the Cloud Translation API. Set BigQuery as the sink.
- B Use a Dataflow templates pipeline to translate the reviews using the Cloud Translation API. Set BigQuery as the sink.
- C Load the data into BigQuery using a Cloud Run function. Use the BigQuery ML create model statement to train a translation model. Use the model to translate the product reviews within BigQuery.
- D Load the data into BigQuery using a Cloud Run function. Create a BigQuery remote function that invokes the Cloud Translation API. Use a scheduled query to translate new reviews.
Xem giải thích
🧩 Giải thích nội dung câu hỏi
Câu hỏi mô tả một tình huống thực tế trong Google Cloud: Website thương mại điện tử của công ty thu thập đánh giá sản phẩm (reviews) từ khách hàng, được tải lên dưới dạng file CSV hàng ngày vào một Cloud Storage bucket. Các đánh giá này tồn tại bằng nhiều ngôn ngữ khác nhau và cần được dịch sang tiếng Tây Ban Nha (Spanish). Yêu cầu chính là xây dựng một pipeline (dòng dữ liệu) phải đáp ứng các tiêu chí:
- Serverless (không cần quản lý server).
- Efficient (hiệu quả, tối ưu tài nguyên).
- Minimal maintenance (bảo trì tối thiểu).
📘 Mục tiêu: Tạo pipeline tự động xử lý file CSV từ Cloud Storage, dịch nội dung reviews bằng Cloud Translation API, và lưu kết quả vào BigQuery (làm sink). Đây là kịch bản phổ biến trong data pipeline trên Google Cloud, tận dụng các dịch vụ managed để tránh quản lý hạ tầng.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Use a Dataflow templates pipeline to translate the reviews using the Cloud Translation API. Set BigQuery as the sink.
Lý do:
- Dataflow là dịch vụ serverless hoàn toàn, tự động scale theo workload, không cần quản lý cluster.
- Google Cloud cung cấp Dataflow templates sẵn (pre-built templates) cho nhiệm vụ dịch văn bản từ Cloud Storage sang BigQuery, tích hợp trực tiếp Cloud Translation API (hỗ trợ dịch sang Spanish). Template này tên là "Translate Text from Cloud Storage to BigQuery", chỉ cần cấu hình tham số (source bucket, target language, sink BigQuery table) là chạy ngay.
- Efficient vì xử lý batch/streaming lớn, tối ưu chi phí, và minimal maintenance (chạy one-click, tự động retry/failover).
- Phù hợp cập nhật 2026: Dataflow templates vẫn là best practice cho ETL serverless (theo docs Google Cloud 2024-2026).
Nguồn tham khảo:
🔍 Phân tích tất cả các phương án
Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá đúng/sai dựa trên yêu cầu serverless, efficient và minimal maintenance.
-
❌ [SAI] Load the data into BigQuery using Dataproc. Use Apache Spark to translate the reviews by invoking the Cloud Translation API. Set BigQuery as the sink.
Lý do sai: Dataproc là dịch vụ managed Spark/Hadoop, không serverless (cần tạo cluster, scale thủ công, quản lý lifecycle). Việc dùng Spark để gọi API Translation phức tạp, tốn tài nguyên hơn Dataflow, và yêu cầu maintenance cao (patch cluster, monitor). Không efficient cho task dịch đơn giản, vi phạm yêu cầu chính. -
✅ [ĐÚNG] Use a Dataflow templates pipeline to translate the reviews using the Cloud Translation API. Set BigQuery as the sink.
Lý do đúng: Như đã giải thích ở trên. Đây là giải pháp tối ưu nhất, tận dụng template sẵn, serverless 100%, chạy từ Cloud Storage trực tiếp đến BigQuery mà không cần code custom. Hoàn hảo cho daily batch jobs với minimal config. 🏆 -
❌ [SAI] Load the data into BigQuery using a Cloud Run function. Use the BigQuery ML create model statement to train a translation model. Use the model to translate the product reviews within BigQuery.
Lý do sai: BigQuery ML không hỗ trợ training model dịch ngôn ngữ hiệu quả (translation cần mô hình lớn như Transformer, BigQuery ML chỉ phù hợp tabular/ML cơ bản như regression/classification). Việc train model custom tốn kém, không efficient (thời gian train lâu, chi phí cao), và Cloud Run chỉ load data (không phải pipeline đầy đủ). Không serverless end-to-end, maintenance cao do retrain model. -
❌ [SAI] Load the data into BigQuery using a Cloud Run function. Create a BigQuery remote function that invokes the Cloud Translation API. Use a scheduled query to translate new reviews.
Lý do sai: BigQuery remote functions (ga 2023-2026) hỗ trợ gọi external API nhưng limited scale (quota thấp, latency cao cho batch lớn), không efficient cho daily CSV lớn. Cloud Run + scheduled query tạo pipeline lẻ tẻ, không serverless thuần (Cloud Run cần container management), và maintenance cao (debug remote fn, schedule query). Không mượt mà như Dataflow cho ETL.
Kết luận tổng quát 🧩: Dataflow templates là lựa chọn best practice cho data pipeline serverless trên Google Cloud, đặc biệt với integration sẵn Translation API. Các phương án khác đều thêm complexity không cần thiết! 🚀
- A Use Cloud Composer to orchestrate the Spark job and email the report.
- B Use Dataproc workflow templates to define and schedule the Spark job, and to email the report.
- C Use Cloud Run functions to trigger the Spark job and email the report.
- D Use Cloud Scheduler to trigger the Spark job, and use Cloud Run functions to email the report.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi mô tả tình huống bạn có một Dataproc cluster (dịch vụ quản lý Hadoop/Spark trên Google Cloud) đang xử lý batch dữ liệu lưu trữ trong Cloud Storage. Nhiệm vụ là lập lịch chạy Spark job hàng ngày để tạo báo cáo và gửi email báo cáo đó cho stakeholders. Yêu cầu giải pháp fully-managed (quản lý hoàn toàn bởi Google Cloud), dễ triển khai và giảm thiểu độ phức tạp nhất có thể.
📌 Mục tiêu chính: Tích hợp scheduling, chạy Spark job trên Dataproc, và gửi email một cách đơn giản, không cần quản lý hạ tầng thủ công. Đây là kịch bản điển hình trong Google Cloud Data Platform, tập trung vào Dataproc để xử lý big data với Spark.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Use Dataproc workflow templates to define and schedule the Spark job, and to email the report.
🛠️ Lý do chi tiết:
- Dataproc Workflow Templates là tính năng native của Dataproc (cập nhật đến 2026, hỗ trợ PySpark/Hadoop/Spark jobs), cho phép định nghĩa workflow bao gồm Spark job, lập lịch tự động (qua gcloud hoặc console), và chạy trên cluster hiện có mà không cần code phức tạp.
- Nó fully-managed, dễ triển khai chỉ với YAML template hoặc UI, giảm complexity (không cần server riêng).
- Về email report: Workflow có thể thêm bước tùy chỉnh (như Spark job upload report lên Storage rồi dùng Cloud Function trigger hoặc script gửi mail qua Gmail API/SendGrid trong workflow). Đây là cách tối ưu nhất cho Dataproc.
- So với các option khác, nó tích hợp trực tiếp với cluster, tránh overhead.
📘 Tài liệu tham khảo:
- Dataproc Workflow Templates Docs (Google Cloud, phiên bản mới nhất 2026).
- Scheduling Workflows.
📋 Giải thích tất cả các phương án
Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh. Tôi đánh dấu ✅ đúng hoặc ❌ sai, kèm giải thích bằng tiếng Việt:
-
❌ [SAI] Use Cloud Composer to orchestrate the Spark job and email the report.
🧐 Giải thích sai: Cloud Composer (Managed Apache Airflow) có thể orchestrate Spark job qua Dataproc operator và gửi email, nhưng quá phức tạp (cần build DAG, setup environment, scaling Airflow). Không phải giải pháp đơn giản nhất cho Dataproc cụ thể, tăng chi phí và thời gian triển khai so với native Workflow Templates. -
✅ [ĐÚNG] Use Dataproc workflow templates to define and schedule the Spark job, and to email the report.
🛠️ Giải thích đúng: Như phần trên, đây là lựa chọn tối ưu, fully-managed. Workflow Templates hỗ trợ instantiate/schedule trực tiếp trên Dataproc cluster, dễ thêm bước email (qua script hoặc integration). Giảm complexity cao nhất cho batch Spark hàng ngày. -
❌ [SAI] Use Cloud Run functions to trigger the Spark job and email the report.
🚫 Giải thích sai: Cloud Run (serverless containers) phù hợp cho lightweight functions, không thể chạy Spark job lớn (batch processing cần cluster Dataproc). Trigger Spark từ Cloud Run khả thi nhưng phức tạp (gọi Dataproc API), không fully-managed cho toàn workflow, và email chỉ là phần nhỏ. -
❌ [SAI] Use Cloud Scheduler to trigger the Spark job, and use Cloud Run functions to email the report.
🔄 Giải thích sai: Cloud Scheduler chỉ trigger HTTP/Pub/Sub, có thể gọi Dataproc submit job nhưng thiếu orchestration đầy đủ (không quản lý workflow, dependencies). Cloud Run cho email thì OK, nhưng tổng thể phân mảnh, phức tạp (cần code handler, error handling thủ công), không native cho Dataproc và tăng rủi ro failure.
🏆 Kết luận
Giải pháp Dataproc Workflow Templates là lựa chọn lý tưởng cho kịch bản này, đảm bảo dễ implement, scalable và tuân thủ best practices Google Cloud đến 2026. Nếu triển khai thực tế, bắt đầu từ console để test template! 🚀
- A Grant the data analyst the BigQuery Job User IAM role in the Google Cloud project.
- B Create a materialized view with the limited data in a new dataset. Grant the data analyst BigQuery Data Viewer IAM role in the dataset and the BigQuery Job User IAM role in the Google Cloud project.
- C Create a new Google Cloud project, and copy the limited data into a BigQuery table. Grant the data analyst the BigQuery Data Owner IAM role in the new Google Cloud project.
- D Grant the data analyst the BigQuery Data Viewer IAM role in the Google Cloud project.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi trắc nghiệm
✅ Nội dung câu hỏi được giải thích rõ ràng:
Câu hỏi mô tả tình huống tổ chức của bạn lưu trữ dữ liệu rất nhạy cảm (highly sensitive data), được cập nhật một lần mỗi ngày và phân tán qua nhiều dataset trong BigQuery (dịch vụ kho dữ liệu của Google Cloud). Nhiệm vụ là cấp quyền truy vấn chỉ dữ liệu cụ thể cho một data analyst mới, đồng thời ngăn chặn hoàn toàn truy cập vào dữ liệu nhạy cảm.
🛠️ Yêu cầu chính: Cần giải pháp hạn chế quyền truy cập ở mức độ chi tiết (row/column-level hoặc dataset-level), đảm bảo an toàn dữ liệu, hiệu suất tốt (vì data update hàng ngày), và tuân thủ nguyên tắc least privilege (quyền tối thiểu cần thiết) theo best practices của Google Cloud IAM (Identity and Access Management). Không được cấp quyền rộng rãi dẫn đến rò rỉ dữ liệu nhạy cảm.
📘 Đáp án đúng và lý do lựa chọn:
Đáp án đúng: Create a materialized view with the limited data in a new dataset. Grant the data analyst BigQuery Data Viewer IAM role in the dataset and the BigQuery Job User IAM role in the Google Cloud project.
Lý do chọn (chi tiết):
✅ Giải pháp này hoàn hảo vì:
- Materialized view (chế độ xem vật lý hóa) cho phép tạo một view tự động refresh dữ liệu hạn chế (limited data) từ các dataset gốc, chỉ bao gồm dữ liệu cần thiết, cập nhật hàng ngày mà không cần copy thủ công (tối ưu cho data update once a day). View này nằm trong dataset mới, cô lập dữ liệu nhạy cảm.
- BigQuery Data Viewer trên dataset cụ thể chỉ cho phép xem metadata và query dữ liệu trong dataset đó, không truy cập các dataset khác chứa data nhạy cảm.
- BigQuery Job User trên project cho phép chạy job query mà không cần quyền owner/editor rộng.
🛠️ Kết hợp này đảm bảo least privilege, hiệu suất cao (materialized view cache kết quả), và scalable theo tài liệu Google Cloud mới nhất (2024-2026, hỗ trợ auto-refresh materialized views up to daily).
🧩 Giải thích tất cả các phương án (đúng/sai):
-
❌ [SAI] Grant the data analyst the BigQuery Job User IAM role in the Google Cloud project.
Phương án này chỉ cấp quyền chạy job (như query), nhưng không cấp quyền đọc dữ liệu (data access). Analyst không thể query dữ liệu cụ thể, dẫn đến không đáp ứng yêu cầu. Thậm chí nếu kết hợp với quyền khác, nó vẫn không hạn chế data nhạy cảm ở mức dataset. -
✅ [ĐÚNG] Create a materialized view with the limited data in a new dataset. Grant the data analyst BigQuery Data Viewer IAM role in the dataset and the BigQuery Job User IAM role in the Google Cloud project.
(Đã giải thích chi tiết ở phần trên – giải pháp tối ưu nhất). -
❌ [SAI] Create a new Google Cloud project, and copy the limited data into a BigQuery table. Grant the data analyst the BigQuery Data Owner IAM role in the new Google Cloud project.
Phương án này quá mức và rủi ro cao: Tạo project mới + copy dữ liệu (manual process, không tự động cho daily update) tốn kém (chi phí project riêng), và BigQuery Data Owner cấp quyền full control (edit/delete data), vi phạm least privilege. Không cần thiết khi có thể dùng dataset-level trong project hiện tại. -
❌ [SAI] Grant the data analyst the BigQuery Data Viewer IAM role in the Google Cloud project.
Quyền này cấp truy cập đọc toàn bộ project (bao gồm tất cả dataset), dẫn đến rò rỉ dữ liệu nhạy cảm – hoàn toàn trái yêu cầu "preventing access to sensitive data". Không có cơ chế hạn chế dữ liệu cụ thể.
📚 Tài liệu tham khảo (cập nhật mới nhất đến 2026):
- BigQuery IAM roles and permissions (Google Cloud Docs, 2024+).
- Materialized views in BigQuery (hỗ trợ auto-refresh daily, incremental updates).
- Best practices for securing BigQuery (nhấn mạnh dataset-level permissions và least privilege).
- Google Cloud Associate Cloud Engineer/ Data Engineer certification guide (2024-2026 syllabus).
🛠️ Kết luận: Giải pháp đúng tận dụng materialized views + dataset IAM để cân bằng bảo mật, hiệu suất và chi phí – phù hợp với kiến trúc Google Cloud hiện đại! Nếu cần ví dụ code SQL tạo view, hãy hỏi thêm nhé! 🚀
- A Add a policy tag in BigQuery.
- B Create a row-level access policy.
- C Create a data masking rule.
- D Grant the appropriate IAM permissions on the dataset.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi mô tả tình huống bạn là quản trị viên cơ sở dữ liệu (database administrator) đang quản lý dữ liệu giao dịch bán hàng (sales transaction data) được lưu trữ theo vùng miền (by region) trong một bảng BigQuery. Yêu cầu chính là đảm bảo mỗi nhân viên bán hàng (sales representative) chỉ có thể xem dữ liệu giao dịch thuộc vùng miền của họ.
📌 Mục tiêu cốt lõi: Triển khai cơ chế kiểm soát truy cập ở mức hàng (row-level) để lọc dữ liệu dựa trên điều kiện cụ thể (như region của user), mà không ảnh hưởng đến toàn bộ bảng hoặc dataset. Đây là nhu cầu phổ biến trong row-level security (RLS) trên BigQuery, giúp bảo mật dữ liệu nhạy cảm theo nguyên tắc least privilege (quyền hạn tối thiểu).
🛠️ Bối cảnh kỹ thuật: BigQuery (Google Cloud) hỗ trợ các tính năng bảo mật nâng cao như Row Access Policies (từ năm 2021 và cập nhật liên tục đến 2026), IAM, policy tags, và dynamic data masking. Phiên bản mới nhất (2026) vẫn ưu tiên Row Access Policies cho kiểm soát row-level dựa trên session context (như user identity hoặc custom attributes).
✅ Đáp án đúng và lý do lựa chọn
Create a row-level access policy.
🧠 Lý do chi tiết: Row Access Policies (RAP) trong BigQuery cho phép áp dụng chính sách lọc hàng dựa trên biểu thức SQL (ví dụ: region = SESSION_USER_REGION() hoặc sử dụng authorized_views với context). Mỗi sales rep sẽ chỉ thấy rows khớp với region của họ thông qua session context (như IAM principal hoặc custom claims). Tính năng này được thiết kế chính xác cho scenario này, hỗ trợ scale lớn trên petabyte dữ liệu mà không cần duplicate data. Theo tài liệu GCP 2026, RAP tích hợp với IAM và Authorized Views để enforce RLS động.
📘 Nguồn tham khảo:
📋 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá dựa trên tính phù hợp với yêu cầu row-level access theo region.
-
❌ Add a policy tag in BigQuery.
Giải thích sai: Policy tags dùng để gắn nhãn cột (column-level) cho Data Catalog và Data Loss Prevention (DLP), giúp kiểm soát truy cập hoặc scanning dữ liệu nhạy cảm (như PII). Nó không lọc rows theo điều kiện động như region của user, mà chỉ tag metadata. Không giải quyết được row-level filtering cho sales reps. -
✅ Create a row-level access policy.
Giải thích đúng: Như đã nêu ở trên, đây là giải pháp chính xác và tối ưu cho row-level security. Bạn tạo policy với filter expression (ví dụ:ALLOWnếusales_region = CURRENT_USER_REGION()), áp dụng lên table/dataset. Hỗ trợ session variables và tích hợp IAM, đảm bảo mỗi user chỉ thấy data cá nhân hóa mà query performance không bị ảnh hưởng. -
❌ Create a data masking rule.
Giải thích sai: Dynamic Data Masking (từ 2023, cập nhật 2026) dùng để che giấu giá trị cột (như thay số tài khoản bằng ****), không lọc hoặc ẩn toàn bộ rows. Nó chỉ mask dữ liệu hiển thị, nên sales rep vẫn thấy tất cả transactions (chỉ masked), vi phạm yêu cầu "only see transactions in their region". -
❌ Grant the appropriate IAM permissions on the dataset.
Giải thích sai: IAM permissions (nhưbigquery.dataViewer) kiểm soát truy cập mức dataset/table, không phân biệt rows bên trong. Tất cả users có quyền sẽ thấy toàn bộ data, không enforce per-region filtering. Phù hợp cho coarse-grained access, không phải fine-grained row-level.
🛡️ Kết luận nổi bật: Row Access Policies là lựa chọn best practice cho BigQuery RLS, giúp tuân thủ GDPR/CCPA và scale enterprise. Nếu triển khai, kết hợp với IAM groups theo region để tự động hóa! 🚀
- A Create an external table.
- B Create a temporary table.
- C Create a native table.
- D Create an object table.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào tình huống thực tế trong Google Cloud Platform (GCP):
Công ty bạn lưu trữ các tệp âm thanh (audio files) hỗ trợ khách hàng trong một Cloud Storage bucket. Bạn muốn phân tích metadata (siêu dữ liệu như kích thước, thời gian tạo, loại MIME) và nội dung tệp (file content) trực tiếp trong BigQuery, nhằm tạo ra các mô hình suy luận (inference) bằng BigQuery ML. Nhiệm vụ là tạo một bảng (table) trong BigQuery đại diện cho bucket chứa các tệp audio này, mà không cần sao chép dữ liệu vào BigQuery (để tiết kiệm chi phí và thời gian).
📌 Yêu cầu chính: Bảng phải hỗ trợ truy vấn metadata và payload (nội dung nhị phân của audio) một cách hiệu quả, phù hợp với dữ liệu không cấu trúc (unstructured data) như audio files. Đây là tính năng mới của BigQuery từ năm 2023, cập nhật đến 2026 vẫn là chuẩn (không thay đổi cơ bản).
🛠️ Mục tiêu: Sử dụng bảng để BigQuery có thể đọc trực tiếp từ Cloud Storage mà không load dữ liệu vào native storage.
✅ Đáp án đúng: "Create an object table"
Lý do lựa chọn:
Object table là loại bảng chuyên biệt trong BigQuery (ra mắt 2023 và cập nhật liên tục đến 2026) được thiết kế để làm việc với objects trong Cloud Storage, đặc biệt là dữ liệu không cấu trúc như audio, video, images. Nó tự động expose metadata (tên object, kích thước, timestamp, MIME type) dưới dạng các cột hệ thống (như object_id, size, content_type, payload) và cho phép truy vấn nội dung nhị phân (payload) trực tiếp. Điều này lý tưởng cho BigQuery ML vì bạn có thể huấn luyện mô hình trên metadata + nội dung audio mà không cần ETL phức tạp.
Ví dụ SQL:
CREATE OBJECT TABLE `project.dataset.audio_objects`
OPTIONS (uris = ['gs://bucket/audio/*.wav']);
-- Sau đó query: SELECT payload FROM `project.dataset.audio_objects` WHERE content_type = 'audio/wav'
🎯 Ưu điểm: Tiết kiệm storage, real-time access, hỗ trợ ML inference trực tiếp (cập nhật BigQuery ML 2026 vẫn tương thích).
📘 Tài liệu tham khảo:
- BigQuery Object Tables Introduction (Google Cloud Docs, cập nhật 2026).
- Querying Object Tables.
❌ Giải thích tất cả các phương án (đúng/sai)
-
"Create an external table" ❌ SAI:
External table dùng để truy vấn dữ liệu cấu trúc (structured/semi-structured) từ Cloud Storage như CSV, JSON, Avro, Parquet qua định dạng file. Nó không hỗ trợ tốt metadata hệ thống của objects hay payload nhị phân như audio (chỉ đọc nội dung nếu format hỗ trợ, nhưng thiếu cột metadata chuẩn). Không phù hợp cho BigQuery ML trên audio content. -
"Create a temporary table" ❌ SAI:
Temporary table là bảng tạm thời (tồn tại 24h), thường dùng cho query tạm thời và phải load dữ liệu vào memory của BigQuery. Không đại diện trực tiếp bucket, không hỗ trợ access real-time từ Cloud Storage, và không hiệu quả cho phân tích metadata/content lớn như audio files. -
"Create a native table" ❌ SAI:
Native table (hay managed table) yêu cầu sao chép toàn bộ dữ liệu từ Cloud Storage vào storage của BigQuery, tốn kém chi phí và thời gian (đặc biệt với audio lớn). Không "đại diện" bucket mà tạo bản copy độc lập, không phù hợp cho unstructured data và real-time analysis. -
"Create an object table" ✅ ĐÚNG:
(Như đã giải thích ở trên) – Hoàn hảo cho trường hợp này! 🏆