flink是什么

架構(gòu)

Apache Flink是一個框架和分布式處理引擎,用于對無界和有界數(shù)據(jù)流進行有狀態(tài)計算。Flink設(shè)計為在所有常見的集群環(huán)境中運行,以內(nèi)存速度和任何規(guī)模執(zhí)行計算跪者。
在這里,我們解釋了Flink架構(gòu)的重要方面熄求。

處理無界和有界數(shù)據(jù)

任何類型的數(shù)據(jù)都是作為事件流產(chǎn)生的渣玲。信用卡交易,傳感器測量,機器日志或網(wǎng)站或移動應(yīng)用程序上的用戶交互,所有這些數(shù)據(jù)都作為流生成位他。 數(shù)據(jù)可以作為無界或有界流處理。

  • 無界流有一個開始但沒有定義的結(jié)束枚钓。它們不會在生成時終止并提供數(shù)據(jù)。必須持續(xù)處理無界流瑟押,即必須在攝取事件后立即處理事件搀捷。無法等待所有輸入數(shù)據(jù)到達,因為輸入是無界的多望,并且在任何時間點都不會完成嫩舟。處理無界數(shù)據(jù)通常要求以特定順序(例如事件發(fā)生的順序)攝取事件,以便能夠推斷結(jié)果完整性怀偷。
  • 有界流具有定義的開始和結(jié)束家厌。可以在執(zhí)行任何計算之前通過攝取所有數(shù)據(jù)來處理有界流椎工。處理有界流不需要有序攝取饭于,因為可以始終對有界數(shù)據(jù)集進行排序。有界流的處理也稱為批處理维蒙。

Apache Flink擅長處理無界和有界數(shù)據(jù)集掰吕。精確控制時間和狀態(tài)使Flink的運行時能夠在無界流上運行任何類型的應(yīng)用程序。有界流由算法和數(shù)據(jù)結(jié)構(gòu)內(nèi)部處理木西,這些算法和數(shù)據(jù)結(jié)構(gòu)專門針對固定大小的數(shù)據(jù)集而設(shè)計畴栖,從而產(chǎn)生出色的性能。

部署應(yīng)用程序在任何地方

Apache Flink是一個分布式系統(tǒng)八千,需要計算資源來執(zhí)行應(yīng)用程序吗讶。Flink集成了所有常見的集群資源管理器,如Hadoop YARN恋捆、Apache Mesos和Kubernetes照皆,但也可以設(shè)置為作為獨立集群運行。

Flink被設(shè)計成能夠很好地工作于前面列出的每個資源管理器沸停。這是通過特定于資源管理器的部署模式實現(xiàn)的膜毁,這種部署模式允許Flink以其慣用的方式與每個資源管理器交互。

在部署Flink應(yīng)用程序時愤钾,F(xiàn)link根據(jù)應(yīng)用程序的配置并行性自動識別所需的資源瘟滨,并從資源管理器請求它們。如果發(fā)生故障能颁,F(xiàn)link將通過請求新的資源來替換失敗的容器杂瘸。提交或控制應(yīng)用程序的所有通信都是通過REST調(diào)用進行的。這簡化了Flink在許多環(huán)境中的集成伙菊。

以任何規(guī)模運行應(yīng)用程序

Flink設(shè)計用于在任何規(guī)模上運行有狀態(tài)流應(yīng)用程序败玉。應(yīng)用程序被并行化成數(shù)千個任務(wù),這些任務(wù)分布在一個集群中并發(fā)執(zhí)行镜硕。因此运翼,應(yīng)用程序?qū)嶋H上可以利用無限數(shù)量的cpu、主內(nèi)存兴枯、磁盤和網(wǎng)絡(luò)IO血淌。此外,F(xiàn)link很容易保持非常大的應(yīng)用狀態(tài)财剖。它的異步和增量檢查點算法確保了對處理延遲的最小影響悠夯,同時保證了精確的一次狀態(tài)一致性。

利用內(nèi)存中的性能

