Courseiva

CCNA Data Analysis And Presentation Questions

75 of 76 questions · Page 1/2 · Data Analysis And Presentation topic · Answers revealed

1
MCQmedium

You have a large table in BigQuery that is updated constantly. You need to perform a query that is consistent. What should you use?

A.A stored procedure.
B.An external table.
C.Time travel / Table snapshots.
D.A materialized view.
AnswerC

Time travel reads a consistent version of the table as of a past timestamp, so concurrent streaming inserts cannot skew results mid-query. This satisfies the stem's consistency constraint on a constantly updated table, unlike a plain query that may observe rows arriving during execution.

Why this answer

BigQuery time travel lets you query a table as it existed at any point within the last seven days, and table snapshots preserve a consistent view of the data at a specific moment. Because the table is constantly updated, querying the live table can return rows from different micro-batches; time travel or a snapshot gives you a point-in-time consistent read.

Exam trap

The trap here is confusing 'consistent' with 'fast' or 'cached' — candidates pick materialized views thinking they give stable results, but MVs refresh and reflect current data, not a point-in-time state.

How to eliminate wrong answers

Option A is wrong because a stored procedure is just a reusable SQL script — it does not provide snapshot isolation against concurrent writes. Option B is wrong because an external table reads from external storage (GCS, BigLake) and offers no consistency guarantee relative to BigQuery-managed updates. Option D is wrong because a materialized view is automatically refreshed and reflects the latest base-table state, so it is not a consistent point-in-time view.

2
MCQmedium

You are building a Looker Studio report and need to display a calculated field that shows the profit margin as a percentage. The data source contains fields for revenue and cost. Which expression should you use for the calculated field?

A.(SUM(revenue) - SUM(cost)) / SUM(revenue)
B.SUM(revenue - cost) / SUM(revenue)
C.SUM(revenue) / SUM(cost) - 1
D.AVG(revenue - cost) / AVG(revenue)
AnswerA

This expression calculates the profit margin by subtracting total cost from total revenue and dividing by total revenue. Using SUM aggregates the values correctly before the division, ensuring the result is a percentage. This is the correct way to compute a ratio of aggregates in Looker Studio.

Why this answer

To calculate profit margin as a percentage, you need to aggregate revenue and cost separately, then compute (total revenue - total cost) / total revenue. This ensures the result reflects the overall profitability across all rows, not an average of per-row margins. The expression using SUM for both revenue and cost correctly implements this.

Exam trap

The trap here is using AVG or row-level operations instead of SUM, which leads to incorrect aggregation and misrepresents the overall profit margin.

3
MCQmedium

A data team stores raw event data in a BigQuery table called `events` with columns `event_time` (TIMESTAMP), `user_id` (STRING), and `event_type` (STRING). The table is partitioned by DATE(event_time). Analysts frequently run queries that filter on `event_type` and also restrict `event_time` to the last 7 days. These queries scan the entire 7-day partition range, causing higher-than-expected costs. The team wants to reduce bytes scanned without changing the table's partitioning scheme. What should they do?

A.Add a materialized view that pre-aggregates events by `event_type` and day, and query the view instead.
B.Create a clustered table on the `event_type` column, and rewrite queries to include a filter on `event_type` and `event_time`.
C.Change the table's partitioning to use `event_time` directly instead of `DATE(event_time)`.
D.Enable the `require_partition_filter` option on the table and instruct analysts to always filter on `event_time`.
AnswerB

Clustering on `event_type` sorts data within each partition by that column. When queries filter on `event_type` and the partition column, BigQuery can skip blocks that do not match the cluster value, reducing bytes scanned. This directly addresses the high cost while preserving the existing partitioning strategy.

Why this answer

Clustering on `event_type` allows BigQuery to prune blocks within each partition based on the filter value. Since queries already filter on `event_time` (the partition column) and `event_type`, adding clustering on `event_type` reduces the amount of data read. This is the least disruptive and most effective change for the described workload.

Exam trap

The trap here is assuming that partitioning alone is sufficient for cost reduction, when clustering on a frequently filtered column is needed to prune within partitions.

4
Multi-Selectmedium

A data analyst is using Looker Studio to create a dashboard for a sales team. They want to enable users to interact with the data and explore different dimensions without leaving the dashboard. Which two features should they add to the report? (Choose two.)

Select 2 answers
A.A date range control that lets users choose a custom time period.
B.A calculated field that computes profit margin for each sale.
C.A scheduled email delivery of the report to the sales team.
D.A filter control that allows users to select a specific region.
E.A data source with a parameter that allows switching between different tables.
AnswersA, D

A date range control enables users to adjust the time period for the data shown. This is a key interactive feature that allows sales team members to view performance over different periods, such as last week, last month, or a custom range. The charts automatically refresh based on the selected dates.

Why this answer

To allow users to interact with the dashboard and explore data, the analyst should add filter controls and date range controls. These are standard Looker Studio components that let viewers adjust the data displayed without editing the report. Filter controls for dimensions like region and date range controls for time periods directly empower users to customize their view, making the dashboard more interactive and useful for the sales team.

Exam trap

The trap here is confusing distribution features like scheduled emails with interactive features, or assuming that calculated fields or parameters provide user interactivity when they are static or require technical setup.

5
MCQeasy

What is the primary function of a Looker Explore?

A.To automatically delete old data.
B.To act as a database backup.
C.To act as an email client.
D.To allow users to explore and visualize data.
AnswerD

A Looker Explore presents a curated view of a model, letting users pivot, filter and visualise data without SQL. This satisfies the stem's requirement of exploring and visualising data, distinguishing it from dashboards, which display pre-built, fixed visualisations.

Why this answer

A Looker Explore is the primary interface where users drag and drop dimensions and measures to query data, apply filters, and visualize results. It provides a governed, self-service environment built on LookML models, allowing business users to explore data without writing SQL. The Explore is not a database backup, email client, or data deletion tool.

Exam trap

GCP-ADP often tests the misconception that an Explore is a storage or backup feature, when it is actually the query and visualization interface built on LookML.

How to eliminate wrong answers

Option A is wrong because deleting old data is a data lifecycle operation, not the function of an Explore. Option B is wrong because a database backup is handled by the underlying database or cloud service, not by Looker. Option C is wrong because an email client is unrelated to Looker's analytics capabilities.

6
MCQmedium

You need to analyze a petabyte-scale dataset in BigQuery. To optimize cost, you must ensure that users only query relevant partitions. How should you enforce this?

A.Enable the 'Require partition filter' option in the table settings.
B.Use a materialized view for all queries.
C.Apply a data masking policy to the partitioning column.
D.Set a project-level query quota.
AnswerA

Enabling 'Require partition filter' forces every query against the table to include a partition filter, rejecting unfiltered scans. This prevents full-table scans across the petabyte dataset, directly enforcing the cost-optimisation constraint by limiting bytes read.

Why this answer

BigQuery's 'Require partition filter' table option forces every query against the table to include a WHERE clause that filters on the partitioning column, preventing full-table scans and the associated on-demand costs. This is the native, enforced mechanism for ensuring users only query relevant partitions. It applies to partitioned tables and rejects queries that lack a partition predicate.

Exam trap

GCP-ADP often tests whether candidates confuse cost-control mechanisms — the trap is selecting a quota or masking policy when the question specifically requires enforcing partition pruning at query time.

How to eliminate wrong answers

Option B is wrong because materialized views accelerate specific pre-computed queries but do not prevent users from scanning all partitions in ad-hoc queries. Option C is wrong because data masking hides sensitive values but does not restrict which partitions are scanned, so cost is unaffected. Option D is wrong because a project-level query quota limits total query volume or concurrency but does not enforce partition pruning on individual queries.

7
MCQmedium

You are analyzing a BigQuery table of e-commerce orders and want to identify the top 5 product categories by total revenue for each month in 2024. You need to produce a result set with columns `order_month`, `category`, and `total_revenue`. Which SQL technique should you use?

A.Use a CROSS JOIN with a calendar table and then filter with a WHERE clause on revenue.
B.Use a GROUP BY on order_month and category, then a LIMIT 5 clause at the end of the query.
C.Use the APPROX_TOP_COUNT function on category partitioned by month.
D.Use a GROUP BY on order_month and category, then a window function RANK() OVER (PARTITION BY order_month ORDER BY SUM(revenue) DESC) to filter top 5.
AnswerD

This approach aggregates revenue by month and category, then uses RANK() partitioned by month to rank categories within each month. Filtering for ranks 1 through 5 yields the top 5 per month. It is efficient and standard in BigQuery for top-N per group analysis, and correctly handles ties if needed.

Why this answer

To get top N per group, you need to aggregate first, then rank within each group. A GROUP BY on month and category computes total revenue, and a window function like RANK() partitioned by month orders categories by revenue within each month. Filtering on the rank gives the top 5 per month.

This is the correct and efficient pattern in BigQuery.

Exam trap

The trap here is using a simple LIMIT clause, which applies to the entire result set rather than per group, leading to incorrect top-N-per-group results.

8
MCQeasy

Which of the following describes the purpose of 'BigQuery ML'?

A.To run machine learning models using SQL.
B.To create dashboard charts.
C.To compress table data.
D.To manage IAM permissions.
AnswerA

BigQuery ML lets you create, train and evaluate machine learning models directly in BigQuery using SQL statements such as CREATE MODEL, keeping data in place. This satisfies the described purpose of running machine learning through SQL rather than external frameworks.

Why this answer

BigQuery ML enables users to create and execute machine learning models directly in BigQuery using SQL queries. It allows data analysts to build models without needing to export data or use separate ML frameworks. This makes it accessible for SQL users to perform predictive analytics.

Exam trap

GCP-ADP often tests the confusion between BigQuery ML and other GCP ML services like Vertex AI, but the key is that BigQuery ML specifically uses SQL for ML.

How to eliminate wrong answers

Option B is wrong because creating dashboard charts is the purpose of Looker Studio or other BI tools, not BigQuery ML. Option C is wrong because compressing table data is a storage optimization feature, not related to machine learning. Option D is wrong because managing IAM permissions is part of Cloud IAM, not BigQuery ML.

9
MCQhard

You notice your Looker dashboard is showing duplicate data. What is the most likely cause?

A.The data is cached in the browser.
B.Fan-out due to a join without correctly defined primary keys.
C.The user is logged in twice.
D.The BigQuery table is corrupted.
AnswerB

Fan-out occurs when a one-to-many join multiplies fact rows, because the join key lacks a properly defined primary key on the dimension side. Looker then aggregates inflated counts, producing the duplicate data observed. Defining the primary key correctly in LookML prevents this row multiplication, satisfying the stem's duplicate-data constraint.

Why this answer

Duplicate data in a Looker dashboard is most commonly caused by fan-out, which occurs when a join is performed without correctly defined primary keys, leading to multiple rows for each original row. This results in inflated counts and duplicate records in the visualization. Ensuring proper primary key definitions in LookML prevents this.

Exam trap

GCP-ADP often tests the misconception that caching or corruption causes duplicates, but the most likely cause is fan-out due to missing primary keys.

How to eliminate wrong answers

Option A is wrong because browser caching would typically show stale data, not duplicates. Option C is wrong because being logged in twice would not cause duplicate data in the dashboard; it might cause session issues but not data duplication. Option D is wrong because a corrupted BigQuery table would likely cause errors or missing data, not systematic duplicates.

10
MCQmedium

A user needs to see the distribution of values in a column in BigQuery. Which visualization approach is most effective for this?

A.Histogram.
B.Line chart.
C.Pie chart.
D.Scatter plot.
AnswerA

A histogram bins a numeric column into ranges and plots frequency per bin, revealing the value distribution's shape, spread and skew. This directly satisfies the stem's requirement to see how values in a column are distributed.

Why this answer

A histogram is the most effective visualization for showing the distribution of values in a column because it groups continuous data into bins and displays frequency counts, revealing the shape, central tendency, and spread of the data. Line charts are for trends over time, pie charts for parts of a whole, and scatter plots for relationships between two variables. Thus, histogram is the correct choice for distribution analysis.

Exam trap

GCP-ADP often tests visualization selection; candidates might choose a pie chart for distribution because it shows proportions, but a histogram is specifically designed for frequency distribution of a single variable.

How to eliminate wrong answers

Option B is wrong because a line chart is used to show trends over a continuous interval, typically time, not the distribution of a single column. Option C is wrong because a pie chart shows proportions of a whole for categorical data, not the distribution of numeric values. Option D is wrong because a scatter plot displays the relationship between two numeric variables, not the distribution of one.

11
MCQhard

In Looker, what is the impact of defining a 'primary_key' in a LookML view?

A.It forces the database to create an index.
B.It helps Looker avoid fan-outs during joins.
C.It changes the data type to an integer.
D.It restricts users from filtering by that column.
AnswerB

Declaring a primary_key marks the dimension as unique, so Looker treats that view as the "one" side of a join and applies symmetric aggregates when aggregating measures across the relationship. This prevents fan-out duplication of totals, satisfying the stem's requirement to describe the primary_key's impact on join behaviour.

Why this answer

Defining a primary_key in a LookML view tells Looker that the field uniquely identifies each row in that view. During joins, Looker uses this information to determine the join relationship and can avoid fan-out (row duplication) by ensuring that the join is a many-to-one or one-to-one relationship. This prevents incorrect aggregation and improves query performance by allowing Looker to use symmetric aggregates.

Exam trap

GCP-ADP often tests the misconception that LookML primary_key creates a database index or enforces a constraint, when in fact it is purely a logical declaration for Looker's symmetric aggregate logic.

How to eliminate wrong answers

Option A is wrong because Looker's primary_key is a metadata declaration in LookML; it does not instruct the underlying database to create an index. Option C is wrong because primary_key does not alter the data type; it only marks the field as a unique identifier. Option D is wrong because primary_key does not restrict filtering; users can still filter on that column unless additional access controls are applied.

12
MCQeasy

Which BigQuery feature allows you to monitor query usage and identify expensive queries?

A.Billing Reports.
B.Cloud Logging.
C.INFORMATION_SCHEMA.JOBS
D.BigQuery Monitoring Dashboard.
AnswerC

INFORMATION_SCHEMA.JOBS exposes per-job metadata — bytes processed, slot milliseconds, user and statement type — for completed queries in a project or region. Querying it lets you rank jobs by cost and pinpoint expensive patterns, satisfying the requirement to monitor usage and identify costly queries.

Why this answer

INFORMATION_SCHEMA.JOBS is a system view in BigQuery that provides real-time and historical metadata about all jobs (queries, loads, extracts, copies) run in a project, including details like total bytes processed, slot milliseconds, user, and query text. This makes it the ideal tool to monitor query usage and pinpoint expensive queries by analyzing metrics such as total_bytes_billed or total_slot_ms. Unlike other options, it offers granular, query-level cost and performance data directly within BigQuery.

Exam trap

GCP-ADP often tests the confusion between high-level cost tools (Billing Reports, Monitoring Dashboard) and granular, query-level metadata (INFORMATION_SCHEMA.JOBS), so candidates may pick a familiar monitoring option without realizing it lacks per-query cost details.

How to eliminate wrong answers

Option A is wrong because Billing Reports show aggregated cost data at the project or billing account level, not per-query details needed to identify expensive queries. Option B is wrong because Cloud Logging captures audit and operational logs but does not provide structured, queryable job metadata like bytes processed or slot usage for cost analysis. Option D is wrong because the BigQuery Monitoring Dashboard (in Cloud Monitoring) displays high-level metrics like query count and slot utilization, but lacks the per-query granularity and cost attribution found in INFORMATION_SCHEMA.JOBS.

13
MCQeasy

Which service is the primary tool for managing and running Jupyter notebooks in a managed environment within Google Cloud?

A.Vertex AI Workbench.
B.Cloud Run.
C.Dataflow.
D.BigQuery Studio.
AnswerA

Vertex AI Workbench provides managed JupyterLab notebook instances integrated with Google Cloud, handling provisioning, scaling and security. It satisfies the managed-environment constraint because Google operates the underlying compute rather than you maintaining your own notebook server.

Why this answer

Vertex AI Workbench is Google Cloud's managed Jupyter notebook environment, offering both user-managed and fully managed notebook instances integrated with Vertex AI, BigQuery, and Dataproc. It is the designated service for running JupyterLab notebooks in a managed, scalable way on GCP.

Exam trap

GCP-ADP often tests the overlap between BigQuery Studio notebooks and Vertex AI Workbench — candidates who see 'notebook' and pick BigQuery Studio miss that Workbench is the dedicated managed Jupyter service.

How to eliminate wrong answers

Option B is wrong because Cloud Run is a serverless container platform for stateless HTTP/gRPC services, not a notebook environment. Option C is wrong because Dataflow is a managed Apache Beam runner for batch and streaming data pipelines, not interactive notebooks. Option D is wrong because BigQuery Studio provides a SQL and notebook-like analysis surface inside BigQuery, but it is not the primary managed Jupyter environment — Vertex AI Workbench is.

14
MCQeasy

An analyst has a BigQuery table of website events partitioned by event_date. A stakeholder asks for a quick chart of daily active users for the last 30 days, and cost must stay minimal. Which query pattern best satisfies this request?

A.Create a materialized view that joins the events table to the users table and query the view for the daily counts.
B.Run a query that selects all columns from the events table and let the visualization tool filter the date range after retrieval.
C.Export the entire events table to Cloud Storage as CSV and query the exported files with an external table.
D.Query with a WHERE clause on event_date limiting the range to the last 30 days and select only the date and user identifier needed for the distinct count.
AnswerD

Filtering directly on the partition column lets BigQuery prune partitions and read only the 30 days required, which is the single biggest lever on scan cost for partitioned tables. Selecting just the date and user identifier keeps the scanned columns narrow. Together these choices minimize bytes billed while still producing the daily active user counts the stakeholder requested.

Why this answer

Partition pruning is the decisive factor for cost on a partitioned table. Restricting the WHERE clause to the event_date partition column means BigQuery reads only the 30 relevant days instead of the whole history. Selecting only the two columns required for the daily distinct count keeps the scan narrow.

Together, partition pruning and column pruning produce the requested chart at the lowest achievable cost.

Exam trap

The trap here is believing that filtering in the visualization layer saves warehouse cost, when billing is determined by what the query itself scans.

15
MCQhard

You are analyzing query performance in BigQuery. You notice that your queries are spilling to disk. What is the most likely cause?

A.The project is using On-Demand pricing.
B.The dataset is stored in a multi-region location.
C.Using too many slots in the reservation.
D.An inefficient JOIN or GROUP BY operation causing high memory pressure.
AnswerD

BigQuery spills to disk when a query's intermediate data exceeds available memory per slot. Inefficient JOINs or GROUP BY operations producing large shuffles are the typical cause, forcing temporary data onto disk and slowing execution.

Why this answer

Spilling to disk in BigQuery occurs when a query's intermediate results exceed the memory available to the execution stage. This typically happens due to inefficient JOINs or GROUP BY operations that produce large intermediate datasets, forcing BigQuery to write data to disk (shuffle) and significantly slowing performance. The correct answer directly identifies this memory pressure as the root cause.

Exam trap

GCP-ADP often tests the misconception that pricing models or slot counts directly cause spilling, when the real cause is inefficient query patterns leading to memory pressure.

How to eliminate wrong answers

Option A is wrong because On-Demand pricing affects cost, not query execution memory or spilling. Option B is wrong because multi-region storage affects data locality and latency, not memory pressure during query processing. Option C is wrong because using too many slots in a reservation would provide more compute resources, reducing the likelihood of spilling, not causing it.

16
MCQmedium

An analyst has a BigQuery table `events.clicks` with columns `event_ts`, `country`, and `clicks`. They want a Looker Studio time series that shows a rolling 7-day average of clicks per country, updating as new data lands. The analyst wants the rolling calculation to happen in the database rather than in the visualization. What is the most appropriate approach?

A.Enable BI Engine on the dataset and let it derive the rolling average automatically.
B.Add a date range filter to the time series and rely on Looker Studio's built-in comparison to prior period.
C.Define a calculated field in Looker Studio using a moving average function on the clicks metric.
D.Create a BigQuery view or scheduled query that computes the 7-day rolling average with a window function, then point the report at it.
AnswerD

A window function such as AVG over a 7-day range computes the rolling average inside BigQuery, and a view or scheduled query exposes that result to Looker Studio. This places the calculation in the database as requested and keeps the time series current as new events arrive, which is exactly what the analyst asked for.

Why this answer

Pushing the rolling average into BigQuery with a window function and exposing it through a view or scheduled query keeps the computation in the database and lets the Looker Studio time series stay current. Date comparison, visualization calculated fields, and BI Engine do not compute a database-side 7-day moving average.

Exam trap

The trap here is reaching for a visualization-layer calculated field for a rolling window, when the scenario explicitly requires the calculation to run in the database.

17
MCQmedium

When creating a dashboard in Looker Studio, which connector type allows you to connect to an arbitrary SQL query?

A.Direct table link.
B.LookML model connector.
C.Spreadsheet connector.
D.Custom query.
AnswerD

A custom query connector executes your own SQL against the underlying database, returning the result set as a data source. This directly satisfies the stem's requirement for an arbitrary SQL query, unlike fixed-schema connectors such as BigQuery tables or Google Sheets, which expose predefined tables or ranges rather than free-form SQL.

Why this answer

The Custom Query connector in Looker Studio lets you paste an arbitrary SQL statement and use its result set as a data source, which is exactly what is needed when no single table or view provides the required shape. It supports parameters and works against BigQuery, Cloud SQL, and other SQL-backed sources.

Exam trap

GCP-ADP often tests the confusion between Looker Studio and Looker — candidates pick the LookML connector, but LookML is a Looker (not Looker Studio) concept, and only Custom Query accepts arbitrary SQL.

How to eliminate wrong answers

Option A is wrong because a direct table link only exposes a single table's columns and cannot express joins, aggregations, or filters in SQL. Option B is wrong because the LookML model connector is specific to Looker (the BI platform), not Looker Studio, and requires a Looker instance with a defined model. Option C is wrong because the Spreadsheet connector reads Google Sheets data and does not accept SQL queries.

18
MCQhard

A data analyst needs to create a Looker Studio report that shows sales data filtered by region. The report must allow users to select one or more regions from a drop-down menu, and the selection should update all charts on the page. Which control should be added to the report?

A.A data control that allows users to switch between different data sources.
B.A date range control with a custom date dimension.
C.A chart-level filter applied to each chart individually.
D.A filter control with the region dimension as the control field.
AnswerD

A filter control allows viewers to select values from a dimension, and the selection applies to all charts on the page that use that data source. Using the region dimension as the control field enables multi-select and updates all charts, meeting the requirement exactly. This is the standard way to add interactive filtering.

Why this answer

A filter control is designed for interactive filtering by dimension values and applies to all charts on the page that share the same data source. Using the region dimension allows multi-select and dynamically updates visualizations, directly fulfilling the requirement for a drop-down that filters all charts.

Exam trap

The trap here is confusing a data control with a filter control; the former changes the data source, while the latter filters based on dimension values.

19
Multi-Selecteasy

Which TWO of the following are valid ways to visualize BigQuery data within the Google Cloud ecosystem?

Select 2 answers
A.Cloud Storage
B.Pub/Sub
C.Looker Studio
D.Bigtable
E.Looker
AnswersC, E

Looker Studio is Google Cloud's native BI and dashboarding service, connecting directly to BigQuery datasets as a data source. This satisfies the stem's requirement for a valid way to visualise BigQuery data within the Google Cloud ecosystem.

Why this answer

Looker Studio (option C) is a valid visualization tool because it natively connects to BigQuery as a data source, letting you build interactive dashboards and reports directly from BigQuery tables or custom SQL queries. Looker (option E) is also correct since it is Google Cloud's enterprise BI platform that uses LookML models to query BigQuery and render dashboards, charts, and embedded analytics. The other options are not visualization tools: Cloud Storage (A) is an object storage service, Pub/Sub (B) is an asynchronous messaging service, and Bigtable (D) is a NoSQL wide-column database, none of which provide data visualization capabilities.

Exam trap

GCP-ADP often tests the distinction between data storage/processing services and data visualization services, causing candidates to mistakenly select Cloud Storage or Bigtable because they are part of the data pipeline, not the visualization layer.

20
Multi-Selecthard

You are building a Looker Studio report connected to a BigQuery table that contains billions of rows. The report includes several charts and filters. Users report that the report is slow to load and that changing a filter takes a long time. Which TWO actions should you take to improve performance? (Choose two.)

Select 2 answers
A.Increase the data freshness setting to 24 hours to reduce the number of queries.
B.Extract the data into a Looker Studio extract and schedule daily refreshes.
C.Add more filters to the report to narrow down the data before charts load.
D.Enable BigQuery BI Engine and reserve memory for the dataset.
E.Create a materialized view in BigQuery that pre-aggregates the data at the required granularity and connect Looker Studio to that view.
AnswersD, E

BI Engine is an in-memory analysis service that accelerates queries on BigQuery data. By reserving memory for the dataset, Looker Studio queries can be served from memory, drastically reducing latency for interactive charts and filters. This directly addresses slow report performance for large datasets.

Why this answer

For large BigQuery datasets, slow Looker Studio performance is best addressed by reducing query latency and data scanned. BigQuery BI Engine provides in-memory acceleration for interactive queries, while a materialized view pre-aggregates data to minimize processing. Both directly improve chart load and filter responsiveness.

Other options either do not address query speed or are impractical for billions of rows.

Exam trap

The trap here is assuming that reducing refresh frequency or adding filters will speed up an already slow query, when the real issue is the amount of data processed per query.

21
Multi-Selectmedium

Which THREE features does Looker offer to support data governance?

Select 3 answers
A.Automated email subject line generation
B.Custom chart color themes
C.Centralized LookML modeling
D.Content access controls
E.Audit logs for tracking activity
AnswersC, D, E

