Study Guide · DP-750

DP-750 Cheat Sheet

230 entries · 12 chapters · 4 domains

Set up and configure an Azure Databricks environment

Select and Configure Compute in a Workspace

Read full chapter

Cheat sheet

Sharp facts the exam loves — scan these before test day.

Job compute is dedicated, ephemeral compute for scheduled production runs

Job (classic jobs) compute provisions a dedicated cluster scoped to a single job run and terminates it when the run finishes, isolating scheduled non-interactive pipelines from interactive development and billing at the lower jobs DBU rate.

Trap All-purpose compute is interactive and shared, so it is not recommended for production jobs and breaks the isolation requirement.

14 questions test this
All-purpose (shared) compute is for interactive, collaborative development

All-purpose compute is persistent, multi-user interactive compute for notebooks and ad hoc analysis; it bills at a higher DBU rate than job compute and is not recommended for production pipelines because it mixes development and production workloads.

13 questions test this
SQL warehouses run SQL and BI workloads, not pipeline code

A SQL warehouse is compute optimized for SQL queries and BI tools such as Power BI and Tableau, and comes in serverless, pro, and classic types; it cannot execute notebook or declarative-pipeline code.

Trap A SQL warehouse cannot serve as the compute engine for a Lakeflow declarative pipeline.

15 questions test this
Serverless compute starts instantly and is managed by Databricks

Serverless compute runs in the Databricks-managed cloud account and starts in seconds with no VM configuration or instance-pool management; it is available for notebooks, jobs, and declarative pipelines.

10 questions test this
Autoscaling adds and removes only worker nodes between a min and max

Cluster autoscaling automatically adds or removes worker nodes between a configured minimum and maximum based on load; it resizes only workers, never the driver, and it does not stop an idle cluster.

Trap Autoscaling only resizes an active cluster; it never terminates an idle one, which is the job of automatic termination.

19 questions test this
A single-node cluster has zero workers and runs on the driver only

A single-node cluster sets the worker count to 0 so the driver runs all Spark work with no worker nodes; it cannot autoscale and suits only small, non-distributed workloads.

6 questions test this
Enhanced autoscaling optimizes Lakeflow declarative-pipeline compute

Lakeflow Spark Declarative Pipelines run on runtime-managed job compute that uses enhanced autoscaling, which scales workers to workload volume and proactively shuts down under-utilized nodes to minimize cost.

7 questions test this
Cluster capacity is worker count multiplied by per-node CPU and memory

Total cluster compute equals the number of worker nodes multiplied by each node's CPU and memory, so a workload is scaled either by adding workers (node count) or by selecting a larger node type.

SQL warehouse size sets query power; scaling adds clusters; Auto Stop halts idle

A SQL warehouse t-shirt cluster size (X-Small to 4X-Large) sets the compute power for a single query, while its Scaling min/max range adds or removes WHOLE clusters to absorb concurrent-query load (not worker nodes, unlike cluster autoscaling); Auto Stop shuts an idle warehouse down (default 45 minutes classic/pro, 10 minutes serverless).

Trap SQL warehouse Scaling adds whole CLUSTERS for concurrency, whereas cluster autoscaling adds WORKER NODES; Auto Stop (warehouse) is distinct from a cluster automatic termination.

6 questions test this
Automatic termination shuts down a cluster after idle minutes

Automatic termination stops an all-purpose cluster after a set number of minutes with no Spark jobs, queries, or commands running, removing idle DBU and VM cost; a cluster is inactive only when nothing is executing, so active workloads keep it alive and are never interrupted.

Trap Enabling autoscaling or spot pricing lowers cost but does not stop an idle cluster; only automatic termination removes the idle waste.

14 questions test this
Instance pools keep warm VMs to reduce cluster start and scale time

An instance pool holds a set of idle, ready-to-use cloud VMs so clusters and autoscaling attach pre-acquired nodes and start faster; you pay the Azure VM cost for idle pooled instances but no DBU until a cluster uses them.

13 questions test this
Spot VMs reduce worker cost but can be reclaimed

Configuring workers as Azure Spot VMs lowers per-hour compute cost, but Azure can reclaim spot capacity at any time, so spot fits fault-tolerant workloads and does not by itself reduce idle-cluster waste.

Photon is the vectorized engine that accelerates SQL and DataFrame work

Photon is Databricks' native vectorized C++ query engine that transparently accelerates SQL and Spark DataFrame workloads, including JSON ETL and Delta operations; it is turned on per cluster with the Use Photon Acceleration checkbox and is on by default on recent runtimes.

Trap Photon accelerates SQL and DataFrame operations, not arbitrary Python or Scala UDFs.

8 questions test this
The Databricks Runtime version fixes the bundled Spark version

Choosing a Databricks Runtime (DBR) version sets the bundled Apache Spark version and preinstalled libraries; Long Term Support (LTS) releases are recommended for production because they are supported and patched longer.

9 questions test this
Databricks Runtime for Machine Learning preinstalls ML libraries

The Databricks Runtime for Machine Learning extends the standard runtime with preinstalled ML libraries such as PyTorch, TensorFlow, and scikit-learn (with GPU variants), so selecting it avoids manually installing the ML stack.

8 questions test this
Cluster-scoped libraries load for every notebook; notebook-scoped are session only

Cluster-scoped libraries install on the cluster and are available to every notebook attached to it, whereas notebook-scoped libraries installed with %pip apply only to the current notebook session and are discarded when the cluster restarts.

12 questions test this
Libraries install from package repositories or from files and volumes

Compute libraries can be installed from package repositories (PyPI, Maven, CRAN) or from uploaded artifacts such as wheel, egg, or JAR files stored in workspace files or Unity Catalog volumes.

8 questions test this
Standard access mode installs only allowlisted libraries

On standard (formerly shared) access mode compute, libraries and init scripts must be on the Unity Catalog allowlist maintained by a metastore admin, whereas dedicated access mode has no such restriction.

Trap The Unity Catalog allowlist governs standard access mode; dedicated (single-user) compute is not subject to it.

8 questions test this
Compute ACLs grant CAN ATTACH TO, CAN RESTART, or CAN MANAGE

Compute access control assigns three permission levels to users, groups, or service principals: CAN ATTACH TO (run commands and view logs), CAN RESTART (start, stop, and restart), and CAN MANAGE (edit configuration and permissions).

14 questions test this
Access mode (standard vs dedicated) sets sharing and Unity Catalog support

A cluster's access mode determines sharing: standard access mode supports multiple concurrent users with full Unity Catalog governance, while dedicated access mode is assigned to a single user or group; both are Unity Catalog-enabled.

Trap The legacy No Isolation Shared access mode is not Unity Catalog-enabled.

8 questions test this
Creating compute requires the cluster-creation entitlement

A user can create all-purpose compute only if granted the unrestricted or policy-scoped cluster-creation entitlement; without it they can merely attach to existing compute they have been given access to.

Cluster policies constrain what compute a user can create

A cluster (compute) policy is an admin-defined rule set that limits the compute a user may create or configure - allowed node types and Databricks Runtime versions, enforced auto-termination, maximum workers or DBU caps, and mandatory tags. Granting a user a policy scopes their cluster-creation entitlement to compute that complies with it, enforcing cost control and standards.

Trap A cluster policy governs the compute a user may CREATE (its configuration limits); that is different from a cluster ACL that grants Can Attach/Can Manage on an already-existing cluster.

14 questions test this

Create and Organize Objects in Unity Catalog

Read full chapter

Cheat sheet

Sharp facts the exam loves — scan these before test day.

Unity Catalog addresses data as catalog.schema.object

Unity Catalog organizes every data object in a three-level namespace of catalog.schema.object (tables, views, volumes, functions, and models), replacing the legacy two-level hive_metastore.schema.table layout.

5 questions test this
Use a separate catalog per environment for data isolation

The catalog is the primary unit of data isolation in Unity Catalog, so a common naming convention creates a distinct catalog per environment (for example dev, test, and prod) to segregate data and permissions.

Trap Separating environments only by schema inside one shared catalog weakens the isolation boundary.

7 questions test this
Bind a catalog to specific workspaces to restrict its access

Workspace-catalog binding restricts a catalog so it is accessible only from designated workspaces, enforcing environment isolation and controlled external sharing across a metastore shared by several workspaces.

5 questions test this
CREATE CATALOG makes a top-level container in the metastore

CREATE CATALOG creates the top-level container within the metastore; an optional MANAGED LOCATION sets where its managed tables and volumes store data, otherwise they inherit managed storage from the metastore.

Trap CREATE CATALOG builds a catalog, not a schema; a contained schema needs CREATE SCHEMA catalog.schema.

