Courseiva

Google Cloud Associate Data Practitioner (GCP-ADP) (GCP-ADP) — Questions 226–272

272 questions total · 4 pages · All types, answers revealed

Page 3

Page 4 of 4

226
MCQmedium

A retail analytics team runs a Looker Explore against a BigQuery table containing order line items. Analysts need a single visual that shows the average order value per country, but the underlying table stores one row per line item, so multiple rows share the same order_id. Which approach produces a correct average order value per country?

A.Apply a SUM aggregation to the order_total dimension and rely on Looker's default symmetric aggregates to return the per-country average.
B.Enable the Symmetric Aggregates setting on the country dimension and select Average as the measure type for order_total.
C.Add the order_total column as a dimension, use the Average aggregation type, and group by country to obtain the mean order value.
D.Create a measure that divides total revenue by the count of distinct order_id values, then group by the country dimension in the Explore.
AnswerD

Because the table is at line-item grain, counting rows would inflate the denominator whenever an order contains multiple items. Dividing summed revenue by COUNT(DISTINCT order_id) yields the true average per order, and grouping by country produces one value per country. This is the standard way to express a ratio measure in Looker when fan-out would otherwise distort the calculation.

Why this answer

The table's grain is one row per line item, so any row-level average reports line-item value rather than order value. The reliable pattern is a ratio measure: summed revenue divided by the distinct count of order identifiers. Grouping that measure by the country dimension gives a defensible average order value per country, and using a distinct count in the denominator neutralizes the fan-out that multi-item orders introduce.

Exam trap

The trap here is assuming that choosing an Average aggregation type in Looker automatically respects the business grain of an order rather than the physical grain of the stored rows.

227
MCQeasy

You need to store sensitive data in GCS. Which feature ensures data is encrypted at rest?

A.Default Encryption
B.Identity and Access Management
C.Cloud DLP
D.Customer-Managed Encryption Keys (CMEK)
AnswerA

Google Cloud Storage automatically encrypts every object at rest using AES-256 before writing to disk, with no configuration required. This default server-side encryption satisfies the stem's requirement to protect sensitive data at rest, applying uniformly across all storage classes and regions without additional keys or setup from you.

Why this answer

Google Cloud Storage automatically encrypts all data at rest using AES-256 encryption before it is written to disk, with no configuration required. This default encryption ensures that sensitive data is protected without any additional action from the user. While CMEK and Cloud DLP offer additional control or inspection, the fundamental guarantee of encryption at rest is provided by default encryption.

Exam trap

The trap here is confusing access control (IAM) or data inspection (DLP) with encryption, or thinking that CMEK is required for encryption at rest when default encryption already provides it.

How to eliminate wrong answers

Option B is wrong because Identity and Access Management (IAM) controls access to resources but does not encrypt data at rest; it manages authentication and authorization. Option C is wrong because Cloud DLP is a service for discovering, classifying, and protecting sensitive data, but it does not provide encryption at rest; it can help identify data that may need encryption but is not the encryption mechanism itself. Option D is wrong because Customer-Managed Encryption Keys (CMEK) is an optional feature that allows you to use your own keys for encryption, but it is not the feature that ensures data is encrypted at rest by default; default encryption already does that without CMEK.

228
MCQhard

You need to ensure that PII (Personally Identifiable Information) in BigQuery is automatically detected and tagged across your organization. Which Dataplex feature should you enable on your Lake?

A.Automatic data discovery
B.Data quality task
C.Lifecycle management policy
D.IAM policy inheritance
AnswerA

Automatic data discovery profiles and scans data in the lake, using its built-in classifiers to detect sensitive information such as PII and attach corresponding tags automatically. This satisfies the stem's requirement for organisation-wide automatic detection and tagging without manual intervention.

Why this answer

Automatic data discovery in Dataplex scans data in a Lake and automatically identifies and tags sensitive information such as PII using built-in or custom data classifiers. It profiles data assets and applies metadata tags, which is exactly what's needed to detect and tag PII across an organization.

Exam trap

GCP-ADP often tests the difference between data discovery/classification (Dataplex discovery, DLP) and data quality (Dataplex data quality tasks) — candidates pick 'data quality' because it sounds like it involves inspecting data, but it evaluates rules, not sensitivity.

How to eliminate wrong answers

Option B is wrong because a data quality task evaluates data against defined quality rules (e.g., completeness, uniqueness) — it does not detect or tag PII. Option C is wrong because lifecycle management policies govern storage tiering and deletion of data, not data classification. Option D is wrong because IAM policy inheritance controls access permissions, not data discovery or tagging.

229
MCQmedium

You are the data engineer for a retail company on Google Cloud. Analysts query a BigQuery table that contains 400 TB of point-of-sale records and almost always filter by transaction_date. Query costs have grown sharply because every query scans the full table. You need the most cost-effective change that reduces bytes scanned for date-filtered queries without altering the table schema. What should you do?

A.Enable the BigQuery BI Engine reservation and let the in-memory cache absorb the repeated date-range scans.
B.Partition the table by the transaction_date column, since partition pruning skips partitions that do not match the filter predicate.
C.Add a clustering key on transaction_date and rely on cluster pruning to eliminate all non-matching data blocks.
D.Create a materialized view that pre-aggregates daily sales totals, then point all analyst queries at the view.
AnswerB

Partitioning the table on transaction_date lets BigQuery prune partitions when a query filters on that column, so only the relevant date ranges are read instead of the full 400 TB. It requires no schema change to existing columns and is the standard low-cost lever for reducing bytes scanned on time-filtered analytical workloads.

Why this answer

Partitioning the table on the transaction_date column is correct because BigQuery uses partition pruning to read only the partitions that satisfy the date predicate, directly lowering bytes scanned and cost. Clustering, materialized views, and BI Engine can help in narrower cases, but none changes the physical partitioning of the huge base table the way date partitioning does.

Exam trap

The trap here is assuming clustering on a date column delivers the same pruning benefit as partitioning, when partitioning is the stronger and more predictable reduction for date-range filters.

230
MCQeasy

You have a BigQuery table containing millions of rows of web server logs. You need to run a query that filters on a timestamp column and returns only the last 24 hours of data. The table is not partitioned. What should you do to improve query performance and reduce cost for this and future similar queries?

A.Create a partitioned table on the timestamp column and copy the data into it.
B.Create a clustered table on the timestamp column.
C.Add a WHERE clause that uses the timestamp column with a specific date range.
D.Create a materialized view that selects the last 24 hours of data and refresh it every hour.
AnswerA

Partitioning the table by the timestamp column (e.g., daily partitions) allows BigQuery to scan only the partitions that satisfy the time filter. This dramatically reduces the amount of data processed, lowering cost and improving performance. For future queries with similar time filters, the partition pruning applies automatically. This is the recommended approach for large time-series datasets in BigQuery.

Why this answer

Partitioning a large table by a timestamp column enables partition pruning, so queries that filter on that column only scan relevant partitions. This reduces both cost and query time. Without partitioning, even with a WHERE clause, BigQuery scans the entire table.

Clustering alone is less effective without partitioning, and materialized views are not ideal for dynamic time windows.

Exam trap

The trap here is thinking that adding a WHERE clause or clustering is sufficient to reduce cost, when the fundamental issue is the lack of partitioning, which is required for partition pruning.

231
MCQmedium

You need to perform data cleansing on a large dataset in Dataprep. Which execution engine should you choose for scalability?

A.Local Desktop
B.BigQuery
C.Cloud Run
D.Dataflow
AnswerD

Dataflow provides a distributed Apache Beam runner that scales horizontally across many workers, satisfying the large-dataset scalability constraint. Unlike single-node sampling engines, it parallelises cleansing transforms across the dataset, so processing time does not degrade as volume grows. Dataprep uses Dataflow as its default execution engine for exactly this reason.

Why this answer

Dataflow is the correct execution engine for Dataprep because Dataprep is built on top of Cloud Dataflow, which provides distributed, autoscaling processing for large datasets. Dataflow handles the parallel execution of Dataprep recipes across many workers, so cleansing operations scale horizontally without manual cluster management. Choosing Dataflow ensures the job can handle terabyte-scale data efficiently.

Exam trap

GCP-ADP often tests the misconception that BigQuery is the execution engine for Dataprep because Dataprep integrates with BigQuery; the key is that Dataflow is the scalable processing engine, while BigQuery is a destination/source.

How to eliminate wrong answers

