大數(shù)據(jù)反欺詐技術(shù)架構(gòu)

一年多以前问畅,有朋友讓我聊一下你們的大數(shù)據(jù)反欺詐架構(gòu)是怎么實現(xiàn)的罕邀,以及我們途中踩了哪些坑乏苦,怎么做到從30min延遲優(yōu)化到1s內(nèi)完成實時反欺詐株扛。當時呢第一是覺得不合適,第二也是覺得場景比較局限沒什么分享的必要性汇荐。

時間也過了很久了洞就,最近看到圈里一些東西,發(fā)現(xiàn)當時的這套架構(gòu)并未落伍掀淘,依然具有很大的參考價值旬蟋,所以今天跟大伙聊聊關(guān)于大數(shù)據(jù)反欺詐體系怎么搭建,主要來源是來自于我工作的時候的實踐革娄,以及跟行業(yè)里的很多大佬交流的實踐倾贰,算是集小成的一個比較好的實踐冕碟。

這套架構(gòu)我做的時候主要領(lǐng)域是信貸行業(yè)的大數(shù)據(jù)反欺詐,后來也看過電商的架構(gòu)匆浙,也看過金融大數(shù)據(jù)的架構(gòu)安寺,發(fā)現(xiàn)其實大家使用的其實也差不多是這個套路,只是在各個環(huán)節(jié)都有不同的細節(jié)吞彤。

大佬說的我衬,能用圖的,盡量不要打字饰恕,那我就打少點字挠羔,多做點圖。其實大數(shù)據(jù)不外乎這么幾個步驟埋嵌。數(shù)據(jù)源開拓破加、數(shù)據(jù)抽取、數(shù)據(jù)存儲雹嗦、數(shù)據(jù)清洗和處理范舀、數(shù)據(jù)應(yīng)用,且聽我一個一個說了罪。

數(shù)據(jù)源

數(shù)據(jù)源是一個比較重要的點锭环,畢竟如果連數(shù)據(jù)源都是垃圾,那么毫無疑問可以預(yù)見泊藕,最終產(chǎn)出的一定是垃圾辅辩,所以挑選數(shù)據(jù)源和對接數(shù)據(jù)源的時候都要關(guān)注,該機構(gòu)產(chǎn)出的數(shù)據(jù)是不是都是質(zhì)量比較高的數(shù)據(jù)娃圆。

比如人行征信數(shù)據(jù)就是一個質(zhì)量非常非常高的數(shù)據(jù)玫锋,主要涉及信用卡、銀行流水讼呢、老賴撩鹿、失信、強制執(zhí)行信息等悦屏,都非常核心节沦,任何一個點都可能是一筆壞賬的苗頭。以及各種行政機構(gòu)提供的付費機密數(shù)據(jù)础爬。

比如運營商通訊數(shù)據(jù)散劫、比如大型電商的行為數(shù)據(jù)、比如各種保險數(shù)據(jù)幕帆,以及各個機構(gòu)貸款記錄的互相溝通获搏,這些數(shù)據(jù)源,都非常核心也都非常值錢,是現(xiàn)在反欺詐非常核心的數(shù)據(jù)常熙。

當然也有更加粗暴更加高效的做法纬乍,就是直接購買外部的黑名單數(shù)據(jù),這讓反欺詐變得更加簡單裸卫,遇到就直接拒仿贬,可以減少非常的人力物力成本去做其他的核查。

數(shù)據(jù)抽取

有了高質(zhì)量的數(shù)據(jù)源后墓贿,當然就是怎么抽取的問題了茧泪,各個機構(gòu)所提供的數(shù)據(jù)格式是多種多樣的,其中包括 http 接口的json聋袋、xml队伟,內(nèi)部其他數(shù)據(jù)源的 etl、定時人工上報的 Excel幽勒,以及 sqoop+ozzie 這兩個直接數(shù)據(jù)抽取通道嗜侮,這個過程只需要保證通道穩(wěn)定,數(shù)據(jù)服務(wù)冪等即可啥容,沒什么特殊的地方锈颗。

數(shù)據(jù)存儲

數(shù)據(jù)存儲其實就是建立一個數(shù)據(jù)倉庫和一個實時倉庫,數(shù)據(jù)倉庫用于存儲來自各大數(shù)據(jù)源的原始數(shù)據(jù)咪惠,實時倉庫用于業(yè)務(wù)系統(tǒng)的核心作業(yè)击吱,數(shù)據(jù)倉庫的數(shù)據(jù)量一般都以 T 為單位,實時倉庫以 M 和 G 為單位遥昧。

離線計算&實時計算

數(shù)據(jù)保證了覆醇,那么計算就是這套架構(gòu)的核心之處,從大的角度來看可以分成離線計算和實時計算渠鸽。

離線計算主要會做兩件事情叫乌。Hive 柴罐、Spark 數(shù)據(jù)整合與清洗和離線數(shù)據(jù)建模徽缚。Hive 數(shù)據(jù)整合主要做的事情就是把各個數(shù)據(jù)庫里面的東西,進行清洗和過濾革屠,最終寫到我們定義的標準表里邊凿试,提供給下游的計算使用。如果是非常復(fù)雜的數(shù)據(jù)清洗似芝,我們會使用 Spark 寫程序來做那婉,畢竟有一些操作不是 Hive 這種標準 SQL 能解決的。離線數(shù)據(jù)建模党瓮,就是對于這批數(shù)據(jù)進行建模详炬,以便后續(xù)用于實時計算和應(yīng)用中,算法嘛寞奸,精通兩個基本就穩(wěn)了呛谜,LogisticRegression & 決策樹在跳,不要問我為什么。

實時計算又會做些什么事情隐岛?SparkStreaming和Flink用于實時流計算猫妙,主要是用于一些統(tǒng)計類的事情,以及多個數(shù)據(jù)流的 join 操作聚凹。在這里我們希望做到什么事情呢割坠?就是希望服務(wù)可以準實時,什么叫準實時呢妒牙?就是在一個可以接受的范圍內(nèi)彼哼,我允許你有一定的延遲,這塊我們一開始的任務(wù)延遲是 30 min单旁。

我們踩過哪些坑呢沪羔?

一開始我們希望使用流批次計算來實現(xiàn)實時計算,實踐下來準實時跟實時還是區(qū)別很大的象浑,一個業(yè)務(wù)通常是允許不了分鐘級別的延遲的蔫饰,然而 Spark 的 GraphX 必然有分鐘級別的延遲,只適合離線計算愉豺。

Hive + Ozzie 處理離線批量處理是一個非常大的利器篓吁,很多人都以為Hive數(shù)據(jù)清洗不就寫寫幾行 SQL?幾百張乃至幾千張表背后的復(fù)雜的數(shù)據(jù)清洗規(guī)則蚪拦,任務(wù)依賴杖剪,任務(wù)重跑,數(shù)據(jù)質(zhì)量驰贷,數(shù)據(jù)血緣關(guān)系維護盛嘿。相信我,要是沒有細心和工具括袒,這些能把你搞崩潰次兆。

ElasticSearch 集群多個機器的負載吞吐量,比單臺機器高性能的要高锹锰,畢竟網(wǎng)絡(luò)卡在那芥炭。

我們趟了很多的坑,摸了很多的時候恃慧,最終決定把所有的實時操作都架構(gòu)在 ElasticSearch 和 Neo4j 上园蝠,因為我們不僅僅需要實時的全文本全字段社交關(guān)系生成,更是需要實時搜索多維度多層社交關(guān)系并反欺詐分析痢士,而這個關(guān)系可能是百萬級別的彪薛,根據(jù)六度理論,決定了我們選取的層次不能太多,所以最終我們只抽取其中三層社交關(guān)系善延。最終確定這個架構(gòu)训唱,這很核心地確定了我們的響應(yīng)時間,并最終決定了我們服務(wù)的可用性挚冤。

很多地方產(chǎn)生的結(jié)果數(shù)據(jù)只是整個決策鏈上的一個細節(jié)况增,所以我們還需要 Drools 這類規(guī)則引擎幫助做一個最終決策。

業(yè)務(wù)應(yīng)用

最終業(yè)務(wù)系統(tǒng)應(yīng)該怎么使用训挡,怎么對外提供服務(wù)澳骤?這也是一個非常核心的問題,因為這部分要求非常非常穩(wěn)定澜薄,以及非常非常高效为肮,一般來說不允許有太高的延遲,同時還要求非常高的并發(fā)量肤京。這就要求了我們第一要盡量提高計算效率颊艳,第二要求我們對于系統(tǒng)的架構(gòu)要有非常高的保障。

計算效率要高效忘分,有什么技巧呢棋枕,保證各個系統(tǒng)之間的交互都是聚合、加工妒峦、計算后的結(jié)果重斑,而不是原始數(shù)據(jù),畢竟網(wǎng)絡(luò)傳輸是需要很高成本的在目標數(shù)據(jù)量非常大的場景下肯骇。比如一次性要加載幾十萬條數(shù)據(jù)窥浪,那全部拉回來再重新計算是不是就顯得很蠢了?為什么不在目標系統(tǒng)里以數(shù)據(jù)服務(wù)的形式提供呢笛丙?

技術(shù)架構(gòu)保障漾脂,其實大部分都是基礎(chǔ)架構(gòu)的事情了,比如動態(tài)負載均衡胚鸯、一主多從骨稿、異地多機房容災(zāi)、斷網(wǎng)演練蠢琳、上游服務(wù)故障預(yù)案等等啊终。

建模之社交網(wǎng)絡(luò)

