我有一个beam管道,它获取json数据,解析它,然后将其作为拼接文件写入GCS存储桶中。在Java中定义Avro模式时,我不知道如何处理日期和时间戳。它不提供日期或类似日期的选项。只有基本类型。现在一切正常,但是我的date仍然是一个字符串。对于如何在Avro schema对象中定义日期/时间戳以及如何将其作为Java对象传递,有什么建议吗?
static final Schema SCHEMA = SchemaBuilder.record("Record")
.namespace("com.foo").fields().requiredString("val1")
.requiredString("val2").requiredString("timestamp").endRecord();示例时间戳:
String timestamp = "2018-12-06T21:22:35.700Z";发布于 2019-01-04 14:22:44
这里没有唯一的答案。这取决于您的用例的具体情况。
你首先是以字符串的形式接收它们,所以正如@BSeitkazin提到的那样,将它们保存在字符串中可能是完全合理的,直到你真正需要它们作为日期/时间戳。
或者你可以存储millis,或者任何其他方便你的方式。
看看Avro,日期似乎是supported there since 1.8.0 (当前的光束软件开发工具包depends on 1.8.2)。
https://stackoverflow.com/questions/54033149
复制相似问题