本篇內(nèi)容介紹了“大數(shù)據(jù)開(kāi)發(fā)中表數(shù)據(jù)波動(dòng)和碼值分布波動(dòng)監(jiān)控方法是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來(lái),是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元三江侗做網(wǎng)站,已為上家服務(wù),為三江侗各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):13518219792
設(shè)計(jì)摘要:
任務(wù)執(zhí)行、監(jiān)控和報(bào)警從設(shè)計(jì)上是可以完全分開(kāi)的,分開(kāi)可以讓任務(wù)執(zhí)行盡可能只做任務(wù)執(zhí)行的事情,監(jiān)控可以根據(jù)多種監(jiān)控規(guī)則來(lái)進(jìn)行數(shù)據(jù)統(tǒng)計(jì),數(shù)據(jù)分布,而報(bào)警則專(zhuān)注于如何根據(jù)監(jiān)控的結(jié)果進(jìn)行自定義靈活地報(bào)警。其中在設(shè)計(jì)上可以以監(jiān)控為主體,任務(wù)執(zhí)行和報(bào)警可以依據(jù)需求來(lái)定制,從而更好滿(mǎn)足各方需求。 監(jiān)控規(guī)則的設(shè)計(jì),暫時(shí)從以下幾個(gè)方面入手,數(shù)據(jù)分區(qū)的生成、數(shù)據(jù)分區(qū)的數(shù)據(jù)量、數(shù)據(jù)分區(qū)的數(shù)據(jù)量波動(dòng)、表數(shù)據(jù)字段的碼值分布波動(dòng)。監(jiān)控的主要職責(zé)是跑數(shù),跑出報(bào)警需要的數(shù)據(jù),而報(bào)警,可以根據(jù)監(jiān)控的輸出數(shù)據(jù)以及監(jiān)控配置進(jìn)行生成done文件或者undone 和 報(bào)警。
done目錄和原表目錄類(lèi)似 表/版本/分區(qū)或日期/done/a.done or b.done or c.done (根據(jù)配置的根目錄 + 表路徑的后半部分來(lái)生成)
監(jiān)控什么?要達(dá)到什么目的?
監(jiān)控主要有兩個(gè)目的,一個(gè)是報(bào)警,另外一個(gè)是攔截,攔截為了發(fā)生問(wèn)題時(shí)不繼續(xù)往下走,所以一般配置有攔截必有報(bào)警,有報(bào)警不一定有攔截,比如延時(shí)報(bào)警。
一個(gè)調(diào)度平臺(tái)的調(diào)度時(shí)間,以天為單位,最后體現(xiàn)在跑批日志的分區(qū)字段上,可以支持回溯,其他監(jiān)控需要的配置信息都在表數(shù)據(jù)監(jiān)控的主表里面,一些特別的配置信息,會(huì)用到附屬表,比如分布子表。
1.2.1分區(qū)有沒(méi)有生成 show partitions | grep xx
1.2.2分區(qū)數(shù)量大于某個(gè)閾值,默認(rèn)0:select count(*) from db_table where {db_table_date_column} = f($input_date) and version=20201205
1.2.3 分區(qū)數(shù)量波動(dòng):(分區(qū)數(shù)量的count - 前幾天的count平均值) / 前幾天的count平均值
1.2.4 數(shù)據(jù)碼值分布波動(dòng)監(jiān)控
如何衡量數(shù)據(jù)分布波動(dòng)
假設(shè)某指標(biāo)碼值和數(shù)據(jù)分布如下:
2020-12-05 | 2020-12-06 | 2020-12-07 |
---|---|---|
a 10% | a 9% | a 1% |
b 50% | b 51% | b 90% |
c 40% | c 40% | c 9% |
可以看到在12.07日,波動(dòng)較大,需要做預(yù)警,問(wèn)如何衡量這個(gè)波動(dòng),以及設(shè)置預(yù)警
把a(bǔ),b,c看成一個(gè)向量,求比如最近一周(不包括當(dāng)天)的向量平均值
$$ a1,b1,c1 $$
,然后計(jì)算當(dāng)前向量
$$ a0,b0,b1 - a1,b1,c1 / (a1,b1,c1) = a3,b3,c3 $$
數(shù)據(jù)分布波動(dòng)計(jì)算模型
key 當(dāng)天向量
$$ a=(x,y,z...) $$
$$ b=(x1,y1,z1....) $$
那么波動(dòng)向量
$$ c=(a-b)/a $$
,最終結(jié)果
$$ c=(x2,y2,z2...) $$
報(bào)警任務(wù)的每次啟動(dòng)可以依賴(lài)當(dāng)天分區(qū)數(shù)據(jù)監(jiān)控的日志跑批分區(qū),即至少有跑批日志,才開(kāi)始進(jìn)行報(bào)警任務(wù)。報(bào)警的輸入是監(jiān)控主表和監(jiān)控跑批表,輸出done,undone && 報(bào)警,于報(bào)警日志中。
使用平臺(tái)例行任務(wù)來(lái)調(diào)度監(jiān)控任務(wù),使用MySQL開(kāi)發(fā)環(huán)境來(lái)讀配置,使用gp來(lái)存儲(chǔ)結(jié)果數(shù)據(jù),使用平臺(tái)同步功能將同結(jié)構(gòu)的hive結(jié)果表同步到gp來(lái)做報(bào)表展示,整個(gè)過(guò)程支持回溯。
表數(shù)據(jù)監(jiān)控配置表:
-- 總表 create table table_monitor_conf ( db_table string, table_charge_people string comment '表負(fù)責(zé)人', done_path string comment 'done 文件輸出位置前綴', where_condition string comment 'where 子句內(nèi)容 eg:version=20201201 and dt=#YYYYMMdd#', if_done string comment '總開(kāi)關(guān):是否生成done文件' if_check_partition string comment '規(guī)則1:是否監(jiān)控產(chǎn)出分區(qū)', if_check_partition_count string comment '規(guī)則2:是否監(jiān)控產(chǎn)出分區(qū)數(shù)據(jù)量', if_check_partition_count_fluctuates string comment '規(guī)則3:是否監(jiān)控產(chǎn)出分區(qū)數(shù)據(jù)量波動(dòng)', if_check_distribute string comment '規(guī)則4:是否監(jiān)控產(chǎn)出表數(shù)據(jù)分布波動(dòng)' ) -- 分布子表if_check_distribute 為1時(shí)候使用 create table table_monitor_distribute_conf ( db_table string comment '表名', with_code_value_keys string comment '有碼值的keys:k1,k2,k3', no_code_value_keys string comment '無(wú)碼值的keys:k1,k2,k3' )
其中當(dāng)table_monitor_conf 的 db_table = 'default.default' 時(shí)候表示是所有配置記錄的默認(rèn)值。
表數(shù)據(jù)量監(jiān)控跑批記錄:
create table table_monitor_records ( run_db_table string comment '跑批表,來(lái)源table_monitor_conf 的db_table', check_date_time string comment '任務(wù)實(shí)際跑批時(shí)間-程序生成', run_check_partition string comment '規(guī)則1產(chǎn)出:根據(jù)where_condition 是否產(chǎn)出分區(qū)' run_check_partition_count bigint comment '規(guī)則2產(chǎn)出:根據(jù)where_condition 跑出來(lái)的表數(shù)量', run_check_partition_count_fluctuates string comment '規(guī)則3產(chǎn)出:表數(shù)據(jù)量相對(duì)一周前平均值的數(shù)據(jù)波動(dòng)', run_check_distribute_json comment '規(guī)則4產(chǎn)出:數(shù)據(jù)分布的大json', run_check_distribute_fluctuates comment '規(guī)則4產(chǎn)出:數(shù)據(jù)分布的大json相對(duì)一周平均值的波動(dòng)大json' ) partition by (dt string comment '數(shù)據(jù)跑批分區(qū),平臺(tái)傳入') comment '監(jiān)控跑批記錄表'
報(bào)警配置表
create table table_monitor_notify_conf( db_table string comment '庫(kù)表', notify_enable string comment '是否開(kāi)啟此報(bào)警', normal_produce_datetime string comment '表數(shù)據(jù)正常產(chǎn)生時(shí)間', check_count_threshold bigint comment '監(jiān)控產(chǎn)出分區(qū)數(shù)據(jù)量的閾值', check_count_fluctuates_threshold double comment '監(jiān)控產(chǎn)出分區(qū)數(shù)據(jù)量波動(dòng)的閾值' , check_distribute__json_threshold double comment '表數(shù)據(jù)分布閾值' )
報(bào)警日志表
create table table_monitor_notify_records( db_table string comment '哪個(gè)表有問(wèn)題', view_url string comment '頁(yè)面展示地址', table_charge_people string comment '表負(fù)責(zé)人', trouble_description string comment '有什么問(wèn)題', check_date_time string comment '報(bào)警時(shí)間-程序生成', ) patition by (dt string comment '數(shù)據(jù)跑批分區(qū),平臺(tái)傳入')
寫(xiě)出數(shù)據(jù),done 文件 ,undone文件 每個(gè)表,每個(gè)分區(qū)只有一個(gè)
數(shù)據(jù)分布,在分布波動(dòng)的第一次跑數(shù)據(jù)時(shí)候,就會(huì)寫(xiě)一份
總共有幾個(gè)任務(wù):監(jiān)控任務(wù),報(bào)警任務(wù)各1個(gè),每天1點(diǎn)->晚上8點(diǎn),10分鐘一次
其他:
hi_email_message_phone string comment '報(bào)警方式,保留字段' zhiban_people string comment '值班負(fù)責(zé)人,保留字段',
TODO:
[ ] 增加值班人,報(bào)警方式升級(jí)、
[ ] 根據(jù)依賴(lài)來(lái)報(bào)警
[ ] 通過(guò)群內(nèi)機(jī)器人,來(lái)操作報(bào)警日志表,達(dá)到報(bào)警暫停一段時(shí)間的作用 大數(shù)據(jù)開(kāi)發(fā)。
“大數(shù)據(jù)開(kāi)發(fā)中表數(shù)據(jù)波動(dòng)和碼值分布波動(dòng)監(jiān)控方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
網(wǎng)頁(yè)題目:大數(shù)據(jù)開(kāi)發(fā)中表數(shù)據(jù)波動(dòng)和碼值分布波動(dòng)監(jiān)控方法是什么
當(dāng)前網(wǎng)址:http://sd-ha.com/article8/jiijip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、Google、關(guān)鍵詞優(yōu)化、標(biāo)簽優(yōu)化、搜索引擎優(yōu)化、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)