Centralised LookML modelling enforces governance by defining dimensions, measures and business logic once in a Git-versioned repository, so every report and dashboard inherits identical definitions. This satisfies the stem's requirement for consistent, auditable data definitions across the organisation, eliminating duplicated logic and drift between teams.

Why this answer

Looker supports data governance through centralized LookML modeling (C), because defining dimensions, measures, and business logic once in LookML creates a single source of truth that enforces consistent metric definitions across all Explores and dashboards. Content access controls (D) are correct because Looker provides role-based permissions, groups, and folder/content-level access settings that restrict who can view, edit, or manage data and dashboards. Audit logs for tracking activity (E) are correct because Looker's audit and system activity logs record user actions, queries, and content access, which is essential for compliance, monitoring, and accountability.

Automated email subject line generation (A) and custom chart color themes (B) are merely presentation or scheduling conveniences and have no bearing on governing data definitions, access, or usage tracking.

Exam trap

GCP-ADP often tests the distinction between governance features and cosmetic or performance features, and candidates may select options that are not directly related to governance.

22
Multi-Selecthard

Which THREE of these are valid ways to monitor or analyze BigQuery performance?

Select 3 answers
A.Query Plan explanation
B.INFORMATION_SCHEMA.JOBS_BY_PROJECT
C.Editing the table schema
D.Changing the project billing currency
E.BigQuery Monitoring dashboard in Cloud Console
AnswersA, B, E

Query Plan explanation exposes the execution graph, showing per-stage timing, shuffle and spill volumes, and row counts, so you can pinpoint the exact stage causing slowness. It satisfies the stem's requirement for a valid BigQuery performance analysis method, since the plan is generated from actual execution statistics rather than estimates.

Why this answer

Option A (Query Plan explanation) is correct because BigQuery's query execution plan, viewable in the Cloud Console or via the EXPLAIN statement, shows the stages, steps, and timing of a query so you can identify performance bottlenecks such as shuffles or expensive joins. Option B (INFORMATION_SCHEMA.JOBS_BY_PROJECT) is correct because this view exposes job metadata including query text, total bytes processed, slot milliseconds, and elapsed time, enabling historical performance analysis and cost attribution. Option E (BigQuery Monitoring dashboard in Cloud Console) is correct because it surfaces Cloud Monitoring metrics such as query execution time, slot usage, bytes processed, and concurrent jobs, giving real-time visibility into workload performance.

Option C (Editing the table schema) is not a monitoring or analysis method; schema changes affect data structure and can influence performance but do not themselves observe or analyze it. Option D (Changing the project billing currency) is purely a billing configuration action and has no bearing on query performance monitoring or analysis.

Exam trap

GCP-ADP often tests the misconception that schema or billing changes affect performance monitoring — only query plan, INFORMATION_SCHEMA, and the Monitoring dashboard provide actual observability.

23
Multi-Selectmedium

Which THREE items can be added to a Looker Studio report to enhance interactivity?

Select 3 answers
A.Drop-down filter
B.Company logo
C.Slider control
D.Text block
E.Date range control
AnswersA, C, E

A drop-down filter adds interactivity by letting viewers select dimension values that immediately constrain every chart bound to that data source. This satisfies the stem's requirement for interactive report elements, since filtering dynamically re-queries the underlying data rather than displaying a static, pre-rendered view.

Why this answer

A drop-down filter is correct because it is an interactive control that lets report viewers select one or more dimension values to filter the charts and tables on the page. A slider control is correct because it provides an interactive numeric range selector that viewers can drag to filter data bound to a metric or parameter. A date range control is correct because it lets viewers interactively change the time period applied to the report's charts, driving the displayed data.

The company logo and text block are not correct because they are static presentation elements used for branding or descriptive copy and do not provide any interactive filtering or data selection capability.

Exam trap

GCP-ADP often tests the difference between interactive controls (filters, sliders, date ranges) and static elements (logos, text blocks) — candidates may pick text blocks thinking they add 'interactivity' via commentary.

24
MCQeasy

A team wants to display a BigQuery query result inside a Google Sheets spreadsheet so non-technical staff can view the latest figures. The data must refresh automatically each morning without anyone opening the sheet and clicking a refresh button. What should the team configure?

A.Create a BigQuery scheduled query that emails the results as a PDF.
B.Use the Connected Sheets feature with a scheduled refresh of the BigQuery data source.
C.Export the BigQuery table to a CSV file in Cloud Storage and link the sheet to that file.
D.Paste the query results as static values into the sheet each morning.
AnswerB

Connected Sheets links a Google Sheets tab to a BigQuery data source and supports scheduled refreshes, so the data updates each morning without manual intervention. This directly meets the requirement that non-technical staff see current figures automatically, and it retains the live connection so the numbers stay aligned with the BigQuery table.

Why this answer

Connected Sheets maintains a live connection from a Sheets tab to a BigQuery data source and supports scheduled refreshes, so the figures update each morning automatically. Static pastes, CSV exports, and emailed PDFs all fail to deliver unattended, continuously current data in the spreadsheet.

Exam trap

The trap here is treating any recurring export as equivalent to a scheduled refresh of a live Sheets connection, when exports produce snapshots rather than updating data.

25
MCQeasy

You are working in a Vertex AI Workbench notebook and want to list the files in your current working directory. What command should you run?

A.find .
B.dir
C.list_files()
D.!ls
AnswerD

Prefixing a shell command with an exclamation mark executes it in the notebook's underlying shell rather than as Python, so !ls lists the current working directory's files. This is the standard Jupyter-based mechanism in Vertex AI Workbench.

Why this answer

In a Vertex AI Workbench notebook (Jupyter-based), shell commands are executed by prefixing them with an exclamation mark (!). Therefore, !ls runs the Linux ls command in the notebook's underlying VM and lists the files in the current working directory. This is the standard Jupyter/IPython syntax for invoking shell commands from a code cell.

Exam trap

GCP-ADP often tests whether candidates know the Jupyter/IPython shell escape syntax (!) versus assuming standard Python functions or OS-specific commands like dir will work in a Linux-based notebook environment.

How to eliminate wrong answers

Option A is wrong because find . is a shell command that would need the ! prefix to run in a notebook, and it recursively searches for files rather than simply listing the current directory. Option B is wrong because dir is a Windows command that is not available in the Linux-based Workbench VM and would not work even with the ! prefix. Option C is wrong because list_files() is not a built-in Python or Workbench function; it would raise a NameError unless explicitly defined.

26
MCQeasy

A junior analyst has written a BigQuery SQL statement that joins an orders table to a customers table and then aggregates total spend per customer. Before running it against production data, the analyst wants to confirm the query is syntactically valid and to see estimated bytes processed without incurring charges for scanning the full tables. What should the analyst do?

