flink 官网翻译系列 (二) Applications

原创 2019-06-16 23:06 阅读(95)次

原文地址:https://flink.apache.org/flink-applications.html

Apache Flink是一个用于对无界和有界数据流进行有状态计算的框架。 Flink在不同的抽象级别提供多个API,并为常见用例提供专用lib。

流应用程序的构建要素 Building Blocks for Streaming Applications

基于流处理框架来构建与运行的应用,取决于该应用所选择的框架如何更好的处理 stream,state以及time。下面我们将会描述流处理应用中这三个基础元素,并解释Flink是如何处理这三者的。

     stream

很显然,stream是流处理中的基础概念。但是,流具有不同的特征,这些特征决定了一个流能够并且应该如何被处理。Flink是多功能的,能够处理任意类型的流。

有界流与无界流: 流分为无界和有界,有界的流就如一个固定大小的数据集。Flink提供了精妙的能力来处理无界流,同时提供了高效处理有界流的操作符。

实时流与记录流:所有数据都可以看作流。有两种方式来处理这些数据。当数据生成时,实时地进行处理;或者将流持久化到存储系统,如文件系统或对象存储等,然后之后再对数据进行处理。Flink对实时流和记录流都支持。

state

每一个稍微复杂些的流应用都是有状态的,只有那些仅仅对单个事件进行转化的应用不需要状态。运行基本业务逻辑的任何应用程序都需要记住事件或中间结果,以便在以后的时间点访问它们,例如在收到下一个事件时或在特定持续时间之后。


应用状态在Flink中是最重要的数据。Flink提供了处理state的上下文context,你可以在context提供的特性中查看state。

多种状态基元:Flink为不同的数据结构提供了相应的状态基元,例如atomic values, lists及maps。开发者可以基于方法的访问模式来选择最高效的状态基元。


未完待续。