All Google Cloud exams

Free Associate Data Practitioner practice test: 30 questions with answers

30 original questions for Associate Data Practitioner, drawn from every topic area. Answer each one to see whether you got it right and why. No sign-up.

Free questions
30
Full bank
112 questions
Real exam
120 min

Associate Data Practitioner exam guide: topics, cost and format

All 30 Associate Data Practitioner questions with answers

The same questions as the test above, grouped by exam topic. Open any question to see the answer and explanation.

Prepare and ingest data (8 questions)

  1. Question 1

    A web team wants clickstream events to appear in BigQuery dashboards within seconds of each page view. Which ingestion design meets this requirement?

    1. AFederated query that reads the application's Cloud SQL database directly
    2. BNightly batch load of CSV exports from Cloud Storage into BigQuery
    3. CScheduled query that copies the full events table every hour
    4. DPub/Sub topic with a streaming Dataflow job writing to BigQuery
    Show answer and explanation
    Correct answer: D

    Sub-minute freshness needs a streaming path, and Pub/Sub with a streaming Dataflow pipeline is the standard managed design for it. Nightly loads and hourly copies cannot meet a seconds-level requirement. The Cloud SQL federated query is the tempting wrong answer, but it reads the operational database, adds load to it, and is not a streaming ingestion pattern.

  2. Question 2

    A partner's CSV file stores some dates as 03/04/2025 and others as 2025-04-03. The target BigQuery column is a DATE type. What should the practitioner do first?

    1. AStandardise dates to ISO 8601 in a transform step before the load
    2. BLoad the column as STRING and let each analyst cast it in their own query
    3. CSet max_bad_records to a high number so the load job always completes
    4. DEnable allow_jagged_rows on the load job so malformed dates are skipped
    Show answer and explanation
    Correct answer: A

    Standardising to ISO 8601 before the load makes the column consistent and loadable into a DATE type, so every downstream query behaves the same way. Loading as STRING pushes the cleanup onto every analyst and invites inconsistent results. Raising max_bad_records only hides rejected rows, and allow_jagged_rows concerns rows with missing or extra columns, not date formats.

  3. Question 3

    A join between a sales table and a customer table drops about 4% of sales rows because customer_id is null for some records. What is the best next step?

    1. AProfile the null rate, quarantine null-key rows, and log the count
    2. BUse an INNER JOIN and accept the dropped rows without any reporting
    3. CReplace null customer IDs with zero in the source system before ingestion
    4. DCast customer_id to FLOAT64 so the null values become NaN in the output
    Show answer and explanation
    Correct answer: A

    Profiling the null rate and quarantining rows with a missing key keeps the failure visible, lets you count it, and lets the business decide how to treat those sales. An INNER JOIN drops them without a trace, and inventing zero IDs creates false matches. Casting to FLOAT64 does not make a missing key joinable.

  4. Question 4

    A data practitioner must pull JSON from a SaaS API every 15 minutes. Which THREE design choices reduce the impact of failures? (Choose three.)

    1. AStore the pagination cursor so a rerun resumes where the previous run stopped
    2. BTurn off error logging to keep Cloud Logging costs down
    3. CWrite raw API responses to Cloud Storage before any transformation runs
    4. DRetry with exponential backoff on HTTP 429 and 5xx responses
    5. EInfer the schema fresh on every run so new fields are picked up silently
    Show answer and explanation
    Correct answer: A, C, D

    A saved cursor allows a restart without re-pulling everything, and keeping raw responses lets you reprocess after a transformation bug without calling the API again. Backoff on rate limits and server errors helps transient failures succeed. Turning off logging hides failures, and silent schema inference lets bad or unexpected data reach the target.

  5. Question 5

    A staging table received duplicate order records because an upstream retry resent batches. Each duplicate has a different ingestion timestamp. Which query removes the duplicates correctly?

    1. ASELECT DISTINCT over every column, including the ingestion timestamp column
    2. BEnable clustering on order_id so that duplicate rows collapse into one block
    3. CROW_NUMBER over order_id by ingestion time descending, keeping row 1
    4. DGroup by order_id and sum the amount column across the duplicate rows
    Show answer and explanation
    Correct answer: C

    Partitioning the rows by the business key and keeping the most recent one removes repeats even when their ingestion timestamps differ. SELECT DISTINCT including the timestamp keeps every duplicate because each has a different value. Clustering only changes physical layout, and summing amounts double-counts the orders.

  6. Question 6

    Parquet files land in a Cloud Storage bucket and must be queried in BigQuery without copying the data into BigQuery storage. Which approach fits?

    1. AStream the files row by row through the BigQuery insertAll API
    2. BLoad the files with bq load using CSV format and delete the Parquet originals
    3. CCreate an external table over the Parquet files in Cloud Storage
    4. DCopy the bucket to a second regional bucket and query the copy
    Show answer and explanation
    Correct answer: C

    An external table reads the Parquet files where they sit, so no second copy is stored in BigQuery. Loading as CSV would misread the binary Parquet format, and streaming row by row is a write path that duplicates data. Copying the bucket adds storage rather than avoiding it.

  7. Question 7

    Messages from IoT devices arrive through Pub/Sub out of order, and the pipeline must keep the latest reading per device. Which TWO approaches are correct? (Choose two.)

    1. AKeep the record with the greatest event timestamp for each device identifier
    2. BKeep the message the subscriber received most recently for each device
    3. CProcess messages in the order the subscriber prints them to its log file
    4. DSort messages by message ID alphabetically and keep the last one per device
    5. EUse event-time windows so late messages are assigned to the window they belong to
    Show answer and explanation
    Correct answer: A, E

    Event time, not arrival time, decides which reading is latest, so the greatest event timestamp wins. Event-time windowing places late messages in the period they describe. Keeping the most recently received message can keep an older reading that arrived late, and log or message ID order has no relation to when a device reported.

  8. Question 8

    A vendor starts adding new columns to its daily file without notice. The pipeline should keep running and protect the target table. Which handling is most appropriate?

    1. AQuarantine any file whose schema differs from the expected one, and alert the data owner
    2. BDelete the target table and recreate it every night so the schema always matches
    3. CRename every existing column to match the names in the new file
    4. DAllow the load to add new columns automatically and fail the job on any type change
    Show answer and explanation
    Correct answer: A

    Quarantining an unexpected schema keeps the target stable and makes the change visible to the owner, who can then decide how to adopt it. Automatic addition on a load is risky for uncontrolled changes, though it is valid in some pipelines. Renaming columns breaks existing queries, and recreating the table every night loses history.

