
flink
文章平均质量分 73
大数据flink
腹黑客
骑最贵的单车,你就是gai上最靓的仔
展开
-
Flink - Table API UDF --- 用户自定义函数
函数 (Functions)Flink Table API 和 SQL 为用户提供了一组用于数据转换的内置函数SQL中支持的很多函数,Table API和SQL 都已经做了实现比较函数SQL:value1 = value2value1 > value2Table APIANY1 === ANY2ANY1 > ANY2逻辑函数SQL:boolean1 OR boolean2boolean IS FALSENOT booleanT原创 2021-02-13 01:39:37 · 371 阅读 · 0 评论 -
Flink - Table API 之 window (窗口)
窗口时间语义,要配合窗口操作才能发挥作用在Table API 和 SQL 中,主要有两种窗口Group Window(分组窗口)根据时间或行计数间隔,将行聚合到有限的组(Group)中,并对每个组的数据执行一次聚合函数Over Windows针对每个输入行,计算相邻范围内的聚合Group WindowsGroup Windows是使用window(w:GroupWindows)子句定义的,并且必须由as子句指定一个别名为了按窗口对表进行分组,窗口的别名必须在group原创 2021-02-12 21:57:05 · 2157 阅读 · 1 评论 -
Flink - Table API 动态表及时间语义
动态表动态表是Flink对流数据的Table API 和 SQL支持的核心概念.与表示批处理数据的静态表不同,动态表是随时间变化的.持续查询动态表可以像静态的批处理表一样进行查询,查询一个动态表会产生持续查询(Continuous Query)连续查询永远不会停止,并会生成另一个动态表查询会不断更新其动态结果表,以反映其动态输入表上的更改动态表和持续查询流式表查询的处理过程:流被转换为动态表对动态表计算连续查询,生成新的动态表生成的动态表被转换回流将流原创 2021-02-09 18:17:03 · 401 阅读 · 0 评论 -
Flink -Table API 中 和DataStream 互相转换
将Table转换成DataStream表可以转换为DataStream或DataSet,这样自定义流处理或批处理程序就可以继续在Table API或SQL 查询的结果上运行了将表转换为DataStream或DataSet时,需要制定生成的数据类型,既要将表的每一行转换成的数据类型表作为流式查询的结果,是动态更新的转换有两种转换模式:追加(Append)模式和撤回(Retract)模式追加模式(Retract Mode)用于表只会被插入(Insert)操作更改的场景Dat原创 2021-02-09 18:15:52 · 1901 阅读 · 0 评论 -
Flink - Table API 处理后数据 输出到不同组件
更新模式对于流式查询,需要声明如何在表和外部连接器之间执行转换与外部系统交换的消息类型,由更新模式(Update Mode)指定追加(Append)模式表只做插入操作,和外部连接器只交换插入(insert)消息撤回(Retract)模式表和外部连接器交换添加(Add)和撤回(Retract)消息插入操作(insert)编码为Add消息;删除(Delete)编码为Retract消息;更新(Update)编码为上一条的Retract和下一条的Add消息更新(Upsert)插入模式原创 2021-02-09 17:45:41 · 318 阅读 · 0 评论 -
Flink - Table API 快速入门操作
Flink Table API Flink SQLTable API Flink SQLFlink 对批处理和流处理,提供了统一的上层APITable API是一套内嵌在Java和Scala语言中的查询API,它允许以非常直观的方式组合来自一些关系运算符的查询Flink 的SQL 支持基于实现了SQL标准的Apache CalciteApache Flink 有两种关系型 API 来做流批统一处理:Table API 和 SQL。Table API 是用于 Scala 和 Java 语言的查原创 2021-02-07 20:14:25 · 1722 阅读 · 2 评论 -
Flink - 状态一致性
Flink - 状态一致性什么是状态一致性有状态的流处理,内部每个算子任务都可以有自己的状态对于流处理器内部来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准备。一条数据不应该丢失,也不应该重复计算在遇到故障时可以恢复状态,恢复以后的重新计算,结果应该也是完全正确的。状态一致性分类AT-MOST-ONCE(最多一次)当任务故障时,最简单的做法是什么都不干,即不恢复丢失的状态,也不重播丢失的数据。At-most-once语义的含义是最多处理一次事件。AT-LEAST-O原创 2021-02-07 14:04:28 · 298 阅读 · 0 评论 -
Flink 容错机制
Flink 容错机制一致性检查点(checkpoint)Flink 故障恢复机制的核心,就是应用状态的一致性检查点有状态流应用的一致检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照);这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候从检查点恢复状态在执行流应用程序期间,Flink会定期保存状态的一致检查点如果发生故障,Flink将会使用最近的检查点来一致恢复应用程序的状态,并重新启动处理流程遇到故障之后,第一步就是重启应用第二步是从chec原创 2021-02-05 16:12:21 · 234 阅读 · 0 评论 -
初始 - Flink Processing Function API
Flink Processing FunctionFlink API 最底层的抽象为有状态实时流处理。其抽象实现是 Process Function,并且 Process Function 被 Flink 框架集成到了 DataStream API 中来为我们使用。它允许用户在应用程序中自由地处理来自单流或多流的事件(数据),并提供具有全局一致性和容错保障的状态。此外,用户可以在此层抽象中注册事件时间(event time)和处理时间(processing time)回调方法,从而允许程序可以实现复杂计原创 2021-02-05 10:42:02 · 198 阅读 · 0 评论 -
Flink - 状态管理
Flink状态管理flink中的状态由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态。可以认为状态就是一个本地变量,可以被任务的业务逻辑访问Flink 会进行状态管理,包括状态一致性,故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑。在flink中,状态始终与特定算子相关联为了使运行时的flink了解算子的状态,算子需要预先注册其状态。总的来说有两种类型的状态:算子状态(Operatior State)算子状态的作用范围限定为算子任务键控原创 2021-02-03 23:40:31 · 159 阅读 · 0 评论 -
Flink 时间语意
Flink 时间语意flink 中的时间语意设置Event TimeWatermarkwatermark的传递,引入和设定Event Time:时间创建的时间Ingestion Time:数据进入flink的时间Processing Time:执行操作算子的本地系统时间,与机器相关不同的时间语义有不同的应用场合我们往往更关心事件时间(Event Time)某些应用场合,不应该使用Processing TimeEvent Time 可以从日志数据的时间戳(timestamp)原创 2021-02-03 09:45:26 · 597 阅读 · 2 评论 -
Flink - Window 操作学习
Window API窗口分配器 ------ window() 方法使用.window来定义一个窗口,然后基于这个window去做一些聚合或者其它处理操作。主要window()方法必须在keyBy之后才能用。Flink提供了更加简单的.timeWindow和.countWindow方法,用于定义时间窗口和计数函数。DataStrean<Tuple2<String,Double>> minTempWindowStream = dataStream .map(new M原创 2021-02-01 23:14:57 · 207 阅读 · 0 评论 -
Flink - Sink
Flink - Sink在说sink前,我们提一句flink数据传输重分区,也是DataStream内所拥有方法。shuffle:设置DataStream的分区,以便输出元素随机地均匀地移至下一个操作。keyby:创建一个新的KeyedStream,使用提供的key进行分区global:设置DataStream的分区,以便输出值全部转到下一个处理运算符的第一个实例。用这个请小心设置,因为这可能会导致严重的性能瓶颈在应用程序中.rebalance:设置DataStream的分区,以便输出元素以轮询原创 2021-01-27 22:48:17 · 727 阅读 · 0 评论 -
Flink -- 支持数据类型/UDF函数
Flink 支持的数据类型Flink 流应用程序处理的是以数据对象表示的事件流。所以在Flink内部,我们需要能够处理这些的对象,他们需要被序列化和反序列化,以便通过网络传送他们,或者从状态后端,检查点和保存点读取他们。为了有效地做到这一点,Flink需要明确知道应用程序所处理的数据类型.Flink使用类型信息的概念来表示数据类型,并为每个数据类型生成特定的序列化器,反序列化器和比较器。Flink还具有一个类型提取系统,该系统分析函数的输入和返回类型,以自动获取类型信息。从而获得序列化器和反序列化器。但原创 2021-01-24 23:41:29 · 560 阅读 · 0 评论 -
Flink 常见 Transform
Flink Transform以下是flink中常见的一些transformmap// 创建执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 加载数据源 DataStream<String> datas = env.readTextFile("data/words.txt");// map transform 转换原创 2021-01-23 22:00:30 · 415 阅读 · 0 评论 -
Flink Transform KeyBy - max 使用案例
我们使用maven构建项目,在pom.xml中导入坐标.要注意,这里我们导入的scala版本和我们本机安装的scala版本一定要保持一致。 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <flink.version>1.12.0</flink.version> <target.java.version>1.8&原创 2021-01-22 10:27:20 · 294 阅读 · 0 评论 -
Flink 添加不同数据源代码
Flink 数据源首先我们需要到导入flink的开发依赖包我们基于Maven的pom.xml构建flink本地开发项目<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/m原创 2021-01-20 16:59:23 · 654 阅读 · 0 评论 -
Flink 快速入门案例二(参考官方文档)
Flink 入门案例具有一定实际意义的流处理程序。结合信用卡欺诈验证场景,实现的具体Demo。定义程序数据流package com.sanxiau;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import org.apache.flink.walkthroug原创 2020-12-31 10:03:21 · 363 阅读 · 0 评论 -
Flink 快速入门案例(参考官方文档)
Flink批处理是有界数据流处理的范例。在这种模式下,你可以选择在计算结果输出之前输入整个数据集,这也就意味着你可以对整个数据集的数据进行排序、统计或汇总计算后再输出结果。流处理正相反,其涉及无界数据流。至少理论上来说,它的数据输入永远不会结束,因此程序必须持续不断地对到达的数据进行处理。快速入门案例DarchetypeGroupId=org.apache.flink DarchetypeArtifactId=flink-walkthrough-datastream-java Darchetyp原创 2020-12-30 18:18:23 · 1254 阅读 · 1 评论 -
Flink 在流处理上常见的sink
Flink 在流处理上常见的sinkFlink将数据进行sink操作到本地文件/本地集合/HDFS等和之前的批处理操作一致sink 到 kafka (读取mysql数据,落地到kafka)创建kafka的topic:kafka-console-consumer.sh --from-beginning --topic test2 --zookeeper node01:2181,node02:2181,node03:2181object DataSink_kafka { def main(a原创 2020-12-29 23:39:08 · 940 阅读 · 0 评论 -
初识 Flink
FlinkFlink 基本介绍Flink概述 官网分布式的计算引擎 支持批处理 ,即处理静态的数据集、历史的数据集支持流处理 ,即实时地处理一些实时数据流支持基于事件 的应用【比如说滴滴通过 Flink CEP 实现实时监测司机的行为流来判断司机的行为是否正当】 Apache Flink – Stateful Computations over Data StreamsStateful Computations over Data Streams ,即数据流上的有状态的计原创 2020-12-14 22:03:33 · 439 阅读 · 1 评论