【问题标题】:Google Cloud DataStream failing with reason code: BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGEGoogle Cloud DataStream 失败,原因代码:BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGE
【发布时间】:2022-12-22 18:40:31
【问题描述】:

在使用 DataStream 时尝试对 BigQuery 中的目标表进行分区时出现错误。

一步一步重现这个:

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

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

    丢弃 BigQuery 目标的 97 个不受支持的事件:833537404433.Test_Membership_1.internal_Membership,原因代码:BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGE,详细信息:由于不支持的主键更改而无法写入 BigQuery:不支持向现有表添加主键。

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

    jsonPayload: {

    上下文:“疾控中心”

    事件代码:“UNSUPPORTED_EVENTS_DISCARDED”

    消息:“为 BigQuery 目的地丢弃了 97 个不受支持的事件:

    833537404433.Test_Membership_1.internal_Membership,原因代码:

    BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGE,详细信息:写入失败

    BigQuery 由于不支持的主键更改:不支持将主键添加到现有表中。”

    读取方法:“”

    }

    日志名称:“项目/gcp-everwash-wh-dw/logs/datastream.googleapis.com%2Fstream_activity”

    接收时间戳:“2022-11-22T22:08:38.620495835Z”

    资源:{2}

    严重性:“警告”

    时间戳:“2022-11-22T22:08:37.726075Z”

    }


    你期望发生什么: ?

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

【问题讨论】:

  • 嗨@Saranya,如果我的回答解决了您的问题,请考虑接受并投票。如果没有,请告诉我,以便我改进我的答案。接受答案也将有助于社区成员的研究。

标签: google-cloud-platform google-bigquery google-datastream


【解决方案1】:

不支持对现有 BigQuery 表进行分区。您必须将分区添加到全新的表中。您可以根据 document 中提到的查询结果创建一个新的分区表,但是这种方法不适用于现有的数据流源表,因为没有正确应用 UPSERT 操作所需的 _CHANGE_SEQUENCE_NUMBER 字段以正确的顺序。因此,唯一的选择是在启动 Datastream 流之前使用分区/集群/主键预先创建表,如下面的 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

更多信息,可以查看issue tracker

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多