flink基础教程读书笔记
数据架构设计领域发生了重大的变化,基于流的处理是变化的核心。
分布式文件系统用来存储不经常更新的数据,他们也是大规模批量计算所以来的数据存储方式。
批处理架构(lambda架构)实现计数的方式:持续摄取数据的管道(flume)每小时创建一个文件,由调度程序安排批处理作业分析最近生成的文件,然后输出计数结果。
该架构缺点:1.组件多,设计管道、调度、作业程序,学习成本、管理成本大 2.修改分析时间周期不方便,涉及工作流调度逻辑 3.实现计数预警功能需要引入流处理系统,流处理做近似计算,批处理做准确计数。4.事件可能是乱序的,上一批事件可能混入当前批次。
5.事件窗口是短板,不灵活。例如不能满足登录登出计数的需求。
flink可以同时满足计数和预警的功能,flink速度减慢只会导致数据在传输系统如kafka中堆积。
flink以时间为单位把事件流分割为一个个任务(称为窗口)。
由固定时间分组改为根据事件产生的时间分组,只需要在flink中修改时间窗口的定义即可。
如果flink的代码有改动,只需要重播kafka主题。
和lambda架构相比,flink不需要以时间为单位生成额外的文件,同时时间的定义被代码明确定义。而不是摄取,调度,计算扯不清。
时间的概念:事件时间(时间发生的时候),处理时间(事件被处理的时间),摄入时间(进入流处理系统的时间)。很多情况下事件时间和处理时间是不一致的,即事件以乱序的方式进入系统。
有些需求要求尽快处理得到结果,即使有小的误差也无所谓,这种场景适合采用处理时间。
有些需求要求只是统计特定时间发生的事件,这种场景适合采用事件时间。
flink支持的窗口:
时间窗口:flink支持2种时间窗口:滚动时间窗口(没周期),滑动时间窗口(每周期,滑动步长值)
计数窗口:分组依据不再是时间窗口,而是根据元素的数量。同时也支持滚动和滑动2种方式。计数窗口需要谨慎使用,场景如下:假设事件窗口大小是100,达到90后事件停止,则窗口永远不能关闭,该窗口占用的内存也浪费了。一种解决方式是通过超时触发。
会话窗口:会话窗口是指活动阶段,其前后都有非活动阶段。在flink种,会话窗口由超时时间决定,即希望多久认为会话已经结束。
触发器:触发器控制生成结果的时间,即核实聚合窗口内容并返回给用户。(收到水印触发,自定义触发*1秒1次*)
编程模型:

maven:mvn archetype:generate -DarchetypeGroupId=org.apache.flink -DarchetypeArtifactId=flink-quickstart-java -DarchetypeVersion=1.6.0 -DgroupId=com.test -DartifactId=flink -Dversion=1.0.0 -Dpackage=com.test -DinteractiveMode=false
flink基础教程读书笔记的更多相关文章
- SQL Server2012 T-SQL基础教程--读书笔记(1-4章)
SQL Server2012 T-SQL基础教程--读书笔记(1-4章) SqlServer T-SQL 示例数据库:点我 Chapter 01 T-SQL 查询和编程背景 1.3 创建表和定义数据的 ...
- SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)
SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...
- SQL Server2012 T-SQL基础教程--读书笔记(5-7章)
SQL Server2012 T-SQL基础教程--读书笔记(5-7章) SqlServer T-SQL 示例数据库:点我 Chapter 05 表表达式 5.1 派生表 5.1.1 分配列别名 5. ...
- 【索引】Objective-C基础教程-读书笔记
第1章 启程 http://www.cnblogs.com/duxiuxing/p/5492219.html 第2章 对C的扩展 第3章 面向对象编程的基础知识 第4章 继承 第5章 复合 第6章 ...
- SQL基础教程读书笔记-1
查询基础 2.2 算数运算符和比较运算符 2.2.1算数运算符 + - * / 需要注意NULL 5 + NULL 10 - NULL 1 * NULL 4 / NULL NULL / 9 NULL ...
- 《Python基础教程读书笔记》
第1章 快速构造:基础知识 1.2交互式构造器 不强制分号,一行就是一行.可以加上分号 1.4数字和表达式 加.减.乘.除.整除.求余.指数.取反(-例如-2**2,**的优先级比-大) from _ ...
- 【Objective-C基础教程-读书笔记】第1章 启程
在第1章里面,作者主要以一种站在世界中心呼唤爱的姿态,给读者们打打鸡血洗洗脑,鼓励大家,投入时间学习Objective-C,值得啊! 首先,Objective-C既能用来开发OS X平台上的APP,又 ...
- Objective-C基础教程读书笔记(6)
第6章 源文件组织 到目前为止,我们讨论过的所有项目都是把源代码统统放入main.m文件中.类的main()函数,@interface和@implementation部分都被塞入同一个文件里.这种结构 ...
- Objective-C基础教程读书笔记(7)
第7章 深入了解Xcode Xcode是一个很好用的工具,有很多强大的功能,不过并不是所有的功能都易于发现.如果你打算长期使用这个强大的工具,就肯定要尽可能多了解它.本章将介绍一些Xcode编辑器的使 ...
随机推荐
- win10 右键添加“在此打开powershell”
计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\ 上图中的字符串,直接去下图中的位置复制过来就好
- firefox(火狐)下 js中设置checkbox属性checked="checked"已有,但复选框却不显示勾选的原因
刚看到问题时以为是浏览器兼容性的原因,ie.google都能正常显示. 网上查询之后发现是jQuery的attr()方法用的不恰当. jQuery1.6之前使用attr()可以修改 ,从jQuery ...
- 剑指offer 11:二进制中 1 的个数
题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 解题代码 法一: public class Solution { public int NumberOf1(int n) { ...
- Notepad++的Json格式化插件
安装 :1.下载插件压缩包并解压出dll:Jsonviewer2.dll(64位)或NPPJSONViewer.dll(32位); 2..拷贝对应dll到Notepad++安装目录下的plugins ...
- GoodNotes如何删除文档的某一页
1.在“文稿”中点开需要操作的文件, 2. 点击左上角的缩略图icon(四个小方块) 3.此时你可以看到所有页,每页下面有个倒三角的小箭头 4. 点击小箭头,有删除选项.
- myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法)
出现这个问题有以下三步解决思路: 1. 检查myeclipse的编码格式 windows---->Preferences---->general---->Workspace,右侧窗口 ...
- Python turtle学习笔记
1介绍 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而 ...
- C#高级编程(第九版) 知识点梳理
---恢复内容开始--- 第二章 核心C# 2.7 命名空间可以使用别名,但是这样做有什么好处? 2.12 C#预处理器指令 #define DEBUG #if DEBUG Console.Write ...
- Android CmakeList
https://www.cnblogs.com/chenxibobo/p/7678389.html
- 思科模拟器PacketTracer7--利用一台交换机和2台pc互连构成小型局域网
实验二—2 实验工具:思科模拟器PacketTracer7(可在思科官网下载,免费) 实验设备: 交换机一台,PC两台,直连线或选择自动匹配 实验步骤: 一.配置网络拓扑图 连线可选择连通线或闪电符号 ...