Courseiva

Google Cloud Associate Data Practitioner (GCP-ADP) (GCP-ADP) — Questions 151–225

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

Page 2

Page 3 of 4

Page 4
151
MCQmedium

You want to share a BigQuery dataset with a partner who uses a different Google Cloud project. What is the most secure way to grant them access?

A.Grant the partner's service account the 'BigQuery Data Viewer' role on the dataset.
B.Make the dataset public.
C.Provide the partner with your project's service account key.
D.Export the data to a public Cloud Storage bucket.
AnswerA

Granting the partner's service account BigQuery Data Viewer at dataset level satisfies the cross-project least-privilege constraint. IAM policies accept identities from any Google Cloud project, so no project-level or organisation-wide binding is needed. Dataset-scoped access limits exposure to that single dataset, unlike broader roles that would grant visibility across the project.

Why this answer

Granting the partner's service account the BigQuery Data Viewer role on the dataset is the most secure approach because it follows the principle of least privilege: the partner can read data in that specific dataset only, using their own identity, with no credential sharing. IAM roles can be granted at the dataset level, scoping access precisely and allowing easy revocation.

Exam trap

GCP-ADP often tests least-privilege IAM versus insecure shortcuts like public datasets or shared service account keys, so candidates who prioritize convenience over security pick the wrong answer.

How to eliminate wrong answers

Option B is wrong because making the dataset public grants read access to everyone on the internet, which is the opposite of secure and violates least privilege. Option C is wrong because sharing your project's service account key gives the partner full access to everything that service account can do, and long-lived keys are a major security risk that Google recommends avoiding. Option D is wrong because exporting data to a public Cloud Storage bucket exposes the data to anyone with the URL and creates data duplication and staleness problems.

152
MCQhard

You need to perform a time-series analysis in BigQuery. Your data contains timestamps at a millisecond level, but you need to aggregate by hour. What is the most performant way to truncate the timestamp?

A.EXTRACT(HOUR FROM timestamp_column).
B.CAST(timestamp_column AS STRING).
C.TIMESTAMP_TRUNC(timestamp_column, HOUR).
D.Using a CASE statement to manually subtract milliseconds.
AnswerC

TIMESTAMP_TRUNC truncates a timestamp to the specified granularity, here HOUR, discarding finer components. It operates natively on the timestamp type without string conversion, making it the most efficient way to bucket millisecond timestamps for hourly aggregation.

Why this answer

TIMESTAMP_TRUNC(timestamp_column, HOUR) is the purpose-built BigQuery function for truncating a TIMESTAMP to a specified date part (HOUR, DAY, MONTH, etc.), returning a TIMESTAMP value that can be grouped or aggregated directly. It operates natively on the TIMESTAMP type without type conversion, so it is the most performant and semantically correct option for hourly time-series aggregation.

Exam trap

GCP-ADP often tests whether candidates confuse EXTRACT (which returns a component like the hour number) with TIMESTAMP_TRUNC (which returns a truncated timestamp), causing them to pick EXTRACT for aggregation tasks where it silently loses the date.

How to eliminate wrong answers

Option A is wrong because EXTRACT(HOUR FROM timestamp_column) returns only the integer hour (0-23) and discards the date, so timestamps from different days at the same hour would collapse together and break time-series grouping. Option B is wrong because CAST(timestamp_column AS STRING) converts the timestamp to a string representation; it does not truncate to the hour and would produce a distinct value per millisecond, defeating aggregation. Option D is wrong because manually subtracting milliseconds via a CASE statement is error-prone, ignores timezone/DST nuances, and is far slower than the built-in TIMESTAMP_TRUNC function.

153
MCQhard

You are using Dataflow to read from Pub/Sub. The pipeline is failing due to malformed messages. How can you handle these without crashing?

A.Use a Dead Letter Queue (DLQ)
B.Ignore errors
C.Increase memory
D.Restart the pipeline
AnswerA

A Dead Letter Queue captures messages that repeatedly fail processing, letting the pipeline route malformed records aside instead of throwing exceptions that halt the pipeline. This satisfies the requirement to handle bad messages without crashing.

Why this answer

A Dead Letter Queue pattern in Dataflow captures messages that fail transformation or parsing so the pipeline can continue processing valid records. In Apache Beam you implement this by branching the pipeline: successful records go to the main sink, and failed records (caught via try/except or a tagged output) are written to a separate Pub/Sub topic or BigQuery table for later inspection. This prevents a single malformed message from killing the streaming job.

Exam trap

GCP-ADP often tests whether candidates confuse infrastructure-level retries (Pub/Sub redelivery, Dataflow worker restarts) with application-level error handling — the DLQ pattern is the only option that actually isolates bad records.

How to eliminate wrong answers

Option B is wrong because silently ignoring errors hides data quality problems and can cause silent data loss; it is not a real error-handling strategy. Option C is wrong because increasing memory does not fix malformed input — the failure is a parsing/validation error, not an out-of-memory condition. Option D is wrong because restarting the pipeline only temporarily recovers; the same malformed message will be redelivered and crash the job again, creating a restart loop.

154
MCQmedium

A retail analytics team stores raw clickstream events in a Cloud Storage bucket. They want to query this data with BigQuery using standard SQL without loading it into BigQuery native storage, and they want to minimize cost by avoiding duplicate storage. Which Google Cloud feature should they use?

A.Cloud Storage FUSE with a BigQuery remote function
B.BigQuery Data Transfer Service
C.Datastream with a BigQuery destination
D.BigQuery external tables over Cloud Storage
AnswerD

External tables let BigQuery query data that stays in Cloud Storage, so the team avoids duplicating storage costs while using standard SQL. This directly matches the requirement to query without loading into BigQuery native storage. They must still consider query performance and format support, but the core capability is exactly this.

Why this answer

BigQuery external tables allow querying data stored in Cloud Storage or other external sources without ingesting it into BigQuery managed storage. This satisfies both the standard SQL requirement and the cost goal of avoiding duplicate storage. Other options either copy data into BigQuery or serve entirely different purposes such as database replication or filesystem mounting.

Exam trap

The trap here is assuming that any BigQuery data ingestion service can query Cloud Storage in place, when only external tables provide that in-place query capability.

155
MCQhard

You are using Workflows to orchestrate a data pipeline that includes a step calling a Cloud Function. The Cloud Function returns a JSON payload with a field named 'result'. You need to pass this 'result' value to a subsequent step as an argument. How should you reference the output of the Cloud Function step in the Workflows YAML?

A.Use the syntax ${functionStep.body.result} to access the result field.
B.Use the syntax ${functionStep.response.body.result} to access the result field.
C.Use the syntax ${functionStep.result} to access the result field directly.
D.Use the syntax ${functionStep.output.result} to access the result field.
AnswerA

When a Workflows step makes an HTTP call, the response is stored in the step's result under the body property. To access a specific field from the JSON response, you use ${stepName.body.fieldName}. This correctly retrieves the 'result' value from the Cloud Function's JSON response.

Why this answer

In Workflows, the output of an HTTP call step is stored in the step's result under the body property. To access a specific field from the JSON response, you use the expression ${stepName.body.fieldName}. This is the correct way to pass data between steps, ensuring the 'result' value is correctly referenced.

Exam trap

The trap here is assuming that the response body is directly accessible without the body property, or confusing Workflows syntax with other Google Cloud services that use different response structures.

156
MCQmedium

You need to load a large CSV file from Cloud Storage into BigQuery. The file contains a header row, and you want to automatically detect the schema. You also need to ensure that if any row has a type mismatch, the load job fails and reports the error. Which load configuration should you use?

A.Set skipLeadingRows to 1 and autodetect to true, and set maxBadRecords to 0.
B.Set skipLeadingRows to 0 and autodetect to true, and set maxBadRecords to 0.
C.Set skipLeadingRows to 1 and autodetect to true, and set maxBadRecords to 10.
D.Set skipLeadingRows to 1 and autodetect to false, and set maxBadRecords to 0.
AnswerA

Setting skipLeadingRows to 1 skips the header row, autodetect enables schema inference, and maxBadRecords to 0 ensures that any bad record causes the job to fail. This configuration meets all requirements: header handling, schema detection, and strict error reporting.

Why this answer

The correct configuration skips the header row, enables schema autodetection, and sets maxBadRecords to 0 to fail on any bad record. This ensures the load job processes the CSV correctly, infers the schema, and enforces strict error handling as required.

Exam trap

The trap here is assuming that maxBadRecords can be left at a default or set to a positive number while still failing on any bad record, when only setting it to 0 enforces immediate failure.

157
MCQmedium

A retail analytics team stores transaction data in a BigQuery table named `sales.transactions` with columns `order_id`, `customer_id`, `order_ts`, and `amount`. A Looker Studio report uses this table as its data source. The team wants every report viewer to see only rows where `amount` is greater than 0, without modifying the underlying BigQuery table. Where should they enforce this filter so it applies to the entire report regardless of which chart a viewer interacts with?

A.Add a report-level filter that viewers can edit from the toolbar.
B.Add a filter to each individual chart on the report page.
C.Create a BigQuery authorized view that filters the rows and repoint the report.
D.Apply the filter at the data source level in Looker Studio.
AnswerD

Filters added at the data source level are inherited by every chart that uses that data source, which guarantees the amount > 0 condition applies report-wide. This satisfies the requirement of filtering all viewers' views without altering the BigQuery table, and it avoids the maintenance burden of duplicating the same filter on each chart.

Why this answer

Enforcing the condition at the data source means every chart built on that source inherits the filter, so all viewers see only rows with amount greater than 0 without touching the BigQuery table. Chart filters are scoped too narrowly, and viewer-editable controls can be changed, so neither enforces the rule consistently.

Exam trap

The trap here is assuming that a report-level filter control visible in the toolbar enforces the same guarantee as a fixed data source filter, when editable controls can be cleared by viewers.

158
MCQeasy

A colleague must load a 200 GB uncompressed CSV file from a Cloud Storage bucket into a BigQuery table once, with the lowest possible load cost and no transformation. They want the simplest option that BigQuery handles natively. What should they use?

A.bq load with the CSV file specified as a Cloud Storage URI
B.A Cloud Data Fusion pipeline with a Cloud Storage source and BigQuery sink
C.A Dataflow pipeline using the TextIO source and BigQueryIO sink
D.A Dataproc job running Spark to read the CSV and write to BigQuery
AnswerA

The bq load command ingests data directly from Cloud Storage into a BigQuery table without charging for a separate compute service, and it is the native, simplest path for a one-time CSV load. BigQuery charges only for storage after the load, so this meets the lowest-cost and no-transformation requirements for a 200 GB file.

Why this answer

Loading a file straight from Cloud Storage with the bq load command is BigQuery's native bulk ingest path and does not require a separate compute service, so it is both the simplest and the least expensive option for an untransformed one-time CSV load. Dataflow, Cloud Data Fusion, and Dataproc all add their own compute charges and pipeline complexity that the scenario does not need.

Exam trap

The trap here is reaching for a managed processing service by habit when BigQuery can ingest the file directly at no extra compute cost.

159
MCQhard

You are designing a Dataflow pipeline that reads from Cloud Storage and writes to BigQuery. The input files are in Avro format and contain a field with a timestamp that is often null. You need to ensure that records with null timestamps are not dropped but are assigned a default timestamp of the pipeline start time. Which approach should you use?

A.Use a Combine transform to calculate the minimum timestamp and replace nulls with that value.
B.Use a ParDo transform to check for null timestamps and replace them with the pipeline start time using a side input.
C.Use a GroupByKey transform to group records by timestamp and filter out nulls.
D.Use a CoGroupByKey transform to join records with a default timestamp PCollection.
AnswerB

A ParDo transform can access a side input containing the pipeline start time and replace null timestamps. This ensures records are not dropped and are assigned a valid timestamp. Side inputs are the correct way to provide a runtime value like pipeline start time to all elements in a PCollection.

Why this answer

To replace null timestamps with the pipeline start time, a ParDo transform with a side input is appropriate. The side input can be a singleton PCollection containing the start time, which is computed once and available to all workers. This ensures each record with a null timestamp is assigned the default without dropping data.

Exam trap

The trap here is confusing transforms like GroupByKey or Combine with the need to modify individual records, which requires a ParDo.

160
Multi-Selecteasy

Which TWO are valid methods to trigger a Dataflow job?

Select 2 answers
A.Cloud Console
B.Direct keyboard input
C.Cloud Scheduler
D.GCS bucket browsing
E.Cloud DNS lookup
AnswersA, C

The Cloud Console provides a graphical interface for launching a Dataflow job, letting you pick a template or specify pipeline parameters and start execution directly. This is a supported triggering method, unlike writing pipeline code or invoking the Dataflow API programmatically from a client.

Why this answer

