Nebula Graph 在微眾銀行數(shù)據(jù)治理業(yè)務(wù)的實(shí)踐

本文為微眾銀行大數(shù)據(jù)平臺(tái):周可在 nMeetup 深圳場(chǎng)的演講這里文字稿聚至,演講視頻參見(jiàn):B站

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

自我介紹下容劳,我是微眾銀行大數(shù)據(jù)平臺(tái)的工程師:周可空凸,今天給大家分享一下 Nebula Graph 在微眾銀行 WeDataSphere 的實(shí)踐情況蛤织。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

先來(lái)說(shuō)下圖數(shù)據(jù)庫(kù)應(yīng)用背景。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

WeDataSphere 圖數(shù)據(jù)庫(kù)架構(gòu)是基于 JanusGraph 搭建,正如邸帥在演講《NebulaGraph - WeDataSphere 開(kāi)源介紹》中提及的那樣儿礼,主要用于解決微眾銀行數(shù)據(jù)治理中的數(shù)據(jù)血緣問(wèn)題。在使用 JanusGraph 過(guò)程中庆寺,微眾銀行發(fā)現(xiàn) JanusGraph 本身依賴(lài)組件較多蚊夫,數(shù)據(jù)存儲(chǔ)在 HBase 中,索引存儲(chǔ)在 Eleasticsearch 中懦尝,而因?yàn)槭芊植际礁呖捎煤蛢傻厝行募軜?gòu)規(guī)范要求知纷,要搭建一套完整的圖數(shù)據(jù)庫(kù)系統(tǒng)涉及技術(shù)點(diǎn)較多,比如高可用問(wèn)題陵霉,再加上三個(gè)組件串聯(lián)琅轧,需要解決很多技術(shù)問(wèn)題。而且撩匕,本身 JanusGraph 這塊數(shù)據(jù)寫(xiě)入性能也存在問(wèn)題鹰晨,當(dāng)然本身我們對(duì) JanusGraph 的優(yōu)化也較少,主要集中在參數(shù)調(diào)整和安全性能提升止毕。

當(dāng)時(shí)用這套系統(tǒng)處理的數(shù)據(jù)量大概是每天 60 萬(wàn)個(gè)點(diǎn)模蜡,百萬(wàn)級(jí)的邊,差不多一天要花 5 個(gè)小時(shí)左右才能完成寫(xiě)入扁凛。這就導(dǎo)致業(yè)務(wù)方需要使用血緣數(shù)據(jù)時(shí)忍疾,大數(shù)據(jù)平臺(tái)不能及時(shí)提供。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

至于微眾銀行大數(shù)據(jù)平臺(tái)為什么選用 Nebula Graph谨朝,微眾銀行早期調(diào)研過(guò)一些商用卤妒、開(kāi)源的圖數(shù)據(jù)庫(kù)解決方案,測(cè)試部分這里不做贅述字币,可以參考下 Nebula Graph 社區(qū) 美團(tuán)则披、騰訊云安全團(tuán)隊(duì)Boss 直聘 做的性能測(cè)評(píng)。

這里說(shuō)下剛才 60 萬(wàn)個(gè)點(diǎn)洗出、百萬(wàn)級(jí)別邊這個(gè)場(chǎng)景的情況士复,在單節(jié)點(diǎn)低配機(jī)器部署情況下,微眾銀行導(dǎo)入數(shù)據(jù)基本上在 20 分鐘內(nèi)完成翩活。Nebula Graph 的寫(xiě)入性能非常好阱洪,微眾銀行大數(shù)據(jù)平臺(tái)這塊業(yè)務(wù)對(duì)查詢的性能要求并不高,Nebula Graph 也能滿足大數(shù)據(jù)平臺(tái)這塊的查詢要求菠镇。

微眾銀行的圖數(shù)據(jù)庫(kù)選擇還有一個(gè)重量考核點(diǎn)冗荸,高可用和容災(zāi)的架構(gòu)支持。這個(gè)考核項(xiàng)利耍,Nebula Graph 本身的架構(gòu)存在一定優(yōu)勢(shì)蚌本,符合微眾銀行行內(nèi)硬性的架構(gòu)要求和規(guī)范盔粹。加上大數(shù)據(jù)平臺(tái)本身旨在構(gòu)建一個(gè)完整的數(shù)據(jù)流生態(tài),Nebula Graph 提供了一些大數(shù)據(jù)相關(guān)開(kāi)源組件魂毁,比如:Connector玻佩,Exchange,這些工具能很好地同大數(shù)據(jù)平臺(tái)進(jìn)行結(jié)合席楚。

最后一點(diǎn)咬崔,回歸到人的問(wèn)題——微眾銀行同開(kāi)源社區(qū)的交流等同于跟其他技術(shù)人的交流。和 Nebula Graph 社區(qū)交流過(guò)程中發(fā)烦秩,微眾銀行發(fā)現(xiàn)不管是在 PoC 微信群垮斯,還是在 Nebula Graph 社區(qū)論壇上提問(wèn)題,官方反饋非常及時(shí)只祠。印象較深的一點(diǎn)是兜蠕,有一天晚上 10 點(diǎn)多,大數(shù)據(jù)平臺(tái)在 Nebula Graph 研發(fā)人員指導(dǎo)下優(yōu)化了一個(gè)參數(shù)抛寝,我們?cè)谖⑿湃豪锖?Nebula Graph 反饋熊杨,這個(gè)參數(shù)調(diào)整之后解決了生產(chǎn)問(wèn)題,Nebula Graph 研發(fā)同學(xué)還給我們發(fā)了一個(gè) 666 的表情盗舰。[手動(dòng)狗頭] 哈哈哈哈挺好晶府。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

OK,下面來(lái)講解下 WeDataSphere 架構(gòu)钻趋,主要集中在架構(gòu)設(shè)計(jì)中所考慮的點(diǎn)川陆。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

上圖和大多數(shù)應(yīng)用的層級(jí)劃分類(lèi)似,從上往下看蛮位,應(yīng)用層產(chǎn)生數(shù)據(jù)较沪,通過(guò)數(shù)據(jù)交換層的各種工具,同底層的圖數(shù)據(jù)庫(kù)系統(tǒng)交換數(shù)據(jù)失仁。應(yīng)用場(chǎng)景方面這里不作詳細(xì)介紹尸曼,在本文后面會(huì)詳細(xì)地講解金融行業(yè)的應(yīng)用情況。

從行業(yè)來(lái)看萄焦,中間的數(shù)據(jù)層一般分為三個(gè)部分:批量數(shù)據(jù)骡苞、流式數(shù)據(jù)在線數(shù)據(jù)。而數(shù)據(jù)交換方面楷扬,微眾銀行大數(shù)據(jù)平臺(tái)基于 Nebula 提供的開(kāi)源方案做了接入優(yōu)化,底層則使用 Nebula Graph 圖數(shù)據(jù)庫(kù)系統(tǒng)贴见。此外烘苹,微眾銀行大數(shù)據(jù)平臺(tái)還有一套運(yùn)維自動(dòng)化系統(tǒng)叫 Managis,基于 Managis 構(gòu)建了自動(dòng)化部署工具片部,Nebula 配置也是在類(lèi) CMDB 系統(tǒng)中管理镣衡。

服務(wù)監(jiān)控模塊霜定,微眾銀行大數(shù)據(jù)平臺(tái)內(nèi)部使用 Zabbix 監(jiān)控,通過(guò)寫(xiě)腳本調(diào)用 Metric HTTP 接口廊鸥,將監(jiān)控指標(biāo)傳輸?shù)? Managis Monitor (Zabbix) 系統(tǒng)中望浩。

總體的架構(gòu)如上圖所示,從上至下的 4 層架構(gòu)體系惰说。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