Analyze and present data (8 questions)

  1. Question 9

    A sales dashboard reads a raw events table that is partitioned by day and has years of history, so it is slow and expensive. Which TWO actions help? (Choose two.)

    1. AConnect the dashboard directly to the raw events table with no filters applied
    2. BSchedule a query that materialises a daily aggregate into a reporting table
    3. CExport the dashboard as a PDF attached to a weekly email to the sales team
    4. DCopy the table to a local spreadsheet every morning before the team starts work
    5. ECreate a view that limits results to the last 90 days and point the dashboard at it
    Show answer and explanation
    Correct answer: B, E

    A scheduled aggregate table reduces the bytes each refresh scans, and a view restricted to a recent window stops the dashboard from reading old partitions. Connecting to the raw table with no filters maximises scan cost, and the PDF and spreadsheet options do not change the query at all.

  2. Question 10

    After adding a join between an orders table and a customer-discounts table, a dashboard shows revenue 18% higher than the source system. The join is one-to-many. What is the most likely cause?

    1. AThe join duplicates order rows before the revenue sum runs
    2. BThe dashboard time zone is set differently from the viewer's browser time zone
    3. CThe dashboard is serving a cached extract from the previous day's refresh
    4. DThe revenue column is stored as FLOAT64 with rounding applied at each row
    Show answer and explanation
    Correct answer: A

    When a one-to-many join runs before an aggregate, each order is repeated once per matching discount row, which inflates the sum. Caching or time zone differences would produce a timing gap rather than a consistent overstatement. FLOAT64 causes small rounding differences, not an 18% increase.

  3. Question 11

    An executive wants to see how monthly revenue for one product changed over the last 24 months. Which chart type is most appropriate?

    1. AA pie chart with one labelled slice for each of the 24 months in the period
    2. BA scatter plot of revenue against the product identifier for every record
    3. CA line chart with month on the x-axis and revenue on the y-axis
    4. DA stacked bar chart that shows every product's revenue for every month
    Show answer and explanation
    Correct answer: C

    A line chart shows change over an ordered time axis, which is what the executive needs. A pie chart compares parts of one whole rather than a trend across 24 periods, and a scatter plot against product identifier has no meaningful ordering. The stacked bar mixes in products the question does not ask about.

  4. Question 12

    A stakeholder reports that average order value rose 20% last month and asks why. Which first step is most appropriate?

    1. APublish the dashboard immediately and ask the sales team to explain the change
    2. BTrain a forecasting model on the previous twelve months before explaining anything
    3. CBreak the metric down by customer segment and channel, against the same period last year
    4. DRemove every order above the 99th percentile without reviewing those orders first
    Show answer and explanation
    Correct answer: C

    Segmenting the metric and comparing against a same-period baseline shows whether the rise is a real change in buying behaviour or just a shift in the mix of customers and channels. A forecasting model does not explain a past change, and publishing before checking invites a wrong story. Removing top-percentile orders without review discards possibly genuine data.

  5. Question 13

    A bar chart compares two regions whose totals differ by about 3%. The vertical axis starts at 80 rather than 0. What is the main risk for the reader?

    1. AThe bars cannot display any value below 80 in this chart
    2. BThe chart will be rejected when it is published to Looker Studio
    3. CThe 3% difference looks much larger than it really is on the page
    4. DThe legend becomes too small for readers to use comfortably
    Show answer and explanation
    Correct answer: C

    A truncated axis exaggerates small differences because bar length is read against the baseline, so readers overestimate the gap. The bars can still show values below 80, the legend is unrelated to the axis, and the publishing tool does not reject charts for this reason.

  6. Question 14

    A dashboard will be used by executives who make budget decisions. Which TWO features make it more trustworthy? (Choose two.)

    1. AEvery metric is shown with the highest available decimal precision
    2. BMetric definitions and their source tables are documented on the dashboard
    3. CA data-freshness timestamp shows when the source tables last loaded
    4. DThe dashboard refreshes every second to show live numbers
    5. EFilters are hidden so users cannot change the date range they see
    Show answer and explanation
    Correct answer: B, C

    Documented definitions and a visible freshness time let executives check what a number means and whether it is current, which builds trust. Extra decimal places imply false precision, hidden filters limit useful checks, and per-second refresh is unnecessary for a budget review and adds load.

  7. Question 15

    To summarise typical household income for a report where a few very high incomes distort the average, which statistic is most suitable?

    1. AThe maximum income recorded
    2. BThe arithmetic mean income
    3. CThe total income across all households
    4. DThe median income
    Show answer and explanation
    Correct answer: D

    The median is the middle value and is not pulled upward by a small number of extreme incomes, so it best represents a typical household here. The mean is the distorted measure the question warns about, the total says nothing about a typical household, and the maximum describes an outlier.

  8. Question 16

    Which TWO statements about partitioning a BigQuery table are correct? (Choose two.)

    1. AA table can be partitioned by ingestion time when no suitable date column exists
    2. BA table can be partitioned on several columns at the same time
    3. CQueries that filter on the partition column scan fewer bytes
    4. DPartitioned tables cannot also be clustered on other columns
    5. EPartitioning removes the need to define a schema for the table
    Show answer and explanation
    Correct answer: A, C

    Ingestion-time partitioning is a valid option when the source has no usable date, and filtering on the partition column lets BigQuery skip the other partitions and so scan fewer bytes. A table has a single partitioning column, and partitioned tables can also be clustered. A schema is still required whatever the partitioning.

