8.3 BigLake and Hybrid Querying across Clouds

Key Takeaways

  • BigLake is a unified storage engine that extends BigQuery's managed governance, fine-grained access control, and compute acceleration directly to data lakes on Google Cloud Storage, AWS S3, and Microsoft Azure Data Lake Storage Gen2 (ADLS Gen2).
  • BigLake uses Cloud Resource Connections to delegate storage access: end users and analytical tools query external object stores through BigQuery without requiring read permissions on the underlying GCS buckets or cloud storage accounts.
  • Fine-grained security policies—including row-level access control (CREATE ROW ACCESS POLICY) and column-level security using Dataplex policy tags—are enforced natively on BigLake tables across open file formats such as Parquet, ORC, Avro, and Apache Iceberg.
  • Object Tables provide structured SQL metadata indexing over unstructured data (images, audio, PDF documents, video), allowing queries to combine file attributes with Vertex AI models and BigQuery remote functions.
  • BigLake Metastore and native Apache Iceberg integration provide an open, cross-engine catalog that allows BigQuery, Apache Spark, and Presto/Trino to operate concurrently on the same underlying lakehouse datasets with ACID transactions.
Last updated: September 2026

8.3 BigLake and Hybrid Querying across Clouds

[!NOTE] BigLake represents a major architectural paradigm shift for the Google Cloud Professional Data Engineer exam. Rather than forcing organizations to duplicate petabytes of open-format data from object stores into proprietary data warehouses, BigLake unifies data lakes and data warehouses under a single, secured BigQuery governance and compute layer.

Modern enterprise analytics architectures frequently maintain vast data lakes built on object storage services such as Google Cloud Storage (GCS), Amazon S3, and Microsoft Azure Data Lake Storage Gen2 (ADLS Gen2). While object storage offers cost-effective scalability for open formats (such as Apache Parquet, Apache ORC, and Apache Iceberg), traditional data lakes suffer from critical limitations: fragmented access control, lack of fine-grained column and row security, absence of unified metadata indexing, and slow query performance.

Google BigLake resolves these challenges by decoupling BigQuery's management, governance, and acceleration capabilities from Colossus, extending them directly across open object stores and multi-cloud environments.


BigLake Architecture and the Unified Storage Engine

BigLake functions as a storage engine abstraction layer that sits between analytical query engines (BigQuery, Apache Spark, Trino, Presto, Vertex AI) and physical object storage. When querying open files through BigLake, users gain the benefits of BigQuery managed tables without data replication or vendor lock-in.

The BigLake Connector and Runtime Acceleration

When a query executes against a BigLake table, BigLake applies runtime optimizations previously restricted to internal Colossus tables:

  • Vectorized Parquet and ORC Readers: BigLake incorporates Capacitor-like vectorized readers that unpack columnar Parquet blocks directly into CPU SIMD registers, skipping unreferenced columns and reading only requested data slices.
  • Metadata Caching: BigLake automatically caches file-level metadata (such as Parquet file footers and min/max row-group statistics) inside BigQuery. Instead of issuing thousands of high-latency GCS GetObject or ListObjects API calls to discover file schemas during query execution, the query engine evaluates cached metadata instantly.
  • Dynamic File Pruning: Leveraging cached partition keys and column min/max boundaries, BigLake eliminates non-matching Parquet files before initiating network reads across Google Cloud Storage.

Multi-Cloud Federation with BigQuery Omni

Through BigQuery Omni, BigLake operates across multi-cloud environments:

  • Google deploys the Borg-based BigQuery query engine directly inside Amazon Web Services (AWS) data centers (e.g., aws-us-east-1) and Microsoft Azure regions (e.g., azure-eastus).
  • When an analyst in Google Cloud executes a query against an S3-based or ADLS Gen2-based BigLake table, the query compute runs locally within AWS or Azure hardware.
  • Only the aggregated final query results (not raw petabytes of source data) are transferred back to Google Cloud, completely eliminating expensive multi-cloud data egress fees and minimizing cross-cloud network latency.

Security Delegation via Cloud Resource Connections

A central security challenge in enterprise data lakes is the "all-or-nothing" access dilemma. If an analyst requires access to query a subset of columns in a Parquet dataset in Cloud Storage, traditional architectures force administrators to grant roles/storage.objectViewer on the entire GCS bucket. Once granted, the analyst can download all raw files, bypassing data warehouse audit logging and data masking.

BigLake eliminates this vulnerability through Security Delegation powered by Cloud Resource Connections (bigquery.googleapis.com/connection).

