
Flink从0开始
文章平均质量分 91
学习Flink的记录
sdut菜鸟
我得21个C币呢???
展开
-
【Flink】Flink 处理函数之基本处理函数(一)
流处理API,无论是基本的转换聚合、还是复杂的窗口操作,都是基于DataStream进行转换的,所以统称为,这是Flink编程的核心。但其实Flink为了更强大的表现力和易用性,Flink本身提供了多层API,只是中间一环,如下图所示:在更底层,Flink可以不定义任何具体的算子(比如mapfilter,或者window),而只是提炼出一个统一的操作——它是所有转换算子的一个概括性的表达,可以自定义处理逻辑,所以这一层接口就被叫作。状态(state)以及时间(time)。原创 2024-03-25 21:45:54 · 1700 阅读 · 0 评论 -
【Flink】Flink 中的时间和窗口之窗口其他API的使用
对于一个窗口算子而言,窗口分配器和窗口函数是必不可少的。除此之外,Flink 还提供了其他一些可选的 API,可以更加灵活地控制窗口行为。原创 2024-03-19 22:12:35 · 1373 阅读 · 0 评论 -
【Flink】Flink 中的时间和窗口之窗口API使用
窗口的API使用分为和,在定义窗口操作之前,首先就要确定好是基于按键分区Keyed的数据流来开窗还是基于没有按键分区的DataStream上开窗。原创 2024-03-18 23:42:05 · 1383 阅读 · 0 评论 -
【Flink】Flink 中的时间和窗口之窗口(Window)
Flink是一种流式计算引擎,主要是来处理无界数据流,数据流的数据是一直都有的,等待流结束输入数据获取所有的流数据在做聚合计算是不可能的。为了更方便高效的处理无界流,一种方式就是把无限的流数据切割成有限的数据块进行处理,这就是Flink中提到的。在Flink中,窗口就是用来处理无界流的核心。我们很容易把窗口想象成一个固定位置的框,数据源源不断的流过来,到某个时间点窗口该关闭了,就停止收集数据,触发计算并输出结果。原创 2024-02-26 21:46:25 · 1622 阅读 · 0 评论 -
【Flink】DataStream API使用之转换算子(Transformation)
大多数操作都需要用户自定义 function,至于什么是自定义函数?我们可以通过自定义函数类或者匿名类来实现接口,也可以直接传入 Lambda 表达式。这就是谓的用户自定义函数(user-defined function,UDF)当Flink提供的分区策略不能满足我们的要求时,还可以通过使用partitionCustom()方法来自定义分区策略:自定义分区器(Partitioner)对象:对DataStream进行分区的。应用分区器的字段,指定方式与KeyBy指定key基本一样,可以通过字段名。原创 2023-06-26 23:52:52 · 1694 阅读 · 1 评论 -
【Flink】Flink 中的时间和窗口之水位线(Watermark)
在事件时间语义下,我们可以不依赖系统时间,而是基于数据自带的时间戳去定义了一个时钟,用来表示当前时间的进展。这样每个并行子任务都会有一个自己的逻辑时钟,它的前进是靠数据的时间戳来驱动的。但是在分布式系统中,会存在一些问题,因为数据本身在处理转换过程中会发生变化,如果遇到窗口聚合的操作,呢么下游的数据就会变少,时间进度的控制就不精细了。另外,数据向下游任务传递时,一般只能传输给一个子任务(除广播外),这样其他的并行子任务的时钟就无法推进了。所以时钟也需要以数据的形式传递出去,告诉下游任务当前时间的进展;原创 2023-06-26 23:50:03 · 2657 阅读 · 1 评论 -
【Flink】DataStream API使用之输出算子(Sink)
如果Flink提供的Sink不满足自己的要求,也可以通过自定义Sink来满足自己的要求,通过Flink提供的接口和对应的抽象类重写invoke()就可以自定义Sink。这里以Hbase为例,使用,创建Hbase的连接以及关闭Hbase的连接分别放到open和close方法中。原创 2023-06-06 22:11:07 · 1134 阅读 · 0 评论 -
【Flink】DataStream API使用之Flink支持的数据类型
Flink的使用过程中,我们的数据都是定义好的 UserBehavior 类型,那还有没有其他更灵活的类型可以用呢?Flink 支持的数据类型到底有哪些?原创 2023-05-13 16:50:20 · 846 阅读 · 1 评论 -
【Flink】DataStream API使用之源算子(Source)
一般将数据的输入来源称为数据源(data source),而读取数据的算子就叫做源算子(source operator)。所以,Source就是整个程序的输入端。Flink中添加source的方式,是调用执行环境的 addSource()方法:原创 2023-05-10 20:45:26 · 2123 阅读 · 0 评论 -
【Flink】DataStream API使用之执行环境
Flink 程序可以在各种上下文环境中运行:我们可以在本地 JVM 中执行程序,也可以提交到远程集群上运行。不同的环境,代码的提交运行的过程会有所不同。这就要求我们在提交作业执行计算时,首先必须获取当前 Flink 的运行环境,从而建立起与 Flink 框架之间的联系。只有获取了环境上下文信息,才能将具体的任务调度到不同的 TaskManager 执行。原创 2023-05-08 16:54:06 · 690 阅读 · 0 评论