AstraDB to BigQuery 模板

AstraDB to BigQuery 模板是一种批处理流水线,可从 AstraDB 读取记录并将其写入 BigQuery。

如果 BigQuery 中不存在目标表,则流水线将使用以下值创建一个表:

  • Dataset ID,继承自 Cassandra 键空间。
  • Table ID,继承自 Cassandra 表。

目标表的架构是根据源 Cassandra 表推断出来的。

  • ListSet 会映射到 BigQuery REPEATED 字段。
  • Map 会映射到 BigQuery RECORD 字段。
  • 所有其他类型均映射到具有相应类型的 BigQuery 字段。
  • 不支持 Cassandra 用户定义的类型 (UDT) 和元组数据类型。

流水线要求

  • 具有令牌的 AstraDB 账号

模板参数

参数 说明
astraToken 令牌值或密钥资源 ID。例如:AstraCS:abcdefghij
astraDatabaseId 数据库唯一标识符 (uuid)。例如:cf7af129-d33a-498f-ad06-d97a6ee6eb7
astraKeyspace Astra 数据库中的 Cassandra 键空间的名称。
astraTable Cassandra 数据库中的表名称。例如:my_table
astraQuery 可选:查询以过滤行,而不是读取整个表。
astraDatabaseRegion 可选:如果未提供,则选择默认值,这对多区域数据库很有用。
minTokenRangesCount 可选:分发查询的分片数量下限。
outputTableSpec 可选:要将输出写入的 BigQuery 表位置。该表的格式应为 <project>:<dataset>.<table_name>。表的架构必须与输入对象匹配。

运行模板

控制台

  1. 转到 Dataflow 基于模板创建作业页面。
  2. 转到“基于模板创建作业”
  3. 作业名称字段中,输入唯一的作业名称。
  4. 可选:对于区域性端点,从下拉菜单中选择一个值。默认区域为 us-central1

    如需查看可以在其中运行 Dataflow 作业的区域列表,请参阅 Dataflow 位置

  5. Dataflow 模板下拉菜单中,选择 the AstraDB to BigQuery template。
  6. 在提供的参数字段中,输入您的参数值。
  7. 点击运行作业

gcloud

在 shell 或终端中,运行模板:

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/AstraDB_To_BigQuery \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       astraToken=ASTRA_TOKEN,\
       astraDatabaseId=ASTRA_DATABASE_ID,\
       astraKeyspace=ASTRA_KEYSPACE,\
       astraTable=ASTRA_TABLE,\

请替换以下内容:

  • JOB_NAME:您选择的唯一性作业名称
  • VERSION:您要使用的模板的版本

    您可使用以下值:

  • REGION_NAME:要在其中部署 Dataflow 作业的区域,例如 us-central1
  • ASTRA_TOKEN:Astra 令牌
  • ASTRA_DATABASE_ID:数据库标识符
  • ASTRA_KEYSPACE:Cassandra 键空间
  • ASTRA_TABLE:Cassandra 表

API

如需使用 REST API 来运行模板,请发送 HTTP POST 请求。如需详细了解 API 及其授权范围,请参阅 projects.templates.launch

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "astraToken": "ASTRA_TOKEN",
       "astraDatabaseId": "ASTRA_DATABASE_ID",
       "astraKeyspace": "ASTRA_KEYSPACE",
       "astraTable": "ASTRA_TABLE",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/AstraDB_To_BigQuery",
     "environment": { "maxWorkers": "10" }
  }
}

请替换以下内容:

  • PROJECT_ID:您要在其中运行 Dataflow 作业的 Google Cloud 项目的 ID
  • JOB_NAME:您选择的唯一性作业名称
  • VERSION:您要使用的模板的版本

    您可使用以下值:

  • LOCATION:要在其中部署 Dataflow 作业的区域,例如 us-central1
  • ASTRA_TOKEN:Astra 令牌
  • ASTRA_DATABASE_ID:数据库标识符
  • ASTRA_KEYSPACE:Cassandra 键空间
  • ASTRA_TABLE:Cassandra 表

后续步骤