Google Cloud DataStream失败,原因代码:BIGQUERY_UNSUPPORTED_PRIMARY_



当我试图在BigQuery中分区目标表而使用数据流时,我得到错误。

一步一步复制如下:

  1. 启动从CloudSQL(MYSQL)到BigQuery的数据流
  2. 一旦流完成BigQuery中的所有表,暂停作业
  3. 表的分区之一
  4. 恢复作业
  5. 获取如下错误日志

====================================================

丢弃97个BigQuery不支持的事件,destination: 833537404433.Test_Membership_1.internal_Membership, reason code: BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGE, details:写BigQuery失败,因为一个不支持的主键更改:不支持添加主键到现有表.

{ad79ec insertId:"65 - 0000 - 24 - c7 a66e - 14223 - bbf970a@a1"

jsonPayload: {

背景:"CDC">

event_code:"UNSUPPORTED_EVENTS_DISCARDED">

message: "Discarded 97 unsupported events for BigQuery destination:

833537404433.Test_Membership_1.internal_Membership,包含原因代码:

BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGE, details: Failed to write to

BigQuery由于不支持主键更改:不支持向现有表添加主键…">

read_method:">

}

logName:"项目/gcp-everwash-wh-dw/日志/datastream.googleapis.com % 2 fstream_activity"

receiveTimestamp:"2022 - 11 - 22 - t22:08:38.620495835z"

资源:{2}

严重性:"WARNING">

时间戳:"2022 - 11 - 22 - t22:08:37.726075z"

}


你期望发生什么:?

我希望为通过DataStream插入BigQuery的某些表创建分区。

不支持对现有BigQuery表进行分区。您必须将分区添加到新表中。您可以根据本文档中提到的查询结果创建一个新的分区表,但是这种方法不适用于现有的源自数据流的表,因为不存在以正确顺序正确应用UPSERT操作所需的_CHANGE_SEQUENCE_NUMBER字段。因此,唯一的选择是在启动数据流之前使用分区/集群/主键预创建表,就像下面的DDL SQL示例查询一样。

CREATE TABLE `project.dataset.new_table`
(
`Primary_key_field` INTEGER PRIMARY KEY NOT ENFORCED,
`time_field` TIMESTAMP,
`field1` STRING,
#Just an example above. Add needed fields within the base table...
)
PARTITION BY
DATE(time_field)
CLUSTER BY
Primary_key_field #This must be an exact match of the specified primary key fields
OPTIONS(max_staleness = INTERVAL 15 MINUTE) #or whatever the desired max_staleness value is

有关更多信息,您可以查看此问题跟踪器。

相关内容

  • 没有找到相关文章