Manage data (7 questions)

  1. Question 17

    An analytics table holds customer email addresses next to country and order count. Analysts need country-level counts but must not see emails. Which control is most appropriate?

    1. AGrant analysts Viewer on the dataset and ask them not to select the email column
    2. BApply a policy tag to the email column and restrict it to a privacy group
    3. CEncrypt the email column with a customer-managed key and share the key with analysts
    4. DExport nightly copies with the email column removed and give analysts those copies
    Show answer and explanation
    Correct answer: B

    A policy tag enforces column-level access inside BigQuery, so analysts who lack the Fine-Grained Reader role cannot read the email values even when they query the table. Asking analysts to behave is not a control, and a stripped export creates a second copy that must be maintained. Encryption with a shared key does not restrict who can read the column.

  2. Question 18

    Raw application logs must be kept for seven years for audit, but are almost never read after 90 days. Which configuration minimises storage cost while meeting the retention requirement?

    1. AKeep all objects in Standard storage class indefinitely and never delete any of them
    2. BLifecycle rule to move objects to Archive after 90 days, with a retention lock
    3. CStore the logs in a BigQuery table that expires each partition after 90 days
    4. DMove objects to Nearline after 90 days and delete them automatically after 30 days
    Show answer and explanation
    Correct answer: B

    Archive storage is the lowest-cost class for data that is rarely accessed, and a lifecycle rule moves objects there automatically, while a retention lock stops early deletion. Deleting logs after 30 days would break the seven-year requirement, and expiring the BigQuery partitions after 90 days deletes the audit record too early.

  3. Question 19

    A table of user activity contains personal data that must be deleted automatically after 13 months. Which setup meets the requirement with the least operational effort?

    1. ASchedule a weekly DELETE query that removes rows older than 13 months from an unpartitioned table
    2. BExport the table nightly to Cloud Storage and delete the source rows after each export
    3. CSet the table's time travel window to 13 months so old rows are purged
    4. DPartition the table by event date and set partition expiration to 13 months
    Show answer and explanation
    Correct answer: D

    Partition expiration removes whole old partitions automatically, which is cheap and needs no scheduled job. A weekly DELETE on an unpartitioned table scans the table each time and needs upkeep. BigQuery time travel is limited to seven days, so it cannot be used as a retention control.

  4. Question 20

    A customer_status column must contain only active, paused or closed. Which control best catches bad values before they reach dashboards?

    1. ARenaming the column so that existing dashboards stop referencing it entirely
    2. BA data quality assertion that flags values outside the allowed list
    3. CChanging the column to a free-text STRING so that any value can be stored
    4. DAsking analysts to notice unusual values while they work on their dashboards
    Show answer and explanation
    Correct answer: B

    An assertion in the pipeline checks every load against the allowed list and blocks or flags violations at the point they enter the warehouse. Relying on analysts to spot problems is late and inconsistent. Free text removes the check entirely, and renaming the column does not validate any values.

  5. Question 21

    An analyst needs to run queries against one BigQuery dataset and nothing else. Which set of IAM grants follows least privilege?

    1. AProject Owner on the project
    2. BBigQuery Data Editor on the project plus BigQuery Job User on the project
    3. CBigQuery Admin on the dataset plus BigQuery Job User on the project
    4. DBigQuery Data Viewer on the dataset plus BigQuery Job User on the project
    Show answer and explanation
    Correct answer: D

    Data Viewer on the single dataset allows reading its tables, and Job User lets the analyst run query jobs. Data Editor on the whole project allows writing to every dataset, and BigQuery Admin on the dataset includes management rights the analyst does not need. Owner is the broadest role of all.

  6. Question 22

    A team that owned a dataset has been reorganised, and the dataset now needs a clear owner and access managed for the new team. Which approach is best?

    1. AGrant access through a group-based IAM binding and record the data owner in the catalogue entry
    2. BShare the service account JSON key with the new team by email
    3. CGive the new team leader the Owner role on the whole project
    4. DMake the dataset readable by all authenticated users so nobody is blocked
    Show answer and explanation
    Correct answer: A

    Group-based bindings let access follow team membership without per-person edits, and a recorded owner makes responsibility clear. Sharing a key by email exposes a credential, the Owner role is far broader than the team needs, and granting all authenticated users reads the data to anyone with a Google account.

  7. Question 23

    A data steward must find which columns across many BigQuery datasets contain email addresses or phone numbers. Which Google Cloud capability is designed for this?

    1. ASensitive Data Protection inspection to discover sensitive fields
    2. BCloud Audit Logs exported to a Cloud Storage bucket for later review
    3. CBilling reports that break down BigQuery cost by project and by SKU
    4. DCloud Monitoring alerting policies on query error rates
    Show answer and explanation
    Correct answer: A

    Sensitive Data Protection inspects data and identifies infoTypes such as email addresses and phone numbers, which is exactly what discovery requires. Monitoring tracks system health and Billing tracks spend, so neither reveals what the data contains. Audit logs record who accessed what, not the content of columns.