16 questions test this
Creating a catalog requires the CREATE CATALOG metastore privilege

Only a metastore admin or a principal granted the CREATE CATALOG privilege on the metastore can create a catalog, and the creator becomes its owner with full control over the new object.

Set a schema's storage with MANAGED LOCATION, not LOCATION, in Unity Catalog

CREATE SCHEMA catalog.schema MANAGED LOCATION '' sets a schema's managed storage in Unity Catalog; the LOCATION clause is a Hive-metastore-only syntax and is rejected for Unity Catalog schemas.

Trap LOCATION is not supported for a Unity Catalog schema; use MANAGED LOCATION instead.

9 questions test this
A schema is created two-level as catalog.schema

A schema (database) groups tables, views, and volumes and must be created inside a catalog with the two-level name catalog.schema; it cannot be created as a top-level object.

13 questions test this
MANAGED LOCATION requires CREATE MANAGED STORAGE on an external location

Setting a schema's MANAGED LOCATION requires the CREATE MANAGED STORAGE privilege on the external location that covers the path; without an explicit managed location the schema inherits managed storage from its catalog or the metastore.

Volumes are Unity Catalog objects that govern non-tabular files

A volume is a Unity Catalog object under a schema that governs access to non-tabular data such as images, CSV files, and model artifacts, accessed through the path /Volumes/catalog/schema/volume.

15 questions test this
Managed volumes use Unity Catalog storage; external volumes point at a location

A managed volume stores its files in the schema's managed storage and is fully lifecycle-managed by Unity Catalog, whereas an external volume registers an existing path under an external location for data that Databricks does not own.

Trap Dropping a managed volume deletes its files; dropping an external volume leaves the files in place.

10 questions test this
A view is a stored read-only query that materializes no data

A view is a saved SELECT query that is evaluated each time it is read; it stores no data of its own and can restrict or reshape the columns exposed from its base tables.

16 questions test this
A materialized view stores precomputed results refreshed incrementally

A materialized view precomputes and stores query results and refreshes them incrementally through a Lakeflow declarative pipeline on serverless compute, speeding repeated reads at the cost of storage and scheduled refresh.

Trap A materialized view stores data and must be refreshed; a standard view does neither.

13 questions test this
A table persists data, defaulting to the Delta Lake format

A Unity Catalog table stores rows and columns using the Delta Lake format by default, and can be created empty, with CREATE TABLE AS SELECT (CTAS), or with CREATE OR REPLACE TABLE.

Lakehouse Federation needs a connection first, then a foreign catalog

To federate an external database you first create a connection object that stores the server host and credentials, then create a foreign catalog that uses that connection to mirror the external database's schemas in Unity Catalog.

8 questions test this
Federated queries run in place with no data copy

A foreign catalog runs Lakehouse Federation queries directly against the source system so its schemas and tables appear alongside other Unity Catalog objects and are queried in place, with no data copied into Databricks-managed storage.

Trap An ingestion pipeline or a managed table would copy the data; only a foreign catalog queries the source in place.

13 questions test this
Dropping a managed table deletes its underlying data

A managed table stores its data files in Unity Catalog managed storage, so DROP TABLE removes both the table metadata and the underlying data files.

Trap Dropping an external table removes only the metadata and leaves the files intact.

12 questions test this
An external table is defined with LOCATION and keeps its data on drop

An external table is created with a LOCATION clause pointing at a path under an external location, so Unity Catalog governs only its metadata and DROP TABLE leaves the underlying files untouched.

13 questions test this
AI/BI Genie answers natural-language questions over a curated data set

An AI/BI Genie space lets business users ask natural-language questions that Genie converts to SQL over a curated set of Unity Catalog tables, enabling self-service data discovery without writing queries.

9 questions test this
Genie instructions and example queries steer accurate answers

Configuring Genie general instructions, example SQL queries, and trusted or certified answers guides how Genie interprets domain terms and business logic, improving the accuracy of the answers it generates for data discovery.

Trap Genie relies on the curated tables plus its instructions, not on unrestricted access to the whole metastore.

12 questions test this

Secure and govern Unity Catalog objects

Secure Unity Catalog Objects

Read full chapter

Cheat sheet

Sharp facts the exam loves — scan these before test day.

GRANT assigns a privilege on a securable to a user, group, or service principal

Access to a Unity Catalog securable is granted with GRANT ON TO , where the principal can be a user, an account group, or a service principal, and REVOKE removes it; common privileges include SELECT, MODIFY, and CREATE.