Option A is wrong because Local Desktop execution runs the job on the user's machine, which cannot scale to large datasets and is limited by local CPU/memory. Option B is wrong because BigQuery is a data warehouse, not an execution engine for Dataprep recipes; Dataprep can read from and write to BigQuery but does not use it to run the transformation. Option C is wrong because Cloud Run is a serverless container platform for stateless HTTP services, not a data processing engine for Dataprep.

232
MCQhard

You are a data engineer at a healthcare company. You need to create a Dataflow pipeline that reads from a Pub/Sub subscription and writes to BigQuery. The pipeline must handle late-arriving data and ensure exactly-once processing. You also need to minimize cost. Which of the following should you use?

A.Use Dataflow with the Pub/Sub to BigQuery template and set the --discardUnknownFields option.
B.Use BigQuery's streaming ingestion with a Pub/Sub subscription directly.
C.Use Dataflow with Apache Beam's PubSubIO and BigQueryIO, enabling windowing and triggers for late data, and use BigQueryIO.Write with exactly-once semantics.
D.Use Cloud Data Fusion with a Realtime pipeline that writes to BigQuery.
AnswerC

Apache Beam's PubSubIO and BigQueryIO support windowing and triggers to handle late-arriving data. BigQueryIO.Write can be configured with exactly-once semantics using the withMethod and withWriteDisposition settings. This approach ensures data is processed correctly even if it arrives late, and exactly-once processing is achieved. It is the standard way to build such pipelines in Dataflow.

Why this answer

Dataflow with Apache Beam provides the necessary constructs for exactly-once processing and late data handling. PubSubIO and BigQueryIO support windowing and triggers, and BigQueryIO.Write can be configured for exactly-once semantics. Other options either lack these features or are not cost-effective for this use case.

Therefore, using Dataflow with these configurations is the correct approach.

Exam trap

The trap here is assuming that BigQuery streaming ingestion or templates alone can guarantee exactly-once processing and late data handling without Apache Beam's windowing and triggers.

233
MCQeasy

A marketing analyst needs to run a one-time SQL query that joins a BigQuery table containing campaign performance data with a small CSV file stored in a Cloud Storage bucket. The CSV is updated weekly by an external partner. The analyst wants the query to always reflect the latest CSV without loading it into BigQuery each week. What should the analyst do?

A.Export the campaign table to Cloud Storage, then run the join in Cloud Shell using a local SQL engine.
B.Create a BigQuery external table over the CSV file in Cloud Storage and join it with the campaign table in the query.
C.Import the CSV into BigQuery as a native table and set up a scheduled query to re-import it weekly.
D.Use the bq load command to append the CSV into a partitioned table each week.
AnswerB

An external table points at the CSV object in Cloud Storage, so each query reads the current file contents. Joining that external table with a native campaign table is fully supported in BigQuery SQL, and it avoids any weekly load job, which matches the requirement to always reflect the latest partner data.

Why this answer

A BigQuery external table over the Cloud Storage CSV lets queries read the file directly, so the join always sees the latest partner data without any load or refresh job. This is the standard pattern when small reference files change frequently and you want to avoid maintaining a native copy.

Exam trap

The trap here is assuming that any join with a Cloud Storage file requires first loading that file into BigQuery.

234
MCQmedium

You are using Cloud Scheduler to trigger a Workflows execution every hour. The Workflows definition expects an argument 'projectId' to be passed at runtime. You need to ensure the argument is provided correctly. What should you include in the Cloud Scheduler job configuration?

A.In the 'URL' field, append the argument as a query parameter, e.g., ?projectId=my-project.
B.In the 'Attributes' field, define a key-value pair with 'projectId' as the key and 'my-project' as the value.
C.In the 'Headers' field, add a custom header like 'X-Project-Id: my-project'.
D.In the 'Body' field, provide a JSON payload with the argument, e.g., {"projectId": "my-project"}.
AnswerD

Cloud Scheduler can invoke Workflows via an HTTP POST request. The Workflows API expects runtime arguments in the request body as JSON. By setting the 'Body' field to {"projectId": "my-project"}, the argument is passed correctly. The Workflows execution will receive it as part of the execution context, making it available to the workflow definition.

Why this answer

When Cloud Scheduler triggers a Workflows execution, it sends an HTTP POST request to the Workflows API endpoint. Runtime arguments must be included in the request body as a JSON object. The 'Body' field in Cloud Scheduler allows you to specify this JSON payload, ensuring the workflow receives the 'projectId' argument.

Other fields like URL, headers, or non-existent attributes do not serve this purpose.

Exam trap

The trap here is assuming that workflow arguments can be passed via URL query parameters or headers, when the Workflows API requires them in the JSON body.

235
Multi-Selecteasy

Which TWO are methods to secure GCS data?

Select 2 answers
A.Renaming files
B.IAM roles
C.Printing files
D.Public internet access
E.Cloud KMS encryption
AnswersB, E

IAM roles grant identities granular permissions on buckets and objects, letting you restrict who may read, write or administer GCS data. This satisfies the question's requirement for an access-control method, operating at the identity and resource-policy layer rather than encrypting the stored bytes.

Why this answer

IAM roles (B) are a correct method to secure GCS data because Cloud Storage uses Cloud IAM to grant fine-grained, least-privilege access to buckets and objects, controlling who can read, write, or administer data via roles such as roles/storage.objectViewer or roles/storage.admin. Cloud KMS encryption (E) is also correct because Customer-Managed Encryption Keys (CMEK) let you encrypt GCS objects with keys you own and manage in Cloud KMS, giving you control over key rotation, revocation, and audit of cryptographic access. Renaming files (A) does not secure data, since object names are not a security control and access is governed by IAM and ACLs, not filenames.

Printing files (C) is unrelated to data security and could actually increase exposure by creating physical or additional copies. Public internet access (D) is the opposite of securing data, as making a bucket public grants anonymous read access and violates the principle of least privilege.

Exam trap

GCP-ADP often tests whether candidates recognize that 'security' means access control plus encryption — distractors like renaming or public access exploit confusion between operational actions and actual security controls.

236
MCQmedium

A data analyst is working in a Vertex AI Workbench notebook. They want to connect to a private BigQuery dataset. How should they authenticate?

A.Enter your username and password in every query.
B.Hardcode the service account key in the notebook.
C.The instance's attached service account will handle authentication automatically.
D.Use the 'gcloud auth login' command in every cell.
AnswerC

Vertex AI Workbench instances run as a service account; client libraries and the BigQuery API use its credentials automatically, so no manual key or user login is needed. This satisfies the stem's private-dataset access requirement through IAM roles on that account.

Why this answer

Vertex AI Workbench instances are associated with a service account that provides credentials to Google Cloud APIs. When the notebook calls BigQuery, the client library uses the instance's attached service account automatically via the metadata server, so no manual credentials are needed. This is the secure and recommended authentication method.

Exam trap

GCP-ADP often tests the misconception that you must hardcode keys or log in manually, when Workbench's attached service account handles authentication transparently via ADC.

How to eliminate wrong answers

Option A is wrong because entering username and password per query is not how BigQuery authentication works and is insecure. Option B is wrong because hardcoding service account keys in a notebook exposes credentials in code and violates security best practices. Option D is wrong because running gcloud auth login in every cell is unnecessary and would require interactive browser authentication, which is not suitable for automated notebook execution.

237
MCQmedium

A financial analyst needs a Looker dashboard tile that shows month-over-month revenue growth as a percentage. The underlying BigQuery table stores completed transactions, and the analyst wants the tile to update without manual intervention each month. Which approach should the analyst use in Looker?

A.Define a custom dimension using a CASE statement that labels each month as higher or lower than the previous month.
B.Create a derived table in Looker's SQL editor that precomputes monthly growth for every historical month and schedule it to rebuild quarterly.
C.Add a measure using the percent_of_total type so Looker automatically expresses each month's revenue as a share of the yearly total.
D.Build a table calculation using offset() to compare each month's revenue with the prior month and express the difference as a percentage.
AnswerD

Table calculations operate on the results already returned by the query, so offset() can reference the previous row's revenue value within the month-ordered result set. Dividing the difference by the prior month's revenue yields a growth percentage, and because the calculation lives in the Looker tile it recalculates automatically whenever the dashboard runs with fresh data, requiring no manual monthly edit.

Why this answer

