记-flink实时数仓搭建、开发、维护笔记业务场景描述数仓架构数仓分层odsdimdwddws数仓建模注意项数仓建模开发规范命名规范问题与原因分析1、debezium采集pg表,数据类型问题2、业务库出现大批量刷表数据,debezium采集connector可能会挂3、业务库出现大批量刷表数据,实时计算任务会出现长时间延迟或内存溢出或任务失败3、业务库会修改维度表数据,导致实时任务出现数据延迟【或数据恢复耗时较长】4、多表关联多并发数据乱序5、多并发写入pg库表死锁6、明细数据一致性对比验证7、数据容错与恢复8、下游表没有数据或漏数分析9、实时思想10、多表关联比单表计算性能慢的原因分析11、
1.kafka能不能发送null消息? 能!2flink能不能发送null消息到kafka?不能!publicstaticvoidmain(String[]args)throwsException{StreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();Propertiesproperties=newProperties();properties.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"9.135.68.201:909
Flink读取数据的5种方式从文件中读取数据从Socket中读取数据从Kafka中读取数据从MySQL中读取数据从自定义数据源读取数据从文件中读取数据这是最简单的数据读取方式。当需要进行功能测试时,可以将数据保存在文件中,读取后验证流处理的逻辑是否符合预期。程序代码:packagecn.jihui.flinkimportorg.apache.flink.streaming.api.environment.StreamExecutionEnvironmentobjectreadFile{defmain(args:Array[String]):Unit={valenv=StreamExecutio
一、报错内容“Couldnotinstantiatetheexecutor.Makesureaplannermoduleisontheclasspath”Exceptioninthread"main"org.apache.flink.table.api.TableException:Couldnotinstantiatetheexecutor.Makesureaplannermoduleisontheclasspath atorg.apache.flink.table.api.bridge.java.internal.StreamTableEnvironmentImpl.lookupExecu
我的hadoop版本是3.1.3,Flink版本是1.14。不知道是hadoop版本的原因还是Flink版本更新的原因。当我运行一个简单的Flink测试时,虽然结果出来了但是后面还跟着一段报错信息。测试命令:flinkrun-myarn-cluster-p2-yjm2G-ytm2G$FLINK_HOME/examples/batch/WordCount.jar报错信息:Tryingtoaccessclosedclassloader.Pleasecheckifyoustoreclassloadersdirectlyorindirectlyinstaticfields.Ifthestacktrac
升级flink1.14.4报错 Causedby:org.apache.flink.table.api.ValidationException:Unabletocreateasourceforreadingtable'default_catalog.default_database.new_buyer_trade_order2' CAUSEDBY:2022-03-1116:45:04,169INFOorg.apache.flink.yarn.cli.FlinkYarnSessionCli[]-DynamicPropertyset:metrics.reporter.influxdb.class
Kafka系列之:记录一次KafkaTopic分区扩容,但是下游flink消费者没有自动消费新的分区的解决方法一、背景二、解决方法三、实现自动发现新的分区一、背景生产环境Kafka集群压力大,Topic读写压力大,消费的lag比较大,因此通过扩容Topic的分区,增大Topic的读写性能理论上下游消费者应该能够自动消费到新的分区,例如flume消费到了新的分区,但是实际情况是存在flink消费者没有消费到新的分区二、解决方法出现无法消费topic新的分区这种情况,最简单的解决方法是重启flink消费者程序三、实现自动发现新的分区flink程序增加自动发现分区参数:flink.partition
1.前言目前,很多flink相关的书籍和网上的文章讲解如何对接kafka时都是使用的FlinkKafkaConsumer,如下:StreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();Propertiesproperties=newProperties();//指定kafka的Broker地址properties.setProperty("bootstrap.servers","192.168.xx.xx:9092");//指定组IDproperties.setProperty("gr
1、概念在Flink中,水位线是一种衡量EventTime进展的机制,用来处理实时数据中的乱序问题的,通常是水位线和窗口结合使用来实现。从设备生成实时流事件,到Flink的source,再到多个oparator处理数据,过程中会受到网络延迟、背压等多种因素影响造成数据乱序。在进行窗口处理时,不可能无限期的等待延迟数据到达,当到达特定watermark时,认为在watermark之前的数据已经全部达到(即使后面还有延迟的数据),可以触发窗口计算,这个机制就是Watermark(水位线),具体如下图所示。2、水位线的计算watermark本质上是一个时间戳,且是动态变化的,会根据当前最大事件时间产
Maven依赖:org.apache.flinkflink-java${flink.version}org.apache.flinkflink-streaming-java_${scala.binary.version}${flink.version}org.apache.flinkflink-clients_${scala.binary.version}${flink.version}org.apache.flinkflink-connector-kafka_${scala.binary.version}${flink.version}其中,flink.version和scala.binar