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

騰訊數(shù)據(jù)治理技術(shù)實(shí)踐

大數(shù)據(jù)
隨著公司業(yè)務(wù)方規(guī)模的增長(zhǎng),面對(duì)大量不同類型的數(shù)據(jù),如何治理這些來源不同、數(shù)據(jù)量大的數(shù)據(jù)是一個(gè)值得思考的問題。本次分享結(jié)合騰訊內(nèi)部數(shù)據(jù)管理方法,圍繞數(shù)據(jù)治理技術(shù)實(shí)踐,展開介紹騰訊在數(shù)據(jù)治理領(lǐng)域中做的相關(guān)工作。

一、數(shù)據(jù)治理簡(jiǎn)介

首先介紹一下數(shù)據(jù)治理相關(guān)理論知識(shí)和概念,以便大家對(duì)數(shù)據(jù)治理有一定了解和認(rèn)識(shí)。

1、什么是數(shù)據(jù)治理

個(gè)人理解的數(shù)據(jù)治理是整個(gè)數(shù)據(jù)相關(guān)組織架構(gòu)以及各種活動(dòng)能力的集合,因此,數(shù)據(jù)治理并不是單一組織或者系統(tǒng)能夠完成的事情。數(shù)據(jù)治理和數(shù)據(jù)管理是分不開的,數(shù)據(jù)治理的職能是指導(dǎo)其他數(shù)據(jù)管理職能的執(zhí)行,數(shù)據(jù)治理是在高層上執(zhí)行的數(shù)據(jù)管理。

圖片

2、數(shù)據(jù)治理目的

數(shù)據(jù)治理的目的有很多,比如數(shù)據(jù)共享、提升數(shù)據(jù)資產(chǎn)價(jià)值、提升數(shù)據(jù)質(zhì)量等等,從下圖中的某機(jī)構(gòu)調(diào)查結(jié)果可以看到,提升數(shù)據(jù)質(zhì)量是數(shù)據(jù)治理的最大動(dòng)機(jī)。除此之外,國(guó)家對(duì)數(shù)據(jù)相關(guān)法律規(guī)定,各個(gè)公司也有相關(guān)的規(guī)范要求,數(shù)據(jù)合規(guī)也是數(shù)據(jù)治理需要考慮的問題。

圖片

3、數(shù)據(jù)治理面臨的困難

數(shù)據(jù)治理面臨著諸多挑戰(zhàn):比如數(shù)據(jù)多樣化缺乏統(tǒng)一標(biāo)準(zhǔn)、多種異構(gòu)類型的數(shù)據(jù)源、數(shù)據(jù)鏈路長(zhǎng)、數(shù)據(jù)合規(guī)保障、數(shù)據(jù)價(jià)值如何評(píng)估等等。

圖片

4、數(shù)據(jù)治理方法

了解了數(shù)據(jù)治理面臨的問題后,該如何解決這些問題?我們的方法就是知治管(先知后治再管)。

先知就是要知道治理的數(shù)據(jù)對(duì)象,知道數(shù)據(jù)的形式,存儲(chǔ)位置等;后治是使用相關(guān)技術(shù)進(jìn)行治理比如規(guī)范化、標(biāo)準(zhǔn)化等處理;再管就是盡力去提升新數(shù)據(jù)的質(zhì)量,這樣才算是真正把整個(gè)數(shù)據(jù)治理按體系做好。數(shù)據(jù)治理其實(shí)是一個(gè)閉環(huán)的體系,所以還需要將數(shù)據(jù)治理反饋到整個(gè)數(shù)據(jù)管理流程上。

圖片

5、數(shù)據(jù)治理過程

數(shù)據(jù)治理由圖示的四個(gè)步驟構(gòu)成:

一是現(xiàn)在盤點(diǎn),理清楚數(shù)據(jù)現(xiàn)狀,確定歸屬和職能。

二是數(shù)倉(cāng)建設(shè),這里的數(shù)倉(cāng)包含了傳統(tǒng)意義上的數(shù)倉(cāng)和元數(shù)據(jù)數(shù)倉(cāng),對(duì)這些數(shù)據(jù)進(jìn)行統(tǒng)一采集和保存。

三是質(zhì)量檢測(cè),確定評(píng)估標(biāo)準(zhǔn),輸出數(shù)據(jù)質(zhì)量報(bào)告。