Growth between consecutive periods requires comparing a row with the row before it, which is exactly what offset() provides inside a table calculation. Because the calculation is evaluated when the query runs, the tile reflects current data on every dashboard load with no rebuild schedule. Dividing the month-over-month difference by the prior month's revenue expresses the change as a percentage, matching the requested metric.

Exam trap

The trap here is reaching for a precomputed derived table when the requirement is a dynamic, self-refreshing period-over-period comparison.

238
MCQeasy

When using Cloud Scheduler to trigger a Workflows execution, what is the best practice for authenticating the scheduler to the Workflows API?

A.Use an API Key generated in the console.
B.Hardcode credentials in the scheduler job.
C.Use 'Public' access for the workflow.
D.Use an OIDC token with a service account.
AnswerD

OIDC tokens carry a signed identity assertion that Workflows validates against the caller's service account, satisfying the stem's requirement for authenticated HTTP invocation. Cloud Scheduler attaches this token in the Authorization header, and granting that service account the Workflows Invoker role scopes permission precisely, avoiding broader OAuth scopes.

Why this answer

The best practice for Cloud Scheduler to authenticate to the Workflows API is to configure the job with an OIDC token tied to a service account that has permission to invoke the workflow. Cloud Scheduler supports OIDC authentication for HTTP targets, and the service account's identity is verified by Workflows via IAM. This avoids static credentials and follows least-privilege.

Exam trap

GCP-ADP often tests whether candidates choose secure identity-based auth (OIDC + service account) over insecure shortcuts like API keys or public access, so candidates may pick API key thinking it is simpler.

How to eliminate wrong answers

Option A is wrong because API keys are not the recommended or supported authentication mechanism for invoking Workflows; API keys lack identity and fine-grained IAM control. Option B is wrong because hardcoding credentials is a security anti-pattern and not a supported Cloud Scheduler authentication method. Option C is wrong because making the workflow public removes authentication entirely, violating security best practices and exposing the workflow to unauthorized invocation.

239
MCQmedium

You are using Vertex AI Workbench. You want to install a new Python library, `seaborn`, for visualization. What is the correct way to install it in the notebook instance?

A.!pip install seaborn
B.Use the Google Cloud Console library menu.
C.import seaborn
D.apt-get install seaborn
AnswerA

Prefixing a command with ! in a Jupyter notebook cell executes it as a shell command on the instance, so pip installs seaborn into the notebook's Python environment. This satisfies the stem's requirement for installing the library in the Vertex AI Workbench instance.

Why this answer

In a Vertex AI Workbench notebook (JupyterLab-based), the correct way to install a Python package is to run a shell command from a notebook cell using the `!` prefix, so `!pip install seaborn` executes pip in the notebook's kernel environment. This installs the library into the instance's Python environment so it can be imported in subsequent cells.

Exam trap

GCP-ADP often tests the distinction between installing a package (`!pip install`) and importing it (`import`) — candidates pick the import statement thinking it fetches the library, or pick apt-get confusing Python packages with system packages.

How to eliminate wrong answers

Option B is wrong because there is no Google Cloud Console library menu for installing Python packages into a notebook instance — package management is done inside the notebook environment. Option C is wrong because `import seaborn` only imports an already-installed package; if seaborn is not installed, it raises ModuleNotFoundError and does not install anything. Option D is wrong because `apt-get install seaborn` installs system-level Debian packages, not Python packages from PyPI, and seaborn is not distributed as an apt package in the standard repos.

240
MCQeasy

Which service should you use to ingest streaming data from mobile devices?

A.Cloud Storage
B.BigQuery
C.Pub/Sub
D.Cloud SQL
AnswerC

Pub/Sub is a fully managed, globally scalable messaging service that decouples mobile producers from downstream consumers, absorbing unpredictable device traffic bursts. It satisfies the streaming ingestion constraint by providing durable, at-least-once delivery with automatic scaling, unlike batch-oriented alternatives such as Cloud Storage or Dataflow itself.

Why this answer

Pub/Sub is designed for real-time messaging and ingestion of streaming data from various sources, including mobile devices. It decouples producers from consumers, allowing mobile apps to publish events to topics that downstream services can subscribe to. This makes it ideal for high-throughput, low-latency streaming ingestion.

Other options are storage or analytics services, not ingestion services.

Exam trap

GCP-ADP often tests the distinction between ingestion services (Pub/Sub) and storage/analytics services (BigQuery, Cloud Storage), so candidates might incorrectly choose BigQuery for streaming ingestion because it supports streaming inserts, but Pub/Sub is the dedicated ingestion service.

How to eliminate wrong answers

Option A is wrong because Cloud Storage is an object storage service for batch storage, not for streaming ingestion; it lacks native pub/sub messaging and real-time delivery. Option B is wrong because BigQuery is a data warehouse for analytics, not an ingestion service; while it can ingest streaming data via its API, it is not the primary service for ingesting from mobile devices and lacks the messaging semantics of Pub/Sub. Option D is wrong because Cloud SQL is a relational database for transactional workloads, not designed for high-volume streaming ingestion from mobile devices.

241
MCQhard

You are building a Looker model and want to create a measure that calculates the count of distinct customers. Which type of measure should you use?

A.type: count
B.type: average_distinct
C.type: sum_distinct
D.type: count_distinct
AnswerD

`count_distinct` aggregates by counting unique values in a dimension, directly satisfying the requirement for distinct customer counts. Unlike `count`, which tallies every row including duplicates, it deduplicates at query time. This makes it the precise measure type for counting distinct customers in a Looker model.

Why this answer

Looker's measure type 'count_distinct' computes the number of unique values in a given dimension or column, which is exactly what is needed to count distinct customers. It is the standard LookML measure type for distinct counts.

Exam trap

GCP-ADP often tests whether candidates confuse 'count' with 'count_distinct', or invent non-existent types like 'sum_distinct' — the trap is assuming any 'distinct' variant is valid.

How to eliminate wrong answers

Option A is wrong because 'type: count' counts all rows, including duplicates, not distinct values. Option B is wrong because 'average_distinct' is not a valid Looker measure type — it is a fabricated option. Option C is wrong because 'sum_distinct' is also not a valid Looker measure type; Looker supports sum, but not sum_distinct as a measure type.

242
MCQmedium

You are using Cloud Composer to orchestrate a daily ETL pipeline. A task that normally completes in 10 minutes occasionally runs for over 2 hours due to unexpected data volume. You want to prevent this task from indefinitely blocking the workflow and ensure it fails after 30 minutes so downstream tasks can be retried or alerted. What should you configure on the task?

A.Set the DAG's dagrun_timeout to 30 minutes.
B.Set the task's retries parameter to 0.
C.Set the scheduler's max_threads to a higher value.
D.Set execution_timeout to 30 minutes in the task definition.
AnswerD

execution_timeout is an Airflow task parameter that sets the maximum time a task is allowed to run. If the task exceeds this duration, it is terminated and marked as failed. Setting it to 30 minutes ensures that long-running tasks are killed, allowing downstream tasks to handle the failure or alerts to be triggered. This directly addresses the requirement to avoid indefinite blocking.

Why this answer

In Cloud Composer, Airflow tasks support an execution_timeout parameter that defines the maximum runtime for a single task. When the timeout is reached, the task is terminated and marked as failed, enabling downstream tasks to proceed or alerts to fire. Configuring this on the specific task ensures that only that task is affected, preserving the rest of the DAG's execution.

Exam trap

The trap here is confusing task-level execution_timeout with DAG-level dagrun_timeout, which applies to the entire DAG run rather than a single task.

243
MCQmedium

A data engineer must ingest change data capture streams from an on-premises PostgreSQL database into BigQuery with minimal latency and without writing custom extraction code. The source table has a primary key that updates frequently. Which Google Cloud service should be used to replicate these changes continuously?

A.A scheduled BigQuery Data Transfer Service job with a PostgreSQL connector
B.Datastream with a PostgreSQL source and a BigQuery destination
C.A Cloud SQL federated query from BigQuery against the on-premises PostgreSQL instance
D.A Dataflow pipeline using the JDBC-to-BigQuery template run on a timer
AnswerB

Datastream is a serverless change data capture and replication service that reads the PostgreSQL write-ahead log, captures inserts, updates, and deletes with minimal latency, and writes them to BigQuery without custom extraction code. It handles the primary key updates and schema changes as part of replication, matching the continuous, low-latency requirement.

Why this answer