回到用戶層面磨德,搭建這套系統(tǒng)在銀行架構(gòu)規(guī)范下如何提供給用戶使用,保證服務(wù)穩(wěn)定性以及可用率吆视,是大數(shù)據(jù)平臺(tái)的首要考慮條件典挑。通過(guò)借鑒 WeDataSphere 之前計(jì)算存儲(chǔ)組件的成功經(jīng)驗(yàn),例如 HBase啦吧、ES 等組件您觉,如果業(yè)務(wù)方的系統(tǒng)對(duì)穩(wěn)定性和一致性有所要求,業(yè)務(wù)接入端需要實(shí)現(xiàn)雙寫(xiě)功能授滓;針對(duì)數(shù)據(jù)一致性方面琳水,大數(shù)據(jù)平臺(tái)做了 T+1 的數(shù)據(jù)寫(xiě)入校正。當(dāng)然這種雙寫(xiě)方式接入般堆,業(yè)務(wù)端會(huì)存在改造和開(kāi)發(fā)成本在孝。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

后期,基于大數(shù)據(jù)平臺(tái)開(kāi)源的解決方案 Linkis 提供的 Orchestrator 模塊實(shí)現(xiàn)編排郁妈、回放浑玛、高可用。業(yè)務(wù)端無(wú)需了解具體的技術(shù)實(shí)現(xiàn)細(xì)節(jié)噩咪,通過(guò)調(diào)用大數(shù)據(jù)平臺(tái)的 SDK 接入 Linkis 的 Orchestrator 解決方案實(shí)現(xiàn)高可用和數(shù)據(jù)的雙讀雙寫(xiě)功能顾彰。目前這塊功能尚在開(kāi)發(fā)中,會(huì)在近期開(kāi)源胃碾。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

上圖為異地容災(zāi)過(guò)程涨享,主要依賴(lài)于 Nebula Graph 本身提供的容災(zāi)特性,比如:Checkpoint仆百。目前厕隧,大數(shù)據(jù)平臺(tái)的具體操作是每天將 Checkpoint 做數(shù)據(jù)備份同步到上海的容災(zāi)集群。一旦主集群出問(wèn)題俄周,即刻切換系統(tǒng)到上海災(zāi)備集群吁讨,等主集群恢復(fù)后,將數(shù)據(jù)同步到主集群峦朗。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

下面來(lái)介紹下 Nebula Graph 在大數(shù)據(jù)平臺(tái) WeDataSphere 數(shù)據(jù)治理系統(tǒng)中的應(yīng)用建丧。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

先簡(jiǎn)單地介紹一下 WeDataSphere 數(shù)據(jù)治理系統(tǒng),它包括
數(shù)據(jù)建模工具
元數(shù)據(jù)管理系統(tǒng)
數(shù)據(jù)脫敏系統(tǒng)
數(shù)據(jù)質(zhì)量管理系統(tǒng)

元數(shù)據(jù)管理系統(tǒng)會(huì)對(duì)接數(shù)據(jù)建模工具波势、數(shù)據(jù)質(zhì)量管控系統(tǒng)翎朱、以及數(shù)據(jù)脫敏系統(tǒng)橄维,最終提供給用戶一套前端的操作界面。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

當(dāng)中比較關(guān)鍵的組件叫數(shù)據(jù)地圖拴曲,主要為整個(gè)銀行的數(shù)據(jù)資產(chǎn)目錄争舞,它采集各個(gè)數(shù)據(jù)源的數(shù)據(jù),通過(guò) WeDataSphere 對(duì)數(shù)據(jù)進(jìn)行加工存儲(chǔ)澈灼,最后返回一份全行完整的數(shù)據(jù)資產(chǎn) / 數(shù)據(jù)字典竞川。在這個(gè)過(guò)程中,大數(shù)據(jù)平臺(tái)構(gòu)建了數(shù)據(jù)治理的規(guī)范和要求蕉汪。

