Crear y consultar tablas de Iceberg de BigLake en BigQuery

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

En esta página se explica cómo crear y modificar tablas de Iceberg de BigLake en BigQuery mediante operadores de Airflow en su entorno de Cloud Composer.

Acerca de las tablas de Iceberg de BigLake en BigQuery

Las tablas de BigLake Iceberg en BigQuery proporcionan la base para crear lakehouses de formato abierto en Google Cloud. Las tablas de Iceberg de BigLake en BigQuery ofrecen la misma experiencia totalmente gestionada que las tablas estándar de BigQuery, pero almacenan los datos en los cubos de almacenamiento propiedad del cliente. Las tablas de BigLake Iceberg en BigQuery admiten el formato de tabla Iceberg abierto para mejorar la interoperabilidad con motores de computación de código abierto y de terceros en una sola copia de los datos.

Antes de empezar

Crear una tabla de Iceberg de BigLake en BigQuery

Para crear una tabla de Iceberg de BigLake en BigQuery, usa BigQueryCreateTableOperator de la misma forma que con otras tablas de BigQuery. En el campo biglakeConfiguration, proporciona la configuración de la tabla.

import datetime

from airflow.models.dag import DAG
from airflow.providers.google.cloud.operators.bigquery import BigQueryCreateTableOperator

with DAG(
  "bq_iceberg_dag",
  start_date=datetime.datetime(2025, 1, 1),
  schedule=None,
  ) as dag:

  create_iceberg_table = BigQueryCreateTableOperator(
    task_id="create_iceberg_table",
    project_id="PROJECT_ID",
    dataset_id="DATASET_ID",
    table_id="TABLE_NAME",
    table_resource={
      "schema": {
        "fields": [
          {"name": "order_id", "type": "INTEGER", "mode": "REQUIRED"},
          {"name": "customer_id", "type": "INTEGER", "mode": "REQUIRED"},
          {"name": "amount", "type": "INTEGER", "mode": "REQUIRED"},
          {"name": "created_at", "type": "TIMESTAMP", "mode": "REQUIRED"},
        ]
      },
      "biglakeConfiguration": {
        "connectionId": "CONNECTION_NAME",
        "storageUri": "STORAGE_URI",
        "fileFormat": "PARQUET",
        "tableFormat": "ICEBERG",
      }
    }
  )

Haz los cambios siguientes:

  • PROJECT_ID: el ID de proyecto.
  • DATASET_ID: un conjunto de datos.
  • TABLE_NAME: el nombre de la tabla que vas a crear.
  • CONNECTION_NAME: el nombre de la conexión de Cloud Resource en el formato projects/PROJECT_ID/locations/REGION/connections/CONNECTION_ID.
  • STORAGE_URI: un URI de Cloud Storage completo de la tabla. Por ejemplo, gs://example-bucket/iceberg-table.

Consultar una tabla de Iceberg de BigLake en BigQuery

Después de crear una tabla de Iceberg de BigLake, puedes consultarla con BigQueryInsertJobOperator como de costumbre. El operador no necesita ninguna configuración adicional específica para las tablas de iceberg de BigLake.

import datetime

from airflow.models.dag import DAG
from airflow.providers.google.cloud.operators.bigquery import BigQueryInsertJobOperator

with DAG(
  "bq_iceberg_dag_query",
  start_date=datetime.datetime(2025, 1, 1),
  schedule=None,
  ) as dag:

  insert_values = BigQueryInsertJobOperator(
    task_id="iceberg_insert_values",
    configuration={
      "query": {
        "query": f"""
          INSERT INTO `TABLE_ID` (order_id, customer_id, amount, created_at)
          VALUES
            (101, 19, 1, TIMESTAMP '2025-09-15 10:15:00+00'),
            (102, 35, 2, TIMESTAMP '2025-09-14 10:15:00+00'),
            (103, 36, 3, TIMESTAMP '2025-09-12 10:15:00+00'),
            (104, 37, 4, TIMESTAMP '2025-09-11 10:15:00+00')
        """,
        "useLegacySql": False,
        }
      }
  )

Haz los cambios siguientes:

  • TABLE_ID con el ID de la tabla, en el formato PROJECT_ID.DATASET_ID.TABLE_NAME.

Siguientes pasos