Continuous, low-latency change data capture from PostgreSQL into BigQuery without custom code is exactly what Datastream provides, reading the database log and applying changes to BigQuery. Scheduled transfer jobs and timer-driven Dataflow templates operate in batches and miss intermediate changes, while federated queries read at query time rather than replicating, so none deliver the required streaming replication.

Exam trap

The trap here is assuming any PostgreSQL connector performs change data capture, when most connectors and templates only perform scheduled batch reads.

244
MCQeasy

What is the primary function of the 'Dataplex Discovery' process?

A.To manage VPC firewall rules
B.To run SQL queries
C.To migrate data to the cloud
D.To automatically catalog and profile data
AnswerD

Dataplex Discovery automatically scans registered data lakes and zones, generating metadata and profiling statistics for each dataset. This satisfies the stem's requirement for the primary function: it catalogues assets into the Knowledge Catalog and profiles their structure and content, enabling search, governance and understanding without manual metadata entry.

Why this answer

Dataplex Discovery is the automated process that scans data assets (Cloud Storage buckets, BigQuery datasets) to infer schemas, extract metadata, and profile data (e.g., statistics, data quality). It populates the Dataplex Catalog so users can search, understand, and govern data without manual cataloging. Its primary function is therefore to automatically catalog and profile data.

Exam trap

GCP-ADP often tests whether candidates confuse Dataplex Discovery with data movement or query execution, when its actual role is metadata extraction, cataloging, and profiling.

How to eliminate wrong answers

Option A is wrong because VPC firewall rules are managed by VPC firewall, not Dataplex; Dataplex has no role in network security configuration. Option B is wrong because running SQL queries is the function of BigQuery (or other query engines), not Dataplex Discovery; Dataplex may surface metadata but does not execute queries. Option C is wrong because migrating data to the cloud is handled by services like Storage Transfer Service or Database Migration Service; Dataplex Discovery does not move data, it only inspects it in place.

245
MCQmedium

You have a dashboard in Looker Studio and you want to allow users to dynamically change the date range without editing the report. What should you add?

A.Parameter.
B.Date range control.
C.Calculated field.
D.Chart interaction filter.
AnswerB

A date range control binds a filter directly to the report canvas, letting viewers adjust the start and end dates at view time without opening the report editor. This satisfies the stem's requirement for dynamic, user-driven date selection, since the control writes the chosen range into the chart queries rather than hard-coding it.

Why this answer

A Date range control in Looker Studio is a native chart component that renders an interactive date picker on the report canvas, letting viewers change the time window of all charts bound to that date dimension without editing the report. It is the standard, purpose-built UI element for dynamic date filtering.

Exam trap

GCP-ADP often tests the distinction between Parameters (which drive logic/calculations) and Controls (which drive interactive filtering), so candidates who conflate the two pick Parameter.

How to eliminate wrong answers

Option A is wrong because a Parameter is a user-defined variable used to drive calculated fields, custom queries, or filter expressions — it does not by itself render a date picker UI for viewers. Option C is wrong because a Calculated field is a derived metric or dimension expression, not an interactive control. Option D is wrong because a chart interaction filter is triggered by clicking a data point in another chart (e.g., selecting a bar), not by choosing an arbitrary date range.

246
MCQhard

You have data scattered across multiple projects and need to provide a unified data governance view. What is the recommended hierarchy?

A.A single GCS bucket for all data
B.Multiple Lakes, one per project, and manage them independently
C.One Lake, with assets added from multiple projects
D.One Lake per project, then use a project-linking tool
AnswerC

Dataplex lakes span projects: a single lake acts as the governance boundary, and you attach assets that reference BigQuery datasets or Cloud Storage buckets residing in other projects. This gives one unified view without duplicating or moving the underlying data.

Why this answer

Dataplex is designed so that a single Lake can contain Zones and Assets that reference resources from multiple projects, giving one unified governance and discovery view across the organization. This is the recommended hierarchy because it centralizes policy, metadata, and lineage while still allowing data to physically reside in different projects.

Exam trap

The trap is assuming governance must mirror project boundaries (one lake per project) — the exam tests whether you know Dataplex lakes can aggregate assets across projects into a single governance view.

How to eliminate wrong answers

Option A is wrong because consolidating all data into one GCS bucket ignores project-level isolation, IAM boundaries, and regional/data-residency requirements, and does not provide governance metadata. Option B is wrong because multiple independent lakes per project defeats the purpose of a unified view and forces duplicated governance effort. Option D is wrong because there is no 'project-linking tool' in Dataplex; lakes are the linking construct, and one-lake-per-project plus a fictional tool is not a supported architecture.

247
MCQeasy

You need to ensure that deleted files in GCS can be restored for 30 days. What should you configure?

A.Cloud Storage bucket lock
B.Object Versioning
C.Bucket Lifecycle policy
D.IAM
AnswerB

Object Versioning retains noncurrent object generations after deletion or overwrite, letting you restore the prior generation for as long as you keep it. Combined with a lifecycle rule that deletes noncurrent versions after 30 days, it satisfies the stem's 30-day restorability constraint for deleted files in Cloud Storage.

Why this answer

Object Versioning preserves prior versions of objects when they are overwritten or deleted, allowing restoration for as long as the noncurrent versions are retained. To meet the 30-day restore requirement, you enable Object Versioning on the bucket and optionally add a lifecycle rule to delete noncurrent versions after 30 days. This directly satisfies the recoverability requirement without locking the bucket.

Exam trap

GCP-ADP often tests the confusion between retention/lock features (which prevent deletion) and versioning (which enables recovery after deletion) — candidates incorrectly pick bucket lock thinking it restores deleted files.

How to eliminate wrong answers

Option A is wrong because a bucket lock (retention policy) prevents deletion or modification of objects for a fixed period but does not provide a restore mechanism for already-deleted files; it enforces immutability, not recovery. Option C is wrong because a Lifecycle policy automates deletion, storage class transitions, or version cleanup — it does not itself enable restoration of deleted objects. Option D is wrong because IAM controls access permissions and cannot restore deleted objects or provide version history.

248
Multi-Selecthard

Which TWO of the following strategies help reduce Cloud Composer costs?

Select 2 answers
A.Keep all historical logs forever
B.Use the largest environment size
C.Delete unused environments
D.Increase scheduler frequency
E.Enable auto-scaling
AnswersC, E

Deleting unused environments removes the underlying GKE cluster, Cloud SQL instance, and storage buckets that Composer provisions per environment, eliminating their hourly compute and database charges. This directly satisfies the stem's cost-reduction goal, since idle environments still bill continuously even when no DAGs run.

Why this answer

Option C (Delete unused environments) is correct because Cloud Composer charges for the underlying GKE nodes, Cloud SQL database, and web server that run continuously per environment, so removing environments that are no longer needed eliminates those recurring infrastructure costs. Option E (Enable auto-scaling) is correct because Composer's autoscaling dynamically adjusts the number of worker nodes based on the workload's queue demand, allowing the environment to scale down during idle periods and avoid paying for excess capacity. Option A (Keep all historical logs forever) is wrong because retaining logs indefinitely increases Cloud Logging storage costs rather than reducing them.

Option B (Use the largest environment size) is wrong because larger environments provision more workers and thus cost more, not less. Option D (Increase scheduler frequency) is wrong because more frequent scheduler runs increase resource consumption and can raise costs instead of lowering them.

Exam trap

GCP-ADP often tests the misconception that 'more resources equals better performance at no cost' — candidates pick the largest environment or higher scheduler frequency thinking it improves reliability, when the question is explicitly about reducing cost.

249
MCQeasy

You are a data analyst at a marketing firm. You need to query a large dataset stored in BigQuery, but you want to minimize query costs. The dataset contains a column named event_time of type TIMESTAMP. Most of your queries filter on event_time for a specific day. What should you do to reduce the amount of data scanned by your queries?

A.Add a clustered column on event_time to the table.
B.Create a partitioned table on the event_time column.
C.Use the LIMIT clause to restrict the number of rows returned.
D.Use a wildcard table query to select only the relevant shards.
AnswerB

Partitioning the table on event_time allows BigQuery to scan only the partitions that contain the relevant data. When you filter on a specific day, BigQuery prunes all other partitions, significantly reducing the bytes processed and thus the query cost. This is the most effective way to minimize costs for queries that filter on a time column. It requires recreating or altering the table to be partitioned.

Why this answer

