如何从现有模型自动生成Apache Pulsar AvroSchema类?
问题:基于现有SQLModel数据类自动生成Pulsar AvroSchema及Record实例
我当前运行着无Schema模式的Apache Pulsar,数据内容频繁变更。针对特定数据,已编写基于SQLModel的数据类(此点在当前场景中无关紧要),这些模型是数据基准,希望直接复用在Apache Pulsar中。
由于模型结构复杂,我倾向使用pulsar.schema.avro_schema.AvroSchema而非JsonSchema。我肯定不是第一个遇到这个需求的人,但网上搜索后没找到能实现以下功能的库:
- 在运行时将现有模型(包含所有字段及子类)转换为
pulsar.schema.record.Record - 将现有模型实例的值自动填充到生成的Pulsar Schema Record中
我希望避免这种繁琐且易出错的手动操作流程:
首先手动定义继承自Record的类:
class NewMetering_AVRO(Record): id = Integer() speed = Float() light = Float()
接着创建生产者:
producer = client.create_producer( topic='persistent://my_tenant/my_namespace/new_metering', schema=AvroSchema(NewMetering_AVRO), )
最后手动构建对象并发送:
new_metering_AVRO_record = NewMetering_AVRO() new_metering_AVRO_record.id = uuid.uuid4() new_metering_AVRO_record.speed = new_metering.speed new_metering_AVRO_record.light = new_metering.light producer.send(content=new_metering, partition_key=new_metering.id)
有没有现成的库或者可行的实现思路?如果没有,我会自行编写开源库。
内容的提问来源于stack exchange,提问作者feder
相关产品推荐
相关产品推荐

