Google BigQuery

支持的管道类型:

  •  Data Collector

Google BigQuery目标端将数据流式传输到Google BigQuery。您可以使用其他目标端写入Google Bigtable,Google Cloud Storage和Google Pub/Sub。

配置目标端时,您将定义现有的BigQuery数据集和表以将数据流式传输到其中。目标端将每个记录流式传输到BigQuery表中的一行中。您可以选择定义一个表达式以指定要插入或更新的插入ID。插入ID是每一行的唯一ID。如果未指定插入ID,则目标将每个记录插入到新行中。

目标端根据匹配的名称和兼容的数据类型将字段从记录映射到BigQuery列。您可以将目标端配置为在目标端无法将字段映射到现有BigQuery列时忽略无效列。您还可以配置目标端的表缓存大小。

您还定义了用于连接到Google BigQuery的项目和凭据提供程序。目标端可以从Google应用程序默认凭据或Google Cloud服务帐户凭据文件检索凭据。

有关将数据流式传输到Google BigQuery的更多信息,请参阅Google BigQuery文档。

BigQuery数据类型

Google BigQuery目标端根据匹配的名称和兼容的数据类型将字段从记录映射到现有表中的BigQuery列。如果需要,目标会将Data Collector数据类型转换为BigQuery数据类型。

下表列出了Data Collector数据类型和目标端将其转换为的BigQuery数据类型:

Data Collector Data Type BigQuery Data Type
Boolean Boolean
Byte Array Bytes
Date Date
Datetime Datetime or Timestamp
Double Float
Float Float
Integer Integer
List Array
List-Map Record with repeated fields
Long Integer
Map Record
Short Integer
String String
Time Time

Google BigQuery目标端无法转换以下Data Collector 数据类型:

  • Byte
  • Character
  • Decimal

证书

当Google BigQuery目标端将数据流式传输到Google BigQuery时,它必须将凭据传递给BigQuery。配置目标端以从Google Application Default Credentials或Google Cloud服务帐户凭据文件中检索凭据。

默认凭据提供者

配置为使用Google Application Default Credentials时,目标端将检查GOOGLE_APPLICATION_CREDENTIALS 环境变量中定义的凭据文件。如果环境变量不存在并且Data Collector在Google Cloud Platform(GCP)中的虚拟机(VM)上运行,则目标端将使用与虚拟机实例关联的内置服务帐户。

有关默认凭据的更多信息,请参阅Google Developer文档中的Google Application Default Credentials

完成以下步骤以在环境变量中定义凭据文件:

  1. 使用Google Cloud Platform Console或 gcloud命令行工具创建Google服务帐户,并使您的应用程序使用该帐户进行API访问。

    例如,要使用命令行工具,请运行以下命令:

    gcloud iam service-accounts create my-account
    gcloud iam service-accounts keys create key.json --iam-account=my-account@my-project.iam.gserviceaccount.com
  2. 将生成的凭据文件存储在Data Collector计算机上。
  3. GOOGLE_APPLICATION_CREDENTIALS 环境变量添加到适当的文件,并将其指向凭据文件。

    使用安装类型所需的方法来修改环境变量。

    如下设置环境变量:

    export GOOGLE_APPLICATION_CREDENTIALS="/var/lib/sdc-resources/keyfile.json"
  4. 重新启动Data Collector以启用更改。
  5. 在该阶段的“Credentials选项卡上, 为凭据提供者选择Default Credentials Provider”。

服务帐户凭据文件(JSON)

配置为使用Google Cloud服务帐户凭据文件时,目标端将检查目标端属性中定义的文件。

完成以下步骤以使用服务帐户凭据文件:

  1. 生成JSON格式的服务帐户凭据文件。

    使用Google Cloud Platform Console或gcloud命令行工具来生成和下载凭据文件。有关更多信息,请参阅Google Cloud Platform文档中的生成服务帐户凭据。

  2. 将生成的凭证文件存储在Data Collector计算机上。

    最佳做法是将文件存储在 Data Collector资源目录$SDC_RESOURCES中 。

  3. 在该阶段的“Credentials选项卡上,为凭证提供者选择“Service Account Credentials File,然后输入凭证文件的路径。

配置Google BigQuery目标端

配置Google BigQuery目标端以将数据流式传输到Google BigQuery。

  1. 在“Properties”面板的“General选项卡上,配置以下属性:
    一般属性 描述
    Name 阶段名。
    Description 可选说明。
    Required Fields 必须包含用于将记录传递到阶段的记录的数据的字段。

    提示:您可能包括阶段使用的字段。

    根据为管道配置的错误处理,处理不包括所有必填字段的记录。

    Preconditions 必须评估为TRUE的条件才能使记录进入处理阶段。单击 添加以创建其他前提条件。

    根据为该阶段配置的错误处理,处理不满足所有前提条件的记录。

    On Record Error 该阶段的错误记录处理:

    • Discard-放弃记录。
    • To Error-将记录发送到管道以进行错误处理。
    • Stop Pipeline-停止管道。
  2. BigQuery标签上,配置以下属性:
    BigQuery属性 描述
    Dataset 要写入的BigQuery数据集。

    输入现有数据集的名称或计算结果为现有数据集名称的表达式。例如,如果数据集名称存储在’dataset’记录属性中,请输入以下表达式:

    ${record:attribute('dataset')}
    Table Name 要写入的BigQuery表的名称。

    输入现有表的名称或计算结果为现有表名称的表达式。例如,如果表名存储在’table’记录属性中,请输入以下表达式:

    ${record:attribute('table')}
    Insert ID Expression 该表达式的计算结果为要插入或更新的BigQuery插入ID。插入ID是每一行的唯一ID。保留空白可将每条记录插入新行。

    有关用于将数据流式传输到BigQuery的插入ID属性的更多信息,请参阅Google BigQuery文档

    Ignore Invalid Column 忽略无效的列。

    如果选择此选项,并且目标端遇到无法映射到具有相同名称和兼容数据类型的BigQuery列的字段路径,那么目标端将忽略无效列,并将记录中的其余字段写入BigQuery。如果清除并且目标端遇到无效的列,则将该记录发送到阶段以进行错误处理。

    Table Cache Size 要在本地缓存的表ID条目的最大数量。

    当目标端评估要写入的数据集和表名称时,它将检查BigQuery中是否存在表ID,然后缓存该表ID。可能的情况下,目标端使用缓存来避免从BigQuery进行不必要的检索。当缓存达到最大大小时,将淘汰最旧的缓存条目以允许新数据。

    默认值为-1,无限的缓存大小。

  3. 在“Credentials选项卡上,配置以下属性:
    凭据属性 描述
    Project ID 要连接的Google BigQuery项目ID。
    Credentials Provider 用于连接到Google BigQuery的凭据提供者:

    • Default credentials provider
    • Service account credentials file (JSON)
    Credentials File Path (JSON) 使用Google Cloud服务帐户凭据文件时,该路径是目标端用来连接到Google BigQuery的文件的路径。凭证文件必须是JSON文件。

    输入相对于Data Collector资源目录$SDC_RESOURCES的路径,或输入绝对路径。