Flink知识点概述

这篇具有很好参考价值的文章主要介绍了Flink知识点概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

flink是什么

        是一个框架和分布式处理引擎,在无边界和有边界数据流上纪念性有状态的计算

主要特性

    1.批流统一

            批处理:数据 全部访问完成进行操作
                         有界、持久、大量,适合访问全套记录才能完成的工作,一般用于 离线统计
            流处理: 来一条数据处理一条数据
                         无界、实时,不需要操作整个系统
            无界流(Datastream):只有开始,没有结束,要以特定的顺序获取,并且获取后立即处理
            有界流(DataSet):开始结束都有,数据全部获取后执行, 可以被排序

     2.性能卓越

            高吞吐:同时处理大量数据
              低延时:快速返回结果

    3.规模计算

            支持超大状态与增量检查点机制
              状态:计算过程中需要存储的数据
              检查机制:备份

    4.生态兼容

                支持与yarn集成
                支持与kubernetes集成
                支持单机模式运行

    5.高容错

                故障自动重试
                        一致性检查点
                        保证故障场景下精确一次的状态一致性

并行度

                一个算子的子任务的个数被称为其并行度
                包含并行任务的数据流,就是并行数据流
                一个流程序的并行度,可以认为就是其所有算子中最大的并行度

设置并行度

     stream.map(word -> Tuple2.of(word, 1L)). setParallelism(2)
     或
      env.setParallelism(2)

窗口分类

         1)按照驱动分类

                    (1)时间窗口:时间定义起始
                    (2)计数窗口:达到指定个数
Flink知识点概述,flink,大数据

            2)按照窗口分配数据的规则分类

                    (1)滚动窗口
                                            窗口内大小相同,不会有重叠,首尾相连 如:123,456,789
                    (2)滑动窗口
                                            窗口内大小相同,有重叠,首尾不相连 如:123,234,345
                    (3)会话窗口:基于时间定义
                                            会话超时时间,两个会话窗口之间的最小距离,窗口长度、起始时间不确定,窗口之间无关联,不重叠
                    (4)全局窗口:窗口没结束时,不会做触发计算

窗口API

            1)按键分区(Keyed Windows)

                        stream.keyBy(...).window(...)

            2)非按键分区(Non-Keyed Windows)

                         stream.windowAll(...)

代码中窗口API的调用

            窗口操作主要有两个部分:窗口分配器(Window Assigners)和窗口函数(Window Functions)。

                stream.keyBy(<key selector>)
                               .window(<window assigner>)
                               .aggregate(<window function>)文章来源地址https://www.toymoban.com/news/detail-824028.html

时间窗口

                时间窗口的计算频次
                时间窗口的大小
                时间窗口内的数据的处理逻辑

时间窗口计算模型的处理机制

Flink知识点概述,flink,大数据
输入数据流----------->时间窗口计算----------->输出数据流

时间语义

        事件时间(Event Time):数据产生的时间
        处理时间(Processing Time):数据真正被处理的时间
        进入Flink的时间:(Ingestion Time):每个事件将进入Flink时的时间作为时间戳
        时间语义: 是以事件时间还是处理时间进行计算 
// TODO 1.指定窗口分配器: 指定 用 哪一种窗口 --- 时间 or 计数? 滚动、滑动、会话?
// 1.1 没有keyby的窗口: 窗口内的 所有数据 进入同一个 子任务,并行度值只能为1
//sensorDS.windowAll();
// 1.2 有keyby的窗口()
//sensorKS.window();每个key上都定义了一组窗口,各自独立地进行统计计算
//sensorKS.window();

基于时间

                

                滚动窗口,窗口长度10秒

sensorKS.window(TumblingProcessingTimeWindows.of(Time.seconds(10)));

                滑动窗口,长度10秒,步长2秒

sensorKS.window(SlidingProcessingTimeWindows.of(Time.seconds(10),Time.seconds(2)));

                会话窗口,超过五秒没数据,自动生成新的窗口

sensorKS.window(ProcessingTimeSessionWindows.withGap(Time.seconds(5)));

基于计数 数据条数

                窗口长度为5

sensorKS.countWindow(5);

                窗口长度为5 步长2

sensorKS.countWindow(5,2);

                全局窗口 计数窗口底层用这个 需自定义触发器使用

                        sensorKS.window(GlobalWindows.create())

水位线(Watermark)(水印)

        衡量事件时间进展的标记