這套數(shù)據(jù)系統(tǒng)降低了用戶使用門(mén)檻流译,直觀地告訴用戶數(shù)據(jù)在哪,如果某個(gè)用戶要審批數(shù)據(jù)者疤,提交一個(gè)數(shù)據(jù)請(qǐng)求單便可提取他想要的數(shù)據(jù)福澡,甚至在數(shù)據(jù)提取之前,系統(tǒng)告知用戶數(shù)據(jù)源是誰(shuí)驹马,可以找到誰(shuí)要數(shù)據(jù)革砸。這也體現(xiàn)了這套數(shù)據(jù)治理系統(tǒng)中數(shù)據(jù)血緣的能力:數(shù)據(jù)源是哪里,下游又是哪里糯累。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

上圖為數(shù)據(jù)治理系統(tǒng)的功能架構(gòu)算利,最下層為系統(tǒng)需要采集的數(shù)據(jù),以及它對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)地方泳姐。在這個(gè)架構(gòu)中效拭,大數(shù)據(jù)平臺(tái)采用 3 個(gè)底層存儲(chǔ)引擎:主要存儲(chǔ)元數(shù)據(jù)的 TiDB存儲(chǔ)圖數(shù)據(jù)的 Nebula Graph胖秒、存儲(chǔ)索引數(shù)據(jù)的 ES缎患。在底層存儲(chǔ)的上面,數(shù)據(jù)地圖提供了多個(gè)微服務(wù)提供給外部使用的請(qǐng)求接口阎肝。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

下面講解下 WeDataSphere 數(shù)據(jù)治理系統(tǒng)中血緣數(shù)據(jù)的處理過(guò)程挤渔。我們通過(guò)各種組件 Hook 從 Hive、Spark风题、Sqoop 等任務(wù)腳本中解析輸入數(shù)據(jù)和輸出數(shù)據(jù)構(gòu)建血緣數(shù)據(jù)判导。例如:當(dāng)中的 Hive Hook 主要處理大數(shù)據(jù)平臺(tái)內(nèi)部的表與表之間的關(guān)系,我們通過(guò) Hive 本身提供的 Lineage SDK 包裝了數(shù)據(jù)接口沛硅,構(gòu)建一個(gè) Hook 去解析 SQL 語(yǔ)句的輸入數(shù)據(jù)和輸出數(shù)據(jù)眼刃,從而建立血緣關(guān)系記錄在 Log 中。Spark 類(lèi)似摇肌,不過(guò)微眾銀行是自研 Spark 在 Drive 層的 Hook鸟整。Sqoop 這塊實(shí)現(xiàn)是基于 Sqoop 的 Patch 解析數(shù)據(jù)在 importer 和 exporter job 過(guò)程中提供的 Public Data,最終構(gòu)建關(guān)系型數(shù)據(jù)庫(kù)(比如:MySQL朦蕴、Oracle篮条、DB2)和大數(shù)據(jù)平臺(tái) Hive 數(shù)據(jù)之間的流向關(guān)系。血緣數(shù)據(jù)生成之后寫(xiě)入執(zhí)行節(jié)點(diǎn)吩抓,即 Driver 所在節(jié)點(diǎn)涉茧,從而形成 Lineage Log。

再用微眾銀行內(nèi)部的自動(dòng)化運(yùn)維工具 AOMP 每日從各個(gè)節(jié)點(diǎn)導(dǎo)入數(shù)據(jù)存儲(chǔ)到 Hive ODS DB疹娶。在這個(gè)過(guò)程中伴栓,大數(shù)據(jù)平臺(tái)對(duì) Hive 進(jìn)行 ETL 加工同現(xiàn)有數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析得到導(dǎo)入圖數(shù)據(jù)庫(kù)的 DM 表。最后使用 Nebula Graph 提供的 Spark Writer 從 Hive 中將點(diǎn)和邊的數(shù)據(jù)寫(xiě)入圖數(shù)據(jù)庫(kù)對(duì)應(yīng) Schema 中雨饺。

以上便是數(shù)據(jù)加工過(guò)程钳垮。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