Option A (Cloud Console) is correct because Google Cloud Dataflow jobs can be created and launched directly from the Cloud Console UI, where you select a template or pipeline and configure parameters before clicking Run. Option C (Cloud Scheduler) is correct because Cloud Scheduler can send an HTTP request to the Dataflow REST API (or trigger a Cloud Function that calls it) to start a Dataflow job on a cron schedule, making it a valid programmatic trigger method. Option B (Direct keyboard input) is not a valid trigger mechanism for Dataflow jobs, as Dataflow has no such input channel.

Option D (GCS bucket browsing) is not a trigger method; browsing objects in Cloud Storage does not launch a Dataflow job. Option E (Cloud DNS lookup) is unrelated to Dataflow, as Cloud DNS resolves domain names and cannot start data processing jobs.

Exam trap

GCP-ADP often tests whether candidates know the actual trigger surfaces for Dataflow — the trap is picking plausible-sounding but non-trigger options like GCS bucket browsing or DNS lookup.

161
MCQmedium

You are cleaning data using Dataprep. You want to save the final dataset in BigQuery. What do you do?

A.Copy the file from GCS
B.Use a SQL query
C.Use the Export feature
D.Wait for Dataflow to finish
AnswerC

Dataprep's Export feature writes transformed datasets directly to BigQuery, satisfying the requirement to persist cleaned data there. It handles schema mapping and load jobs natively, unlike running recipes that only produce results within the flow. This is the designed output path for moving prepared data into BigQuery without manual extraction.

Why this answer

In Dataprep (now Dataprep by Trifacta), after cleaning and transforming a dataset in the flow, you publish results using the Export (or 'Run job'/output) feature, where you specify BigQuery as the output destination and configure the target dataset and table. This writes the transformed data into BigQuery. Copying files or running SQL manually is not how Dataprep delivers results.

Exam trap

GCP-ADP often tests whether candidates know Dataprep's output is configured via its Export/publish feature rather than manual GCS copying or SQL, so candidates may pick 'copy from GCS' as a shortcut.

How to eliminate wrong answers

Option A is wrong because copying a file from GCS is a manual storage operation that bypasses Dataprep's transformation output; Dataprep writes results directly to the configured sink. Option B is wrong because using a SQL query is a BigQuery-side operation, not the Dataprep mechanism for saving a cleaned dataset; Dataprep generates the load, not a hand-written query. Option D is wrong because waiting for Dataflow to finish describes the underlying execution engine, not the user action to export results — Dataprep runs Dataflow jobs internally, but the user configures an export/output destination.

162
MCQhard

You are troubleshooting a Dataflow job that is running slower than expected when writing data to BigQuery. You suspect the issue is related to hot keys. What is the recommended strategy to mitigate this?

A.Change the Dataflow runner to a different region
B.Increase the number of worker machines
C.Use Cloud Storage as an intermediate sink
D.Add a random salt to the key before the shuffle operation
AnswerD

Salting appends a random value to each key before the shuffle, spreading otherwise identical hot keys across many workers so a single worker no longer processes the bulk of records. This relieves the write bottleneck into BigQuery caused by skewed key distribution.

Why this answer

Hot keys cause a small number of keys to be processed by a single worker, creating a bottleneck during the shuffle. Adding a random salt (e.g., appending a random suffix) to the key before the shuffle distributes those records across many workers, then a second pass removes the salt to recombine results. This is the standard Dataflow/Apache Beam mitigation for key skew.

Exam trap

GCP-ADP often tests the misconception that adding more workers or changing regions fixes hot key skew, when the real fix is redistributing the key space via salting before the shuffle.

How to eliminate wrong answers

Option A is wrong because changing the Dataflow runner region does not affect key distribution or shuffle skew; it only changes where workers run. Option B is wrong because adding workers does not help when a single hot key must be processed by one worker — the bottleneck is per-key serialization, not total capacity. Option C is wrong because using Cloud Storage as an intermediate sink does not address the shuffle-stage hot key; it merely changes the output path and can add latency.

163
MCQhard

You want to dynamically generate tasks in an Airflow DAG based on the number of files in a GCS bucket. What is the standard way to do this?

A.Use the 'SubDagOperator'.
B.Configure an external metadata service to inject tasks.
C.Use the 'DynamicTaskGroup' operator in the Airflow library.
D.Use a Python loop inside the DAG file to instantiate tasks.
AnswerD

Airflow parses the DAG file at schedule time, so a Python loop over the bucket listing (via a hook or operator) instantiates one task per file. This is the standard dynamic task-mapping approach before Airflow's newer dynamic task mapping feature.

Why this answer

The standard way to dynamically generate tasks in Airflow based on external conditions (like the number of files in a GCS bucket) is to use a Python loop inside the DAG file. At DAG parse time, the loop runs and creates task instances dynamically based on the current state (e.g., listing files via a GCS hook). This leverages Airflow's core design: DAGs are Python scripts that are executed to build the task graph.

The loop can call an operator (e.g., PythonOperator, GCSToBigQueryOperator) for each file, generating tasks with unique task_ids. This pattern is widely documented and recommended for dynamic task generation, as long as the number of tasks is not excessively large and the DAG is idempotent.

Exam trap

GCP-ADP often tests the misconception that Airflow has a built-in operator for dynamic task generation, leading candidates to choose non-existent options like 'DynamicTaskGroup' or overcomplicate with SubDags, when the correct answer is the simple Python loop pattern.

How to eliminate wrong answers

Option A is wrong because SubDagOperator is used for grouping tasks into a sub-DAG, not for dynamically generating tasks based on external data; it also has known performance and scheduling issues and is deprecated in favor of TaskGroups. Option B is wrong because Airflow does not support injecting tasks via an external metadata service; the DAG definition must be in the DAG file, and while Airflow stores metadata in its own database, it does not allow external services to dynamically add tasks at runtime. Option C is wrong because there is no built-in 'DynamicTaskGroup' operator in the Airflow library; TaskGroups are static groupings, and dynamic task generation is achieved via Python loops, not a special operator.

164
MCQeasy

A data analyst is working in BigQuery and needs to create a visualization that shows the relationship between advertising spend and revenue for each day over the past month. The data is in a table with columns `date`, `ad_spend`, and `revenue`. They want to quickly identify if there is a correlation. Which type of chart should they use in Looker Studio?

A.Time series chart
B.Scatter chart
C.Pie chart
D.Bar chart
AnswerB

A scatter chart plots individual data points using one metric on the x-axis and another on the y-axis, making it ideal for visualizing the relationship and potential correlation between two numerical variables like ad spend and revenue. Each point represents a day, so patterns and outliers are easily seen.

Why this answer

A scatter chart is designed to display the relationship between two numerical variables by plotting each data point according to its values on both axes. In this scenario, plotting ad spend on one axis and revenue on the other allows the analyst to visually assess correlation and outliers. Time series, bar, and pie charts do not serve this purpose.

Exam trap

The trap here is selecting a time series chart because the data includes dates, but the goal is to compare two metrics against each other, not against time.

165
Multi-Selecteasy

Which THREE of the following are common steps in a typical data pipeline orchestration pattern?

Select 3 answers
A.Validation
B.Network cable installation
C.Data ingestion
D.Transformation
E.Hardware provisioning
AnswersA, C, D

Validation checks data quality, schema conformance and completeness before downstream processing, satisfying the pipeline's need to catch corrupt or malformed records early. In orchestration patterns, it typically runs as a discrete task between ingestion and transformation, allowing failed batches to be quarantined rather than propagated, which protects subsequent stages from propagating errors.

Why this answer

In a typical data pipeline orchestration pattern, data ingestion (C) is a core step because it moves raw data from sources such as databases, APIs, or files into the pipeline for processing. Transformation (D) is also essential, as it cleanses, enriches, aggregates, or otherwise converts ingested data into a usable format for analytics or downstream systems. Validation (A) is a common pipeline step that checks data for schema conformance, completeness, quality, and business rules before or after transformation to prevent bad data from propagating.

Network cable installation (B) and hardware provisioning (E) are infrastructure or physical-layer tasks, not orchestration steps within a data pipeline workflow, so they are not correct.

Exam trap

GCP-ADP often tests the confusion between logical pipeline stages (ingest, validate, transform) and physical infrastructure tasks (cabling, hardware), tempting candidates to select infrastructure options that sound technical but are out of scope.

166
MCQhard

You need to perform a rolling update on a Dataflow job without losing current state. How do you do this?

A.Create a new job and point to the same source
B.Stop the job and start it again
C.Use a pipeline template
D.Use the Dataflow Update job command
AnswerD

The Dataflow Update command replaces the job's transform graph while preserving the existing pipeline state, including buffered elements and watermarks. This satisfies the stem's no-state-loss constraint during a rolling update, unlike stop-and-restart approaches that discard in-flight data and reset streaming state.

Why this answer

The Dataflow Update job command allows you to update a running pipeline with new code while preserving the pipeline's state, including its data and processing context. This enables rolling updates without losing state.

Exam trap

GCP-ADP often tests the assumption that any pipeline change can be applied via update, but incompatible changes require a new job, leading candidates to choose incorrect options.

How to eliminate wrong answers

Option A is wrong because creating a new job and pointing to the same source would start from scratch, losing state and potentially duplicating data. Option B is wrong because stopping and restarting the job would also lose state and cause downtime. Option C is wrong because using a pipeline template does not support updating a running job; it creates a new job.

167
MCQeasy

You need to load a 4 TB uncompressed CSV file from Cloud Storage into BigQuery. The file has 200 columns, and you want the load to complete as quickly as possible while minimizing cost. The data is already clean and does not require transformation. Which approach should you take?

A.Use the BigQuery Storage Write API to stream the CSV rows into a native table.
B.Load the CSV directly into BigQuery using the bq load command with the --autodetect flag.
C.Create an external table over the CSV in Cloud Storage and query it directly without loading.
D.Convert the CSV to compressed Parquet, split into multiple files, and load the Parquet files into BigQuery.
AnswerD

Parquet is columnar and compressed, so BigQuery can load it much faster and at lower cost than uncompressed CSV. Splitting the data into multiple files allows BigQuery to parallelize the load across slots and workers. Since the data is already clean and needs no transformation, a direct load of Parquet is the fastest and most economical path for this 4 TB dataset.

Why this answer

For a large, clean dataset, converting to columnar compressed Parquet and splitting into multiple files gives BigQuery the best parallelism and compression, reducing both load time and cost. A direct load of Parquet avoids the overhead of parsing uncompressed CSV and does not require an external table or streaming infrastructure. This matches the goal of fast, low-cost ingestion without transformation.

Exam trap

The trap here is reaching for external tables or streaming APIs for a one-time bulk load, when a native load of compressed columnar files is the fastest and cheapest option.

168
MCQeasy

Which GCS storage class is most cost-effective for data accessed only once per year?

A.Standard
B.Coldline
C.Archive
D.Nearline
AnswerC

Archive suits data accessed once yearly because its minimum storage duration is 365 days, matching that retrieval frequency without early-deletion charges. At roughly $0.0012 per GB monthly, it undercuts Coldline and Nearline, satisfying the stem's cost-effectiveness constraint while Microsoft Entra ID remains irrelevant to GCS class selection.

Why this answer

Archive is the most cost-effective GCS storage class for data accessed only once per year because it is designed for long-term storage of data that is accessed less than once a year. Archive storage has the lowest storage cost among GCS classes, but it also has the highest retrieval cost and a minimum storage duration of 365 days. For data accessed only once per year, Archive provides the best cost savings.

Exam trap

GCP-ADP often tests the minimum storage durations and access frequency thresholds for each storage class, and candidates may confuse Coldline with Archive because both are for infrequent access, but Archive is specifically for data accessed less than once a year.

How to eliminate wrong answers

Option A is wrong because Standard is designed for frequently accessed data and has the highest storage cost, making it unsuitable for data accessed only once per year. Option B is wrong because Coldline is designed for data accessed less than once a quarter, and while it is cheaper than Standard and Nearline, it is more expensive than Archive for data accessed only once per year. Option D is wrong because Nearline is designed for data accessed less than once a month, and it is more expensive than Coldline and Archive for infrequent access.

169
MCQhard

You are using Dataflow with a custom container. Which command do you use to specify the container image?

A.--sdk_container_image
B.--container_path
C.--custom_image
D.--worker_image
AnswerA

The --sdk_container_image pipeline option tells Dataflow which custom container image to pull for the worker environment. Specifying it satisfies the requirement to run the job with your own container rather than the default SDK image.

Why this answer

When running an Apache Beam pipeline on Dataflow with a custom container, the pipeline option that specifies the container image is --sdk_container_image. This tells Dataflow to pull the specified image from Artifact Registry or Container Registry and use it as the SDK harness environment for the workers. The other flags do not exist in the Dataflow pipeline options.

Exam trap

The trap here is the plausible-sounding but non-existent flags --custom_image and --worker_image; candidates who have not actually run a Dataflow custom container pipeline guess based on naming intuition rather than the real --sdk_container_image option.

How to eliminate wrong answers

Option B is wrong because --container_path is not a valid Dataflow pipeline option; there is no such flag for specifying a worker container. Option C is wrong because --custom_image is not a recognized Dataflow option — the correct prefix is sdk_container_image. Option D is wrong because --worker_image is not a Dataflow pipeline option; worker machine type is set with --worker_machine_type, and the container image is set with --sdk_container_image.

170
MCQmedium

A healthcare organization needs to analyze sensitive patient data in BigQuery while ensuring that analysts can see aggregated results but cannot view individual patient identifiers. Which Google Cloud feature should they implement?

A.Row-level security with filter predicates
B.BigQuery authorized views
C.Column-level security with policy tags
D.VPC Service Controls perimeter around BigQuery
AnswerC

Column-level security with policy tags in BigQuery lets you classify columns containing identifiers and restrict access so analysts can query other columns without seeing sensitive values. This directly supports viewing aggregated results while blocking individual identifiers. It is the native BigQuery mechanism for fine-grained column access control.

Why this answer

Column-level security with policy tags allows classifying sensitive columns and granting access only to authorized users. Analysts without the policy tag role can query other columns and compute aggregates but cannot see patient identifiers. Other options either restrict rows, use less scalable view patterns, or address network boundaries rather than column visibility.

Exam trap

The trap here is confusing row-level security with column-level security, when only the latter hides individual identifier columns.

171
Multi-Selecthard

You are creating a Looker Studio report that must allow users to interactively explore sales data. The report should include controls that let users filter data by product category and date range. Which two controls should you add? (Choose two.)

Select 2 answers
A.A date range control.
B.A parameter control to adjust the date granularity.
C.A chart-level filter on each chart for product category.
D.A data control to switch between different data sources.
E.A filter control using the product category dimension.
AnswersA, E

A date range control lets users select a specific time period, which then filters all charts on the page that use a date dimension. This provides the required interactivity for filtering sales data by date range, allowing users to focus on specific periods and analyze trends over time.

Why this answer

A filter control on the product category dimension and a date range control are the standard Looker Studio controls for interactive filtering by category and time. They apply to all charts on the page, enabling users to dynamically explore sales data. The other options either do not provide filtering or are not interactive.

Exam trap

The trap here is confusing parameters with filter controls; parameters can drive dynamic behavior but do not directly filter data like a date range control does.

172
MCQmedium

When designing a Looker dashboard, you need to display a value that is the average of a specific metric across the entire dashboard. What is the best method?

A.Treemap.
B.Data table.
C.Waterfall chart.
D.Single Value visualization.
AnswerD

A Single Value visualization computes one aggregate—here the average—over the dashboard's underlying query, satisfying the requirement for a single dashboard-wide metric. Unlike table or chart tiles, it renders exactly one number without dimensional breakdown, directly meeting the stem's constraint of displaying the average across the entire dashboard.

Why this answer

A Single Value visualization in Looker is designed to display one aggregated number prominently, such as an average, sum, or count, and it can compute that value across the entire dashboard's underlying query. It is the standard tile for KPI-style metrics like an overall average.

Exam trap

GCP-ADP often tests visualization selection by describing a single aggregate metric — the trap is picking a chart type that shows distribution or detail (Data table, Treemap) instead of the Single Value tile built for KPIs.

How to eliminate wrong answers

Option A is wrong because a Treemap visualizes hierarchical proportions as nested rectangles, not a single aggregate value. Option B is wrong because a Data table displays rows and columns of detailed records, not a single summary number. Option C is wrong because a Waterfall chart shows cumulative positive and negative contributions to a total, which is a different analytical purpose.

173
MCQhard

You are configuring a Dataplex Data Quality task. You want to validate that a 'user_id' column has no NULL values. Where do you define this rule?

A.In the Cloud Storage metadata
B.In a YAML configuration file
C.In the BigQuery table schema
D.In the Dataplex Asset definition
AnswerB

Dataplex Data Quality rules are declared in a YAML spec, where each rule targets a column and sets a dimension plus a nonNull expectation. Defining the rule in that YAML configuration file is what enforces the no-NULL constraint on user_id.

Why this answer

Dataplex Data Quality tasks are defined using a YAML specification that describes the rules, including non-null constraints on columns. The YAML file is uploaded to a Cloud Storage bucket and referenced when creating the Data Quality task. This approach allows for flexible, version-controlled rule definitions that are decoupled from the underlying data schema.

Exam trap

GCP-ADP often tests the misconception that data quality rules are defined in the data source schema (e.g., BigQuery schema) or in the asset metadata, when in fact Dataplex uses a separate YAML specification.

How to eliminate wrong answers

Option A is wrong because Cloud Storage metadata (e.g., object metadata) is used for storing arbitrary key-value pairs about objects, not for defining data quality validation rules. Option C is wrong because BigQuery table schema defines column names and data types, but does not enforce or define data quality rules such as non-null checks; NOT NULL constraints exist but are not used by Dataplex Data Quality tasks. Option D is wrong because the Dataplex Asset definition describes the resource (e.g., a BigQuery table or Cloud Storage bucket) and its discovery status, but does not contain data quality rule specifications.

174
MCQeasy

You are developing a dashboard in Looker. You notice that the 'Explore' menu is missing a specific set of fields. What should you check in the LookML model?

A.Check the project's 'BigQuery' location.
B.Verify the 'fields' parameter in the Explore definition.
C.Check if the table is indexed.
D.Clear the browser cache.
AnswerB

The `fields` parameter in an Explore definition explicitly whitelists which fields appear in that Explore's menu, hiding all others. If a specific set of fields is missing, this parameter is restricting visibility, satisfying the stem's constraint that only certain fields are absent rather than the whole Explore.

Why this answer

If the Explore menu is missing a specific set of fields in Looker, you should verify the 'fields' parameter in the Explore definition within the LookML model. This parameter explicitly lists which fields are included in the Explore, and if a field is omitted, it will not appear. Other options like BigQuery location, table indexing, or browser cache are unrelated to LookML field visibility.

Exam trap

GCP-ADP often tests LookML configuration; candidates might overlook the 'fields' parameter and instead check unrelated settings like BigQuery location or cache, missing the direct cause of missing fields.

How to eliminate wrong answers

Option A is wrong because the project's BigQuery location affects data storage and query execution, not the fields available in an Explore. Option B is correct, but for elimination: Option C is wrong because table indexing is a database optimization concept not applicable to Looker field visibility. Option D is wrong because clearing the browser cache does not affect LookML-defined fields; it might resolve UI glitches but not missing fields.

175
MCQmedium

Your team runs a Cloud Composer 2 environment with several DAGs that process data in Cloud Storage. You need to design a DAG that reliably handles transient failures when calling the Cloud Storage API. The DAG should retry failed tasks automatically without manual intervention, but you also want to avoid overwhelming the API during an outage. Which combination of Airflow features should you implement to achieve this?

A.Use a single task with a long timeout and rely on the Cloud Storage client library's internal retry mechanism.
B.Implement a custom operator that catches exceptions and sleeps for a fixed interval before re-executing the API call.
C.Configure the DAG to run on a schedule with a high number of max_active_runs, and let failed tasks be skipped.
D.Set retries and retry_delay on the DAG's default_args, and use exponential backoff with max_retry_delay.
AnswerD

Configuring retries and retry_delay in default_args ensures that failed tasks are retried automatically. Adding exponential backoff with max_retry_delay increases the wait time between retries, which prevents hammering the Cloud Storage API during an outage and gives it time to recover. This approach is standard for handling transient failures in Airflow DAGs.

Why this answer

Setting retries and retry_delay in default_args enables automatic retries for failed tasks. Exponential backoff with max_retry_delay spaces out retries increasingly, reducing load on the Cloud Storage API during an outage. This combination is the recommended way to handle transient failures in Airflow while avoiding API overload, and it requires no custom code.

Exam trap

The trap here is assuming that client library retries or custom sleep logic are sufficient, when Airflow's built-in retry and backoff settings provide more reliable and configurable handling.

176
MCQeasy

You are identifying trends in a large dataset using BigQuery. Which SQL function is best suited to identify the top 5 products sold per region?

A.GROUP BY region, product.
B.SELECT TOP 5 * FROM sales.
C.RANK() OVER (PARTITION BY region ORDER BY sales DESC).
D.SUM(sales) OVER (ORDER BY region).
AnswerC

RANK() OVER (PARTITION BY region ORDER BY sales DESC) assigns a rank within each region independently, letting you filter to ranks 1-5 per region. The PARTITION BY region clause is the mechanism that satisfies the per-region top-5 requirement.

Why this answer

RANK() OVER (PARTITION BY region ORDER BY sales DESC) assigns a rank to each product within each region based on sales, so filtering for rank <= 5 yields the top 5 products per region. This is the standard SQL window-function pattern for per-group top-N queries.

Exam trap

The trap is confusing GROUP BY (which aggregates but doesn't rank) with window functions (which rank within partitions) — candidates pick GROUP BY because it mentions region and product, but it cannot produce per-group top-N without additional complex logic.

How to eliminate wrong answers

Option A is wrong because GROUP BY region, product only aggregates sales per product per region — it does not limit to the top 5 and requires an additional ORDER BY/LIMIT that cannot be applied per group. Option B is wrong because SELECT TOP 5 * FROM sales is not valid BigQuery syntax (BigQuery uses LIMIT) and would return the top 5 rows overall, not per region. Option D is wrong because SUM(sales) OVER (ORDER BY region) computes a cumulative sum ordered by region, which does not identify top products.

177
MCQeasy

You manage a BigQuery dataset that contains a table with 500 TB of historical order data. Analysts frequently run queries that filter on the `order_date` column. Query costs are rising because every query scans the entire table. You want to reduce the bytes scanned and cost without changing the table name or existing SQL. What should you do?

A.Set a custom query quota on the project so analysts cannot run queries that scan more than 1 TB.
B.Enable the BigQuery BI Engine reservation on the dataset to cache query results and lower cost.
C.Partition the table by the `order_date` column so queries filtering on that column scan only relevant partitions.
D.Create a materialized view that pre-aggregates orders by date and instruct analysts to query the view instead.
AnswerC

Partitioning the table by `order_date` makes BigQuery prune partitions that do not match the filter predicate, so a query for a specific date range reads only those partitions rather than the full 500 TB. This directly reduces bytes scanned and cost while keeping the table name and existing SQL unchanged, satisfying every stated requirement.

Why this answer

Partitioning a table by a column that queries commonly filter on lets BigQuery prune partitions and read only the data needed, which reduces bytes scanned and therefore cost. Because partitioning does not change the table name or require SQL changes, it satisfies all the constraints. The other choices either require SQL rewrites, do not affect scan volume, or block queries instead of optimizing them.

Exam trap

The trap here is assuming that any performance feature, such as a materialized view or BI Engine, will automatically reduce bytes scanned on the base table when only partition pruning actually does that.

178
Multi-Selecthard

A data team is building a BigQuery ML model to predict customer churn directly from a BigQuery table. They want to evaluate the model's quality and understand which input features influenced its predictions. Which two BigQuery ML capabilities should they use to accomplish these goals? (Choose two.)

Select 2 answers
A.Use ML.TRAINING_INFO to inspect the iteration history of the model's training run.
B.Use ML.EXPLAIN_PREDICT to return per-row feature attributions alongside each prediction.
C.Use ML.GENERATE_EMBEDDING to convert customer records into vector embeddings for similarity search.
D.Use ML.EVALUATE on the trained model to compute quality metrics such as accuracy, precision, and recall.
E.Use ML.FEATURE_INFO to list the summary statistics of each feature column used during training.
AnswersB, D

ML.EXPLAIN_PREDICT produces predictions together with explanations that attribute each prediction to the contributing input features, using methods such as Shapley values. This lets the team see which customer attributes most influenced churn predictions. It is designed for exactly this interpretability need and works with supported model types trained in BigQuery ML.

Why this answer

ML.EVALUATE measures the churn model's predictive quality with classification metrics on held-out data, while ML.EXPLAIN_PREDICT returns per-row feature attributions that reveal which inputs drove each prediction. Together they cover both evaluation and interpretability. The other functions describe training data, training progress, or generate embeddings, none of which answers how good the model is or why it predicts churn.

Exam trap

The trap here is conflating training diagnostics such as iteration loss with true model evaluation, and treating feature summary statistics as explanations of predictions.

179
MCQmedium

Your team runs an Apache Airflow environment on Google Cloud Managed Service for Apache Airflow. A daily ingestion DAG must wait for a partner team's separate DAG to finish loading a landing table before it can begin its own transformation. The partner DAG is in the same Airflow environment but runs on an unpredictable schedule. You want the dependency handled natively by Airflow rather than with a fixed sleep or time sensor. What should you configure?

A.A PythonOperator that calls the partner DAG's REST API trigger endpoint
B.A Cloud Storage sensor watching the landing bucket for new objects
C.A TimeSensor that waits until a predetermined clock time each day
D.An ExternalTaskSensor that points at the partner DAG and task
AnswerD

An ExternalTaskSensor polls the Airflow metadata database for the state of a task in another DAG, so the downstream transformation only proceeds once the partner load task has actually succeeded. This encodes the real cross-DAG dependency, works across DAGs in the same environment, and fails or retries based on the real upstream state rather than a fixed time.

Why this answer

The requirement is a true task-level dependency on another DAG's completion, not a time or file heuristic. An ExternalTaskSensor reads the upstream task state from Airflow's metadata database, so the transformation proceeds only after the partner load succeeds. Time sensors, storage sensors, and API triggers either guess at completion or invert the dependency, none of which guarantees the landing table is fully populated.

Exam trap

The trap here is assuming any sensor that waits will do, when only a sensor that reads the upstream DAG's task state actually enforces the cross-DAG dependency.

180
MCQmedium

A data analyst has a BigQuery table named `sales` with columns `order_date` (DATE), `product_id` (STRING), and `revenue` (NUMERIC). They need to create a report that shows total revenue per product for the last 30 days, but only for products that generated more than $10,000 in that period. They want the result sorted by revenue descending. Which SQL query should they use?

A.SELECT product_id, SUM(revenue) AS total_revenue FROM sales WHERE order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY) AND revenue > 10000 GROUP BY product_id ORDER BY total_revenue DESC
B.SELECT product_id, SUM(revenue) AS total_revenue FROM sales WHERE order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY) GROUP BY product_id ORDER BY total_revenue DESC HAVING total_revenue > 10000
C.SELECT product_id, SUM(revenue) AS total_revenue FROM sales WHERE order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY) GROUP BY product_id HAVING total_revenue > 10000 ORDER BY total_revenue DESC
D.SELECT product_id, SUM(revenue) AS total_revenue FROM sales WHERE order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY) GROUP BY product_id HAVING SUM(revenue) > 10000 ORDER BY revenue DESC
AnswerC

