方法:projects.locations.transferConfigs.runs.startBigQueryJobs

通知 Data Transfer Service,向它表明数据已可供加载。此时 Data Transfer Service 会启动,并监控一次传输运行的多个 BigQuery 加载作业。受到监控的作业会自动重试,并在开始和完成作业时生成日志。您可以为相同的传输运行操作多次调用该服务。

HTTP 请求

POST https://bigquerydatatransfer.googleapis.com/v1/{name=projects/*/locations/*/transferConfigs/*/runs/*}:startBigQueryJobs

网址采用 gRPC 转码语法。

路径参数

参数
name

string

资源名称采用如下形式:“projects/{projectId}/locations/{locationId}/transferConfigs/{config_id}/runs/{run_id}”

请求正文

请求正文中包含结构如下的数据:

JSON 表示法

{
  "importedData": [
    {
      object(ImportedDataInfo)
    }
  ],
  "userCredentials": string
}
字段
importedData[]

object(ImportedDataInfo)

应启动和监控的导入作业。

userCredentials

string (bytes format)

应该在启动/监控 BigQuery 作业时使用的用户凭据。如果未指定,则使用数据源服务帐号凭据启动作业。这可以是 OAuth 令牌或 JWT 令牌。

这是一个 base64 编码的字符串。

响应正文

如果成功,则响应正文将为空。

授权范围

需要以下 OAuth 范围:

  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅身份验证概览

ImportedDataInfo

描述应该导入的数据。

JSON 表示形式

{
  "sql": string,
  "destinationTableId": string,
  "destinationTableDescription": string,
  "tableDefs": [
    {
      object(TableDefinition)
    }
  ],
  "userDefinedFunctions": [
    string
  ],
  "writeDisposition": enum(WriteDisposition)
}
字段
sql

string

要运行的 SQL 查询。如果此字段为空,API 会检查是否只指定了一个 table_def,并加载此表。此字段仅接受标准 SQL 查询。不允许使用旧版 SQL。

destinationTableId

string

表示应将结果写入的表。

destinationTableDescription

string

目标表的说明。此说明可以是几个句子,也可以是几个段落,用于详细描述表的内容。

tableDefs[]

object(TableDefinition)

在不带“sql”参数使用时,用于说明目标表的架构。与“sql”参数一起使用时,用于说明包含 BigQuery 外部数据的表。

userDefinedFunctions[]

string

用户定义的函数资源的内嵌代码。如果“sql”参数为空,则系统会忽略此字段。

writeDisposition

enum(WriteDisposition)

指定目标表已存在时执行的操作。

TableDefinition

外部表定义。这些表可以在查询中使用“name”引用,并且可以像读取其他任何表一样读取。

JSON 表示形式

{
  "tableId": string,
  "sourceUris": [
    string
  ],
  "format": enum(Format),
  "maxBadRecords": number,
  "encoding": enum(Encoding),
  "csvOptions": {
    object(CsvOptions)
  },
  "schema": {
    object(RecordSchema)
  },
  "ignoreUnknownValues": boolean
}
字段
tableId

string

BigQuery tableid(必需)。 此字段用于在查询中引用此表。

sourceUris[]

string

要导入的数据的 URI。所有 URI 均必须来自同一存储系统。

format

enum(Format)

说明 source_uri 中数据的格式。

maxBadRecords

number

指定可以忽略的最大错误记录数。如果错误记录数超过此阈值,则查询会取消。

encoding

enum(Encoding)

输入的字符编码(CSV、JSON),在适用情况下指定。默认为 UTF8。

csvOptions

object(CsvOptions)

CSV 特定选项。

schema

object(RecordSchema)

数据的可选架构。如果没有为 JSON 和 CSV 格式指定此字段,我们会尝试自动检测。

ignoreUnknownValues

boolean

表示是否允许表架构中不存在的额外值。

格式

数据格式。

枚举
FORMAT_UNSPECIFIED 未指定格式。在这种情况下,我们必须根据数据源推断出格式。
CSV CSV 格式。
JSON 以换行符分隔的 JSON。
AVRO Avro 格式。请参见 http://avro.apache.org
RECORDIO RecordIO。
COLUMNIO ColumnIO。
CAPACITOR Capacitor 类型。
PARQUET Parquet 格式。请参阅 https://parquet.apache.org
ORC ORC 格式。请参阅 https://orc.apache.org

编码

采用 CSV/JSON 格式的输入数据的编码。

枚举
ENCODING_UNSPECIFIED 默认编码 (UTF8)。
ISO_8859_1 ISO_8859_1 编码。
UTF8 UTF8 编码。

CsvOptions

CSV 特定选项。

JSON 表示形式

{
  "fieldDelimiter": string,
  "allowQuotedNewlines": boolean,
  "quoteChar": string,
  "skipLeadingRows": string,
  "allowJaggedRows": boolean
}
字段
fieldDelimiter

string

分隔符。我们目前将此字段限制为 U+0001 到 U+00FF,并在验证期间应用其他约束。

allowQuotedNewlines

boolean

表示是否允许 CSV 文件包含带英文引号的换行符。如果允许使用带引号的换行符,则无法拆分 CSV 文件。

quoteChar

string

英文引号字符。我们目前将此字段限制为 U+0000 到 U+00FF,并在验证期间应用其他约束。如果将此字段设置为“\0”,则表示不使用英文引号。

skipLeadingRows

string (Int64Value format)

要跳过的前导行数。

allowJaggedRows

boolean

接受末尾处缺少可选列的行。

RecordSchema

说明要提取的数据的模式。

JSON 表示形式

{
  "fields": [
    {
      object(FieldSchema)
    }
  ]
}
字段
fields[]

object(FieldSchema)

记录中每列一个字段。

FieldSchema

定义已导入的数据中字段的架构。

JSON 表示形式

{
  "fieldName": string,
  "type": enum(Type),
  "isRepeated": boolean,
  "description": string,
  "schema": {
    object(RecordSchema)
  }
}
字段
fieldName

string

字段名称。匹配:[A-Za-z_][A-Za-z_0-9]{0,127}

type

enum(Type)

字段类型

isRepeated

boolean

表示字段是否重复。

description

string

此字段的说明。

schema

object(RecordSchema)

表示类型是否 == RECORD。

Type

LINT.IfChange 字段类型。

枚举
TYPE_UNSPECIFIED 非法值。
STRING 64K、UTF8。
INTEGER 64 位,有符号。
FLOAT 64 位 IEEE 浮点。
RECORD 聚合类型。
BYTES 64K、二进制。
BOOLEAN 2 值。
TIMESTAMP 从世界协调时间 (UTC) 周期开始计算的 64 位有符号微秒数。
DATE 民用日期 - 年、月、日。
TIME 民用时间 - 小时、分钟、秒、微秒。
DATETIME 民用日期与民用时间的组合。
NUMERIC 精度为 38 位、标度为 9 位的数值类型。
GEOGRAPHY 地理位置对象 (go/googlesql_geography)。

WriteDisposition

用于向表中写入数据的选项。WRITE_EMPTY 选项是有意从枚举中排除的,而且不受数据转移作业服务支持。

枚举
WRITE_DISPOSITION_UNSPECIFIED 默认的 writeDispostion
WRITE_TRUNCATE 覆盖表数据。
WRITE_APPEND 数据会附加到表中。请注意,如果使用此模式,可能会出现重复。

试试看!