2021年大数据Flink(二):Flink用武之地
目錄
???????Flink用武之地
???????Event-driven Applications【事件驅(qū)動(dòng)】
???????Data Analytics Applications【數(shù)據(jù)分析】
???????Data Pipeline Applications【數(shù)據(jù)管道】
Flink用武之地
http://www.liaojiayi.com/flink-IoT/
https://flink.apache.org/zh/usecases.html
?
從很多公司的應(yīng)用案例發(fā)現(xiàn),其實(shí)Flink主要用在如下三大場(chǎng)景:
???????Event-driven Applications【事件驅(qū)動(dòng)】
事件驅(qū)動(dòng)型應(yīng)用是一類具有狀態(tài)的應(yīng)用,它從一個(gè)或多個(gè)事件流提取數(shù)據(jù),并根據(jù)到來(lái)的事件觸發(fā)計(jì)算、狀態(tài)更新或其他外部動(dòng)作。
事件驅(qū)動(dòng)型應(yīng)用是在計(jì)算存儲(chǔ)分離的傳統(tǒng)應(yīng)用基礎(chǔ)上進(jìn)化而來(lái)。
在傳統(tǒng)架構(gòu)中,應(yīng)用需要讀寫遠(yuǎn)程事務(wù)型數(shù)據(jù)庫(kù)。
相反,事件驅(qū)動(dòng)型應(yīng)用是基于狀態(tài)化流處理來(lái)完成。在該設(shè)計(jì)中,數(shù)據(jù)和計(jì)算不會(huì)分離,應(yīng)用只需訪問(wèn)本地(內(nèi)存或磁盤)即可獲取數(shù)據(jù)。
系統(tǒng)容錯(cuò)性的實(shí)現(xiàn)依賴于定期向遠(yuǎn)程持久化存儲(chǔ)寫入 checkpoint。下圖描述了傳統(tǒng)應(yīng)用和事件驅(qū)動(dòng)型應(yīng)用架構(gòu)的區(qū)別。
?
從某種程度上來(lái)說(shuō),所有的實(shí)時(shí)的數(shù)據(jù)處理或者是流式數(shù)據(jù)處理都應(yīng)該是屬于Data Driven,流計(jì)算本質(zhì)上是Data Driven 計(jì)算。應(yīng)用較多的如風(fēng)控系統(tǒng),當(dāng)風(fēng)控系統(tǒng)需要處理各種各樣復(fù)雜的規(guī)則時(shí),Data Driven 就會(huì)把處理的規(guī)則和邏輯寫入到Datastream 的API 或者是ProcessFunction 的API 中,然后將邏輯抽象到整個(gè)Flink 引擎,當(dāng)外面的數(shù)據(jù)流或者是事件進(jìn)入就會(huì)觸發(fā)相應(yīng)的規(guī)則,這就是Data Driven 的原理。在觸發(fā)某些規(guī)則后,Data Driven 會(huì)進(jìn)行處理或者是進(jìn)行預(yù)警,這些預(yù)警會(huì)發(fā)到下游產(chǎn)生業(yè)務(wù)通知,這是Data Driven 的應(yīng)用場(chǎng)景,Data Driven 在應(yīng)用上更多應(yīng)用于復(fù)雜事件的處理。
典型實(shí)例:
- - 欺詐檢測(cè)(Fraud detection)
- - 異常檢測(cè)(Anomaly detection)
- - 基于規(guī)則的告警(Rule-based alerting)
- - 業(yè)務(wù)流程監(jiān)控(Business process monitoring)
- - Web應(yīng)用程序(社交網(wǎng)絡(luò))
?
???????Data Analytics Applications【數(shù)據(jù)分析】
數(shù)據(jù)分析任務(wù)需要從原始數(shù)據(jù)中提取有價(jià)值的信息和指標(biāo)。
如下圖所示,Apache Flink 同時(shí)支持流式及批量分析應(yīng)用。
?
?
Data Analytics Applications包含Batch analytics(批處理分析)和Streaming analytics(流處理分析)
Batch analytics可以理解為周期性查詢:Batch Analytics 就是傳統(tǒng)意義上使用類似于Map Reduce、Hive、Spark Batch 等,對(duì)作業(yè)進(jìn)行分析、處理、生成離線報(bào)表。比如Flink應(yīng)用凌晨從Recorded Events中讀取昨天的數(shù)據(jù),然后做周期查詢運(yùn)算,最后將數(shù)據(jù)寫入Database或者HDFS,或者直接將數(shù)據(jù)生成報(bào)表供公司上層領(lǐng)導(dǎo)決策使用。
Streaming analytics可以理解為連續(xù)性查詢:比如實(shí)時(shí)展示雙十一天貓銷售GMV(Gross Merchandise Volume成交總額),用戶下單數(shù)據(jù)需要實(shí)時(shí)寫入消息隊(duì)列,Flink 應(yīng)用源源不斷讀取數(shù)據(jù)做實(shí)時(shí)計(jì)算,然后不斷的將數(shù)據(jù)更新至Database或者K-VStore,最后做大屏實(shí)時(shí)展示。
?
典型實(shí)例
- - 電信網(wǎng)絡(luò)質(zhì)量監(jiān)控
- - 移動(dòng)應(yīng)用中的產(chǎn)品更新及實(shí)驗(yàn)評(píng)估分析
- - 消費(fèi)者技術(shù)中的實(shí)時(shí)數(shù)據(jù)即席分析
- - 大規(guī)模圖分析
?
???????Data Pipeline Applications【數(shù)據(jù)管道】
什么是數(shù)據(jù)管道?
提取-轉(zhuǎn)換-加載(ETL)是一種在存儲(chǔ)系統(tǒng)之間進(jìn)行數(shù)據(jù)轉(zhuǎn)換和遷移的常用方法。
ETL 作業(yè)通常會(huì)周期性地觸發(fā),將數(shù)據(jù)從事務(wù)型數(shù)據(jù)庫(kù)拷貝到分析型數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)。
數(shù)據(jù)管道和 ETL 作業(yè)的用途相似,都可以轉(zhuǎn)換、豐富數(shù)據(jù),并將其從某個(gè)存儲(chǔ)系統(tǒng)移動(dòng)到另一個(gè)。
但數(shù)據(jù)管道是以持續(xù)流模式運(yùn)行,而非周期性觸發(fā)。
因此數(shù)據(jù)管道支持從一個(gè)不斷生成數(shù)據(jù)的源頭讀取記錄,并將它們以低延遲移動(dòng)到終點(diǎn)。
例如:數(shù)據(jù)管道可以用來(lái)監(jiān)控文件系統(tǒng)目錄中的新文件,并將其數(shù)據(jù)寫入事件日志;另一個(gè)應(yīng)用可能會(huì)將事件流物化到數(shù)據(jù)庫(kù)或增量構(gòu)建和優(yōu)化查詢索引。
和周期性 ETL 作業(yè)相比,持續(xù)數(shù)據(jù)管道可以明顯降低將數(shù)據(jù)移動(dòng)到目的端的延遲。
此外,由于它能夠持續(xù)消費(fèi)和發(fā)送數(shù)據(jù),因此用途更廣,支持用例更多。
下圖描述了周期性ETL作業(yè)和持續(xù)數(shù)據(jù)管道的差異。
Periodic ETL:比如每天凌晨周期性的啟動(dòng)一個(gè)Flink ETL Job,讀取傳統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù),然后做ETL,最后寫入數(shù)據(jù)庫(kù)和文件系統(tǒng)。
Data Pipeline:比如啟動(dòng)一個(gè)Flink 實(shí)時(shí)應(yīng)用,數(shù)據(jù)源(比如數(shù)據(jù)庫(kù)、Kafka)中的數(shù)據(jù)不斷的通過(guò)Flink Data Pipeline流入或者追加到數(shù)據(jù)倉(cāng)庫(kù)(數(shù)據(jù)庫(kù)或者文件系統(tǒng)),或者Kafka消息隊(duì)列。
Data Pipeline 的核心場(chǎng)景類似于數(shù)據(jù)搬運(yùn)并在搬運(yùn)的過(guò)程中進(jìn)行部分?jǐn)?shù)據(jù)清洗或者處理,而整個(gè)業(yè)務(wù)架構(gòu)圖的左邊是Periodic ETL,它提供了流式ETL 或者實(shí)時(shí)ETL,能夠訂閱消息隊(duì)列的消息并進(jìn)行處理,清洗完成后實(shí)時(shí)寫入到下游的Database或File system 中。
典型實(shí)例
- - 電子商務(wù)中的持續(xù) ETL(實(shí)時(shí)數(shù)倉(cāng))
當(dāng)下游要構(gòu)建實(shí)時(shí)數(shù)倉(cāng)時(shí),上游則可能需要實(shí)時(shí)的Stream ETL。這個(gè)過(guò)程會(huì)進(jìn)行實(shí)時(shí)清洗或擴(kuò)展數(shù)據(jù),清洗完成后寫入到下游的實(shí)時(shí)數(shù)倉(cāng)的整個(gè)鏈路中,可保證數(shù)據(jù)查詢的時(shí)效性,形成實(shí)時(shí)數(shù)據(jù)采集、實(shí)時(shí)數(shù)據(jù)處理以及下游的實(shí)時(shí)Query。
- - 電子商務(wù)中的實(shí)時(shí)查詢索引構(gòu)建(搜索引擎推薦)
搜索引擎這塊以淘寶為例,當(dāng)賣家上線新商品時(shí),后臺(tái)會(huì)實(shí)時(shí)產(chǎn)生消息流,該消息流經(jīng)過(guò)Flink 系統(tǒng)時(shí)會(huì)進(jìn)行數(shù)據(jù)的處理、擴(kuò)展。然后將處理及擴(kuò)展后的數(shù)據(jù)生成實(shí)時(shí)索引,寫入到搜索引擎中。這樣當(dāng)淘寶賣家上線新商品時(shí),能在秒級(jí)或者分鐘級(jí)實(shí)現(xiàn)搜索引擎的搜索。
總結(jié)
以上是生活随笔為你收集整理的2021年大数据Flink(二):Flink用武之地的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2021年大数据Flink(一):乘风破
- 下一篇: 2021年大数据Flink(三):