在某些情况下,业务上需要程序直接构造自定义的元数据事件【metadataEvent】,然后将该元数据发送到DataHub。
DataHub分别针对python和java提供了emitter 库,如下:
Python emitter libraries Java emitter libraries
本文基于上面的2个库,讲解如何构造元数据事件,然后将其发送到DataHub
Python emitter 基于Python的元数据摄取系统【acryl-datahub】提供了 REST 和 Kafka emitter API,很容易进行代码集成。
REST Emitter:基于requests 模块进行了一层薄包装,提供了一个通过HTTP发送元数据事件的阻塞接口,主要用于如下2种场景:
当将元数据持久化到DataHub的元数据存储的简单性和确认比元数据发送的吞吐量更重要时,请使用此方法 当存在write -after-write场景时使用此方法,例如写元数据然后立即将其读回来。
Kafka Emitter:基于confluent-kafka的SerializingProducer类之上的一个薄包装,提供了一个非阻塞接口,用于向DataHub发送元数据事件,主要用于如下场景: