
The Professional Data Engineer exam loves to test whether you know where to look when a BigQuery workload starts misbehaving. A query stalls. A scheduled load fails overnight. An UPDATE statement that worked fine last week suddenly returns a quotaExceeded error. The exam frames these as troubleshooting scenarios, and the right answer almost always involves the BigQuery admin console, the INFORMATION_SCHEMA views, or a rewrite of the offending workload. I want to walk through what the admin console actually surfaces, what the jobs explorer is good for, and the one quota that catches people off guard because you cannot raise it.
The BigQuery admin console is the central place for managing and observing a BigQuery environment. It is not just a dashboard. It is where you reserve slot capacity, manage policy tag taxonomies for column-level security, and watch resource utilization over time. For the Professional Data Engineer exam, four capabilities are worth memorizing:
The slot usage charts in the admin console show consumption over time. You will see peaks, plateaus, and the dreaded flat line where a workload is pinned at the reservation ceiling. That flat line is the bottleneck signal. If a query is running long and the chart shows you sitting at 100 percent slot utilization for the duration, you are not going to fix that by rewriting the query alone. You need more slots, or you need to shift the workload off-peak.
This is exactly the kind of distinction the Professional Data Engineer exam tests. A question will describe a slow query and give you four plausible remediations. One will be adding slots, one will be partitioning, one will be clustering, and one will be a red herring. The admin console charts are how you decide which lever to pull in real life, and on the exam you are expected to know that slot utilization is observable at this level.
When a BigQuery job fails, whether it is an ingestion, an ad-hoc query, or a scheduled query, the jobs explorer is the first place to look. It lists every job with its status, and failed jobs are visually flagged. Drilling into a failed job gives you the full error message, the SQL or load configuration, the bytes processed, and the slot-milliseconds consumed. Most error messages tell you exactly what went wrong. Syntax errors point to a column. Data-format errors point to a row. Resource errors point to a quota or a slot constraint.
For exam scenarios, remember the order of operations. Job fails, check the jobs explorer for the error detail, then decide what to do next based on the category of error.
quotaExceeded is its own category, and it is the one the exam most often hides inside a scenario. The error message itself names the specific limit that was hit. Your three-step response is:
A query against INFORMATION_SCHEMA.JOBS_BY_PROJECT can show you which jobs ran in the last hour, who submitted them, how many bytes they processed, and how many slot-milliseconds they used. That is usually enough to pinpoint the offender.
SELECT
job_id,
user_email,
job_type,
statement_type,
total_bytes_processed,
total_slot_ms
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
ORDER BY total_slot_ms DESC
LIMIT 20Most BigQuery quotas can be requested upward through a support ticket. The DML quota is the exception. BigQuery enforces a limit on concurrent and queued UPDATE, DELETE, and MERGE statements against a single table, and that limit is not adjustable. If your workload generates a high volume of individual row updates, you will eventually hit this ceiling, and no amount of paperwork will move it.
The exam-relevant workaround is to consolidate the updates into a single MERGE statement. Instead of issuing thousands of small UPDATEs against a target table, stage the changes in a temporary table and run one MERGE that applies all of them in a single operation. MERGE counts as one DML statement no matter how many rows it touches, which is why it is the canonical answer when an exam scenario describes a streaming pipeline that floods a table with updates and starts throwing quotaExceeded errors.
MERGE `project.dataset.target` T
USING `project.dataset.staging` S
ON T.id = S.id
WHEN MATCHED THEN
UPDATE SET T.status = S.status, T.updated_at = S.updated_at
WHEN NOT MATCHED THEN
INSERT (id, status, updated_at) VALUES (S.id, S.status, S.updated_at)If you see a Professional Data Engineer question describing a workload pattern of many small UPDATE statements failing with quotaExceeded, MERGE is the answer. Not a quota increase. Not more slots. The architecture has to change.
My Professional Data Engineer course covers BigQuery operations, quota management, INFORMATION_SCHEMA patterns, and the DML-versus-MERGE distinction in the depth the exam demands, along with the rest of the data engineering surface area you need to pass.