有狀態(tài)Flink應(yīng)用程序針對本地狀態(tài)訪問進行了優(yōu)化峰伙。任務(wù)狀態(tài)總是在內(nèi)存中維護疗疟,如果狀態(tài)大小超過可用內(nèi)存,則在具有訪問效率的磁盤數(shù)據(jù)結(jié)構(gòu)中維護瞳氓。因此策彤,任務(wù)通過訪問本地(通常是在內(nèi)存中)狀態(tài)來執(zhí)行所有計算,從而產(chǎn)生非常低的處理延遲匣摘。Flink通過定期和異步檢查本地狀態(tài)到持久存儲店诗,保證了在發(fā)生故障時的精確一次狀態(tài)一致性。


應(yīng)用

Apache Flink是一個用于對無界和有界數(shù)據(jù)流進行有狀態(tài)計算的框架音榜。Flink在不同的抽象級別提供多個API庞瘸,并為常見用例提供專用庫。
在這里赠叼,我們介紹Flink易于使用和富有表現(xiàn)力的API和庫擦囊。

流媒體應(yīng)用程序構(gòu)塊

可以由流處理框架構(gòu)建和執(zhí)行的應(yīng)用程序類型由框架控制流违霞,狀態(tài)和時間的程度來定義。在下文中瞬场,我們描述了流處理應(yīng)用程序的這些構(gòu)建塊买鸽,并解釋了Flink處理它們的方法。

顯然贯被,流是流處理的一個基本方面眼五。但是,流可能具有不同的特性彤灶,這些特性會影響流可以且應(yīng)該如何處理看幼。Flink是一個通用的處理框架,可以處理任何類型的流幌陕。

  • 有界的和無界的流:流可以是無界的或有界的诵姜,即,固定大小的數(shù)據(jù)集苞轿。Flink具有處理無界流的復(fù)雜特性茅诱,但也有專門的操作符來有效地處理有界流。
  • 實時流和記錄流:所有數(shù)據(jù)都作為流生成搬卒。有兩種處理數(shù)據(jù)的方法瑟俭。當流生成或?qū)⑵涑志没酱鎯ο到y(tǒng)(例如文件系統(tǒng)或?qū)ο蟠鎯?時實時處理,并在稍后處理契邀。Flink應(yīng)用程序可以處理記錄或?qū)崟r流摆寄。

狀態(tài)
每個重要的流應(yīng)用程序都是有狀態(tài)的,即只有對單個事件應(yīng)用轉(zhuǎn)換的應(yīng)用程序才需要狀態(tài)坯门。運行基本業(yè)務(wù)邏輯的任何應(yīng)用程序都需要記住事件或中間結(jié)果微饥,以便在以后的時間點訪問它們,例如在收到下一個事件時或在特定持續(xù)時間之后古戴。

應(yīng)用程序狀態(tài)是Apache Flink的一等公民欠橘。可以通過查看Flink在狀態(tài)處理環(huán)境中提供的所有功能來查看现恼。

  • 多狀態(tài)基元(Multiple State Primitives):Flink為不同的數(shù)據(jù)結(jié)構(gòu)提供狀態(tài)基元肃续,例如原子值,列表或映射叉袍。開發(fā)人員可以根據(jù)函數(shù)的訪問模式選擇最有效的狀態(tài)原語始锚。
  • 可插拔狀態(tài)后端(Pluggable State Backends):應(yīng)用程序狀態(tài)由可插拔狀態(tài)后端管理和檢查點。Flink具有不同的狀態(tài)后端喳逛,可以在內(nèi)存或RocksDB中存儲狀態(tài)瞧捌,RocksDB是一種高效的嵌入式磁盤數(shù)據(jù)存儲。也可以插入自定義狀態(tài)后端。
  • 完全一次的狀態(tài)一致性(Exactly-once state consistency):Flink的檢查點和恢復(fù)算法可確保在發(fā)生故障時應(yīng)用程序狀態(tài)的一致性姐呐。因此殿怜,故障是透明處理的,不會影響應(yīng)用程序的正確性皮钠。
  • 非常大的狀態(tài)(Very Large State):由于其異步和增量檢查點算法稳捆,F(xiàn)link能夠維持幾TB的應(yīng)用程序狀態(tài)赠法。
  • 可擴展的應(yīng)用程序(Scalable Applications):Flink通過將狀態(tài)重新分配給更多或更少的工作人員來支持有狀態(tài)應(yīng)用程序的擴展麦轰。

時間
時間是流媒體應(yīng)用的另一個重要組成部分 大多數(shù)事件流都具有固有的時間語義,因為每個事件都是在特定時間點生成的砖织。此外款侵,許多常見的流計算基于時間,例如窗口聚合侧纯,會話化新锈,模式檢測和基于時間的連接。流處理的一個重要方面是應(yīng)用程序如何測量時間眶熬,即事件時間和處理時間的差異妹笆。

Flink提供了一組豐富的與時間相關(guān)的功能。

  • Event-time Mode:使用事件時間語義處理流的應(yīng)用程序根據(jù)事件的時間戳計算結(jié)果娜氏。因此拳缠,無論是否處理記錄的或?qū)崟r的事件,事件時間處理都允許準確和一致的結(jié)果贸弥。
  • 支持Watermark:Flink使用Watermark來推斷事件時間應(yīng)用中的時間窟坐。Watermark也是一種靈活的機制,可以權(quán)衡結(jié)果的延遲和完整性绵疲。
  • 延遲數(shù)據(jù)處理(Late Data Handling):當使用 watermark 在事件時間模式下處理流時哲鸳,可能會發(fā)生在所有相關(guān)事件到達之前已完成計算。這類事件被稱為遲發(fā)事件盔憨。Flink具有多種處理延遲事件的選項徙菠,例如通過側(cè)輸出重新路由它們以及更新以前完成的結(jié)果。
  • 處理時間模式(Processing-time Mode):除了事件時間模式之外郁岩,F(xiàn)link還支持處理時間語義婿奔,該處理時間語義執(zhí)行由處理機器的掛鐘時間觸發(fā)的計算。處理時間模式適用于具有嚴格的低延遲要求的某些應(yīng)用驯用,這些要求可以容忍近似結(jié)果脸秽。
分層api

Flink 根據(jù)抽象程度分層,提供了三種不同的 API蝴乔。每一種 API 在簡潔性和表達力上有著不同的側(cè)重记餐,并且針對不同的應(yīng)用場景。

分層api

ProcessFunction

ProcessFunction 是 Flink 所提供的最具表達力的接口薇正。ProcessFunction 可以處理一或兩條輸入數(shù)據(jù)流中的單個事件或者歸入一個特定窗口內(nèi)的多個事件片酝。它提供了對于時間和狀態(tài)的細粒度控制囚衔。開發(fā)者可以在其中任意地修改狀態(tài),也能夠注冊定時器用以在未來的某一時刻觸發(fā)回調(diào)函數(shù)雕沿。因此练湿,你可以利用 ProcessFunction 實現(xiàn)許多有狀態(tài)的事件驅(qū)動應(yīng)用所需要的基于單個事件的復(fù)雜業(yè)務(wù)邏輯。

DataStream API

DataStream API為許多通用的流處理操作提供了處理原語审轮。這些操作包括窗口肥哎、逐條記錄的轉(zhuǎn)換操作,在處理事件時進行外部數(shù)據(jù)庫查詢等疾渣。DataStream API 支持 Java 和 Scala 語言篡诽,預(yù)先定義了例如map()reduce()榴捡、aggregate() 等函數(shù)杈女。你可以通過擴展實現(xiàn)預(yù)定義接口或使用 Java、Scala 的 lambda 表達式實現(xiàn)自定義的函數(shù)吊圾。

SQL & Table API

Flink 支持兩種關(guān)系型的 API达椰,Table API 和 SQL。這兩個 API 都是批處理和流處理統(tǒng)一的 API项乒,這意味著在無邊界的實時數(shù)據(jù)流和有邊界的歷史記錄數(shù)據(jù)流上啰劲,關(guān)系型 API 會以相同的語義執(zhí)行查詢,并產(chǎn)生相同的結(jié)果板丽。Table API 和 SQL 借助了 Apache Calcite來進行查詢的解析呈枉,校驗以及優(yōu)化。它們可以與 DataStream 和 DataSet API 無縫集成埃碱,并支持用戶自定義的標量函數(shù)猖辫,聚合函數(shù)以及表值函數(shù)。

