Criar e consultar tabelas do BigLake Iceberg no BigQuery

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Nesta página, explicamos como criar e modificar tabelas Iceberg do BigLake no BigQuery usando operadores do Airflow no ambiente do Cloud Composer.

Sobre as tabelas do BigLake Iceberg no BigQuery

As tabelas do BigLake Iceberg no BigQuery são a base para criar lakehouses de formato aberto no Google Cloud. As tabelas Iceberg do BigLake no BigQuery oferecem a mesma experiência totalmente gerenciada das tabelas padrão do BigQuery, mas armazenam dados em buckets de armazenamento de propriedade do cliente. As tabelas do BigLake Iceberg no BigQuery oferecem suporte ao formato de tabela aberta do Iceberg para melhorar a interoperabilidade com mecanismos de computação de código aberto e de terceiros em uma única cópia de dados.

Antes de começar

Criar uma tabela do BigLake Iceberg no BigQuery

Para criar uma tabela do BigLake Iceberg no BigQuery, use BigQueryCreateTableOperator da mesma forma que para outras tabelas do BigQuery. No campo biglakeConfiguration, forneça a configuração da tabela.

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

Substitua:

  • PROJECT_ID: o ID do projeto.
  • DATASET_ID: um conjunto de dados existente.
  • TABLE_NAME: o nome da tabela que você está criando;
  • CONNECTION_NAME: o nome da conexão de recursos da nuvem no formato projects/PROJECT_ID/locations/REGION/connections/CONNECTION_ID.
  • STORAGE_URI: um URI do Cloud Storage totalmente qualificado para a tabela. Por exemplo, gs://example-bucket/iceberg-table.

Consultar uma tabela do BigLake Iceberg no BigQuery

Depois de criar uma tabela do BigLake Iceberg, você pode consultá-la com BigQueryInsertJobOperator como de costume. O operador não precisa de configuração adicional específica para tabelas Iceberg do 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,
        }
      }
  )

Substitua:

  • TABLE_ID com o ID da tabela no formato PROJECT_ID.DATASET_ID.TABLE_NAME.

A seguir