本文写了 Flink connector es,将 Kafka 中的数据读取并存储到 ElasticSearch 中,文中讲了如何封装自带的 sink,然后一些扩展配置以及 FailureHandler 情况下要怎么处理。(这个问题可是线上很容易遇到的)
客户创建Flink SQL作业,消费Kafka后sink到es集群,作业执行成功,但无数据。查看客户作业脚本内容,排查无问题,作业执行成功,出现该问题可能的原因如下:数据不准确。数据处理有问题。通过udf成jar包的形式修改配置
最后使用自定义的 ElasticsearchSinkProcessFunction 将结果写入 Elasticsearch 动态索引中。
2.然后将这些数据写入外部的sink系统,但不提交,只是预提交 3.当收到checkpoint完成的通知时,才正式提交事务,实现结果的写入 4.这种真正实现了exactly-once,他需要一个提供事务支持的外部sink系统,Flink提供了twoPhaseCommitSinkFunction接口 5.2PC对外部sink系统的要求 1.必须支持事务,或者sink任务必须能够模拟外部系统上...
env.execute("file sink.") } } 5.1 Kafka package com.zhen.flink.api.sink import java.util.Properties import com.zhen.flink.api.SensorReading import org.apache.flink.api.common.serialization.SimpleStringSchema import org.apache.flink.core.fs.Path ...
dataStream.addSink(newElasticsearchSink.Builder[SensorReading](httpHosts,myEsSinkFunc).build()) env.execute("Es Sink Test") } } ###保存至Kafka### 1、依赖(注意:一定要注意版本的问题,否则程序启动没有错误,也接受不到kafka的数据) <dependency> <groupId>org....
Flink的API做了4层的封装,上两层TableAPI、SQL语法相对简单便于编写,面对小需求可以快速上手解决,本文参考官网及部分线上教程编写source端、sink端代码,分别读取socket、kafka及文本作为source,并将流数据输出写入Kafka、ES及MySQL,方便后续查看使用。 二、代码部分 ...
当sink到elasticsearch 时,可以指定es的指定字段吗?比如es索引有 10个字段,我只需要插入或者更新 其中5个字段,当更新时,不会影响其他5个字段的原来的值! 参考答案: 当将数据从Sink传输到Elasticsearch时,通常不能直接指定Elasticsearch索引中的特定字段。数据通常是以一个整体对象的形式进行传输,然后由Elasticsearch的映...
经过一番折腾调试之后,用 Flink Datastream API顺利读取 HDFS 写 ES 的代码如下: packagecom.anryg.hdfs importjava.time.Duration importjava.util importorg.apache.flink.api.common.eventtime.WatermarkStrategy importorg.apache.flink.api.connector.sink2.SinkWriter importorg.apache.flink.connector..sink.{Elast...
1. 使用FLINK SQL描述如下: CREATE TABLE WORD_COUNT_SINK(`word` varchar, score INT) WITH ('connector.type'='elasticsearch','connector.version'='6' ,'connector.hosts.0.hostname'='localhost' ,'connector.hosts.0.port'='9200' ,'connector.hosts.0.protocol'='http' ...