上圖為大數(shù)據(jù)平臺(tái)的整體數(shù)據(jù)模型,中間的 DATA 大表為 Hive 加工后的應(yīng)用表额港,將上面的點(diǎn)饺窿、邊信息寫(xiě)入 Nebula Graph Schema 中,包括處理某個(gè) SQL 語(yǔ)句的 job_id移斩,數(shù)據(jù)源 src_db_id肚医,數(shù)據(jù)下游 dst_db_id 等等數(shù)據(jù)信息。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

相對(duì)而言上圖比「數(shù)據(jù)治理系統(tǒng)血緣圖模型設(shè)計(jì) 1/3」圖更直觀向瓷,Schema 左側(cè)為點(diǎn)肠套,右側(cè)為邊,一個(gè) job 對(duì)應(yīng)某個(gè) SQL 語(yǔ)句或 Sqoop 任務(wù)猖任。舉個(gè)例子你稚,一個(gè) SQL 語(yǔ)句會(huì)存在多個(gè)輸入表,最終寫(xiě)入到一個(gè)輸出表朱躺,在圖結(jié)構(gòu)中呈現(xiàn)便是 job 入邊和 job 出邊刁赖,對(duì)應(yīng) source table 和 destination table。表和 DB 本身存在 Contain 關(guān)系室琢,而微眾銀行基于自己的業(yè)務(wù)增加了表和表的直接 Join 關(guān)系乾闰,可查詢表和表之間關(guān)系,比如:一度關(guān)系盈滴。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

上圖是一個(gè)數(shù)據(jù)過(guò)程涯肩,上面有個(gè) db_id,比如:158364巢钓,通過(guò)一個(gè) job_id病苗,例如:0555261f733b4e90824343b19810a73d 構(gòu)建起了一個(gè)圖結(jié)構(gòu)。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

這是數(shù)據(jù)治理的實(shí)時(shí)查詢和批量分析架構(gòu)症汹,主要通過(guò) ETL 加工血緣數(shù)據(jù)再寫(xiě)入到數(shù)據(jù)存儲(chǔ)系統(tǒng)中硫朦。而上圖中的 Metadata Service 會(huì)根據(jù)實(shí)時(shí)分析需求通過(guò) SDK 調(diào)用圖數(shù)據(jù)庫(kù),將查詢的返回結(jié)果傳給前端做展示背镇。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

在應(yīng)用場(chǎng)景這塊咬展,主要有兩個(gè)場(chǎng)景泽裳,一是實(shí)時(shí)查詢,以某個(gè)表為起始節(jié)點(diǎn)破婆,遍歷上游和下游表涮总,遍歷完成后在 UI 中展示。具體的技術(shù)實(shí)現(xiàn)是調(diào)用 Nebula Java Client 連接 Nebula Graph 查詢得到血緣關(guān)系祷舀。二是批量查詢瀑梗,當(dāng)然批量查詢所需的血緣數(shù)據(jù)已構(gòu)建好并存儲(chǔ)在 Nebula Graph 中。針對(duì)批量查詢裳扯,這里舉個(gè)例子:有一個(gè)部門(mén)的表抛丽,在某個(gè)時(shí)刻處于出現(xiàn)異常,會(huì)影響一批表饰豺,要找到這個(gè)部門(mén)的表亿鲜,首先我們得找到它到底影響了哪些下游表,把這個(gè)完整的鏈路追蹤出來(lái)后挨個(gè)確認(rèn)這些表是否修復(fù)哟忍。那么這時(shí)候就需要做批量查詢狡门。具體技術(shù)實(shí)現(xiàn)是通過(guò) Nebula Spark Connector 連接 Nebula Graph 批量將點(diǎn)和邊數(shù)據(jù)導(dǎo)入到 Spark 封裝為 DataFrame,再通過(guò) GraphX 等圖算法批量分析得到完整的血緣鏈路锅很。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

