小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

漫談數(shù)據(jù)質(zhì)量監(jiān)控

 rating123 2019-05-23

0x00 前言

往往那些不起眼的功能,最能毀掉你的工作成果。

本篇分享一些和數(shù)據(jù)質(zhì)量監(jiān)控相關(guān)的內(nèi)容。數(shù)據(jù)質(zhì)量監(jiān)控是一個(gè)在快速發(fā)展的業(yè)務(wù)中最容易被犧牲和忽略的功能,但是它確實(shí)至關(guān)重要的。

假設(shè)你做了100個(gè)業(yè)務(wù),一旦有其中一個(gè)業(yè)務(wù)在某個(gè)時(shí)間段出現(xiàn)了數(shù)據(jù)異常,這個(gè)異常還是由業(yè)務(wù)方發(fā)現(xiàn)的而不是你,根據(jù)我的經(jīng)驗(yàn)是,它帶來(lái)的負(fù)面影響會(huì)超過(guò)你之前做的100個(gè)業(yè)務(wù)帶來(lái)的正面影響。

文章結(jié)構(gòu)

數(shù)據(jù)質(zhì)量監(jiān)控的意義和價(jià)值就不再談了,本文主要討論下面兩個(gè)主題:

  1. 數(shù)據(jù)質(zhì)量監(jiān)控要做哪些監(jiān)控內(nèi)容

  2. 該怎么做

文中會(huì)涉及到數(shù)據(jù)倉(cāng)庫(kù)其它的一些知識(shí)點(diǎn),請(qǐng)參考:http:///

0x01 什么值得你監(jiān)控

我把數(shù)據(jù)質(zhì)量分成三部分來(lái)理解:

  1. 監(jiān)控

  2. 告警

  3. 多數(shù)據(jù)源

重點(diǎn)在監(jiān)控,這點(diǎn)會(huì)展開(kāi)來(lái)講,多數(shù)據(jù)源這一塊是因?yàn)樵诖髷?shù)據(jù)場(chǎng)景下,我們有太多的開(kāi)源組件來(lái)選擇,很多組件的數(shù)據(jù)都需要監(jiān)控,而且每個(gè)都不一樣,如果統(tǒng)一地來(lái)監(jiān)控是個(gè)重要的話(huà)題。

如下圖,我先列一個(gè)大致的思維導(dǎo)圖,然后詳細(xì)講每一部分。

Paste_Image.png

一、 監(jiān)控

監(jiān)控這一塊比較大。整體來(lái)講,我會(huì)把它分為這幾塊:日常監(jiān)控、數(shù)據(jù)對(duì)賬、性能監(jiān)控。下面分開(kāi)來(lái)講。

1. 日常監(jiān)控

日常監(jiān)控中最重要的一個(gè)就是數(shù)據(jù)落地檢查,這應(yīng)該是所有監(jiān)控的一個(gè)基礎(chǔ),不然沒(méi)數(shù)據(jù)你玩?zhèn)€毛啊。

下面是我認(rèn)為一些比較常用的監(jiān)控內(nèi)容:

  1. 數(shù)據(jù)落地監(jiān)控

  2. 數(shù)據(jù)掉0監(jiān)控:實(shí)際擴(kuò)展一下就是數(shù)據(jù)量閾值監(jiān)控,少于某個(gè)量就告警

  3. 重復(fù)數(shù)據(jù)監(jiān)控:很多表一定要監(jiān)控重復(fù)數(shù)據(jù)的,這點(diǎn)至關(guān)重要。

  4. 關(guān)鍵指標(biāo)監(jiān)控

  5. 數(shù)據(jù)同比環(huán)比監(jiān)控

這是一些常用的監(jiān)控,在后面會(huì)提到,我們可以做一個(gè)規(guī)則引擎,上面提到的都坐到規(guī)則里面,哪個(gè)表需要了就陪一下就行了。

2. 數(shù)據(jù)對(duì)賬

這點(diǎn)主要會(huì)體現(xiàn)到實(shí)時(shí)數(shù)據(jù)上,特別是Kafka數(shù)據(jù)落地,必須要有一個(gè)監(jiān)控機(jī)制來(lái)知道我們的數(shù)據(jù)落地情況。

當(dāng)然離線(xiàn)數(shù)據(jù)同樣需要數(shù)據(jù)對(duì)賬,對(duì)賬方法有很多,比如可以和業(yè)務(wù)庫(kù)來(lái)對(duì)比。

3. 性能監(jiān)控

我把這點(diǎn)理解為數(shù)據(jù)可用性監(jiān)控,我認(rèn)為這是一個(gè)很重要的點(diǎn)。 如果你做的數(shù)據(jù)別人用起來(lái)十分不爽,或者慢得要死根本沒(méi)法用,那做了和沒(méi)做有什么區(qū)別?

