自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

錢大媽基于 Flink 的實(shí)時(shí)風(fēng)控實(shí)踐

大數(shù)據(jù)
目前錢大媽基于云原生大數(shù)據(jù)組件(DataWorks、MaxCompute、Flink、Hologres)構(gòu)建了離線和實(shí)時(shí)數(shù)據(jù)一體化的全渠道數(shù)據(jù)中臺,為各業(yè)務(wù)線提供 BI 報(bào)表及數(shù)據(jù)接口支持。

?摘要:本文作者彭明德,介紹了錢大媽與阿里云 Flink 實(shí)時(shí)計(jì)算團(tuán)隊(duì)共建實(shí)時(shí)風(fēng)控規(guī)則引擎,精確識別羊毛黨以防營銷預(yù)算流失。主要內(nèi)容包括:

  • 項(xiàng)目背景
  • 業(yè)務(wù)架構(gòu)
  • 未規(guī)則模型
  • 難點(diǎn)攻堅(jiān)
  • 回顧展望

一、項(xiàng)目背景

目前錢大媽基于云原生大數(shù)據(jù)組件(DataWorks、MaxCompute、Flink、Hologres)構(gòu)建了離線和實(shí)時(shí)數(shù)據(jù)一體化的全渠道數(shù)據(jù)中臺,為各業(yè)務(wù)線提供 BI 報(bào)表及數(shù)據(jù)接口支持。除了數(shù)倉的分析場景以外,錢大媽面臨著業(yè)務(wù)系統(tǒng)中的風(fēng)控需求,例如每季度的營銷費(fèi)用中被不少的羊毛黨薅走正常用戶的利益,其中羊毛黨一方面可能導(dǎo)致用戶的口碑下降,另一方面也會影響原有的活動運(yùn)營預(yù)算迅速攀升從而導(dǎo)致資損。錢大媽與阿里云 Flink 實(shí)時(shí)計(jì)算團(tuán)隊(duì)共建實(shí)時(shí)風(fēng)控規(guī)則引擎,精確識別羊毛黨以防營銷預(yù)算流失。

圖片

圖一:錢大媽實(shí)時(shí)風(fēng)控流程示意圖

二、業(yè)務(wù)架構(gòu)

錢大媽風(fēng)控業(yè)務(wù)架構(gòu)如圖二所示總共分為四個(gè)部分:事件接入、風(fēng)險(xiǎn)感知、風(fēng)險(xiǎn)應(yīng)對、風(fēng)險(xiǎn)回溯。通過 Flink 在線 ETL 加工處理的實(shí)時(shí)用戶畫像標(biāo)簽和銷售事實(shí)指標(biāo),除了作為線上 BI 指標(biāo)和實(shí)時(shí)大屏數(shù)據(jù)展示,也為實(shí)時(shí)規(guī)則引擎的事件接入提供重要的數(shù)據(jù)支持。

  1. 事件接入。其中包括黑白灰名單庫、畫像特征數(shù)據(jù)、行為埋點(diǎn)數(shù)據(jù)和中臺交易數(shù)據(jù)。
  2. 風(fēng)險(xiǎn)感知。策略調(diào)研后發(fā)布到規(guī)則引擎,并對告警結(jié)果進(jìn)行離線回歸和多渠道觸達(dá)。
  3. 風(fēng)險(xiǎn)應(yīng)對。對涉及到財(cái)務(wù)結(jié)算的規(guī)則提供再審核、豁免機(jī)制或人工補(bǔ)償。
  4. 風(fēng)險(xiǎn)回溯。策略命中后進(jìn)行統(tǒng)計(jì)和風(fēng)險(xiǎn)分類分級,預(yù)警離線回溯并對風(fēng)控事件閉件。

圖片

圖二:錢大媽實(shí)時(shí)風(fēng)控業(yè)務(wù)架構(gòu)圖

三、規(guī)則模型

風(fēng)控業(yè)務(wù)專員通過產(chǎn)品界面簡單配置即可實(shí)時(shí)動態(tài)發(fā)布風(fēng)控規(guī)則,同時(shí)對在線 Flink 作業(yè)的規(guī)則進(jìn)行新增、更新以及刪除,其中風(fēng)控規(guī)則模型主要分為統(tǒng)計(jì)型規(guī)則和序列型規(guī)則,相同模型支持子規(guī)則的嵌套,不同模型之間可以通過與、或關(guān)系進(jìn)行組合。

圖片

圖三:錢大媽Flink作業(yè)DAG抽象圖

以下為規(guī)則組合中需要?jiǎng)討B(tài)配置能力的配置項(xiàng):

1)分組字段。不同字段分組、多字段分組的情況在風(fēng)控規(guī)則的應(yīng)用中非常常見。有如下規(guī)則樣例:

  1. 以用戶 ID 分組:"用戶的下單次數(shù)";
  2. 以用戶 ID、區(qū)域 ID 作為分組:"用戶同一段時(shí)間內(nèi)不同區(qū)域的訂單數(shù)"。

