随笔分类 - flink
摘要:把flink当成一个服务器,中间计算状态开放rest服务供业务系统调用,不用在走数据库这种地方。 具体案例看这篇博客 https://caizhengjie.blog.csdn.net/article/details/115442928?spm=1001.2101.3001.6661.1&utm_m
阅读全文
摘要:广播状态是为了支持一些用例,其中来自一个流的一些数据需要被广播到所有下游任务,在那里它被存储在本地并用于处理另一个流上的所有传入数据元。合并俩条流,一条控制流,一条消息流。 https://blog.csdn.net/m0_49834705/article/details/119414130 htt
阅读全文
摘要:flink中的计算分为有状态计算和无状态计算, 无状态计算每次只转换一条输入记录,并且只根据最新的输入记录输出结果。 有状态计算维护所有已处理的记录的状态值,并根据每条新输入的记录更新状态,因此输出记录反应的是综合考虑多个事件之后的结果。 无状态在这里不在赘述,这里来记录一下有状态计算。 flink
阅读全文
摘要:划分窗口就两种方式: 根据时间进行截取(time-driven-window),比如每1分钟统计一次或每10分钟统计一次。(time window) 根据数据进行截取(data-driven-window),比如每5个数据统计一次或每50个数据统计一次。(count window) 对于TimeWi
阅读全文
摘要:union,connect,Iterate,project union算子是把多个task的算子合并成一个算子,(注意这多个算子的类型是要一致的) DataStream* → DataStream ,下图是语法格式 dataStream.union(otherStream1, otherStream
阅读全文
摘要:flink在transformatin之后为了控制更小细粒度的分区,引入了物理分区功能的算子 分别是rebalance,shuffle,broadcast,rescaling,partitonCustom这五个 下面来一个个记录一下。 rebalance ,下游task分区会轮询的把每个上游task
阅读全文
摘要:reduce,sum,min,max,minby,maxby这几个算子都是对keyedStream算子进行滚动聚合使用,把keyedStream算子转换成DataStream类算子。换句话说,想要使用这几个算子,那么势必要先去用keyby算子进行分区,把数据塞进各自对应的管道里去。 reduce算子
阅读全文
摘要:Keyby点进去看源码,KeySelector是你new 的匿名内部类,重写getkey函数。 它主要是new 一个KeyedStream类(this就是上游的父dataStream,clean检测是不是序列化的) 进到keyStream里面,new了一个 PartitionTransformati
阅读全文
摘要:debug一下找到reduce算子的调用链,进到下图这个类里面 主要去看下图这个函数 1. 先拿到 这次进入的value 2.判断是不是在历史状态values里面,拿到历史聚合过的状态值。(这里就已经初步可以看出flink的基于状态是怎么回事了) 2.如果在的话,就调用你new 的reduceFun
阅读全文
摘要:flink的keyby算子作用是把相同key的数据发送到一个分区(即一个subtask里面去),采用的是哈希分区方法。 用法多样,主要整理了下图中的四种用法。 第一种是 key(Interger) 用法,传入一个整数,这个整数对应的是元组中的元素顺序是第几个,(注:可以是多个key,不一定只有一个,
阅读全文
摘要:Flink创建执行环境有四种方式,下图从上到下是 1 获取执行环境 2.创建本地带webui的环境(实验用) 3.创建本地环境 4.创建远程环境 Flink在流处理上的source和在批处理上的source基本一致。大致有五大类: 基于本地集合的source(Collection-based-sou
阅读全文
摘要:https://zhuanlan.zhihu.com/p/131596000
阅读全文