感覺(jué)在性能監(jiān)控上就是有幾個(gè)點(diǎn)要注意:

  1. 查詢(xún)性能,比如es的某個(gè)索引,在不同時(shí)間段的查詢(xún)響應(yīng)速度,同理presto、hive、kylin這些的查詢(xún)都需要注意一下,這點(diǎn)可以通過(guò)任務(wù)監(jiān)控來(lái)觀察。

  2. 數(shù)據(jù)讀寫(xiě)影響,機(jī)器故障影響,這點(diǎn)平常不太關(guān)注,不過(guò)像es這種,在寫(xiě)入數(shù)據(jù)的時(shí)候其實(shí)會(huì)影響讀數(shù)據(jù)的,需要監(jiān)控一下,并做相應(yīng)調(diào)整。

二、告警

告警就不用說(shuō)了,微信、短信和電話(huà)都很有必要。

定期的郵件匯總告警也很有必要。

然后有很多的告警可以考慮一個(gè)告警報(bào)表系統(tǒng)來(lái)展示,特別像是數(shù)據(jù)量趨勢(shì)這種監(jiān)控內(nèi)容,可視化的對(duì)比比較有效。

三、 多數(shù)據(jù)源

在目前的大數(shù)據(jù)場(chǎng)景下,各種開(kāi)源組件引入的十分多,而且會(huì)有新的組件不停地引入,因此要考慮到對(duì)不同組件的數(shù)據(jù)監(jiān)控。

目前筆者接觸比較多的會(huì)有Hive(presto、spark sql)、Mysql、ES、Redis、Kylin(主要是構(gòu)建的cube)這些常用的,但是不能排除圖數(shù)據(jù)庫(kù)(neo4j、orientdb)和druid這些組件引入的可能性。

0x02 怎樣監(jiān)控

數(shù)據(jù)監(jiān)控相對(duì)來(lái)講是屬于后臺(tái)系統(tǒng),不能算是對(duì)外的業(yè)務(wù)系統(tǒng),一般重要性可能會(huì)被挑戰(zhàn),雖說(shuō)如此,它還是值得一做的。 不過(guò)可能要換一些思路來(lái)做,如何快速地實(shí)現(xiàn)、并抓住核心的功能點(diǎn)是值得深思的一件事。

這里不會(huì)有實(shí)現(xiàn),只會(huì)有一些設(shè)計(jì)思路,歡迎來(lái)討論。

如圖是一個(gè)整體的構(gòu)思,我先分析幾個(gè)個(gè)人認(rèn)識(shí)比較重要的點(diǎn)。后面會(huì)詳細(xì)地來(lái)分析。

  1. 規(guī)則引擎:來(lái)定義各種告警規(guī)則,可能是一條sql模板,也可能是一些具體的算法。

  2. 執(zhí)行引擎:要來(lái)執(zhí)行各種規(guī)則,同時(shí)要考慮各種數(shù)據(jù)源的差異。

  3. 元數(shù)據(jù)系統(tǒng):數(shù)據(jù)質(zhì)量監(jiān)控本來(lái)也算是元數(shù)據(jù)系統(tǒng)的一部分,我們這分開(kāi)來(lái)講,但是無(wú)論如何,在配置表的告警信息時(shí),還是要和元數(shù)據(jù)系統(tǒng)結(jié)合的。

Paste_Image.png

下面會(huì)分開(kāi)來(lái)分析一下這幾個(gè)組件。

一、 規(guī)則引擎

舉幾個(gè)典型例子:數(shù)據(jù)延遲到達(dá)、數(shù)據(jù)同比環(huán)比、數(shù)據(jù)趨勢(shì)、一些定制化算法。

這塊的設(shè)計(jì)可以很靈活,也可以臨時(shí)開(kāi)發(fā)一個(gè)簡(jiǎn)單的。這里提幾個(gè)點(diǎn)。

1. Sql模板

在大多數(shù)存儲(chǔ)引擎中,通過(guò)Sql使用的數(shù)據(jù)(比如Hive、Mysql)會(huì)是比較重要的一種數(shù)據(jù),這種數(shù)據(jù)我們可以考慮用Sql模板。

我們會(huì)有一張表或者一些配置文件來(lái)定義我們的規(guī)則。簡(jiǎn)單來(lái)講,比如說(shuō)數(shù)據(jù)同比環(huán)比,我們可以寫(xiě)一個(gè)presto的sql模板,來(lái)和歷史數(shù)據(jù)進(jìn)行對(duì)比,這種sql很簡(jiǎn)單,自己寫(xiě)好模板就行。

這種模板最簡(jiǎn)單,也最快,我相信能解決大部分問(wèn)題。

2. 元數(shù)據(jù)

很多數(shù)據(jù)庫(kù)都是有元數(shù)據(jù)管理的,比如Hive,它的表的行數(shù)都是在元數(shù)據(jù)庫(kù)中有存放的,我們可以直接通過(guò)Hive的元數(shù)據(jù)來(lái)抓取表的每天的數(shù)據(jù)量的。

**注意:**這點(diǎn)十分重要,它能節(jié)省我們大部分的工作,而且比較穩(wěn)定,但是能滿(mǎn)足的功能比較少。需要結(jié)合其它來(lái)使用。

3. 自定義模板

有很多算法不是簡(jiǎn)單的sql就能搞定的,而且很多存儲(chǔ)系統(tǒng)也不是所有都支持sql。比如es這種。因此就需要一些定制化的算法來(lái)實(shí)現(xiàn)。

這方面的主要工作量應(yīng)該是在執(zhí)行引擎上,但是在規(guī)則引擎應(yīng)該有設(shè)計(jì)到。

二、執(zhí)行引擎

這塊應(yīng)該是比較重要的。 實(shí)現(xiàn)起來(lái)可以很簡(jiǎn)單,也可以很復(fù)雜。下面大概聊一下。

1. Sql執(zhí)行

很多規(guī)則都可以通過(guò)sql來(lái)執(zhí)行的,這點(diǎn)在規(guī)則引擎里面提到了。

其實(shí)我很推薦,剛開(kāi)始的比較粗糙的監(jiān)控都可以這樣來(lái)做。 我們提前配置好大部分的sql模板,然后需要監(jiān)控哪張表了就在這張表配置一下就行。

具體的執(zhí)行引擎的話(huà)可以考慮presto或者spark sql,特別大的任務(wù)可以考慮hive。

優(yōu)點(diǎn):

  1. 簡(jiǎn)單,方便實(shí)現(xiàn)

  2. 能滿(mǎn)足大部分的需求

缺點(diǎn):

  1. 靈活度不夠,比如es,對(duì)sql支持太差

  2. 速度慢:很多sql執(zhí)行起來(lái)會(huì)比較慢,特別是使用hive引擎的時(shí)候,會(huì)巨慢。

  3. 不穩(wěn)定:一些監(jiān)控會(huì)不太穩(wěn)定,比如重復(fù)數(shù)據(jù)監(jiān)控,對(duì)一些大的表來(lái)講,用presto這種,是很難出結(jié)果的,經(jīng)常會(huì)掛掉,但是換成hive的話(huà)又會(huì)很慢。

那么如何解決?

嗯,解決的話(huà),我只有下面幾個(gè)思路:

  1. 合理的任務(wù)調(diào)度,一般集群都是能容納很多任務(wù)的,合適地調(diào)度監(jiān)控任務(wù)比較重要。

  2. 合理地替換執(zhí)行引擎,這個(gè)下一節(jié)會(huì)提供一種方案。

  3. 合理的任務(wù)依賴(lài),比如說(shuō)是重復(fù)數(shù)據(jù)監(jiān)控,這點(diǎn)必然會(huì)依賴(lài)于數(shù)據(jù)是否到達(dá),如果數(shù)據(jù)沒(méi)達(dá)到就沒(méi)必要執(zhí)行重復(fù)數(shù)據(jù)監(jiān)控的程序。

2. 直接獲取數(shù)據(jù)量

前面提到了Sql執(zhí)行的一個(gè)執(zhí)行效率問(wèn)題,我們這節(jié)提供一個(gè)優(yōu)化的方法。因?yàn)镠ive目前來(lái)講是十分重要的一種引擎了,所以單說(shuō)Hive。

Hive是有元數(shù)據(jù)管理的,它的元數(shù)據(jù)庫(kù)中是記錄Hive的所有表的記錄數(shù)的,這些記錄數(shù)可以直接用作數(shù)據(jù)量相關(guān)的監(jiān)控,比如數(shù)據(jù)掉零、數(shù)據(jù)量環(huán)比同比、數(shù)據(jù)量趨勢(shì)等。

3. 算法執(zhí)行引擎

很多算法可以通過(guò)自定義地方式實(shí)現(xiàn),這一點(diǎn)實(shí)現(xiàn)起來(lái)就會(huì)比較復(fù)雜一些。

因?yàn)槎ㄖ苹容^強(qiáng),在設(shè)計(jì)這一塊的話(huà)需要一個(gè)比較靈活的架構(gòu),這里不再展開(kāi)來(lái)講,因?yàn)樵诔R?jiàn)的數(shù)據(jù)領(lǐng)域里面,前兩點(diǎn)已經(jīng)能滿(mǎn)足很多需求了。

4. 多數(shù)據(jù)源

多數(shù)據(jù)源這一塊,在規(guī)則引擎里面需要加一些區(qū)分,因?yàn)檫@畢竟和元數(shù)據(jù)系統(tǒng)關(guān)聯(lián),區(qū)分還是比較簡(jiǎn)單。

在執(zhí)行的時(shí)候,可能要稍微分開(kāi)來(lái)實(shí)現(xiàn)。不過(guò)相對(duì)來(lái)講不是很復(fù)雜。

0xFF 總結(jié)

本篇主要分享了一些和數(shù)據(jù)質(zhì)量監(jiān)控相關(guān)的內(nèi)容,有一些泛泛而談的感覺(jué),但是理清思路后很多實(shí)現(xiàn)起來(lái)也是很簡(jiǎn)單的, 想做個(gè)簡(jiǎn)單能用的出來(lái),用python半天就能搞定。

這里主要是思路,具體的實(shí)現(xiàn)就不再寫(xiě)了。畢竟根據(jù)業(yè)務(wù)需求,實(shí)現(xiàn)的程度也會(huì)不一樣。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多