java动态执行的job,java-Flink动态更新 streaming job

YamlReader reader = new YamlReader(topologyConfig);

EventTopologyConfig eventTopologyConfig = reader.read(EventTopologyConfig.class);

long checkPointInterval = eventTopologyConfig.getCheckPointInterval();

topics = eventTopologyConfig.getTopics();

List<EventConfig> eventTypesList = eventTopologyConfig.getEventsType();

CachedSchemaRegistryClient registryClient = new CachedSchemaRegistryClient(schemaRegistryUrl, 1000);

FlinkKafkaConsumer flinkKafkaConsumer = new FlinkKafkaConsumer(topics,

new KafkaGenericAvroDeserializationSchema(schemaRegistryUrl),

properties);

DataStream<GenericRecord> dataStream = streamExecutionEnvironment.addSource(flinkKafkaConsumer).name("source");

try {

for (EventConfig eventConfig : eventTypesList) {

LOG.info("creating a stream for ", eventConfig.getEvent_name());

final StreamingFileSink sink = StreamingFileSink.forBulkFormat

(path, ParquetAvroWriters.forGenericRecord(SchemaUtils.getSchema(eventConfig.getSchema_subject(), registryClient)))

.withBucketAssigner(new EventTimeBucketAssigner())

.build();

DataStream<GenericRecord> outStream = dataStream.filter((FilterFunction<GenericRecord>) genericRecord -> {

if (genericRecord != null && genericRecord.get(EVENT_NAME).toString().equals(eventConfig.getEvent_name())) {

return true;

}

return false;

});

outStream.addSink(sink).name(eventConfig.getSink_id()).setParallelism(parallelism);

}

} catch (Exception e) {

e.printStackTrace();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值