
Flink
文章平均质量分 83
拾荒路上的开拓者
可能出错的地方,一定会出错
展开
-
Flink的检查点(checkpoint)
Flink具体如何保证exactly-once呢? 它使用一种被称为"检查点"(checkpoint)的特性,在出现故障时将系统重置回正确状态1 Flink的检查点算法Flink检查点的核心作用是确保状态正确,即使遇到程序中断,也要正确。记住这一基本点之后,我们用一个例子来看检查点是如何运行的。Flink为用户提供了用来定义状态的工具。例如,以下这个Scala程序按照输入记录的第一个字段(一个字符串)进行分组并维护第二个字段的计数状态。val stream: DataStrea...原创 2022-03-02 15:25:13 · 2431 阅读 · 1 评论 -
Flink实时维表join方法总结
1、ETL背景在我们实时数仓日常工作中,经常会有一些实时的需求,这些需求往往都是一些拉宽的需求。为了给实时数仓来进行OLAP对来进行Ad-hoc查询,但是我们工作中一些维度表的数据是会发生变化的,可能是缓慢变化维度。那么这个时候就需要进行flink连接其他数据源来进行查询。那么这个时候我们肯定可以想到就是来一条查一次,这个是肯定可以做到的。但是在大数据场景下,我们是不是会觉得有点慢呢?我们是否有更好的解决方案,就像我写代码的时候 有时候就会思考有没有更好的解决方案。但是针对于要进行交付给用户,所转载 2021-12-26 22:42:45 · 1366 阅读 · 0 评论 -
基于Flink百亿数据实时去重
基于传统的Set方法去重,以及弊端去重处理方法:需要一个全局 set集合来维护历史所有数据的主键。当处理新日志时,需要拿到当前日志的主键与历史数据的 set 集合按照规则进行比较,若 set集合中已经包含了当前日志的主键,说明当前日志在之前已经被处理过了,则当前日志应该被过滤掉,否则认为当前日志不应该被过滤应该被处理,而且处理完成后需要将新日志的主键加入到set 集合中,set 集合永远存放着所有已经被处理过的数据弊端:百亿数据去重,就按照每天100亿数据来算,由于数据量巨大,所以主键.转载 2021-12-26 22:33:48 · 1980 阅读 · 0 评论 -
Flink广播流——BroadcastStream
在日常Flink开发中,有时需要给正在运行中的Flink程序修改参数,比如过滤一些字段、字段值等,而这些值有时是配置在Mysql中的,但如果进行高吞吐计算的Function中动态查询配置文件有可能使任务阻塞,甚至导致任务出现失败的情况。遇到上述场景时,可以考虑通过广播流查询配置文件,广播到某个operator的所有并发实例中,然后与另一个条流数据连接进行计算。实现步骤:1、首先定义一个Mysql的实体类,下面例子的属性名可以自己根据实际中Mysql中表名来变化class Flow {原创 2020-09-12 16:47:01 · 7399 阅读 · 0 评论 -
Flink消费Kafka数据指定offset的五种模式
FlinkKafkaConsumer consumer = new FlinkKafkaConsumer("topic", new SimpleStringSchema(), props);/*** Flink从topic中最初的数据开始消费*/consumer.setStartFromEarliest();/*** Flink从topic中指定的时间点开始消费,指定时间点之前的数据忽略*/consumer.setStartFromTimestamp(1559801580000l);.原创 2020-09-09 14:43:00 · 2302 阅读 · 1 评论