官术网_书友最值得收藏!

2.3.1 Flink數據流

在Flink中,應用程序由數據流組成,這些數據流可以由用戶定義的運算符(有時將這些運算符稱為“算子”)進行轉換。這些數據流形成有向圖,從一個或多個源開始,以一個或多個輸出結束,如圖2-25所示。

圖2-25 Flink程序流

Flink支持流處理和批處理,它是一個分布式的流批結合的大數據處理引擎。在Flink中,認為所有的數據本質上都是隨時間產生的流數據,把批數據看作流數據的特例,只不過流數據是一個無界的數據流,而批數據是一個有界的數據流(例如固定大小的數據集),如圖2-26所示。

圖2-26 有界流和無界流

因此,Flink是一個用于在無界和有界數據流上進行有狀態計算的通用的處理框架,它既具有處理無界數據流的復雜功能,也具有專門的運算符來高效地處理有界數據流。通常將無界數據稱為實時數據,這些數據來自消息隊列或分布式日志等流源(如Apache Kafka或Kinesis);而有界數據通常指的是歷史數據,這些數據來自各種數據源(如文件、關系型數據庫等)。由Flink應用程序產生的結果流可以發送到各種各樣的系統,并且可以通過REST API訪問Flink中包含的狀態,如圖2-27所示。

當Flink處理一個有界的數據流時采用的就是批處理工作模式。在這種操作模式中,可以選擇先讀取整個數據集,然后對數據進行排序、計算全局統計數據或生成總結所有輸入的最終報告。

圖2-27 Flink處理框架

當Flink處理一個無界的數據流時采用的就是流處理工作模式。對于流數據處理,輸入可能永遠不會結束,因此必須在數據到達時持續不斷地對這些數據進行處理。

主站蜘蛛池模板: 珠海市| 隆昌县| 镇原县| 措勤县| 东乡| 福海县| 绍兴县| 邵阳市| 武汉市| 南溪县| 开远市| 南溪县| 兰州市| 都江堰市| 庆云县| 巴马| 吴桥县| 视频| 中方县| 祁东县| 平乐县| 浦江县| 长宁区| 清水河县| 滦平县| 镇康县| 咸宁市| 弥渡县| 北川| 当涂县| 察隅县| 清流县| 洛川县| 腾冲县| 阿合奇县| 麟游县| 汉源县| 静宁县| 鄯善县| 三都| 嘉兴市|