在 BigQuery 中配置 BigLake Iceberg 表

本页面介绍了如何配置 Datastream 以复制到 BigQuery 中的 BigLake Iceberg 表。

BigLake Iceberg 表提供与标准 BigQuery 表相同的全代管式体验,但将数据以 Apache Iceberg 表格式和 Parquet 文件格式存储在客户拥有的 Cloud Storage 存储分区中。您可以使用 BigQuery 功能查询和分析数据,同时将数据保留在自己的存储分区中。

表元数据

Datastream 会向写入 BigQuery 目标平台的每个表中附加一个名为 datastream_metadataSTRUCT 列。

datastream_metadata 列包含以下字段:

  • UUID:此字段的数据类型为 STRING
  • SOURCE_TIMESTAMP:此字段的数据类型为 INTEGER
  • CHANGE_SEQUENCE_NUMBER:此字段具有 STRING 数据类型。这是 Datastream 为每个变更事件使用的内部序列号。
  • CHANGE_TYPE:此字段具有 STRING 数据类型。它表示更改事件的类型。对于仅附加写入模式,该值为 INSERT
  • SORT_KEYS:此字段包含一个 STRING 值数组。您可以使用这些值对更改事件进行排序。

配置到 BigLake Iceberg 表的流式传输

若要设置数据流,以将数据注入到 BigLake Iceberg 表,请执行以下操作:

  1. 创建 Cloud Storage 存储桶,用于存储数据。
  2. 在 BigQuery 中创建 Cloud 资源连接。如需了解如何创建此类连接,请参阅创建和设置 Cloud 资源连接
  3. 获取连接服务账号的标识符:

    bq show --location=LOCATION --connection --project_id=PROJECT_ID
    CONNECTION_NAME
    
  4. 向您创建的 Cloud Storage 存储桶授予 Cloud 资源连接访问权限。为此,请向连接服务账号添加 storage.admin IAM 权限:

    gcloud storage buckets add-iam-policy-binding gs://YOUR_GCS_BUCKET \
    --member=serviceAccount:YOUR_SERVICE_ACCOUNT_ID \
    --role=roles/storage.admin
    
  5. 创建 BigLake Iceberg 表流。

    如需了解如何使用 Google Cloud 控制台创建 BigLake Iceberg 表数据流,请参阅创建数据流

    如需了解如何使用 REST Google Cloud CLI 或 Terraform 创建请求以将数据流式传输到 BigLake Iceberg 表,请参阅使用 API 管理数据流

后续步骤