Pular para o conteúdo

Simulado · Databricks

Simulado Databricks Certified Data Engineer Professional

50
questões
120
minutos
70%
para passar no simulado
60
questões no banco

Resposta curta

O simulado de Databricks Certified Data Engineer Professional tem 50 questões em 120 minutos, com nota de corte de 70%, conforme configurado aqui. O jeito mais rápido de saber se você está pronto é fazer uma prova completa no relógio e ler a nota por domínio, não só o total.

Domínios cobrados

  • Data Processing
  • Data Modeling
  • Deployment and Monitoring
  • Performance Optimization
  • Security and Governance

Questões de exemplo, com explicação

Três questões do banco, abertas para ler.

Questão 1 · Performance Optimization

A job processes ~120 GB of input with a wide transformation. The team has set spark.sql.shuffle.partitions to 8 on a cluster with 64 total executor cores, reasoning that fewer partitions means less overhead. The Spark UI shows only 8 shuffle tasks, each processing ~15 GB, with heavy disk spill and most cores sitting idle during the shuffle stage. AQE is disabled for this job. What change best improves throughput?

  1. Raise spark.sql.shuffle.partitions to a value near or above the total core count (e.g., 128) so partitions are smaller, spill is reduced, and all cores stay busy ✓ (correta)
  2. Lower spark.sql.shuffle.partitions further to 4 so there is even less shuffle coordination overhead
  3. Broadcast the 120 GB dataset so the shuffle is skipped entirely on all executors
  4. Increase executor memory so each of the 8 tasks can hold its 15 GB partition without spilling, keeping 8 partitions
Por que esta é a correta

Raising shuffle partitions is correct: with only 8 partitions on 64 cores, at most 8 tasks run at once, leaving most cores idle, and each task's 15 GB exceeds memory and spills to disk. Increasing partitions to near or above core count yields smaller per-task data (less spill) and enough tasks to saturate all cores. 'Lower to 4' worsens both problems — fewer, larger tasks mean more spill and even more idle cores; the 'less overhead' reasoning is the misconception being tested. 'Broadcast the 120 GB dataset' is invalid: broadcasting is for small tables and a 120 GB broadcast would blow up executor memory; it also does not apply to a single wide transformation's shuffle. 'Increase executor memory to fit 15 GB partitions' may stop the spill but leaves 56 of 64 cores idle, so throughput stays poor — the under-parallelism, not just spill, is the core problem.

Questão 2 · Security and Governance

A customer table contains a national_id column. Analysts in the 'analytics' group must run aggregate queries over the table but must never see raw national IDs, while a small 'compliance' group must see them in the clear. The team wants a single physical table (no copies) and wants the masking enforced at query time regardless of which tool connects. Which Unity Catalog approach satisfies this?

  1. Grant SELECT on the table to analytics but REVOKE the national_id column; Unity Catalog will automatically null out revoked columns in returned rows.
  2. Attach a column mask UDF to national_id that returns the raw value when is_account_group_member('compliance') is true and a redacted value otherwise; the mask is enforced by Unity Catalog at query time for all clients. ✓ (correta)
  3. Create a view that hashes national_id and point analytics at the view; since the underlying table grant is what UC enforces, analysts querying the base table will also receive the hashed value.
  4. Create two separate tables — one with the real national_id for compliance and one with the column dropped for analytics — and grant each group access to only one table.
Por que esta é a correta

Correct: UC column masks let you bind a UDF to a column that conditionally returns raw or redacted data based on the caller's group membership (via is_account_group_member or current_user), enforced centrally at query time across any client connecting through UC — exactly one physical table, dynamic per-group behavior. Creating two physical tables violates the 'single physical table, no copies' requirement and creates a synchronization/governance burden. The 'REVOKE column, UC nulls it out' option reflects a misconception: standard UC SELECT grants are at the table level and there is no automatic per-row column nulling from a column revoke — fine-grained masking requires column masks (or views). The view-hashing option is wrong because applying a transformation in a view does NOT change what the base table returns; anyone with access to the base table still sees raw values, so security-by-view only works if base-table access is removed and users are forced through the view.

Questão 3 · Data Modeling

A retail data team ingests a daily customer dimension feed of ~5 million rows into a silver Delta table. They must track the full history of changes to a customer's `loyalty_tier` and `region` so that historical fact-table joins reflect the attribute values that were valid at transaction time. Only the rows that actually changed should produce new history records, and existing current rows must be flagged out-of-date when superseded. Which approach correctly implements this requirement?

  1. Overwrite the entire dimension table each day with `INSERT OVERWRITE`, then rebuild history nightly by diffing two adjacent table versions with time travel, since this avoids the cost of MERGE on 5 million rows.
  2. Implement SCD Type 2 with a single MERGE that uses a staged set of changed-and-new keys: the WHEN MATCHED clause (filtered to rows where tracked columns differ) sets `is_current = false` and `end_date`, and a second INSERT pass writes the new versions with `is_current = true` and an open `end_date`. ✓ (correta)
  3. Use a single MERGE with WHEN MATCHED THEN UPDATE and WHEN NOT MATCHED THEN INSERT against the natural key, relying on the MERGE to automatically version rows because Delta tracks attribute changes as Type 2 history when `is_current` exists.
  4. Implement SCD Type 1 with a MERGE WHEN MATCHED THEN UPDATE that overwrites `loyalty_tier` and `region` in place, since Delta's transaction log retains every prior version and time travel can reconstruct the history for any join.
Por que esta é a correta

The approach using a staged set of changed-and-new keys with a MERGE that closes out old rows (`is_current = false`, `end_date`) plus a separate INSERT of the new versions is the canonical SCD Type 2 pattern on Delta. A single MERGE cannot both close the old row AND insert a new row for the same natural key in one statement (one source row can match at most one action), so the two-pass / changed-key staging technique is required. The Type 1 with in-place overwrite option is wrong because SCD Type 1 by definition discards history; while Delta time travel retains old file versions, time travel is an operational/retention feature bounded by VACUUM and `logRetentionDuration`, not a queryable as-of-transaction-time dimension — you cannot reliably join a fact's transaction date to the correct historical attribute through time travel. The single-MERGE-on-natural-key option is wrong because MERGE does not automatically version rows; the mere presence of an `is_current` column does not make Delta produce Type 2 history — that logic must be explicitly written, and a plain UPDATE would overwrite the row, losing history. The full daily overwrite + diff-versions option is wrong because reconstructing history by diffing Delta versions is fragile (versions expire after VACUUM, multiple writes per day break the 1-version-per-day assumption) and `INSERT OVERWRITE` destroys the existing history rows entirely.

Faça o simulado completo

  • 50 questões sorteadas do banco, com cronômetro de 120 minutos
  • Nota por domínio e revisão de cada questão
  • Tutor de IA para conversar sobre cada questão que você errar
  • O que você errou alimenta seu plano de estudo

Simulado independente e não oficial. Databricks e o nome da prova são marcas de seus donos; o UpSkillScore não é afiliado a eles. Formato e nota de corte são a configuração do simulado no UpSkillScore, não uma declaração oficial.

Perguntas frequentes

Quantas questões tem o simulado de Databricks Certified Data Engineer Professional?

Tem 50 questões e limite de 120 minutos. A nota de corte do simulado é 70%.

Este é o exame oficial de Databricks Certified Data Engineer Professional?

Não. É um simulado independente, montado para espelhar a estrutura da prova real. Ele não substitui o exame oficial.

Preciso de conta para fazer?

Você lê a estrutura e as questões de exemplo sem conta. Fazer o simulado completo cronometrado, a nota por domínio e o tutor de IA exigem conta.