Prepare and test your skills

Prepare and test your skills

Managing the lake means enforcing unified discovery, access, and cost controls across Cloud Storage and BigQuery from one governance plane. Identity and Access Management (IAM) (opens in a new tab) sets the coarse boundary for who can act, while query-time controls, encryption, catalog tagging, and network perimeters decide what data is visible. Cloud Storage (opens in a new tab) holds raw objects and open-format files, BigQuery (opens in a new tab) provides SQL compute and fine-grained enforcement, and the Lakehouse runtime catalog (opens in a new tab) centralizes metadata so engines share one source of truth.
Least-privilege access means every user, group, and service account receives only the minimum permissions for its role, such as no-access, read-only, or write. Operational permission is separated from data permission, so permission to run a Dataflow job does not grant permission to read the underlying data. Granular enforcement adds three mechanisms: mapping product IAM roles by project need or tags, adding IAM conditions for time or resource context, and applying principal access boundary policies to limit what a principal can reach.
Service boundaries apply the same principle at the storage layer. In Cloud Storage, IAM policies apply first at the bucket and then at managed folders before reaching objects. In BigQuery, IAM applies at datasets and refines to tables, views, and jobs. Virtual Private Cloud Service Controls (VPC Service Controls) adds a network trust boundary around both services, so data cannot move outside the perimeter even when IAM would allow it.
Query-time controls in BigQuery restrict what a query returns after IAM has allowed the job to run. Each control filters a different slice of the same table without copying data, so one physical table can serve many audiences. The choice depends on whether the restriction is a derived subset, a full column, a set of rows, or a sensitive value.
| Control | Scope | How access is decided |
|---|---|---|
| Authorized views | Subset defined by view query | View is authorized on source dataset, reader queries view without source access |
| Column-level security | Entire sensitive columns | Policy tag check at query time removes column if requester lacks tag access |
| Row-level security | Subset of rows | Access policy filters rows to only entitled rows |
| Column data masking | Values inside column | Row is returned but sensitive value is obscured |
Exam tip: Column-level security removes the column from unauthorized users, while data masking still returns the row with the sensitive value obscured.
Policy tagging connects classification metadata to enforcement across BigLake and open formats such as Iceberg and Delta. Knowledge Catalog centralizes discovery, lineage, data-quality checks, data profiles, business glossary, and feature and model metadata. Tags carry sensitivity, encryption, retention, cost, and provider-agreement information, and an automated Tag Engine can apply tags from a BigQuery policy table based on sensitivity and residency.
This system supports a data mesh where domain teams own data products but share vocabulary, aspects, and security principles. Sensitive Data Protection scans profile BigQuery data for personally identifiable information (PII), financial, and health data and send results to the catalog as aspects. Column-level lineage traces flow from ingestion scripts to origin, query labels can require a valid consumption purpose, and mismatches against policy publish findings through Pub/Sub for monitoring.
Encryption protects lake data at rest by default and in transit, with stronger controls when required. Google default encryption needs no customer action, customer-managed encryption keys (CMEK) through Cloud Key Management Service (Cloud KMS) add control over rotation and destruction, and Cloud External Key Manager (Cloud EKM) keeps keys in a third-party system outside Google infrastructure while analytics still run. Application-level de-identification during ingestion and dynamic masking at read time further reduce sensitive values.
Unified monitoring ties those decisions to accountability. Cloud Logging captures real-time logs, Cloud Monitoring collects metrics and log-based alerts, and Cloud Audit Logs preserve API trails that track access against sharing agreements. Threat detection distinguishes human events from service events to prioritize real human access to data and code, while confidential data must never be written into experiment logs.
Storage cost control means matching each dataset to the cheapest Cloud Storage class that fits its access pattern. Frequently accessed data belongs in Standard storage or Nearline storage, while rarely accessed data belongs in Coldline storage or Archive storage. Storage Intelligence advisor detects misalignment without manual queries, and Cloud Billing budgets track spend with alert thresholds.
| Finding | What it signals | Cost-control action |
|---|---|---|
| Spike in Class A or B operations on Coldline or Archive data | Frequently accessed objects sit in cold classes | Move objects to Standard or Nearline storage |
| Total bytes above 30-day trend | Accumulation of noncurrent versions from indefinite retention | Use Object Lifecycle Management to delete or demote versions, or enable Autoclass |
| Spike in cross-region egress | Compute in one region reads buckets in another, such as Compute Engine in us-central1 reading us-east1 | Colocate compute and storage with bucket relocation |
Object Lifecycle Management automates deletion or class transitions by age and version state, while Autoclass manages classes automatically by access pattern. Cumulative object count and storage volume over time show whether the policy is working.
BigQuery cost control relies on shared slot capacity and on read and write paths that avoid quota retries and extra stages. A two-tier reservation assigns a small slot pool at the organization for general use, then adds project or folder reservations for teams with greater needs, with dedicated reservations for strict timing. Fair scheduling shares capacity inside reservations, and slots are purchased through yearly or three-year commitments.
Movement into BigQuery also affects cost and latency. BigQuery Data Transfer Service runs on a built-in 15-minute minimum schedule and must copy all tables from the source dataset with no embedded subset logic. When regional subsets or lower latency are needed, schedule Managed Service for Apache Airflow jobs to build subsets before triggering transfer if extra latency is acceptable, or use Dataflow to dual-write subsets for minimal latency. For pipeline I/O, table export writes to temporary Cloud Storage before processing and consumes export quota, while direct read through the BigQuery Storage API over gRPC avoids that step. For writes, avoid thousands of load jobs per day and use streaming inserts or the Storage Write API for near real-time data.
Central discovery with the Lakehouse runtime catalog lets Apache Spark (opens in a new tab), Trino, BigQuery, Apache Flink, and Apache Hive query one metadata truth without syncing repositories. The catalog implements the Apache Iceberg REST Catalog API and decouples storage in Cloud Storage from compute. Discovery follows a fixed order: first the user submits SQL to an engine, then the engine requests metadata from the catalog, then the catalog validates IAM and returns metadata plus an optional short-lived token when credential vending is enabled, then the engine reads files directly from Cloud Storage and returns results.
Organization follows the Project.Catalog.Namespace.Table hierarchy. A catalog is a regional metastore backed by warehouse buckets, and a namespace groups tables like a database or dataset and acts as an IAM enforcement point. Catalog region matches its bucket region, namespaces inherit the catalog region, nested sub-namespaces are not supported, and custom table paths must stay under the parent namespace path with a random suffix to prevent collisions.
| Table option | Metadata manager | Storage and access |
|---|---|---|
| Iceberg tables managed by Lakehouse | Lakehouse runtime catalog via REST | Data in Cloud Storage, open to Spark, Flink, Hive, Trino, BigQuery |
| Iceberg tables managed by BigQuery | BigQuery catalog | Data in Cloud Storage, Lakehouse manages Iceberg metadata |
| Native tables | BigQuery, connected to Lakehouse | Fully managed by BigQuery, interoperable with open engines |
| External tables | Self-managed | Data in Cloud Storage, Amazon S3, or Azure Blob Storage via connections |
Only Iceberg V2 and V3 tables are supported, so V1 tables must be upgraded to V2. Knowledge Catalog then enriches entries with lineage, quality, glossary, and masking rules evaluated at query time, so authorized users see raw values while others receive NULL.
Processing data means building continuous paths where events flow from ingestion through transformation to storage for intelligence and machine learning. Dataflow (opens in a new tab) runs Apache Beam logic in parallel, Pub/Sub buffers event streams, and Bigtable provides key-value state for sinks and lookups. BigQuery (opens in a new tab) complements the path with scalable storage, SQL transforms, and analytics over curated outputs.
Pub/Sub is the durable ingestion layer where publishers write events to a topic and subscribers read from subscriptions. A Dataflow job consumes an unbounded stream from a subscription, which lets throughput scale without waiting for a batch window. Throughput quotas are project-scoped, so publishers and subscribers in different projects receive independent quotas and deploying pipelines that share one topic into separate projects maximizes allowable throughput.
A direct Pub/Sub to Bigtable path in Preview bypasses processing when no transform is needed. A configured subscription writes messages to a Bigtable table as new rows. Choose the direct path when events need only durable landing, and choose Dataflow when events need filtering, enrichment, windowing, or joins before storage.
Dataflow is the parallel stream processing engine that runs Apache Beam pipeline stages across Compute Engine virtual machine (VM) workers. Apache Beam provides the unified model for batch and streaming over bounded and unbounded PCollection data, so the same transform can run in both modes. The Bigtable Beam connector (BigtableIO) lets a pipeline read rows from Bigtable, join Pub/Sub events against that state, and write results back to Bigtable.
Dataflow templates can also export and import Bigtable data as Avro, Parquet, or SequenceFiles. The typical order is fixed: events flow from producers to a Pub/Sub topic, from the subscription to Dataflow workers, and from Dataflow to Bigtable rows. The Python client library supports Dataflow writes but not reads, so use the Java Beam connector when the pipeline must read from Bigtable.
Exam tip: The Python client library for Bigtable supports Dataflow writes but not reads — use the Java Beam connector when the pipeline must read from Bigtable.
Bigtable serves streaming pipelines both downstream as a sink and upstream as an enrichment source. As a sink it stores Dataflow output rows with scalable key-value persistence. As a lookup it holds per-key state that each streaming element joins against inside Dataflow before flowing onward.
| Service | Primary role | Use when |
|---|---|---|
| Pub/Sub | Durable event ingestion and delivery | Events must be buffered for one or more pipelines |
| Dataflow | Parallel transformation and enrichment | Events need filtering, joining, or Bigtable lookup |
| Bigtable | Key-value storage for output and state | Pipeline needs persistent rows or per-key enrichment |
For analytics, BigQuery creates an external table over Bigtable to join operational data to warehouse tables, or exports data back to Bigtable with reverse ETL (RETL). Later reads therefore flow from Bigtable to BigQuery for analysis.
Batch processing transforms large volumes at rest from sources such as Cloud Storage objects or JDBC databases into BigQuery sinks. In extract, transform, and load (ETL), data is transformed in an intermediate engine before loading. In extract, load, and transform (ELT), raw data lands first in a BigQuery staging table and is then transformed with SQL. Choose ETL when source data needs cleaning or reshaping before landing, and choose ELT when BigQuery SQL and slots can transform more simply after loading.
The ELT sequence is ordered:
| Service | Transform mechanism | Choose when |
|---|---|---|
| Dataflow | Apache Beam transforms on JDBC to BigQuery template | Pipeline needs parallel Beam processing to BigQuery |
| Cloud Data Fusion | CDAP plugins | Pipeline needs visual, plugin-based integration |
| Managed Service for Apache Spark | Spark SQL or Scala, Java, Python, R | Workload needs distributed joins, windowing, aggregations |
| BigQuery | SQL from staging to production | Data is loaded and logic is best in SQL |
Scalability limits outside pipeline code bound throughput no matter how many Dataflow workers are added. Dataflow runs stages in parallel, but sources, sinks, formats, and network set the upper bound. Three factors must be checked alongside pipeline code:
External calls add per-call overhead and quota risk. Native Beam transforms such as BigQueryIO batch elements into fewer requests, so pipelines should batch wherever possible. Autoscaling can worsen overload by adding workers to a slow external-call step, so limit concurrency to sustainable batch sizes. Managed sources remove much capacity planning, but Dataflow still depends on Compute Engine quota.
Deployment management combines continuous integration, continuous delivery, and orchestration. Test automation runs unit and integration tests on each commit, often with Maven, and passing code becomes a passing build packaged as artifacts. For the Java SDK the artifact is a self-executing JAR in a deployment bucket, while Classic Templates add a JSON template and optional metadata.
| Launch option | How Dataflow job starts | Choose when |
|---|---|---|
| Dataflow direct launch | Continuous deployment launches new job from artifacts | Batch job should run immediately |
| Managed Service for Apache Airflow | Artifacts run as steps in larger workflow | Job has dependencies across hybrid and multi-cloud tasks |
| Cloud Scheduler | Artifacts launch on schedule | Job must run at fixed times without full orchestrator |
Streaming deployment is more complex because a long-running job must be replaced or updated without disruption. When in-place update is not possible, run parallel pipelines so the new job takes over the Pub/Sub subscription and Bigtable sink while the old drains. Proper identities must allow access to repos, integration tests with Application Default Credentials, and cross-project deploys.
Resource control for processing means respecting quotas while using managed services to avoid manual sizing. Pub/Sub provides scalable ingestion, BigQuery provides scalable output, but Dataflow jobs run on Compute Engine VMs and insufficient Compute Engine quota prevents starts or blocks autoscaling. Pub/Sub isolation by project and BigQuery slots as the unit of query compute purchased through reservations further control cost and throughput.
Governance and reuse keep outputs trustworthy. Knowledge Catalog discovers assets, tracks lineage including BigQuery column-level lineage, manages quality checks and profiles, and centralizes feature and model metadata with a business glossary. Cloud Logging and Cloud Monitoring capture logs, metrics, and audit trails without PII, while Dataflow with Eventarc, Dataform for SQL transforms, Feature Store in BigQuery, and lake storage with BigLake feed reusable data products.
Continue with this study guide: Processing data
Monitoring the data lake means collecting logs, metrics, and audit trails to prove who accessed data and to expose slow queries, stale data, and expensive processing. Cloud Logging receives log data, Cloud Monitoring receives metrics for dashboards and alerts, and Cloud Audit Logs preserve API history. Operators correlate those signals to find bottlenecks while keeping personally identifiable information (PII) out of logs.
Real-time telemetry captures logs and metrics as pipeline events arrive. Cloud Logging supports live tailing to view logs during execution, and Cloud Monitoring supports alerting on log conditions so a log pattern triggers notification. Together they track performance and security and detect anomalies that signal failure or cost spikes.
A lakehouse query spans metadata and storage, so monitoring must isolate each stage. When a query targets an Apache Iceberg table, the request follows an ordered path:
Delay can originate in lookup, authorization, storage reads, or execution. Custom batch and job names for serverless Spark, plus driver logs for orchestration and executor logs for task skew and retries, make those stages filterable and comparable.
Cloud Audit Logs (opens in a new tab) provide the authoritative trail of API calls showing who changed or read lake resources. Admin Activity logs record configuration and metadata changes, while Data Access logs record reads of configuration and requests that create, modify, or read user-provided data. Cloud Logging can store logs in a specified region to meet residency, while dashboards still monitor across projects.
| Log type | What it records | Default and retention |
|---|---|---|
| Admin Activity audit logs | API calls that modify configuration or metadata | Enabled by default for all services; retained 400 days |
| Data Access audit logs | Reads of configuration or metadata plus data reads and writes | Must be explicitly enabled except BigQuery where on by default; retained 30 days by default |
Exam tip: Admin Activity logs are on by default and kept 400 days, while Data Access logs must be turned on and are kept only 30 days by default.
Security posture starts from least-privilege IAM where each identity holds only minimum role permissions. Map product roles by project need or tags, add conditions by time or context, and narrow storage with Cloud Storage bucket and managed-folder policies plus BigQuery dataset, table, row-level, and column-level controls. Monitoring compares real activity to that baseline so unexpected reads stand out.
Temporary and context-aware signals refine the check. Principal access boundary policies limit reachable resources despite broad roles, Privileged Access Manager governs just-in-time elevation with its own audit entries, and Identity-Aware Proxy with Access Context Manager restricts by IP and device with re-evaluation at authentication. Security Command Center (SCC) (opens in a new tab) aggregates signals from Cloud Logging, VPC Flow Logs, firewall logs, Web Security Scanner, and IAM state into one view prioritized by attack exposure scores and attack paths showing how misconfigurations chain toward sensitive buckets.
Alerts and dashboards turn telemetry into action on allocation and reliability. Metrics flow from pipeline services to Cloud Monitoring (opens in a new tab), log events flow from Cloud Logging to alerting policies, and notifications flow to operators. Dashboards compare query performance, storage growth, and processing load over time to identify bottlenecks.
| Destination pattern | How telemetry flows | Operational tradeoff |
|---|---|---|
| Native Cloud Monitoring and Logging | Metrics to Monitoring and logs to Logging for dashboards and live tail | Logs remain available to Google Cloud Support |
| Partner export via Pub/Sub and API | Metrics via Monitoring API and logs via sinks through Pub/Sub to partner | Familiar tools, but may miss data during disruption and add fees |
| Grafana with Prometheus | Prometheus collects on-premises metrics, Grafana reads both sources | Prometheus is metrics-only, logging needs separate setup |
When compliance restricts movement, separate sensitive application data that stays on-premises from lower-risk operations data sent to the cloud. Telemetry routing can use the OpenTelemetry Collector or observIQ BindPlane under the same separation principle.
Data quality and freshness monitoring checks that lake data stays complete, correctly shaped, and current from ingestion to consumption. Knowledge Catalog (opens in a new tab) manages automatic quality checks and data profiles that validate formats, ranges, and distributions before analytics or training and help detect poisoning. Metadata from supported sources is ingested automatically, outside sources use custom entries enriched with aspects, and governance spans BigLake and open formats such as Iceberg and Delta with table and column-level lineage.
Sensitive-data discovery feeds the same loop. Sensitive Data Protection scans at organization, folder, or project level, stores profiles in BigQuery, and supports de-identification by pseudonymization and generalization such as bucketing. Inspection results sent to the catalog as aspects keep access based on current classification. For reliability, lineage traces a gold aggregate back through silver to bronze to find upstream delay, Agent Platform Feature Store monitors feature drift, and BigQuery anomaly detection with statistical and machine learning models flags poisoning or breakage for expert review.
Continue with this study guide: Monitoring the data lake
Column-level security removes the entire column from unauthorized users at query time, while column data masking still returns the row with only the sensitive value obscured. Both controls filter the same table without copying data so one physical table can serve many audiences.
You should move objects when a spike in Class A or B operations on Coldline or Archive data signals that frequently accessed objects sit in cold classes. Storage Intelligence advisor detects this misalignment without manual queries, and Object Lifecycle Management or Autoclass can then delete, demote, or automatically manage classes by access pattern.
Admin Activity audit logs record API calls that modify configuration or metadata, are enabled by default for all services, and are retained 400 days. Data Access audit logs record reads of configuration or metadata plus data reads and writes, must be explicitly enabled except in BigQuery where they are on by default, and are retained 30 days by default.
Last updated