Flink 的關(guān)系型 API 旨在簡化數(shù)據(jù)分析砚殿、數(shù)據(jù)流水線和 ETL 應(yīng)用的定義啃憎。

Libraries

Flink具有幾個用于常見數(shù)據(jù)處理用例的庫。 這些庫通常嵌入在API中似炎,而不是完全獨立的辛萍。 因此,他們可以從API的所有功能中受益羡藐,并與其他庫集成贩毕。

  • 復(fù)雜事件處理(Complex Event Processing: CEP):模式檢測是事件流處理的一個非常常見的用例。Flink的CEP庫提供了一個API來指定事件的模式(考慮正則表達式或狀態(tài)機)仆嗦。CEP庫與Flink的DataStream API集成辉阶,以便在DataStreams上評估模式。CEP庫的應(yīng)用程序包括網(wǎng)絡(luò)入侵檢測、業(yè)務(wù)流程監(jiān)視和欺詐檢測谆甜。
  • DataSet API: DataSet API是Flink的核心API垃僚,用于批處理應(yīng)用程序。DataSet API的原語包括map规辱、reduce谆棺、(外部)join、co-group和iterate罕袋。所有操作都由算法和數(shù)據(jù)結(jié)構(gòu)支持改淑,這些算法和數(shù)據(jù)結(jié)構(gòu)對內(nèi)存中的序列化數(shù)據(jù)進行操作,如果數(shù)據(jù)大小超過內(nèi)存預(yù)算炫贤,則會溢出到磁盤溅固。Flink的DataSet API的數(shù)據(jù)處理算法受到傳統(tǒng)數(shù)據(jù)庫操作符的啟發(fā),如混合哈希連接或外部合并排序兰珍。
  • Gelly: Gelly是一個用于可伸縮圖形處理和分析的庫。Gelly是在數(shù)據(jù)集API的基礎(chǔ)上實現(xiàn)的询吴,并與之集成掠河。因此,它得益于可伸縮和健壯的操作符猛计。Gelly提供了內(nèi)置的算法唠摹,比如標簽傳播(label propagation)、三角形枚舉(triangle enumeration)和頁面排名(page rank)奉瘤,但也提供了一個Graph API勾拉,簡化了自定義圖形算法的實現(xiàn)。

運維

Apache Flink 是一個針對無界和有界數(shù)據(jù)流進行有狀態(tài)計算的框架盗温。由于許多流應(yīng)用程序旨在以最短的停機時間連續(xù)運行藕赞,因此流處理器必須提供出色的故障恢復(fù)能力,以及在應(yīng)用程序運行期間進行監(jiān)控和維護的工具卖局。

Apache Flink 非常注重流數(shù)據(jù)處理的可運維性斧蜕。因此在這一小節(jié)中,我們將詳細介紹 Flink 的故障恢復(fù)機制砚偶,并介紹其管理和監(jiān)控應(yīng)用的功能批销。

7 * 24小時穩(wěn)定運行

在分布式系統(tǒng)中,服務(wù)故障是常有的事染坯,為了保證服務(wù)能夠7*24小時穩(wěn)定運行均芽,像Flink這樣的流處理器故障恢復(fù)機制是必須要有的。顯然這就意味著单鹿,它(這類流處理器)不僅要能在服務(wù)出現(xiàn)故障時候能夠重啟服務(wù)掀宋,而且還要當故障發(fā)生時,保證能夠持久化服務(wù)內(nèi)部各個組件的當前狀態(tài),只有這樣才能保證在故障恢復(fù)時候布朦,服務(wù)能夠繼續(xù)正常運行囤萤,好像故障就沒有發(fā)生過一樣。

