Glossary Entry

Google BigQuery: Architecture, Iceberg Tables, and Lakehouse Fit

Google BigQuery is a serverless cloud data warehouse built on the Dremel engine. See how it reads and writes Apache Iceberg tables in an open lakehouse.

Written by Alex Merced

Google BigQuery is a fully managed, serverless cloud data warehouse for analyzing data up to petabyte scale. It is built on Dremel, Google’s internal query engine, and hides the infrastructure from the user: there are no servers to provision and no clusters to manage. Users write SQL (GoogleSQL), and BigQuery distributes the work across Google’s shared compute pool.

Because it is offered as a serverless service, teams do not size or patch clusters. Analysts and engineers spend their time on queries, models, and BigQuery ML rather than on database operations.

The Serverless Dremel Architecture

BigQuery’s performance comes from three pieces of Google infrastructure: the Capacitor storage format, the Dremel execution engine, and the Jupiter data center network.

The Storage Layer: Capacitor

Data within BigQuery is stored in a proprietary columnar storage format called Capacitor. When data is ingested, BigQuery compresses and encrypts it and stores it on Google’s distributed file system (Colossus). Because the layout is columnar, a query reads only the columns it references, which cuts I/O for aggregations. Capacitor also keeps statistics that let the engine skip data it does not need.

The Compute Layer: Dremel

Compute is separate from storage. BigQuery executes queries with Dremel, a multi-tenant engine organized as an execution tree. When a user submits a query, a root server receives the request and routes it to intermediate mixer servers, which distribute the work to leaf workers that run in units of compute called slots. The leaf workers scan Capacitor data in parallel, partial results flow back up the tree and are combined at the mixers, and the root server returns the final result.

The Network Layer: Jupiter

Because storage and compute are separate, data has to move between Colossus and the Dremel workers, and shuffles move between workers. Google’s Jupiter network provides petabit-scale bisection bandwidth, which keeps remote reads and shuffles from becoming the bottleneck.

Serverless Resource Allocation

In provisioned warehouses, an organization picks a cluster or warehouse size. Too small and queries queue; too large and money is wasted.

BigQuery allocates slots to each query dynamically, so a small query uses few slots and a large join uses many. Organizations either pay on demand (per TiB of data scanned) or buy capacity through BigQuery editions for predictable workloads.

Embedded Machine Learning (BigQuery ML)

Historically, training a model meant exporting data from the warehouse into a separate Python environment and maintaining the pipeline that moved it.

BigQuery ML lets analysts create, train, evaluate, and run models with SQL statements inside BigQuery.

-- Creating a machine learning model directly in SQL
CREATE MODEL `project.dataset.customer_churn_model`
OPTIONS(model_type='logistic_reg') AS
SELECT
  user_id,
  account_tenure,
  recent_activity_score,
  churn_flag
FROM
  `project.dataset.historical_customer_data`;

Training next to the data removes an export step and the pipeline that would otherwise maintain it.

BigQuery in an Open Lakehouse

BigQuery’s native storage is proprietary, but Google now offers several ways to work with Apache Iceberg tables stored in your own Cloud Storage buckets. BigQuery Omni extends the same query engine to data in Amazon S3 and Azure.

OptionWho writesWho readsCatalog
BigQuery native tablesBigQueryBigQuery (other engines through the Storage Read API)BigQuery
Iceberg managed tables (formerly BigLake tables for Apache Iceberg in BigQuery)BigQuery, with DML, streaming ingest, and automatic file optimizationBigQuery; other engines through exported Iceberg metadataBigQuery
Iceberg tables in BigLake metastoreOpen source engines such as Spark through the Iceberg REST catalogBigQuery, Spark, Trino, and other REST clientsBigLake metastore (Iceberg REST)

The practical question is which engine owns writes. If BigQuery is the main writer, managed Iceberg tables give you warehouse features on open files. If Spark, Flink, or another engine writes, the BigLake metastore REST catalog lets BigQuery read the same tables without copying them. Engines such as Dremio can also query BigQuery directly and join it with Iceberg tables in other clouds; see Connect Google BigQuery to Dremio Cloud. For catalog choices across clouds, read What Are Lakehouse Catalogs? and Multi-Cloud REST Catalog Topologies.

Summary

BigQuery is a serverless warehouse that separates storage and compute and allocates slots per query. Its Iceberg support means a data lakehouse on Google Cloud can keep data in open files while still using BigQuery as one of several engines.

Learn More

To learn more about the Data Lakehouse, read The Lakehouse Built for Everyone by Alex Merced. You can find this and other books by Alex Merced at books.alexmerced.com.

Related Terms

Cloud Data Warehouse vs Open Lakehouse: Storage, Formats, and Lock-In

A cloud data warehouse is a managed analytical database such as Snowflake or BigQuery. Compare its storage, formats, and lock-in with an open Iceberg lakehouse.

What is Dremio Cloud?

Dremio Cloud is Dremio's fully managed lakehouse service. It queries data where it lives, including Apache Iceberg tables, with no clusters to run yourself.

What is a Data Warehouse?

A data warehouse is a central, structured store built for analytical SQL queries. See how OLAP, ETL, and cloud warehouses led to the open lakehouse.

What is Apache Iceberg?

Apache Iceberg is an open table format for large analytic tables on object storage, covering its metadata tree, hidden partitioning, time travel, and catalogs.

What is Storage Layer?

The storage layer is the tier of a data architecture that holds the physical data files, such as Parquet in object storage, separate from the compute engines.

Trino and Apache Iceberg: How It Compares to Spark and Dremio

Trino is an open source distributed SQL engine that queries data where it lives. See how it reads and writes Iceberg tables and compares to Spark and Dremio.

What is Google Cloud Storage (GCS)?

Google Cloud Storage is Google Cloud's object storage service. Learn about multi-region buckets, storage classes, lifecycle rules, and GCS as lakehouse storage.

What is MotherDuck?

MotherDuck is a serverless cloud analytics service built on DuckDB that runs queries across your laptop and the cloud and reads Parquet in object storage.

What is Multi-Cloud Architecture?

Multi-cloud architecture is the use of more than one cloud provider at once, and how Apache Iceberg tables and federated query engines support it.

Work with Alex