How Credential Delegation Operates

  1. Connection Creation: An administrator creates an external Cloud Resource Connection in BigQuery. Google Cloud automatically provisions a dedicated Google-managed service account for that connection (e.g., bqcx-123456789-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com).
  2. Storage IAM Binding: The administrator grants the connection's service account read permissions on the underlying GCS bucket (roles/storage.objectViewer). For AWS S3 or Azure ADLS Gen2, the connection maps to an AWS IAM Role (via AWS STS and Workload Identity Federation) or an Azure Enterprise Application / Service Principal.
  3. User Access Authorization: Individual data analysts, BI tools, and data science workloads are granted BigQuery roles (roles/bigquery.dataViewer or roles/bigquery.user) on the BigLake dataset or table. Crucially, users are granted ZERO direct permissions on the Cloud Storage bucket or AWS S3 bucket.
  4. Governed Query Execution: When the user submits a SQL query, BigQuery assumes the identity of the Cloud Resource Connection to read the underlying Parquet files on the user's behalf. BigQuery enforces all table-level, row-level, and column-level security policies in memory before returning sanitized rows to the user.

This pattern guarantees that data consumers cannot bypass governance by downloading raw files directly through the Cloud Storage API, gsutil, or third-party S3 tools.


Fine-Grained Security Governance over Open Formats

BigLake bridges the governance gap between open file formats and enterprise warehouse security by enforcing row-level access control, column-level security, and dynamic data masking directly over raw Parquet, ORC, Avro, and Iceberg files.

Row-Level Access Policies

Administrators can define row-level security filters using standard SQL DDL. BigLake dynamically applies the filter predicate at query runtime without modifying or duplicating the underlying object storage files:

-- Restricting EMEA analysts to view only EMEA regional data in raw Parquet files
CREATE ROW ACCESS POLICY emea_filter
ON `project.biglake_dataset.customer_parquet_table`
GRANT TO ('group:emea-analysts@example.com')
FILTER USING (region = 'EMEA');

When a member of emea-analysts queries customer_parquet_table, BigQuery pushes the filter down to the BigLake connector, scanning and returning only records matching region = 'EMEA'. If an executive with global access queries the same table, all rows are returned.

Column-Level Security and Dynamic Data Masking

Through integration with Dataplex Catalog (the successor to the retired Data Catalog), organizations define centralized Policy Tag Taxonomies representing data sensitivity tiers (e.g., PII > High > SSN).

  • Policy Tag Assignment: Policy tags are attached directly to schema fields within the BigLake table definition.
  • Fine-Grained Reader Access: Users must possess the roles/datacatalog.categoryFineGrainedReader role on the specific policy tag to view plaintext values.
  • Dynamic Data Masking: For unauthorized users, BigLake dynamically masks the column output in memory (e.g., displaying ***-**-**** for SSNs, hashing with SHA-256, or substituting NULL) without breaking the query or altering the underlying immutable Parquet files in Cloud Storage.

Object Tables: Unstructured Data Analytics

Historically, data warehouses operated exclusively on structured and semi-structured tabular records. However, enterprise data lakes store massive repositories of unstructured data—such as medical images (DICOM), audio recordings, PDF invoices, and video feeds.

BigLake introduces Object Tables, a specialized table type that provides a structured SQL metadata index over unstructured objects stored in Cloud Storage.

Object Table Schema and Attributes

An Object Table automatically scans a designated Cloud Storage bucket prefix and exposes a read-only schema containing rich object metadata:

  • uri: The fully qualified gs:// path to the object.
  • generation: The object generation number for version tracking.
  • content_type: The MIME type (e.g., application/pdf, image/jpeg).
  • size: The file size in bytes.
  • md5_hash: The cryptographic hash of the object payload.
  • updated: Timestamp of last file modification.
-- Creating an Object Table over PDF contract documents
CREATE EXTERNAL TABLE `project.legal_mart.vendor_contracts`
WITH CONNECTION `us.legal-gcs-connection`
OPTIONS (
  object_metadata = 'SIMPLE',
  uris = ['gs://corp-legal-documents/contracts/*.pdf']
);

Integration with Vertex AI and BigQuery Remote Functions

Object Tables transform unstructured data into first-class analytical assets by integrating directly with Vertex AI foundational models (such as Gemini) and BigQuery Remote Functions (executed via Cloud Functions or Cloud Run):

-- Performing multimodal document extraction using Gemini Pro via SQL
SELECT
  uri,
  size,
  ML.GENERATE_TEXT(
    MODEL `project.models.gemini_multimodal`,
    TABLE `project.legal_mart.vendor_contracts`,
    STRUCT(
      'Extract the vendor name, termination date, and total contract value as JSON.' AS prompt
    )
  ) AS contract_summary
FROM `project.legal_mart.vendor_contracts`
WHERE content_type = 'application/pdf'
  AND size < 10485760; -- Only process files under 10 MB

BigLake Metastore and Apache Iceberg Integration

