- Flink原理深入與編程實戰:Scala+Java(微課視頻版)
- 辛立偉編著
- 563字
- 2023-07-17 18:54:27
1.2.3 數據管道應用程序
提取-轉換-加載(Extract-Transform-Load,ETL)是在存儲系統之間轉換和移動數據的常用方法。ETL作業通常定期觸發,以便將數據從事務型數據庫系統復制到分析數據庫或數據倉庫。
數據管道的作用類似于ETL作業。它們轉換和豐富數據,并能將數據從一個存儲系統移動到另一個存儲系統,然而,它們以連續流模式運行,而不是周期性地觸發,因此,它們能夠從不斷產生數據的源讀取記錄,并以較低的時延將其移動到目標。例如,數據管道可以監視文件系統目錄中的新文件,并將其數據寫入事件日志。另一個應用程序可能將事件流物化到數據庫,或者增量地構建和細化搜索索引。
Apache Flink周期性ETL作業和連續數據管道之間的區別如圖1-6所示。

圖1-6 Apache Flink周期性ETL作業和連續數據管道之間的區別
與定期ETL作業相比,連續數據管道的明顯優勢是減少了將數據移動到其目的地的時延。此外,數據管道更加通用,可以用于更多的用例,因為它們能夠持續地消費和發出數據。
Flink的SQL接口(或Table API)及其對用戶定義函數(UDF)的支持可以解決許多常見的數據轉換問題。使用更加通用的DataStream API可以實現具有更高要求的數據管道。Flink為各種存儲系統(如Kafka、Kinesis、Elasticsearch和JDBC數據庫系統)提供了一組豐富的連接器。它還為文件系統提供了連續源,用于監視以時間間隔方式寫文件的目錄和接收器。
典型的數據管道應用程序包括:
(1)電子商務中的實時搜索索引構建。
(2)電子商務中的持續ETL。
推薦閱讀
- Flutter開發實戰詳解
- PHP 7底層設計與源碼實現
- 精通搜索分析
- 琢石成器:Windows環境下32位匯編語言程序設計
- Java EE 8 Application Development
- IBM Cognos Business Intelligence 10.1 Dashboarding cookbook
- MySQL程序員面試筆試寶典
- 代碼閱讀
- 零基礎學Python編程(少兒趣味版)
- Clojure Polymorphism
- 現代CPU性能分析與優化
- Visual Basic程序設計實驗指導及考試指南
- PostgreSQL Developer's Guide
- 基于JavaScript的WebGIS開發
- Lync Server Cookbook