我在Avro IDL中尝试了以下代码,该代码引用了逻辑类型timestamp-millis并且它不起作用。
在Avro IDL中使用逻辑类型是否需要导入?或者逻辑类型是不可用的,我需要使用原始类型(在本例中为long)?
protocol test {
record test {
timestamp-millis time;
}
}
结果:
Exception in thread "main" org.apache.avro.compiler.idl.ParseException: Undefined name 'timestamp', at line 3, column 9
这当然有效:
protocol test {
record test {
long time;
}
}
答案 0 :(得分:2)
您可以使用通用annotation:
appointment_service
实际上还可以使用protocol test {
record test {
@logicalType("timestamp-millis")
long time;
}
}
和其他一些逻辑类型的简写(文档尚未发布,请参阅here获取完整的别名列表):
timestamp-millis
答案 1 :(得分:0)
LogicalType timestamp-millis与 long 类型一起使用,因此您可以使用这样的架构:
{
"type" : "record",
"name" : "Test",
"fields" : [ {
"name" : "time",
"type" : {
"type" : "long",
"logicalType" : "timestamp-millis"
}
}]
}