This query correctly filters the last 30 days using DATE_SUB, groups by product_id, sums revenue, applies a HAVING clause to filter aggregated totals over $10,000, and orders by total revenue descending. The alias total_revenue is valid in HAVING and ORDER BY in BigQuery. It matches all requirements precisely.

Why this answer

The correct query filters the last 30 days, groups by product, sums revenue, and then applies a HAVING clause to keep only products with total revenue above $10,000, finally sorting by that total descending. Using WHERE to filter individual revenues would incorrectly exclude products with many smaller sales, and placing HAVING after ORDER BY or ordering by a non-aggregated column would cause errors.

Exam trap

The trap here is confusing row-level filtering with group-level filtering, leading to the use of WHERE instead of HAVING for aggregate conditions.

181
Multi-Selecteasy

Which TWO of the following are valid locations for a Dataplex Lake? (Choose two)

Select 2 answers
A.A private on-premises data center
B.The root organization node
C.The user's local laptop
D.US (Multi-region)
E.US-central1
AnswersD, E

Dataplex lakes accept multi-region locations such as US, satisfying the stem's requirement for a valid placement. Multi-region scopes data across the United States, unlike single-region or zonal options, and Dataplex supports this alongside regional locations. This makes US (Multi-region) a legitimate lake location.

Why this answer

Options D and E are correct because a Dataplex Lake is a regional or multi-regional Google Cloud resource, so it must be created in a supported Google Cloud location such as the US multi-region (D) or a specific region like us-central1 (E). Dataplex lakes are scoped to a Google Cloud region or multi-region, which determines where the lake's metadata and associated assets are stored and managed. Option A is incorrect because an on-premises data center is not a Google Cloud location and cannot host a Dataplex Lake, even though on-premises data can be attached via Dataplex assets.

Option B is incorrect because the root organization node is an IAM/resource hierarchy scope, not a geographic location for a lake. Option C is incorrect because a user's local laptop is not a Google Cloud region or multi-region and cannot serve as a Dataplex Lake location.

Exam trap

The trap is confusing logical/resource hierarchy locations (organization node) or on-premises environments with valid GCP geographic locations where managed services like Dataplex lakes can actually be provisioned.

182
MCQeasy

What is the benefit of using 'Scheduled Reports' in Looker?

A.To automatically email reports to stakeholders.
B.To increase the BigQuery slot limit.
C.To optimize the database performance.
D.To change the dashboard color.
AnswerA

Scheduled Reports run a Look or dashboard on a defined cadence and deliver the results by email to specified recipients, removing manual delivery. This satisfies the stem's stated benefit of automatically emailing reports to stakeholders.

Why this answer

Scheduled Reports in Looker allow users to automate the delivery of dashboards, Looks, or visualizations via email or other destinations on a recurring schedule. This ensures stakeholders receive timely updates without manual intervention.

Exam trap

GCP-ADP often tests the purpose of Scheduled Reports, and candidates may confuse it with performance optimization or cosmetic features.

How to eliminate wrong answers

Option B is wrong because Scheduled Reports do not affect BigQuery slot limits; that is controlled by BigQuery reservations. Option C is wrong because Scheduled Reports do not optimize database performance; they simply deliver results. Option D is wrong because changing dashboard colors is a cosmetic setting, not a function of Scheduled Reports.

183
Multi-Selectmedium

Which THREE of the following are valid GCS storage classes?

Select 3 answers
A.Warmline
B.Nearline
C.Hotline
D.Coldline
E.Standard
AnswersB, D, E

Nearline satisfies the stem's requirement for a valid GCS storage class, offering low-frequency access with a 30-day minimum storage duration and retrieval costs. It sits between Standard and Coldline on the availability-versus-cost axis, making it a legitimate class alongside Standard, Coldline and Archive.

Why this answer

Option B (Nearline) is a valid GCS storage class designed for data accessed less than once per month, offering lower storage cost with a 30-day minimum storage duration. Option D (Coldline) is also valid, intended for data accessed less than once per quarter, with a 90-day minimum storage duration and retrieval costs. Option E (Standard) is the default GCS storage class for frequently accessed ("hot") data with no minimum storage duration and the highest availability.

Options A (Warmline) and C (Hotline) are not real GCS storage classes; they are fabricated names that do not correspond to any Google Cloud Storage offering.

Exam trap

GCP-ADP often tests whether candidates can distinguish real GCS storage classes from plausible-sounding but nonexistent ones like 'Warmline' or 'Hotline'.

184
MCQhard

A user is running a query on a BigQuery table with nested data (JSON). How do you access a field named 'city' inside a record field named 'address'?

A.address->city
B.address.city
C.address[city]
D.JSON_EXTRACT(address, '$.city')
AnswerB

Dot notation traverses the nested RECORD structure directly, resolving the 'city' field within the 'address' record without unnesting. BigQuery supports this path syntax for accessing nested fields, satisfying the requirement to reach a field inside a record.

Why this answer

BigQuery uses Standard SQL, which accesses nested RECORD fields using dot notation. If 'address' is a RECORD (STRUCT) column containing a 'city' field, you reference it as address.city. This is the canonical syntax for traversing STRUCT types in BigQuery.

Exam trap

The trap is confusing BigQuery's native STRUCT/RECORD dot-notation access with JSON path syntax; candidates who have used JSON_EXTRACT or arrow operators in other systems pick the wrong option.

How to eliminate wrong answers

Option A is wrong because '->' is not valid BigQuery Standard SQL syntax for nested field access; that operator is used in some other databases (e.g., Postgres JSON operators) but not here. Option C is wrong because square brackets are used for array indexing in BigQuery, not for accessing named STRUCT fields. Option D is wrong because JSON_EXTRACT is a legacy/JSON function for STRING-typed JSON columns, not for native STRUCT/RECORD columns; it would also return a JSON-formatted value rather than the typed field.

185
Multi-Selectmedium

You need to prepare data for analysis in BigQuery. You have a CSV file in Cloud Storage that contains personally identifiable information (PII) such as email addresses and phone numbers. You must obfuscate this PII before loading it into BigQuery. Which two Google Cloud services or features can help you achieve this? (Choose two.)

Select 2 answers
A.BigQuery row-level security
B.BigQuery column-level security
C.Cloud Dataflow with the DLP transform
D.Cloud Storage default encryption
E.Cloud Data Loss Prevention (DLP) API
AnswersC, E

Dataflow pipelines can incorporate the Cloud DLP API as a transform to de-identify data in motion. You can read the CSV from Cloud Storage, apply the DLP transform to obfuscate PII, and write the cleaned data to BigQuery. This is a scalable and automated approach to prepare data with PII obfuscation.

Why this answer

Cloud DLP API and Dataflow with the DLP transform are both designed to inspect and de-identify sensitive data. Cloud DLP API can process data in Cloud Storage directly, while Dataflow can integrate DLP as a pipeline step. Together or separately, they can obfuscate PII before loading into BigQuery.

The other options provide access control or encryption, but not obfuscation.

Exam trap

The trap here is thinking that column-level security or encryption obfuscates data, but they only control access or protect at rest, leaving PII intact.

186
MCQmedium

A marketing manager needs to see daily sales trends in Looker. The underlying data is in BigQuery and is updated every 6 hours. What is the best way to visualize this?

A.Create a static PDF report sent via email.
B.Export BigQuery data to a CSV file.
C.Build a dashboard in Cloud Monitoring.
D.Create a Looker Explore and build a time-series line chart.
AnswerD

A Looker Explore queries BigQuery directly, so the line chart always reflects the latest data without extraction or scheduling. Time-series line charts suit daily sales trends, and Looker's persistent derived tables or caching handle the six-hourly refresh cadence.

Why this answer

Creating a Looker Explore and building a time-series line chart is the best approach because Looker connects directly to BigQuery, supports scheduled/real-time data refresh, and provides interactive visualization tailored to trend analysis. A time-series line chart is the appropriate visualization for daily sales trends over time, and Looker's Explore lets the marketing manager self-serve without manual data exports.

Exam trap

GCP-ADP often tests tool selection — candidates pick Cloud Monitoring or CSV export because they focus on 'visualization' generically, missing that Looker is the BI tool purpose-built for BigQuery business data.

How to eliminate wrong answers

Option A is wrong because a static PDF report is not interactive, cannot reflect the 6-hour data refresh automatically, and does not allow the manager to drill into trends. Option B is wrong because exporting to CSV is a manual, non-scalable process that creates stale data and requires the manager to build their own charts outside the BI tool. Option C is wrong because Cloud Monitoring is designed for infrastructure and application metrics (CPU, latency, uptime), not business data like sales trends from BigQuery.

187
Multi-Selecthard

You are designing a data lake in Cloud Storage and need to ensure that analysts can query the data using BigQuery without moving or copying the data. You also need to enforce fine-grained access control at the column level for sensitive fields. Which two actions should you take? (Choose two.)

Select 2 answers
A.Create a BigQuery dataset and use authorized views to restrict access to specific columns.
B.Create an external table in BigQuery that points to the Cloud Storage data.
C.Enable uniform bucket-level access on the Cloud Storage bucket.
D.Set up a Dataplex lake and zone, and register the Cloud Storage bucket as an asset.
E.Use BigQuery policy tags to define column-level access control on the external table.
AnswersB, E

External tables in BigQuery allow you to query data directly from Cloud Storage without loading it into BigQuery. This satisfies the requirement to query without moving data. You can define the schema and then use policy tags on columns to enforce fine-grained access control, making this a necessary step for the solution.

Why this answer

To query Cloud Storage data in BigQuery without moving it, you create an external table. To enforce column-level access control, you apply policy tags to the columns of that external table. Policy tags are the native BigQuery feature for column-level security and work with external tables, meeting both requirements.

Exam trap

The trap here is assuming that Dataplex or bucket-level permissions can enforce column-level access control for BigQuery queries, but only BigQuery policy tags provide that capability.

188
MCQeasy

Which service allows you to view the schema and metadata of a BigQuery table that has been registered in Dataplex?

A.Data Catalog
B.Cloud Storage Console
C.Cloud Build
D.Cloud IAM console
AnswerA

Data Catalog surfaces technical metadata and schema for BigQuery tables registered in Dataplex, satisfying the requirement to inspect table structure. Dataplex automatically publishes entries to Data Catalog, which exposes column names, types and descriptions through search and the API, letting you view schema without querying the table directly.

Why this answer

Data Catalog is the metadata management service in Google Cloud that indexes and exposes schema, column names, descriptions, tags, and other metadata for BigQuery tables (and other assets) registered in Dataplex. Once a BigQuery table is registered as a Dataplex asset, its technical metadata is surfaced through Data Catalog, which is the intended UI/API for schema and metadata discovery.

Exam trap

The trap is confusing Dataplex (the governance/discovery layer that registers assets) with Data Catalog (the metadata UI/API that displays schemas) — candidates pick Dataplex itself or a storage console instead of the catalog service.

How to eliminate wrong answers

Option B is wrong because the Cloud Storage Console only shows bucket and object metadata (names, sizes, storage classes), not BigQuery table schemas. Option C is wrong because Cloud Build is a CI/CD service for building and deploying containers/artifacts and has no role in metadata cataloging. Option D is wrong because the Cloud IAM console manages identities, roles, and permissions — it does not display data schemas or table metadata.

189
MCQeasy

What is the purpose of a 'Data Zone' in Dataplex?

A.To execute Spark jobs
B.To store query results
C.To act as a physical storage location
D.To provide a logical grouping for governance and policies
AnswerD

A Data Zone groups assets within a lake so policies, IAM and metadata rules apply consistently across them. This satisfies the stem's governance purpose, providing the logical boundary where Dataplex enforces access and policy controls.

Why this answer

A Data Zone in Dataplex is a logical construct that groups data assets (such as Cloud Storage buckets, BigQuery datasets, and BigLake tables) so that a single set of governance policies, discovery, and access controls can be applied across them. It does not provision or represent physical storage; it is an organizational boundary that maps to underlying resources. This lets data stewards manage metadata, quality, and security consistently without moving or duplicating data.

Exam trap

The trap here is confusing Dataplex's logical governance constructs (Lakes, Zones, Assets) with physical compute or storage services, leading candidates to pick 'physical storage location' or 'execute Spark jobs'.

How to eliminate wrong answers

Option A is wrong because Spark job execution is handled by Dataproc or Dataplex's own task/processing features, not by a Data Zone, which is purely a governance grouping. Option B is wrong because query results are stored by the query engine (e.g., BigQuery) in its own result tables, not in a Data Zone. Option C is wrong because a Data Zone is a logical abstraction over existing assets, not a physical storage location — the actual bytes remain in Cloud Storage, BigQuery, or BigLake.

190
MCQmedium

Your team uses Dataprep by Trifacta to clean data before loading it into BigQuery. You notice that the column header names contain inconsistent casing and special characters. Which Dataprep transformation should you use to standardize these headers globally?

A.Nest Columns
B.Aggregate
C.Rename Columns
D.Merge Columns
AnswerC

Rename Columns applies a transformation across all column headers at once, letting you strip special characters and enforce consistent casing globally. This satisfies the stem's requirement to standardise inconsistent header names before loading into BigQuery.

Why this answer

The Rename Columns transformation in Dataprep by Trifacta lets you standardize column headers globally — changing case, removing special characters, and applying consistent naming conventions across the dataset. It is the direct tool for header normalization.

Exam trap

GCP-ADP often tests whether candidates confuse transformations that change data structure (Nest, Merge) with those that change metadata (Rename), causing them to pick a data-shaping step for a header-standardization task.

How to eliminate wrong answers

Option A is wrong because Nest Columns restructures data by grouping columns into nested objects; it does not rename or standardize headers. Option B is wrong because Aggregate performs calculations like sum, count, or average across rows, which is unrelated to header naming. Option D is wrong because Merge Columns concatenates values from multiple columns into one, which changes data content rather than header names.

191
MCQmedium

You have a Looker Studio report connected to a BigQuery table that contains millions of rows. The report takes a long time to load and often times out. You need to improve performance without changing the underlying data. What should you do?

A.Enable BigQuery BI Engine and set up a reservation for the dataset used by the report.
B.Set the Looker Studio report to use 'Extract data' with a refresh schedule of every 15 minutes.
C.Increase the number of Looker Studio data sources by adding duplicate connections to the same table.
D.Schedule a daily extract of the BigQuery table into a Google Sheet and connect Looker Studio to the Sheet.
AnswerA

BI Engine is an in-memory analysis service that accelerates SQL queries, including those from Looker Studio. By creating a BI Engine reservation and assigning it to the project containing the dataset, queries become faster and more concurrent, reducing load times and timeouts. This directly addresses performance without altering data.

Why this answer

BI Engine provides an in-memory cache that accelerates queries from Looker Studio, reducing latency and preventing timeouts. It integrates seamlessly with BigQuery and requires no data duplication. The other options either do not improve performance or introduce impractical workarounds that fail with large datasets.

Exam trap

The trap here is assuming that any caching or extraction method will solve performance issues, when only a purpose-built acceleration layer like BI Engine addresses the underlying query speed.

192
MCQhard

A team maintains a Looker dashboard fed by a BigQuery table that receives streaming inserts throughout the day. Users report that totals on the dashboard sometimes disagree with a report generated directly in BigQuery a few minutes later. What is the most likely explanation for the discrepancy?

A.BigQuery's on-demand query cache is returning an older result set to the dashboard instead of reading current data.
B.Streaming inserts land in BigQuery's streaming buffer and are not immediately available to all query paths, so the dashboard and the direct report read slightly different snapshots.
C.The dashboard's Looker model uses a different time zone setting than the BigQuery report, shifting some rows into adjacent days.
D.Looker is applying a symmetric aggregate that recalculates totals differently each time the dashboard is loaded.
AnswerB

Rows written via the streaming API initially reside in a buffer before being committed to managed storage, and operations such as certain exports and some query paths may not see those rows immediately. The dashboard and the direct BigQuery report can therefore be evaluated against marginally different points in time, producing small total differences that resolve on their own once the buffer flushes.

Why this answer

Streaming ingestion does not write directly into fully queryable managed storage; rows first enter a buffer. Some query paths and export operations cannot see buffered rows, so a dashboard query and a report run moments apart can legitimately observe different row sets. The totals converge once the buffer commits, which is why the disagreement is small and transient rather than persistent.

Exam trap

The trap here is attributing a small, self-resolving total mismatch to aggregation logic or caching rather than to the timing semantics of streaming ingestion.

193
MCQmedium

You are using Vertex AI Workbench and want to ensure your notebook environment persists after the instance is stopped. Where should you save your work?

A.In the root directory of the container image.
B.In a persistent disk attached to the Workbench instance.
C.In the local /tmp folder.
D.In the system memory.
AnswerB

A persistent disk attached to the Workbench instance stores data independently of the instance's running state, so notebooks survive stopping and restarting. Saving to the boot disk or instance memory would be lost, whereas the attached persistent disk satisfies the durability requirement.

Why this answer

Vertex AI Workbench instances use a persistent disk as the boot disk and for user data, so files saved outside the container image persist across stop/start cycles. Saving work in the persistent disk ensures notebooks, datasets, and environment customizations survive instance shutdown. The root directory of the container image and /tmp are ephemeral and are lost when the instance stops.

Exam trap

GCP-ADP often tests the misconception that saving in the container root or /tmp persists, when only the attached persistent disk (home directory) survives an instance stop.

How to eliminate wrong answers

Option A is wrong because the root directory of the container image is part of the container filesystem, which is recreated from the image on restart, so changes are lost. Option C is wrong because /tmp is a temporary filesystem cleared on reboot or stop. Option D is wrong because system memory is volatile and loses all contents when the instance is stopped.

194
MCQmedium

Your team uses Cloud Composer (Airflow) to run a daily ETL DAG. A task occasionally fails due to transient network errors when calling an external API. You want the task to retry automatically up to 3 times with a 5-minute delay between attempts, and you want the DAG to continue running other tasks even if this task ultimately fails. Which combination of Airflow task parameters should you configure?

A.Set retries=3, retry_delay=timedelta(minutes=5), and set the task's trigger_rule='all_failed'.
B.Set retries=3, retry_delay=timedelta(minutes=5), and set the task's trigger_rule='all_success'.
C.Set retries=3, retry_delay=timedelta(minutes=5), and set the task's downstream tasks to use trigger_rule='all_done'.
D.Set retries=3, retry_delay=timedelta(minutes=5), and trigger_rule='all_done' on the task.
AnswerC

This correctly configures the task to retry 3 times with a 5-minute delay. By setting downstream tasks to trigger_rule='all_done', they will execute even if the upstream task fails after retries. This allows the DAG to continue running other tasks, satisfying both requirements without altering the task's own trigger rule.

Why this answer

To handle transient failures, configure retries and retry_delay on the task. To allow the DAG to continue despite a task failure, set the downstream tasks' trigger_rule to 'all_done', which triggers them regardless of upstream success or failure. This combination ensures retries occur and subsequent tasks are not blocked, meeting both requirements.

Exam trap

The trap here is assuming that setting trigger_rule on the failing task itself will control downstream execution, when actually trigger_rule on downstream tasks determines their behavior.

195
Multi-Selectmedium

You are using Cloud Scheduler to trigger a Cloud Workflows execution every hour. You need to ensure that the scheduler authenticates to the Workflows API securely. Which two of the following are valid methods for authenticating Cloud Scheduler to Workflows? (Choose two.)

Select 2 answers
A.Use an API key associated with the Workflows API and include it in the request header.
B.Use an OAuth 2.0 client ID and secret stored in Cloud Scheduler's configuration.
C.Use an OAuth token generated for a service account that has the Workflows Invoker role.
D.Use an OIDC token generated for a service account that has the Workflows Invoker role.
E.Use a static username and password stored in Secret Manager and referenced by Cloud Scheduler.
AnswersC, D

Cloud Scheduler can also use OAuth tokens for authentication. By configuring an OAuth service account with the roles/workflows.invoker role, Cloud Scheduler will generate an OAuth access token and include it in the Authorization header. This is another valid and secure method for authenticating to the Workflows API.

Why this answer

Cloud Scheduler can authenticate to Workflows using either OIDC or OAuth tokens generated for a service account. The service account must have the Workflows Invoker role. These methods leverage Google Cloud IAM and avoid managing static secrets, making them secure and recommended.

API keys and basic auth are not supported for the Workflows API.

Exam trap

The trap here is assuming that API keys or basic authentication can be used, when Workflows requires IAM-based tokens from a service account.

196
MCQhard

You are building a Looker dashboard and need to calculate the year-over-year growth rate. Which feature should you use to perform this without modifying the underlying SQL?

A.BigQuery query parameters.
B.Looker Table Calculations.
C.LookML derived tables with persistent caching.
D.Database-level User Defined Functions (UDFs).
AnswerB

Table Calculations compute values in Looker's query layer using LookML functions such as offset and pivot_offset, deriving year-over-year growth from returned rows. This satisfies the stem's constraint of calculating growth without modifying the underlying SQL.

Why this answer

Looker Table Calculations allow you to create calculations (such as year-over-year growth) directly in the Explore or dashboard using Looker's expression language, without modifying the underlying SQL or LookML. They operate on the query results already returned, so you can compute percent change, offsets, and running totals on the fly. This makes them ideal for ad-hoc metrics like YoY growth.

Exam trap

GCP-ADP often tests the boundary between Looker-native calculations and SQL/LookML changes, and candidates pick derived tables or UDFs when the question explicitly says 'without modifying the underlying SQL.'

How to eliminate wrong answers

Option A is wrong because BigQuery query parameters are used to pass values into SQL at runtime, not to perform post-query calculations in Looker without SQL changes. Option C is wrong because LookML derived tables require modifying LookML and often involve persistent caching, which is a development change, not a no-SQL dashboard calculation. Option D is wrong because database-level UDFs require creating functions in the database and modifying SQL to call them, which is outside Looker's no-SQL calculation model.

197
MCQhard

Your Workflows definition calls three Cloud Run services in sequence. The second service occasionally returns HTTP 503 during cold starts, and you want Workflows to retry those specific failures with exponential backoff while treating HTTP 400 responses as permanent failures. How should you configure this?

A.Configure a Cloud Scheduler job to re-trigger the entire workflow whenever it fails.
B.Set the workflow-level execution timeout to a long value and rely on Cloud Run's own request retries to handle failures.
C.Add a retry block to the step with max_retries and a predicate that matches the 503 status code, and let 400 responses propagate as errors.
D.Wrap the second call in a try/except block and re-invoke it in the except handler until it succeeds.
AnswerC

A step-level retry block accepts max_retries, an interval with optional exponential backoff, and a predicate expressed in CEL that decides which responses are retryable. Matching only the 503 status means transient cold-start failures are retried, while a 400 response does not satisfy the predicate and is raised as a step error, which is exactly the desired distinction.

Why this answer

Workflows supports a retry policy on individual steps, including max_retries, an interval with exponential backoff, and a predicate written in CEL. By matching only the 503 status in the predicate, transient cold-start failures are retried while 400 responses fail immediately. Manual try/except loops, longer timeouts, and scheduler-based restarts do not provide the same targeted behavior.

Exam trap

The trap here is assuming Cloud Run retries failed requests on its own, when in fact the caller such as Workflows must implement the retry policy.

198
MCQeasy

You have sensitive data in Cloud Storage that needs to be deleted after 30 days to comply with regulatory requirements. What is the most efficient way to manage this?

