У меня есть простой POJO с датами, который будет сохранен как Avro в хранилище перед импортом в Google BigQuery. Даты преобразуются в длинные, и я пытаюсь использовать @AvroSchema, чтобы переопределить создание схемы для полей даты, чтобы BigQuery понимал, к какому типу относятся поля.
Простой POJO:
public class SomeAvroMessage implements Serializable {
@AvroSchema("{\"type\":\"long\",\"logicalType\":\"timestamp-millis\"}")
private long tm;
@AvroSchema("{\"type\":\"long\",\"logicalType\":\"timestamp-millis\"}")
private long created;
public SomeAvroMessage() {
}
}
В итоге получается следующая AVRO-схема:
{"type":"record","name":"SomeAvroMessage",
"namespace":"some.namespace",
"fields":[
{"name":"tm","type":{"type":"long","logicalType":"timestamp-millis"}},
{"name":"created","type":{"type":"long","logicalType":"timestamp-millis"}}
]}
Кажется, это неверно и должно быть просто {"name": "tm", "type": "long "," logicalType ":" timestamp-millis "}
Используется в Google Dataflow, а Apache Beam 2.22 записан в Java.
Я что-то упустил ?