水位线特性

                是插入到数据流中的一个 标记,可以认为是一个 特殊的数据
                主要内容是一个时间戳, 表示当前事件时间的进展
                 基于数据的时间戳生成的
                必须 单调递增
                设置 延迟,保证正确 处理乱序数据
一个水位线watermark(t) ,表示当前流中事件时间已达到时间戳,表示t之前的所有数据已到齐,不会有t1<=t
          有序流中的水位线:按生成的先后顺序进入流中,每条数据产生一个水位线
                                        数据量大时,每隔一段时间生成一个水位线
Flink知识点概述,flink,大数据
          乱序流中的水位线:因网络传输延迟,使顺序改变
                                        判断是否比前面的小,小则进入,否则进入新的
          
Flink知识点概述,flink,大数据
Flink知识点概述,flink,大数据

到了这里,关于Flink知识点概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【操作系统】考研真题攻克与重点知识点剖析 - 第 1 篇:操作系统概述

    本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。 此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术有限,最终数据清洗结果不够理想,

    2024年02月07日
    浏览(54)
  • 【计算机组成原理】考研真题攻克与重点知识点剖析 - 第 1 篇:计算机系统概述

    本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。 此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术有限,最终数据清洗结果不够理想,

    2024年02月07日
    浏览(67)
  • 数据库知识点

    索引本质上是一张表,保存了主键与索引字段,在对数据做频繁的查询或排序时,可在某些字段上添加索引,提高检索的的效率,降低IO成本,并可以使用索引列,对数据进行排序,降低排序的成本。盲目的添加索引是不正确的。索引表保存数据占用空间,在对数据进行增删

    2024年02月06日
    浏览(45)
  • 【期末专题】数据库知识点整理

    1.要求:修改表的“价格”列,使其数据类型为decimal(6,2) 语句:alter table BookInfo modify price decimal(6,2); 注意点:修改一个表中已有列的数据类型的语句格式:         alter table 表名 modify 列名 数据类型 2.要求: 语句: 注意点: 创建触发器的语法: create trigger 触发器名   

    2024年02月11日
    浏览(38)
  • 【考研易忘知识点】数据结构

    数据的逻辑结构独立于其存储结构 可以用抽象数据类型定义一个完整的数据结构 数据的运算也是数据结构的一个重要方面: 二叉树和二叉排序树的逻辑结构和物理结构完全相同,但运算效率大不相同;如查找,二叉树O(n),二叉排序树O(logn) 一个算法是问题求解步骤的描述,

    2024年02月08日
    浏览(46)
  • Java学习之数据结构知识点

    Java学习系列知识点纯干货: 1.Java学习之Java基础部分知识点—传送门 2.Java学习之Java多线程知识点—传送门 3.Java学习之数据库知识点—传送门 4.计算机网络知识点—传送门 5.Java学习之数据结构知识点—传送门 6.操作系统知识点学习—传送门 一棵深度为k的有n个结点的二叉树,

    2024年02月07日
    浏览(50)
  • 【大数据】Hudi 核心知识点详解(二)

    😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!! Hudi 核心知识点详解(一) Hudi 核心知识点详解(二) Hudi 提供了 Hudi 表的概念,这些表支持

    2024年02月03日
    浏览(40)
  • 尚硅谷大数据Flink1.17实战教程-笔记01【Flink概述、Flink快速上手】

    尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】 视频地址:尚硅谷大数据Flink1.17实战教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据Flink1.17实战教程-笔记01【Flink概述、Flink快速上手】 尚硅谷大数据Flink1.17实战教程-笔记02【Flink部署】 尚硅谷大数据Flink1.17实

    2024年02月09日
    浏览(48)
  • 补充点【数据分析统计学知识点】

    0.数据分析师拿到数据 第一利器:描述性统计信息 第二利器:对比分析法 第三利器:指标体系-要素拆解,维度拆解 第四利器:相关分析 第五利器:趋势预测 1.均值 2.中位数 3.众数 4.数据离散程度 5.数据的频数分析 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存

    2024年02月05日
    浏览(61)
  • 数据结构与算法期末复习——知识点+题库

    (1)数据:所有能被计算机识别、存储和处理的符号的集合(包括数字、字符、声音、图像等信息 )。 (2)数据元素:是数据的基本单位,具有完整确定的实际意义。在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成。 (3)数据项:构成数据元

    2024年02月12日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包