Skip to content

Professional Data Engineer · Domain 3: Storing the data · 20% of the exam

Task 3.3: Using a data lake.

Managing a Cloud Storage lake with discovery, access and cost controls, processing lake data with BigLake and Iceberg tables, and monitoring the lake.

Study it

  • The lake on Cloud Storage: BigLake tables, Iceberg and the Lakehouse runtime catalog

    Lesson coming

  • Lake access, cost controls and monitoring

    Partly covered by: S3: Consistency, Classes, Lifecycle

Sample questions

Try each one before opening the answer. Every option is explained, with the Google Cloud documentation page that proves it.

Question 1 · choose 2

Parquet files in a Cloud Storage bucket must be queryable from BigQuery by 200 analysts without copying the data. Analysts must not be able to read the objects in the bucket directly, and the security team will add row access policies once the tables exist. Which TWO steps set up this access model? (Choose TWO.)

  1. AGrant the analysts Storage Object Viewer on the bucket
  2. BCreate BigLake tables over the files with a Cloud resource connection
  3. CCreate external tables that read with the analysts' own credentials
  4. DCopy the files into native tables with a nightly load job
  5. EGive the connection's service account read access to the bucket
Show the answer and why
  • AGrant the analysts Storage Object Viewer on the bucket

    Incorrect

    Direct bucket access would let analysts read the files and bypass the table-level controls.

  • BCreate BigLake tables over the files with a Cloud resource connection

    Correct

    BigLake tables read the data through a connection's service account and enforce row-level and column-level security at the table level.

  • CCreate external tables that read with the analysts' own credentials

    Incorrect

    Standard external tables read the files with the querying user's credentials, so analysts would need bucket access.

  • DCopy the files into native tables with a nightly load job

    Incorrect

    Loading copies the data, which the requirement rules out, and it is a day behind the files.

  • EGive the connection's service account read access to the bucket

    Correct

    The connection's service account, not the analysts, needs Storage Object Viewer on the bucket; users need permissions only on the table.

BigLake tables use access delegation: a Cloud resource connection's service account reads Cloud Storage, and users are granted access only to the table. That is what makes row-level and column-level security on lake data meaningful, because nobody needs to touch the objects directly.

Question 2 · choose 1

A genomics institute publishes 2 PB of reference data in a Cloud Storage bucket to dozens of partner organizations, each with its own Google Cloud project. Partners read large parts of it, and the institute wants the partners' projects, not its own, to pay for the operations and network egress that their reads cause, while it keeps paying for storage. What should the institute configure?

  1. ASigned URLs for each partner, with a seven-day expiration
  2. BRequester Pays on the bucket, with partners naming a billing project
  3. CA BigQuery sharing listing that exposes the bucket to partner projects
  4. DAutoclass on the bucket, so that rarely read objects move to colder classes
Show the answer and why
  • ASigned URLs for each partner, with a seven-day expiration

    Incorrect

    Signed URLs grant time-limited access to objects, but the bucket's project still pays for the reads and egress.

  • BRequester Pays on the bucket, with partners naming a billing project

    Correct

    With Requester Pays, the requester's billing project pays for operations, retrieval and network usage, while storage stays with the bucket owner.

  • CA BigQuery sharing listing that exposes the bucket to partner projects

    Incorrect

    BigQuery sharing lists BigQuery datasets and Pub/Sub topics; it does not change who pays for reading objects in a bucket.

  • DAutoclass on the bucket, so that rarely read objects move to colder classes

    Incorrect

    Autoclass lowers storage cost for rarely accessed objects; the institute would still pay for the partners' reads.

Requester Pays moves access charges (operations, retrieval and network usage) to the project that makes the request, which must be named on each request; storage charges stay with the bucket's project. It is the standard way to publish large datasets without paying for every consumer's reads.

Question 3 · choose 1

A BigLake table points at two million Parquet files in Cloud Storage, laid out by date. The files must stay in Cloud Storage because Spark jobs also use them, and new files arrive at random times. Queries spend minutes just listing files before they read any data, and results up to an hour stale are acceptable. What should the data engineer do?

  1. ALoad the files into a native BigQuery table each hour
  2. BEnable metadata caching with a one-hour staleness and automatic refresh
  3. CAssign the query project to a reservation with more slots
  4. DRecreate it as a standard external table without a connection
Show the answer and why
  • ALoad the files into a native BigQuery table each hour

    Incorrect

    Loading creates a second copy outside the lake and adds a pipeline, while the files have to stay the source.

  • BEnable metadata caching with a one-hour staleness and automatic refresh

    Correct

    Metadata caching lets queries skip listing files and prune faster, and an automatic refresh suits files that arrive at random times.

  • CAssign the query project to a reservation with more slots

    Incorrect

    More slots speed up processing, but the time goes to listing files, which slots do not shorten.

  • DRecreate it as a standard external table without a connection

    Incorrect

    Standard external tables do not support metadata caching and would also lose the BigLake access model.

For BigLake tables over many files, metadata caching stores file and partition metadata so that queries avoid listing the store. Staleness can be set from 30 minutes to 7 days, and the cache can refresh automatically, about every 30 to 60 minutes, or manually on a schedule.

Question 4 · choose 1

Sales files in a lake are written to paths such as gs://lake/sales/dt=2026-10-01/part-0.parquet, with years of folders. Analysts will query them through a BigLake table, and the team wants queries that filter on dt to read only the matching folders, and queries without a dt filter to be refused. How should the table be defined?

  1. AWith a wildcard URI over gs://lake/sales/* and no partitioning options
  2. BAs a native table loaded once a month from the lake's files
  3. CWith Hive partitioning on the sales prefix and a required partition filter
  4. DWith the table clustered on dt so that blocks are pruned
Show the answer and why
  • AWith a wildcard URI over gs://lake/sales/* and no partitioning options

    Incorrect

    Without Hive partitioning, dt is not a column BigQuery can prune on, so every query reads every file.

  • BAs a native table loaded once a month from the lake's files

    Incorrect

    Loading copies the data and leaves it up to a month behind the lake.

  • CWith Hive partitioning on the sales prefix and a required partition filter

    Correct

    Hive partitioning reads dt from the key=value folders as a column and prunes on it, and requirePartitionFilter rejects queries without it.

  • DWith the table clustered on dt so that blocks are pruned

    Incorrect

    Clustering is a feature of BigQuery-managed storage; the files' layout in Cloud Storage is what decides what can be skipped.

BigQuery understands the Hive layout of key=value directories: with the common source URI prefix, partition keys become columns that predicates can prune on, and the requirePartitionFilter option makes a partition filter mandatory.

Question 5 · choose 1

Regulators require the raw zone of a data lake to be kept unchanged for seven years: no object may be deleted or overwritten before then, and the rule must hold even for project owners and administrators. What should the data engineer configure on the raw bucket?

  1. AObject Versioning, keeping each noncurrent version for seven years
  2. BSoft delete with the longest retention period it allows
  3. CAn IAM deny policy on storage.objects.delete for the bucket
  4. DA seven-year retention policy on the bucket, then locked
Show the answer and why
  • AObject Versioning, keeping each noncurrent version for seven years

    Incorrect

    Versioning keeps old versions after overwrites, but administrators can still delete versions or turn versioning off.

  • BSoft delete with the longest retention period it allows

    Incorrect

    Soft delete keeps deleted objects for at most 90 days, far short of seven years.

  • CAn IAM deny policy on storage.objects.delete for the bucket

    Incorrect

    Administrators who manage IAM can remove the deny policy, so it does not meet the requirement.

  • DA seven-year retention policy on the bucket, then locked

    Correct

    A retention policy blocks deletion and replacement until objects reach the period, and locking it makes it permanent, so nobody can remove or shorten it.

Bucket Lock gives write-once-read-many storage: the bucket's retention policy prevents objects from being deleted or replaced before they reach the retention period, and once the policy is locked it can no longer be removed or reduced.

Question 6 · choose 1

Spark jobs on Managed Service for Apache Spark write their output to a temporary folder in a Cloud Storage lake and then rename it into place. On a flat bucket, renaming a folder with thousands of objects is slow and can be left half-done if a job fails. The team is creating new lake buckets. What should it choose for them?

  1. ABuckets with hierarchical namespace enabled at creation
  2. BBuckets with Rapid Cache in the zone where the jobs run
  3. CDual-region buckets with turbo replication turned on
  4. DBuckets with Autoclass so that temporary files cost less
Show the answer and why
  • ABuckets with hierarchical namespace enabled at creation

    Correct

    Hierarchical namespace buckets have real folders that can be renamed atomically, which Google recommends for Hadoop and Spark workloads.

  • BBuckets with Rapid Cache in the zone where the jobs run

    Incorrect

    Rapid Cache does not change how folders are renamed; a rename on a flat bucket is still a copy and delete of every object.

  • CDual-region buckets with turbo replication turned on

    Incorrect

    Turbo replication shortens the replication time between regions; renames are still object by object.

  • DBuckets with Autoclass so that temporary files cost less

    Incorrect

    Autoclass changes storage classes over time; it does nothing for rename behaviour.

On a flat namespace, a folder is just a name prefix, so a rename copies and deletes every object. Hierarchical namespace buckets have real folders with atomic rename and higher initial request rates, which suits file-oriented analytics. The setting must be chosen when the bucket is created and needs uniform bucket-level access.

Practise domain 3 →Practise all domains →