A.Run the query with the BigQuery dry run option enabled to validate syntax and view the estimated bytes processed.
B.Query the INFORMATION_SCHEMA.JOBS view to inspect prior executions of similar queries and their bytes billed.
C.Create a materialized view over the join and inspect its refresh statistics before querying it.
D.Run the query against a small sample table created with SELECT * LIMIT 100 to approximate the result.
AnswerA

BigQuery dry runs parse and validate the SQL, resolve table and column references, and return an estimate of bytes processed without actually executing the query or incurring scan charges. This lets the analyst catch syntax or reference errors and judge cost before committing to a real run. It directly matches the goal of validation plus cost estimation on production tables.

Why this answer

A dry run in BigQuery performs full SQL validation, including table and column resolution, and returns the estimated bytes processed without executing the statement or billing for data scanned. That makes it the appropriate pre-flight check for syntax and cost. Sampling data, inspecting job history, or building a materialized view all require execution or answer a different question.

Exam trap

The trap here is believing that adding a LIMIT clause reduces bytes processed, when BigQuery still scans the referenced columns and the estimate becomes unreliable.

27
MCQhard

A BigQuery table has 10 billion rows. You notice a query performing a cross-join is timing out. What should you do?

A.Replace the cross-join with a specific JOIN condition.
B.Use a wildcard table.
C.Cache the results in BigQuery.
D.Increase the number of slots.
AnswerA

Replacing the cross-join with a specific JOIN condition eliminates the Cartesian product, reducing the intermediate result from 10 billion squared rows to only matching pairs. This directly addresses the timeout constraint, since BigQuery's distributed shuffle cannot materialise such an explosive intermediate dataset within the query's execution limits.

Why this answer

A cross-join produces the Cartesian product of two tables — with 10 billion rows, even a modest second table explodes the result set and causes the query to time out. The correct fix is to replace the cross-join with a proper JOIN that includes a specific join condition (ON clause), which restricts the output to matching rows and dramatically reduces the data processed.

Exam trap

GCP-ADP often tests whether candidates reach for infrastructure scaling (more slots) or caching when the real issue is a logically incorrect query — the trap is treating a SQL design flaw as a resource problem.

How to eliminate wrong answers

Option B is wrong because wildcard tables are used to query multiple tables matching a pattern (e.g., table_*), which does not address the Cartesian explosion caused by a cross-join. Option C is wrong because caching results only helps subsequent identical queries and does nothing to fix the initial timeout or the underlying inefficient join. Option D is wrong because increasing slots adds compute capacity but cannot make a Cartesian product of 10 billion rows feasible — the query is logically flawed, not resource-starved.

28
MCQeasy

You have a Looker Studio report that uses a BigQuery data source. You need to add a chart that shows the total number of orders per day for the last 30 days. The date field is named `order_date`. Which chart type and dimension setup should you use?

A.A time series chart with `order_date` as the dimension and a record count metric.
B.A bar chart with `order_date` as the dimension and a record count metric.
C.A scorecard with `order_date` as the dimension and a record count metric.
D.A pie chart with `order_date` as the dimension and a record count metric.
AnswerA

A time series chart is designed to display data over time, with the date field as the dimension. Using `order_date` as the dimension and a record count metric (e.g., COUNT(*)) will show the number of orders per day. This directly meets the requirement of total orders per day for the last 30 days.

Why this answer

To visualize a daily trend, a time series chart is the correct choice. It uses a date dimension on the x-axis and a metric on the y-axis, automatically handling date granularity and ranges. A record count metric counts the number of orders per day.

Other chart types either do not show trends or are unsuited for time-based data.

Exam trap

The trap here is choosing a bar chart because it looks similar, but bar charts treat dates as categories and lack the continuous time axis and date range handling of a time series chart.

29
MCQeasy

You need to create a visualization in Looker Studio that shows the proportion of total sales by product category. Which chart type is most appropriate?

A.Pie chart
B.Scorecard
C.Time series chart
D.Geo chart
AnswerA

A pie chart displays data as slices of a whole, making it ideal for showing proportions or percentages of a total. With product category as the dimension and sales as the metric, each slice represents a category's share of total sales. This directly fulfills the requirement to show proportion.

Why this answer

A pie chart is specifically designed to show parts of a whole, with each slice representing a category's contribution to the total. When configured with product category as the dimension and sales as the metric, it visually communicates the proportion of total sales for each category, which is exactly what the scenario requires.

Exam trap

The trap here is selecting a chart that can display sales by category but not proportions, such as a bar chart, which shows absolute values rather than relative shares.

30
MCQmedium

Your team stores customer feedback in a BigQuery table with a column `feedback_text`. You need to count how many times each of the words 'fast', 'slow', and 'broken' appears across all feedback rows. You want to run this as a single SQL query in BigQuery. Which approach should you use?

A.Use the `ML.NGRAMS` function from BigQuery ML to tokenize the text and then count the n-grams.
B.Use the `REGEXP_EXTRACT_ALL` function with a pattern that matches each target word, then unnest the resulting array and group by the extracted word.
C.Use the `SPLIT` function on each feedback_text row with a space delimiter, then use `UNNEST` and filter with a `WHERE` clause for the three words.
D.Use `COUNTIF` with three separate conditions in a single SELECT statement, such as `COUNTIF(feedback_text LIKE '%fast%')`.
AnswerB

REGEXP_EXTRACT_ALL returns an array of all non-overlapping matches for a pattern, so specifying a pattern like `(fast|slow|broken)` captures each occurrence. Unnesting the array turns each match into a row, and grouping by the extracted word yields the count per word across all feedback rows. This is a standard BigQuery pattern for word-frequency analysis in a single query.

Why this answer

To count every occurrence of specific words across all feedback rows, you need a method that extracts each match individually and then aggregates. REGEXP_EXTRACT_ALL with a pattern matching any of the target words returns an array of all matches per row; unnesting and grouping by the extracted word gives the total count per word. This handles multiple occurrences per row and punctuation correctly.

Exam trap

The trap here is assuming that counting rows containing a word is the same as counting the number of times the word appears, which leads to undercounting when a word repeats within a single row.

31
MCQhard

A financial analyst needs a Looker Studio report that displays the same revenue chart but filtered by a different region on each of four pages, without duplicating the underlying BigQuery data source. The report currently uses one chart that reads from a BigQuery view. What should the analyst do to reuse the chart across pages with different region filters?

A.Create four separate BigQuery views, one per region, and add a chart for each view on its own page.
B.Add a report-level filter for region and let each page inherit it, then rely on page-level filter overrides.
C.Create a reusable chart as a component in the report's component library, then place it on each page and bind a page-specific region filter.
D.Use a blend between the BigQuery view and a manually entered region parameter table, then add a parameter control per page.
AnswerC