2)聚合函數(shù)。聚合函數(shù)包括業(yè)務(wù)常用的聚合邏輯,規(guī)則引擎依賴 Flink 內(nèi)置豐富的累加器,并在 Accumulator 接口的基礎(chǔ)上進(jìn)行了根據(jù)需求場景的自定義實(shí)現(xiàn)。樣例規(guī)則如下:

  1. A 門店近 30 分鐘獨(dú)立消費(fèi)用戶數(shù)小于 100;
  2. B 門店新客消費(fèi)金額大于 300。

3)窗口周期。窗口周期也即每個(gè)窗口的大小,如業(yè)務(wù)方可能希望在持續(xù) 30 分鐘的秒殺活動周期內(nèi)運(yùn)行規(guī)則,或者希望重點(diǎn)關(guān)注異常時(shí)段。

  1. 每 30 分鐘時(shí)間窗口內(nèi),單個(gè)用戶發(fā)起超過 20 筆未支付訂單;
  2. 凌晨 1 點(diǎn)至 3 點(diǎn),單個(gè)用戶支付訂單數(shù)超 50 筆。

4)窗口類型。為了面對不同的業(yè)務(wù)需求,我們將業(yè)務(wù)規(guī)則中常見的窗口類型集成到規(guī)則引擎內(nèi)部。其中包括滑動窗口、累計(jì)窗口、甚至是無窗口(即時(shí)觸發(fā))。

5)聚合前的過濾條件:

  1. 只對"下單事件"進(jìn)行統(tǒng)計(jì);
  2. 過濾門店"虛擬用戶"。

6)聚合后的過濾條件:

  1. 用戶 A 在 5 分鐘內(nèi)下單次數(shù) "超過 150 次";
  2. 用戶 B 在 5 分鐘內(nèi)購買金額 "超過 300 元"。

7)計(jì)算表達(dá)式。風(fēng)控規(guī)則的字段口徑通常是需要組合計(jì)算的,我們在表達(dá)式計(jì)算和編譯中集成了更輕便和更高性能的 Aviator 表達(dá)式引擎。規(guī)則樣例如下:

  1. 應(yīng)收金額大于 150 元(應(yīng)收金額 = 商品金額合計(jì) +運(yùn)費(fèi) + 優(yōu)惠合計(jì));
  2. 通過 POS 端支付的應(yīng)收金額大于 150 元。

8)行為序列。行為序列其實(shí)也是事件與事件之間的組合,他打破了以往風(fēng)控規(guī)則只能基于單事件維度描述事實(shí)的壁壘,在事件與事件之間的事實(shí)信息也將被規(guī)則引擎捕捉。規(guī)則樣例如下:

  1. 用戶 A 在 5 分鐘內(nèi)依次做了點(diǎn)擊、收藏、加購;
  2. 用戶 B 在 30 分鐘前領(lǐng)了優(yōu)惠券,但是沒有下單。

圖片

圖四:實(shí)時(shí)風(fēng)控規(guī)則配置業(yè)務(wù)邏輯簡圖

四、難點(diǎn)攻堅(jiān)

針對規(guī)則模型的流式序列型數(shù)據(jù),我們選擇 Flink CEP 處理事件序列匹配,由于我們整個(gè)風(fēng)控作業(yè)使用 Flink 實(shí)現(xiàn),并且 Flink CEP 作為 Flink 官方原生支持的 Library,集成度高無需引用額外組件即可滿足事件序列匹配的需求。作業(yè)預(yù)期是允許用戶在產(chǎn)品界面上熱發(fā)布規(guī)則的,但是基于開源的 Flink CEP,實(shí)現(xiàn)規(guī)則動態(tài)更新能力存在以下困難點(diǎn):

  1. Flink 社區(qū)的 CEP API 無法支持動態(tài)修改 Pattern 即無法滿足上層規(guī)則中臺、風(fēng)控中臺的可集成性;
  2. Flink 社區(qū)的 CEP API 無法支持Pattern 定義事件之間的超時(shí)。

阿里云 Flink 實(shí)時(shí)計(jì)算團(tuán)隊(duì)和錢大媽工程師共同攻堅(jiān),在 Flink 社區(qū)發(fā)起如下兩個(gè) FLIP 提案并且在阿里云實(shí)時(shí)計(jì)算產(chǎn)品上面輸出相應(yīng)功能解決此問題:

  1. FLIP-200 [1]:CEP 支持多規(guī)則和動態(tài) Pattern 變更;
  2. FLIP-228 [2]:CEP 支持 Pattern 定義事件之間的超時(shí)。

阿里云實(shí)時(shí)計(jì)算產(chǎn)品輸出的支持多規(guī)則和動態(tài)規(guī)則變更、支持 Pattern 定義事件之間的超時(shí)以及支持基于 IterativeCondition 的累加器功能拓寬 Flink 在實(shí)時(shí)風(fēng)控的能力,并且上述功能已經(jīng)在錢大媽生產(chǎn)環(huán)境落地實(shí)踐。其中 Flink CEP 動態(tài)更新 Pattern 機(jī)制中內(nèi)部各組件的交互總覽如下:

圖片

圖五:社區(qū)Flink CEP動態(tài)Pattern機(jī)制

風(fēng)控規(guī)則由產(chǎn)品界面作為入口,規(guī)則寫入到 Hologres 中,同時(shí) JDBCPatternProcessorDiscover 周期性輪詢發(fā)現(xiàn)規(guī)則的變更。其中規(guī)則表的數(shù)據(jù)結(jié)構(gòu)如下:

  1. Id:規(guī)則ID;
  2. Version:規(guī)則對應(yīng)的版本號;
  3. Keyby:規(guī)則分組字段(如需分組);
  4. Pattern:CEP Pattern 序列化后的 Json 字符串;
  5. Function:CEP 匹配后處理的 PatternProcessFunction;
  6. Relation:統(tǒng)計(jì)型和規(guī)則型之間的與、或關(guān)系(前提:統(tǒng)計(jì)型和規(guī)則型的 ID 相同)。

圖片

圖六:社區(qū)Flink動態(tài)CEP規(guī)則表

五、回顧展望

基于 Flink 的實(shí)時(shí)風(fēng)控解決方案已接應(yīng)用于錢大媽集團(tuán)內(nèi)部生產(chǎn)環(huán)境,在此解決方案里未引入新的技術(shù)組件和編程語言,最大化復(fù)用 Flink 資源實(shí)現(xiàn)實(shí)時(shí)風(fēng)控場景需求,極大降低新組件引入存在的潛在運(yùn)維風(fēng)險(xiǎn)。另一方面也極大降低研發(fā)團(tuán)隊(duì)的學(xué)習(xí)成本,高效釋放實(shí)時(shí)計(jì)算的人力資源,并且對于研發(fā)和業(yè)務(wù)應(yīng)用上面帶來如下好處:

  • 解耦 Flink 作業(yè)邏輯開發(fā)和業(yè)務(wù)規(guī)則定義;
  • 業(yè)務(wù)規(guī)則存儲在 Database 中,便于查看規(guī)則當(dāng)前狀態(tài)和歷史版本;
  • 規(guī)則變更只需修改 Database 存儲的規(guī)則,F(xiàn)link 自動加載更新作業(yè)中的規(guī)則列表;
  • 結(jié)合 Flink 生態(tài)能夠非常容易集成事件異構(gòu)數(shù)據(jù)源的讀取與寫入;
  • 結(jié)合 Flink 分布式能力,大規(guī)模擴(kuò)展至數(shù)千并發(fā)度匹配運(yùn)行規(guī)則。

后續(xù)錢大媽將和阿里云實(shí)時(shí)計(jì)算產(chǎn)品團(tuán)隊(duì),繼續(xù)共建完善基于 Flink 的實(shí)時(shí)風(fēng)控風(fēng)控解決方案,其中在 Flink CEP 的未來規(guī)劃將圍繞以下三個(gè)主要方向展開:

  1. Flink CEP 能力的進(jìn)一步增強(qiáng);
  2. Flink CEP SQL 的動態(tài)能力;
  3. Flink + DSL 的 Native 支持。
責(zé)任編輯:未麗燕 來源: Apache Flink
相關(guān)推薦

2022-08-02 08:15:11

數(shù)據(jù)平臺中原銀行銀行業(yè)務(wù)

2023-09-21 07:52:55

Flink CEP復(fù)雜事件處理

2022-08-10 09:02:03

風(fēng)控Flink阿里云

2016-12-15 21:41:15

大數(shù)據(jù)

2018-10-19 14:16:09

Flink數(shù)據(jù)倉庫數(shù)據(jù)系統(tǒng)

2021-08-31 10:18:34

Flink 數(shù)倉一體快手

2023-04-04 12:38:50

GPT機(jī)器人LLM

2021-07-16 10:55:45

數(shù)倉一體Flink SQL

2022-08-21 07:25:09

Flink云原生K8S

2021-07-13 07:04:19

Flink數(shù)倉數(shù)據(jù)

2025-04-03 09:30:56

RedisAI模型

2022-07-20 23:15:11

Flink數(shù)據(jù)集CDC

2023-06-06 11:49:24

2016-09-04 15:14:09

攜程實(shí)時(shí)數(shù)據(jù)數(shù)據(jù)平臺

2009-07-02 11:52:17

2021-06-04 07:24:14

Flink CDC數(shù)據(jù)

2022-06-22 06:42:35

美團(tuán)業(yè)務(wù)FlinkSQL數(shù)倉

2022-07-26 11:42:31

科大訊飛Flink數(shù)據(jù)倉庫

2023-12-25 07:35:40

數(shù)據(jù)集成FlinkK8s

2017-01-04 10:29:37

Spark運(yùn)維技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號