Crea y consulta tablas de BigLake Iceberg en BigQuery

Airflow administrado (3ª gen.) | Airflow administrado (2ª gen.) | Airflow administrado (1ª gen. heredada)

En esta página, se explica cómo crear y modificar tablas de BigLake Iceberg en BigQuery con operadores de Airflow en tu entorno de Airflow administrado.

Acerca de las tablas de BigLake Iceberg en BigQuery

Las tablas de BigLake Iceberg en BigQuery proporcionan la base para compilar lakehouses de formato abierto Google Cloud. Las tablas de BigLake Iceberg en BigQuery ofrecen la misma experiencia completamente administrada que las tablas estándar de BigQuery, pero almacenan datos en buckets de almacenamiento que pertenecen al cliente. Las tablas de BigLake Iceberg en BigQuery admiten el formato de tabla de Iceberg abierto para una mejor interoperabilidad con motores de procesamiento de código abierto y de terceros en una sola copia de datos.

Antes de comenzar

Crea una tabla de BigLake Iceberg en BigQuery

Para crear una tabla de BigLake Iceberg en BigQuery, usa BigQueryCreateTableOperator de la misma manera que para 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",
      }
    }
  )

Reemplaza lo siguiente:

Consulta una tabla de BigLake Iceberg en BigQuery

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

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,
        }
      }
  )

Reemplaza lo siguiente:

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

¿Qué sigue?