四是持續(xù)改進(jìn),根據(jù)數(shù)據(jù)質(zhì)量報(bào)告推動(dòng)數(shù)據(jù)持續(xù)改進(jìn),比如建立數(shù)據(jù)地圖、分析血緣關(guān)系、持續(xù)監(jiān)控?cái)?shù)據(jù)質(zhì)量、優(yōu)化數(shù)據(jù)使用流程。將數(shù)據(jù)的產(chǎn)生和治理相結(jié)合結(jié)合,形成閉環(huán),從而保證數(shù)據(jù)的采集和數(shù)據(jù)治理變得更好。

圖片

二、騰訊數(shù)據(jù)治理體系簡(jiǎn)介

這部分主要介紹騰訊內(nèi)部數(shù)據(jù)治理體系的建設(shè)思路和策略。

1、組織管理體系

在騰訊內(nèi)部,我們建立了統(tǒng)一組織,規(guī)劃和協(xié)調(diào)整個(gè)公司的數(shù)據(jù)治理、數(shù)據(jù)安全工作,以 OTeam 形式規(guī)劃和實(shí)施整個(gè)相關(guān)領(lǐng)域的平臺(tái)建設(shè)和規(guī)范協(xié)同;建立企業(yè)級(jí)標(biāo)準(zhǔn),規(guī)范測(cè)評(píng)體系;構(gòu)建平臺(tái)協(xié)同,建設(shè)開箱即用的一站式數(shù)據(jù)治理工具平臺(tái);形成社區(qū)運(yùn)營(yíng),通過分享或宣傳的方式,讓大家意識(shí)到數(shù)據(jù)治理以及數(shù)據(jù)質(zhì)量的重要性。

圖片

2、騰訊數(shù)據(jù)治理業(yè)務(wù)框架

騰訊這樣量級(jí)的公司,動(dòng)輒幾千萬上億甚至百億級(jí)別的數(shù)據(jù),數(shù)據(jù)的采集和存儲(chǔ)都是很大的問題。在上億量級(jí)的數(shù)據(jù)治理建設(shè)過程中,我們一步步實(shí)踐,踩過很多坑。通過制定數(shù)據(jù)治理標(biāo)準(zhǔn),搭建了以資產(chǎn)創(chuàng)建、資產(chǎn)評(píng)估、資產(chǎn)運(yùn)營(yíng)、資產(chǎn)管控四部分構(gòu)成的數(shù)據(jù)治理平臺(tái),構(gòu)建全域元數(shù)據(jù)服務(wù),形成了元數(shù)據(jù)采集、存儲(chǔ)、數(shù)倉(cāng)、數(shù)據(jù)血緣的整個(gè)數(shù)據(jù)生命周期鏈路,結(jié)合底層采用多種存儲(chǔ)方式,逐步建設(shè)了一個(gè)可以管理和區(qū)分優(yōu)質(zhì)資產(chǎn)與數(shù)據(jù)垃圾、相對(duì)較好的元數(shù)據(jù)管理體系平臺(tái)。

圖片

3、元數(shù)據(jù)管理

我們從如何采、怎么存、引導(dǎo)治出發(fā),來思考和逐步完善元數(shù)據(jù)的管理。

圖片

4、數(shù)據(jù)資產(chǎn)管理

我們建立區(qū)分優(yōu)質(zhì)資產(chǎn),減少垃圾數(shù)據(jù)的數(shù)據(jù)資產(chǎn)管理平臺(tái),由四個(gè)部分組成:

首先是確定數(shù)據(jù)歸屬,如果數(shù)據(jù)歸屬都沒明確,則數(shù)據(jù)治理工作是很難展開,像騰訊這樣級(jí)別的大公司,經(jīng)過多次組織架構(gòu)的變更,數(shù)據(jù)歸屬問題尤其凸顯,比如說經(jīng)過組織調(diào)整,單個(gè) BG 的數(shù)據(jù)拆成了多個(gè) BG 的數(shù)據(jù)導(dǎo)致,數(shù)據(jù)管理問題在組織架構(gòu)變遷變得非?;靵y,因此確定歸屬關(guān)系是數(shù)據(jù)治理一個(gè)非常關(guān)鍵的環(huán)節(jié)。

其次是價(jià)值分析,通過業(yè)務(wù)屬性和數(shù)據(jù)訪問這兩個(gè)維度對(duì)數(shù)據(jù)進(jìn)行評(píng)估數(shù)據(jù)的價(jià)值,業(yè)務(wù)屬性也即是公司在各個(gè)領(lǐng)域的業(yè)務(wù)比如賬號(hào)體系等等。如數(shù)據(jù)訪問的量或者訪問頻次越高,就認(rèn)為該數(shù)據(jù)重要或者具有更高的價(jià)值。

然后是數(shù)據(jù)清理,為了避免數(shù)據(jù)清理或者減少權(quán)限變更影響的范圍,需要進(jìn)行影響分析判斷,同時(shí)結(jié)合自動(dòng)化清理工具完成整個(gè)數(shù)據(jù)清理或是權(quán)限變更。只是做好數(shù)據(jù)清理工作是不夠,因?yàn)樵趯?shí)際操作數(shù)據(jù)過程中,可能會(huì)出現(xiàn)誤刪或故意刪除的情況;為了保證數(shù)據(jù)數(shù)據(jù)情況的可靠性,我們還建立一套數(shù)據(jù)可恢復(fù)的機(jī)制,從而保證出現(xiàn)上述情況時(shí),能夠快速進(jìn)行數(shù)據(jù)恢復(fù),盡可能地降低影響范圍。

最后是生命周期,結(jié)合數(shù)據(jù)血緣和訪問頻次等學(xué)習(xí),為用戶設(shè)置數(shù)據(jù)生命周期時(shí),對(duì)該數(shù)據(jù)的生命周期進(jìn)行智能化推薦;當(dāng)然,這只是推薦的生命周期,數(shù)據(jù)最終的生命周期要結(jié)合著人工審核判斷,給定一個(gè)比較合理的周期。

圖片

5、騰訊數(shù)據(jù)治理測(cè)評(píng)體系:元數(shù)據(jù)管理成熟度

我們對(duì)元數(shù)據(jù)管理制定了測(cè)評(píng)體系,用于對(duì)公司整個(gè)數(shù)據(jù)管理和評(píng)估,可以看到圖中從下到上分為五個(gè)等級(jí),一二級(jí)是一些初始或基本管理方法,第三級(jí)則是相對(duì)來說已經(jīng)比較成熟,但是完全不夠的,還需要將數(shù)據(jù)驅(qū)動(dòng)和數(shù)據(jù)治理與數(shù)據(jù)使用形成閉環(huán),以便做好元原數(shù)據(jù)的管理,此時(shí)已經(jīng)是第四級(jí),是比較優(yōu)秀的程度。第五級(jí)則是比較卓越管理體系,需要具備自我完善和自我改進(jìn)的功能,同時(shí)能夠在公司內(nèi)或業(yè)界有一定影響力,元數(shù)據(jù)管理真正能做到這個(gè)級(jí)別的少之又少 。

圖片

6、數(shù)據(jù)安全治理

數(shù)據(jù)安全也是數(shù)據(jù)使用過程中一個(gè)非常重要的環(huán)節(jié),在這過程中,我們首先對(duì)數(shù)據(jù)進(jìn)行了分類分級(jí)處理,為數(shù)據(jù)確定安全等級(jí)和標(biāo)記,并與數(shù)據(jù)資產(chǎn)進(jìn)行關(guān)聯(lián)。其次在進(jìn)行數(shù)據(jù)管控,根據(jù)數(shù)據(jù)的分類分級(jí)結(jié)果,定制不同數(shù)據(jù)級(jí)別的申請(qǐng)流程,比如動(dòng)態(tài)或靜態(tài)數(shù)據(jù),數(shù)據(jù)加密和脫敏,在數(shù)據(jù)使用中對(duì)數(shù)據(jù)進(jìn)行管控。最后是安全審計(jì),支持一些安全審計(jì)相關(guān)功能比如數(shù)據(jù)權(quán)限訪問監(jiān)控、訪問記錄、下載日志等等,并可以輸出安全報(bào)告。

圖片

7、騰訊數(shù)據(jù)治理測(cè)評(píng)特征-安全管理能力成熟度

我們對(duì)數(shù)據(jù)安全能力管控也制定了評(píng)測(cè)體系,即安全管理能力成熟度,包含了 12 個(gè)管理域以及 86 個(gè)控制項(xiàng)。數(shù)據(jù)安全管理能力從低到高分成五個(gè)等級(jí)。

圖片

制定了數(shù)據(jù)安全管理能力標(biāo)準(zhǔn)后,數(shù)據(jù)治理通過 OTeam 進(jìn)行統(tǒng)一組織和協(xié)調(diào),各個(gè)部門自行申請(qǐng)或者參與到整個(gè)評(píng)測(cè)的工作中。

圖片

三、數(shù)據(jù)治理技術(shù)實(shí)踐

這部分是本次分享的最核心部分:騰訊內(nèi)部元數(shù)據(jù)管理、數(shù)據(jù)血緣相關(guān)技術(shù)和相關(guān)的后臺(tái)技術(shù)實(shí)現(xiàn)。

1、技術(shù)架構(gòu)

下圖是我們內(nèi)部統(tǒng)一元數(shù)據(jù)系統(tǒng)的技術(shù)架構(gòu)。對(duì)外來說,上層可以支持不同類型元數(shù)據(jù),可以滿足各種分析引擎對(duì)元數(shù)據(jù)相關(guān)的要求,同時(shí)對(duì)接各種自定義或者標(biāo)準(zhǔn)化的數(shù)據(jù)源。這套底層統(tǒng)一的元數(shù)據(jù)服務(wù)既要滿足公司內(nèi)部的要求,同時(shí)也要滿足外部的用戶對(duì)整個(gè)數(shù)據(jù)治理的需求。目前這套元數(shù)據(jù)管理除了內(nèi)部使用外,也支持了騰訊云上的產(chǎn)品比如 WeData 等,我們統(tǒng)一元數(shù)據(jù)平臺(tái)目前對(duì)公司內(nèi)外及相關(guān)產(chǎn)品都可以提供支持。

圖片

從下往上看,整個(gè)統(tǒng)一元數(shù)據(jù)可分成兩個(gè)垂直的領(lǐng)域。 

左邊是數(shù)據(jù)治理體系,主要面向的是離線采集、存儲(chǔ),然后做數(shù)據(jù)檢索、生命周期、數(shù)據(jù)安全、數(shù)據(jù)血緣和數(shù)據(jù)質(zhì)量的管理,這些就是數(shù)據(jù)治理提供的基礎(chǔ)服務(wù)。在線元數(shù)據(jù)是支持引擎?zhèn)鹊膶?shí)時(shí)元數(shù)據(jù)寫入,比如大數(shù)據(jù)領(lǐng)域最典型的 Hive、RDBMS、Strom,通過 thrift 協(xié)議,將數(shù)據(jù)實(shí)時(shí)寫入到元數(shù)據(jù)服務(wù)。離線數(shù)據(jù)治理和在線數(shù)據(jù)治理所面臨領(lǐng)域和技術(shù)的差異是比較大的,數(shù)據(jù)治理更關(guān)注的是大數(shù)據(jù)量基礎(chǔ)上,如何做好分析、檢索和工作。因此在底層存儲(chǔ)的選型方面結(jié)合了各種數(shù)據(jù)庫(kù),比如 HBase、ES、圖數(shù)據(jù)庫(kù)以及關(guān)系型數(shù)據(jù)庫(kù)來支撐整個(gè)離線治理工作。在線元數(shù)據(jù)服務(wù)因?yàn)橛胁糠质聞?wù)工作,比如建庫(kù)建表,實(shí)時(shí)寫入時(shí),需要考慮到事務(wù)、數(shù)據(jù)一致性和高可靠等因素,因此,在底層存儲(chǔ)時(shí),選擇了傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。需要事務(wù)和一致性、高可靠的方式去完成。像騰訊體量的公司,數(shù)據(jù)量是非常龐大的,單純的靠單機(jī) MySQL、PQ 是很難支持這種海量數(shù)據(jù)存儲(chǔ)。因此,我們?cè)谶@個(gè)基礎(chǔ)上進(jìn)行分庫(kù)分表,并利用公司內(nèi)部 TDSql 分布式數(shù)據(jù)庫(kù)存儲(chǔ)。

右邊在是統(tǒng)一元數(shù)據(jù)服務(wù)基礎(chǔ),提供公共的平臺(tái)能力,比如認(rèn)證、鑒權(quán)、任務(wù)調(diào)度、用戶租戶以及運(yùn)營(yíng)監(jiān)控。

2、微服務(wù)劃分

圖片

上圖是我們整個(gè)元數(shù)據(jù)治理服務(wù)后臺(tái)微服務(wù)劃分,上層是元數(shù)據(jù)產(chǎn)品、計(jì)算引擎、數(shù)據(jù)源,第二層是在第一層基礎(chǔ)上提供后臺(tái)能力,比如數(shù)據(jù)地圖、元數(shù)據(jù)采集、數(shù)據(jù)血緣和資產(chǎn)管理等功能,最底層就是整個(gè)支撐這套體系的技術(shù)服務(wù)。

后臺(tái)的技術(shù)服務(wù)又分成了兩層:第一層是數(shù)據(jù)層或接入層,主要由databus、center、metastores 組成,其中 hybirs 是元數(shù)據(jù)服務(wù)內(nèi)部代號(hào)。databus 的作用是統(tǒng)一消費(fèi)經(jīng)過 MQ 轉(zhuǎn)發(fā)的消息并落庫(kù),http 服務(wù)和 Thrift 服務(wù)經(jīng)過接入層服務(wù)后,通過 RPC 協(xié)議進(jìn)入基礎(chǔ)服務(wù)層并在基礎(chǔ)服務(wù)層進(jìn)行業(yè)務(wù)邏輯處理,最后寫入到底層存儲(chǔ)。

接入層分為兩層是為了底層存儲(chǔ)能夠提供通用的服務(wù)能力。接入層的第二層更靈活,可以支持不同產(chǎn)品和引擎,以及不同數(shù)據(jù)源對(duì)接和適配。從圖中可以看到,databus 有一條直通底層數(shù)據(jù)庫(kù)的鏈路??紤]到 databus 的職責(zé)所在,因?yàn)?databus 是對(duì) mq 消息進(jìn)行統(tǒng)一消費(fèi),考慮到數(shù)據(jù)量,databus 對(duì)寫入效率的要求非常高。http 服務(wù)和 Thrift 服務(wù)的數(shù)據(jù)量相比而言就少 很多,為了減少數(shù)據(jù)消費(fèi)的延遲,我們將 databus 消費(fèi)的數(shù)據(jù)直接落庫(kù),減少 http/Thrift 服務(wù)中的 RPC 調(diào)用,縮短鏈路,進(jìn)一步提升數(shù)據(jù)入效率,從而將采集的數(shù)據(jù)及時(shí)地存儲(chǔ)底層存儲(chǔ)中。

3、數(shù)據(jù)采集

首先是統(tǒng)一元數(shù)據(jù)的數(shù)據(jù)采集,數(shù)據(jù)采集可以分成兩個(gè)方向:定時(shí)采集和實(shí)時(shí)采集。

定時(shí)就是通過定時(shí)任務(wù)或調(diào)度定期連接數(shù)據(jù)源,對(duì)上游的元數(shù)據(jù)進(jìn)行采集。采集的過程又分為增量采集和全量采集。因此定時(shí)采集可以分為定時(shí)增量采集和定時(shí)全量采集;定時(shí)增量就是每次只采最近一段時(shí)間的數(shù)據(jù),通過積累采集全部歷史數(shù)據(jù)。定時(shí)全量就是每次將全部數(shù)據(jù)一次性采集完,然后落地。

圖片

在實(shí)際工作中,往往是將增量采集和全量采集結(jié)合使用。數(shù)據(jù)采集并不是最初就進(jìn)行全量采集,而是待數(shù)據(jù)積累到一定量后才對(duì)元數(shù)據(jù)采集或治理工作。首次采集時(shí),通常是使用全量采集的方式將歷史數(shù)據(jù)采集,后續(xù)的數(shù)據(jù)往往是通過定時(shí)增量的方式采集。

對(duì)于那些必須要定時(shí)增量的數(shù)據(jù),為了減少后續(xù)鏈路的壓力,我們做了針對(duì)性的優(yōu)化:通過 redis 對(duì)定時(shí)增量做了過濾處理,比如采集周期內(nèi),對(duì)庫(kù)信息、表信息以及分區(qū)信息計(jì)算 md5 值并存儲(chǔ)在 redis,然后對(duì)采集的元數(shù)據(jù)進(jìn)行 md5 計(jì)算,再與 Redis 中對(duì)應(yīng)的值進(jìn)行比對(duì),在源頭過濾掉沒有差異的數(shù)據(jù),從而減少重復(fù)數(shù)據(jù)的發(fā)送。

面臨的另一個(gè)問題就是全量采集時(shí)全量刪除和全量覆蓋。在增量化處理時(shí),數(shù)據(jù)刪除是面臨問題的:上一次是全量處理,后續(xù)則是增量處理,比如在某個(gè)周期內(nèi),有五個(gè)庫(kù),這一次采集,需要?jiǎng)h了一個(gè)庫(kù)(表),增量采集的方式是沒辦法直接找到要?jiǎng)h除的庫(kù)(表) ,也即是刪除些信息沒辦法透徹到下游。

針對(duì)數(shù)據(jù)刪除無法發(fā)現(xiàn),我們對(duì)數(shù)據(jù)源所在庫(kù)和表做了緩存,在后續(xù)的數(shù)據(jù)采集時(shí),與 redis 中緩存數(shù)據(jù)做全量對(duì)比取交集和差集,從而判斷數(shù)據(jù)的修改情況比如刪除、新增或修改,在源頭去掉重復(fù)的數(shù)據(jù),同時(shí)有又能發(fā)現(xiàn)刪除的情況,最后把過濾處理后的數(shù)據(jù)發(fā)到消息中間件。經(jīng)過后續(xù)的消費(fèi)、分發(fā)(采集的數(shù)據(jù)源是有多種多樣的,因此會(huì)有分發(fā)器來識(shí)別和和處理不同類型元數(shù)據(jù))最終分發(fā)不同的數(shù)據(jù)存儲(chǔ)的流程。比如血緣信息、元數(shù)據(jù) DDL 信息、審計(jì)日志信息的數(shù)據(jù),針對(duì)不同類型信息數(shù)據(jù)有不同的處理鏈路,根據(jù)數(shù)據(jù)特點(diǎn)落入不同的存儲(chǔ),比如血緣信息數(shù)據(jù)寫入圖數(shù)據(jù)庫(kù),元數(shù)據(jù) DDL 信息存儲(chǔ)到 HBase。

數(shù)據(jù)治理產(chǎn)品前端交互是通過 ES 完成,打上寬表滿足前端交互和數(shù)據(jù)發(fā)現(xiàn)以及數(shù)據(jù)管理的需求。數(shù)據(jù)審計(jì)的日志流水,則使用內(nèi)部 hermes ,hermes 是一個(gè)類似 ES 的產(chǎn)品,但在存儲(chǔ)方面做了針對(duì)性優(yōu)化。

傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)都有唯一的主鍵,根據(jù)這個(gè)主鍵就可以增刪改查等處理。但是在元數(shù)據(jù)管理中,對(duì)于非采用非關(guān)系數(shù)據(jù)庫(kù),該如何處理呢?比如上游采集好的一條元數(shù)據(jù)信息傳遞過來,我們需要對(duì)數(shù)據(jù)進(jìn)行判斷,比如是否存在或者是否修改。首先是查詢,根據(jù)庫(kù)(表)名查詢是否存在,若存在則是更新操作;不存在則是新增操作。這個(gè)過程會(huì)與數(shù)據(jù)庫(kù)發(fā)生兩次交互,對(duì)整個(gè)鏈路會(huì)產(chǎn)生較大的影響 。

為了處理這個(gè)問題,我們引入了 guid 生成器(guid generator),將庫(kù)和表的信息和數(shù)據(jù)源信息輸入到 guid 生成器,生成一個(gè)統(tǒng)一編碼的 guid,作為底層存儲(chǔ)的唯一標(biāo)識(shí)。然后用生成的 guid 對(duì)數(shù)據(jù)庫(kù)進(jìn)行一個(gè)類似叫 replace into 的方式,從而實(shí)現(xiàn)通過一次跟數(shù)據(jù)庫(kù)的交互就能新增或修改操作。這樣處理對(duì)整個(gè)寫入流程是一個(gè)很大的提升。比如 hbase,直接使用 upsert,將新數(shù)據(jù)寫入數(shù)據(jù)庫(kù),無需關(guān)心是新增還是修改。為了保證數(shù)據(jù)的最終一致性,我們將實(shí)時(shí)與周期性全量或增量的方式結(jié)合,去實(shí)現(xiàn)數(shù)據(jù)的最終一致性。在發(fā)生數(shù)據(jù)實(shí)時(shí)采集不及時(shí)或者鏈路有問題的情況下,通過全量采集的方式進(jìn)行補(bǔ)漏處理。 

圖片

4、統(tǒng)一元數(shù)據(jù)-血緣采集分析

血緣分析對(duì)整個(gè)數(shù)據(jù)價(jià)值體驗(yàn)是非常重要的,如何做血緣分析呢?首先是血緣的來源,最直接的方式就是用戶通過執(zhí)行引擎的客戶端或者直連執(zhí)行引的 server 提交的 sql。比如基于 hive 或者騰訊內(nèi)部的 thive 提交 sql 后,我們通過 hook 或者 spark 的 listener 或者 hbase 的協(xié)處理器的方式攔截到具體 query plan,query plan里面記錄了用戶提交的 sql 以及整個(gè)執(zhí)行過程中 context 的上下游信息,包括 intoput、output 等信息。對(duì) query plan 進(jìn)一步解析,從而形成了數(shù)據(jù)血緣的 mode,然后寫到 MQ,最后獲取 sql 數(shù)據(jù)進(jìn)行解析,將血源信息落到圖數(shù)據(jù)庫(kù)。

另外一種就是通過定時(shí)調(diào)度產(chǎn)生的血緣,感知到用戶提交的 sql 表信息之外。還需要將用戶調(diào)度任務(wù)信息與庫(kù)和表的關(guān)系進(jìn)行一個(gè)呈現(xiàn)。同時(shí)會(huì)將通過其他方式提交的歷史任務(wù)記錄的日志消息存儲(chǔ)在 HDFS。我們會(huì)定時(shí)抓取這些日志并對(duì)日志做統(tǒng)一分析處理,比如 mr 、spark、sql 分析,形成血緣模型,發(fā)送到 mq,最終寫入數(shù)據(jù)庫(kù)。

sql 解析是血緣解析過程的關(guān)鍵技術(shù),業(yè)界有很對(duì) sql 解析和開源的技術(shù),我們內(nèi)部是基于 Druid 進(jìn)行封裝和改進(jìn)構(gòu)建了sql guru,并進(jìn)行 sql 解析。相比于 hive 的 antlr 解析器,通過實(shí)際效果對(duì)比,我們選擇了在性能穩(wěn)定性以及支持的場(chǎng)景更有優(yōu)勢(shì)的 Druid。Druid 處理廣泛使用的連接池之外,它數(shù)據(jù) sql 解析方面也是比較強(qiáng)悍的。除了常見的血緣解析能力之外,我們還擴(kuò)展了一些比如像物化視圖、像臨時(shí)表 with as,join 等復(fù)雜 sql 的解析?;谙鄬?duì)全面元數(shù)據(jù)采集,結(jié)合強(qiáng)悍的 sql 解析能力以及語法支持,我們將血緣分析的場(chǎng)景盡可能做得完善。

5、數(shù)數(shù)據(jù)血緣存儲(chǔ)

圖數(shù)據(jù)庫(kù)是血緣存儲(chǔ)的常見方式,因此圖數(shù)據(jù)庫(kù)也作為了我們內(nèi)部血緣存儲(chǔ)的一種方式。當(dāng)數(shù)據(jù)量級(jí)比較小時(shí),圖數(shù)據(jù)庫(kù)并不是血緣存儲(chǔ)的唯一方式,基于傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)可以表達(dá)出來血緣的關(guān)系,血緣無非就是各種實(shí)體以及它們之間關(guān)系的記錄。

以圖中的 case 所示,圖中有兩個(gè)調(diào)度任務(wù),第一個(gè)調(diào)度任務(wù)里面有兩段 sql,執(zhí)行第一個(gè) task 是會(huì)執(zhí)行兩個(gè)獨(dú)立的 sql,第一個(gè) sql 是 a 和 b 的關(guān)系,第二個(gè) sql 是 d 和 c 的關(guān)系。第二個(gè) task 只有一個(gè) sql,它是 a 和 b 的關(guān)系,那這個(gè)時(shí)候就會(huì)有一個(gè)問題:數(shù)據(jù)血緣圖數(shù)據(jù)庫(kù)里面怎么呈現(xiàn)的呢?

