1.我们通常将数据分成无界数据集和有界数据集。
在我们的生活当中,只要还在持续不断的产生或者变化,这样的数据集我们都说它是无界数据集。
2.我们通常将计算方式分成两种:
第一种是实时的,我们也称之为流式处理
第二种是离线的,我们也称之为批处理
这个两种计算方式在某种意义上是可以相互替代的,只是选择是否最佳的问题。
例如我们可以不停的调用批处理任务来处理流式的数据,也可以通过调整流处理的窗口时间来实现批处理。
Flink就是一个处理无穷数据集的流式运算模型 。
Flink能够提供准确的结果,甚至在出现无序或者延迟加载的数据的情况下。
它是状态化的容错的,同时在维护一次完整的的应用状态时,能无缝修复错误。
Flink支持流式计算和带有事件时间语义的视窗。事件时间机制使得那些事件无序到达甚至延迟到达的数据流能够计算出精确的结果。
Flink的容错能力是轻量级的,允许系统保持高并发,同时在相同时间内提供强一致性保证。Flink以零数据丢失的方式从故障中恢复,但没有考虑可靠性和延迟之间的折衷。
Flink能满足高并发和低延迟(计算大量数据很
Savepoints
Flink保存点提供了一个状态化的版本机制,使得能以无丢失状态和最短停机时间的方式更新应用或者回退历史数据。快)。
部署模式
能在独立组成集群或者在被YARN或Mesos管理的集群上运行。
运行时
Flink的核心是分布式流式数据引擎,意味着数据以一次一个事件的形式被处理,这跟批次处理有很大不同。这个保证了上面说的那些Flink弹性和高性能的特性。
API
Flink有四个主要的API
DataStream API适合用于那些实现在数据流上转换的程序。(例如:过滤,更新状态,窗口定义,聚合)
DataSet API适合用于那些实现在数据流上转换的程序(例如:过滤,映射,连接,分组)
Table API适合于关系流和批处理,能轻松嵌入Flink的 DataSet API 和 DataStream API 的类SQL表达式的语言(Java和Scala)。
Streaming SQL 允许在流和多表上执行SQL查询。
从基本的架构来看,Flink分为数据源,转化,接收器(sink)。
总而言之,Apache Flink是一个优秀的流式数据处理框架。
网友评论