Flink通過幾下多種機制維護應(yīng)用可持續(xù)運行及其一致性:

  • checkpoint的一致性: Flink的故障恢復(fù)機制是通過建立分布式應(yīng)用服務(wù)狀態(tài)一致性檢查點實現(xiàn)的是趴,當有故障產(chǎn)生時涛舍,應(yīng)用服務(wù)會重啟后,再重新加載上一次成功備份的狀態(tài)檢查點信息唆途。結(jié)合可重放的數(shù)據(jù)源富雅,該特性可保證精確一次(exactly-once)的狀態(tài)一致性。
  • 高效的檢查點: 如果一個應(yīng)用要維護一個TB級的狀態(tài)信息肛搬,對此應(yīng)用的狀態(tài)建立檢查點服務(wù)的資源開銷是很高的没佑,為了減小因檢查點服務(wù)對應(yīng)用的延遲性(SLAs服務(wù)等級協(xié)議)的影響,F(xiàn)link采用異步及增量的方式構(gòu)建檢查點服務(wù)温赔。
  • 端到端的精確一次: Flink 為某些特定的存儲支持了事務(wù)型輸出的功能蛤奢,及時在發(fā)生故障的情況下,也能夠保證精確一次的輸出陶贼。
  • 集成多種集群管理服務(wù): Flink已與多種集群管理服務(wù)緊密集成啤贩,如 Hadoop YARN, Mesos, 以及 Kubernetes。當集群中某個流程任務(wù)失敗后拜秧,一個新的流程服務(wù)會自動啟動并替代它繼續(xù)執(zhí)行痹屹。
  • 內(nèi)置高可用服務(wù): Flink內(nèi)置了為解決單點故障問題的高可用性服務(wù)模塊,此模塊是基于Apache ZooKeeper技術(shù)實現(xiàn)的枉氮,Apache ZooKeeper是一種可靠的志衍、交互式的、分布式協(xié)調(diào)服務(wù)組件聊替。
Flink能夠更方便地升級楼肪、遷移、暫停佃牛、恢復(fù)應(yīng)用服務(wù)

Flink的 Savepoint 服務(wù)就是為解決升級服務(wù)過程中記錄流應(yīng)用狀態(tài)信息及其相關(guān)難題而產(chǎn)生的一種唯一的淹辞、強大的組件。一個 Savepoint俘侠,就是一個應(yīng)用服務(wù)狀態(tài)的一致性快照象缀,因此其與checkpoint組件的很相似,但是與checkpoint相比爷速,Savepoint 需要手動觸發(fā)啟動央星,而且當流應(yīng)用服務(wù)停止時,它并不會自動刪除惫东。Savepoint 常被應(yīng)用于啟動一個已含有狀態(tài)的流服務(wù)莉给,并初始化其(備份時)狀態(tài)毙石。

監(jiān)控和控制應(yīng)用服務(wù)

Flink與許多常見的日志記錄和監(jiān)視服務(wù)集成得很好,并提供了一個REST API來控制應(yīng)用服務(wù)和查詢應(yīng)用信息颓遏。具體表現(xiàn)如下:

  • Web UI方式: Flink提供了一個web UI來觀察徐矩、監(jiān)視和調(diào)試正在運行的應(yīng)用服務(wù)。并且還可以執(zhí)行或取消組件或任務(wù)的執(zhí)行叁幢。
  • 日志集成服務(wù):Flink實現(xiàn)了流行的slf4j日志接口滤灯,并與日志框架log4j或logback集成。
  • 指標服務(wù): Flink提供了一個復(fù)雜的度量系統(tǒng)來收集和報告系統(tǒng)和用戶定義的度量指標信息曼玩。度量信息可以導(dǎo)出到多個報表組件服務(wù)鳞骤,包括 JMX, Ganglia, Graphite, Prometheus, StatsD, Datadog, 和 Slf4j.
  • 標準的WEB REST API接口服務(wù): Flink提供多種REST API接口,有提交新應(yīng)用程序黍判、獲取正在運行的應(yīng)用程序的Savepoint服務(wù)信息豫尽、取消應(yīng)用服務(wù)等接口。REST API還提供元數(shù)據(jù)信息和已采集的運行中或完成后的應(yīng)用服務(wù)的指標信息顷帖。

應(yīng)用場景

概述

