Ngân hàng đề — Google Cloud Professional Data Engineer
Tìm thấy 429 câu.
- A Update the current pipeline and use the drain flag.
- B Update the current pipeline and provide the transform mapping JSON object.
- C Create a new pipeline that has the same Cloud Pub/Sub subscription and cancel the old pipeline.
- D Create a new pipeline that has a new Cloud Pub/Sub subscription and cancel the old pipeline.
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 cập nhật một pipeline streaming trên Google Cloud Dataflow đang sử dụng Google Cloud Pub/Sub subscription làm nguồn dữ liệu đầu vào. Vấn đề chính là: code mới sẽ không tương thích (incompatible) với phiên bản hiện tại, và bạn không muốn mất bất kỳ dữ liệu nào trong quá trình cập nhật.
🛠️ Tình huống cụ thể:
- Pipeline đang chạy streaming (dữ liệu liên tục từ Pub/Sub).
- Cập nhật code có thay đổi lớn, không thể deploy trực tiếp mà không gián đoạn.
- Mục tiêu: Đảm bảo tất cả dữ liệu từ Pub/Sub được xử lý đầy đủ, tránh mất mát (data loss) do backlog hoặc duplicate.
Đây là kịch bản thực tế trong Dataflow (Apache Beam), nơi streaming job cần xử lý backlog (dữ liệu tích tụ) một cách an toàn trước khi chuyển sang code mới. Theo tài liệu Google Cloud mới nhất (2024-2026), Dataflow hỗ trợ các cơ chế update đặc biệt cho streaming để tránh downtime và data loss.
✅ Đáp án đúng: Update the current pipeline and use the drain flag
Lý do lựa chọn:
- Khi cập nhật pipeline streaming với thay đổi incompatible, bạn sử dụng lệnh deploy với flag
--drain(hoặc qua Console/UI). - Drain mode sẽ dừng việc đọc dữ liệu mới từ Pub/Sub, nhưng tiếp tục xử lý toàn bộ backlog hiện có bằng code cũ một cách graceful (an toàn). Sau khi drain hoàn tất (backlog = 0), Dataflow tự động khởi động job mới với code cập nhật và tiếp tục đọc từ cùng subscription.
- Kết quả: Không mất data, không duplicate, chuyển tiếp mượt mà. Đây là best practice chính thức cho streaming updates từ phiên bản Dataflow 2.x trở lên (hỗ trợ đầy đủ đến 2026).
- Ví dụ lệnh:
gcloud dataflow jobs update JOB_ID --region=REGION --drain
📋 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 nội dung tiếng Anh gốc:
-
Update the current pipeline and use the drain flag.
✅ Đúng. Như đã giải thích ở trên, drain flag là phương pháp chuẩn để xử lý incompatible updates trong streaming Dataflow, đảm bảo drain backlog trước khi apply code mới, tránh data loss hoàn toàn. -
Update the current pipeline and provide the transform mapping JSON object.
❌ Sai. Transform mapping JSON chỉ dùng cho compatible updates (như schema changes nhỏ hoặc optimize graph), không hỗ trợ incompatible code changes. Nó yêu cầu code mới tương thích cấu trúc transform cũ, nếu không sẽ fail deploy và có thể mất data nếu không drain đúng cách. -
Create a new pipeline that has the same Cloud Pub/Sub subscription and cancel the old pipeline.
❌ Sai. Tạo pipeline mới với cùng subscription sẽ gây duplicate processing (xử lý data 2 lần), dẫn đến data duplication/inconsistency. Cancel old pipeline đột ngột sẽ mất backlog chưa xử lý, vi phạm yêu cầu "không mất data". -
Create a new pipeline that has a new Cloud Pub/Sub subscription and cancel the old pipeline.
❌ Sai. Tạo subscription mới nghĩa là bỏ qua toàn bộ dữ liệu cũ trong subscription hiện tại (data sẽ expire theo retention policy, thường 7-30 ngày). Cancel old pipeline sẽ mất backlog, gây data loss nghiêm trọng.
📘 Tài liệu tham khảo (cập nhật mới nhất 2024-2026)
- Google Cloud Dataflow: Updating a pipeline – Chi tiết drain mode cho streaming.
- Dataflow Streaming Best Practices – Hướng dẫn tránh data loss.
- Pub/Sub và Dataflow Integration – Xử lý subscription trong updates.
- Apache Beam docs (Dataflow backend): Job Management.
Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần ví dụ code hoặc demo, hãy hỏi thêm nhé!
- A Redefine the schema by evenly distributing reads and writes across the row space of the table.
- B The performance issue should be resolved over time as the site of the BigDate cluster is increased.
- C Redesign the schema to use a single row key to identify values that need to be updated frequently in the cluster.
- D Redesign the schema to use row keys based on numeric IDs that increase sequentially per user viewing the offers.
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ả một công ty đang chạy chiến dịch động đầu tiên trong mùa lễ hội, sử dụng dữ liệu thời gian thực để phục vụ các ưu đãi khác nhau. Các nhà khoa học dữ liệu thu thập hàng terabyte dữ liệu tăng nhanh hàng giờ trong 30 ngày. Họ dùng Google Cloud Dataflow để tiền xử lý dữ liệu và lưu trữ các đặc trưng (signals) cần cho mô hình ML vào Google Cloud Bigtable. Vấn đề: Hiệu suất đọc/ghi kém với tải ban đầu 10 TB dữ liệu. Mục tiêu: Cải thiện hiệu suất đồng thời giảm thiểu chi phí.
🔍 Nguyên nhân cốt lõi: Bigtable là NoSQL database phân tán, hiệu suất phụ thuộc vào thiết kế schema row key. Nếu row key không phân bố đều (hotspots), các node sẽ bị quá tải, dẫn đến latency cao và throughput thấp. Với dữ liệu lớn và tăng nhanh, cần tối ưu schema để reads/writes lan tỏa đều trên bảng.
📘 Tài liệu tham khảo:
- Google Cloud Bigtable Performance Tuning (cập nhật 2024-2026: Nhấn mạnh tránh hotspots qua row key salting/hash).
- Bigtable Schema Design Best Practices (phiên bản mới nhất khuyến nghị even distribution cho high-throughput workloads).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Redefine the schema by evenly distributing reads and writes across the row space of the table.
Lý do: 🛠️ Trong Bigtable, hotspots xảy ra khi reads/writes tập trung vào ít row key, gây bottleneck. Việc tái định nghĩa schema để phân bố đều (ví dụ: dùng hashing, salting row key như hash(user_id)#timestamp#data) sẽ lan tỏa tải đều trên toàn bộ row space của table. Điều này cải thiện throughput đọc/ghi lên đến 10x mà không cần scale cluster (giảm chi phí, vì Bigtable autoscales nhưng tốn kém nếu overprovision). Phù hợp với tải 10 TB ban đầu và tăng trưởng nhanh từ Dataflow. Đây là best practice chính thức từ Google cho real-time ML features.
📋 Giải thích tất cả các phương án (đúng và sai)
-
✅ Redefine the schema by evenly distributing reads and writes across the row space of the table.
Giải thích đúng: 🟢 Phương án tối ưu nhất. Phân bố đều row key tránh hotspots, tăng performance ngay lập tức cho reads/writes lớn từ Dataflow. Tiết kiệm chi phí vì không cần tài nguyên thừa. Áp dụng kỹ thuật như row key prefix với random salt (ví dụ:rand32#user_id). Kết quả: Throughput cao, latency thấp cho 10 TB+ dữ liệu. -
❌ The performance issue should be resolved over time as the site of the BigDate cluster is increased.
Giải thích sai: 🔴 Bigtable là fully managed service, không có "BigDate cluster" (có lẽ lỗi đánh máy Bigtable). Tăng node size autoscales nhưng không giải quyết gốc rễ hotspots, chỉ tạm thời và tăng chi phí cao (node-hour billing). Với tải tăng nhanh, vấn đề vẫn tồn tại; Google khuyến nghị fix schema trước scale. -
❌ Redesign the schema to use a single row key to identify values that need to be updated frequently in the cluster.
Giải thích sai: ❌ Tệ nhất! Single row key tạo hotspot cực độ (tất cả updates đổ vào 1 row), gây throttle và failure. Bigtable giới hạn QPS/row (~10k writes/sec/row), không phù hợp frequent updates từ Dataflow. Tăng latency, không scale, vi phạm nguyên tắc "distribute access patterns". -
❌ Redesign the schema to use row keys based on numeric IDs that increase sequentially per user viewing the offers.
Giải thích sai: 🟡 Sequential IDs (như timestamp hoặc auto-increment user_id) gây sequential hotspots – writes mới luôn append cuối table, overload node cuối cùng. Với dữ liệu tăng hàng giờ (TB/hour), hiệu suất kém tương tự. Google docs cảnh báo tránh monotonic keys; thay vào đó dùng hash/randomize.
🧠 Kết luận: Tập trung schema design là chìa khóa cho Bigtable high-perf low-cost. Nếu implement, test với Bigtable emulator hoặc production load test! 🚀
Dataflow to create a real-time dashboard for the CFO. During testing, you notice that some messages are missing in the dashboard. You check the logs, and all messages are being published to Cloud Pub/Sub successfully. What should you do next?
- A Check the dashboard application to see if it is not displaying correctly.
- B Run a fixed dataset through the Cloud Dataflow pipeline and analyze the output.
- C Use Google Observability Monitoring on Cloud Pub/Sub to find the missing messages.
- D Switch Cloud Dataflow to pull messages from Cloud Pub/Sub instead of Cloud Pub/Sub pushing messages to Cloud Dataflow.
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ả một hệ thống phần mềm sử dụng định dạng JSON đơn giản để gửi tin nhắn. Các tin nhắn này được publish (xuất bản) thành công lên Google Cloud Pub/Sub (dịch vụ hàng đợi tin nhắn thời gian thực). Sau đó, chúng được xử lý bởi Google Cloud Dataflow (dịch vụ xử lý dữ liệu stream và batch theo mô hình Apache Beam) để tạo bảng điều khiển thời gian thực (real-time dashboard) dành cho CFO (Giám đốc Tài chính).
📍 Vấn đề chính: Trong quá trình kiểm tra (testing), một số tin nhắn bị thiếu (missing) trên dashboard. Tuy nhiên, logs xác nhận tất cả tin nhắn đều được publish thành công lên Pub/Sub.
🛠️ Mục tiêu: Xác định bước tiếp theo để debug (gỡ lỗi) vấn đề. Vấn đề không nằm ở việc publish (đã OK), nên cần kiểm tra khâu xử lý tiếp theo, đặc biệt là pipeline Dataflow hoặc các bước sau đó. Đây là tình huống troubleshooting điển hình trong Google Cloud, tập trung vào tính toàn vẹn dữ liệu (data integrity) trong pipeline stream processing (theo tài liệu AWS không liên quan, mà dựa trên Google Cloud docs cập nhật đến 2026: Dataflow hỗ trợ streaming pipelines với exactly-once processing qua Pub/Sub snapshots và Dataflow runner v2).
📘 Tài liệu tham khảo:
- Google Cloud Pub/Sub Troubleshooting (cập nhật 2025).
- Dataflow Streaming Pipelines Best Practices (phiên bản mới nhất 2026, nhấn mạnh testing với fixed datasets).
- Apache Beam Testing Guide.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Run a fixed dataset through the Cloud Dataflow pipeline and analyze the output.
Lý do chi tiết:
- ✅ Đây là bước debug hiệu quả nhất tiếp theo vì logs đã xác nhận Pub/Sub publish OK, nên vấn đề có thể nằm ở pipeline Dataflow (ví dụ: lỗi transform, windowing, grouping, hoặc filtering trong Apache Beam code làm mất dữ liệu).
- 🧪 Chạy một fixed dataset (bộ dữ liệu cố định, biết trước số lượng tin nhắn) qua pipeline giúp tái tạo vấn đề một cách có kiểm soát, so sánh input/output để xác định chính xác điểm mất dữ liệu (missing messages).
- Theo best practices Dataflow 2026, phương pháp này hỗ trợ unit testing và integration testing cho streaming pipelines, sử dụng Pub/Sub emulator hoặc test subscriptions. Điều này nhanh hơn, rẻ hơn và chính xác hơn so với các cách khác.
📋 Giải thích tất cả các phương án (đúng/sai)
-
[SAI] Check the dashboard application to see if it is not displaying correctly.
❌ Sai vì: Vấn đề đã được xác nhận qua logs Pub/Sub (publish OK), nhưng chưa kiểm tra Dataflow – khâu trung gian. Kiểm tra dashboard (ứng dụng cuối) là bước muộn (premature), có thể dashboard đúng nhưng Dataflow đã mất dữ liệu. Nên ưu tiên verify pipeline trước để tránh waste time (theo Dataflow debugging guide: always test pipeline trước sink). -
[ĐÚNG] Run a fixed dataset through the Cloud Dataflow pipeline and analyze the output.
✅ Đúng vì: Như giải thích ở trên. 🧪 Phương pháp này isolates vấn đề vào Dataflow, sử dụng input cố định để đo lường loss rate (tỷ lệ mất dữ liệu), hỗ trợ Dataflow's Flex Templates và Beam's TestPipeline cho testing nhanh (cập nhật 2026). -
[SAI] Use Google Observability Monitoring on Cloud Pub/Sub to find the missing messages.
❌ Sai vì: Monitoring (nay là Cloud Monitoring/Observability) trên Pub/Sub chỉ theo dõi metrics như publish rate, ack deadline, dead letter queue – không tìm "missing messages" cụ thể vì Pub/Sub đảm bảo at-least-once delivery. Vấn đề không ở Pub/Sub (logs OK), mà ở Dataflow consumer; monitoring Pub/Sub thừa và không giải quyết root cause. -
[SAI] Switch Cloud Dataflow to pull messages from Cloud Pub/Sub instead of Cloud Pub/Sub pushing messages to Cloud Dataflow.
❌ Sai vì: Dataflow streaming mặc định sử dụng push subscription từ Pub/Sub (hiệu quả cho real-time, auto-scaling). Chuyển sang pull (Dataflow pull từ Pub/Sub) không giải quyết missing messages, có thể làm chậm hơn và phức tạp (yêu cầu custom subscriber). Theo docs 2026, push là recommended cho Dataflow; thay đổi này là red herring (lạc hướng).
Company Overview -
Flowlogistic is a leading logistics and supply chain provider. They help businesses throughout the world manage their resources and transport them to their final destination. The company has grown rapidly, expanding their offerings to include rail, truck, aircraft, and oceanic shipping.
Company Background -
The company started as a regional trucking company, and then expanded into other logistics market. Because they have not updated their infrastructure, managing and tracking orders and shipments has become a bottleneck. To improve operations, Flowlogistic developed proprietary technology for tracking shipments in real time at the parcel level. However, they are unable to deploy it because their technology stack, based on Apache Kafka, cannot support the processing volume. In addition, Flowlogistic wants to further analyze their orders and shipments to determine how best to deploy their resources.
Solution Concept -
Flowlogistic wants to implement two concepts using the cloud:
✑ Use their proprietary technology in a real-time inventory-tracking system that indicates the location of their loads
✑ Perform analytics on all their orders and shipment logs, which contain both structured and unstructured data, to determine how best to deploy resources, which markets to expand info. They also want to use predictive analytics to learn earlier when a shipment will be delayed.
Existing Technical Environment -
Flowlogistic architecture resides in a single data center:
✑ Databases
8 physical servers in 2 clusters
- SQL Server `" user data, inventory, static data
3 physical servers
- Cassandra `" metadata, tracking messages
10 Kafka servers `" tracking message aggregation and batch insert
✑ Application servers `" customer front end, middleware for order/customs
60 virtual machines across 20 physical servers
- Tomcat `" Java services
- Nginx `" static content
- Batch servers
✑ Storage appliances
- iSCSI for virtual machine (VM) hosts
- Fibre Channel storage area network (FC SAN) `" SQL server storage
- Network-attached storage (NAS) image storage, logs, backups
✑ 10 Apache Hadoop /Spark servers
- Core Data Lake
- Data analysis workloads
✑ 20 miscellaneous servers
- Jenkins, monitoring, bastion hosts,
Business Requirements -
Build a reliable and reproducible environment with scaled panty of production.
✑ Aggregate data in a centralized Data Lake for analysis
✑ Use historical data to perform predictive analytics on future shipments
✑ Accurately track every shipment worldwide using proprietary technology
✑ Improve business agility and speed of innovation through rapid provisioning of new resources
✑ Analyze and optimize architecture for performance in the cloud
✑ Migrate fully to the cloud if all other requirements are met
Technical Requirements -
✑ Handle both streaming and batch data
✑ Migrate existing Hadoop workloads
✑ Ensure architecture is scalable and elastic to meet the changing demands of the company.
✑ Use managed services whenever possible
✑ Encrypt data flight and at rest
✑ Connect a VPN between the production data center and cloud environment
SEO Statement -
We have grown so quickly that our inability to upgrade our infrastructure is really hampering further growth and efficiency. We are efficient at moving shipments around the world, but we are inefficient at moving data around.
We need to organize our information so we can more easily understand where our customers are and what they are shipping.
CTO Statement -
IT has never been a priority for us, so as our data has grown, we have not invested enough in our technology. I have a good staff to manage IT, but they are so busy managing our infrastructure that I cannot get them to do the things that really matter, such as organizing our data, building the analytics, and figuring out how to implement the CFO' s tracking technology.
CFO Statement -
Part of our competitive advantage is that we penalize ourselves for late shipments and deliveries. Knowing where out shipments are at all times has a direct correlation to our bottom line and profitability. Additionally, I don't want to commit capital to building out a server environment.
Flowlogistic wants to use Google BigQuery as their primary analysis system, but they still have Apache Hadoop and Spark workloads that they cannot move to
BigQuery. Flowlogistic does not know how to store the data that is common to both workloads. What should they do?
- A Store the common data in BigQuery as partitioned tables.
- B Store the common data in BigQuery and expose authorized views.
- C Store the common data encoded as Avro in Google Cloud Storage.
- D Store he common data in the HDFS storage for a Google Cloud Dataproc cluster.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi thuộc case study Flowlogistic, một công ty logistics đang gặp khó khăn với hệ thống cũ dựa trên Apache Kafka, Hadoop/Spark, và các database truyền thống. Họ muốn di chuyển lên Google Cloud để xử lý dữ liệu streaming/batch thời gian thực, phân tích dự đoán (predictive analytics), và xây dựng data lake tập trung.
Vấn đề cốt lõi: Flowlogistic chọn Google BigQuery làm hệ thống phân tích chính (primary analysis system) cho dữ liệu có cấu trúc và không cấu trúc từ orders/shipments. Tuy nhiên, họ vẫn có các workload Apache Hadoop và Spark hiện tại không thể migrate sang BigQuery (do tính phức tạp hoặc yêu cầu xử lý cụ thể). Dữ liệu chung (common data) cần được lưu trữ sao cho cả BigQuery lẫn Hadoop/Spark workloads đều có thể truy cập hiệu quả, scalable, và tuân thủ yêu cầu kỹ thuật như dùng managed services, elastic scaling, mã hóa dữ liệu.
Mục tiêu: Tìm giải pháp lưu trữ dữ liệu chung tối ưu, hỗ trợ cả hai hệ thống mà không làm bottleneck, phù hợp với data lake trên Google Cloud Storage (GCS) – nền tảng lưu trữ managed, scalable cho BigQuery và Dataproc (dịch vụ managed Hadoop/Spark trên GCP).
Bối cảnh cập nhật 2026: Theo tài liệu GCP mới nhất (Google Cloud Dataproc 2.0+ và BigQuery 2024-2026 updates), GCS là "single source of truth" cho dữ liệu chia sẻ giữa serverless analytics (BigQuery) và batch/streaming processing (Dataproc), với hỗ trợ định dạng Avro cho schema evolution và compression hiệu quả. (📘 Nguồn: Google Cloud Dataproc Documentation, BigQuery External Tables).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Store the common data encoded as Avro in Google Cloud Storage.
Lý do chi tiết 🛠️:
- GCS là dịch vụ managed storage scalable, elastic, hỗ trợ mã hóa at-rest/in-transit, và là data lake trung tâm lý tưởng cho cả BigQuery (query trực tiếp qua external tables hoặc load nhanh) lẫn Dataproc (Hadoop/Spark đọc/ghi native qua GCS connector – không cần HDFS).
- Avro là định dạng columnar, compact, schema-embedded, được GCP khuyến nghị cho dữ liệu chung giữa BigQuery/Dataproc: hỗ trợ partitioning, compression (Snappy/Deflate), schema evolution (tự động update schema mà không phá vỡ compatibility), và query performance cao (BigQuery load Avro <1 phút cho TB-scale).
- Giải pháp này tuân thủ yêu cầu: Migrate Hadoop workloads sang Dataproc (dùng GCS thay HDFS), dùng managed services (GCS + BigQuery + Dataproc), scalable cho real-time tracking/predictive analytics, và tránh lock-in vào một hệ thống.
- Hiệu suất 2026: BigQuery BI Engine + Dataproc Serverless (preview 2025) tối ưu hóa truy cập GCS, giảm chi phí 50-70% so với HDFS.
(📘 Nguồn: GCP Best Practices for Data Lakes, Avro with BigQuery/Dataproc).
📋 Giải thích tất cả các phương án (đúng/sai)
-
❌ Store the common data in BigQuery as partitioned tables.
Sai vì: BigQuery là warehouse phân tích serverless, không phải storage layer cho Hadoop/Spark workloads. Hadoop/Spark không thể đọc trực tiếp partitioned tables của BigQuery (thiếu native connector), dẫn đến duplicate data, latency cao khi export/import, và vi phạm "migrate existing Hadoop workloads" (phải dùng Dataproc). Không scalable cho write-heavy từ Spark, chỉ phù hợp read-only analytics. -
❌ Store the common data in BigQuery and expose authorized views.
Sai vì: Authorized views chỉ cho quyền truy cập an toàn trong BigQuery ecosystem, nhưng Hadoop/Spark (Dataproc) không hỗ trợ query BigQuery views native (cần custom JDBC/ODBC – chậm, không elastic). Tạo thêm complexity, duplicate processing, và không giải quyết "common data storage" cho batch workloads. Vi phạm yêu cầu dùng managed services cho cả hai hệ thống. -
✅ Store the common data encoded as Avro in Google Cloud Storage.
Đúng vì: Như giải thích trên – GCS + Avro là giải pháp chuẩn GCP cho shared data lake: BigQuery query external tables từ GCS (zero-copy), Dataproc đọc/ghi seamless (hỗ trợ Avro natively từ Hadoop 3.x). Scalable, cost-effective (storage ~$0.02/GB/tháng), hỗ trợ lifecycle policies, và tích hợp VPN/encryption. Hoàn hảo cho Flowlogistic's data lake + predictive analytics. -
❌ Store he common data in the HDFS storage for a Google Cloud Dataproc cluster. (Lưu ý: Lỗi chính tả "he" → "the").
Sai vì: HDFS của Dataproc là ephemeral storage (tự xóa khi cluster terminate), không persistent/scalable cho BigQuery (không có direct access – cần copy sang GCS, latency cao). Không elastic (phụ thuộc cluster size), tốn chi phí (cluster luôn-on), và chống lại "use managed services" (HDFS không managed như GCS). Không phù hợp data lake chung, chỉ cho temporary processing.
Kết luận 🚀: Giải pháp GCS + Avro giúp Flowlogistic đạt "reproducible environment", rapid provisioning, và full cloud migration mà không refactor workloads!
Company Overview -
Flowlogistic is a leading logistics and supply chain provider. They help businesses throughout the world manage their resources and transport them to their final destination. The company has grown rapidly, expanding their offerings to include rail, truck, aircraft, and oceanic shipping.
Company Background -
The company started as a regional trucking company, and then expanded into other logistics market. Because they have not updated their infrastructure, managing and tracking orders and shipments has become a bottleneck. To improve operations, Flowlogistic developed proprietary technology for tracking shipments in real time at the parcel level. However, they are unable to deploy it because their technology stack, based on Apache Kafka, cannot support the processing volume. In addition, Flowlogistic wants to further analyze their orders and shipments to determine how best to deploy their resources.
Solution Concept -
Flowlogistic wants to implement two concepts using the cloud:
✑ Use their proprietary technology in a real-time inventory-tracking system that indicates the location of their loads
✑ Perform analytics on all their orders and shipment logs, which contain both structured and unstructured data, to determine how best to deploy resources, which markets to expand info. They also want to use predictive analytics to learn earlier when a shipment will be delayed.
Existing Technical Environment -
Flowlogistic architecture resides in a single data center:
✑ Databases
8 physical servers in 2 clusters
- SQL Server `" user data, inventory, static data
3 physical servers
- Cassandra `" metadata, tracking messages
10 Kafka servers `" tracking message aggregation and batch insert
✑ Application servers `" customer front end, middleware for order/customs
60 virtual machines across 20 physical servers
- Tomcat `" Java services
- Nginx `" static content
- Batch servers
✑ Storage appliances
- iSCSI for virtual machine (VM) hosts
- Fibre Channel storage area network (FC SAN) `" SQL server storage
- Network-attached storage (NAS) image storage, logs, backups
✑ 10 Apache Hadoop /Spark servers
- Core Data Lake
- Data analysis workloads
✑ 20 miscellaneous servers
- Jenkins, monitoring, bastion hosts,
Business Requirements -
✑ Build a reliable and reproducible environment with scaled panty of production.
✑ Aggregate data in a centralized Data Lake for analysis
✑ Use historical data to perform predictive analytics on future shipments
✑ Accurately track every shipment worldwide using proprietary technology
✑ Improve business agility and speed of innovation through rapid provisioning of new resources
✑ Analyze and optimize architecture for performance in the cloud
✑ Migrate fully to the cloud if all other requirements are met
Technical Requirements -
✑ Handle both streaming and batch data
✑ Migrate existing Hadoop workloads
✑ Ensure architecture is scalable and elastic to meet the changing demands of the company.
✑ Use managed services whenever possible
✑ Encrypt data flight and at rest
✑ Connect a VPN between the production data center and cloud environment
SEO Statement -
We have grown so quickly that our inability to upgrade our infrastructure is really hampering further growth and efficiency. We are efficient at moving shipments around the world, but we are inefficient at moving data around.
We need to organize our information so we can more easily understand where our customers are and what they are shipping.
CTO Statement -
IT has never been a priority for us, so as our data has grown, we have not invested enough in our technology. I have a good staff to manage IT, but they are so busy managing our infrastructure that I cannot get them to do the things that really matter, such as organizing our data, building the analytics, and figuring out how to implement the CFO' s tracking technology.
CFO Statement -
Part of our competitive advantage is that we penalize ourselves for late shipments and deliveries. Knowing where out shipments are at all times has a direct correlation to our bottom line and profitability. Additionally, I don't want to commit capital to building out a server environment.
Flowlogistic's management has determined that the current Apache Kafka servers cannot handle the data volume for their real-time inventory tracking system.
You need to build a new system on Google Cloud Platform (GCP) that will feed the proprietary tracking software. The system must be able to ingest data from a variety of global sources, process and query in real-time, and store the data reliably. Which combination of GCP products should you choose?
- A Cloud Pub/Sub, Cloud Dataflow, and Cloud Storage
- B Cloud Pub/Sub, Cloud Dataflow, and Local SSD
- C Cloud Pub/Sub, Cloud SQL, and Cloud Storage
- D Cloud Load Balancing, Cloud Dataflow, and Cloud Storage
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi thuộc Flowlogistic Case Study trên Google Cloud Platform (GCP) (không phải AWS như đề cập ban đầu, có thể là nhầm lẫn). Flowlogistic cần xây dựng hệ thống mới thay thế Apache Kafka hiện tại không đủ sức xử lý volume dữ liệu lớn cho real-time inventory tracking. Hệ thống phải:
- Ingest data từ nhiều nguồn toàn cầu (streaming data từ tracking messages).
- Process và query real-time (xử lý dữ liệu thời gian thực để feed proprietary tracking software).
- Store dữ liệu reliably (lưu trữ đáng tin cậy, hỗ trợ data lake cho analytics sau này). Yêu cầu kỹ thuật: Xử lý streaming/batch, scalable/elastic, managed services, encrypt data. Họ muốn migrate từ Kafka/Hadoop sang cloud managed services.
Mục tiêu chính: Xây dựng pipeline ingest → process → store cho real-time tracking, sử dụng GCP products tối ưu.
📘 Tài liệu tham khảo: GCP Data Streaming Best Practices (cập nhật 2024-2026), Pub/Sub + Dataflow Architecture.
✅ Đáp án đúng
Cloud Pub/Sub, Cloud Dataflow, and Cloud Storage
Lý do lựa chọn:
- Cloud Pub/Sub 🛡️: Dịch vụ messaging managed, scalable toàn cầu, ingest streaming data từ nhiều sources (thay thế Kafka), hỗ trợ high-throughput real-time.
- Cloud Dataflow ⚡: Managed Apache Beam, xử lý stream/batch real-time (transform, query, enrich data) trước khi feed tracking software. Tích hợp tự nhiên với Pub/Sub.
- Cloud Storage 💾: Object storage managed, reliable/durable (99.999999999% durability), phù hợp data lake cho structured/unstructured data, encrypt at-rest/in-transit.
Combo này fully managed, elastic, đáp ứng tất cả req: ingest global → process RT → store reliable. Hoàn hảo cho migrate Kafka workloads.
🛠️ Ví dụ flow: Pub/Sub nhận tracking messages → Dataflow process/query RT → Sink vào Storage cho analytics sau.
📋 Giải thích tất cả các phương án
-
✅ Cloud Pub/Sub, Cloud Dataflow, and Cloud Storage
Phương án đúng hoàn hảo vì kết hợp ingest (Pub/Sub), process RT (Dataflow), store reliable/scalable (Storage). Đáp ứng 100% req real-time tracking, managed, elastic. Không có điểm yếu nào. -
❌ Cloud Pub/Sub, Cloud Dataflow, and Local SSD
Sai vì Local SSD chỉ là temporary block storage gắn với VM (ephemeral, mất dữ liệu khi stop instance), không reliable/long-term như req "store reliably". Không managed, không phù hợp data lake. Pub/Sub + Dataflow tốt nhưng storage sai. -
❌ Cloud Pub/Sub, Cloud SQL, and Cloud Storage
Sai vì Cloud SQL là relational DB (MySQL/PostgreSQL), không scale cho high-volume streaming/unstructured data từ tracking. Không hỗ trợ real-time process/query hiệu quả như Dataflow. Phù hợp user data nhỏ, không phải Kafka replacement. -
❌ Cloud Load Balancing, Cloud Dataflow, and Cloud Storage
Sai vì Cloud Load Balancing chỉ balance HTTP/TCP traffic (web/app), không ingest streaming data từ global sources như Kafka messages. Không thay thế Pub/Sub cho messaging. Dataflow + Storage tốt nhưng ingest sai hoàn toàn.
Kết luận 🏆: Combo đúng giúp Flowlogistic migrate nhanh, scalable đến 2026 standards (Dataflow autoscaling v2, Pub/Sub regional/global topics mới). Khuyến nghị test với GCP Free Tier! 🚀
Company Overview -
Flowlogistic is a leading logistics and supply chain provider. They help businesses throughout the world manage their resources and transport them to their final destination. The company has grown rapidly, expanding their offerings to include rail, truck, aircraft, and oceanic shipping.
Company Background -
The company started as a regional trucking company, and then expanded into other logistics market. Because they have not updated their infrastructure, managing and tracking orders and shipments has become a bottleneck. To improve operations, Flowlogistic developed proprietary technology for tracking shipments in real time at the parcel level. However, they are unable to deploy it because their technology stack, based on Apache Kafka, cannot support the processing volume. In addition, Flowlogistic wants to further analyze their orders and shipments to determine how best to deploy their resources.
Solution Concept -
Flowlogistic wants to implement two concepts using the cloud:
Use their proprietary technology in a real-time inventory-tracking system that indicates the location of their loads
✑ Perform analytics on all their orders and shipment logs, which contain both structured and unstructured data, to determine how best to deploy resources, which markets to expand info. They also want to use predictive analytics to learn earlier when a shipment will be delayed.
Existing Technical Environment -
Flowlogistic architecture resides in a single data center:
✑ Databases
8 physical servers in 2 clusters
- SQL Server `" user data, inventory, static data
3 physical servers
- Cassandra `" metadata, tracking messages
10 Kafka servers `" tracking message aggregation and batch insert
✑ Application servers `" customer front end, middleware for order/customs
60 virtual machines across 20 physical servers
- Tomcat `" Java services
- Nginx `" static content
- Batch servers
✑ Storage appliances
- iSCSI for virtual machine (VM) hosts
- Fibre Channel storage area network (FC SAN) `" SQL server storage
- Network-attached storage (NAS) image storage, logs, backups
✑ 10 Apache Hadoop /Spark servers
- Core Data Lake
- Data analysis workloads
✑ 20 miscellaneous servers
- Jenkins, monitoring, bastion hosts,
Business Requirements -
✑ Build a reliable and reproducible environment with scaled panty of production.
✑ Aggregate data in a centralized Data Lake for analysis
✑ Use historical data to perform predictive analytics on future shipments
✑ Accurately track every shipment worldwide using proprietary technology
✑ Improve business agility and speed of innovation through rapid provisioning of new resources
✑ Analyze and optimize architecture for performance in the cloud
✑ Migrate fully to the cloud if all other requirements are met
Technical Requirements -
Handle both streaming and batch data
✑ Migrate existing Hadoop workloads
✑ Ensure architecture is scalable and elastic to meet the changing demands of the company.
✑ Use managed services whenever possible
✑ Encrypt data flight and at rest
✑ Connect a VPN between the production data center and cloud environment
SEO Statement -
We have grown so quickly that our inability to upgrade our infrastructure is really hampering further growth and efficiency. We are efficient at moving shipments around the world, but we are inefficient at moving data around.
We need to organize our information so we can more easily understand where our customers are and what they are shipping.
CTO Statement -
IT has never been a priority for us, so as our data has grown, we have not invested enough in our technology. I have a good staff to manage IT, but they are so busy managing our infrastructure that I cannot get them to do the things that really matter, such as organizing our data, building the analytics, and figuring out how to implement the CFO' s tracking technology.
CFO Statement -
Part of our competitive advantage is that we penalize ourselves for late shipments and deliveries. Knowing where out shipments are at all times has a direct correlation to our bottom line and profitability. Additionally, I don't want to commit capital to building out a server environment.
Flowlogistic's CEO wants to gain rapid insight into their customer base so his sales team can be better informed in the field. This team is not very technical, so they've purchased a visualization tool to simplify the creation of BigQuery reports. However, they've been overwhelmed by all the data in the table, and are spending a lot of money on queries trying to find the data they need. You want to solve their problem in the most cost-effective way. What should you do?
- A Export the data into a Google Sheet for virtualization.
- B Create an additional table with only the necessary columns.
- C Create a view on the table to present to the virtualization tool.
- D Create identity and access management (IAM) roles on the appropriate columns, so only they appear in a query.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi thuộc Flowlogistic Case Study trong kỳ thi Google Cloud Professional Data Engineer. Công ty Flowlogistic đang gặp vấn đề với dữ liệu lớn trong BigQuery: CEO muốn đội ngũ bán hàng (không am hiểu kỹ thuật) có cái nhìn nhanh chóng về cơ sở khách hàng qua công cụ trực quan hóa (visualization tool). Tuy nhiên, họ bị choáng ngợp bởi lượng dữ liệu khổng lồ trong bảng BigQuery, dẫn đến chi phí query cao do quét toàn bộ dữ liệu không cần thiết.
Mục tiêu chính: Giải quyết vấn đề một cách tiết kiệm chi phí nhất (cost-effective), giúp công cụ trực quan hóa chỉ truy cập dữ liệu liên quan, giảm chi phí query (BigQuery tính phí dựa trên dữ liệu quét).
Bối cảnh case study: Flowlogistic cần phân tích dữ liệu khách hàng, đơn hàng từ Data Lake (BigQuery), hỗ trợ predictive analytics và real-time tracking, với yêu cầu sử dụng managed services như BigQuery để scalable, elastic và tiết kiệm.
📘 Tài liệu tham khảo:
- BigQuery Documentation: Views Overview (cập nhật 2024-2026: Views hỗ trợ materialized views cho performance tốt hơn từ 2023).
- BigQuery Pricing: On-demand Pricing (phí dựa trên bytes scanned, views giúp prune columns).
- Google Cloud Professional Data Engineer Exam Guide (2024+).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Create a view on the table to present to the virtualization tool.
Lý do:
🛠️ Views trong BigQuery là bảng ảo (virtual table), không lưu trữ dữ liệu vật lý, chỉ định nghĩa query SELECT trên bảng gốc. Khi công cụ trực quan hóa query view, BigQuery tự động prune (loại bỏ) các cột/dữ liệu không cần, giảm bytes scanned → tiết kiệm chi phí query tối đa (không tốn storage, real-time).
✅ Phù hợp với sales team không kỹ thuật (dễ dùng như bảng thật), hỗ trợ visualization tools (như Looker, Data Studio/Tableau), và technical requirements (managed service, scalable). Không cần export/maintenance, migrate dễ dàng từ Hadoop workloads.
💰 Cost-effective nhất: Không duplicate data, zero storage cost cho view chuẩn (materialized views có cache optional từ 2023 để nhanh hơn).
🧩 Giải thích tất cả các phương án
-
❌ Export the data into a Google Sheet for virtualization.
Phương án này sai vì Google Sheets có giới hạn dữ liệu (max 10M cells, 5M rows), không phù hợp dữ liệu lớn từ BigQuery (BigQuery xử lý petabytes). Export thủ công, không real-time, mất tính scalable/elastic. Chi phí query BigQuery vẫn cao nếu export full data, và Sheets không hỗ trợ visualization phức tạp cho Big Data. Vi phạm business requirements (rapid insight, agility). -
❌ Create an additional table with only the necessary columns.
Phương án này sai vì tạo bảng mới yêu cầu extract/load dữ liệu vật lý (duplicate storage), tốn chi phí lưu trữ lâu dài (BigQuery storage ~$0.023/GB/tháng). Cần ETL pipeline (Dataflow/Airflow) để sync dữ liệu real-time, phức tạp maintenance. Không cost-effective (storage + compute cho refresh), dù giảm query cost nhưng kém hơn view (không zero-storage). -
✅ Create a view on the table to present to the virtualization tool.
Phương án này đúng như đã giải thích ở trên: Virtual, no storage cost, automatic column pruning, real-time, dễ chia sẻ với visualization tool qua authorized views (IAM integration). Hỗ trợ clustering/partitioning từ bảng gốc để optimize query (cập nhật 2024+). Lý tưởng cho non-technical users và predictive analytics trên customer data. -
❌ Create identity and access management (IAM) roles on the appropriate columns, so only they appear in a query.
Phương án này sai vì BigQuery không hỗ trợ IAM roles ở mức column-level trực tiếp (IAM chỉ cho dataset/table/project/resource). Để restrict columns, phải dùng views hoặc authorized views (kết hợp IAM trên view). IAM chỉ control access (read/write), không "ẩn" columns trong query → vẫn scan full data, chi phí cao. Sai kiến trúc (cập nhật 2026: Vẫn dùng views cho fine-grained access).
🏆 Kết luận: Sử dụng BigQuery Views là giải pháp managed, cost-effective nhất, align với Google Cloud best practices cho Data Lake analytics! 🚀
Company Overview -
Flowlogistic is a leading logistics and supply chain provider. They help businesses throughout the world manage their resources and transport them to their final destination. The company has grown rapidly, expanding their offerings to include rail, truck, aircraft, and oceanic shipping.
Company Background -
The company started as a regional trucking company, and then expanded into other logistics market. Because they have not updated their infrastructure, managing and tracking orders and shipments has become a bottleneck. To improve operations, Flowlogistic developed proprietary technology for tracking shipments in real time at the parcel level. However, they are unable to deploy it because their technology stack, based on Apache Kafka, cannot support the processing volume. In addition, Flowlogistic wants to further analyze their orders and shipments to determine how best to deploy their resources.
Solution Concept -
Flowlogistic wants to implement two concepts using the cloud:
✑ Use their proprietary technology in a real-time inventory-tracking system that indicates the location of their loads
✑ Perform analytics on all their orders and shipment logs, which contain both structured and unstructured data, to determine how best to deploy resources, which markets to expand info. They also want to use predictive analytics to learn earlier when a shipment will be delayed.
Existing Technical Environment -
Flowlogistic architecture resides in a single data center:
✑ Databases
8 physical servers in 2 clusters
- SQL Server `" user data, inventory, static data
3 physical servers
- Cassandra `" metadata, tracking messages
10 Kafka servers `" tracking message aggregation and batch insert
✑ Application servers `" customer front end, middleware for order/customs
60 virtual machines across 20 physical servers
- Tomcat `" Java services
- Nginx `" static content
- Batch servers
✑ Storage appliances
- iSCSI for virtual machine (VM) hosts
- Fibre Channel storage area network (FC SAN) `" SQL server storage
- Network-attached storage (NAS) image storage, logs, backups
✑ 10 Apache Hadoop /Spark servers
- Core Data Lake
- Data analysis workloads
✑ 20 miscellaneous servers
- Jenkins, monitoring, bastion hosts,
Business Requirements -
✑ Build a reliable and reproducible environment with scaled panty of production.
✑ Aggregate data in a centralized Data Lake for analysis
✑ Use historical data to perform predictive analytics on future shipments
✑ Accurately track every shipment worldwide using proprietary technology
✑ Improve business agility and speed of innovation through rapid provisioning of new resources
✑ Analyze and optimize architecture for performance in the cloud
✑ Migrate fully to the cloud if all other requirements are met
Technical Requirements -
✑ Handle both streaming and batch data
✑ Migrate existing Hadoop workloads
✑ Ensure architecture is scalable and elastic to meet the changing demands of the company.
✑ Use managed services whenever possible
✑ Encrypt data flight and at rest
✑ Connect a VPN between the production data center and cloud environment
SEO Statement -
We have grown so quickly that our inability to upgrade our infrastructure is really hampering further growth and efficiency. We are efficient at moving shipments around the world, but we are inefficient at moving data around.
We need to organize our information so we can more easily understand where our customers are and what they are shipping.
CTO Statement -
IT has never been a priority for us, so as our data has grown, we have not invested enough in our technology. I have a good staff to manage IT, but they are so busy managing our infrastructure that I cannot get them to do the things that really matter, such as organizing our data, building the analytics, and figuring out how to implement the CFO' s tracking technology.
CFO Statement -
Part of our competitive advantage is that we penalize ourselves for late shipments and deliveries. Knowing where out shipments are at all times has a direct correlation to our bottom line and profitability. Additionally, I don't want to commit capital to building out a server environment.
Flowlogistic is rolling out their real-time inventory tracking system. The tracking devices will all send package-tracking messages, which will now go to a single
Google Cloud Pub/Sub topic instead of the Apache Kafka cluster. A subscriber application will then process the messages for real-time reporting and store them in
Google BigQuery for historical analysis. You want to ensure the package data can be analyzed over time.
Which approach should you take?
- A Attach the timestamp on each message in the Cloud Pub/Sub subscriber application as they are received.
- B Attach the timestamp and Package ID on the outbound message from each publisher device as they are sent to Clod Pub/Sub.
- C Use the NOW () function in BigQuery to record the event's time.
- D Use the automatically generated timestamp from Cloud Pub/Sub to order the data.
Xem giải thích
🧩 Giải thích nội dung câu hỏi
Câu hỏi thuộc case study Flowlogistic, một công ty logistics đang triển khai hệ thống real-time inventory tracking trên Google Cloud Platform (GCP). Các thiết bị tracking (publisher devices) sẽ gửi package-tracking messages đến một Cloud Pub/Sub topic duy nhất thay vì cluster Apache Kafka cũ. Một subscriber application sẽ xử lý các messages này để:
- Tạo báo cáo real-time.
- Lưu trữ vào Google BigQuery cho phân tích lịch sử (historical analysis).
Mục tiêu chính: Đảm bảo dữ liệu package có thể được phân tích theo thời gian (analyzed over time), nghĩa là cần sắp xếp và truy vấn dữ liệu chính xác dựa trên thời điểm sự kiện thực tế xảy ra (event time) tại thiết bị tracking, không phải thời điểm xử lý sau này. Điều này rất quan trọng cho predictive analytics về delay shipments, theo yêu cầu kinh doanh (Business Requirements) và kỹ thuật (Technical Requirements) như xử lý streaming/batch data, data lake trên BigQuery, và scalability.
Vấn đề cốt lõi: Pub/Sub chỉ cung cấp publish timestamp tự động (thời điểm message đến Pub/Sub), nhưng có thể bị delay do network hoặc queueing. Để phân tích chính xác "over time", cần event timestamp từ nguồn (device) và unique ID (Package ID) để track/aggregate dữ liệu mà không mất thứ tự.
📘 Kiến thức cập nhật (GCP 2026): Theo GCP best practices (Dataflow, Pub/Sub, BigQuery Streaming Inserts - phiên bản mới nhất 2026), sử dụng event time từ publisher qua message attributes là tiêu chuẩn cho streaming pipelines để tránh out-of-order events trong BigQuery (hỗ trợ WINDOW functions với TIMESTAMP).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Attach the timestamp and Package ID on the outbound message from each publisher device as they are sent to Clod Pub/Sub. (Lưu ý: "Clod" là lỗi chính tả của "Cloud")
Lý do 🛠️:
- Timestamp từ publisher device đại diện cho event time thực tế (khi package được track), đảm bảo dữ liệu được sắp xếp đúng thứ tự thời gian khi lưu vào BigQuery, hỗ trợ queries như "shipment delays over time" hoặc predictive models.
- Package ID làm unique identifier, giúp deduplication, aggregation (ví dụ: GROUP BY package_id, TIMESTAMP), và tracking worldwide theo yêu cầu CFO/CTO.
- Tuân thủ Technical Requirements: Scalable, managed services (Pub/Sub/BigQuery), encrypt data (attributes hỗ trợ encryption), và migrate từ Kafka (Pub/Sub thay thế).
- Tránh delay từ network/subscriber, phù hợp với real-time + historical analysis.
📋 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 tiếng Anh. Mỗi phương án được đánh dấu ✅ (đúng) hoặc ❌ (sai), kèm giải thích bằng tiếng Việt:
-
❌ Attach the timestamp on each message in the Cloud Pub/Sub subscriber application as they are received.
Sai vì: Timestamp này là processing time (thời điểm subscriber nhận message), có thể muộn do queue backlog hoặc network delay trong Pub/Sub. Không phản ánh event time thực tế tại device, dẫn đến dữ liệu lệch lạc khi phân tích historical (ví dụ: shipment delay bị tính sai). Không phù hợp cho predictive analytics cần thứ tự chính xác. -
✅ Attach the timestamp and Package ID on the outbound message from each publisher device as they are sent to Clod Pub/Sub.
Đúng vì: Như giải thích ở trên. Sử dụng message attributes trong Pub/Sub (custom metadata), dễ extract trong subscriber/Dataflow để insert vào BigQuery với schema chuẩn (TIMESTAMP, STRING ID). Đảm bảo ordering qua BigQuery's TIMESTAMP_SECONDS hoặc DTF windows. -
❌ Use the NOW() function in BigQuery to record the event's time.
Sai vì: NOW() ghi ingestion time (thời điểm insert vào BigQuery), bị ảnh hưởng bởi toàn bộ pipeline delay (Pub/Sub → subscriber → BigQuery). Không dùng cho "analyzed over time" vì mất event time gốc, vi phạm yêu cầu scalable analytics và historical data lake. -
❌ Use the automatically generated timestamp from Cloud Pub/Sub to order the data.
Sai vì: Pub/Sub chỉ cung cấp publish_timestamp (thời điểm message arrive Pub/Sub server), không phải event time tại device (có thể delay vài giây/phút). Không có Package ID tự động, khó track unique packages. Theo GCP docs, chỉ dùng cho approximate ordering, không lý tưởng cho precise logistics tracking.
📚 Tài liệu tham khảo
- GCP Pub/Sub Documentation (2026): Pub/Sub Message Attributes & Timestamps - Khuyến nghị attach event time từ publisher.
- BigQuery Streaming & Analytics: Event Time Processing in BigQuery - Sử dụng custom TIMESTAMP cho windows/ordering.
- GCP Architecture Framework: Streaming Analytics Best Practices - Case tương tự logistics với Pub/Sub + BigQuery.
- Google Cloud Skills Boost: Professional Data Engineer exam guide (Flowlogic case study chính thức).
Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần thêm ví dụ code Dataflow, hãy hỏi nhé!
Company Overview -
MJTelco is a startup that plans to build networks in rapidly growing, underserved markets around the world. The company has patents for innovative optical communications hardware. Based on these patents, they can create many reliable, high-speed backbone links with inexpensive hardware.
Company Background -
Founded by experienced telecom executives, MJTelco uses technologies originally developed to overcome communications challenges in space. Fundamental to their operation, they need to create a distributed data infrastructure that drives real-time analysis and incorporates machine learning to continuously optimize their topologies. Because their hardware is inexpensive, they plan to overdeploy the network allowing them to account for the impact of dynamic regional politics on location availability and cost.
Their management and operations teams are situated all around the globe creating many-to-many relationship between data consumers and provides in their system. After careful consideration, they decided public cloud is the perfect environment to support their needs.
Solution Concept -
MJTelco is running a successful proof-of-concept (PoC) project in its labs. They have two primary needs:
✑ Scale and harden their PoC to support significantly more data flows generated when they ramp to more than 50,000 installations.
✑ Refine their machine-learning cycles to verify and improve the dynamic models they use to control topology definition.
MJTelco will also use three separate operating environments `" development/test, staging, and production `" to meet the needs of running experiments, deploying new features, and serving production customers.
Business Requirements -
✑ Scale up their production environment with minimal cost, instantiating resources when and where needed in an unpredictable, distributed telecom user community.
✑ Ensure security of their proprietary data to protect their leading-edge machine learning and analysis.
✑ Provide reliable and timely access to data for analysis from distributed research workers
✑ Maintain isolated environments that support rapid iteration of their machine-learning models without affecting their customers.
Technical Requirements -
✑ Ensure secure and efficient transport and storage of telemetry data
✑ Rapidly scale instances to support between 10,000 and 100,000 data providers with multiple flows each.
✑ Allow analysis and presentation against data tables tracking up to 2 years of data storing approximately 100m records/day
✑ Support rapid iteration of monitoring infrastructure focused on awareness of data pipeline problems both in telemetry flows and in production learning cycles.
CEO Statement -
Our business model relies on our patents, analytics and dynamic machine learning. Our inexpensive hardware is organized to be highly reliable, which gives us cost advantages. We need to quickly stabilize our large distributed data pipelines to meet our reliability and capacity commitments.
CTO Statement -
Our public cloud services must operate as advertised. We need resources that scale and keep our data secure. We also need environments in which our data scientists can carefully study and quickly adapt our models. Because we rely on automation to process our data, we also need our development and test environments to work as we iterate.
CFO Statement -
The project is too large for us to maintain the hardware and software required for the data and analysis. Also, we cannot afford to staff an operations team to monitor so many data feeds, so we will rely on automation and infrastructure. Google Cloud's machine learning will allow our quantitative researchers to work on our high-value problems instead of problems with our data pipelines.
MJTelco's Google Cloud Dataflow pipeline is now ready to start receiving data from the 50,000 installations. You want to allow Cloud Dataflow to scale its compute power up as required. Which Cloud Dataflow pipeline configuration setting should you update?
- A The zone
- B The number of workers
- C The disk size per worker
- D The maximum number of workers
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi thuộc case study MJTelco trên Google Cloud Platform (GCP) (không phải AWS như mô tả ban đầu, vì toàn bộ ngữ cảnh đề cập rõ ràng đến Google Cloud Dataflow, BigQuery, và các dịch vụ GCP khác). MJTelco là startup viễn thông cần xây dựng hạ tầng dữ liệu phân tán để xử lý dữ liệu telemetry từ 50.000 installations, với yêu cầu scale nhanh chóng (từ 10.000 đến 100.000 data providers), phân tích real-time, machine learning, và đảm bảo an toàn dữ liệu.
Cụ thể, pipeline Cloud Dataflow (dịch vụ stream/batch processing tương đương Apache Beam trên GCP) đã sẵn sàng nhận dữ liệu lớn. Yêu cầu chính: Cho phép Dataflow tự động scale compute power (sức mạnh tính toán) lên theo nhu cầu (autoscaling workers để xử lý dữ liệu tăng đột biến). Câu hỏi hỏi về cấu hình pipeline Dataflow nào cần update để đạt điều này, phù hợp với Technical Requirements (scale instances nhanh, xử lý 100 triệu records/ngày).
📘 Kiến thức cập nhật (GCP Dataflow phiên bản 2026): Dataflow hỗ trợ autoscaling mặc định dựa trên workload, nhưng để scale "up as required" mà không giới hạn, phải cấu hình maxNumWorkers (tối đa số workers). Nếu không set hoặc set thấp, pipeline không scale đủ. (Nguồn: GCP Dataflow Docs - Scaling, cập nhật 2025).
✅ Đáp án đúng: "The maximum number of workers"
🛠️ Lý do chọn: Trong Cloud Dataflow, để pipeline tự động scale compute power lên theo nhu cầu (tăng số workers khi dữ liệu từ 50.000 installations dâng cao), bạn phải update maximum number of workers (tham số --maxNumWorkers).
- Dataflow autoscaling hoạt động bằng cách tăng/giảm workers động dựa trên backlog dữ liệu, nhưng giới hạn trên là maxNumWorkers.
- Nếu không set hoặc set thấp, pipeline bị cap (không scale đủ), vi phạm yêu cầu scale nhanh của MJTelco.
- Phù hợp CEO/CTO: Stabilize large pipelines với automation scaling, chi phí tối ưu (chỉ pay cho workers dùng).
- Ví dụ lệnh:
dataflow_runner --maxNumWorkers=1000cho phép scale lên 1.000 workers.
❌ Giải thích tất cả các phương án
-
"The zone" ❌:
Sai vì zone chỉ định vùng địa lý chạy workers (ví dụ: us-central1-a), ảnh hưởng đến độ trễ/latency và availability, không liên quan đến scaling compute power. Update zone chỉ di chuyển tài nguyên, không tăng/giảm số lượng workers. Không phù hợp yêu cầu scale động của Dataflow. -
"The number of workers" ❌:
Sai vì number of workers (--numWorkers) set số lượng workers cố định (fixed parallelism), tắt autoscaling. Dataflow sẽ không scale up/down theo workload, dẫn đến over-provision (chi phí cao) hoặc under-provision (backlog dữ liệu). Không đáp ứng "scale up as required" cho 50.000 installations. -
"The disk size per worker" ❌:
Sai vì disk size per worker (--diskSizeGb) chỉ cấu hình dung lượng lưu trữ tạm thời cho mỗi worker (mặc định 256GB), không ảnh hưởng đến compute power (CPU/RAM) hay scaling số lượng workers. Chỉ hữu ích cho dữ liệu lớn tạm thời, không giải quyết scale tổng thể pipeline. -
"The maximum number of workers" ✅:
(Như giải thích trên) Đúng hoàn toàn, cho phép Dataflow autoscaling linh hoạt lên mức tối đa cần thiết, tối ưu chi phí và performance cho MJTelco's distributed data flows.
🛡️ Lưu ý bổ sung: Cấu hình này kết hợp với machine type (--machineType=n1-standard-4) và enable_hot_key_logging để monitor pipeline issues, phù hợp Business Requirements (isolated envs, rapid iteration). Tham khảo thêm: Dataflow Pipeline Options.
Company Overview -
MJTelco is a startup that plans to build networks in rapidly growing, underserved markets around the world. The company has patents for innovative optical communications hardware. Based on these patents, they can create many reliable, high-speed backbone links with inexpensive hardware.
Company Background -
Founded by experienced telecom executives, MJTelco uses technologies originally developed to overcome communications challenges in space. Fundamental to their operation, they need to create a distributed data infrastructure that drives real-time analysis and incorporates machine learning to continuously optimize their topologies. Because their hardware is inexpensive, they plan to overdeploy the network allowing them to account for the impact of dynamic regional politics on location availability and cost.
Their management and operations teams are situated all around the globe creating many-to-many relationship between data consumers and provides in their system. After careful consideration, they decided public cloud is the perfect environment to support their needs.
Solution Concept -
MJTelco is running a successful proof-of-concept (PoC) project in its labs. They have two primary needs:
✑ Scale and harden their PoC to support significantly more data flows generated when they ramp to more than 50,000 installations.
✑ Refine their machine-learning cycles to verify and improve the dynamic models they use to control topology definition.
MJTelco will also use three separate operating environments `" development/test, staging, and production `" to meet the needs of running experiments, deploying new features, and serving production customers.
Business Requirements -
✑ Scale up their production environment with minimal cost, instantiating resources when and where needed in an unpredictable, distributed telecom user community.
✑ Ensure security of their proprietary data to protect their leading-edge machine learning and analysis.
✑ Provide reliable and timely access to data for analysis from distributed research workers
Maintain isolated environments that support rapid iteration of their machine-learning models without affecting their customers.
Technical Requirements -
✑ Ensure secure and efficient transport and storage of telemetry data
✑ Rapidly scale instances to support between 10,000 and 100,000 data providers with multiple flows each.
✑ Allow analysis and presentation against data tables tracking up to 2 years of data storing approximately 100m records/day
✑ Support rapid iteration of monitoring infrastructure focused on awareness of data pipeline problems both in telemetry flows and in production learning cycles.
CEO Statement -
Our business model relies on our patents, analytics and dynamic machine learning. Our inexpensive hardware is organized to be highly reliable, which gives us cost advantages. We need to quickly stabilize our large distributed data pipelines to meet our reliability and capacity commitments.
CTO Statement -
Our public cloud services must operate as advertised. We need resources that scale and keep our data secure. We also need environments in which our data scientists can carefully study and quickly adapt our models. Because we rely on automation to process our data, we also need our development and test environments to work as we iterate.
CFO Statement -
The project is too large for us to maintain the hardware and software required for the data and analysis. Also, we cannot afford to staff an operations team to monitor so many data feeds, so we will rely on automation and infrastructure. Google Cloud's machine learning will allow our quantitative researchers to work on our high-value problems instead of problems with our data pipelines.
You need to compose visualizations for operations teams with the following requirements:
✑ The report must include telemetry data from all 50,000 installations for the most resent 6 weeks (sampling once every minute).
✑ The report must not be more than 3 hours delayed from live data.
✑ The actionable report should only show suboptimal links.
✑ Most suboptimal links should be sorted to the top.
✑ Suboptimal links can be grouped and filtered by regional geography.
✑ User response time to load the report must be <5 seconds.
Which approach meets the requirements?
- A Load the data into Google Sheets, use formulas to calculate a metric, and use filters/sorting to show only suboptimal links in a table.
- B Load the data into Google BigQuery tables, write Google Apps Script that queries the data, calculates the metric, and shows only suboptimal rows in a table in Google Sheets.
- C Load the data into Google Cloud Datastore tables, write a Google App Engine Application that queries all rows, applies a function to derive the metric, and then renders results in a table using the Google charts and visualization API.
- D Load the data into Google BigQuery tables, write a Google Data Studio 360 report that connects to your data, calculates a metric, and then uses a filter expression to show only suboptimal rows in a table.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi thuộc case study MJTelco trong kỳ thi Google Cloud Professional Data Engineer, tập trung vào việc xây dựng báo cáo trực quan hóa (visualizations) cho các đội ngũ vận hành. MJTelco là startup viễn thông cần xử lý dữ liệu telemetry khổng lồ từ 50.000 installations, thu thập mỗi phút trong 6 tuần gần nhất (khoảng 50.000 × 60 phút/giờ × 24 giờ × 42 ngày ≈ hàng tỷ records – dữ liệu lớn, real-time-ish với độ trễ <3 giờ).
Yêu cầu chính của báo cáo:
- ✅ Chỉ hiển thị suboptimal links (các liên kết không tối ưu), sắp xếp theo mức độ suboptimal từ cao đến thấp.
- 🗺️ Nhóm và lọc theo vùng địa lý.
- ⏱️ Thời gian tải báo cáo <5 giây.
- 📊 Độ trễ từ dữ liệu live không quá 3 giờ.
- 🔒 Phù hợp với hạ tầng Google Cloud: scale lớn (10k-100k data providers), bảo mật dữ liệu proprietary, môi trường isolated (dev/test/staging/prod), và hỗ trợ ML iteration nhanh.
Mục tiêu: Tìm giải pháp scale cao, nhanh, hiệu quả chi phí, tận dụng BigQuery cho storage/analytics lớn, và công cụ visualization native để filter/sort server-side mà không tải toàn bộ data về client.
📘 Tài liệu tham khảo:
- Google Cloud MJTelco Case Study: Google Cloud Skills Boost hoặc ExamTopics.
- BigQuery & Looker Studio (tên cũ: Data Studio 360): BigQuery Docs & Looker Studio Docs (cập nhật 2024-2026: Data Studio → Looker Studio với tích hợp AI tốt hơn).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Load the data into Google BigQuery tables, write a Google Data Studio 360 report that connects to your data, calculates a metric, and then uses a filter expression to show only suboptimal rows in a table.
Lý do 🛠️:
- BigQuery lý tưởng cho dữ liệu lớn (100M records/ngày, 2 năm lưu trữ): query SQL nhanh, scale auto, chi phí thấp (pay-per-query).
- Google Data Studio 360 (nay là Looker Studio) kết nối trực tiếp BigQuery, tính metric (ví dụ: custom formula cho suboptimal score), filter/sort server-side → chỉ trả về suboptimal rows, tải <5s ngay cả với tỷ records.
- Hỗ trợ group/filter theo region (dimension), độ trễ thấp (<3h nếu stream data vào BigQuery qua Pub/Sub/Dataflow).
- Scale toàn cầu, secure (IAM, VPC), phù hợp CTO/CFO: automation, isolated env, ML integration.
- Không tải full data → hiệu suất cao, actionable cho ops teams.
📋 Giải thích tất cả các phương án (đúng/sai)
-
[SAI] Load the data into Google Sheets, use formulas to calculate a metric, and use filters/sorting to show only suboptimal links in a table.
❌ Sai vì: Google Sheets chỉ xử lý ~10M cells max, không scale cho hàng tỷ records (50k installs × 6 tuần). Tải data sẽ timeout/OOM, response time >>5s, không real-time (manual import chậm), vi phạm scale & timely access. Không phù hợp big data analytics. -
[SAI] Load the data into Google BigQuery tables, write Google Apps Script that queries the data, calculates the metric, and shows only suboptimal rows in a table in Google Sheets.
❌ Sai vì: BigQuery tốt, nhưng Apps Script (JavaScript-based) query BigQuery rồi push vào Sheets: (1) Apps Script quota thấp (6h exec/day), chậm với large query; (2) Sheets vẫn limit row (~5M import), filter client-side; (3) Độ trễ cao (>3h), không scale cho 50k flows. Không native visualization. -
[SAI] Load the data into Google Cloud Datastore tables, write a Google App Engine Application that queries all rows, applies a function to derive the metric, and then renders results in a table using the Google charts and visualization API.
❌ Sai vì: Cloud Datastore (NoSQL) kém cho analytics lớn (query full scan chậm, không aggregate tốt như BigQuery). App Engine phải query all rows → timeout với tỷ records, response >>5s. Charts API client-side render chậm, không filter server-side hiệu quả. Không scale/chi phí cao cho telemetry batch. -
[ĐÚNG] Load the data into Google BigQuery tables, write a Google Data Studio 360 report that connects to your data, calculates a metric, and then uses a filter expression to show only suboptimal rows in a table.
✅ Đúng vì: Kết hợp hoàn hảo BigQuery (storage/query scale) + Data Studio (visualization native, filter/sort server-side trên BigQuery). Tính metric/filter region trực tiếp, chỉ render suboptimal top → <5s load, <3h delay (streaming pipeline). Hỗ trợ CEO/CTO: reliable, secure, rapid iteration. Cập nhật 2026: Looker Studio còn tích hợp Gemini AI cho metric tốt hơn! 🚀
Company Overview -
MJTelco is a startup that plans to build networks in rapidly growing, underserved markets around the world. The company has patents for innovative optical communications hardware. Based on these patents, they can create many reliable, high-speed backbone links with inexpensive hardware.
Company Background -
Founded by experienced telecom executives, MJTelco uses technologies originally developed to overcome communications challenges in space. Fundamental to their operation, they need to create a distributed data infrastructure that drives real-time analysis and incorporates machine learning to continuously optimize their topologies. Because their hardware is inexpensive, they plan to overdeploy the network allowing them to account for the impact of dynamic regional politics on location availability and cost.
Their management and operations teams are situated all around the globe creating many-to-many relationship between data consumers and provides in their system. After careful consideration, they decided public cloud is the perfect environment to support their needs.
Solution Concept -
MJTelco is running a successful proof-of-concept (PoC) project in its labs. They have two primary needs:
✑ Scale and harden their PoC to support significantly more data flows generated when they ramp to more than 50,000 installations.
✑ Refine their machine-learning cycles to verify and improve the dynamic models they use to control topology definition.
MJTelco will also use three separate operating environments `" development/test, staging, and production `" to meet the needs of running experiments, deploying new features, and serving production customers.
Business Requirements -
✑ Scale up their production environment with minimal cost, instantiating resources when and where needed in an unpredictable, distributed telecom user community.
✑ Ensure security of their proprietary data to protect their leading-edge machine learning and analysis.
Provide reliable and timely access to data for analysis from distributed research workers
✑ Maintain isolated environments that support rapid iteration of their machine-learning models without affecting their customers.
Technical Requirements -
✑ Ensure secure and efficient transport and storage of telemetry data
✑ Rapidly scale instances to support between 10,000 and 100,000 data providers with multiple flows each.
✑ Allow analysis and presentation against data tables tracking up to 2 years of data storing approximately 100m records/day
✑ Support rapid iteration of monitoring infrastructure focused on awareness of data pipeline problems both in telemetry flows and in production learning cycles.
CEO Statement -
Our business model relies on our patents, analytics and dynamic machine learning. Our inexpensive hardware is organized to be highly reliable, which gives us cost advantages. We need to quickly stabilize our large distributed data pipelines to meet our reliability and capacity commitments.
CTO Statement -
Our public cloud services must operate as advertised. We need resources that scale and keep our data secure. We also need environments in which our data scientists can carefully study and quickly adapt our models. Because we rely on automation to process our data, we also need our development and test environments to work as we iterate.
CFO Statement -
The project is too large for us to maintain the hardware and software required for the data and analysis. Also, we cannot afford to staff an operations team to monitor so many data feeds, so we will rely on automation and infrastructure. Google Cloud's machine learning will allow our quantitative researchers to work on our high-value problems instead of problems with our data pipelines.
You create a new report for your large team in Google Data Studio 360. The report uses Google BigQuery as its data source. It is company policy to ensure employees can view only the data associated with their region, so you create and populate a table for each region. You need to enforce the regional access policy to the data.
Which two actions should you take? (Choose two.)
- A Ensure all the tables are included in global dataset.
- B Ensure each table is included in a dataset for a region.
- C Adjust the settings for each table to allow a related region-based security group view access.
- D Adjust the settings for each view to allow a related region-based security group view access.
- E Adjust the settings for each dataset to allow a related region-based security group view access.
Xem giải thích
🧩 Giải thích chi tiết nội dung câu hỏi
Câu hỏi thuộc case study MJTelco trong kỳ thi Google Cloud Professional Data Engineer, tập trung vào việc quản lý dữ liệu telemetry lớn từ mạng lưới viễn thông phân tán. MJTelco sử dụng Google Cloud (BigQuery, Data Studio - nay là Looker Studio) để xử lý dữ liệu thời gian thực, machine learning, và phân tích.
Tình huống cụ thể:
- Bạn tạo báo cáo mới trong Google Data Studio 360 (tên cũ của Looker Studio) với nguồn dữ liệu là Google BigQuery.
- Chính sách công ty: Nhân viên chỉ xem được dữ liệu liên quan đến region (khu vực) của họ.
- Để thực hiện, bạn đã tạo và populate một table cho mỗi region.
- Yêu cầu: Enforce (thực thi) chính sách truy cập theo region này. Chọn hai hành động phù hợp nhất.
Mục tiêu chính: Đảm bảo an ninh dữ liệu (security) theo nguyên tắc least privilege, phù hợp với yêu cầu kinh doanh (bảo vệ dữ liệu proprietary, isolated environments) và kỹ thuật (secure transport/storage, reliable access). BigQuery quản lý quyền truy cập qua IAM (Identity and Access Management) ở mức project/dataset/table/view.
Kiến thức cập nhật (đến 2026): BigQuery IAM hỗ trợ fine-grained access control (IAM policies, authorized views, row-level security via columnar views). Không có "global dataset" trong BigQuery (datasets là regional/multi-regional). Quyền truy cập chính xác ở dataset level cho phép kiểm soát toàn bộ tables/views bên trong. (Nguồn: BigQuery IAM Documentation, Looker Studio Data Connectors).
✅ Đáp án đúng và lý do lựa chọn
Hai đáp án đúng (chọn hai):
- Ensure each table is included in a dataset for a region.
- Adjust the settings for each dataset to allow a related region-based security group view access.
Lý do chọn 🛠️:
- Đáp án 1: Tạo dataset riêng cho từng region chứa tables tương ứng giúp cô lập dữ liệu (isolation), phù hợp với yêu cầu "isolated environments" và "regional access policy". BigQuery datasets là đơn vị logic để tổ chức tables, và IAM dễ dàng áp dụng per dataset.
- Đáp án 2: Điều chỉnh IAM settings trên dataset để chỉ cho phép region-based security group (nhóm IAM theo region, ví dụ: group-na@company.com) có quyền VIEW access (bigquery.dataViewer). Điều này enforce policy một cách hiệu quả, vì dataset kiểm soát toàn bộ nội dung bên trong, đảm bảo nhân viên chỉ thấy data region của họ khi truy vấn qua Data Studio.
- Kết hợp hai hành động: Tạo cấu trúc dataset-per-region trước, rồi set IAM trên dataset → Scale an toàn, chi phí thấp, hỗ trợ automation và ML iteration như CTO/CFO yêu cầu.
📋 Giải thích tất cả các phương án (đúng/sai)
-
❌ Ensure all the tables are included in global dataset.
Sai vì: BigQuery không có khái niệm "global dataset" (datasets chỉ là regional hoặc multi-regional, không "global"). Đặt tất cả tables vào một dataset sẽ phá vỡ isolation, nhân viên có thể truy cập cross-region data, vi phạm policy. Không phù hợp với yêu cầu secure/isolated environments. -
✅ Ensure each table is included in a dataset for a region.
Đúng vì: Dataset per region là cách tổ chức dữ liệu logic tốt nhất trong BigQuery, cho phép cô lập tables theo khu vực. Điều này hỗ trợ scale (10k-100k providers), storage 2 năm data (100M records/ngày), và dễ apply IAM policy sau. Phù hợp technical req: rapid iteration mà không ảnh hưởng production. -
❌ Adjust the settings for each table to allow a related region-based security group view access.
Sai vì: BigQuery IAM không hỗ trợ quyền truy cập fine-grained trực tiếp trên table một cách hiệu quả cho multi-users như vậy (chỉ primitive roles như OWNER/EDITOR/VIEWER ở project/dataset level chính). Set per table sẽ phức tạp, khó quản lý (không scale cho 50k+ installations), và không enforce policy toàn diện vì queries có thể cross-table nếu dataset share. -
❌ Adjust the settings for each view to allow a related region-based security group view access.
Sai vì: Câu hỏi không đề cập đến views (chỉ tables), và authorized views dùng cho row/column-level security chứ không phải region isolation cơ bản. Set per view sẽ yêu cầu tạo views phức tạp cho mỗi table/region, tăng overhead, không phù hợp với "rapid scale" và "minimal cost". Dataset-level IAM đơn giản hơn. -
✅ Adjust the settings for each dataset to allow a related region-based security group view access.
Đúng vì: IAM trên dataset là cách chuẩn để grant bigquery.dataViewer cho security groups cụ thể (ví dụ: via Google Groups). Data Studio sẽ inherit access từ connector → Nhân viên chỉ query được dataset region của họ. Hỗ trợ business req: secure proprietary data, reliable access cho distributed teams.
📘 Tài liệu tham khảo
- 🛠️ BigQuery Access Control (IAM policies per dataset).
- 🔍 Looker Studio + BigQuery Security (connector inheritance).
- 📊 MJTelco Case Study Full (Google Cloud Exam Guide, cập nhật 2024-2026).
- ⚡ Lưu ý: Không liên quan AWS (như S3/Redshift ACLs); toàn bộ là Google Cloud native. Nếu cần PoC, dùng
bq show --format=prettyjson datasetđể check IAM! 🚀