Many organizations now use more than one data platform. A company may use BigQuery for analytics, Databricks for data engineering and AI workloads, and Snowflake for business data or existing warehouse workloads.
The problem starts when teams need to combine data across these platforms.
The traditional solution is to copy data from one platform to another. That can work, but it introduces additional storage, pipelines, synchronization delays, security configuration, and operational overhead.
A different approach is to query data where it already lives.
Google Cloud's newer lakehouse capabilities allow BigQuery to work with external catalogs such as Databricks Unity Catalog and Snowflake Horizon Catalog through Apache Iceberg-based federation. This creates a zero-copy architecture where the data files remain in their existing storage environment while BigQuery provides another query and analytics engine.
This article explains how the architecture works, what "without moving data" actually means, and what developers should consider before using it in production.
What Does "Without Moving Data" Mean?
It is important to understand the terminology.
Without moving data does not mean that no data bytes are transferred while a query executes.
It means that you do not create another permanent copy of the source dataset simply to make it available to BigQuery.
For example, consider this architecture:
BigQuery
|
Federated Lakehouse
|
+------------+------------+
| |
Databricks Unity Catalog Snowflake Horizon
| |
Iceberg tables Iceberg tables
| |
Existing storage Existing storageThe source data remains in its existing storage layer.
BigQuery reads the metadata required to understand the tables and then accesses the underlying data files when a query needs them.
This is different from an ETL pipeline such as:
Databricks
|
| ETL / ELT
v
Cloud Storage
|
| Load
v
BigQueryThe second architecture creates another managed copy of the data.
Federation removes that requirement for supported workloads.
Why This Architecture Matters
Copying data between platforms creates several problems.
Additional storage
The same dataset may exist in multiple locations.
For example:
Databricks storage -> 10 TB
BigQuery copy -> 10 TB
Backup copy -> additional storageThe data itself may not have changed, but the infrastructure cost has.
Pipeline maintenance
A replicated architecture usually requires jobs that handle:
- Initial loads
- Incremental updates
- Schema changes
- Failed transfers
- Retry logic
- Data validation
- Duplicate handling
- Monitoring
Every additional pipeline becomes another production dependency.
Data freshness
If a dataset is copied every hour, BigQuery is not necessarily showing the latest source state.
That may be acceptable for reporting, but it becomes a problem for operational analytics or AI workloads that need current data.
Governance duplication
Security policies may need to be configured independently in multiple platforms.
This increases the chance that access rules become inconsistent.
Federation changes the architecture by allowing BigQuery to work with external data through its metadata and access mechanisms instead of requiring a separate permanent copy.
BigQuery and Databricks
Databricks commonly manages data through Unity Catalog and lakehouse table formats such as Apache Iceberg.
Google Cloud's borderless Lakehouse supports querying Databricks-managed Apache Iceberg tables directly from BigQuery. In this architecture, BigQuery uses the Iceberg metadata and reads the underlying files rather than requiring a separate BigQuery copy.
A simplified flow looks like this:
Application / BI Tool
|
v
BigQuery
|
v
Lakehouse runtime catalog
|
v
Databricks Unity Catalog
|
v
Apache Iceberg metadata
|
v
Parquet data filesThis is especially useful when Databricks continues to own the data engineering workflow while another team uses BigQuery for analytical queries.
BigQuery and Snowflake
Snowflake can also participate in this type of open lakehouse architecture when the data is exposed through supported catalog and Iceberg interoperability.
The important point is that the integration should not be treated as simply connecting two SQL endpoints.
Instead, the architecture is based on metadata and open table formats.
A simplified model is:
BigQuery
|
Lakehouse federation
|
+------------+------------+
| |
Databricks Unity Catalog Snowflake Horizon
| |
Iceberg tables Iceberg tables
| |
Object storage Object storageGoogle Cloud's current Lakehouse documentation lists Snowflake Horizon Catalog as one of the supported external catalogs for cross-cloud connections.
This makes the open table format important.
If the source platform controls both the metadata and a proprietary storage format, interoperability can be much harder. With Apache Iceberg, the table metadata and data layout are designed to work across compatible engines.
The Role of Apache Iceberg
Apache Iceberg is one of the important pieces behind this architecture.
An Iceberg table is more than a directory containing Parquet files.
It maintains metadata describing the table state, including information about:
- Table schemas
- Snapshots
- Data files
- Partition information
- File statistics
- Schema evolution
- Table versions
This metadata allows a query engine to understand which files are relevant to a query.
For example, suppose a table contains ten years of sales data:
sales/
2017/
2018/
2019/
2020/
2021/
2022/
2023/
2024/
2025/
2026/A query such as:
SELECT
customer_id,
SUM(amount)
FROM sales
WHERE sale_date >= DATE '2026-01-01'
GROUP BY customer_id;should not require scanning every historical file.
The table metadata can help the query engine identify the relevant data files.
This is one reason open table formats are useful for cross-engine analytics.
A Practical Architecture
Suppose a company has three teams.
The data engineering team uses Databricks.
The finance team uses Snowflake.
The analytics team uses BigQuery.
Instead of copying everything into every platform, the organization can establish a shared data architecture.
BigQuery
Analytics / AI
|
Lakehouse Federation
|
+---------------+---------------+
| |
Databricks Unity Catalog Snowflake Horizon
| |
Iceberg tables Iceberg tables
| |
Existing storage Existing storageThe responsibilities remain separated.
Databricks can continue handling engineering and transformation workloads.
Snowflake can continue supporting workloads already built around its environment.
BigQuery can provide analytics and AI workloads against the federated data.
This avoids turning BigQuery into a mandatory data-copy destination.
Setting Up the Connection
The exact configuration depends on the source catalog, cloud environment, region, authentication model, and organization policies.
At a high level, the process is:
1. Identify the source catalog
Start by identifying where the table metadata is managed.
For Databricks, this may be Unity Catalog.
For Snowflake, this can involve Horizon Catalog and Iceberg-based interoperability.
2. Verify the table format
Confirm that the datasets you want to expose are compatible with the federation architecture.
For Iceberg-based access, verify:
Table format -> Apache Iceberg
Metadata catalog -> Supported catalog
Storage -> Accessible by the configured connection
Permissions -> Read access available
Region -> SupportedDo not assume that every table in a platform is automatically available for federation.
3. Create the cross-cloud connection
BigQuery uses connections to establish access to external data sources and catalogs.
The current BigQuery Lakehouse workflow supports cross-cloud connections for external catalogs including Databricks Unity Catalog and Snowflake Horizon Catalog.
The connection should be treated as an infrastructure resource, not as something individual developers configure independently.
4. Configure IAM
The developer running the query needs permission to discover metadata and execute the BigQuery job.
Google Cloud documentation identifies roles such as:
BigQuery Data Viewer
BigQuery Job User
BigLake Viewer
Join the conversation! Your thoughts help the community grow.