Orchestrate data pipelines (7 questions)

  1. Question 24

    A daily pipeline must start only after a vendor file lands in a Cloud Storage bucket, retry failed steps, and run its steps in a defined order. Which option best fits?

    1. AA Cloud Composer DAG that uses a GCS object sensor and task retries
    2. BA cron job on a Compute Engine VM that runs a shell loop over the bucket
    3. CA Cloud Scheduler job that triggers a Cloud Function every five minutes
    4. DA notebook that a practitioner runs manually after checking the bucket
    Show answer and explanation
    Correct answer: A

    Cloud Composer, which is managed Apache Airflow, gives you dependencies between tasks, a sensor that waits for the file, and per-task retries with logging. The VM cron loop has none of the dependency or retry handling, and a five-minute Cloud Scheduler trigger keeps firing with no notion of which steps already succeeded. The manual notebook depends on a person being available.

  2. Question 25

    A load step failed halfway through and was fixed. The rerun must not create duplicate rows for the records already written. Which design achieves this?

    1. ADisable the schedule and run the pipeline manually from the console each time
    2. BAppend the full day again and remove duplicates with DISTINCT in the dashboard
    3. CTruncate the whole target table and reload all history from the first day
    4. DAn idempotent MERGE on a business key, or overwrite the affected date partition
    Show answer and explanation
    Correct answer: D

    MERGE on a business key or overwriting a single partition makes a rerun produce the same result, so it is safe to repeat. Appending and deduplicating in the dashboard leaves duplicates in the data itself, and truncating the full table is far more disruptive than the failure warrants. Running manually does not address duplication.

  3. Question 26

    A nightly transformation usually takes 40 minutes. The team wants to be told when a run exceeds one hour. Which configuration does this?

    1. AA practitioner who checks the job logs manually each morning before work starts
    2. BA timeout alert on the task, with notifications sent to Cloud Monitoring
    3. CVerbose logging turned on for the entire project to capture every job step
    4. DA schedule change that runs the job every two hours instead of once daily
    Show answer and explanation
    Correct answer: B

    A timeout or SLA alert on the orchestrated task fires when the run is late, so the team learns about it without watching the job. Manual checks are slow and unreliable, changing the schedule does nothing about duration, and verbose project-wide logging produces noise rather than an alert.

  4. Question 27

    In an Airflow DAG, a cleanup task must run after the load task whether the load succeeded or failed. Which trigger rule on the cleanup task does this?

    1. Aall_success
    2. Bnone_failed_min_one_success
    3. Call_done
    4. Done_success
    Show answer and explanation
    Correct answer: C

    The all_done rule runs a task once all upstream tasks have finished, regardless of their outcome, which fits cleanup. all_success, the default, skips cleanup when the load fails. one_success and the none_failed variant depend on upstream outcomes that include failure, so they are also wrong here.

  5. Question 28

    A daily pipeline depends on a vendor file that sometimes arrives late. The team wants the job to wait for the file up to a limit and then alert the owner. What should they configure?

    1. AA retry of the whole pipeline every minute with no upper limit
    2. BA file sensor on the upstream object with a timeout and an owner alert
    3. CA fixed start time of 06:00 that assumes the file is always present
    4. DA rule that skips the day silently whenever the file arrives after the scheduled time
    Show answer and explanation
    Correct answer: B

    A sensor with a timeout waits for the file as long as is reasonable and then raises an alert, so late data is handled and visible. A fixed start time breaks when the file is late, endless minute-by-minute retries waste resources, and silently skipping a day loses data without anyone knowing.

  6. Question 29

    In Cloud Composer, a BigQuery transformation must start only after a Dataflow load task has finished successfully. How is this expressed?

    1. ABoth tasks get the same scheduled start time and run in parallel
    2. BThe transformation is set downstream of the load task in the DAG
    3. CA separate cron job runs the transformation one hour after the load is scheduled
    4. DThe transformation is marked to retry whenever the load task fails
    Show answer and explanation
    Correct answer: B

    Declaring the transformation as downstream of the load makes the scheduler wait for the load to succeed before starting it. Identical start times run the tasks in parallel with no ordering at all, and a fixed one-hour gap cannot guarantee the load has finished. Retry settings control reruns after a failure and do not create the dependency.

  7. Question 30

    An Airflow task that calls a partner API fails intermittently with timeouts. The pipeline should recover without manual action. Which configuration is most appropriate?

    1. AIncrease the DAG schedule interval to four hours so the API has more time
    2. BSet retries with a retry delay and an execution timeout on that task
    3. CRemove all retry settings so failures surface immediately to the team
    4. DRun the task on a larger machine type in the same environment
    Show answer and explanation
    Correct answer: B

    Retries with a delay recover from transient timeouts, and an execution timeout stops a hung call from blocking the DAG indefinitely. Lengthening the schedule does not change how the API behaves, and removing retries makes intermittent failures more disruptive. A bigger machine does not help when the wait is on a remote service.