上圖為 WeDataSphere 實(shí)時(shí)查詢界面其馏,因?yàn)樯婕暗矫舾行畔⒋蛄藗€(gè)馬賽克,以上圖的藍(lán)色表為中心數(shù)據(jù)爆安,查詢下游的一度關(guān)系表和上游的一度關(guān)系表叛复,大數(shù)據(jù)平臺(tái)構(gòu)建圖數(shù)據(jù)庫(kù)數(shù)據(jù)模型時(shí)加入了時(shí)間屬性,可以查詢特定時(shí)間扔仓,比如:某張表昨天到今天的血緣關(guān)系褐奥,可基于時(shí)間維度進(jìn)行數(shù)據(jù)過(guò)濾和檢索

以上翘簇,Nebula Graph 在 WeDataSphere 數(shù)據(jù)治理過(guò)程中的應(yīng)用情況介紹完畢撬码。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

在邸帥在演講《NebulaGraph - WeDataSphere 開(kāi)源介紹》中,WeDataSphere 提供兩層數(shù)據(jù)連接和擴(kuò)展能力版保,前者是一站式數(shù)據(jù)業(yè)務(wù)開(kāi)發(fā)管理套件 WeDataSphere呜笑,后者是計(jì)算中間件 Linkis 用于連接底層的基礎(chǔ)組件。而 Nebula Graph 也基于 WeDataSphere 這兩層功能同現(xiàn)有數(shù)據(jù)業(yè)務(wù)進(jìn)行結(jié)合彻犁,打通數(shù)據(jù)開(kāi)發(fā)流程叫胁。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

上圖為 WeDataSphere 一站式數(shù)據(jù)應(yīng)用開(kāi)發(fā)管理門(mén)戶 Studio 的數(shù)據(jù)處理流程。上圖的 Exchangis 為數(shù)據(jù)交換系統(tǒng)汞幢,讀取不同異構(gòu)數(shù)據(jù)源的數(shù)據(jù)導(dǎo)到大數(shù)據(jù)平臺(tái)驼鹅,再通過(guò) Maskis 系統(tǒng)做前置脫敏,遮擋敏感數(shù)據(jù)或進(jìn)行 Hash 轉(zhuǎn)換提供給業(yè)務(wù)分析人員使用。這個(gè)系統(tǒng)中有一個(gè) Online 寫(xiě) SQL 環(huán)境 Scriptis输钩,相關(guān)研發(fā)人員可以寫(xiě)些 SQL 分析語(yǔ)句做前置數(shù)據(jù)處理豺型,然后數(shù)據(jù)傳輸給系統(tǒng)中的機(jī)器學(xué)習(xí)工具 Prophecis 做建模處理。最后买乃,數(shù)據(jù)處理完成后交付給 Qualitis 系統(tǒng)做數(shù)據(jù)質(zhì)量校驗(yàn)触创,得到安全、可靠數(shù)據(jù)之后再由可視化系統(tǒng) Visualis 進(jìn)行結(jié)果展示和分析为牍,最終發(fā)送郵件給報(bào)表接收方。

上圖為用戶可感知的一個(gè)流程岩馍,但整個(gè)處理流程會(huì)使用到底層技術(shù)組件碉咆,在 WeDataSphere 內(nèi)部主要通過(guò) Linkis 這個(gè)計(jì)算中間件去解決和底層組件連接、串聯(lián)問(wèn)題蛀恩。除此之外疫铜,Linkis 還提供了通用的多租戶隔離、分流双谆、權(quán)限管控的能力壳咕。基于 Linkis 這個(gè)計(jì)算中間件顽馋,大數(shù)據(jù)平臺(tái)實(shí)現(xiàn)了 Linkis Nebula Engine 圖分析引擎谓厘,和 WeDataSphere 現(xiàn)有的大數(shù)據(jù)處理流程結(jié)合。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

現(xiàn)在來(lái)介紹下 Linkis 數(shù)據(jù)處理流程:

第一階段:一個(gè)任務(wù)在 DataSphere Studio 提交后寸谜,進(jìn)入上圖所示 Entrance竟稳,這個(gè)組件主要用于任務(wù)解析和參數(shù)接收。

