【问题标题】:PubSub Subscription error with REPEATED Column Type - Avro Schema重复列类型的 PubSub 订阅错误 - Avro 架构
【发布时间】:2022-08-18 18:13:49
【问题描述】:

我正在尝试使用 PubSub Subscription \"Write to BigQuery\",但遇到了 \"REPEATED\" 列类型的问题。更新订阅时收到的消息是

字段 \'Values\' 的架构模式不兼容:字段在主题架构中是必需的,但在 BigQuery 表架构中是重复的

我的 Avro 架构是:

    {
      \"type\": \"record\",
      \"name\": \"Avro\",
      \"fields\": [
        {
          \"name\": \"ItemID\",
          \"type\": \"string\"
        },
        {
          \"name\": \"UserType\",
          \"type\": \"string\"
        },
        {
          \"name\": \"Values\",
          \"type\": [
            {
              \"type\": \"record\",
              \"name\": \"Values\",
              \"fields\": [
                {
                  \"name\": \"AttributeID\",
                  \"type\": \"string\"
                },
                {
                  \"name\": \"AttributeValue\",
                  \"type\": \"string\"
                }
              ]
            }
          ]
        }
      ]
    }

输入“匹配”模式的 JSON:

{
  \"ItemID\": \"Item_1234\",
  \"UserType\": \"Item\",
  \"Values\": {
    \"AttributeID\": \"TEST_ID_1\", 
    \"AttributeValue\": \"Value_1\"
  }
}

我的表看起来像:

ItemID | STRING | NULLABLE
UserType | STRING | NULLABLE
Values | RECORD | REPEATED
  AttributeID | STRING | NULLABLE
  AttributeValue | STRING | NULLABLE

我能够 \"Test\" 和 \"Validate Schema\" 并成功返回。问题是,我在 Avro 上为 Values 节点缺少什么以使其成为“REPEATED”与“必需”以创建订阅。

    标签: publish-subscribe google-cloud-pubsub


    【解决方案1】:

    问题是 Values 不是 Avro 架构中的数组类型,这意味着它只需要消息中的一个,而它是 BigQuery 架构中的重复类型,这意味着它需要它们的列表。

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 2022-08-03
      • 2018-08-30
      • 2022-11-13
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多