Partitioning the table on event_time enables BigQuery to prune partitions that do not match the filter. When querying for a specific day, only that day's partition is scanned, reducing the amount of data processed and lowering cost. Other methods like LIMIT, wildcard tables, or clustering do not achieve the same cost reduction for time-filtered queries.

Exam trap

The trap here is thinking that LIMIT reduces cost, when it only limits the result set, not the data scanned.

250
MCQhard

You are running a Dataflow job and notice that it is consuming too much memory and crashing. How do you optimize this?

A.Increase the number of workers
B.Reduce the number of workers
C.Use Batch mode
D.Select a higher memory machine type
AnswerD

Selecting a higher memory machine type gives each worker more RAM, preventing the out-of-memory crashes observed. This directly addresses the excessive memory consumption constraint by increasing available memory per worker rather than altering pipeline logic.

Why this answer

Dataflow worker memory is determined by the machine type; if a job is OOMing, selecting a higher-memory machine type (e.g., n1-highmem or a custom machine type) gives each worker more RAM to hold state, buffers, and user code. This directly addresses the memory pressure without changing parallelism.

Exam trap

The trap is assuming more workers equals more memory — candidates pick 'increase workers' when the real fix is per-worker memory via machine type or Streaming Engine.

How to eliminate wrong answers

Option A is wrong because adding workers increases parallelism but does not increase per-worker memory; if the bottleneck is per-worker memory, more workers can even worsen the problem by increasing shuffle pressure. Option B is wrong because reducing workers concentrates load and typically makes OOM worse. Option C is wrong because Batch mode vs Streaming mode changes execution semantics, not memory per worker, and the job may need to remain streaming.

251
Multi-Selecthard

You are implementing a security strategy for your data lake. Which THREE of the following are supported ways to control access to data within a Dataplex Lake? (Choose three)

Select 3 answers
A.Grant Dataplex-specific roles to users
B.Apply IAM roles to the underlying storage resources
C.Use Policy Tags for column-level security
D.Use IP-based firewalls for all datasets
E.Assign roles to individual files
AnswersA, B, C

Dataplex defines its own IAM roles, such as Dataplex Viewer and Dataplex Editor, that grant access to lake, zone and asset metadata independently of the underlying storage. Assigning these roles to users satisfies the requirement to control access within the lake itself.

Why this answer

Option A is correct because Dataplex Lake access is governed through IAM by granting Dataplex-specific roles (such as roles/dataplex.viewer, roles/dataplex.editor, or roles/dataplex.admin) to users, groups, or service accounts, which controls who can view or manage the lake and its zones/assets. Option B is correct because Dataplex assets point to underlying storage such as Cloud Storage buckets or BigQuery datasets, and IAM roles applied directly to those underlying resources (for example roles/storage.objectViewer or roles/bigquery.dataViewer) are honored and provide an additional supported layer of data access control. Option C is correct because Dataplex integrates with BigQuery and Data Catalog Policy Tags (via the Dataplex/Data Catalog taxonomy and policy tag framework) to enforce column-level security, restricting access to specific columns of sensitive data.

Option D is not correct because IP-based firewalls are a network-level control (e.g., VPC firewall rules) and are not a supported mechanism for controlling access to data within a Dataplex Lake. Option E is not correct because IAM roles are not assigned to individual files; permissions are granted at the resource hierarchy level (project, bucket, dataset, table, or Dataplex entity), not per file.

Exam trap

GCP-ADP often tests whether candidates understand that Dataplex does not replace native storage IAM — the trap is assuming Dataplex roles alone grant data access, or that network controls like firewalls apply to lake data.

252
MCQhard

A data analyst has a Looker Studio report connected to a BigQuery table containing millions of rows. The report includes a table chart that shows aggregated sales by product category. Users complain that the report takes a long time to load. Which action should the analyst take to improve performance without changing the report's layout?

A.Create a materialized view in BigQuery that pre-aggregates the sales data by product category and connect the report to that view.
B.Enable the 'Aggregate data' option in the table chart settings.
C.Increase the number of rows displayed in the table chart to show more data at once.
D.Add a filter to limit the data to the last 30 days.
AnswerA

A materialized view pre-computes and stores the aggregated results, so the report queries a much smaller dataset. This significantly reduces query time and cost. Since the view is refreshed automatically, the report remains current. The layout of the report remains the same; only the underlying data source changes to a more efficient one.

Why this answer

The report is slow because the table chart queries a large BigQuery table. To improve performance without altering the layout, the analyst should reduce the amount of data processed by the query. Creating a materialized view that pre-aggregates the data by product category achieves this, as the report then queries a smaller, pre-computed dataset.

This maintains the same visual output while drastically improving load times.

Exam trap

The trap here is thinking that adding a filter or increasing rows is a performance fix, but these either change the data shown or make performance worse, rather than optimizing the underlying query.

253
MCQmedium

You need to ingest log data into BigQuery from GCS files that arrive sporadically. Which service is best to trigger this?

A.Cloud Scheduler
B.BigQuery Data Transfer Service
C.Dataflow
D.Cloud Functions
AnswerD

Cloud Functions provides event-driven, serverless execution triggered by GCS object finalisation events, so sporadic file arrivals invoke ingestion only when data lands. Dataproc and Dataflow need persistent clusters or streaming jobs, which waste resources during idle gaps between arrivals.

Why this answer

Cloud Functions is an event-driven serverless compute service that can be triggered by changes in Cloud Storage, such as when a new file arrives. It is ideal for sporadic, unpredictable file arrivals because it scales automatically and you only pay for execution time. You can write a function that triggers on the object finalize event and loads the data into BigQuery.

Exam trap

The trap is confusing event-driven triggers with scheduled or batch processing services, or assuming that Dataflow is always the answer for data movement.

How to eliminate wrong answers

Option A is wrong because Cloud Scheduler is used for cron-based scheduling, not for reacting to file arrival events; it would require polling and is not event-driven. Option B is wrong because BigQuery Data Transfer Service is designed for scheduled, recurring data loads from specific sources (e.g., Google Ads, YouTube) and does not trigger on GCS file arrival. Option C is wrong because Dataflow is a batch and stream processing service that requires a pipeline to be running or triggered, and it is overkill for simple file ingestion; it does not natively trigger on GCS events without additional setup.

254
MCQhard

You are writing a complex BigQuery query and need to define a temporary table to use later in the same query. What is the most efficient syntax?

A.Nested subqueries.
B.WITH clause (CTE).
C.Variable declaration.
D.CREATE TABLE AS SELECT.
AnswerB

A WITH clause defines a named common table expression that BigQuery evaluates once and references throughout the query, avoiding repeated subquery scans. It is the most efficient syntax for a temporary table used later in the same query.

Why this answer

The WITH clause, also known as a Common Table Expression (CTE), defines a temporary named result set that can be referenced later in the same query. It is the most efficient and readable syntax for complex queries because it avoids repeating subqueries and allows modular composition without persisting data.

Exam trap

GCP-ADP often tests the confusion between CTEs and persistent tables, where candidates pick CREATE TABLE AS SELECT thinking it is temporary, missing that it creates a permanent table.

How to eliminate wrong answers

Option A is wrong because nested subqueries are harder to read and maintain, and cannot be referenced multiple times without duplication. Option C is wrong because variable declaration in BigQuery is for scripting (DECLARE) and does not define a temporary table usable in a single query's FROM clause. Option D is wrong because CREATE TABLE AS SELECT creates a persistent table, which incurs storage cost and is not temporary or scoped to the query.

255
MCQmedium

You are using Cloud Dataflow to process a batch pipeline that reads from Cloud Storage, transforms data, and writes to BigQuery. You notice that the pipeline is running slowly and want to optimize it. Which of the following should you do to improve performance?

A.Switch the pipeline to use streaming mode instead of batch mode.
B.Increase the number of workers and use a larger machine type.
C.Disable autoscaling to keep the worker count fixed.
D.Reduce the number of workers to lower contention.
AnswerB

Increasing the number of workers allows Dataflow to parallelize the processing across more machines, which can significantly speed up a batch pipeline. Using a larger machine type provides more CPU and memory per worker, which helps if the transformations are resource-intensive. This is a common and effective way to optimize Dataflow performance when the pipeline is slow due to insufficient resources.

Why this answer

To optimize a slow Dataflow batch pipeline, increasing the number of workers and using larger machine types can provide more parallelism and resources, directly addressing performance bottlenecks. Other options either change the pipeline type inappropriately or reduce resources, which would worsen performance.

Exam trap

The trap here is thinking that reducing workers or disabling autoscaling will improve performance by reducing contention, but these actions typically decrease throughput.

256
MCQhard

You need to perform a complex windowing operation on streaming data in Dataflow. Which windowing strategy is best for session-based activity?

A.Fixed windows
B.Global windows
C.Session windows
D.Sliding windows
AnswerC

Session windows group elements separated by gaps of inactivity, merging windows when events arrive within the configured gap duration. This directly satisfies the stem's session-based activity requirement, where bursts of user actions must be captured as discrete sessions rather than fixed time intervals.

Why this answer

Session windows are designed for session-based activity, where data is grouped by periods of activity separated by gaps of inactivity. They dynamically merge windows based on a specified gap duration, making them ideal for analyzing user sessions. This matches the requirement for complex windowing on streaming data with session-based activity.

Exam trap

The trap here is confusing session windows with sliding windows, as both involve overlapping, but sliding windows are based on fixed intervals, not activity gaps, causing candidates to select sliding for session-based scenarios.

How to eliminate wrong answers

Option A is wrong because fixed windows divide data into fixed-size, non-overlapping intervals, which do not adapt to session gaps. Option B is wrong because global windows encompass all data in a single window, requiring triggers to emit results, and are not suited for session-based grouping. Option D is wrong because sliding windows overlap and are defined by a fixed length and slide period, not by gaps in activity.

257
Multi-Selectmedium

A team is migrating to Dataplex. Which TWO of the following are prerequisites for adding a BigQuery dataset as an asset to a Lake? (Choose two)

Select 2 answers
A.The user needs BigQuery permissions on the dataset
B.The user needs Dataplex asset-management permissions
C.The dataset must be public
D.The dataset must exist in the same project as the Lake
E.The dataset must contain at least one table
AnswersA, B

Adding a BigQuery dataset as a lake asset requires the user to hold BigQuery permissions on that dataset, such as bigquery.datasets.get. This satisfies the stem's prerequisite, since Dataplex must be able to read the dataset's metadata before registering it.

Why this answer

Option A is correct because registering a BigQuery dataset as a Dataplex asset requires the user to hold BigQuery permissions on that dataset (for example, roles such as BigQuery Data Viewer/Owner or bigquery.datasets.get and bigquery.tables.get) so Dataplex can read the dataset's metadata and contents. Option B is correct because the user must also hold Dataplex asset-management permissions (such as dataplex.assets.create/update/delete, typically via roles/dataplex.admin or roles/dataplex.editor) to attach the dataset as an asset within the Lake. Option C is wrong because the dataset does not need to be public; access is governed by IAM permissions, and public exposure is neither required nor recommended.

Option D is wrong because a BigQuery dataset can reside in a different project than the Lake, provided cross-project IAM permissions and the appropriate resource references are configured. Option E is wrong because an empty dataset is still a valid asset; Dataplex does not require the dataset to contain at least one table.

Exam trap

GCP-ADP often tests that Dataplex asset attachment requires dual permissions (Dataplex + BigQuery) and supports cross-project datasets, so candidates who assume the dataset must be public or co-located pick the wrong options.

258
MCQmedium

You are using Cloud Data Fusion to build a batch pipeline that reads from an on-premises Oracle database and writes to BigQuery. The pipeline must run daily and you need to ensure that only new or changed records are ingested since the last run. Which plugin feature should you configure in the source stage?

A.Configure the source plugin's 'Incremental' property with a timestamp column or a numeric column to track changes.
B.Set the source plugin's 'Number of Splits' to a high value to parallelize reads.
C.Enable the 'Use Connection' property and select a preconfigured Oracle connection.
D.Set the sink's 'Update Schema' property to true so BigQuery can merge new records.
AnswerA

Cloud Data Fusion database source plugins support an incremental mode where you specify a column such as a last-modified timestamp or an incrementing ID. The plugin stores the last processed value and uses it to filter subsequent runs, so only new or changed rows are ingested. This directly satisfies the daily incremental load requirement without custom code.

Why this answer

Cloud Data Fusion's database source plugins include an incremental mode that uses a designated column to track the last processed value. By choosing a timestamp or incrementing numeric column, the pipeline can request only rows newer than the stored value on each run. This avoids full-table scans and prevents duplicate ingestion, which is exactly what a daily incremental load from Oracle to BigQuery requires.

Exam trap

The trap here is confusing performance tuning options like splits or connection reuse with change data capture, when incremental ingestion specifically requires a tracking column and stored state.

259
MCQhard

You are using Dataflow with autoscaling. What metric determines whether the worker pool scales up or down?

A.Work backlog and throughput
B.Network latency
C.Memory usage
D.User-defined triggers
AnswerA

Dataflow autoscaling evaluates the ratio of work backlog to throughput, scaling workers when backlog per worker exceeds the target. This directly satisfies the stem's constraint: autoscaling responds to outstanding work versus processing rate, not CPU or memory utilisation, which Dataflow does not use for horizontal worker scaling decisions.

Why this answer

Dataflow autoscaling is driven by the work backlog (unprocessed elements) and throughput relative to the current worker pool. The autoscaler compares the backlog and the rate of processing to decide whether to add or remove workers, targeting a steady-state where backlog stays low without over-provisioning. This is the documented signal for Streaming Engine and batch autoscaling.

Exam trap

GCP-ADP often tests whether candidates know Dataflow autoscaling is backlog/throughput-driven, not resource-metric-driven — the trap is picking memory or CPU as the scaling signal.

How to eliminate wrong answers

Option B is wrong because network latency is not an autoscaling signal — Dataflow scales on work volume, not network conditions. Option C is wrong because memory usage is a per-worker resource metric that can trigger OOM restarts but is not the primary autoscaling input; the autoscaler looks at backlog and throughput. Option D is wrong because user-defined triggers are a Beam windowing concept for emitting results, not a Dataflow worker-scaling mechanism.

260
Multi-Selectmedium

You need to organize your data governance strategy. Which TWO of the following are valid ways to use Dataplex Zones to improve your data organization? (Choose two)

Select 2 answers
A.Assign different IAM policies to different zones
B.Use zones to store query results
C.Create separate zones for each user
D.Group data by processing state (e.g., raw, curated)
E.Use zones to increase data storage speed
AnswersA, D

Dataplex zones are logical partitions of a lake, and IAM policies can be attached at zone level, so each zone grants distinct access. This satisfies the stem's requirement for a valid way zones improve data organisation.

Why this answer

Option A is correct because Dataplex zones are logical groupings of data assets within a lake, and IAM policies can be attached at the zone level, allowing you to grant different access permissions to different zones (e.g., restricting raw data while opening curated data to analysts). Option D is correct because zones are designed to organize data by its lifecycle or processing state, so creating raw, curated, and consumption zones is a canonical Dataplex pattern for data governance. Option B is not valid because query results are stored in BigQuery datasets or temporary tables, not in Dataplex zones, which are metadata/organization constructs rather than storage destinations.

Option C is not valid because zones group data assets by governance or lifecycle characteristics, not by individual users; per-user access is handled through IAM, not by creating a zone per user. Option E is not valid because zones do not affect storage performance or speed; they are organizational and governance constructs, and storage speed is determined by the underlying service (e.g., Cloud Storage or BigQuery).

Exam trap

GCP-ADP often tests whether candidates understand that Dataplex Zones are governance constructs — the trap is selecting options that treat zones as storage, performance, or per-user isolation mechanisms.

261
MCQhard

You need to ingest IoT data into BigQuery. You need to handle messages arriving in millions per second. Which service acts as the buffer?

A.Cloud SQL
B.Pub/Sub
C.Cloud Functions
D.BigQuery Streaming API
AnswerB

Pub/Sub decouples ingestion from processing by durably buffering messages across distributed partitions, absorbing millions of messages per second without backpressure. This satisfies the stem's buffering constraint: publishers write independently of BigQuery load, letting subscribers drain at their own pace and preventing data loss during traffic spikes.

Why this answer

Pub/Sub is Google Cloud's fully managed, globally scalable messaging service designed to decouple producers from consumers, and it can absorb millions of messages per second without backpressure. In an IoT ingestion architecture, Pub/Sub acts as the durable buffer that holds incoming telemetry until BigQuery (via Dataflow or the Storage Write API) can commit it. This decoupling prevents data loss during BigQuery load spikes and lets each side scale independently.