As organizations adopt open table formats to build modern Lakehouses, Apache Iceberg has emerged as the open-source industry standard. Apache Iceberg provides full ACID transactional guarantees, time-travel queries, schema evolution, and hidden partitioning over open Parquet files.

BigLake Metastore

BigLake Metastore is a fully managed, serverless, centralized catalog service compatible with the Apache Hive Metastore (HMS) interface and the Apache Iceberg REST catalog specification.

  • Unified Cross-Engine Access: BigLake Metastore allows multiple disparate processing engines—including BigQuery, Dataproc (running Apache Spark, Apache Flink, Presto, and Trino), and Vertex AI—to access and modify the same underlying Iceberg tables simultaneously.
  • Zero Infrastructure Maintenance: Eliminates the operational burden of managing, patching, and scaling self-hosted MySQL/PostgreSQL Hive Metastore clusters.
  • Consistent ACID Transactions: Coordinates snapshot commits across engines, preventing concurrency conflicts and metadata corruption.
Feature / CapabilityGoogle Cloud Storage (GCS)AWS S3 (BigQuery Omni)Azure ADLS Gen2 (BigQuery Omni)Key Exam Considerations
Storage ProtocolCloud Resource Connection (GSA)AWS IAM Role via AWS STS FederationAzure Service Principal / Managed IdentityKeyless authentication across all providers via Workload Identity
Compute LocationGoogle Cloud Regions (e.g., us-central1)AWS Regions (e.g., aws-us-east-1)Azure Regions (e.g., azure-eastus)Compute executes locally in the cloud where data resides (zero egress)
Row & Column SecurityFully Supported (Row Policies & Policy Tags)Fully Supported (Row Policies & Policy Tags)Fully Supported (Row Policies & Policy Tags)Centralized governance configured via Dataplex regardless of physical storage
Supported FormatsParquet, ORC, Avro, CSV, JSON, IcebergParquet, ORC, Avro, CSV, JSON, IcebergParquet, ORC, Avro, CSV, JSON, IcebergParquet and Iceberg provide optimal performance due to metadata caching
Object TablesSupported (Images, Audio, PDF, Video)Metadata onlyMetadata onlyFull multimodal Vertex AI integration is native on GCS Object Tables

Exam Traps and Antipatterns Summary

Antipattern / TrapWhy It Fails in ProductionCorrect Exam Solution
Granting analysts roles/storage.objectViewer on GCSAllows analysts to download all raw Parquet files via gsutil/curl, completely bypassing column masking and audit loggingUse BigLake with Cloud Resource Connections; grant users access only in BigQuery
Expecting standard external tables to enforce row policiesStandard external tables lack BigLake connection integration and cannot enforce row-level access control or column maskingConvert external tables to BigLake tables by specifying WITH CONNECTION
Moving petabytes of AWS S3 data to GCP for simple queriesIncurs massive cloud egress bandwidth fees and high pipeline maintenance overheadDeploy BigQuery Omni in AWS us-east-1 to execute queries locally at zero egress cost
Manually maintaining open-source Hive Metastore on VMsRequires OS patching, HA database clustering, and scaling maintenanceMigrate to BigLake Metastore for a fully managed, serverless, cross-engine catalog
Omitting metadata caching on frequently queried BigLake tablesTriggers thousands of repeated GCS/S3 object discovery API calls, adding query latencyEnable metadata caching (metadata_cache_mode = 'AUTOMATIC') on BigLake external tables
Loading diagram...
BigLake Unified Governance, Multi-Cloud Storage Delegation, and Lakehouse Architecture
Test Your Knowledge

A security compliance policy mandates that business intelligence analysts must be able to query customer transaction records stored as Apache Parquet files in a Google Cloud Storage bucket. However, analysts must never be granted direct read permissions on the GCS bucket to prevent bulk file downloads, and Social Security numbers stored in the files must be dynamically masked for all non-compliance personnel. How should this architecture be implemented?

A
B
C
D
Test Your Knowledge

An enterprise insurance company stores hundreds of thousands of PDF claim documents and accident photos in a Google Cloud Storage bucket. The claims processing team wants to use standard SQL in BigQuery to filter files by file size and upload date, and invoke a Vertex AI multimodal foundation model to summarize the claim text and extract key entities. Which BigQuery feature supports this workflow?

A
B
C
D
Test Your Knowledge

A global conglomerate operates its analytics platform across both Google Cloud and Amazon Web Services (AWS). Several petabytes of historical clickstream data reside in Amazon S3 buckets in the AWS us-east-1 region. Corporate security requires that European data privacy regulations (GDPR) be enforced: analysts in Europe must only view records where customer_country = 'FR', 'DE', or 'UK', and cross-cloud data transfer egress costs must be minimized. What is the most effective solution?

A
B
C
D