Trap A principal is not limited to individual users; groups and service principals are equally valid grant targets and groups are preferred for manageability.

8 questions test this
Reading a table also requires USE CATALOG and USE SCHEMA on its parents

To query a table a principal needs SELECT on the table plus USE CATALOG on its catalog and USE SCHEMA on its schema; the USE privileges grant traversal of the three-level namespace but do not by themselves expose any data.

Trap SELECT on the table alone is insufficient; without USE CATALOG and USE SCHEMA on the parents the query fails with a permission error.

15 questions test this
A privilege granted on a catalog or schema is inherited by its child objects

Unity Catalog privileges are inherited down the object hierarchy, so a privilege granted on a catalog applies to all of its current and future schemas and tables, and a grant on a schema applies to its tables, views, and volumes.

7 questions test this
Object owners and MANAGE control who can grant on a securable

In Unity Catalog the owner of a securable (a user, group, or service principal) implicitly holds all privileges on it and is the principal who can GRANT/REVOKE, ALTER, and DROP it; granting the MANAGE privilege lets a non-owner administer the object, including granting and revoking privileges and even dropping or transferring it, without being the owner, and ownership can be reassigned with ALTER OWNER TO.

Trap Holding SELECT is not enough to administer an object - only the owner or a MANAGE holder can grant, drop, or transfer it, and MANAGE differs from ownership only in that it is not automatically given the object's data privileges (it must self-grant SELECT).

UC principals are account-level identities federated from Microsoft Entra ID

Users, groups, and service principals in Unity Catalog are account-level identities, typically provisioned from Microsoft Entra ID via SCIM; account groups must be assigned to a workspace through identity federation before they can be granted privileges there.

Trap Groups are managed at the account level, not per-workspace - grants target account-level principals federated to the workspace, not a workspace-local group.

Object-level grants cover every column; column limits need a view, mask, or ABAC

A SELECT grant applies to the entire table securable and cannot be scoped to individual columns, so column-level access control is achieved by layering a view that exposes only permitted columns, a column mask, or an ABAC policy on top of the base grant.

Trap Granting SELECT on only the non-sensitive columns is not a Unity Catalog capability; it would break SELECT * with a permission error rather than hide values.

16 questions test this
A dynamic view redacts columns per group with is_account_group_member in CASE

A dynamic view wraps a base table and uses CASE expressions calling is_account_group_member() so that members of an authorized group receive the real column value while all other callers receive NULL or a redacted literal.

16 questions test this
Grant the secure view and withhold the base table so users query only the view

For view-based access control you grant SELECT on the dynamic or restricted view and do not grant access to the underlying base table, forcing every principal through the view where the column and row rules are enforced.

A dynamic view enforces row-level security with a caller-identity WHERE predicate

Row-level security through a dynamic view adds a WHERE predicate built from current_user() or is_account_group_member(), returning only the rows whose values match the querying principal, such as their own region or business unit.

23 questions test this
Data-driven row-level security joins to an entitlement mapping table

A scalable row-level-security pattern joins the base table to a mapping table that records which principal or group may see which key values, so entitlement changes are made by editing data rather than by rewriting the view definition.

An Azure Key Vault-backed secret scope exposes Key Vault secrets read-only

An Azure Key Vault-backed secret scope maps a Databricks secret scope onto an Azure Key Vault so notebooks can read its secrets; it is a read-only interface, meaning the secret values are created, updated, and rotated in Azure rather than in Databricks.

Trap A Key Vault-backed scope cannot be written from Databricks; secrets must be added and rotated in the Azure Key Vault itself.

13 questions test this
dbutils.secrets.get reads a secret and Databricks redacts it from output

Code retrieves a secret with dbutils.secrets.get(scope, key) instead of hardcoding credentials, and Databricks automatically replaces any printed secret value with [REDACTED] so it cannot leak into notebook cell output or logs.

13 questions test this
Secret access is governed by READ, WRITE, and MANAGE scope ACLs

Secret scope access control assigns per-scope ACLs at the READ, WRITE, and MANAGE levels, and a principal needs at least READ on the scope, which permits reading secret values and listing keys, before dbutils.secrets.get will succeed.

A service principal is a non-human identity for automated data workloads

A service principal is an identity created for tools, jobs, and CI/CD rather than a person, and it is granted Unity Catalog privileges like any principal so automated pipelines can authenticate and access data without depending on an individual user's account.

