#scala #apache-kafka #apache-flink #avro
#scala #apache-kafka #apache-flink #авро
Вопрос:
Для чтения Avro
данных из Kafka
у нас есть AvroDeserializationSchema
. Но как насчет записи?
Ответ №1:
Есть AvroRowSerializationSchema
который можно использовать для сериализации Rows
. Если вам нужно сериализовать определенный тип, то я бы предложил реализовать вашу собственную схему, поскольку Flink на данный момент не предлагает никаких других Avro SerializationSchemas
.
Комментарии:
1. Да, я видел эту ошибку во время выполнения: «Вызвано: java.lang. ClassCastException: MyType не может быть приведен к org.apache. flink.types.Row», хотя
new AvroRowSerializationSchema(MyType.class)
компилируется нормально. Есть ли способ заставитьMyType
работать сAvroRowSerializationSchema
? Я рассмотрю свой собственныйSerializationSchemas
в качестве последнего средства. Я все еще изучаю Flink, и типы данных не являются окончательными и часто меняются. Я не хочу обновлять свойSerializationSchemas
каждый раз, когда меняю типы данных. Я бы предпочел использовать универсальное решение, которое автоматически обрабатывает любые типы данных.2. Итак, вы можете попробовать JSON string для достижения гибкой модификации структуры в целях разработки.