Exam trap

GCP-ADP often tests the difference between a buffer/ingestion layer and a processing or storage layer — candidates pick BigQuery Streaming API or Cloud Functions because they 'handle' the data, missing that only Pub/Sub provides durable, high-throughput buffering.

How to eliminate wrong answers

Option A is wrong because Cloud SQL is a relational OLTP database with strict connection limits and single-digit-thousand TPS ceilings, so it cannot buffer millions of messages per second. Option C is wrong because Cloud Functions is a stateless compute runtime with a 10-minute max timeout and per-instance concurrency limits — it processes events but does not durably buffer them. Option D is wrong because the BigQuery Streaming API is a write endpoint, not a buffer; it applies per-table streaming quotas and will reject or throttle traffic if the sink cannot keep up.

262
MCQhard

You are using Workflows to orchestrate a series of steps that call external HTTP APIs. One API occasionally returns a 503 error, and you want the workflow to retry that specific step with exponential backoff, but not retry on 404 errors. How should you configure the step?

A.Configure the entire workflow to retry on any error by setting a global retry policy, and rely on the API to eventually return success for 404s.
B.Wrap the API call in a try/except block and use a loop with a sleep timer that doubles each iteration, manually checking for 503 before retrying.
C.Use a Cloud Scheduler job to invoke the API step repeatedly with increasing intervals until it succeeds, then trigger the rest of the workflow.
D.Set the step's retry predicate to check for a 503 status code and configure a retry policy with exponential backoff, and do not include 404 in the predicate.
AnswerD

Workflows allows you to define a retry predicate that examines the error or response and a retry policy with backoff parameters. By predicating only on 503, the step retries on server errors but fails immediately on 404. This matches the requirement precisely and uses native Workflows retry capabilities.

Why this answer

Workflows steps support a retry policy with a predicate that can inspect the error or response. By predicating on 503 only, the step retries with exponential backoff on server errors and fails fast on 404. Manual loops or global retries do not provide the same granular control, and Cloud Scheduler is not designed for in-workflow retries.

Exam trap

The trap here is thinking you need to implement retry logic manually with loops or use a global retry policy, when Workflows provides per-step retry predicates and backoff configuration.

263
MCQmedium

A financial analytics team ingests transaction events into Pub/Sub, then uses a Dataflow streaming pipeline with a GroupByKey transform to aggregate per-account totals. The team reports that late-arriving events—sometimes hours behind due to mobile connectivity—are being dropped and never counted in the aggregates. You need the pipeline to include those late events in the correct window. What should you configure?

A.Increase the Pub/Sub message retention duration to 7 days on the topic.
B.Switch the pipeline from streaming mode to batch mode with a longer maximum worker count.
C.Set a longer allowed lateness on the windowing strategy and emit late panes from the pipeline.
D.Add a Reshuffle transform after the GroupByKey to redistribute late records across workers.
AnswerC

Allowed lateness extends how long a window's state is retained after the watermark passes the window end. Setting it lets late events still be assigned to their correct window and emitted as late panes, so the mobile events arriving hours behind are counted. This is the intended Dataflow mechanism for bounded late data, and the team must also decide how to handle late panes downstream.

Why this answer

Allowed lateness is the Dataflow setting that governs how long window state persists after the watermark passes the window end. Extending it lets events arriving hours behind be assigned to the correct window and emitted as late panes. Pub/Sub retention, batch mode, and Reshuffle operate at different layers and do not change event-time windowing semantics.

Exam trap

The trap here is assuming that increasing Pub/Sub message retention will fix dropped late events, when the loss actually occurs in the Dataflow windowing layer governed by allowed lateness.

264
MCQmedium

You are loading a daily CSV file from Cloud Storage into a BigQuery table. The file contains a header row, uses comma delimiters, and has some rows with extra trailing columns. You want the load to tolerate these malformed rows by skipping them and recording how many were skipped, without failing the whole job. Which load configuration should you use?

A.Set `skipLeadingRows` to 1 and set `allowJaggedRows` to false.
B.Set `skipLeadingRows` to 1 and set `ignoreUnknownValues` to true.
C.Set `skipLeadingRows` to 1 and set `maxBadRecords` to a positive value.
D.Set `skipLeadingRows` to 1 and enable `allowQuotedNewlines`.
AnswerC

`skipLeadingRows` skips the header row, and `maxBadRecords` lets the load succeed as long as the number of bad rows does not exceed the threshold. BigQuery records the count of skipped records, which you can inspect. A row with extra columns counts as a bad record, so this configuration tolerates malformed rows instead of failing the entire job.

Why this answer

`maxBadRecords` is the setting that lets a load job complete while skipping rows that cannot be parsed, and BigQuery reports how many were skipped. Pairing it with `skipLeadingRows` handles the header so the header is not counted as a bad row, giving a load that tolerates the malformed data and still succeeds.

Exam trap

The trap here is confusing `ignoreUnknownValues`, which applies to extra fields in formats like JSON, with tolerance for CSV rows that have the wrong number of columns.

265
MCQeasy

A user complains they cannot see a Dataplex Lake in the console. You verify they have the 'Viewer' role on the project. What is missing?

A.They need to refresh their browser
B.They need the 'roles/dataplex.viewer' role
C.They need the 'Owner' role
D.They need to be added to the project's whitelist
AnswerB

Project-level Viewer grants broad read access but does not include Dataplex-specific permissions. The roles/dataplex.viewer role supplies dataplex.lakes.get and related metadata reads required to render the Lake in the console, so it must be granted separately.

Why this answer

Dataplex uses its own IAM roles, and project-level Viewer (roles/viewer) does not grant permission to view Dataplex lakes. The user needs the Dataplex Viewer role (roles/dataplex.viewer) — or a broader role that includes dataplex.lakes.get/list — to see the lake in the console.

Exam trap

The trap is assuming basic project roles (Viewer/Editor/Owner) cover all services — GCP-ADP tests whether you know Dataplex requires its own service-specific IAM roles like roles/dataplex.viewer.

How to eliminate wrong answers

Option A is wrong because a browser refresh does not change IAM permissions; if the role is missing, the lake will remain invisible regardless of refresh. Option C is wrong because Owner is far broader than necessary and is not the specific missing permission — the principle of least privilege calls for roles/dataplex.viewer, and Owner would work but is not the correct/least-privilege answer. Option D is wrong because there is no project 'whitelist' concept in GCP IAM; access is granted via IAM bindings, not whitelists.

266
Multi-Selecthard

A data practitioner is building a Looker Studio report connected to a BigQuery table that contains millions of rows. The report currently returns an error indicating the query result exceeds the row limit, and stakeholders also complain that the charts take too long to render. Which two actions should the practitioner take to address these issues? (Choose two.)

Select 2 answers
A.Enable the 'Extract data' option on the data source so a snapshot of the data is cached and reused by the report.
B.Switch the data source to the Google Sheets connector and import the BigQuery results into a spreadsheet first.
C.Move the aggregation into a BigQuery view or scheduled query so the data source returns pre-aggregated results instead of raw rows.
D.Increase the number of rows returned by editing the BigQuery connector's maximum row setting in the data source configuration.
E.Add more chart types to the report page so Looker Studio distributes the query load across multiple visualizations.
AnswersA, C

Extracts store a materialized copy of the query results inside Looker Studio rather than querying BigQuery on every page load. This removes repeated round trips to the warehouse, cutting render latency, and the extract itself is subject to the connector's row limit, so pairing it with aggregation keeps the snapshot within bounds. It is a standard remedy for slow dashboards that do not need second-by-second freshness.

Why this answer

Both symptoms trace back to volume: too many rows for the connector and too much work per page render. Aggregating in BigQuery before the data reaches Looker Studio reduces the row count under the connector limit and lightens each query. Caching that reduced result as an extract removes repeated warehouse round trips, so charts render from local snapshot data.

Together they fix the error and the latency without changing the report's meaning.

Exam trap

The trap here is treating the connector row limit as a configurable quota that can be raised, rather than a fixed constraint that must be designed around.

267
Multi-Selecthard

Which THREE of the following are Dataflow windowing types?

Select 3 answers
A.Fixed
B.Session
C.Binary
D.Sliding
E.Random
AnswersA, B, D

Fixed windows partition unbounded data into equal, non-overlapping intervals based on event time, satisfying the stem's requirement for a genuine Dataflow windowing type. Apache Beam, which underpins Dataflow, defines fixed, sliding, and session windows as its core built-in types, so Fixed qualifies directly.