22 questions test this
Running a job as a service principal decouples it from a user account

Configuring a Lakeflow Job or pipeline to run as a service principal keeps it working when the original author leaves or loses access, and confines the job's data access to exactly the Unity Catalog privileges granted to that service principal.

16 questions test this
Service principals authenticate with OAuth machine-to-machine tokens

A service principal authenticates non-interactively using OAuth machine-to-machine (M2M) tokens minted from its client ID and secret, which are the recommended automation credential in place of long-lived personal access tokens.

An Access Connector managed identity authenticates the workspace to Azure storage

Resource access to ADLS Gen2 uses an Access Connector for Azure Databricks, a first-party Azure resource whose system- or user-assigned managed identity is granted a storage role such as Storage Blob Data Contributor, letting Databricks reach the storage account with no stored keys.

Trap A managed identity authenticates the underlying storage resource; a service principal instead represents a principal whose Unity Catalog privileges govern data access, not the storage connection.

20 questions test this
A storage credential wraps the managed identity for an external location to use

In Unity Catalog the Access Connector's managed identity is registered as a storage credential, and an external location then references that credential to govern reads and writes to a specific ADLS Gen2 container path.

15 questions test this
Managed identities are preferred over storage account keys or SAS tokens

Authenticating storage access through an Access Connector managed identity is recommended over embedding storage account keys or SAS tokens, because the credential is managed by Azure and is never exposed in notebook code or cluster configuration.

Govern Unity Catalog Objects

Read full chapter

Cheat sheet

Sharp facts the exam loves — scan these before test day.

Table and column descriptions are added with the COMMENT clause

Descriptions for discovery are set with the COMMENT clause or COMMENT ON and can be edited in Catalog Explorer; a table comment documents the dataset and per-column comments document each field, all stored as Unity Catalog metadata.

15 questions test this
AI-generated comments propose table and column descriptions for review

Catalog Explorer can suggest AI-generated table and column descriptions that a data steward reviews and accepts, accelerating the documentation of large catalogs so that objects become discoverable more quickly.

7 questions test this
Descriptions persist as metadata and power search and discovery

Because comments persist as Unity Catalog metadata they survive schema evolution and surface in Catalog Explorer search and AI/BI Genie, letting users find and understand data without opening the underlying files.

Governed tags are the account-level attribute vocabulary ABAC builds on

Governed tags are a centrally defined, account-level set of tag keys and allowed values, with permissions controlling who may apply each tag; they are the attributes that attribute-based access control policies evaluate to decide protection.

14 questions test this
An ABAC policy applies filters or masks automatically to every tag-matched object

An attribute-based access control (ABAC) policy is attached at a catalog, schema, or table and uses governed-tag conditions to apply a row filter or column mask to every current and future object carrying the matching tag, so one policy governs many tables at once.

Trap ABAC scales a single tag-driven policy across many tables; a table-level SET MASK or SET ROW FILTER must be configured on each table individually.

14 questions test this
Tags assigned to a parent object are inherited by child objects

A governed tag applied to a catalog or schema is inherited by the schemas and tables beneath it, but not by individual table columns, so tagging a parent propagates the attribute that ABAC policies and discovery rely on to descendant tables; a column-level classification must be tagged on the column directly.

A row filter removes whole rows via ALTER TABLE ... SET ROW FILTER

A row filter is a boolean SQL UDF attached with ALTER TABLE SET ROW FILTER; the function is evaluated per row and returns TRUE to keep the row or FALSE/NULL to drop it, so it controls which entire rows a principal sees at query time.

Trap A row filter removes whole rows and cannot reveal only part of a column value; use a column mask for partial redaction.

20 questions test this
A column mask redacts values via ALTER TABLE ... ALTER COLUMN ... SET MASK

A column mask is a SQL UDF attached with ALTER TABLE ALTER COLUMN SET MASK; it rewrites each returned value at query time, for example showing only the text after the @ in an email or only the last four digits of a card, while every row is still returned.

Trap Masking only sensitive columns while keeping table SELECT follows least privilege and lets queries run without errors, unlike revoking column access.

20 questions test this
Row filters and column masks attach to base tables, not to standard views

Table-level row filters and column masks are attached to base tables and cannot be placed on a standard view, while ABAC policies extend the same row-filter and column-mask protection to materialized views and streaming tables; once attached they are enforced for every query through any SQL warehouse, notebook, or client.