A.Use Cloud Storage lifecycle management policies
B.Run a manual BigQuery script
C.Write a Cloud Function to check dates and delete files
D.Create a Dataplex lifecycle task
AnswerA

Cloud Storage lifecycle management policies automatically delete objects once they reach the specified age, satisfying the 30-day regulatory retention limit without custom code or manual intervention. Rules apply at bucket level across matching objects, making this the most efficient, serverless mechanism for enforcing time-based deletion at scale.

Why this answer

Cloud Storage Object Lifecycle Management lets you define rules directly on a bucket (e.g., Delete objects 30 days after creation) that GCS enforces automatically at no additional cost. This is the native, server-side, most efficient mechanism for time-based deletion and requires no code, scheduler, or external service.

Exam trap

The trap here is reaching for a compute-based solution (Cloud Function, script) when GCS provides a declarative, zero-maintenance lifecycle feature — candidates over-engineer because they forget lifecycle rules exist.

How to eliminate wrong answers

Option B is wrong because BigQuery scripts operate on BigQuery datasets/tables, not on Cloud Storage objects, and cannot delete GCS objects. Option C is wrong because a Cloud Function would require writing, deploying, scheduling, and maintaining code plus a trigger (e.g., Cloud Scheduler), which is operationally heavier and more error-prone than a declarative lifecycle rule. Option D is wrong because Dataplex lifecycle tasks govern Dataplex lake/zone/asset metadata and data discovery, not raw GCS object retention; Dataplex does not delete GCS objects on a schedule.

199
MCQmedium

You need to ingest data from a MySQL database into BigQuery. The database is updated continuously, and you need near-real-time replication with minimal impact on the source database. You also want to avoid writing custom code. What should you use?

A.Datastream with a MySQL source and BigQuery destination.
B.Dataflow with a MySQL to BigQuery template.
C.Cloud SQL federated queries from BigQuery.
D.BigQuery Data Transfer Service with a MySQL connector.
AnswerA

Datastream is a serverless change data capture (CDC) service that supports MySQL as a source and can replicate changes to BigQuery in near real-time. It reads the database log (binlog) with minimal impact on the source and requires no custom code. This meets the requirements for continuous replication and low impact.

Why this answer

Datastream is designed for continuous CDC from MySQL to BigQuery. It reads the binlog with minimal impact on the source, provides near-real-time replication, and requires no custom code. Other options are either batch-oriented, require coding, or do not replicate data into BigQuery.

Exam trap

The trap here is assuming that BigQuery Data Transfer Service supports all databases for continuous replication, when it does not support MySQL CDC.

200
MCQeasy

Which command-line tool do you primarily use to deploy and manage Workflows?

A.gsutil
B.kubectl
C.gcloud
D.bq
AnswerC

The `gcloud` CLI provides the `gcloud workflows deploy` and `gcloud workflows run` commands, giving direct command-line control over Workflow deployment and execution. This satisfies the stem's requirement for a primary deployment and management tool, as Workflows is a Google Cloud service administered through the gcloud interface rather than a separate utility.

Why this answer

The gcloud CLI is the primary tool for deploying and managing Workflows, using commands like gcloud workflows deploy, gcloud workflows execute, and gcloud workflows describe. It authenticates via gcloud auth and integrates with all Workflows management APIs. This is the documented and supported interface for lifecycle operations.

Exam trap

GCP-ADP often tests tool-to-service mapping — candidates may pick gsutil or bq because they recognize 'gcloud-family' tools without matching the specific service.

How to eliminate wrong answers

Option A is wrong because gsutil is specifically for Cloud Storage bucket and object operations (copy, ls, rsync), not Workflows. Option B is wrong because kubectl manages Kubernetes clusters and resources, not Workflows executions. Option D is wrong because bq is the BigQuery command-line tool for datasets, tables, and queries — it has no Workflows functionality.

201
MCQhard

In Dataflow, what is the impact of using a high number of workers for a small dataset?

A.Faster processing
B.Decreased latency
C.Data corruption
D.Increased cost and overhead
AnswerD

Dataflow workers are billed per vCPU-hour, and each worker carries startup and shuffle overhead. Overprovisioning workers for a small dataset multiplies cost and coordination overhead without improving throughput, since parallelism is bounded by data size.

Why this answer

Dataflow provisions workers as a fixed pool sized by the number of workers you specify, and each worker incurs per-hour Compute Engine charges plus associated overhead (startup, shuffle, network). For a small dataset, the work is finished quickly regardless of parallelism, so extra workers add no throughput benefit while multiplying cost and adding coordination overhead. The correct answer is therefore increased cost and overhead, not faster processing.

Exam trap

GCP-ADP often tests the misconception that more workers always means faster processing, when in fact Dataflow parallelism is bounded by the number of splittable bundles in the input.

How to eliminate wrong answers

Option A is wrong because Dataflow's parallelism only helps when the input can be split into enough bundles to keep workers busy; a small dataset produces too few bundles, so adding workers yields diminishing or zero speedup. Option B is wrong because latency is governed by pipeline design, autoscaling, and streaming windowing, not by raw worker count; more workers do not reduce end-to-end latency for a small batch. Option C is wrong because Dataflow guarantees exactly-once processing and does not corrupt data due to worker count — corruption is not a consequence of over-provisioning.

202
MCQhard

You need to run a Workflows execution based on a schedule. Which Google Cloud service is designed to manage this triggering?

A.Eventarc
B.Cloud Tasks
C.Cloud Scheduler
D.Pub/Sub
AnswerC

Cloud Scheduler is purpose-built for cron-style triggering, invoking Workflows executions on a defined timetable via HTTP targets. It satisfies the scheduling constraint directly, unlike Eventarc (event-driven) or Pub/Sub (message-based). Cloud Scheduler handles retries and time-zone-aware cron expressions, making it the designed service for time-based Workflows invocation.

Why this answer

Cloud Scheduler is Google Cloud's fully managed cron service, purpose-built to invoke HTTP endpoints, Pub/Sub topics, or App Engine routes on a defined schedule. Workflows exposes an HTTP trigger endpoint, so a Cloud Scheduler job can POST to that endpoint on a cron expression to start executions. This is the canonical, documented pattern for scheduled Workflows runs.

Exam trap

GCP-ADP often tests the distinction between event-driven triggers (Eventarc, Pub/Sub) and time-driven triggers (Cloud Scheduler) — candidates confuse Pub/Sub with a scheduler.

How to eliminate wrong answers

Option A is wrong because Eventarc is an event-routing service that reacts to CloudEvents from sources like Audit Logs or Cloud Storage — it has no native cron scheduling capability. Option B is wrong because Cloud Tasks is a queue for asynchronous task dispatch with rate/delay controls, not a time-based scheduler for arbitrary endpoints. Option D is wrong because Pub/Sub is a messaging bus; it can deliver a message that triggers Workflows, but it cannot itself generate the schedule — you would still need Cloud Scheduler to publish on a cron.

203
MCQmedium

Your team is ingesting streaming clickstream events from Pub/Sub into BigQuery. You need to ensure that the pipeline can handle duplicate message deliveries without creating duplicate rows in the destination table. What should you do?

A.Enable exactly-once delivery on the Pub/Sub subscription and use a Dataflow pipeline with the BigQuery Storage Write API configured for exactly-once semantics.
B.Use the BigQuery streaming insert API with insertId populated from a unique event identifier, and rely on BigQuery to deduplicate rows.
C.Use Cloud Data Fusion to read from Pub/Sub and write to BigQuery with the deduplicate plugin enabled.
D.Configure the Pub/Sub subscription to use a dead-letter topic and set the maximum delivery attempts to 1.
AnswerA

Exactly-once delivery on the Pub/Sub subscription prevents redelivery of acknowledged messages, and the BigQuery Storage Write API in exactly-once mode ensures each record is written once even if the pipeline retries. Together they provide end-to-end duplicate elimination for streaming insertions, which matches the requirement to avoid duplicate rows.

Why this answer

End-to-end duplicate elimination for Pub/Sub to BigQuery requires exactly-once delivery on the subscription and a sink that supports exactly-once writes. The BigQuery Storage Write API with exactly-once semantics, combined with Pub/Sub exactly-once delivery, ensures each message is processed and written once. Other options either provide best-effort deduplication or do not prevent duplicates.

Exam trap

The trap here is assuming that Pub/Sub message deduplication alone or BigQuery insertId deduplication is sufficient, when exactly-once end-to-end requires both source and sink configurations.

204
MCQmedium

You manage a BigQuery dataset that contains a table with millions of rows. Analysts frequently query only the most recent 30 days of data, but full-table scans are expensive. You need to reduce query costs and improve performance for these time-based queries with minimal changes to the table structure. What should you do?

A.Partition the table by a DATE or TIMESTAMP column using daily partitioning.
B.Create a separate table for each month and use a UNION ALL view to combine them.
C.Create a materialized view that selects the last 30 days of data and instruct analysts to query the view.
D.Enable the BigQuery BI Engine reservation on the dataset.
AnswerA

Partitioning the table by a date or timestamp column allows BigQuery to prune partitions when queries filter on that column, scanning only the relevant partitions. This reduces bytes processed and improves performance for recent-data queries. It requires no change to how analysts write queries as long as they filter on the partitioning column.

Why this answer

Partitioning a BigQuery table by a date or timestamp column enables partition pruning, so queries that filter on that column scan only the relevant partitions. This directly reduces the bytes processed and improves performance for time-based queries. Other options either do not reduce scanned data for arbitrary filters or add unnecessary complexity without addressing the root cause.

Exam trap

The trap here is assuming that a materialized view or BI Engine automatically reduces bytes scanned for ad-hoc time-filtered queries, when only partitioning prunes data at the storage level.

205
MCQeasy

When creating a Looker visualization, which chart type is best for showing the relationship between two numerical variables?

A.Donut chart.
B.Table chart.
C.Scatter plot.
D.Area chart.
AnswerC

A scatter plot plots one numerical variable on each axis, exposing correlation, clusters and outliers between them. This directly satisfies the stem's requirement to show the relationship between two numerical variables, unlike categorical or single-measure charts.

Why this answer

A scatter plot is specifically designed to display the relationship between two numerical variables by plotting each data point as a dot on a two-dimensional Cartesian plane, with one variable on the x-axis and the other on the y-axis. This allows you to visually assess correlation, clustering, outliers, and patterns such as linear or non-linear relationships. In Looker, the scatter plot chart type automatically maps two measures to the axes, making it the ideal choice for bivariate numerical analysis.

Exam trap

GCP-ADP often tests the confusion between chart types that show composition or trends versus those that show correlation, so candidates might mistakenly choose an area chart for its visual appeal without recognizing that only a scatter plot correctly represents the relationship between two numerical variables.

How to eliminate wrong answers

Option A is wrong because a donut chart is a variation of a pie chart used to show parts of a whole for a single categorical dimension, not the relationship between two numerical variables. Option B is wrong because a table chart presents data in rows and columns, which can list numerical values but does not visually depict the relationship or correlation between two variables. Option D is wrong because an area chart is typically used to show trends over time or cumulative totals for one or more series, emphasizing magnitude rather than the correlation between two numerical variables.

206
MCQeasy

Which service should you use to search for and discover datasets across your entire Google Cloud organization?

A.BigQuery Explorer
B.Cloud Storage Browser
C.Cloud Logging
D.Data Catalog
AnswerD

Data Catalog provides a searchable, organisation-wide inventory of datasets and tables, letting users discover and tag assets across all projects. It indexes metadata from BigQuery and other sources, satisfying the requirement to search the entire Google Cloud organisation.

Why this answer

Data Catalog is Google Cloud's fully managed, scalable metadata management service that enables search and discovery of datasets across the organization. It provides a unified inventory of data assets with tagging and search capabilities, making it the correct choice for discovering datasets organization-wide.

Exam trap

GCP-ADP often tests the difference between service-specific browsers (BigQuery Explorer, Cloud Storage Browser) and the cross-organizational discovery tool (Data Catalog) — candidates pick the service they know best rather than the one designed for enterprise-wide search.

How to eliminate wrong answers

Option A is wrong because BigQuery Explorer only searches within BigQuery datasets, not across the entire organization or other services. Option B is wrong because Cloud Storage Browser lists buckets and objects but does not provide metadata search or discovery across datasets. Option C is wrong because Cloud Logging is for log ingestion and analysis, not dataset discovery.

207
MCQmedium

What happens if you delete a Dataplex Lake?

A.The data is moved to a 'trash' bucket
B.The lake is deleted, but the underlying assets remain
C.Access to the assets is granted to all users
D.All underlying data assets are deleted
AnswerB

Deleting a Dataplex lake removes only the lake resource and its metadata configuration; the underlying Cloud Storage or BigQuery assets themselves are untouched. This satisfies the stem's scenario, since the assets remain accessible directly after the lake is gone.