Looker Studio supports reusable components that can be placed on multiple pages while each instance retains page-level filter controls. This keeps a single chart definition linked to the BigQuery data source, so the revenue logic lives in one place. Each page's region filter narrows that page's instance independently, satisfying the requirement without duplicating the data source or the view.

Why this answer

Reusable components let a single chart definition be placed on several pages while each placement keeps its own page-level filter controls. Because the component stays bound to the same BigQuery data source, revenue logic is maintained once and each page can target a different region. Duplicating views or relying on report-level filters either multiplies maintenance or forces one filter across all pages.

Exam trap

The trap here is assuming that report-level filters can be scoped per page, when in fact they propagate to every page and cannot produce four different regions from one control.

32
MCQmedium

A retail analytics team stores point-of-sale transactions in a BigQuery table named `sales.transactions` that is partitioned by a DATE column called `transaction_date`. An analyst must produce a report showing only the transactions from the previous calendar month, and the report will be refreshed on the first day of every month. Which query pattern most efficiently retrieves the required data while minimizing bytes processed?

A.SELECT * FROM sales.transactions WHERE transaction_date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE()
B.SELECT * FROM sales.transactions WHERE EXTRACT(MONTH FROM transaction_date) = EXTRACT(MONTH FROM DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH))
C.SELECT * FROM sales.transactions WHERE transaction_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)
D.SELECT * FROM sales.transactions WHERE transaction_date >= DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH) AND transaction_date < DATE_TRUNC(CURRENT_DATE(), MONTH)
AnswerD

This filter computes the first day of the previous month and the first day of the current month, giving an exact previous-calendar-month range. Both bounds are constant expressions on the partition column, so BigQuery prunes to only the relevant date partitions, minimizing bytes processed. It also correctly excludes the current month's data, which matches the monthly refresh requirement.

Why this answer

Filtering a partitioned table with a range comparison on the partition column lets BigQuery scan only the partitions that satisfy the predicate. Computing the previous month's first day and the current month's first day as constant bounds produces an exact calendar-month window and enables partition pruning, keeping bytes processed low. Functions applied to the partition column or rolling date arithmetic break pruning or return the wrong period.

Exam trap

The trap here is assuming that any WHERE clause on a partitioned column automatically prunes partitions, when wrapping the column in a function or using rolling intervals silently disables pruning or shifts the date range.

33
Multi-Selecthard

Which TWO actions can help reduce the time it takes to build a Jupyter notebook in Vertex AI Workbench?

Select 2 answers
A.Scaling up the machine type for the instance
B.Change the project name
C.Disable the persistent disk
D.Using custom container images with pre-installed packages
E.Using a single-core machine
AnswersA, D

Scaling up the machine type allocates more vCPUs and memory to the Workbench instance, accelerating notebook build, kernel startup, and package installation. This directly reduces build time when the bottleneck is compute or memory resources.

Why this answer

Option A is correct because scaling up the machine type for the Vertex AI Workbench instance allocates more vCPUs and RAM, which directly speeds up compute-intensive notebook build and execution tasks such as model training or data processing. Option D is correct because using custom container images with pre-installed packages eliminates the time spent installing dependencies at notebook startup, reducing overall build time. Option B is incorrect because the project name has no effect on notebook build performance.

Option C is incorrect because disabling the persistent disk would remove storage needed for the notebook environment and data, not improve build speed. Option E is incorrect because a single-core machine provides less compute capacity and would slow down, not reduce, build time.

Exam trap

GCP-ADP often tests the misconception that cosmetic or storage changes (project name, persistent disk) affect performance, when only compute sizing and pre-baked dependencies actually reduce build time.

34
MCQeasy

In BigQuery, what does the 'Data Preview' tab show?

A.The edit history of the table.
B.A sample of the table data.
C.The billing usage for that table.
D.The full schema definition.
AnswerB

Data Preview reads a limited number of rows from the table so analysts can inspect schema and sample values without running a query or incurring scan costs. This satisfies the stem by showing representative table data rather than full results or metadata.

Why this answer

The Data Preview tab in BigQuery shows a sample of the table data. It allows you to quickly inspect the first few rows of a table without running a query, which is useful for understanding the data structure and content.

Exam trap

GCP-ADP often tests the difference between the Data Preview tab and other tabs like Schema or Details, and candidates may confuse it with query results or billing information.

How to eliminate wrong answers

Option A is wrong because the edit history of the table is not shown in the Data Preview tab; that information is available in the table's details or audit logs. Option C is wrong because billing usage for a table is not displayed in the Data Preview tab; billing information is available in the Billing section or via the INFORMATION_SCHEMA. Option D is wrong because the full schema definition is shown in the Schema tab, not the Data Preview tab.

35
MCQhard

In BigQuery, you want to improve query performance for a table that is frequently filtered by a `customer_id` column. What is the recommended strategy?

A.Add a primary key constraint.
B.Cluster the table by 'customer_id'.
C.Convert the table to a View.
D.Increase the number of slots in the reservation.
AnswerB

Clustering physically sorts data by customer_id, so filters on that column scan only relevant blocks rather than the whole table. This directly satisfies the stem's requirement to improve performance for frequent customer_id filtering, and unlike partitioning, clustering suits high-cardinality columns where per-value partitions would be impractical.

Why this answer

Clustering a BigQuery table by customer_id physically sorts the data by that column, so queries with filters on customer_id can prune blocks and scan far less data. This is the recommended strategy for improving filter performance on a frequently queried column. Clustering is especially effective for high-cardinality columns and works well with partitioning.

Exam trap

The trap is assuming BigQuery supports primary keys for performance — candidates familiar with traditional RDBMS pick the primary key option, but BigQuery's PKs are not enforced and do not optimize scans.

How to eliminate wrong answers

Option A is wrong because BigQuery does not enforce primary key constraints (it supports NOT ENFORCED primary keys for metadata only, which do not improve query performance). Option C is wrong because a view is just a saved query and does not change the underlying storage or scan efficiency. Option D is wrong because increasing slots adds compute capacity but does not reduce the amount of data scanned, which is the primary driver of query cost and performance for filtered queries.

36
MCQmedium

A data analyst is building a Looker Studio report connected to a BigQuery table. The report needs to display data for the last 30 days, but the underlying table is updated daily at midnight. Which approach ensures the report always shows the most recent 30 days without manual intervention?