delta.deletedFileRetentionDuration sets the VACUUM retention window

The table property delta.deletedFileRetentionDuration defines how long removed data files are retained before VACUUM is permitted to delete them, defaulting to 7 days; raising it lengthens the window during which older versions stay recoverable.

18 questions test this
delta.logRetentionDuration bounds how far back time travel can go

The table property delta.logRetentionDuration controls how long transaction-log history is kept, defaulting to 30 days, which bounds the versions and timestamps that time-travel queries can reference.

18 questions test this
Running VACUUM permanently deletes old files and forfeits earlier time travel

VACUUM permanently removes data files that are no longer referenced by the latest table state and are older than the retention threshold, after which you can no longer time-travel to a version whose files were purged, trading storage cost against recoverability.

Unity Catalog captures lineage automatically down to the column level

For queries and workflows run on Azure Databricks, Unity Catalog captures runtime data lineage automatically down to the column level with no configuration, and aggregates it across every workspace attached to the metastore.

12 questions test this
Catalog Explorer shows owner, history, dependencies, and upstream/downstream lineage

The Catalog Explorer Lineage tab renders an interactive graph of upstream and downstream tables, columns, notebooks, jobs, and dashboards alongside the object owner and history, so you can trace dependencies before changing or deleting an object.

16 questions test this
Unity Catalog audit events are queryable in the system.access.audit table

The system.access.audit system table records account- and workspace-level audit events, capturing which principal accessed which securable and what action was taken, and retains them for up to one year for security and compliance analysis.

15 questions test this
Azure diagnostic settings deliver Databricks audit logs to Log Analytics

Configuring Azure diagnostic settings on the workspace streams Azure Databricks diagnostic (audit) logs to a Log Analytics workspace, a storage account, or Event Hubs for long-term retention, querying, and alerting in Azure Monitor.

14 questions test this
Verbose audit logging adds notebook and SQL command events

Enabling verbose audit logging records additional fine-grained events such as commandSubmit, commandFinish, and runCommand, capturing notebook-cell and SQL-warehouse command activity that standard audit logging omits.

Databricks-to-Databricks sharing needs no token when the recipient has Unity Catalog

When the recipient also has a Unity Catalog-enabled workspace, a recipient of authentication type DATABRICKS shares data over a secure Databricks-managed channel identified by a sharing identifier, so no bearer token is created or managed and identity, authentication, and auditing are handled by the platform.

Trap Databricks-to-Databricks sharing eliminates token management; only open sharing to a non-Databricks recipient issues a bearer token.

15 questions test this
Open sharing uses a bearer token and credential file for non-Databricks recipients

Open sharing (the Databricks-to-open protocol) reaches recipients on any platform by authenticating a recipient of type TOKEN using a long-lived bearer token or OIDC federation; for a token, Databricks generates a credential file delivered via an activation link that must be secured and rotated.

16 questions test this
A secure share exposes only selected tables to a named recipient

A secure OpenSharing (previously Delta Sharing) strategy creates a share, adds only the specific tables or views to be exposed, and grants that share to a defined recipient, so the recipient receives read-only access to just the shared objects rather than to the whole metastore.

Prepare and process data

Data Modeling in Unity Catalog

Read full chapter
  • Incremental extraction reprocesses only new files
  • Source file type dictates schema and evolution handling
  • Snapshot-only sources are diffed, not appended
  • Choose Lakeflow Connect for governed managed-source ingestion
  • Choose notebooks for custom or unsupported-source ingestion
  • Azure Data Factory is an orchestration or landing option
  • Pick streaming vs batch by latency SLA and arrival pattern
  • One streaming pipeline can run in batch or continuous mode
  • Delta is the default and required format for lakehouse features
  • CSV and JSON are ingestion or landing formats, not query targets
  • Iceberg reads (UniForm) expose one Delta copy to Iceberg readers
  • Do not partition small or high-cardinality tables
  • Liquid clustering replaces partitioning and Z-order
  • OPTIMIZE plus ZORDER BY compacts files and co-locates filter columns
  • Deletion vectors avoid rewriting files on delete or update
  • SCD Type 1 overwrites; Type 2 preserves history
  • Implement SCD with MERGE or AUTO CDC INTO
  • Choose table grain from the finest reporting requirement
  • Delta time travel queries bounded historical versions
  • Change Data Feed records row-level change events
  • SCD Type 2 provides durable temporal history
  • DROP deletes data for managed but not external tables
  • Only managed tables get automatic predictive optimization
  • External tables require an external location and credential

