apache-kafka - 将 AVRO 文件发布到 kafka 主题
问题描述
我有一个包含 AVRO 格式数据的文件,需要直接发布到 kafka 主题。在我的代码中是否有任何实用程序无需大量数据解析?使用kafka 1.0版本。
解决方案
您可以从 AVRO 文件中读取数据,然后将其序列化为字节数组。
final Schema avroSchema = new Schema.Parser().parse(new File("yourAvroSchema.avsc"));
File avroFile="yourAvroFile.avro"
// Read as GenericRecord
final GenericDatumReader<GenericRecord> genericDatumReader = new GenericDatumReader<>(avroSchema );
final DataFileReader<GenericRecord> genericRecords = new DataFileReader<>(avroFile, genericDatumReader);
// Serialization
ByteArrayOutputStream out = new ByteArrayOutputStream();
DatumWriter<GenericRecord> writer = new GenericDatumWriter<GenericRecord>(avroSchema);
Encoder binaryEncoder = EncoderFactory.get().binaryEncoder(out, null);
while (genericRecords.hasNext()) {
writer.write(genericRecords.next(), binaryEncoder);
}
binaryEncoder.flush();
out.close();
// ....
推荐阅读
- javascript - html / javascript onclick 函数随时间变化
- android - Android Studio 空白 VideoView 不播放在模拟器中录制的视频
- gdb - 用 gdb 设置断点的 gdb 命令是什么?
- angular - 动态创建表单组
- http - API 设计中的业务错误应该使用哪个 HTTP 状态码?
- php - 在两个顺序请求上遇到 axios 问题
- c++ - 如何让 QML 地图流量通过代理,并为程序的其余部分禁用此代理?
- java - 打印机输出不接受 .printf 格式化程序到文件?
- c++ - 从成员变量访问静态 constexpr 成员,GCC 错误?
- jhipster - 如何在 Jhipster 中添加多列唯一索引?