第二個(gè)階段:也是一個(gè)關(guān)鍵的準(zhǔn)備階段熊痴,進(jìn)入 Orchestrator 模塊他爸,在上面 PPT 的「同城業(yè)務(wù)數(shù)據(jù)雙寫(xiě)」章節(jié)說(shuō)過(guò) Orchestrator 模塊實(shí)現(xiàn)編排、分流果善、回放诊笤、高可用。編排會(huì)將一個(gè) Job 拆分成 N 個(gè)細(xì)小的 Task巾陕,而這些 Task 對(duì)應(yīng)的資源申請(qǐng)需要連接底層 Linkis Manager讨跟,Linkis Manager 會(huì)把 Task 分發(fā)、映射到對(duì)應(yīng)的執(zhí)行引擎做數(shù)據(jù)處理惜论,最后许赃,通過(guò) EngineConn Manger 連接到對(duì)應(yīng)執(zhí)行引擎,可見(jiàn)和 Nebula Graph 進(jìn)行數(shù)據(jù)交互的主要是 EngineConn Manger馆类。

第三個(gè)階段:執(zhí)行混聊。

上面整個(gè)過(guò)程的實(shí)現(xiàn)邏輯是可復(fù)用的,做數(shù)據(jù)應(yīng)用接入時(shí),只需建立中間件同底層引擎的連接句喜,數(shù)據(jù)經(jīng)過(guò) Orchestrator 模塊會(huì)自動(dòng)分發(fā)到對(duì)應(yīng)的執(zhí)行引擎做數(shù)據(jù)處理预愤。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

數(shù)據(jù)加工處理流程如上所示,和 WeDataSphere 一站式數(shù)據(jù)應(yīng)用開(kāi)發(fā)管理門(mén)戶 Studio 的數(shù)據(jù)處理流程類(lèi)似:撈數(shù)據(jù) -> 大數(shù)據(jù)平臺(tái) -> Qualitis 數(shù)據(jù)質(zhì)量校驗(yàn) -> 寫(xiě) SQL -> Hive / Spark 做復(fù)雜的數(shù)據(jù)加工處理咳胃,最終輸出之前進(jìn)行數(shù)據(jù)質(zhì)量校驗(yàn)植康,通過(guò) Nebula Graph 的 Spark Writer 寫(xiě)到 Nebula。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

這里展懈,大數(shù)據(jù)平臺(tái)提供了一個(gè) nGQL 編程界面销睁,因?yàn)檫@時(shí)數(shù)據(jù)已寫(xiě)入 Nebula Graph,進(jìn)入 nGQL 界面后執(zhí)行如下查詢語(yǔ)句:

USE nba;
GO FROM 100 OVER follow;

即可在界面返回圖數(shù)據(jù)庫(kù) Nebula Graph 的查詢結(jié)果存崖,同 Nebula Graph 官方提供的可視化工具 Studio 不同冻记,WeDataSphere 的 nGQL 界面主要是處理數(shù)據(jù)流程的串聯(lián)問(wèn)題,不涉及具體的可視化功能来惧,后期微眾銀行大數(shù)據(jù)團(tuán)隊(duì)也會(huì)考慮和官方進(jìn)行可視化方面的合作冗栗。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

最后一部分是未來(lái)展望,先來(lái)講下 WeDataSphere 這套圖數(shù)據(jù)庫(kù)系統(tǒng)在微眾銀行內(nèi)部的應(yīng)用供搀,目前我們大數(shù)據(jù)平臺(tái)內(nèi)部主要是應(yīng)用 Nebula Graph 做血緣數(shù)據(jù)存儲(chǔ)和分析隅居;其他業(yè)務(wù)部門(mén)也有實(shí)際應(yīng)用,例如:資管系統(tǒng)處理企業(yè)關(guān)系時(shí)有用到 Nebula葛虐;我們的 AIOPS 系統(tǒng)目前也在做這塊業(yè)務(wù)測(cè)試胎源,主要是構(gòu)建運(yùn)維知識(shí)圖譜去實(shí)現(xiàn)故障的根因分析和解決方案發(fā)現(xiàn);此外挡闰,我們的審計(jì)系統(tǒng)也在基于圖數(shù)據(jù)庫(kù)做知識(shí)圖譜構(gòu)建乒融,相關(guān)部門(mén)目前在嘗試接入這套圖數(shù)據(jù)庫(kù)系統(tǒng);我們風(fēng)控場(chǎng)景業(yè)務(wù)也已接入 WeDataSphere 圖數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行測(cè)試摄悯,接下來(lái)會(huì)有更多的業(yè)務(wù)方來(lái)做這一塊的嘗試赞季。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