Apache Flink因其豐富的功能而成為開發(fā)和運行多種不同類型應(yīng)用程序的絕佳選擇美旧。Flink的功能包括對流和批處理的支持,復(fù)雜的狀態(tài)管理窟她,事件時間處理語義以及狀態(tài)的一致性保證陈症。此外,F(xiàn)link可以部署在各種資源管理器上(如YARN震糖,Apache Mesos和Kubernetes),也可以作為裸機硬件上的獨立群集趴腋。Flink配置為高可用性吊说,沒有單點故障。Flink提供高吞吐量和低延遲优炬,并為世界上一些最苛刻的流處理應(yīng)用程序提供支持颁井。
下面,我們將探討由Flink提供支持的最常見類型的應(yīng)用程序蠢护,并指出實際示例雅宾。

  • 事件驅(qū)動型的應(yīng)用程序
  • 數(shù)據(jù)分析型的應(yīng)用程序
  • 數(shù)據(jù)管道型的應(yīng)用程序
事件驅(qū)動型的應(yīng)用程序

事件驅(qū)動型的應(yīng)用程序是一個有狀態(tài)的應(yīng)用程序,它從一個或多個事件流中提取事件葵硕,并通過觸發(fā)計算眉抬、狀態(tài)更新或外部操作對傳入事件做出反應(yīng)。
傳統(tǒng)應(yīng)用程序設(shè)計具有分離的計算和數(shù)據(jù)存儲層懈凹,在此體系結(jié)構(gòu)中蜀变,應(yīng)用程序從遠程事務(wù)數(shù)據(jù)庫中讀取數(shù)據(jù)并將數(shù)據(jù)持久化。
相反介评,事件驅(qū)動的應(yīng)用程序基于有狀態(tài)流處理應(yīng)用程序库北。在這種設(shè)計中爬舰,數(shù)據(jù)和計算是共同定位的,這產(chǎn)生了本地(內(nèi)存或磁盤)數(shù)據(jù)訪問寒瓦。通過定期將檢查點寫入遠程持久存儲來實現(xiàn)容錯情屹。
事件驅(qū)動的應(yīng)用程序不是查詢遠程數(shù)據(jù)庫,而是在本地訪問其數(shù)據(jù)杂腰,從而在吞吐量和延遲方面產(chǎn)生更好的性能垃你。遠程持久存儲的檢查點可以異步和遞增完成。因此颈墅,檢查點對常規(guī)事件處理的影響非常小蜡镶。

幾種典型的事件驅(qū)動型應(yīng)用程序:

  • 欺詐識別

  • 異常檢測

  • 基于規(guī)則的警報

  • 業(yè)務(wù)流程監(jiān)控

  • Web應(yīng)用程序(社交網(wǎng)絡(luò))

數(shù)據(jù)分析型應(yīng)用程序

數(shù)據(jù)分析工作從原始數(shù)據(jù)中提取信息。傳統(tǒng)上恤筛,數(shù)據(jù)分析是在記錄事件的有界數(shù)據(jù)集上作為批量查詢或應(yīng)用程序執(zhí)行官还。為了將最新數(shù)據(jù)合并到分析結(jié)果中,必須將其添加到分析的數(shù)據(jù)集中毒坛,并重新運行查詢或應(yīng)用程序望伦。結(jié)果將寫入存儲系統(tǒng)或作為報告發(fā)出。
借助先進的流處理引擎煎殷,還可以實時地執(zhí)行分析屯伞。流式查詢或應(yīng)用程序不是讀取有限數(shù)據(jù)集,而是攝取實時事件流豪直,并在消耗事件時不斷生成和更新結(jié)果劣摇。結(jié)果要么寫入外部數(shù)據(jù)庫,要么保持為內(nèi)部狀態(tài)弓乙。儀表板應(yīng)用程序可以從外部數(shù)據(jù)庫讀取最新結(jié)果或直接查詢應(yīng)用程序的內(nèi)部狀態(tài)末融。Apache Flink支持流式和批量分析應(yīng)用程序。
與批量分析相比暇韧,連續(xù)流分析的優(yōu)勢不僅限于低延遲勾习。與批量查詢相比,流式查詢不必處理輸入數(shù)據(jù)中的人為邊界懈玻,這些邊界是由定期導(dǎo)入和輸入的有界性質(zhì)引起的巧婶。
另一方面是更簡單的應(yīng)用程序架構(gòu)。批量分析管道由若干獨立組件組成涂乌,以定期調(diào)度數(shù)據(jù)提取和查詢執(zhí)行艺栈。可靠地操作這樣的管道并非易事骂倘,因為一個組件的故障會影響管道的后續(xù)步驟眼滤。相比之下,在像Flink這樣的復(fù)雜流處理器上運行的流分析應(yīng)用程序包含從數(shù)據(jù)攝取到連續(xù)結(jié)果計算的所有步驟历涝。