Why this answer

Deleting a Dataplex Lake removes the lake resource itself but does not delete the underlying data assets (such as Cloud Storage buckets or BigQuery datasets) that were attached to it. The assets remain intact and can be re-attached to another lake or managed separately. This design prevents accidental data loss and allows for flexible re-organization of data governance structures.

Exam trap

GCP-ADP often tests the distinction between metadata and data; candidates assume deleting a lake deletes the data, but Dataplex only manages metadata, leaving assets intact.

How to eliminate wrong answers

Option A is wrong because Dataplex does not move data to a trash bucket; deletion of a lake does not affect the storage location of assets. Option C is wrong because deleting a lake does not grant access to all users; IAM policies remain unchanged. Option D is wrong because underlying data assets are not deleted; only the lake metadata and management layer are removed.

208
MCQhard

You are creating a Looker report with a 'measure' that calculates the total revenue. You notice it is summing correctly but the format is wrong. Where do you change the format?

A.In the dashboard filter settings.
B.By editing the underlying SQL.
C.In the 'User' settings.
D.In the LookML view file using 'value_format_name'.
AnswerD

Setting `value_format_name` on the measure in the LookML view file applies a named format model, such as `usd`, directly to the measure's definition. This satisfies the stem's requirement to correct the display format of the total revenue measure while preserving its existing summation behaviour.

Why this answer

In Looker, a measure's display format is defined in the LookML view file using the `value_format_name` parameter (or `value_format` for custom formats). This parameter controls how the numeric value is rendered in the UI without altering the underlying calculation. Since the measure is already summing correctly, only the presentation layer needs adjustment, which is exactly what `value_format_name` does.

Exam trap

GCP-ADP often tests the distinction between data calculation and data presentation, so candidates may mistakenly think that changing the SQL or filter settings will fix a formatting issue, when in fact LookML's `value_format_name` is the correct layer for display formatting.

How to eliminate wrong answers

Option A is wrong because dashboard filter settings control which data is included or excluded, not how a measure's value is formatted. Option B is wrong because editing the underlying SQL would change the calculation itself, not the display format, and Looker abstracts SQL generation from the user. Option C is wrong because user settings affect personal preferences like timezone or locale, not the formatting of a specific measure in a report.

209
MCQmedium

A product team uses Looker Studio to visualize metrics from a BigQuery table that is updated by an hourly ETL job. Users report that the dashboard shows data that is several hours stale even though the ETL completes successfully. The data source was configured with a custom query rather than a direct table reference. What is the most likely cause of the staleness?

A.The hourly ETL job writes to a staging table and the dashboard reads from the wrong table.
B.The dashboard's date range control is set to a fixed historical period and is not updating automatically.
C.BigQuery streaming inserts are not immediately visible to queries, so the dashboard cannot see the newest rows.
D.The BigQuery data source uses a custom query, and Looker Studio caches the query results for the configured freshness interval.
AnswerD

When a Looker Studio data source is defined by a custom query, the query result is cached and reused for the data source's freshness setting, commonly twelve hours by default. The dashboard therefore shows the cached snapshot rather than re-querying BigQuery each time it loads. Reducing the freshness interval or switching the source to a direct table reference restores more current data.

Why this answer

Looker Studio caches results from a custom query data source and refreshes them according to the data source's freshness setting, which defaults to twelve hours. Because the ETL updates BigQuery but the dashboard serves a cached snapshot, users see data that lags by several hours. Lowering the freshness interval, or using a direct table reference where freshness behaves differently, resolves the mismatch.

Exam trap

The trap here is blaming the ETL or streaming latency for stale dashboards, when the real cause is Looker Studio's result caching for custom query data sources.

210
MCQeasy

When reviewing a Looker dashboard, which icon do you click to reload the data?

A.The refresh icon.
B.The edit icon.
C.The share icon.
D.The filter icon.
AnswerA

Clicking the refresh icon triggers a re-run of the dashboard's underlying queries against the database, fetching current data rather than serving cached results. This directly satisfies the stem's requirement to reload data within Looker, since the refresh control is the interface element that forces query re-execution and updates every tile.

Why this answer

The refresh icon in Looker is specifically designed to reload the data displayed on a dashboard or tile. Clicking it triggers a re-execution of the underlying queries, fetching the latest data from the database. This is the standard way to update the dashboard with current information without altering its configuration.

Exam trap

GCP-ADP often tests the distinction between actions that modify the dashboard's configuration versus those that update the data, so candidates might confuse the edit icon with the refresh icon.

How to eliminate wrong answers

Option B is wrong because the edit icon opens the dashboard or tile in edit mode, allowing changes to the layout, visualizations, or settings, but does not reload data. Option C is wrong because the share icon provides options to share the dashboard via link, email, or schedule, but does not refresh the data. Option D is wrong because the filter icon opens the filter panel to adjust filter values, which may change the data shown but does not necessarily reload the data from the source; it applies filters to the existing query results.

211
MCQhard

Your team needs to audit all modifications made to DAG files in the GCS bucket used by Cloud Composer. What is the most efficient way to achieve this?

A.Enable Data Access audit logs on the GCS bucket.
B.Enable 'Version History' in the Airflow UI.
C.Use Cloud Monitoring to alert on 'gcs_object_write' events.
D.Write a custom DAG to scan the bucket every minute.
AnswerA

Data Access audit logs on the GCS bucket record object-level operations, including reads and writes to DAG files, capturing who modified what and when. This satisfies the audit requirement without deploying additional tooling, making it the most efficient native mechanism.

Why this answer

Enabling Data Access audit logs on the GCS bucket is the most efficient way to audit all modifications made to DAG files because it automatically logs all object-level operations, including who modified what and when. This provides a comprehensive audit trail without requiring custom code or manual monitoring. Data Access audit logs capture both read and write operations, and can be exported to Cloud Logging for analysis and retention.

Exam trap

GCP-ADP often tests the difference between audit logs and monitoring alerts, and candidates may choose monitoring because it seems simpler, but monitoring does not provide the detailed audit trail required for compliance.

How to eliminate wrong answers

Option B is wrong because 'Version History' in the Airflow UI only tracks changes to DAG files within the Airflow environment, not modifications made directly to the GCS bucket, and it does not provide a detailed audit log of who made the changes. Option C is wrong because Cloud Monitoring alerts on 'gcs_object_write' events only notify you of writes but do not provide a detailed audit trail of all modifications, and setting up alerts is not an efficient way to audit all changes. Option D is wrong because writing a custom DAG to scan the bucket every minute is inefficient, does not provide real-time auditing, and would only detect changes after the fact without capturing who made them or other metadata.

212
MCQmedium

You are querying a dataset in BigQuery that uses partitioning. Your query doesn't use the partitioning column. What is the consequence?

A.BigQuery will automatically optimize the scan.
B.The query will fail immediately.
C.The query results will be inaccurate.
D.The query will perform a full table scan.
AnswerD

Partition pruning only occurs when the query filters on the partitioning column. Without that filter, BigQuery cannot eliminate any partitions, so it reads every partition, resulting in a full table scan and higher bytes billed.

Why this answer

When a query filters or joins on a non-partitioning column, BigQuery cannot prune partitions and must scan every partition in the table, resulting in a full table scan. This increases bytes processed, cost, and query latency, but the query still returns correct results.

Exam trap

GCP-ADP often tests the misconception that BigQuery 'automatically optimizes' any query or that missing partition filters cause errors — the actual consequence is a full scan with cost and latency impact, not failure or inaccuracy.

How to eliminate wrong answers

Option A is wrong because BigQuery's partition pruning is driven strictly by predicates on the partitioning column; without such a predicate, no automatic optimization can skip partitions. Option B is wrong because BigQuery does not fail queries for missing partition filters — it simply scans more data (unless a partition expiration or required partition filter is enforced via table settings). Option C is wrong because scanning all partitions still yields accurate results; the penalty is performance and cost, not correctness.

213
MCQmedium

You need to verify the integrity of a large file uploaded to GCS. What is the standard way to do this?

A.Use Cloud Logging
B.Check file size
C.Check MD5 hash
D.Use Dataflow
AnswerC

Cloud Storage stores an MD5 hash for each object, retrievable via the object's metadata, letting you compare it against the locally computed hash of the uploaded file to confirm integrity, which is the standard verification method the stem asks for.

Why this answer

The standard way to verify integrity of a file uploaded to GCS is to compare its MD5 hash (or CRC32C) against the source file's hash. GCS stores the MD5 and CRC32C checksums as object metadata, and you can compare them to confirm the upload was not corrupted. This is the canonical integrity-verification method.

Exam trap

GCP-ADP often tests the misconception that file size or logging confirms integrity, so candidates pick 'check file size' instead of the checksum-based MD5/CRC32C verification.

How to eliminate wrong answers

Option A is wrong because Cloud Logging records events and errors but does not provide file integrity verification or checksums. Option B is wrong because checking file size only confirms byte count, not content integrity — a corrupted file can have the same size. Option D is wrong because Dataflow is a data processing service, not a tool for verifying object integrity in GCS.

214
MCQeasy

When configuring a Workflows execution, you want to ensure the workflow can be triggered by an HTTP POST request. Which feature allows this?

A.Executing the workflow via the REST API.
B.Configuring a Cloud Scheduler job with an HTTP target.
C.Enabling the 'HTTP Gateway' on the workflow itself.
D.Creating a Service Account with 'Public Access'.
AnswerA

Invoking the workflow through the REST API satisfies the HTTP POST trigger requirement, since Workflows exposes an execution endpoint that accepts POST requests carrying the workflow ID and runtime arguments. This lets external callers start executions directly over HTTP, matching the stem's constraint without needing an Eventarc or Pub/Sub intermediary.

Why this answer

Workflows executions can be triggered by an HTTP POST request using the Workflows REST API (executions.create endpoint). This allows external systems to start a workflow by sending an authenticated POST to the Workflows API with the workflow ID and input arguments.

Exam trap

GCP-ADP often tests the difference between the Workflows REST API (the actual trigger mechanism) and orchestration services like Cloud Scheduler or Eventarc that can call it, causing candidates to pick the scheduler instead of the API.

How to eliminate wrong answers

Option B is wrong because Cloud Scheduler can trigger a workflow via HTTP, but it is a scheduling service, not the feature that enables HTTP POST triggering itself — the underlying capability is the Workflows REST API. Option C is wrong because there is no 'HTTP Gateway' feature on a Workflows workflow; HTTP triggering is done via the API, not a gateway toggle. Option D is wrong because creating a service account with public access does not enable HTTP POST triggering and would be a security anti-pattern; authentication is required via IAM.

215
MCQmedium

You are building a streaming pipeline using Dataflow to process sensor data arriving via Pub/Sub. You need to handle out-of-order data by allowing events to arrive late. Which Dataflow concept must you configure?

A.Side Inputs
B.Partitioning
C.GroupByKey
D.Watermarks
AnswerD

Watermarks track event-time progress in the pipeline, defining when a window's results are considered complete. Configuring an allowed lateness window lets Dataflow retain state and process events arriving after the watermark, directly satisfying the requirement to handle out-of-order sensor data from Pub/Sub.

Why this answer

Watermarks are Dataflow's mechanism for tracking event-time progress in a streaming pipeline. They represent the point in event time up to which the system believes all data has arrived, so configuring an allowed lateness window relative to the watermark lets late-arriving sensor events still be processed correctly. Without watermarks, Dataflow cannot reason about when a window is 'complete' or how long to wait for stragglers.

Exam trap

GCP-ADP often tests the confusion between windowing/triggers and watermarks — candidates pick GroupByKey thinking grouping handles lateness, when in fact watermarks (plus allowed lateness) are what govern out-of-order event handling.

How to eliminate wrong answers

Option A is wrong because Side Inputs are used to enrich each element with additional slow-changing data (e.g., a lookup table), not to handle out-of-order or late-arriving events. Option B is wrong because Partitioning (via Partition transform) splits a PCollection into multiple PCollections based on a key, which is about routing/parallelism, not event-time correctness. Option C is wrong because GroupByKey simply groups values by key within a window; it does not by itself define lateness or trigger behavior — it relies on windowing and watermarks to know when to emit results.

216
Multi-Selectmedium

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

Select 2 answers
A.Discovery must be manually triggered for every scan
B.Discovery works only for BigQuery tables
C.Discovery deletes duplicate files
D.Discovery scans and infers schema from the data
E.Discovery generates metadata for the data assets
AnswersD, E

Discovery jobs sample data in the zone's assets and infer schema, deriving column names, data types and structure from the actual files or tables. This inferred schema populates the Dataplex metadata catalogue, enabling search and governance without manual schema definition.

Why this answer

