【发布时间】:2021-02-15 06:54:18
【问题描述】:
我正在尝试理解 Avro 模式并坚持使用复杂类型(记录)。问题很简单:创建一个模式,其中包含一个记录,其中包含两个嵌套到记录的原始字段(字符串和时间戳)。我看到了架构的两个选项:
选项 1
{
"type": "record",
"name": "cool_subject",
"namespace": "com.example",
"fields": [
{
"name": "field_1",
"type": "record"
"fields": [
{"name": "operation", "type": "string"},
{"name": "timestamp", "type": "long", "logical_type": "timestamp_millis"}
]
}
]
}
选项 2
{
"type": "record",
"name": "cool_subject",
"namespace": "com.example",
"fields": [
{
"name": "field_1",
"type": {
"type": "record",
"name": "field_1_type",
"fields": [
{"name": "operation", "type": "string"},
{"name": "timestamp", "type": {"type": "long", "logical_type": "timestamp_millis"}}
]
}
}
]
}
区别在于“类型”属性。
据我所知 opt2 是正确的方法。我对吗? opt1 有效吗?
【问题讨论】: