[英]Nullable date in avro schema for google pub/sub
我使用 avro 作為 google pub/sub 的模式來直接寫入 BigQuery。
其中一個字段可以是 null,所以我這樣寫了我的 avro 模式:
{
"type": "record",
"name": "Avro",
"fields": [
{
"name": "id",
"type": "string"
},
{
"name": "status",
"type": "string"
},
{
"name": "createDate",
"type": "string"
},
{
"name": "purchaseDate",
"type": ["null", "string"]
}
]
}
但是,對於適合此架構的輸入,它必須類似於以下內容之一:
{
"id": "123",
"status": "not-purchased",
"createDate": "2023-01-17T04:49:16.966Z",
"purchaseDate": null
}
{
"id": "123",
"status": "purchased",
"createDate": "2023-01-17T04:49:16.966Z",
"purchaseDate": {
"string": "2023-01-17T04:49:16.966Z"
}
}
上面第二個示例中的輸入不是 BigQuery 訂閱所期望的格式。 我正在尋找看起來像這樣的東西:
{
"id": "123",
"status": "purchased",
"createDate": "2023-01-17T04:49:16.966Z",
"purchaseDate": "2023-01-17T04:49:16.966Z"
}
我對 avro 模式做錯了什么,或者它只是 avro 中可空字段的工作方式嗎?
可為空無關緊要。 它只是一個聯合類型。
根據 Avro JSON 編碼規范,聯合類型需要字符串鍵。
這是 Pub/Sub BigQuery 訂閱的一個已知問題。 您可以在問題跟蹤器中關注修復的進度。 修復后,使用string
關鍵字的示例應該可以通過 Pub/Sub 訂閱插入到 BigQuery 中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.