幾種典型的數(shù)據(jù)分析型應(yīng)用程序:

  • 電信網(wǎng)絡(luò)的質(zhì)量監(jiān)控

  • 分析移動應(yīng)用程序中的產(chǎn)品更新和實驗評估

  • 對消費者技術(shù)中的實時數(shù)據(jù)進行特別分析

  • 大規(guī)模圖分析

數(shù)據(jù)管道型應(yīng)用程序

提取 - 轉(zhuǎn)換 - 加載(ETL)是在存儲系統(tǒng)之間轉(zhuǎn)換和移動數(shù)據(jù)的常用方法诅需。通常會定期觸發(fā)ETL作業(yè)漾唉,以將數(shù)據(jù)從事務(wù)數(shù)據(jù)庫系統(tǒng)復(fù)制到分析數(shù)據(jù)庫或數(shù)據(jù)倉庫。
數(shù)據(jù)管道與ETL作業(yè)具有相似的用途堰塌。它們可以轉(zhuǎn)換和豐富數(shù)據(jù)赵刑,并可以將數(shù)據(jù)從一個存儲系統(tǒng)移動到另一個存儲系統(tǒng)。但是场刑,它們以連續(xù)流模式運行般此,而不是定期觸發(fā)。因此牵现,他們能夠從連續(xù)生成數(shù)據(jù)的源中讀取記錄铐懊,并以低延遲將其移動到目的地。例如瞎疼,數(shù)據(jù)管道可能會監(jiān)視文件系統(tǒng)目錄中的新文件并將其數(shù)據(jù)寫入事件日志科乎。
連續(xù)數(shù)據(jù)流水線優(yōu)于周期性ETL作業(yè)的原因是減少了將數(shù)據(jù)移動到目的地的延遲。此外贼急,數(shù)據(jù)管道更通用茅茂,可用于更多用例,因為它們能夠連續(xù)消耗和發(fā)送數(shù)據(jù)太抓。

幾種典型的數(shù)據(jù)管道型應(yīng)用:

  • 電子商務(wù)中的實時搜索索引構(gòu)建

  • 電子商務(wù)中持續(xù)的ETL


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末空闲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子走敌,更是在濱河造成了極大的恐慌碴倾,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掉丽,死亡現(xiàn)場離奇詭異影斑,居然都是意外死亡,警方通過查閱死者的電腦和手機机打,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來片迅,“玉大人残邀,你說我怎么就攤上這事「躺撸” “怎么了芥挣?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長耻台。 經(jīng)常有香客問我空免,道長,這世上最難降的妖魔是什么盆耽? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任蹋砚,我火速辦了婚禮扼菠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘坝咐。我一直安慰自己循榆,他們只是感情好,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布墨坚。 她就那樣靜靜地躺著秧饮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪泽篮。 梳的紋絲不亂的頭發(fā)上盗尸,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音帽撑,去河邊找鬼泼各。 笑死,一個胖子當著我的面吹牛油狂,可吹牛的內(nèi)容都是我干的历恐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼专筷,長吁一口氣:“原來是場噩夢啊……” “哼弱贼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起磷蛹,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤吮旅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后味咳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庇勃,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年槽驶,在試婚紗的時候發(fā)現(xiàn)自己被綠了责嚷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡掂铐,死狀恐怖罕拂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情全陨,我是刑警寧澤爆班,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站辱姨,受9級特大地震影響柿菩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜雨涛,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一枢舶、第九天 我趴在偏房一處隱蔽的房頂上張望懦胞。 院中可真熱鬧,春花似錦祟辟、人聲如沸医瘫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽醇份。三九已至,卻和暖如春吼具,著一層夾襖步出監(jiān)牢的瞬間僚纷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工拗盒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留怖竭,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓陡蝇,卻偏偏與公主長得像痊臭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子登夫,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容