很久以前就已經(jīng)介紹了各種社區(qū)發(fā)現(xiàn)算法镜豹,這里就不再贅述傲须,有興趣的自己點進去細致了解一下。

這里聊聊一個知識圖譜的標準建立過程趟脂。

1泰讽、主體確認

2、關(guān)系建立。

3已卸、邏輯推理建立佛玄。

4、圖譜檢索

主體確認累澡,從圖的角度來看就是確認各個頂點梦抢,這些頂點有自己的屬性,代表著網(wǎng)絡(luò)里的一個個個體愧哟。

關(guān)系建立奥吩,從其他資料關(guān)系得來,也可以根據(jù)第三步的邏輯推理得來蕊梧,從圖的角度來看就是確認各個邊霞赫,這些邊有起點有終點也有自己的屬性,代表著網(wǎng)絡(luò)里各個個體的關(guān)聯(lián)肥矢。

邏輯推理建立端衰,這是非常重要的一個部分,比如姚明的老婆的母親甘改,就是姚明的岳母旅东,這種先驗知識的推理可以在圖譜的幫助下,為我們解決很多的實際問題十艾。

圖譜檢索玉锌,有了圖譜我們就開始使用,我們有四件套疟羹,主體屬性搜索主守,關(guān)系屬性搜索,廣度優(yōu)先搜索榄融,寬度優(yōu)先搜索参淫。我們一般的使用策略都是,優(yōu)先確定一個頂點比如目標人物愧杯,然后向外擴散涎才,直到找到所有符合條件的個體。

這里我們踩了什么坑做了什么優(yōu)化呢力九?我們一開始是把整個搜索結(jié)果拉到本地再進行計算耍铜,而圖譜搜索后的結(jié)果總是很大,畢竟我們找了很多維的關(guān)系跌前,所以總是卡在網(wǎng)絡(luò)這塊棕兼。經(jīng)過探索和咨詢,最終確認了 Neo4j 這種圖數(shù)據(jù)庫不僅僅提供數(shù)據(jù)查詢服務(wù)抵乓,還做了基于定制化的社交網(wǎng)絡(luò)分析的插件化開發(fā)伴挚,把我們的反欺詐服務(wù)以插件化的形式部署到服務(wù)器中靶衍,這就減少了非常多的網(wǎng)絡(luò)開銷,保障了我們服務(wù)的秒級響應(yīng)茎芋。

完整架構(gòu)圖

從數(shù)據(jù)來源颅眶、獲取、存儲田弥、加工涛酗、應(yīng)用,一步到位偷厦,萬一有點幫助那就更好了煤杀,如果還心存疑慮,這篇文章從下往上沪哺,再看一遍沈自。

歡迎學Java和大數(shù)據(jù)的朋友們加入java架構(gòu)交流: 855835163

群內(nèi)提供免費的Java架構(gòu)學習資料(里面有高可用、高并發(fā)辜妓、高性能及分布式枯途、Jvm性能調(diào)優(yōu)、Spring源碼籍滴,MyBatis酪夷,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構(gòu)資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰孽惰!趁年輕晚岭,使勁拼,給未來的自己一個交代勋功!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末坦报,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子狂鞋,更是在濱河造成了極大的恐慌片择,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骚揍,死亡現(xiàn)場離奇詭異字管,居然都是意外死亡,警方通過查閱死者的電腦和手機信不,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門嘲叔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抽活,你說我怎么就攤上這事硫戈。” “怎么了酌壕?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵掏愁,是天一觀的道長。 經(jīng)常有香客問我卵牍,道長果港,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任糊昙,我火速辦了婚禮辛掠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘释牺。我一直安慰自己萝衩,他們只是感情好,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布没咙。 她就那樣靜靜地躺著猩谊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祭刚。 梳的紋絲不亂的頭發(fā)上牌捷,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機與錄音涡驮,去河邊找鬼暗甥。 笑死,一個胖子當著我的面吹牛捉捅,可吹牛的內(nèi)容都是我干的撤防。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼棒口,長吁一口氣:“原來是場噩夢啊……” “哼寄月!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起无牵,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤剥懒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后合敦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體初橘,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年充岛,在試婚紗的時候發(fā)現(xiàn)自己被綠了保檐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡崔梗,死狀恐怖夜只,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒜魄,我是刑警寧澤扔亥,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布场躯,位于F島的核電站,受9級特大地震影響旅挤,放射性物質(zhì)發(fā)生泄漏踢关。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一粘茄、第九天 我趴在偏房一處隱蔽的房頂上張望签舞。 院中可真熱鬧,春花似錦柒瓣、人聲如沸儒搭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搂鲫。三九已至,卻和暖如春磺平,著一層夾襖步出監(jiān)牢的瞬間默穴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工褪秀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蓄诽,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓媒吗,卻偏偏與公主長得像仑氛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子闸英,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

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