
Flink
文章平均质量分 96
Flink专栏是博客上的一个专题,专注于Apache Flink框架的技术分享、实战案例和最佳实践等方面。Apache Flink是一个开源的分布式流处理框架,以其高效、可靠、灵活的特点在业界广受好评。在Flink专栏中,我们将对Flink的基础概念和理论知识进行讲解,深入剖析其核心架构和应用场景,
阿moments
努力,奋斗,共勉!
展开
-
Flink-CEP 实战教程
所谓CEP,其实就是“”的缩写;而 Flink CEP,就是 Flink 实现的一个用于复杂事件处理的库(library)。 那到底什么是“复杂事件处理”呢?就是可以在事件流里,检测到特定的事件组合并进行处理,比如说“连续登录失败”,或者“订单支付超时”等等。 具体的处理过程是,把事件流中的一个个简单事件,通过一定的规则匹配组合起来,这就是“复杂事件”;然后基于这些满足规则的一组组复杂事件进行转换处理,得到想要的结果进行输出。 如图所示,输入是不同形状的事件流,我们可以定义一个匹配规则:在圆形原创 2024-01-10 18:07:32 · 1165 阅读 · 0 评论 -
Flink项目实战篇 基于Flink的城市交通监控平台(下)
Flink项目实战篇 基于Flink的城市交通监控平台(上)Flink项目实战篇 基于Flink的城市交通监控平台(下)原创 2023-12-27 13:45:41 · 2773 阅读 · 0 评论 -
Flink项目实战篇 基于Flink的城市交通监控平台(上)
近几年来,随着国内经济的快速发展,高速公路建设步伐不断加快,全国机动车辆、驾驶员数量迅速增长,交通管理工作日益繁重,压力与日俱增。为了提高公安交通管理工作的科学化、现代化水平,缓解警力不足,加强和保障道路交通的安全、有序和畅通,减少道路交通违法和事故的发生,全国各地建设和使用了大量的“电子警察”、“高清卡口”、“固定式测速”、“区间测速”、“便携式测速”、“视频监控”、“预警系统”、“能见度天气监测系统”、“LED信息发布系统”等交通监控系统设备。原创 2023-12-27 11:43:45 · 3272 阅读 · 0 评论 -
Flink1.17实战教程(第七篇:Flink SQL)
1)创建数据库(1)语法(2)案例2)查询数据库(1)查询所有数据库(2)查询当前数据库3)修改数据库4)删除数据库RESTRICT:删除非空数据库会触发异常。默认启用CASCADE:删除非空数据库也会删除所有相关的表和函数。5)切换当前数据库系统函数尽管庞大,也不可能涵盖所有的功能;如果有系统函数不支持的需求,我们就需要用自定义函数(User Defined Functions,UDF)来实现了。Flink的Table API和SQL提供了多种自定义函数的接口,以抽象类的形式定义。原创 2023-12-26 17:32:14 · 2303 阅读 · 0 评论 -
Flink1.17实战教程(第六篇:容错机制)
既然是端到端的exactly-once,我们依然可以从三个组件的角度来进行分析:(1)Flink内部Flink内部可以通过检查点机制保证状态和处理结果的exactly-once语义。(2)输入端输入数据源端的Kafka可以对数据进行持久化保存,并可以重置偏移量(offset)。所以我们可以在Source任务(FlinkKafkaConsumer)中将当前读取的偏移量保存为算子状态,写入到检查点中;原创 2023-12-26 15:48:51 · 1529 阅读 · 0 评论 -
Flink1.17实战教程(第五篇:状态管理)
1)托管状态(Managed State)和原始状态(Raw State)托管状态(Managed State)和原始状态(Raw State)。托管状态就是由Flink统一管理的,状态的存储访问、故障恢复和重组等一系列问题都由Flink实现,我们只要调接口就可以;而原始状态则是自定义的,相当于就是开辟了一块内存,需要我们自己管理,实现状态的序列化和故障恢复。通常我们采用Flink托管状态来实现需求。2)算子状态(Operator State)和按键分区状态(Keyed State)原创 2023-12-26 14:47:22 · 1892 阅读 · 0 评论 -
Flink1.17实战教程(第四篇:处理函数)
Flink1.17实战教程(第一篇:概念、部署、架构)Flink1.17实战教程(第二篇:DataStream API)Flink1.17实战教程(第三篇:时间和窗口)Flink1.17实战教程(第四篇:处理函数)原创 2023-12-26 11:29:59 · 1804 阅读 · 0 评论 -
Flink1.17实战教程(第三篇:时间和窗口)
在Flink中,用来衡量事件时间进展的标记,就被称作“水位线”(Watermark)。具体实现上,水位线可以看作一条特殊的数据记录,它是插入到数据流中的一个标记点,主要内容就是一个时间戳,用来指示当前的事件时间。而它插入流中的位置,就应该是在某个数据到来之后;这样就可以从这个数据中提取时间戳,作为当前水位线的时间戳了。1)周期性水位线生成器(Periodic Generator)周期性生成器一般是通过onEvent()观察判断输入的事件,而在onPeriodicEmit()里发出水位线。原创 2023-12-26 10:51:44 · 2259 阅读 · 0 评论 -
Flink1.17实战教程(第二篇:DataStream API)
用户自定义函数(user-defined function,UDF),即用户可以根据自身需求,重新实现算子的逻辑。用户自定义函数分为:函数类、匿名函数、富函数类。当Flink提供的所有分区策略都不能满足用户的需求时,我们可以通过使用partitionCustom()方法来自定义分区策略。1)自定义分区器@Override2)使用自定义分区如果我们想将数据存储到我们自己的存储设备中,而Flink并没有提供可以直接使用的连接器,就只能自定义Sink进行输出了。原创 2023-12-22 16:10:37 · 1646 阅读 · 0 评论 -
Flink1.17实战教程(第一篇:概念、部署、架构)
Flink官网Flimk核心目标,是“数据流上的有状态计算具体说明:Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。(1)无界流数据有定义流的开始,但没有定义流的结束;它们会无休止的产生数据;无界流的数据必须持续处理,即数据被摄取后需要立刻处理我们不能等到所有数据都到达再处理,因为输入是无限的。(2)有界流数据有定义流的开始,也有定义流的结束;有界流可以在摄取所有数据后再进行计算;有界流所有数据可以被排序,所以并不需要有序摄取;原创 2023-11-29 14:23:02 · 2749 阅读 · 1 评论 -
Flink-CDC 基础应用
CDC 是 Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。原创 2023-04-20 11:44:00 · 747 阅读 · 0 评论