Why this answer

In Google Cloud Dataflow (Apache Beam), the supported windowing types are fixed windows, sliding windows, and session windows, so options A, B, and D are correct. Fixed windows (A) divide a PCollection into non-overlapping, contiguous time intervals of a set duration, such as every 60 seconds. Session windows (B) group elements that arrive close together in time, separated by a gap duration of inactivity, which is useful for user-activity streams.

Sliding windows (D) are defined by a window duration and a slide period, allowing windows to overlap, such as a 60-second window that slides every 30 seconds. Binary (C) and Random (E) are not Beam/Dataflow windowing types; no such windowing functions exist in the Dataflow model.

Exam trap

The trap is confusing windowing types with other Beam concepts (e.g., triggers, side inputs) or inventing non-existent types like 'Binary' or 'Random' — candidates must recall the three canonical windowing types from Apache Beam.

268
Multi-Selectmedium

Which TWO of the following are true about Dataplex assets? (Choose two)

Select 2 answers
A.Assets can be created without a storage resource
B.Assets inherit the location of the zone
C.An asset must belong to exactly one zone
D.Assets can only be BigQuery tables
E.Assets duplicate the physical data
AnswersB, C

A Dataplex asset is created within a zone, and its location is not set independently; it is derived from the parent zone's location. This inheritance satisfies the constraint that assets cannot span regions outside their zone.

Why this answer

Option B is correct because a Dataplex asset is always created inside a zone, and it automatically inherits that zone's location (region), so you cannot place an asset in a different location from its parent zone. Option C is correct because an asset is a child resource of exactly one zone in the Dataplex hierarchy (lake > zone > asset); it cannot be attached to multiple zones simultaneously. Option A is wrong because an asset must reference an underlying storage resource, such as a Cloud Storage bucket, BigQuery dataset, or BigLake table, so it cannot exist without one.

Option D is wrong because assets can represent Cloud Storage buckets/objects, BigQuery datasets/tables, and BigLake tables, not only BigQuery tables. Option E is wrong because Dataplex assets are metadata representations that point to the existing physical data; they do not copy or duplicate the underlying data.

Exam trap

GCP-ADP often tests the hierarchical relationships and constraints of Dataplex components, such as whether an asset can exist without a zone or if it can belong to multiple zones, leading candidates to incorrectly assume flexibility.

269
Multi-Selecthard

Which THREE steps are involved in an effective Dataflow pipeline development?

Select 3 answers
A.Deployment
B.Testing
C.Automated email alerts
D.Development
E.Manual data entry
AnswersA, B, D

Deployment is a required pipeline development step because a Dataflow pipeline must be built, tested and then released to production. Packaging the Apache Beam code and submitting it to the Dataflow service, whether via template or direct runner, satisfies the stem's demand for an end-to-end development lifecycle rather than coding alone.

Why this answer

The three correct steps are Deployment (A), Testing (B), and Development (D). Development (D) is where you author the pipeline code using the Apache Beam SDK, defining PTransforms, sources, and sinks before anything can be run. Testing (B) is essential to validate pipeline logic and correctness, typically via unit tests with TestPipeline and DoFnTester, and integration tests against representative data before production.

Deployment (A) is the step of running the pipeline on a runner such as Dataflow, whether via the gcloud command, the Dataflow template, or a CI/CD job, to execute it at scale. Automated email alerts (C) are an operational monitoring concern, not a core pipeline development step, and manual data entry (E) is not part of building a Dataflow pipeline at all.

Exam trap

GCP-ADP often tests whether candidates confuse operational concerns (alerts, monitoring) with the core development lifecycle steps — email alerts and manual entry are distractors that sound plausible but are not development phases.

270
MCQhard

You need to ingest data from an external API that requires an OAuth token. Which tool is best for executing this periodically?

A.Pub/Sub
B.Cloud Functions
C.BigQuery Data Transfer Service
D.Storage Transfer Service
AnswerB

Cloud Functions suits this because it executes event-driven, serverless code on a schedule via Cloud Scheduler, letting you fetch a fresh OAuth token and call the external API each run. It satisfies the periodic execution constraint without managing servers, unlike batch-oriented Dataflow or orchestration-heavy Composer.

Why this answer

Cloud Functions is the best fit because it can run scheduled (via Cloud Scheduler), execute custom code to perform the OAuth token exchange, call the external API, and write results to a destination like BigQuery or Cloud Storage. It supports secrets via Secret Manager and scales automatically. This makes it ideal for periodic, code-driven API ingestion requiring authentication.

Exam trap

GCP-ADP often tests the misconception that Pub/Sub or Data Transfer Service can directly call arbitrary OAuth-protected APIs, when in fact you need a compute service like Cloud Functions to execute the authenticated request.

How to eliminate wrong answers

Option A is wrong because Pub/Sub is a messaging service, not an execution environment; it cannot itself perform OAuth token exchange or call an external REST API without a subscriber (e.g., a Cloud Function or Dataflow job) doing the work. Option C is wrong because BigQuery Data Transfer Service supports specific connectors (Google Ads, S3, Teradata, etc.) and cannot generically call an arbitrary OAuth-protected external API. Option D is wrong because Storage Transfer Service moves files between object stores (S3, GCS, HTTP) and does not handle OAuth-authenticated REST API calls or custom transformation logic.

271
MCQmedium

You are using Dataprep to prepare data. How can you share your work with a team?

A.Copy the JSON definition
B.Share the Flow
C.Share the underlying GCS file
D.Export to a CSV
AnswerB

A Flow encapsulates the entire recipe, including transformations and inputs, so sharing it gives teammates the complete reproducible pipeline rather than just output data. This directly satisfies the requirement to share the preparation work itself.

Why this answer

In Google Cloud Dataprep, a Flow is the primary container that holds all your recipes, datasets, and transformation logic. Sharing the Flow directly with team members grants them access to the entire pipeline, allowing them to view, edit, and run the same data preparation steps. This is the built-in collaboration mechanism designed for team workflows, and it respects IAM permissions on the underlying project and datasets.

Exam trap

GCP-ADP often tests the distinction between sharing the transformation logic (Flow) versus sharing raw data or output, so candidates may incorrectly choose to share the underlying GCS file or export to CSV, missing that Dataprep's collaboration feature is specifically the Flow.

How to eliminate wrong answers

Option A is wrong because copying the JSON definition only gives a static snapshot of the Flow's configuration; it does not provide a live, collaborative sharing mechanism and requires manual import, which can lead to version drift. Option C is wrong because sharing the underlying GCS file only shares the raw data, not the Dataprep transformation logic, recipes, or Flow structure—team members would have no access to the preparation steps. Option D is wrong because exporting to CSV only produces the transformed output data, not the reusable Flow definition or recipes, so it cannot be used to share the actual work or enable further editing.

272
MCQmedium

Your analytics team stores clickstream events in Cloud Storage as newline-delimited JSON files. They want to query this data with BigQuery using SQL without loading it into native BigQuery storage, and they want the table definition to refresh automatically when new files land in the bucket. What should you configure?

A.Create a BigQuery external table over the Cloud Storage bucket and enable automatic metadata refresh.
B.Create a Dataplex asset over the bucket and query it with the Dataplex SQL endpoint.
C.Mount the bucket with Cloud Storage FUSE on a Dataproc cluster and query it with Spark SQL.
D.Load the JSON files into a native BigQuery table using a recurring Cloud Composer job.
AnswerA

A BigQuery external table lets you query data that lives in Cloud Storage directly with SQL, so no ingestion into BigQuery native storage is needed. Enabling automatic metadata refresh makes BigQuery detect new files and update the table's partition and file metadata on its own, which is exactly the behavior requested. The external table definition stays decoupled from the physical data, and the refresh interval is governed by the max_staleness setting.

Why this answer

The scenario calls for querying Cloud Storage files with BigQuery SQL and having the table definition track new files automatically. An external table over Cloud Storage satisfies in-place querying, and automatic metadata refresh keeps the table aware of newly added objects without manual intervention. The other approaches either copy data into native storage, rely on a non-existent SQL endpoint, or move the workload to a different engine and dialect.

Exam trap

The trap here is assuming data must be loaded into native BigQuery storage before it can be queried with SQL, when external tables query Cloud Storage directly.

Page 3

Page 4 of 4

All pages