Flink
文章平均质量分 80
Flink
taco詹詹
多年互联网在线教育、电商、社区、直播、音视频等产品开发架构经验,从0到1主导多个产品线、数据中台、技术中台的建设,技术管理一身的互联网“民工”。
熟练使用java、scala、PHP、python等后端语言进行软件研发,熟悉spring生态、docker、K8S等容器、CI、CD集成工具。
熟悉大数据周边组件,Hadoop、Hive、Spark、Flink等。
熟悉离线数仓构建全流程及元数据管理、数据建模、数据治理等。
熟悉基于spark框架全流程实时数据统计及常用OLAP工具的使用等。
展开
-
Flink 函数(Functions)
Flink-函数 | 用户自定义函数(UDF)标量函数 | 表函数 | 聚合函数 | 表聚合函数用户自定义函数(UDF) 用户定义函数(User-defined Functions,UDF)是一个重要的特性,它们显著地扩展了查询的表达能力 一些系统内置函数无法解决的需求,我们可以用UDF来自定义实现 在大多数情况下,用户定义的函数必须先注册,然后才能在查询中使用 函数通过调用registerFunction()方法在 TableEnvironment...转载 2021-11-03 09:29:06 · 780 阅读 · 0 评论 -
Table API和Flink SQL
概述Flink 对批处理和流处理,提供了统一的上层 API Table API 是一套内嵌在 Java 和 Scala 语言中的查询API,它允许以非常直观的方式组合来自一些关系运算符的查询 Flink 的 SQL 支持基于实现了 SQL 标准的 Apache Calcite使用样例 导入pom依赖,1.11.X之后,推荐使用blink版本 <!-- Table API 和 Flink SQL --><dependency> <groupId&.转载 2021-11-02 13:50:30 · 306 阅读 · 0 评论 -
Flink 容错机制
Flink-容错机制 | 一致性检查点 | 检查点到恢复状态过程 | Flink检查点算法(Chandy-Lamport) | 算法操作解析 | 保存点简介10.1 一致性检查点(checkpoint) Flink 故障恢复机制的核心,就是应用状态的一致性检查点 有状态流应用的一致检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照);这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候 (5这个数据虽然进了奇数流但是偶数流也应该做快照,因为属于同一个相同数转载 2021-11-02 13:32:02 · 172 阅读 · 0 评论 -
ProcessFunction API(底层API)
我们之前学习的转换算子是无法访问事件的时间戳信息和水位线信息的。而这在一些应用场景下,极为重要。例如MapFunction这样的map转换算子就无法访问时间戳或者当前事件的事件时间。 基于此,DataStream API提供了一系列的Low-Level转换算子。可以访问时间戳、watermark以及注册定时事件。还可以输出特定的一些事件,例如超时事件等。Process Function用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的window函数和转换算子无法实现)。例如,FlinkSQL原创 2021-11-02 13:27:32 · 597 阅读 · 0 评论 -
Flink状态管理
Flink_Flink中的状态Flink状态管理详解:Keyed State和Operator List State深度解析<= 不错的文章,建议阅读算子状态(Operator State) 键控状态(Keyed State) 状态后端(State Backends)状态概述由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态 可以认为任务状态就是一个本地变量,可以被任务的业务逻辑访问 Flink 会进行状态管理,包括状态一致性、故障处理以及高效存储和访..转载 2021-11-02 12:31:15 · 286 阅读 · 0 评论 -
Flink 时间语义和Watermark
1.Flink中的时间语义 Event Time:事件创建时间; Ingestion Time:数据进入Flink的时间; Processing Time:执行操作算子的本地系统时间,与机器相关; Event Time是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink通过时间戳分配器访问事件时间戳Flink 时间语义与Watermark及EventTime在window中的使用不同的时间语义有.原创 2021-11-02 12:28:19 · 223 阅读 · 0 评论 -
Window API
概述:窗口分配器——window()方法我们可以用.window()来定义一个窗口,然后基于这个window去做一些聚合或者其他处理操作。注意window()方法必须在keyBy之后才能使用。Flink提供了更加简单的.timeWindow()和.countWindow()方法,用于定义时间窗口和计数窗口。DataStream<Tuple2<String,Double>> minTempPerWindowStream = datastream .map(n原创 2021-11-02 11:14:56 · 601 阅读 · 0 评论 -
Flink的Window
streaming流式计算是一种被设计用于处理无限数据集的数据处理引擎,而无限数据集是指一种不断增长的本质上无限的数据集,而window是一种切割无限数据为有限块进行处理的手段。Window是无限数据流处理的核心,Window将一个无限的stream拆分成有限大小的”buckets”桶,我们可以在这些桶上做计算操作。举例子:假设按照时间段划分桶,接收到的数据马上能判断放到哪个桶,且多个桶的数据能并行被处理。(迟到的数据也可判断是原本属于哪个桶的)Window类型 时间窗口(Ti...原创 2021-11-02 10:51:19 · 96 阅读 · 0 评论 -
Flink流处理API
1、支持的数据类型Flink流应用程序处理的是以数据对象表示的事件流。所以在Flink内部,我们需要能够处理这些对象。它们需要被序列化和反序列化,以便通过网络传送它们;或者从状态后端、检查点和保存点读取它们。为了有效地做到这一点,Flink需要明确知道应用程序所处理的数据类型。Flink使用类型信息的概念来表示数据类型,并为每个数据类型生成特定的序列化器、反序列化器和比较器Flink还具有一个类型提取系统,该系统分析函数的输入和返回类型,以自动获取类型信息,从而获得序列化器和反序列化器。但是,在某些..原创 2021-11-02 10:36:58 · 1021 阅读 · 0 评论 -
Flink流处理API
1、Environment 1.1)getExecutionEnvironment创建一个执行环境,表示当前执行程序的上下文。如果程序是独立调用的,则此方法返回本地执行环境;如果从命令行客户端调用程序以提交到集群,则此方法返回此集群的执行环境,也就是说,getExecutionEnvironment会根据查询运行的方式决定返回什么样的运行环境,是最常用的一种创建执行环境的方式。ExecutionEnvironment env ...转载 2021-11-02 08:46:56 · 99 阅读 · 0 评论 -
Flink基础及理论
1、Flink特点1)事件驱动(Event-driven)2)基于流处理一切皆由流组成,离线数据是有界的流;实时数据是一个没有界限的流。(有界流、无界流)3)分层API越顶层越抽象,表达含义越简明,使用越方便越底层越具体,表达含义越丰富,使用越灵活4)Flink 对比 SparkStreaming数据模型:Spark采用RDD模型,spark streaming的DStream实际上也就是一组组小批数据RDD的集合,flink基本数据模型是数据流,以及事件(Event)序转载 2021-11-01 18:22:41 · 351 阅读 · 0 评论 -
Flink流处理API
1.SourceFlink-Environment的三种方式和Source的四种读取方式-从集合中、从kafka中、从文件中、自定义2.Transform2.1、map、flatMap、filter通常被统一称为基本转换算子(简单的转换算子)java代码:package apitest.transform;import org.apache.flink.api.common.functions.FilterFunction;import org.apache.fli原创 2021-11-02 09:43:23 · 608 阅读 · 0 评论 -
Flink 学习笔记前置
学习大数据有几年了,一直没有涉及到Flink部分,正好最近时间充裕,便学习整理一份个人学习笔记,仅供参考,学习资源来自于B站尚硅谷及其他网友。实时处理框架值接触过sparkStreaming和flink所有只针对这两个所学框架先做些对比:flink 相比较spark Streaming这种微批准实时处理,完全是两种不同的实现方式。flink 是一种完全无间断的流处理,而sparkStreaming 是无限的微小批次组成的“流”,是同一批次数据积累完再去做处理,而Flink是来一条处理一条数据。f原创 2021-11-01 15:35:23 · 241 阅读 · 0 评论 -
Flink运行架构
Flink-运行时架构中的四大组件|任务提交流程|任务调度原理|Slots和并行度中间的关系|数据流|执行图|数据得传输形式|任务链Flink运行时组件 Flink运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作: 作业管理器(JobManager) 资源管理器(ResourceManager) 任务管理器(TaskManager) 分发器(Dispatcher) 因为Flink是用Java和Scala实现的,所以所有组件都会运行在...原创 2021-11-01 18:43:04 · 253 阅读 · 0 评论