文档

BigQuery数据源

更新时间:

BigQuery数据源为您提供读取BigQuery的功能,方便您后续可以通过向导模式和脚本模式配置数据同步任务。本文为您介绍DataWorks的BigQuery数据同步能力支持情况。

支持的版本及地域

  • BigQuery使用的SDK版本是google-cloud-bigquery 2.29.0,SDK能力具体请参见官网文档

  • 支持创建BigQuery数据源的地域如下:

    中国香港、日本(东京)、新加坡、澳大利亚(悉尼)关停中、马来西亚(吉隆坡)、印度尼西亚(雅加达)、德国(法兰克福)、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚)

支持的字段类型

BigQuery的字段类型请参见BigQuery的官方文档。下面为您列出当前主要字段的支持情况。

BigQuery类型

Java 类型

BOOL

Bool

INT64

Long

FLOAT64

BigDecimal

NUMERIC

BigDecimal

BIGNUMERIC

BigDecimal

STRING

String

BYTES

Bytes

STRUCT

String

ARRAY

String

TIMESTAMP

Date

DATE

Date

TIME

Date

DATETIME

Date

GEOGRAPHY

String

JSON

String

INTERVAL

String

数据同步前准备:配置BigQuery的网络连接

在DataWorks上进行数据同步前,您需要将BigQuery的网络与数据集成的独享资源组打通,使之通过内网地址进行访问。网络打通的具体方法可参考:网络连通方案

数据同步任务开发

BigQuery数据同步任务的配置入口和通用配置流程指导可参见下文的配置指导,详细的配置参数解释可在配置界面查看对应参数的文案提示。

创建数据源

在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见创建并管理数据源

以下对BigQuery数据源的几个配置项进行说明:

  • BigQuery Project ID:Google BigQuery的项目名。

  • BigQuery授权认证信息:上传Google Cloud的认证文件

单表离线同步任务配置指导

附录:脚本Demo与参数说明

离线任务脚本配置方式

如果您配置离线任务时使用脚本模式的方式进行配置,您需要在任务脚本中按照脚本的统一格式要求编写脚本中的参数,脚本模式的统一要求请参见通过脚本模式配置离线同步任务,以下为您介绍脚本模式下的数据源的Reader参数的指导详情。

BigQuery Reader脚本Demo

{
  "stepType": "bigquery"
  "parameter":
  {
    "datasource":"bq_test1",
    "table": "partition_1107",
    "where": "xxx=3",
    "dataSet": "database_0724",
    "partition": [
      "_PARTITIONTIME='2023-11-07'"
     ],
    "column":
    [
      "id",
      "table_id",
      "table_no",
      "table_name",
      "table_status"
    ]
  },
  "name": "Reader",
  "category": "reader"
}

BigQuery Reader脚本参数

参数

描述

是否必选

默认值

datasource

数据源名称,脚本模式支持添加数据源,此配置项填写的内容必须与添加的数据源名称保持一致。

dataset

数据集,BigQuery的数据集。

table

选取的需要同步的表名称。

column

需要读取的BigQuery数据,字段之间用英文逗号分隔。例如"column": ["id", "name", "age"]

where

筛选条件,BigQuery Reader根据指定的columntablewhere条件拼接SQL,并根据该SQL进行数据抽取。例如在做测试时,可以将where条件指定为LIMIT 10

在实际业务场景中,通常会选择当天的数据进行同步,可以将where条件指定为gmt_create>$bizdate

  • where条件可以有效地进行业务增量同步。

  • where条件不配置或为空时,则视作不过滤。

partition

配置分区信息,可以同步特定的分区,支持一次同步多个分区。

splitPk

如果已经指定了分区,则splitPk字段不生效如果指定splitPk,表示您希望使用splitPk代表的字段进行数据分片。数据同步系统会启动并发任务进行数据同步,以提高数据同步的效能。