Create and Organize Objects in Unity Catalog
Address every object as catalog.schema.object
A production table in Unity Catalog has a name like prod.sales.orders, and that same three-part name identifies it from SQL, Python, or any BI tool attached to the workspace. Every governed object follows this three-level namespace, catalog.schema.object, which replaces the legacy two-level hive_metastore.schema.table layout. The metastore is the top-level container for a region; a catalog is the first level you create inside it; a schema (also called a database) is the second level; and the object itself, a table, view, volume, function, or model, is the third (Unity Catalog object model[1]). The figure below shows the full hierarchy from the metastore down to the object level.
The catalog is not just an organizational folder. It is the primary unit of data isolation in Unity Catalog, and schemas add a finer layer of organization beneath it (Unity Catalog best practices[2]). Because isolation lives at the catalog level, the common convention is one catalog per environment, for example dev, test, and prod. Separating environments only by schema inside a single shared catalog is the misread to avoid: it organizes the data but leaves every environment inside the same isolation boundary, so a grant on the catalog reaches all of them. Put each environment in its own catalog instead.
So the three-part name does two jobs at once: it addresses the object, and its first part names the isolation boundary that any grant on it reaches. Get the catalog boundary right and the two levels below it are organization rather than security.
Bind a catalog to specific workspaces
When data and its processing environment share the same isolation requirement, you can go further and bind a catalog to specific workspaces. Workspace-catalog binding restricts a catalog so only the workspaces you assign can reach it; access from an unbound workspace is denied even for a user who holds an explicit SELECT grant on a table inside it (Workspace-catalog binding[3]). That is how you keep a prod catalog reachable only from production workspaces.
Binding narrows reach; it never widens it. That is the trap worth rehearsing: a user can hold a valid SELECT grant and still be refused, because the workspace they queried from was never bound to the catalog. When a question pairs a correct-looking grant with a denied query, check the binding before you re-read the grant.
Create catalogs and schemas, and pin their storage
Two CREATE statements stand up the containers, and each carries a privilege gate and a storage decision. Start at the top: CREATE CATALOG makes a top-level container inside the metastore, and only a metastore admin or a principal (a user, an account group, or a service principal) granted the CREATE CATALOG privilege on the metastore can run it (Create catalogs[4]). A frequent slip is expecting CREATE CATALOG to give you a place to put tables directly; it does not. A catalog holds schemas, so a table needs a schema first, created with the two-level name CREATE SCHEMA catalog.schema (Create schemas[5]). A schema cannot be a top-level object. Whoever runs the CREATE statement becomes the object's first owner, so Databricks recommends reassigning production catalogs and schemas to a group rather than leaving an individual as owner.
The storage decision is where a Hive-metastore habit trips people up. In Unity Catalog you set a schema's managed storage with the MANAGED LOCATION clause, not LOCATION. LOCATION is the legacy Hive-metastore syntax; on a Unity Catalog schema it is rejected, and MANAGED LOCATION is the supported form (Create schemas[5]). Setting a MANAGED LOCATION requires the CREATE MANAGED STORAGE privilege on the external location (the Unity Catalog object that registers a cloud storage path) that covers the path. Omit the clause and the object inherits managed storage from the level above: managed storage resolves at the lowest level that sets it, the schema first, then the catalog, then the metastore (Managed storage best practices[2]).
Create a catalog, then a schema inside it
This pair creates a prod catalog and a sales schema, each with its own managed storage; the bracketed keyword is optional and other clauses are omitted:
CREATE CATALOG IF NOT EXISTS prod
MANAGED LOCATION 'abfss://managed@company.dfs.core.windows.net/prod';
-- ...
CREATE SCHEMA IF NOT EXISTS prod.sales
MANAGED LOCATION 'abfss://managed@company.dfs.core.windows.net/prod/sales';
Each MANAGED LOCATION path must sit under a Unity Catalog external location you hold CREATE MANAGED STORAGE on. Drop the clause and that object inherits managed storage from its parent instead.
Managed vs external: who owns the files and the drop
One distinction decides who owns your data files and what a DROP destroys, and it applies the same way to tables and to volumes: managed versus external. In a managed object, Unity Catalog owns both the governance and the underlying files, which live in managed storage. In an external object, Unity Catalog governs access to the metadata, but the files stay in a cloud location you manage (Managed vs external assets[2]).
For tables, a managed table is the default and recommended type. It stores rows in the Delta Lake format unless you request USING iceberg, and you can create one empty, with CREATE TABLE AS SELECT (CTAS), or with CREATE OR REPLACE TABLE (Managed tables[6]). Dropping a managed table deletes both the metadata and the data files; Unity Catalog keeps them recoverable with UNDROP for a default of seven days, then removes them from cloud storage. An external table is created with a LOCATION clause pointing at a path under a Unity Catalog external location, and DROP TABLE removes only the metadata and leaves the files untouched (External tables[7]). That difference is the exam's favorite table trap: if the files must survive the drop, the answer is an external table.
Volumes extend the same model to non-tabular data. A volume is a Unity Catalog object under a schema that governs files of any format, such as images, CSVs, and model artifacts, reached through the path /Volumes/catalog/schema/volume (Volumes[8]). A managed volume stores its files in the schema's managed storage; an external volume, created with CREATE EXTERNAL VOLUME ... LOCATION, registers an existing path under an external location (Create volumes[9]). The figure groups the four objects by the only question that matters at drop time. The drop rule mirrors tables exactly: dropping a managed volume marks its files for deletion, while dropping an external volume leaves them in place.
Views and materialized views
A view and a materialized view read almost the same in SQL, but one stores data and one does not, and that single fact drives every question about them. A standard view is a read-only object that saves the text of a SELECT query; creating it writes no data, and only the query text is registered to the schema (Views[10]). Each time you read the view, Unity Catalog re-runs its query against the base tables, so the results are always current, and the view can restrict or reshape the columns it exposes without copying anything.
A materialized view precomputes and stores its results in an underlying managed table, then keeps them up to date as the source tables change (Views[10]). When you create one, Unity Catalog automatically provisions a serverless pipeline to build and refresh it, billed as serverless Lakeflow Spark Declarative Pipelines usage; the refresh runs incrementally, merging only changed rows when the query allows, and falls back to a full recompute when it cannot (Standalone materialized views[11]). You refresh it on a schedule or on update. The trade the exam probes: a materialized view spends storage and a scheduled refresh to make repeated reads fast, while a standard view spends nothing and recomputes on every read. So a materialized view stores data and must be refreshed; a standard view does neither.
Precompute a daily aggregate as a materialized view
This materialized view stores a per-day sales total so a dashboard reads it instantly; the refresh schedule and other options are omitted:
CREATE OR REPLACE MATERIALIZED VIEW prod.sales.daily_totals AS
SELECT date, sum(amount) AS total
FROM prod.sales.orders
GROUP BY date;
-- ...
Because daily_totals is materialized, the sum is computed once per refresh and stored, not recomputed on every dashboard load.
Query external systems in place with federation
Suppose an operational PostgreSQL database holds live order status, and an analyst needs to join it against lakehouse tables for a quick report without waiting for an ingestion pipeline to copy it in. Lakehouse Federation is the Azure Databricks feature for exactly this: governed, read-only access to an external system that you query in place (Lakehouse Federation[12]).
It takes two objects, created in order. First a connection, a Unity Catalog securable that stores the source's host, JDBC URL, and credentials. Then a foreign catalog, created from that connection, which mirrors the external database's schemas and tables as Unity Catalog objects so they appear alongside your other catalogs (Lakehouse Federation[12]). Once you grant privileges on the foreign catalog, queries against it are pushed down to the source and run in place; no data is copied into Unity Catalog managed storage. The figure traces the connection, the foreign catalog, and the in-place query. PostgreSQL is one of many supported sources here, alongside MySQL, SQL Server, Oracle, Snowflake, Amazon Redshift, Azure Synapse, Google BigQuery, and other Databricks workspaces.
The contrast to hold onto: only a foreign catalog queries the source in place. An ingestion pipeline (Lakeflow Connect, Auto Loader, or COPY INTO) or a managed table built from the source would copy the data into Databricks storage instead. When higher data volumes and lower latency matter more than avoiding a copy, Databricks actually recommends ingesting with Lakeflow Connect over federating.
Self-service discovery with AI/BI Genie
Business users often need an answer, not a query editor. An AI/BI Genie Agent (formerly called a Genie space) is a domain-specific, natural-language interface where a user asks a question in plain English and Genie returns the generated SQL, a results table, and a visualization (Genie[13]). It runs over a curated set of Unity Catalog tables that a data analyst registers to the agent, which turns ad hoc data discovery into self-service without anyone writing SQL.
Accuracy comes from curation, not magic. The analyst who builds the agent supplies general instructions in plain language, example SQL queries, SQL expressions that encode business semantics, and verified answers to trusted questions; together these steer how Genie interprets domain terms and business logic (Tune Genie Agent quality[14]). A vague metric like active customer becomes reliable only once an instruction or example pins down what it means.
One boundary is worth stating plainly, because it is a natural misread. Genie answers from the curated tables it was given plus those instructions, and access is still governed by the querying user's Unity Catalog permissions; it does not roam the whole metastore looking for data (Genie Agents concepts[15]). Widening what Genie can answer means adding tables and instructions to the agent, not granting it blanket access.
Exam-pattern recognition
Most questions on creating and organizing Unity Catalog objects reduce to picking the right object or clause under a stated constraint. Read the constraint in the stem, then match it.
- Isolate production data from development: create a separate catalog per environment, and bind it to the production workspaces if the environment itself must be restricted. The catalog is the isolation unit; separating environments by schema inside one catalog does not isolate them (best practices[2]).
- Set a schema's managed storage: use
MANAGED LOCATION.LOCATIONis Hive-metastore syntax and is rejected on a Unity Catalog schema (create schemas[5]). - The files must survive a drop: choose an external table or external volume, defined with
LOCATION. A managedDROPdeletes the underlying files (managed tables[6]). - Speed up an expensive, repeated query: a materialized view precomputes and stores results and refreshes them; a standard view recomputes on every read (materialized views[11]).
- Query an external database without copying it: create a connection, then a foreign catalog, and query in place. An ingestion pipeline or managed table would copy the data (Lakehouse Federation[12]).
- Govern images, CSVs, or model artifacts: register a volume and reach files at
/Volumes/catalog/schema/volume(volumes[8]). CREATE CATALOGversusCREATE SCHEMA:CREATE CATALOGbuilds a top-level container; a table needs a schema created asCREATE SCHEMA catalog.schema(create catalogs[4]).- Self-service natural-language questions for business users: an AI/BI Genie Agent over a curated set of Unity Catalog tables, steered by instructions and examples (Genie[13]).
Managed vs external tables and volumes: storage and DROP
| Object | Where data lives | Created with | On DROP |
|---|---|---|---|
| Managed table | Catalog or schema managed storage | CREATE TABLE (Delta by default) or CTAS | Deletes metadata and data files |
| External table | A path under a Unity Catalog external location | CREATE TABLE ... LOCATION | Deletes metadata only; files remain |
| Managed volume | Schema managed storage | CREATE VOLUME | Marks the volume's files for deletion |
| External volume | A path under a Unity Catalog external location | CREATE EXTERNAL VOLUME ... LOCATION | Removes the volume; files remain |
Decision tree
Sharp facts the exam loves — give these one last read before exam day.
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
- You have an Azure Databricks workspace attached to a Unity Catalog metastore named metastore1. Legacy pipelines still reference their tables with the three-level legacy pattern hive_metastore.schema.t
- You have two Unity Catalog catalogs named dev and prod that contain identically named schemas and tables. A notebook currently reads a table using the two-level reference sales.orders, and depending o
- You have an Azure Databricks workspace enabled for Unity Catalog. A project team needs a set of managed Delta tables, several views, a volume for raw ingestion files, a SQL UDF, and a registered ML mo
- In the prod catalog you must create two tables that both need to be named customers: one owned by the sales domain and one owned by the marketing domain. Both tables must coexist without a naming coll
- You have an Azure Databricks workspace enabled for Unity Catalog and attached to a shared metastore. A curated lookup table is registered as reference.geo.regions in a shared catalog, and daily sales
- 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.
6 questions test this
- A retailer stores highly sensitive customer PII alongside non-customer reference data in one Unity Catalog metastore. Compliance requires that the sensitive customer data be isolated from the rest of
- Contoso, Inc. has a single Unity Catalog metastore that is shared by three Azure Databricks workspaces belonging to its development, test, and production teams. The design must meet the following requ
- You have two Unity Catalog catalogs named dev and prod that contain identically named schemas and tables. A notebook currently reads a table using the two-level reference sales.orders, and depending o
- Wide World Importers has one Azure Databricks account with a single Unity Catalog metastore in the West Europe region, shared by its development, test, and production workspaces. All lakehouse data si
- You are defining the naming and isolation convention for a new Azure Databricks lakehouse that will host development, test, and production data in one Unity Catalog metastore. The design must ensure t
- You maintain ETL notebooks that must be promoted unchanged from dev to test to prod in Unity Catalog. The solution must ensure that: the same schema and table names exist in every environment so the c
- 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
- You have a Unity Catalog metastore shared by several workspaces. A catalog named reference_catalog holds curated lookup tables. The solution must ensure that: analysts in every workspace can read refe
- A single Unity Catalog metastore is shared by a finance workspace and a sales workspace. The solution must ensure that: finance_catalog is not discoverable or queryable from the sales workspace, so th
- Trey Research has one Unity Catalog metastore that is attached to two production workspaces and one development workspace. A catalog named underwriting_prod holds regulated policy data. A group of dat
- You have a Unity Catalog metastore shared by several workspaces. A catalog named reference_catalog holds curated lookup tables. The solution must ensure that: analysts in every workspace can read refe
- You have a Unity Catalog metastore shared by an analytics workspace and a data-science workspace. You create a new catalog named ml_features that must remain reachable only from the data-science works
- 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.
9 questions test this
- A data engineer on your team was asked to provision a new, independent top-level container in an existing Unity Catalog metastore named metastore1 to hold all of the Marketing department's schemas and
- You have a Unity Catalog catalog named ops that was created with MANAGED LOCATION 'abfss://ops@lake.dfs.core.windows.net/ops'. Inside ops, a data engineer creates a schema named audit without specifyi
- Your Unity Catalog metastore has a metastore-level managed storage location that all existing catalogs use by default. A new regulated catalog named hr must keep its managed tables and volumes in a de
- You have an Azure Databricks workspace enabled for Unity Catalog. You run CREATE CATALOG finance MANAGED LOCATION 'abfss://data@contoso.dfs.core.windows.net/finance'; and it is rejected even though th
- You have two Azure Databricks workspaces named Workspace1 and Workspace2 that are both attached to the same Unity Catalog metastore named metastore1. A new analytics program must be governed as a sing
- You have an Azure Databricks workspace whose Unity Catalog metastore was configured with a metastore-level managed storage location. A data engineer runs CREATE CATALOG reporting without specifying a
- You have an Azure Databricks workspace attached to a Unity Catalog metastore named metastore1. metastore1 does not yet contain a catalog named lakehouse. You need to create a schema named bronze that
- You have an Azure Databricks workspace that was in service before it was enabled for Unity Catalog, so it still exposes a legacy per-workspace Hive metastore as the hive_metastore catalog. A regulated
- Fabrikam wants to separate its production and development lakehouse data on a single Unity Catalog metastore so that: production and development managed tables are stored in different cloud storage lo
- 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.
6 questions test this
- You have an Azure Databricks workspace attached to a Unity Catalog metastore that contains a catalog named analytics. A data engineer runs CREATE SCHEMA analytics.bronze LOCATION 'abfss://lake@adls1.d
- You have an Azure Databricks workspace attached to a Unity Catalog metastore that contains a catalog named analytics. A data engineer runs CREATE SCHEMA analytics.bronze LOCATION 'abfss://lake@adls1.d
- You have an Azure Databricks workspace attached to a Unity Catalog metastore that contains a catalog named analytics. A data engineer runs CREATE SCHEMA analytics.bronze LOCATION 'abfss://lake@adls1.d
- You are creating a schema in Unity Catalog and need to give it a schema-specific cloud storage root for its managed tables and managed volumes. Which type of location should you specify for the schema
- You have an Azure Databricks workspace enabled for Unity Catalog. You create a schema named archive inside a catalog named cold_store without specifying any storage clause. The managed tables you late
- You have an Azure Databricks workspace that is enabled for Unity Catalog and runs Databricks Runtime 18.1. A schema named billing_ops.retention was created with no storage clause, so its managed table
- 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.
7 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A schema named sales_curated contains a table named orders, but the session's current catalog is not the catalog that contains
- You have an Azure Databricks workspace that is enabled for Unity Catalog with a catalog named prod. Three teams must each get their own logical grouping of tables and views inside prod, and you must b
- You have a Unity Catalog metastore that contains a catalog named ops. You need to create a schema named telemetry that is contained in ops and will group streaming Delta tables, views, and volumes for
- You have an Azure Databricks workspace that is enabled for Unity Catalog. The metastore contains an enterprise catalog named corp that all business domains share. You need to organize each domain's De
- You have an Azure Databricks workspace that is enabled for Unity Catalog and a catalog named enterprise already exists. You need a single logical container inside enterprise that groups a project's re
- You have an Azure Databricks workspace that is enabled for Unity Catalog. The metastore, named metastore_main, contains a catalog named prod_analytics. You are writing a deployment notebook that must
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A schema named sales_curated contains a table named orders, but the session's current catalog is not the catalog that contains
- 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.
8 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog with a catalog named analytics and a schema named staging that already has a managed storage location. A data engineering team
- You have an Azure Databricks workspace that is enabled for Unity Catalog. An upstream system drops raw JSON files that an Auto Loader pipeline must ingest. You need a governed landing area for the raw
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A partner analytics application that runs outside Databricks continuously writes sensor readings as Parquet and image files in
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A team has uploaded CSV files to a Unity Catalog volume. They now need to: query the data as governed tabular rows; apply colu
- You have an Azure Databricks workspace enabled for Unity Catalog. A schema named raw contains a managed volume named landing that holds CSV and image files. Data engineers working in SQL, Python, and
- You have an Azure Databricks workspace that is enabled for Unity Catalog and contains a catalog named ml_prod with a schema named vision. A computer-vision team must store and govern large numbers of
- You have an Azure Databricks workspace enabled for Unity Catalog. A directory of shared reference files (lookup CSVs and reference images) must be exposed so that specific groups receive read-only acc
- You have an Azure Databricks workspace that is enabled for Unity Catalog. Your notebooks currently read raw CSV and image files through a legacy DBFS mount that Unity Catalog does not govern. You need
- 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.
5 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog with a catalog named analytics and a schema named staging that already has a managed storage location. A data engineering team
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A partner analytics application that runs outside Databricks continuously writes sensor readings as Parquet and image files in
- You have an Azure Databricks workspace enabled for Unity Catalog. You must register Unity Catalog governance over a set of audit files that another team owns in cloud storage. A strict requirement is
- You have an Azure Databricks workspace that is enabled for Unity Catalog and contains a catalog named ml_prod with a schema named vision. A computer-vision team must store and govern large numbers of
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A schema contains a managed volume named raw_managed and an external volume named raw_external that is registered on an ADLS G
- 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.
17 questions test this
- You have an Azure Databricks workspace enabled for Unity Catalog. Analysts repeatedly write the same join of three Delta tables (customers, orders, and regions) with renamed and derived columns. You n
- You have an Azure Databricks workspace enabled for Unity Catalog. Analysts repeatedly write the same join of three Delta tables (customers, orders, and regions) with renamed and derived columns. You n
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A view named Sales_Summary is defined over a managed Delta table named Sales1. A nightly job fails with an error when it attem
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A data engineer maintains a daily sales summary by running a nightly job that fully recomputes and overwrites a managed Delta
- A data engineering team needs to publish a reusable, read-only query over several Unity Catalog tables. Users in different notebooks must always see the current query result, and the object must not c
- You have an Azure Databricks workspace that is enabled for Unity Catalog. You need a gold dataset that joins a fact table to a slowly changing dimension table and that: is reused by several BI dashboa
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A Power BI dashboard repeatedly runs the same expensive aggregation over a large gold Delta table named Sales_Gold. You need a
- You have an Azure Databricks workspace enabled for Unity Catalog. A very large managed Delta table named ledger is queried by a reconciliation report only a few times per month, and each run must refl
- You have an Azure Databricks workspace that is enabled for Unity Catalog and contains a Delta table named Employees with a salary column. You need a single object that all analysts query, where member
- You have an Azure Databricks workspace enabled for Unity Catalog. A data engineer defined a standard view named daily_sales_summary over a large Delta table to feed an analytics dashboard. Users repor
- You have an Azure Databricks workspace enabled for Unity Catalog. The catalog1.hr schema contains a managed Delta table named Employees with columns employee_id, full_name, department, salary, and ssn
- Contoso, Inc. has an Azure Databricks workspace named Workspace1 that is enabled for Unity Catalog. A managed Delta table named Orders in catalog1.sales holds billions of rows and receives new orders
- You have an Azure Databricks workspace enabled for Unity Catalog. An engineer created a materialized view named customer_contacts to expose a subset of columns from a Delta table for a compliance team
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A notebook defines a temporary view named Curated that reshapes columns from a base Delta table. A separate team's job in anot
- You have an Azure Databricks workspace enabled for Unity Catalog with a Pro SQL warehouse. You need a Unity Catalog object that: stores the precomputed results of a complex aggregation query so repeat
- You have an Azure Databricks workspace enabled for Unity Catalog. A managed Delta table named web_events is continuously appended by an ingestion pipeline. You need a Unity Catalog object that: presen
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A heavy aggregation over a large gold Delta table named Web_Events is queried thousands of times per day by dashboards, while
- 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.
15 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog. You maintain a materialized view named Daily_Revenue that aggregates a large managed Delta table with row tracking enabled. Yo
- You have an Azure Databricks workspace enabled for Unity Catalog. Analysts repeatedly write the same join of three Delta tables (customers, orders, and regions) with renamed and derived columns. You n
- You have an Azure Databricks workspace enabled for Unity Catalog. Analysts repeatedly write the same join of three Delta tables (customers, orders, and regions) with renamed and derived columns. You n
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A data engineer maintains a daily sales summary by running a nightly job that fully recomputes and overwrites a managed Delta
- You have an Azure Databricks workspace that is enabled for Unity Catalog. You need a gold dataset that joins a fact table to a slowly changing dimension table and that: is reused by several BI dashboa
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A Power BI dashboard repeatedly runs the same expensive aggregation over a large gold Delta table named Sales_Gold. You need a
- You have an Azure Databricks workspace enabled for Unity Catalog. A very large managed Delta table named ledger is queried by a reconciliation report only a few times per month, and each run must refl
- You have an Azure Databricks workspace enabled for Unity Catalog. A data engineer defined a standard view named daily_sales_summary over a large Delta table to feed an analytics dashboard. Users repor
- You have an Azure Databricks workspace enabled for Unity Catalog. The catalog1.hr schema contains a managed Delta table named Employees with columns employee_id, full_name, department, salary, and ssn
- Contoso, Inc. has an Azure Databricks workspace named Workspace1 that is enabled for Unity Catalog. A managed Delta table named Orders in catalog1.sales holds billions of rows and receives new orders
- You have an Azure Databricks workspace enabled for Unity Catalog. An engineer created a materialized view named customer_contacts to expose a subset of columns from a Delta table for a compliance team
- You have an Azure Databricks workspace that is enabled for Unity Catalog. You maintain a materialized view named Daily_Revenue that aggregates a large managed Delta table with row tracking enabled. Yo
- You have an Azure Databricks workspace enabled for Unity Catalog with a Pro SQL warehouse. You need a Unity Catalog object that: stores the precomputed results of a complex aggregation query so repeat
- You have an Azure Databricks workspace enabled for Unity Catalog. A managed Delta table named web_events is continuously appended by an ingestion pipeline. You need a Unity Catalog object that: presen
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A heavy aggregation over a large gold Delta table named Web_Events is queried thousands of times per day by dashboards, while
- 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.
9 questions test this
- You are configuring Lakehouse Federation so that Azure Databricks can run federated queries against a Microsoft SQL Server database. Unity Catalog must be able to reach the SQL Server host and authent
- You have an Azure Databricks workspace enabled for Unity Catalog. A single PostgreSQL server hosts three separate databases named sales, hr, and ops. You need each database to appear as its own catalo
- You have an Azure Databricks workspace enabled for Unity Catalog. You must expose a live PostgreSQL database's tables in Unity Catalog and query them in place, without copying any data. A teammate pro
- You have a new Azure Databricks workspace named Workspace1 that is enabled for Unity Catalog. An operational Teradata system named tdprod hosts a database named Billing. Analysts must query Billing's
- You have an Azure Databricks workspace named Workspace1 that is enabled for Unity Catalog. Your team runs an on-premises Teradata system named TeraWarehouse that hosts a production database named Anal
- You have an Azure Databricks workspace enabled for Unity Catalog. A single PostgreSQL server hosts three separate databases named sales, hr, and ops. You need each database to appear as its own catalo
- You are configuring Lakehouse Federation so that Azure Databricks can run federated queries against a Microsoft SQL Server database. Unity Catalog must be able to reach the SQL Server host and authent
- You manage Lakehouse Federation for an Azure Databricks workspace. Three foreign catalogs mirror three databases on a single Oracle server, all created from one connection named oracle_conn. The Oracl
- You have an Azure Databricks workspace enabled for Unity Catalog. A colleague has already created a Unity Catalog connection to an external MySQL database named Sales. You need to make the Sales schem
- 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.
10 questions test this
- You have an Azure Databricks workspace enabled for Unity Catalog. You must expose a live PostgreSQL database's tables in Unity Catalog and query them in place, without copying any data. A teammate pro
- You have an Azure Databricks workspace enabled for Unity Catalog. A nightly Lakeflow ingestion pipeline copies an operational Microsoft SQL Server database named Orders into managed Delta tables so an
- You have an Azure Databricks workspace enabled for Unity Catalog. Data scientists need to query an external Oracle database from Databricks. The Oracle tables must be browsable in Catalog Explorer alo
- You have a new Azure Databricks workspace named Workspace1 that is enabled for Unity Catalog. An operational Teradata system named tdprod hosts a database named Billing. Analysts must query Billing's
- You have an Azure Databricks workspace named Workspace1 that is enabled for Unity Catalog. Your team runs an on-premises Teradata system named TeraWarehouse that hosts a production database named Anal
- You have an Azure Databricks workspace enabled for Unity Catalog. Analysts must query a Snowflake database named Finance from Databricks. The solution must expose Finance in Unity Catalog, must not st
- You have an Azure Databricks workspace enabled for Unity Catalog. Data analysts must query an operational Oracle database named Inventory whose tables and columns change frequently as developers ship
- You have an Azure Databricks workspace enabled for Unity Catalog. A Power BI dashboard built on Databricks must always reflect the very latest rows in an operational Microsoft SQL Server database. The
- You have an Azure Databricks workspace enabled for Unity Catalog. For compliance reasons, the data from an external Azure Synapse (SQL Data Warehouse) database must never be copied into Databricks sto
- You have an Azure Databricks workspace enabled for Unity Catalog. A colleague has already created a Unity Catalog connection to an external MySQL database named Sales. You need to make the Sales schem
- 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.
8 questions test this
- You have an Azure Databricks workspace enabled for Unity Catalog. A developer plans to run DROP TABLE on a managed Delta table named Archive to free the name, but the business still needs Archive's da
- A dataset in cloud object storage is shared by Azure Databricks and another analytics platform. Unity Catalog must govern Databricks access, but dropping the Databricks table definition must not delet
- You have an Azure Databricks workspace enabled for Unity Catalog. A table named Sales is an external Delta table defined with a LOCATION clause over abfss://data@contoso.dfs.core.windows.net/sales, an
- You have an Azure Databricks workspace enabled for Unity Catalog. A nightly ETL job creates dozens of intermediate tables and drops them again at the end of each run. You need the underlying data file
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A data governance policy requires that when a dataset is decommissioned by dropping its table, the underlying data files must
- You have an Azure Databricks workspace named Workspace1 that is enabled for Unity Catalog. A curated set of Delta files already exists at abfss://curated@contoso.dfs.core.windows.net/orders, which is
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A catalog contains a managed Delta table named Orders and an external Delta table named ArchivedOrders, where ArchivedOrders w
- You have an Azure Databricks workspace enabled for Unity Catalog. A partner delivers a large, continuously updated dataset as Avro files in abfss://partner@contoso.dfs.core.windows.net/feed, registere
- 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.
11 questions test this
- You have an Azure Databricks workspace enabled for Unity Catalog. A developer plans to run DROP TABLE on a managed Delta table named Archive to free the name, but the business still needs Archive's da
- You have an Azure Databricks workspace that is enabled for Unity Catalog. To reduce ADLS Gen2 storage costs, an engineer ran DROP TABLE on a large external table named archive.cold.logs that had been
- You have an Azure Databricks workspace enabled for Unity Catalog. A table named Sales is an external Delta table defined with a LOCATION clause over abfss://data@contoso.dfs.core.windows.net/sales, an
- You have an Azure Databricks workspace enabled for Unity Catalog. A nightly ETL job creates dozens of intermediate tables and drops them again at the end of each run. You need the underlying data file
- You have an Azure Databricks workspace enabled for Unity Catalog and an external location already registered for abfss://raw@contoso.dfs.core.windows.net/events. You are writing a CREATE TABLE stateme
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A data governance policy requires that when a dataset is decommissioned by dropping its table, the underlying data files must
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A curated Parquet dataset in an ADLS Gen2 container is written and owned by a separate Azure service, and that service must ke
- You have an Azure Databricks workspace that is enabled for Unity Catalog. An engineer runs CREATE TABLE ... LOCATION 'abfss://raw@adls.dfs.core.windows.net/events' to register existing files as an ext
- You have an Azure Databricks workspace named Workspace1 that is enabled for Unity Catalog. A curated set of Delta files already exists at abfss://curated@contoso.dfs.core.windows.net/orders, which is
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A catalog contains a managed Delta table named Orders and an external Delta table named ArchivedOrders, where ArchivedOrders w
- You have an Azure Databricks workspace enabled for Unity Catalog. A partner delivers a large, continuously updated dataset as Avro files in abfss://partner@contoso.dfs.core.windows.net/feed, registere
- AI/BI Genie answers natural-language questions over a curated data set
An AI/BI Genie Agent (formerly called a 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.
10 questions test this
- Your team already publishes an AI/BI dashboard of monthly KPIs from a curated Unity Catalog schema. Business users keep emailing the analytics team ad hoc follow-up questions that the fixed dashboard
- A Genie Agent for the marketing team returns inaccurate answers. A colleague proposes giving Genie everything by adding every table in the metastore to the agent and removing the curated instructions,
- Sales leaders want to explore curated Unity Catalog sales data by asking follow-up business questions in natural language. They need Azure Databricks to generate the corresponding analytical queries a
- Proseware, Inc. has an Azure Databricks workspace that is enabled for Unity Catalog. Freight operations data lands each night as Parquet files in an ADLS Gen2 container that is registered in Unity Cat
- A Genie Agent for the marketing team returns inaccurate answers. A colleague proposes giving Genie everything by adding every table in the metastore to the agent and removing the curated instructions,
- You manage a Genie Agent that an accounts receivable team uses to explore a curated set of Unity Catalog tables. In the invoices table, the bill_country column stores ISO country codes such as NL and
- Contoso, Ltd. has an Azure Databricks workspace that is enabled for Unity Catalog and contains a catalog named sales_gold with a curated set of governed tables. The regional sales managers are busines
- Your team already publishes an AI/BI dashboard of monthly KPIs from a curated Unity Catalog schema. Business users keep emailing the analytics team ad hoc follow-up questions that the fixed dashboard
- You have an Azure Databricks workspace enabled for Unity Catalog. A catalog named retail_sales contains curated Delta tables and views for weekly revenue, units sold, and returns by store and region.
- Finance users need to ask questions in natural language and receive query results from curated finance tables governed by Unity Catalog. The users should not have to write SQL themselves. Which Azure
- Genie instructions and example queries steer accurate answers
Configuring Genie general instructions, example SQL queries, and verified 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.
10 questions test this
- A Genie Agent for the marketing team returns inaccurate answers. A colleague proposes giving Genie everything by adding every table in the metastore to the agent and removing the curated instructions,
- In your Genie Agent, questions that combine an orders table and a customers table often return wrong numbers because Genie joins the tables on the wrong columns. You need Genie to generate the correct
- Compliance requires that when business users ask your Genie Agent for the company's regulatory capital ratio, Genie must return an answer produced by logic that a data steward has already vetted, and
- You curate a Genie Agent for a sales team. When users ask about sales performance without specifying a time range or sales channel, you want Genie to pause and ask them to clarify those details before
- A Genie Agent for the marketing team returns inaccurate answers. A colleague proposes giving Genie everything by adding every table in the metastore to the agent and removing the curated instructions,
- In a Genie Agent, executives repeatedly ask for quarter-to-date bookings by segment, a high-visibility figure that must be computed with one specific, analyst-verified query every time. You need Genie
- In your Genie Agent, users often ask a broad, ambiguous prompt, give me a breakdown of team performance, and Genie returns inconsistent SQL because the phrase maps to a specific multi-step calculation
- You manage a Genie Agent in Azure Databricks that business analysts use to explore a curated set of sales tables. For several recurring questions, such as open pipeline by region, Genie generates SQL
- Finance users need to ask questions in natural language and receive query results from curated finance tables governed by Unity Catalog. The users should not have to write SQL themselves. Which Azure
- You manage a Genie Agent built on a curated set of Unity Catalog sales tables. Business users frequently ask about net revenue, but Genie calculates it inconsistently, sometimes subtracting returns an
- A streaming table refresh applies the current definition only to newly arrived rows, and an incompatible definition change fails the next refresh instead of converting history
A streaming table refresh evaluates only the rows that arrived after the last update and appends them, using the current definition for that new data alone: modifying a streaming table definition does not automatically recalculate existing data. Removing a filter does not reprocess previously filtered rows, changing column projections does not affect how existing data was processed, and a join with a static snapshot uses the snapshot state seen at the time of the initial processing, so late-arriving data that would have matched an updated snapshot is ignored and facts can be dropped when dimensions are late. If a modification is incompatible with existing data - modifying the CAST of an existing column is the documented example - the next refresh fails with an error rather than converting the stored rows.
Trap Expecting a routine refresh to reapply an edited definition to rows that were already processed - assuming that removing a filter backfills the rows it used to exclude, that a changed projection rewrites existing rows, or that widening an existing column's CAST is absorbed quietly instead of failing the refresh.
3 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog and contains a standalone streaming table named catalog1.silver.orders_clean. The table reads from the Delta table catalog1.bro
- You have an Azure Databricks workspace attached to a Unity Catalog metastore. A standalone streaming table named energy.silver.turbine_metrics has been appending turbine telemetry for four months. Its
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A streaming table named prod.silver.fact_shipments appends shipment events from Azure Event Hubs and uses a left outer join to
- A materialized view refreshes incrementally only when its query is incrementalizable and its Delta sources have row tracking enabled; otherwise the system recomputes the whole query
Each materialized view refresh resolves to one of two methods: an incremental refresh that identifies changes since the last update and merges only new or modified rows, or a full refresh that reruns the entire query and replaces the stored results. Incremental refresh is conditional - the source data has to sit in Delta tables with row tracking enabled (ALTER TABLE ... SET TBLPROPERTIES (delta.enableRowTracking = true)), and the query structure has to be incrementalizable, which EXPLAIN CREATE MATERIALIZED VIEW will tell you. By default Databricks applies a cost model and picks whichever method is cheaper for that refresh, and a REFRESH POLICY in the definition overrides that choice; recreating a source table drops row tracking and must be re-enabled.
Trap Assuming that because a materialized view stores precomputed results it always updates incrementally, and so expecting cheap incremental refreshes without enabling row tracking on the Delta sources or checking that the query can be incrementalized.
5 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A materialized view named sales.gold.daily_revenue aggregates the Delta table sales.silver.orders and is refreshed nightly on
- You have an Azure Databricks workspace that is enabled for Unity Catalog and contains a materialized view named retail.gold.margin_by_store that is refreshed nightly on serverless compute. Its Delta s
- You have an Azure Databricks workspace that is enabled for Unity Catalog and contains a materialized view named retail.gold.brand_revenue that refreshes nightly on a serverless pipeline. The view aggr
- You have an Azure Databricks materialized view named policy.gold.premium_by_region that refreshes on a serverless pipeline. It refreshed incrementally for months, but every scheduled update now fully
- A materialized view is refreshed by a serverless pipeline, but monitoring reports full recomputes. Its Delta sources already have the features needed for incremental refresh. Before changing the view,
- The comments on a Unity Catalog function and on its parameters are what tell Genie when to call it and what an argument should look like
Genie decides whether a registered function answers the question in front of it from the function's Unity Catalog metadata, not from its logic, because it cannot see inside the body it is calling. The COMMENT clause on the function is where you describe what the function does and therefore when it applies, and a COMMENT on each parameter is where you describe the value expected for it; Databricks documents precise comments as what lets a tool-calling agent know when and how to use a function, and a comment that only restates the function name is its example of ineffective documentation. Treat the comment as part of the trusted asset rather than as documentation: a function with a vague comment is registered, governed and reachable, and is still passed over in favour of generated SQL.
Trap Answering a function that Genie never calls by adding more general instruction text or another example query, when the metadata that decides selection - the function comment and its parameter comments - says nothing about when the function applies.
3 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog. Several Genie Agents share the Unity Catalog SQL function billing.metrics.recovery_rate as a trusted asset. Last month the fin
- You have an Azure Databricks workspace that uses Unity Catalog. The SQL function sales.metrics.repeat_rate is a trusted asset in two Genie Agents, Agent1 and Agent2. Its comment reads 'Returns repeat_
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A Genie Agent named SupplyAgent uses the Unity Catalog SQL function supply.metrics.fill_rate as a trusted asset. The function
- Genie can only call a registered Unity Catalog SQL function with user-supplied parameters - it cannot view or modify the function's SQL - and every user of the Genie Agent needs EXECUTE on that function
A SQL function is the trusted-asset shape for logic too complex for a static or parameterized example query: it lives in Unity Catalog, Genie invokes it with parameter values taken from the user's question, and Genie can neither read nor rewrite the SQL inside it, which is why it suits logic that must not be surfaced or altered. That opacity is also the access-control consequence: users of the Genie Agent must hold the EXECUTE privilege on any SQL function used as a trusted asset, so sharing the Genie Agent alone does not make the function usable. Registering the function once also lets the same certified definition be shared across teams rather than restated as instruction text in every Genie Agent.
Trap Assuming that granting a business user access to the Genie Agent is enough for them to get answers from a function-backed trusted asset, or that Genie will adapt the function's SQL to handle a related question - Genie needs an explicit EXECUTE grant on the function and treats its body as a black box it can only call.
3 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A senior analyst owns the Unity Catalog SQL function ops.metrics.backlog_age and holds EXECUTE on it, together with CAN RUN on
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A Genie Agent named RevenueAgent uses the Unity Catalog SQL function sales.metrics.quota_attainment as a trusted asset. Sales
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A Genie Agent named ClaimsAgent uses the Unity Catalog SQL function policy.metrics.loss_ratio as a trusted asset. The function
- A managed table or volume is written to the schema's managed storage location if the schema has one, otherwise the catalog's, otherwise the metastore's, so the lowest level that defines a location wins.
Unity Catalog resolves managed storage from the most specific level outward: schema first, then catalog, then metastore. Because a workspace newly enabled for Unity Catalog carries no metastore-level managed storage at all, assuming the data will fall back to the metastore is not safe, and the recommended isolation lever is a managed location on the catalog for each environment rather than one on every schema. Several catalogs and schemas may safely share a single managed location, because Unity Catalog isolates each object's data beneath it.
Trap That managed data always lands in the metastore's root storage, or that a location set on the catalog overrides one already set on the schema.
2 questions test this
- Contoso has an Azure Databricks workspace that was recently enabled for Unity Catalog, and the attached metastore was created without a metastore-level managed storage location. A platform engineer mu
- Contoso has one Unity Catalog metastore shared by development, test, and production workloads in an Azure Databricks workspace. Each environment must store its managed tables and managed volumes in it
- A catalog or schema managed location is legal only inside an already-registered external location, while metastore-level managed storage must sit outside external locations and no managed storage may overlap an existing external table or volume path.
The path named as a catalog's or schema's managed location must fall inside storage that is already registered in Unity Catalog as an external location, which is why an otherwise well-formed catalog or schema creation is refused when the container was never registered. Metastore-level managed storage is the exception and must not sit inside an external location, and no managed storage at any level may overlap the path of an existing external table or external volume.
Trap That any storage container the workspace can reach may be named as a managed location, and that overlapping an existing external table's path is untidy rather than rejected.
3 questions test this
- You have an Azure Databricks workspace enabled for Unity Catalog. A catalog named ops must be given a managed storage location. The proposed path sits inside a registered external location and the eng
- You have an Azure Databricks workspace enabled for Unity Catalog. An engineer runs a CREATE SCHEMA statement for analytics.curated that includes a MANAGED LOCATION pointing to a path in an ADLS Gen2 c
- Contoso's Unity Catalog metastore was created without managed storage. An account admin plans to add a metastore-level managed storage location and proposes a container path that is already registered
- Altering a catalog's or schema's managed location governs only managed objects created after the change and physically moves no existing table or volume data.
Managed storage is resolved at the moment an object is created, so changing the location later re-points new managed tables and volumes only; everything already written stays where it first landed. A requirement to relocate data that already exists is therefore answered by recreating or copying those objects into the new location, never by the alter statement on its own.
Trap That setting a new managed location on the catalog or schema migrates the managed tables and volumes that are already there into the new container.
2 questions test this
- You have an Azure Databricks workspace enabled for Unity Catalog. The schema research.raw has a managed location in a container named container1 and contains a managed volume named landing that holds
- Contoso must move the data of 12 existing managed tables in the catalog finance from its original ADLS Gen2 container into a new container required by a data residency policy. An administrator has alr
- A shallow clone is the answer when a receiving catalog needs a writable copy that may freely diverge with no upfront data duplication, and a deep clone is the answer when the copy must outlive the source, sit in different storage, or go to a team that will never have access to the source's files.
A shallow clone copies metadata only and references the source table's existing data files, so it completes in seconds against a multi-terabyte table and duplicates no bytes; a deep clone physically copies the data and is therefore the choice when the copy must stand on its own. Writes to either clone leave the source untouched, and re-issuing the same clone against an existing target syncs it incrementally instead of rebuilding it, which is what makes a clone the repeatable environment-refresh answer rather than a one-off query-built copy.
Trap That a development copy of a large production table must be a deep clone or a query-built copy so the team can write to it, and that refreshing that copy means dropping and rebuilding it each time.
2 questions test this
- You have an Azure Databricks workspace that is attached to a Unity Catalog metastore. A catalog named prod_catalog contains a managed Delta table named Telemetry that holds 40 TB of data. A developmen
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A catalog named finance contains a managed Delta table named Ledger. A partner engineering team works in a separate catalog an
- Shallow clone applies to Delta tables only and a clone must be managed-to-managed or external-to-external, so a managed source cannot be shallow cloned into an external target.
Unity Catalog requires the clone target to be the same kind of table as its source, and shallow clone additionally supports Delta tables only. A plan to shallow clone a production managed table into an external table in a development container fails on that rule alone, whatever privileges the requester holds, and has to be restructured as a managed target in the development catalog or as a deep clone.
Trap That any governed table can be shallow cloned to any container the user can write to, so the plan only needs the right privileges on the target.
2 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A catalog named lakehouse contains a managed Apache Iceberg table named Events. An analytics team asks you to provision a zero
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A catalog named prod contains a managed Delta table named Claims. A developer submits a plan to create a zero-copy shallow clo
- Running VACUUM on the source of a Unity Catalog shallow clone does not break the clone, because Unity Catalog tracks which source files the clone still references.
Under the legacy metastore a shallow clone could be orphaned when its base table was vacuumed, and that belief is carried forward into Unity Catalog scenarios where it no longer holds. Unity Catalog tracks the source files a clone still depends on, so the clone keeps reading them, and the same reference tracking is why vacuuming the base table can require access to the clone.
Trap That the shallow clone must be recreated, or promoted to a deep clone, before the source table's retention job runs, because VACUUM will remove the files it points at.
3 questions test this
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A catalog named dev contains a managed shallow clone named DevSales whose base table is the managed Delta table prod.Sales. Th
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A catalog named dev contains DevInvoices, a managed shallow clone of the managed Delta table prod.Invoices. The development te
- You have an Azure Databricks workspace that is enabled for Unity Catalog. A nightly maintenance job runs VACUUM on prod.Contracts, a managed Delta table, on a dedicated access mode cluster running as
References
- What is Unity Catalog?
- Unity Catalog best practices
- Workspace-catalog binding
- Create catalogs
- Create schemas
- Unity Catalog managed tables for Delta Lake and Apache Iceberg
- Work with external tables
- What are Unity Catalog volumes?
- Create and manage Unity Catalog volumes
- What is a view?
- Use standalone materialized views
- Connect to external databases and catalogs
- Genie Agents
- Tune Genie Agent quality
- Genie Agents concepts