Option D is correct because Dataplex discovery automatically scans data in supported storage systems (such as Cloud Storage buckets and BigQuery datasets) and infers the schema by sampling and profiling the underlying files or tables. Option E is correct because the discovery process produces and publishes metadata — including schema, data profiles, and other statistics — into the Dataplex Data Catalog for the discovered assets. Option A is incorrect because discovery can run on a schedule (and can also be triggered on-demand), so it does not require manual triggering for every scan.

Option B is incorrect because discovery supports multiple data sources, including Cloud Storage objects and BigQuery, not only BigQuery tables. Option C is incorrect because discovery is a metadata and schema inference service; it does not delete or deduplicate files.

Exam trap

GCP-ADP often tests the misconception that Dataplex Discovery is a data-transformation or deduplication tool, when it is strictly a metadata and schema-inference service.

217
Multi-Selectmedium

Which TWO factors should you consider when choosing a GCS storage class?

Select 2 answers
A.Data color
B.Data retention requirements
C.Network speed
D.Number of users
E.Access frequency
AnswersB, E

Retention requirements dictate whether data must remain immutable for compliance periods, which rules out classes lacking Object Lock support or lifecycle deletion flexibility. Standard, Nearline, Coldline and Archive differ in minimum storage duration and retrieval costs, so mandated retention windows directly determine which class avoids early-deletion penalties.

Why this answer

Option B (Data retention requirements) is correct because GCS storage classes differ in minimum storage duration and retrieval costs, so how long you must keep data determines whether a class like Nearline, Coldline, or Archive is cost-effective versus Standard. Option E (Access frequency) is correct because storage classes are fundamentally optimized around how often objects are read: Standard for frequent access, Nearline for about once a month, Coldline for about once a quarter, and Archive for less than once a year. Option A (Data color) is not a real GCS concept and has no bearing on storage class selection.

Option C (Network speed) affects transfer performance but not which storage class you choose. Option D (Number of users) is irrelevant because GCS storage classes are based on access patterns and retention, not user counts.

Exam trap

GCP-ADP often tests the misconception that factors like network speed or number of users affect storage class choice, when the real drivers are access frequency and retention duration.

218
MCQmedium

You have a Looker dashboard that loads slowly. What is the first thing you should check in the 'Looker System Activity' or 'Query History'?

A.Restart the Looker instance.
B.Check the Query History to see execution time and SQL complexity.
C.Delete all existing users.
D.Change the Looker instance color theme.
AnswerB

Query History exposes each query's execution duration and generated SQL, letting you pinpoint whether latency stems from complex joins, missing aggregates, or full-table scans before touching dashboard configuration. This directly satisfies the stem's requirement to identify the first diagnostic step for a slow-loading Looker dashboard, since execution metrics reveal the underlying bottleneck.

Why this answer

When a Looker dashboard loads slowly, the first diagnostic step is to inspect Query History (or System Activity) to see which queries are slow, how long they executed, and how complex the generated SQL is. This reveals whether the bottleneck is an expensive query, a missing index, a large data scan, or a caching issue before you change any configuration.

Exam trap

GCP-ADP often tests the principle of 'diagnose before you act' — candidates who jump to restarting the instance or changing settings instead of checking Query History fall for the operational shortcut trap.

How to eliminate wrong answers

Option A is wrong because restarting the Looker instance is a disruptive, non-diagnostic action that may temporarily clear caches but does not identify the root cause — it is a last resort, not a first check. Option C is wrong because deleting users has no bearing on query performance and would break access for legitimate users. Option D is wrong because changing the color theme is purely cosmetic and has zero effect on dashboard load time.

219
Multi-Selecteasy

Which TWO of the following are GCP ingestion tools?

Select 2 answers
A.Cloud Storage
B.Cloud SQL
C.Cloud Compute
D.Pub/Sub
E.Cloud DNS
AnswersA, D

Cloud Storage acts as a GCP ingestion tool because it accepts raw data files that pipelines then load into BigQuery or Dataproc, satisfying the stem's requirement for a landing zone where external sources deposit data before processing.

Why this answer

Cloud Storage (A) is correct because it serves as a GCP ingestion tool by allowing data to be loaded into the cloud via gsutil, the JSON/XML APIs, or Storage Transfer Service, and it commonly acts as the landing zone for batch data pipelines feeding BigQuery or Dataproc. Pub/Sub (D) is correct because it is GCP's fully managed, globally scalable messaging service that ingests streaming data from publishers and delivers it to subscribers, making it the primary ingestion mechanism for real-time and event-driven pipelines. Cloud SQL (B) is not an ingestion tool; it is a managed relational database service (MySQL, PostgreSQL, SQL Server) used for storage and querying, not for bringing data into GCP.

Cloud Compute (C) is not an ingestion tool; Compute Engine provides IaaS virtual machines, which may run ingestion software but are not themselves an ingestion service. Cloud DNS (E) is not an ingestion tool; it is a scalable, reliable managed DNS service for publishing and resolving domain names.

Exam trap

GCP-ADP often tests the distinction between ingestion, storage, and compute services; candidates may mistakenly select Cloud SQL or Compute Engine as ingestion tools because they handle data, but ingestion specifically refers to bringing data into the platform.

220
MCQmedium

You need to export query results from BigQuery to a Google Sheet. What is the easiest way to do this?

A.Use the BigQuery Data Transfer Service.
B.Export to a CSV file and manually upload to Sheets.
C.Use the 'Save results' option and select 'Google Sheets'.
D.Write a Python script to call the Google Sheets API.
AnswerC

BigQuery's web UI provides a built-in 'Save results' menu that writes directly to a Google Sheet, avoiding exports to Cloud Storage or the API. This satisfies the requirement for the easiest method, since no external tooling or intermediate file transfer is needed.

Why this answer

The BigQuery web console provides a 'Save results' button directly in the query results pane, offering 'Google Sheets' as a destination. This creates a new Sheet with the query output, making it the simplest, no-code method for exporting results to Sheets.

Exam trap

GCP-ADP often tests whether candidates overcomplicate simple tasks — the trap is choosing programmatic or transfer-service options when the console's built-in 'Save results to Google Sheets' is the intended easiest path.

How to eliminate wrong answers

Option A is wrong because BigQuery Data Transfer Service is for scheduled, automated data movement from sources like SaaS apps or Cloud Storage into BigQuery, not for ad-hoc export to Sheets. Option B is wrong because exporting to CSV and manually uploading is a multi-step workaround, not the easiest method. Option D is wrong because writing a Python script using the Sheets API is far more complex and unnecessary for a one-off export.

221
MCQhard

You have a query that processes 500GB of data. You want to reduce the cost of this query. What is the most effective approach?

A.Use a smaller machine type for the project.
B.Increase the query timeout limit.
C.Switch to BigQuery Omni.
D.Add a WHERE clause to filter by the partitioned column.
AnswerD

Filtering on the partitioned column lets BigQuery prune partitions and scan only matching data, so bytes billed drop sharply from the full 500GB. This directly satisfies the stem's cost-reduction constraint, since BigQuery charges by bytes read, and partition elimination is the cheapest lever available.

Why this answer

BigQuery charges based on the amount of data processed by a query. Adding a WHERE clause that filters on a partitioned column allows BigQuery to prune partitions and scan only the relevant data, drastically reducing the bytes processed and thus the cost. This is the most effective and direct cost-reduction technique.

Exam trap

GCP-ADP often tests the misconception that infrastructure changes (like machine types) affect BigQuery cost, when cost is driven by data processed and can be optimized via partitioning and clustering.

How to eliminate wrong answers

Option A is wrong because BigQuery is serverless; there is no machine type to select for the project, and compute is abstracted. Option B is wrong because increasing the query timeout limit does not reduce data processed or cost; it only allows longer-running queries. Option C is wrong because BigQuery Omni is for querying data in other clouds (AWS, Azure) and does not inherently reduce cost for queries on data already in BigQuery.

222
MCQmedium

You are ingesting CSV files into BigQuery using the bq load command. The CSV files have a header row, and you want BigQuery to automatically detect the schema and skip the header. Which flags should you include?

A.--autodetect --header=true
B.--infer_schema --skip_rows=1
C.--autodetect --skip_leading_rows=1
D.--schema --header
AnswerC

The --autodetect flag tells BigQuery to infer the schema from the data, and --skip_leading_rows=1 tells it to ignore the first row, which is the header. Together, these flags allow a seamless load of CSV files with headers into a new table. This is the standard approach for ad-hoc loads when you do not want to define a schema manually.

Why this answer

To load CSV files with a header row and let BigQuery infer the schema, use bq load with --autodetect and --skip_leading_rows=1. The --autodetect flag enables schema inference, and --skip_leading_rows=1 skips the header. The other flag combinations either use invalid flags or require manual schema definition, which is not what the scenario asks for.

Exam trap

The trap here is confusing the bq load flag for skipping headers, which is --skip_leading_rows, with a non-existent --header flag.

223
Multi-Selecthard

You have noticed that your data quality tasks are failing. Which THREE of the following are potential causes for failure? (Choose three)

Select 3 answers
A.The YAML rule configuration is malformed
B.The service account lacks permissions on the data
C.The user has a slow internet connection
D.The Dataproc environment is not available
E.The data files were moved to another lake
AnswersA, B, D

Data quality tasks parse the YAML rule specification before execution; malformed syntax, invalid field names or wrong indentation causes the task to fail at configuration load, before any data is scanned. This directly explains the observed task failures.

Why this answer

Option A is correct because data quality tasks in tools like Cloud Dataplex/DQ rely on YAML rule specifications, and malformed YAML (bad indentation, invalid keys, syntax errors) will cause the task to fail during parsing before execution. Option B is correct because the service account executing the data quality job must have the required IAM permissions (e.g., BigQuery Data Viewer, Storage Object Viewer) on the underlying data; missing permissions cause authorization errors and task failure. Option D is correct because data quality tasks often run on a Dataproc cluster or serverless Dataproc environment, so if that environment is unavailable (deleted, misconfigured, or out of quota), the job cannot execute and fails.

Option C is not a valid cause because a slow internet connection on the user's side does not affect server-side data quality task execution. Option E is not a valid cause because moving data files to another lake would typically result in a 'not found' or empty-scan condition rather than being a general failure cause, and it is not one of the marked correct answers.

Exam trap

GCP-ADP often tests the misconception that client-side factors (like internet speed) affect server-side Dataplex job execution, when failures are driven by config, IAM, or Dataproc availability.

224
MCQmedium

You have a BigQuery table that is partitioned by ingestion time. You need to reduce storage costs by automatically deleting data older than 90 days. You want to ensure that the deletion happens without manual intervention and that the partitions are completely removed. What should you do?

A.Set a partition expiration on the table for 90 days.
B.Configure a Cloud Scheduler job that calls the BigQuery API to drop partitions older than 90 days.
C.Create a scheduled query that runs daily to delete rows older than 90 days using a DELETE statement.
D.Use a lifecycle rule on the BigQuery dataset to delete tables older than 90 days.
AnswerA

Partition expiration in BigQuery automatically deletes partitions after a specified number of days. For ingestion-time partitioned tables, you can set the partition expiration at the table level, and BigQuery will remove partitions older than the specified duration. This is a native, automated way to manage storage costs and ensures partitions are completely deleted.

Why this answer

Partition expiration is a table setting that automatically deletes partitions after a specified number of days. For ingestion-time partitioned tables, this is the simplest and most efficient way to remove old data and reduce storage costs. It requires no manual intervention and ensures partitions are dropped entirely.

Exam trap

The trap here is thinking that a scheduled DELETE or custom script is needed, but partition expiration is a built-in feature that automatically manages partition deletion.

225
MCQmedium

A data engineer needs to create a visualization in Looker Studio that shows the relationship between advertising spend and revenue for each marketing campaign. They want to quickly identify which campaigns have high spend but low revenue. Which chart type is most appropriate?

A.Time series chart with both advertising spend and revenue as metrics over time.
B.Geo chart with campaign locations and revenue as the metric.
C.Bar chart with campaigns on the X-axis and revenue on the Y-axis, sorted by revenue descending.
D.Scatter chart with advertising spend on the X-axis and revenue on the Y-axis, with each point representing a campaign.
AnswerD

A scatter chart plots individual data points on two axes, making it ideal for visualizing the relationship between two metrics. By placing spend on the X-axis and revenue on the Y-axis, each campaign appears as a point. Campaigns with high spend and low revenue will appear in the lower-right area, enabling quick identification of outliers.

Why this answer

To identify campaigns with high spend but low revenue, the analyst needs to see the correlation between the two metrics across campaigns. A scatter chart is designed for this purpose, plotting each campaign as a point based on its spend and revenue values. This visual format makes it easy to spot outliers that fall outside the expected pattern, such as those with high spend and low revenue.

Exam trap

The trap here is selecting a chart that shows one metric well but fails to display the relationship between two metrics, such as a bar chart sorted by revenue, which ignores spend entirely.

Page 2

Page 3 of 4

Page 4

All pages