A.Create a date range dimension in the report and set a default date range of 'Last 30 days'.
B.Add a filter to the report that explicitly selects the start and end dates for the current month.
C.Use a BigQuery scheduled query to materialize the last 30 days into a new table and connect the report to that table.
D.Create a calculated field that subtracts 30 days from the current date and use it as a filter.
AnswerA

Setting a default date range of 'Last 30 days' on a date dimension makes the report automatically filter data relative to the current date each time it loads. Since the underlying table is updated daily, the report will always reflect the most recent 30 days without any manual changes. This is the standard, dynamic solution in Looker Studio.

Why this answer

The requirement is for a report that dynamically shows the last 30 days without manual intervention. Looker Studio's date range dimension feature allows setting a default range like 'Last 30 days', which recalculates based on the current date each time the report is viewed. This leverages built-in functionality and ensures the report stays current as the BigQuery table updates daily.

Exam trap

The trap here is thinking that a custom calculated field or a scheduled query is necessary to achieve dynamic date filtering, when Looker Studio provides a native date range control that handles this automatically.

37
Multi-Selecthard

You are designing a Looker Studio report for a sales team. The report must allow users to filter data by region and product category, and also drill down from country to city. Which two features should you implement to meet these requirements? (Choose two.)

Select 2 answers
A.Enable drill-down on a geo chart by adding a hierarchy of country and city dimensions, and set the chart to allow drill-down.
B.Add a drop-down control for region and another for product category, and set them to apply to all charts on the page.
C.Use a blend to combine region and product category data, and add a filter control for the blended data source.
D.Add a date range control and a dimension filter for region, and set the chart to display city-level data by default.
E.Create a parameter for region and product category, and use it in calculated fields to filter the data.
AnswersA, B

Drill-down functionality allows users to click on a data point (e.g., a country) to see more detailed data (e.g., cities within that country). By configuring a geo chart with a hierarchy of country and city, and enabling drill-down, users can navigate from a high-level view to a detailed view. This directly satisfies the drill-down requirement.

Why this answer

To filter by region and product category, drop-down controls are the standard interactive elements. To drill down from country to city, a geo chart with a drill-down hierarchy is required. These two features together provide the necessary interactivity and detail.

The other options either use less appropriate mechanisms (parameters, blends) or do not address both requirements.

Exam trap

The trap here is confusing parameters with filter controls; parameters are for input, not for interactive filtering, and they don't provide drill-down.

38
MCQhard

A data analyst is using BigQuery ML to create a linear regression model to predict customer lifetime value based on historical data. After training the model, they want to evaluate its performance. Which BigQuery ML function should they use to get evaluation metrics such as R-squared and mean absolute error?

A.ML.TRAINING_INFO
B.ML.PREDICT
C.ML.FEATURE_INFO
D.ML.EVALUATE
AnswerD

ML.EVALUATE is the correct function to assess the performance of a trained model. For linear regression, it returns metrics like R-squared, mean absolute error, and mean squared error. It compares predicted values against actual values in a dataset, providing a quantitative evaluation of model accuracy.

Why this answer

To evaluate a BigQuery ML model, ML.EVALUATE is the appropriate function. It computes standard metrics for the model type, such as R-squared and mean absolute error for linear regression. ML.PREDICT generates predictions, ML.TRAINING_INFO shows training progress, and ML.FEATURE_INFO describes input features, none of which provide the required evaluation metrics.

Exam trap

The trap here is confusing prediction with evaluation, leading to the selection of ML.PREDICT when metrics are needed.

39
Multi-Selecthard

A data analyst must present BigQuery results to executives in a way that lets them explore trends by region and product without writing SQL. The team is standardizing on Google Cloud tools and wants the presentation layer to query BigQuery directly. Which two Google Cloud components should the analyst combine to meet these requirements? (Choose two.)

Select 2 answers
A.BigQuery BI Engine to accelerate the queries that back the dashboard.
B.Looker Studio with a BigQuery data source and interactive filter controls.
C.A Looker Studio report built on a manually uploaded CSV exported from BigQuery.
D.Cloud Dataflow to stream the results into a Pub/Sub topic for executives.
E.Cloud SQL as the presentation database, with Looker Studio reading from it.
AnswersA, B

BI Engine provides an in-memory analysis layer that accelerates BigQuery queries used by dashboards, keeping interactive filtering responsive for executives. Combined with a Looker Studio report over BigQuery, it satisfies the performance side of the requirement while preserving the direct query path to BigQuery data.

Why this answer

Looker Studio over BigQuery gives executives interactive, no-SQL filtering by region and product while querying BigQuery directly, and BigQuery BI Engine accelerates those dashboard queries for responsiveness. CSV exports break the live connection, while Cloud SQL and Dataflow with Pub/Sub are not presentation layers suited to executive exploration.

Exam trap

The trap here is pairing a legitimate visualization tool with an unrelated pipeline service, when the scenario actually calls for a query-acceleration layer alongside the dashboard.

40
Multi-Selecthard

A data engineer is building a Looker Studio report connected to a BigQuery table. The report must allow viewers to dynamically change the date range and filter data by region without editing the report. The engineer wants to add interactive controls. Which two components should be added to the report to meet these requirements? (Choose two.)

Select 2 answers
A.Calculated field
B.Scorecard with conditional formatting
C.Drop-down list control
D.Date range control
E.Data blending
AnswersC, D

A drop-down list control lets viewers select one or more values from a dimension, such as region, to filter the data displayed in charts. This meets the requirement to filter by region dynamically. It is a common interactive control in Looker Studio and can be linked to multiple charts.

Why this answer

To enable viewers to change the date range and filter by region without editing the report, interactive controls are needed. A date range control provides a calendar picker for date filtering, and a drop-down list control allows selection of dimension values like region. Calculated fields, scorecards, and data blending are not interactive controls and do not fulfill the dynamic filtering requirements.

Exam trap

The trap here is assuming that any report element that manipulates data can serve as an interactive control, when only specific control components provide viewer-driven filtering.

41
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.

42
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.

43
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.

44
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.

45
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.

46
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.

47
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.

48
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.

49
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.

50
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.

51
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.

52
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.

53
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.

54
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.

55
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.

56
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.

57
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.

58
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.

59
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.

60
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.

61
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.

62
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.

63
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.

64
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.

65
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.

66
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.

67
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

68
MCQeasy

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

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

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

Why this answer

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

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

Exam trap

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

69
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

70
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

71
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

72
MCQhard

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

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

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

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

73
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

74
MCQhard

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

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

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

Why this answer

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

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

Exam trap

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

75
MCQhard

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

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

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

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

Page 1 of 2 · 76 questions totalNext →

Ready to test yourself?

Try a timed practice session using only Data Analysis And Presentation questions.