Unlock with Premium — includes all practice exams and the complete study guide.

Ingesting Data into Unity Catalog

Read full chapter
  • Lakeflow Connect lands source data in Unity Catalog streaming tables
  • Lakeflow Connect supports batch and continuous sync
  • Notebook batch ingestion reads then appends to a table
  • Notebook streaming ingestion uses readStream with a checkpoint
  • COPY INTO is idempotent and loads only new files
  • CTAS creates once; CREATE OR REPLACE fully rebuilds
  • COPY INTO can infer types and evolve schema
  • Choose Auto Loader vs COPY INTO by file volume and cadence
  • AUTO CDC applies ordered CDC upserts and deletes
  • A CDC feed needs an ordering key and operation column
  • Checkpoints persist offsets for fast exactly-once resume
  • Trigger mode trades latency against cost
  • Each streaming query needs its own checkpoint location
  • Ingest Event Hubs via its Kafka-compatible endpoint
  • startingOffsets and maxOffsetsPerTrigger bound consumption
  • Auto Loader incrementally detects and loads new files
  • SDP streaming tables ingest incrementally; materialized views recompute
  • Auto Loader offers directory-listing or file-notification mode

Unlock with Premium — includes all practice exams and the complete study guide.

Cleanse, Transform, and Load Data

Read full chapter
  • Profile data to get summary statistics and distributions
  • Distribution profiling exposes skew and outliers
  • Choose column types matching value domain and precision
  • Cast text source columns to typed columns on load
  • Parse and flatten semi-structured JSON into typed columns
  • Remove duplicates with DISTINCT or dropDuplicates on keys
  • Resolve nulls by dropping or imputing per requirement
  • NULL comparisons need null-safe operators
  • WHERE filters rows before grouping; HAVING filters groups
  • GROUP BY collapses rows into per-group aggregates
  • Join type controls which unmatched rows are kept
  • INTERSECT, EXCEPT, and UNION return distinct set results
  • Set operators require matching column count and types
  • Denormalize by joining dimensions into a wide table
  • PIVOT rotates row values into columns
  • UNPIVOT collapses columns into rows
  • MERGE performs upserts and SCD in one atomic statement
  • Append adds rows; overwrite replaces table or partition data
  • INSERT matches by position unless BY NAME is used

Unlock with Premium — includes all practice exams and the complete study guide.

Data Quality Constraints in Unity Catalog

Read full chapter
  • NOT NULL and CHECK constraints reject invalid writes
  • Use CHECK for range/cardinality; PK and UNIQUE are informational
  • The column schema enforces data-type validity
  • Delta schema enforcement rejects mismatched writes
  • Handle additive schema drift with schema evolution
  • Auto Loader preserves unmatched data in _rescued_data
  • Expectations offer warn, drop, and fail actions
  • expect_or_fail stops the update and rolls back
  • Dropped and failed record counts are tracked in the event log
  • expect_all applies multiple named constraints together

Unlock with Premium — includes all practice exams and the complete study guide.

Deploy and maintain data pipelines and workloads

Designing and Implementing Data Pipelines

Read full chapter
  • Pipeline order of operations follows the bronze-silver-gold medallion flow
  • Lakeflow SDP infers execution order from declared dataset dependencies
  • Separating ingest, transform, and serve stages lets each scale and recover independently
  • Choose SDP for declarative incremental ETL with built-in quality and orchestration
  • SDP manages infrastructure; a notebook task requires you to manage it imperatively
  • Notebooks suit procedural or non-ETL logic that cannot be expressed declaratively
  • A Lakeflow Job orchestrates a DAG of tasks linked by depends_on
  • Control-flow tasks add branching, iteration, and nested jobs
  • Pass data between tasks with task values and parameter references
  • Tasks come in several types beyond notebooks
  • A task retry policy automatically re-runs a failed task with a delay
  • Run-if conditions let downstream tasks run even when an upstream fails
  • Notebooks handle errors with try/except and surface status via dbutils.notebook.exit
  • %run inlines a notebook; dbutils.notebook.run executes it as a separate scope
  • Express precedence with Job tasks rather than deeply nested notebook calls
  • dbutils.notebook.run enables conditional branching and returns a string
  • SDP datasets are defined with pyspark.pipelines Python decorators
  • Streaming tables ingest incrementally; materialized views recompute results
  • Auto Loader is the recommended incremental file source inside SDP
  • SDP can also be authored in SQL with CREATE OR REFRESH statements
  • SDP development mode keeps compute warm; production mode restarts and retries
  • SDP pipelines update in triggered or continuous mode

