Flink應用場景


 本文為《Flink大數據項目實戰》學習筆記,想通過視頻系統學習Flink這個最火爆的大數據計算框架的同學,推薦學習課程:

 

Flink大數據項目實戰:http://t.cn/EJtKhaz

 

主要應用場景有三類:

1.Event-driven Applications【事件驅動】

 

2.Data Analytics Applications【分析】

 

3.Data Pipeline Applications【管道式ETL】

3.1 Event-driven Applications

 

 

上圖包含兩塊:Traditional transaction Application(傳統事務應用)和Event-driven Applications(事件驅動應用)。

 Traditional transaction Application執行流程:比如點擊流Events可以通過Application寫入Transaction DB(數據庫),同時也可以通過Application從Transaction DB將數據讀出,並進行處理,當處理結果達到一個預警值就會觸發一個Action動作,這種方式一般為事后諸葛亮。

 Event-driven Applications執行流程:比如采集的數據Events可以不斷的放入消息隊列,Flink應用會不斷ingest(消費)消息隊列中的數據,Flink 應用內部維護着一段時間的數據(state),隔一段時間會將數據持久化存儲(Persistent sstorage),防止Flink應用死掉。Flink應用每接受一條數據,就會處理一條數據,處理之后就會觸發(trigger)一個動作(Action),同時也可以將處理結果寫入外部消息隊列中,其他Flink應用再消費。

 

典型的事件驅動類應用:

1.欺詐檢測(Fraud detection)

2.異常檢測(Anomaly detection)

3.基於規則的告警(Rule-based alerting)

4.業務流程監控(Business process monitoring)

5.Web應用程序(社交網絡)

3.2 Data Analytics Applications

 

Data Analytics Applications包含Batch analytics(批處理分析)和Streaming analytics(流處理分析)。

 Batch analytics可以理解為周期性查詢:比如Flink應用凌晨從Recorded Events中讀取昨天的數據,然后做周期查詢運算,最后將數據寫入Database或者HDFS,或者直接將數據生成報表供公司上層領導決策使用。

 

Streaming analytics可以理解為連續性查詢:比如實時展示雙十一天貓銷售GMV,用戶下單數據需要實時寫入消息隊列,Flink 應用源源不斷讀取數據做實時計算,然后不斷的將數據更新至Database或者K-VStore,最后做大屏實時展示。

3.3 Data Pipeline Applications

 

Data Pipeline Applications包含Periodic (周期性)ETL和Data Pipeline(管道)

 Periodic ETL:比如每天凌晨周期性的啟動一個Flink ETL Job,讀取傳統數據庫中的數據,然后做ETL,最后寫入數據庫和文件系統。

 Data Pipeline:比如啟動一個Flink 實時應用,數據源(比如數據庫、Kafka)中的數據不斷的通過Flink Data Pipeline流入或者追加到數據倉庫(數據庫或者文件系統),或者Kafka消息隊列。

3.4阿里Flink應用場景

 

阿里在Flink的應用主要包含四個模塊:實時監控、實時報表、流數據分析和實時倉庫。

實時監控:

  1. 用戶行為預警、app crash 預警、服務器攻擊預警
  2. 對用戶行為或者相關事件進行實時監測和分析,基於風控規則進行預警

 

實時報表:

  1. 雙11、雙12等活動直播大屏
  2. 對外數據產品:生意參謀等
  3. 數據化運營

 

流數據分析:

  1. 實時計算相關指標反饋及時調整決策
  2. 內容投放、無線智能推送、實時個性化推薦等

 

實時倉庫:

  1. 數據實時清洗、歸並、結構化
  2. 數倉的補充和優化

 欺詐檢測

 

背景:

假設你是一個電商公司,經常搞運營活動,但收效甚微,經過細致排查,發現原來是羊毛黨在薅平台的羊毛,把補給用戶的補貼都薅走了,錢花了不少,效果卻沒達到。

 

怎么辦呢?

 

你可以做一個實時的異常檢測系統,監控用戶的高危行為,及時發現高危行為並采取措施,降低損失。

 

系統流程:

1.用戶的行為經由app 上報或web日志記錄下來,發送到一個消息隊列里去;

2.然后流計算訂閱消息隊列,過濾出感興趣的行為,比如:購買、領券、瀏覽等;

3.流計算把這個行為特征化;

4.流計算通過UDF調用外部一個風險模型,判斷這次行為是否有問題(單次行為);

5.流計算里通過CEP功能,跨多條記錄分析用戶行為(比如用戶先做了a,又做了b,又做了3次c),整體識別是否有風險;

6.綜合風險模型和CEP的結果,產出預警信息。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM