一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)監(jiān)控的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種對(duì)數(shù)據(jù)庫(kù)的業(yè)務(wù)數(shù)據(jù)源處理過(guò)程中出現(xiàn)異常進(jìn)行監(jiān)控的方法。
【背景技術(shù)】
[0002]—個(gè)數(shù)據(jù)倉(cāng)庫(kù)對(duì)應(yīng)著多個(gè)業(yè)務(wù)數(shù)據(jù)源。隨著業(yè)務(wù)不斷深化,需要分析的數(shù)據(jù)也不斷增多,相應(yīng)的,數(shù)據(jù)倉(cāng)庫(kù)任務(wù)繁多。每天有大量的新增數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中,如果每日任務(wù)處理過(guò)程中出現(xiàn)異常,會(huì)影響數(shù)據(jù)的質(zhì)量,并且可能對(duì)接下來(lái)往后時(shí)間內(nèi)的數(shù)據(jù)產(chǎn)生影響。因此及時(shí)發(fā)現(xiàn)數(shù)據(jù)在處理過(guò)程中的異常,進(jìn)行處理。對(duì)數(shù)據(jù)倉(cāng)庫(kù)的是非常重要的。CN103605722A 一種數(shù)據(jù)庫(kù)監(jiān)控方法,根據(jù)各數(shù)據(jù)庫(kù)的信息,獲取與各數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的監(jiān)控配置文件;根據(jù)獲取的與各數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的監(jiān)控配置文件,利用預(yù)先編寫好的與各數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的監(jiān)控程序,對(duì)各自對(duì)應(yīng)的數(shù)據(jù)庫(kù)進(jìn)行監(jiān)控。
[0003]CN103746837A數(shù)據(jù)庫(kù)監(jiān)控系統(tǒng),包括數(shù)據(jù)庫(kù)監(jiān)控裝置和監(jiān)控集群,其中,所述數(shù)據(jù)庫(kù)監(jiān)控裝置,用于接收來(lái)自監(jiān)控集群的觸發(fā)指令;發(fā)送第一指令至負(fù)載均衡裝置,所述第一指令用于指示所述負(fù)載均衡裝置檢測(cè)集群是否可用、所述集群是否可用是指所述集群中的每個(gè)節(jié)點(diǎn)的軟件主體是否存在;接收來(lái)自所述負(fù)載均衡裝置的第一響應(yīng)消息;強(qiáng)調(diào)對(duì)負(fù)載均衡監(jiān)控。
[0004]但現(xiàn)有技術(shù)未有對(duì)業(yè)務(wù)數(shù)據(jù)源改變而將要產(chǎn)出異常的預(yù)警以及對(duì)數(shù)據(jù)庫(kù)的全面的監(jiān)控,這對(duì)保障數(shù)據(jù)倉(cāng)庫(kù)的穩(wěn)定準(zhǔn)確是十分有效的。為達(dá)到對(duì)現(xiàn)有任務(wù)監(jiān)控,更加有效利用的預(yù)防數(shù)據(jù)缺失遺漏,同時(shí)監(jiān)控業(yè)務(wù)系統(tǒng)數(shù)據(jù)源變化的目的,現(xiàn)提出一種數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)監(jiān)控技術(shù),對(duì)數(shù)據(jù)倉(cāng)庫(kù)的每日處理的數(shù)據(jù)質(zhì)量進(jìn)行全方位的監(jiān)控。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提出了一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)監(jiān)控的方法,它通過(guò)執(zhí)行定時(shí)監(jiān)控任務(wù)及相關(guān)的一系列配置可實(shí)現(xiàn)對(duì)數(shù)據(jù)倉(cāng)庫(kù)每日更新的表的數(shù)據(jù)情況進(jìn)行監(jiān)控,還可以實(shí)現(xiàn)因業(yè)務(wù)數(shù)據(jù)源改變而將要產(chǎn)出異常的預(yù)警,能夠及時(shí)發(fā)現(xiàn)在程序運(yùn)行中出現(xiàn)的各種問(wèn)題。對(duì)保障數(shù)據(jù)倉(cāng)庫(kù)的穩(wěn)定準(zhǔn)確的運(yùn)行可以起到相當(dāng)重要的作用。
[0006]本發(fā)明的技術(shù)方案是,一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)監(jiān)控的方法,包括:
[0007]I)確定需要進(jìn)行監(jiān)控的數(shù)據(jù)倉(cāng)庫(kù)的監(jiān)控表及內(nèi)容,進(jìn)行參數(shù)配置,監(jiān)控表參數(shù)配置的內(nèi)容分三種;
[0008]1-1)數(shù)據(jù)量監(jiān)控配置
[0009]數(shù)據(jù)量監(jiān)控主要監(jiān)控的內(nèi)容是監(jiān)控表列出和當(dāng)日新增的數(shù)據(jù)量是否異常,判斷異常的標(biāo)準(zhǔn)首先是數(shù)據(jù)量是否為0,如果為O那么就是異常;其次是與昨日及上周同日的歷史數(shù)據(jù)進(jìn)行對(duì)比,如果與歷史數(shù)據(jù)比較相差超過(guò)一定比例或閾值,比如50%,則視為異常;
[0010]需要監(jiān)控配置的內(nèi)容包括數(shù)據(jù)(項(xiàng)目)名稱、表名、時(shí)間字段、時(shí)間字段類型、統(tǒng)計(jì)項(xiàng)目、統(tǒng)計(jì)條件、監(jiān)控時(shí)間等內(nèi)容;監(jiān)控程序會(huì)根據(jù)需要監(jiān)控配置的內(nèi)容拼接成相應(yīng)的SQL語(yǔ)句,待調(diào)度程序來(lái)執(zhí)行;
[0011]1-2)數(shù)據(jù)庫(kù)的數(shù)據(jù)源表結(jié)構(gòu)監(jiān)控配置
[0012]數(shù)據(jù)源表結(jié)構(gòu)主要監(jiān)控的內(nèi)容是監(jiān)控?cái)?shù)據(jù)源的表結(jié)構(gòu)是否發(fā)生變化,包括新增字段、刪除字段、修改字段類型、修改字段長(zhǎng)度等;這些變化有些會(huì)導(dǎo)致數(shù)據(jù)同步程序報(bào)錯(cuò),有些可能代表業(yè)務(wù)發(fā)生改變都是需要數(shù)據(jù)分析人員關(guān)注的。
[0013]需要監(jiān)控配置的內(nèi)容主要包括數(shù)據(jù)庫(kù)的類型(比如Oracle或Mysql)、數(shù)據(jù)庫(kù)連接方式、數(shù)據(jù)庫(kù)表名、對(duì)應(yīng)數(shù)據(jù)庫(kù)名等內(nèi)容;監(jiān)控程序會(huì)根據(jù)這些內(nèi)容到相應(yīng)數(shù)據(jù)庫(kù)中查看表結(jié)構(gòu)信息;并與之前保存的相應(yīng)業(yè)務(wù)數(shù)據(jù)庫(kù)信息進(jìn)行比較,如果發(fā)現(xiàn)有變動(dòng),系統(tǒng)發(fā)告警到指定人員;
[0014]1-3)數(shù)據(jù)源的表字段取值監(jiān)控配置
[0015]數(shù)據(jù)源表字段取值監(jiān)控主要監(jiān)控的內(nèi)容是監(jiān)控?cái)?shù)據(jù)源表重點(diǎn)字段的取值,通常是維度表的取值,這些取值出現(xiàn)變化,代表了業(yè)務(wù)出現(xiàn)了變化;也是需要分析人員進(jìn)行關(guān)注的。
[0016]需要配置的內(nèi)容主要包括數(shù)據(jù)庫(kù)表名、字段名稱、數(shù)據(jù)類型等內(nèi)容;監(jiān)控程序會(huì)根據(jù)這些內(nèi)容到數(shù)據(jù)倉(cāng)庫(kù)中查看相關(guān)的字段取值;并與之前保存的相應(yīng)的字段取值信息進(jìn)行比較,如果發(fā)現(xiàn)有變動(dòng),系統(tǒng)發(fā)告警到指定人員。
[0017]2)部署服務(wù)器任務(wù),定時(shí)執(zhí)行監(jiān)控程序。
[0018]因?yàn)閿?shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)每天都在更新,相應(yīng)的監(jiān)控程序也要在每天執(zhí)行。要根據(jù)每日數(shù)據(jù)倉(cāng)庫(kù)的運(yùn)行時(shí)間來(lái)大致確定每日監(jiān)控的執(zhí)行時(shí)間。
[0019]而且因?yàn)槊總€(gè)數(shù)據(jù)業(yè)務(wù)更新時(shí)間有不一致之處,同時(shí)監(jiān)控的及時(shí)性需要越及時(shí)越好,這樣所有監(jiān)控程序也不可能統(tǒng)一在一個(gè)時(shí)間執(zhí)行。在實(shí)現(xiàn)時(shí)采取了定時(shí)監(jiān)控,如果監(jiān)控任務(wù)沒(méi)有全部完成,監(jiān)控程序會(huì)休眠一段時(shí)間繼續(xù)執(zhí)行的方式。確保了監(jiān)控及時(shí)性和完整性。
[0020]3)將監(jiān)控結(jié)果形成報(bào)告發(fā)送給指定人員;
[0021]監(jiān)控執(zhí)行最后,需要將檢查出的異常情況告知到相關(guān)責(zé)任人,告警方式包括報(bào)表、郵件、短信等,根據(jù)告警的級(jí)別來(lái)選擇告警方式。嚴(yán)重告警必須通過(guò)短信方式及時(shí)通知到維護(hù)人員,普通級(jí)別的告警不用立刻解決的采用郵件方式告警。
[0022]另外系統(tǒng)監(jiān)控配置中還包括告警人員配置,配置的內(nèi)容包括人員姓名、手機(jī)、郵箱等內(nèi)容。將不同的表按照項(xiàng)目進(jìn)行劃分,每個(gè)項(xiàng)目配置對(duì)應(yīng)的負(fù)責(zé)人員。系統(tǒng)運(yùn)行中發(fā)現(xiàn)的異常會(huì)按照對(duì)應(yīng)的配置發(fā)給相關(guān)人員。
[0023]同時(shí)還有一套相應(yīng)的報(bào)表系統(tǒng),方便監(jiān)控人員查看歷史報(bào)警記錄。
[0024]本發(fā)明的有益效果:
[0025]1、能夠清楚掌握到每日數(shù)據(jù)倉(cāng)庫(kù)日常調(diào)度的執(zhí)行情況是否正常;
[0026]2、在數(shù)據(jù)處理過(guò)程中的異常情況,通過(guò)系統(tǒng)預(yù)警和人工處理相結(jié)合的方法處理,保證數(shù)據(jù)處理過(guò)程中的可靠穩(wěn)定;
[0027]3、全面的系統(tǒng)監(jiān)控,提高了系統(tǒng)的可用性,也提高了系統(tǒng)維護(hù)的效率;
[0028]4、對(duì)數(shù)據(jù)庫(kù)全面監(jiān)控,對(duì)多個(gè)監(jiān)控需求能夠通過(guò)平臺(tái)化統(tǒng)一完成,避免重復(fù)開發(fā),降低成本。
【附圖說(shuō)明】
[0029]圖1本實(shí)施例的一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)監(jiān)控的方法處理流程圖。
【具體實(shí)施方式】
[0030]如圖1,本實(shí)施例一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)監(jiān)控的方法處理流程,包括:
[0031]步驟11、確定待監(jiān)測(cè)的數(shù)據(jù)倉(cāng)庫(kù)表、數(shù)據(jù)源表及數(shù)據(jù)表字段等信息。
[0032]其中,配置數(shù)據(jù)量監(jiān)控表的基本原則是,要數(shù)據(jù)倉(cāng)庫(kù)監(jiān)控表的表都是比較重要的表。應(yīng)該能夠覆蓋數(shù)據(jù)倉(cāng)庫(kù)分析的80%以上的指標(biāo)。同時(shí)監(jiān)控表的每日數(shù)據(jù)量不要過(guò)大,不要太過(guò)明細(xì),而應(yīng)該選擇監(jiān)控統(tǒng)計(jì)過(guò)后的表。比如網(wǎng)站詳細(xì)訪問(wèn)日志表,每天會(huì)有幾百萬(wàn)條數(shù)據(jù),而通過(guò)這個(gè)數(shù)據(jù)倉(cāng)庫(kù)監(jiān)控的訪問(wèn)日志表經(jīng)統(tǒng)計(jì)后的表進(jìn)行監(jiān)控,統(tǒng)計(jì)后的派生表可能只有幾百條,這樣監(jiān)控這個(gè)派生表能夠保證監(jiān)控程序的效率,而且也可以滿足監(jiān)控的需求。
[0033]在配置數(shù)據(jù)源監(jiān)控時(shí),要將同步數(shù)據(jù)源的每一個(gè)表都進(jìn)行配置,確保將因數(shù)據(jù)源的變動(dòng)產(chǎn)生的影響控制到最小。
[0034]在配置數(shù)據(jù)表字段時(shí),要根據(jù)業(yè)務(wù)來(lái)確定哪些字段需要監(jiān)控。一般需要監(jiān)控的是主要業(yè)務(wù)表的維度字段。比如注冊(cè)的會(huì)員類型、會(huì)員狀態(tài)這些。這些改動(dòng)都可能代表著業(yè)務(wù)發(fā)現(xiàn)調(diào)整。極有可能對(duì)數(shù)據(jù)統(tǒng)計(jì)會(huì)產(chǎn)生一定的影響。
[0035]步驟12、分析待監(jiān)控表的信息,按照配置表的要求將其保存在監(jiān)控配置表中。因?yàn)橄到y(tǒng)包括三個(gè)監(jiān)控功能,因此需要配置三個(gè)配置表。詳細(xì)的配置內(nèi)容在下面的步驟中介紹。
[0036]步驟13、根據(jù)配置信息,監(jiān)控表數(shù)據(jù)量及趨勢(shì)是否正常
[0037]例如要監(jiān)控注冊(cè)會(huì)員表的每日新增數(shù)據(jù)量,需要配置的信息如下
[0038]I)項(xiàng)目名稱:數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)表(數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)量的監(jiān)控)
[0039]2)表名:USERS
[0040]3)時(shí)間字段:TRUNC (ADDJIME)
[0041]4)時(shí)間字段類型