Unlock with Premium — includes all practice exams and the complete study guide.

Implementing Lakeflow Jobs

Read full chapter
  • Each task chooses job compute, serverless, or an existing all-purpose cluster
  • Job parameters are key-value pairs passed to every task
  • Set Run as, max concurrent runs, and tags when configuring a job
  • Tasks can share one job cluster to cut startup cost
  • A notebook task reads job parameters with dbutils.widgets.get
  • Lakeflow Jobs supports scheduled, file-arrival, table-update, continuous, and manual triggers
  • Continuous keeps a job always-on; file arrival launches a run per batch of files
  • A table-update trigger runs a job when a monitored table changes
  • File-arrival triggers monitor a Unity Catalog external location or volume
  • A scheduled trigger uses a quartz cron expression with a timezone
  • Pause a schedule to stop runs without losing the job definition
  • Queueing controls what happens when a scheduled run overlaps a running one
  • Notifications attach at the job or the individual task level
  • Notifications go to email or admin-configured system destinations
  • Duration thresholds warn when a run is late or slow
  • Continuous jobs auto-restart the whole run with exponential backoff
  • SDP pipelines auto-recover; non-continuous jobs use per-task retries
  • Restart run cancels the active run and resets the backoff period

Unlock with Premium — includes all practice exams and the complete study guide.

Development Lifecycle in Azure Databricks

Read full chapter
  • Databricks Git folders connect the workspace to a remote Git provider
  • Production jobs should reference a specific branch or tag, not a mutable copy
  • Never commit secrets to a Git folder
  • Branch, commit, and push from the Git folder UI; open PRs in the provider
  • Resolve merge conflicts by pulling main and reconciling text diffs
  • A merge to main can trigger CI that deploys the change
  • A layered strategy spans unit, integration, end-to-end, and UAT tests
  • Unit tests run with pytest; integration and E2E tests exercise real jobs on test data
  • A bundle can define a test job so CI runs tests on every deploy
  • A bundle is defined in databricks.yml with resources and targets
  • Development mode isolates deployments; production mode enforces production settings
  • Variables and target overrides parameterize a bundle per environment
  • databricks bundle validate checks the configuration before deploying
  • databricks bundle deploy -t promotes a bundle to a target environment
  • The REST API deploys resources programmatically using a service principal token
  • databricks bundle destroy removes deployed resources

Unlock with Premium — includes all practice exams and the complete study guide.

Monitoring, Troubleshooting, and Optimizing Workloads

Read full chapter
  • Auto termination stops an idle all-purpose cluster to remove idle cost
  • Autoscaling, pools, and spot instances trade cost against latency and interruption
  • System tables and tags attribute DBU consumption to workloads
  • Photon can improve price-performance despite a higher DBU rate
  • Repair run re-executes only the failed and dependent tasks
  • Repairing a non-idempotent task can duplicate its output
  • The run matrix view exposes per-task status and logs to locate a failure
  • Stop cancels an in-progress job run; Run now re-triggers or backfills
  • Use the Spark UI to decide whether to scale up or scale out
  • Driver out-of-memory from large collects may require a cluster restart
  • Verify Photon and an appropriate runtime version for performance work
  • Data skew creates stragglers that AQE or salting can relieve
  • Spill is data overflowing executor memory onto disk
  • Shuffle moves data across the network; broadcast joins avoid it for small tables
  • Disk cache and Spark cache serve different reuse patterns
  • The SQL query profile diagnoses slow SQL warehouse queries
  • OPTIMIZE compacts the many small files that frequent DML creates
  • VACUUM deletes unreferenced files beyond the retention window
  • Liquid clustering (CLUSTER BY) is the recommended alternative to partitioning plus ZORDER
  • Predictive optimization automates OPTIMIZE and VACUUM on managed tables
  • Diagnostic settings stream operational logs for troubleshooting
  • Azure Monitor alert rules fire actions on log or metric thresholds
  • The spark-monitoring GitHub library is legacy and in maintenance mode

Unlock with Premium — includes all practice exams and the complete study guide.