未來(lái)的話,大數(shù)據(jù)平臺(tái)這邊會(huì)基于 Nebula Graph 2.0 開(kāi)放的功能和架構(gòu)搭建更加自動(dòng)化奢驯、更加穩(wěn)定的技術(shù)架構(gòu)申钩,服務(wù)好更加關(guān)鍵的業(yè)務(wù)。

還有同 Nebula Graph 一起拓展圖分析這塊能力瘪阁,接入到整個(gè)大數(shù)據(jù)平臺(tái) WeDataSphere 這套數(shù)據(jù)處理流程中撒遣。

最后,最重要的管跺,希望有更多合適的業(yè)務(wù)場(chǎng)景能夠接入到 WeDataSphere 這套圖數(shù)據(jù)處理的流程和系統(tǒng)中义黎,以上是微眾銀行大數(shù)據(jù)平臺(tái)——周可的技術(shù)分享,謝謝豁跑。

微眾銀行圖數(shù)據(jù)庫(kù)實(shí)踐

喜歡這篇文章廉涕?來(lái)來(lái)來(lái),給我們的 GitHub 點(diǎn)個(gè) star 表鼓勵(lì)啦~~ ???♂????♀? [手動(dòng)跪謝]

交流圖數(shù)據(jù)庫(kù)技術(shù)?歡迎報(bào)名參加 nMeetup 北京場(chǎng)狐蜕,和 BOSS 直聘文洲大佬現(xiàn)場(chǎng)談笑風(fēng)生宠纯,更有美團(tuán) NLP 技術(shù)大佬和你分享美團(tuán)的圖數(shù)據(jù)庫(kù)技術(shù)實(shí)踐,以及知乎反作弊工程師和你聊 Nebula Graph 在知乎的應(yīng)用层释。報(bào)名地址:nMeetup·北京場(chǎng) | 圖數(shù)據(jù)庫(kù)經(jīng)驗(yàn)之談

推薦閱讀

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末婆瓜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贡羔,更是在濱河造成了極大的恐慌廉白,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乖寒,死亡現(xiàn)場(chǎng)離奇詭異蒙秒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)宵统,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)覆获,“玉大人马澈,你說(shuō)我怎么就攤上這事∨ⅲ” “怎么了痊班?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)摹量。 經(jīng)常有香客問(wèn)我涤伐,道長(zhǎng),這世上最難降的妖魔是什么缨称? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任凝果,我火速辦了婚禮,結(jié)果婚禮上睦尽,老公的妹妹穿的比我還像新娘器净。我一直安慰自己,他們只是感情好当凡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布山害。 她就那樣靜靜地躺著,像睡著了一般沿量。 火紅的嫁衣襯著肌膚如雪浪慌。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天朴则,我揣著相機(jī)與錄音权纤,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛妖碉,可吹牛的內(nèi)容都是我干的涌庭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼欧宜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼坐榆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起冗茸,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤席镀,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后夏漱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體豪诲,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年挂绰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屎篱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡葵蒂,死狀恐怖交播,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情践付,我是刑警寧澤秦士,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布编矾,位于F島的核電站督函,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏藕甩。R本人自食惡果不足惜命爬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一曹傀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饲宛,春花似錦卖毁、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至练链,卻和暖如春翔脱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背媒鼓。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工届吁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留错妖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓疚沐,卻偏偏與公主長(zhǎng)得像暂氯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子亮蛔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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