05 Query multiple catalogs
Use MigrationRoom chat to query Unity, another REST catalog, and native ClickHouse together.
Outcome
One ClickHouse query has joined native migration_demo.orders, Unity Catalog
customer, and a second REST-catalog nation table. This demonstrates the
DataLakeCatalog
engine querying Unity and other catalogs alongside native tables without first copying
all of their data.
What the instructor prepared
The instructor has attached two read-only DataLakeCatalog databases to your ClickHouse
service using workshop-scoped credentials:
unity_tpch, backed by the Databricks Unity Catalog; andrest_catalog_tpch, backed by a separate Iceberg REST catalog.
The attachment is infrastructure preparation, not one of MigrationRoom's six migration buttons. Credentials remain outside chat. You will use the MigrationRoom agent and its ClickHouse tools to prove metadata access, object reads, and cross-catalog composition.
Run the catalog proof through chat
Paste this request into the Databricks → ClickHouse Cloud chat pane:
Use clickhousectl only—no Python—and do not display credentials or CREATE DATABASE DDL.
1. SHOW TABLES from unity_tpch and rest_catalog_tpch.
2. Read actual data with count() from unity_tpch.`tpch.customer` and
rest_catalog_tpch.`tpch.nation`.
3. Run one query that joins native migration_demo.orders to Unity customer and the REST
nation table for orders from 1995, grouped by nation with order count and revenue.
Return at most 100 rows.
4. For data queries, set max_execution_time=30 and max_rows_to_read=100000000.
5. Show the result and explain which catalog or RBAC boundary governs each input.Expand the clickhousectl tool calls and confirm the agent performed table reads—not
just metadata listing. A successful hybrid result demonstrates three execution paths in
one ClickHouse query:
| Input | Storage path | Control boundary |
|---|---|---|
migration_demo.orders | Native MergeTree data copied by MigrationRoom | ClickHouse RBAC and lifecycle |
Unity customer | Zero-copy catalog/object read | Unity metadata plus catalog/storage authorization |
REST nation | Zero-copy catalog/object read | REST catalog plus its object-store authorization |
What is difficult in a Databricks-only design
The notable capability is not merely reading Unity data. It is composing a native ClickHouse serving table, Unity-managed lake data, and a separate REST catalog in one ClickHouse query while each source retains its own authorization and freshness path. Reproducing that placement in one Databricks query commonly requires additional federation, ingestion, or catalog-integration work.
Keep the conversation link and a screenshot containing the two counts and hybrid result. Do not capture connection strings, catalog credentials, or generated DDL.
- Unity and REST metadata were listed through the chat UI.
- Both external tables returned real row counts.
- The native/Unity/REST join returned a result without an adapter table.
- The three governance and freshness boundaries were stated separately.
- The UI checkpoint contains no credential.
Continue to 06 Build the native hot path.