Flink Flink的應用場景

2021-10-10 18:24:02 字數 1804 閱讀 6005

目錄

事件驅動型應用

資料分析型應用

資料管道型應用

flink 功能強大,支援開發和執行多種不同種類的應用程式。它的主要特性包括:批流一體化、精密的狀態管理、事件時間支援以及精確一次的狀態一致性保障等。

事件驅動型應用是一類具有狀態的應用,它從乙個或多個事件流提取資料,並根據到來的事件觸發計算、狀態更新或其他外部動作。

事件驅動型應用是在計算儲存分離的傳統應用基礎上進化而來。在傳統架構中,應用需要讀寫遠端事務型資料庫。相反,事件驅動型應用是基於狀態化流處理來完成。在該設計中,資料和計算不會分離,應用只需訪問本地(記憶體或磁碟)即可獲取資料。系統容錯性的實現依賴於定期向遠端持久化儲存寫入 checkpoint。下圖描述了傳統應用和事件驅動型應用架構的區別。

典型的事件驅動型應用例項:

反欺詐異常檢測

基於規則的報警

業務流程監控

(社交網路)web 應用

資料分析任務需要從原始資料中提取有價值的資訊和指標。傳統的分析方式通常是利用批查詢,或將事件記錄下來並基於此有限資料集構建應用來完成。為了得到最新資料的分析結果,必須先將它們加入分析資料集並重新執行查詢或執行應用,隨後將結果寫入儲存系統或生成報告。借助一些先進的流處理引擎,還可以實時地進行資料分析。和傳統模式下讀取有限資料集不同,流式查詢或應用會接入實時事件流,並隨著事件消費持續產生和更新結果。這些結果資料可能會寫入外部資料庫系統或以內部狀態的形式維護。儀表展示應用可以相應地從外部資料庫讀取資料或直接查詢應用的內部狀態。

如下圖所示,apache flink 同時支援流式及批量分析應用。

flink 如何支援資料分析類應用?

flink 為持續流式分析和批量分析都提供了良好的支援。具體而言,它內建了乙個符合 ansi 標準的 sql 介面,將批、流查詢的語義統一起來。無論是在記錄事件的靜態資料集上還是實時事件流上,相同 sql 查詢都會得到一致的結果。同時 flink 還支援豐富的使用者自定義函式,允許在 sql 中執行定製化**。如果還需進一步定製邏輯,可以利用 flink datastream api 和 dataset api 進行更低層次的控制。此外,flink 的 gelly 庫為基於批量資料集的大規模高效能圖分析提供了演算法和構建模組支援。

典型的資料分析應用例項:

電信網路質量監控

移動應用中的產品更新及實驗評估分析

消費者技術中的實時資料即席分析

大規模圖分析

提取-轉換-載入(etl)是一種在儲存系統之間進行資料轉換和遷移的常用方法。etl 作業通常會周期性地觸發,將資料從事務型資料庫拷貝到分析型資料庫或資料倉儲。

資料管道和 etl 作業的用途相似,都可以轉換、豐富資料,並將其從某個儲存系統移動到另乙個。但資料管道是以持續流模式執行,而非週期性觸發。因此它支援從乙個不斷生成資料的源頭讀取記錄,並將它們以低延遲移動到終點。例如:資料管道可以用來監控檔案系統目錄中的新檔案,並將其資料寫入事件日誌;另乙個應用可能會將事件流物化到資料庫或增量構建和優化查詢索引。

下圖描述了週期性

etl

作業和持續資料管道的差異。

典型的資料管道應用例項:

電子商務中的實時查詢索引構建

電子商務中的持續 etl

SAP BTP MTA 應用的應用場景

程式語言 軟體設計架構 如微服務 協議 如 odata 的最新趨勢和進展,以及多層和分布式部署平台的多樣性,加速了由更多 更小 解耦和多樣化的模組構建應用程式的趨勢。在微服務架構下,越來越多的業務應用程式傾向於由使用不同語言和技術開發並部署到各種目標執行時環境的多個部分組成。這種應用程式模組的多樣性...

Redis應用場景

redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。redis常用資料型別 redis最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...

Redis應用場景

redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。redis常用資料型別 redis最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...