圖數(shù)據(jù)庫(kù)存儲(chǔ)的無非就是點(diǎn)和邊以及中間的線,橫向來看,我們把表和任務(wù)作為點(diǎn)來存儲(chǔ),可以看到左邊這種情況 那我們看 比如像 task A 把 a 和 b 關(guān)聯(lián),同時(shí)將 c 和 d 關(guān)聯(lián)。因此,它們的血緣關(guān)系如圖左上角所示。因?yàn)槭峭ㄟ^同一個(gè) task 關(guān)聯(lián),當(dāng)我們?nèi)ふ遗c c 有關(guān)聯(lián)的血緣時(shí),會(huì)找到 b 和 d 都找到了。從圖中可以看到 task A 一個(gè)特性里面看到有兩段的 sql,但 a 和 b 才有真正但血緣關(guān)系,c 和 b 之間是沒血緣關(guān)系的。c 與 b 之間有血緣關(guān)系是因?yàn)殄e(cuò)亂導(dǎo)致的。

圖片

因此我們做了針對(duì)性優(yōu)化,如右上圖所示,可以看到右邊這種情況。將任務(wù)節(jié)點(diǎn)拆成兩個(gè)節(jié)點(diǎn),雖然兩個(gè)節(jié)點(diǎn)輸入同一個(gè)任務(wù),但是每個(gè)節(jié)點(diǎn)都有唯一的標(biāo)識(shí)記錄,這樣就可以區(qū)分出來,建立關(guān)系清晰的血緣鏈路。從 a 出發(fā),就只會(huì)知道與它有血緣關(guān)系的 b,這樣就解決了上面所說的錯(cuò)亂的問題。

另一種思路就是將表作為點(diǎn),任務(wù)去作為邊,那這種情況會(huì)有什么問題呢?可以看到 a 和 b 通過 task A 和 taskB 分別建立這個(gè)血緣關(guān)系。除了這個(gè)表的血緣關(guān)系之外還需要體現(xiàn)任務(wù)的血緣關(guān)系。而在圖數(shù)據(jù)庫(kù)中兩個(gè)相同的點(diǎn)之間,只能有唯一的一條邊,按這種方式處理前面提到的情況,是首先是 a 和 b 建立血緣關(guān)系,后面 b 則會(huì)再和 a 建立血緣關(guān)系。這樣就會(huì)將出現(xiàn)任務(wù)信息覆蓋的情況,導(dǎo)致整個(gè)血緣關(guān)系的不完整。結(jié)合在血緣關(guān)系處理過程中可能出現(xiàn)的各種情況以及它們帶來的問題,我們最終選擇圖數(shù)據(jù)庫(kù)的方式將表和任務(wù)均作為點(diǎn),然后用邊建立血緣關(guān)系,記錄整個(gè)血緣。

以上就是本次分享的內(nèi)容。本次分享主要是我們騰訊內(nèi)部數(shù)據(jù)治過程遇到的問題以及處理方法。希望通過本次分享能夠給在做數(shù)據(jù)治理和建設(shè)的同學(xué)一些指導(dǎo),幫助大家規(guī)避一些在日常工作中可能出現(xiàn)的問題。

責(zé)任編輯:姜華 來源: DataFunTalk
相關(guān)推薦

2023-11-24 07:10:44

數(shù)據(jù)治理PCG

2023-04-10 07:34:30

2024-04-22 07:56:32

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)中臺(tái)數(shù)據(jù)服務(wù)

2024-01-11 08:15:52

大數(shù)據(jù)成本治理Hadoop

2023-06-12 07:44:21

大數(shù)據(jù)數(shù)據(jù)治理

2023-08-07 08:40:24

2022-12-30 15:27:13

2024-03-26 06:46:52

大數(shù)據(jù)數(shù)據(jù)治理大數(shù)據(jù)資產(chǎn)治理

2024-09-29 08:40:34

2020-10-14 10:01:47

零信任

2018-09-30 15:05:38

數(shù)據(jù)湖數(shù)據(jù)倉(cāng)庫(kù)Hadoop

2023-06-27 07:26:36

汽車之家敏感數(shù)據(jù)治理

2023-03-15 18:34:26

資源治理數(shù)據(jù)治理業(yè)務(wù)線

2021-05-21 16:26:46

數(shù)據(jù)安全治理

2022-12-09 09:39:01

數(shù)據(jù)治理

2023-10-24 14:48:23

數(shù)據(jù)治理大數(shù)據(jù)

2024-02-22 08:51:46

大數(shù)據(jù)白盒化治理數(shù)據(jù)治理

2022-08-26 13:12:01

數(shù)據(jù)治理實(shí)踐

2021-07-19 10:06:30

數(shù)據(jù)治理數(shù)字化轉(zhuǎn)型CIO

2024-10-15 08:14:51

點(diǎn)贊
收藏

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