可配置的數據丟失檢查及監(jiān)控方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種數據丟失檢查及監(jiān)控方法及系統(tǒng),通過在配置表中定義要掃描的目標表、目標列、入庫時間列、掃描起止時間等信息,使用動態(tài)SQL技術,對目標表的目標列中的數據進行掃描,顯示出丟失的數據及參考信息??梢约皶r的發(fā)現數據的丟失,并可以詳細的顯示出丟失的數據的源頭文件以及相關人員,保證了數據的完整性和及時性,提高了數據質量。另外,在調度數據中心入庫過程發(fā)生變化時,只需將新增、修改、刪除的入庫過程在配置表中進行修改,就能自動實現對修改后的目標表的目標列進行丟點掃描,而無需編寫任何程序,從而降低了運維難度和成本。
【專利說明】
可配置的數據丟失檢查及監(jiān)控方法及系統(tǒng)
技術領域
[0001] 本發(fā)明涉及數據質量處理領域,尤其是一種可配置的數據丟失檢查及監(jiān)控方法及 系統(tǒng)。
【背景技術】
[0002] 數據質量一直是數據中心類項目非常重要的一個研究課題,數據質量的好壞對數 據應用能否成功具有重要的影響。對于數據質量,目前評估標準有四個方面:完整性、一致 性、準確性和及時性。各行各業(yè)對如何提高數據質量都進行了深入的研究,電力行業(yè)也對提 高數據質量的管理、技術等手段進行了一些探索研究,國家電網還開發(fā)了一些軟件系統(tǒng)以 提高數據質量。當前,數據質量的研究重點主要集中在提高數據的一致性、準確性方面,雖 然也有文獻對入庫及時性、丟點檢查進行了研究,但這些研究課題還不能解決調度數據中 心遇到的多數據源、多時間粒度、文件變動頻繁等技術難題。同時,調度數據中心對丟點信 息要求比較全,不但要提供丟點目標表、源頭文件名,還要求提供該丟點文件以前的入庫情 況等參考信息,這些要求在現有研究資料中均難以發(fā)現。
[0003] 調度數據中心是調度部門生產數據的一個大的集合,接入包括D5000SCADA、0MS、 電能計劃、氣象等生產管理系統(tǒng)數據,這些數據由源頭系統(tǒng)以EFILE文件形式提供,文件由 程序自動拋出,拋出時間斷面有15分鐘、天、月等,文件格式和數據內容均經過嚴格測試,數 據的一致性和準確性都較為可靠,存在的問題是文件拋出不及時或拋出的文件沒有及時接 入調度數據中心的數據庫,這就需要在完整性和及時性兩方面對數據質量加強管理。
【發(fā)明內容】
[0004] 本發(fā)明的目的在于提供一種可配置的數據丟失檢查及監(jiān)控方法及系統(tǒng),以解決數 據的完整性和及時性的自動監(jiān)測問題。
[0005] 為了達到上述目的,本發(fā)明提供了一種可配置的數據丟失檢查及監(jiān)控方法,包括:
[0006] 獲取調度數據中心的數據入庫過程數據,并根據數據入庫過程數據獲得一待掃描 的配置表;對所述配置表所定義的目標表的目標列的數據進行掃描,顯示出丟失的數據及 參考信息。
[0007] 優(yōu)選的,在上述的可配置的數據丟失檢查及監(jiān)控方法中,所述配置表中的數據包 括:配置表自定義的標準ID,目標表,所述目標表的目標列的名稱,所述目標表最后一次被 修改的時間,所述目標表第一次被錄入的時間,以及需要掃描的開始時間和結束時間。
[0008] 優(yōu)選的,在上述的可配置的數據丟失檢查及監(jiān)控方法中,對所述配置表中所定義 的目標表的目標列中的數據進行掃描的步驟包括:
[0009] 獲取需要掃描的開始時間至結束時間之間的基準時間;
[0010] 對所述目標表在所述開始時間至結束時間之間的數據進行掃描,記錄所述目標表 中數據丟失的時間;
[0011] 對于丟失的數據,獲取該丟失的數據在丟失時間的前三天、上周以及上月的入庫 時間;
[0012] 重復上述步驟,直至所述配置表中的所有目標表均被掃描。
[0013] 優(yōu)選的,在上述的可配置的數據丟失檢查及監(jiān)控方法中,需要掃描的開始時間至 結束時間之間的基準時間包括每一天的一固定時刻、每一天的日期以及每一月第一天的日 期。
[0014] 優(yōu)選的,在上述的可配置的數據丟失檢查及監(jiān)控方法中,所述配置表中的數據還 包括:目標表名稱,與所述目標表名稱對應的文件名,數據錄入時間,所述目標表的源頭文 件的存儲位置。
[0015]優(yōu)選的,在上述的可配置的數據丟失檢查及監(jiān)控方法中,所述配置表中的數據還 包括:配置表自定義的手工ID,用戶名稱,接入名稱,數據源聯系人以及數據接入負責人。
[0016] 本發(fā)明還提供了一種可配置的數據丟失檢查及監(jiān)控系統(tǒng),包括:數據獲取單元,數 據處理單元以及顯示單元;其中,
[0017] 所述數據獲取單元用于獲取調度數據中心的數據入庫過程數據;
[0018] 所述數據處理單元根據獲取的數據入庫過程數據獲得一待掃描的配置表,并對所 述待掃描的配置表所定義的目標表的目標列的數據進行掃描,當有數據丟失時,所述顯示 單元顯示出丟失的數據及參考信息。
[0019]優(yōu)選的,在上述的可配置的數據丟失檢查及監(jiān)控系統(tǒng)中,所述待掃描配置表中的 數據包括:配置表自定義的手工ID,配置表自定義的標準ID,目標表,所述目標表的目標列 的名稱,所述目標表最后一次被修改的時間,所述目標表第一次被錄入的時間,以及需要掃 描的開始時間和結束時間。
[0020] 優(yōu)選的,在上述的可配置的數據丟失檢查及監(jiān)控系統(tǒng)中,所述配置表中的數據還 包括:目標表名稱,與所述目標表對應的文件名,數據錄入時間,所述目標表的源頭文件的 存儲位置。
[0021] 優(yōu)選的,在上述的可配置的數據丟失檢查及監(jiān)控系統(tǒng)中,所述配置表中的數據還 包括:配置表自定義的手工ID,目標表所使用的數據庫的用戶名稱,源頭數據接入到目標表 的接入名稱,數據源聯系人以及數據接入負責人。
[0022] 在本發(fā)明提供的可配置的數據丟失檢查及監(jiān)控方法及系統(tǒng)中,根據獲取的調度數 據中心的數據入庫過程獲得一待掃描的配置表,通過對配置表中所定義的目標表的目標列 的數據進行掃描,顯示出丟失的數據及參考信息??梢约皶r的發(fā)現數據的丟失,并可以詳細 的顯示出丟失的數據的源頭文件以及相關人員,保證了數據的完整性和及時性,提高了數 據質量,降低了運維難度和成本。
【附圖說明】
[0023] 圖1為本發(fā)明實施例中可配置的數據丟失檢查及監(jiān)控方法的流程圖;
[0024]圖2為圖1中步驟S2的流程圖;
[0025] 圖3為丟失的數據情況的展示報表;
[0026] 圖4為本發(fā)明實施例中可配置的數據丟失檢查及監(jiān)控系統(tǒng)的示意圖。
【具體實施方式】
[0027] 下面將結合示意圖對本發(fā)明的【具體實施方式】進行更詳細的描述。根據下列描述和 權利要求書,本發(fā)明的優(yōu)點和特征將更清楚。需說明的是,附圖均采用非常簡化的形式且均 使用非精準的比例,僅用以方便、明晰地輔助說明本發(fā)明實施例的目的。
[0028] 在本發(fā)明實施例中,提供了一種可配置的數據丟失檢查及監(jiān)控方法,如圖1所示, 包括以下步驟:獲取調度數據中心的數據入庫過程數據,并根據數據入庫過程數據獲得一 待掃描的配置表;對配置表所定義的目標表的目標列的數據進行掃描,顯示出丟失的數據 及參考信息。
[0029] 本發(fā)明的掃描結果不但能查詢到開始時間至結束時間之間丟失的數據,而且還提 供這些丟失數據的參考信息。這里的參考信息主要指有參考意義的歷史入庫信息,對于15 分鐘數據、日數據的數據丟失檢查,參考信息包括丟失數據在丟失時間的前三天、上周及上 月的入庫時間,如圖3所示;對于月數據的數據丟失檢查,參考信息包括丟失數據在丟失時 間的前三個月、半年前及一年前的入庫時間。這些參考信息對于數據運維人員非常重要,數 據運維人員在發(fā)現數據丟失時,通過觀察參考信息,對比過去的入庫時間,可判斷出當前的 丟失數據屬于時間未到缺失還是真正的文件丟失,如圖3所示,掃描時間是所查詢數據第二 天的11:06,而前三天、上周、上月最早的入庫時間是第二天的14:29,由此可判斷該數據丟 失屬于時間未到的缺失。對于數據未到的缺失,只需耐心等待即可;對于真正的文件丟失, 數據運維人員通過本發(fā)明提供的數據入庫過程信息去查找數據丟失原因,并根據數據丟失 原因聯系相關人員進行處理。
[0030] 具體的,如圖1所示,步驟S1:獲取調度數據中心的數據入庫過程數據,并根據數據 入庫過程數據獲得一待掃描的配置表。
[0031] 獲取調度數據中心的數據入庫過程的數據包括兩部分,其中,第一部分,手工檢查 調度數據中心所有ETL(Extract-Transform-Load,數據倉庫技術)過程,并將各入庫過程的 信息整理成一張表。第二部分是對已整理的入庫過程信息再加工,將入庫過程的信息分解 成便于數據庫處理的結構。
[0032]進一步的,所述第一部分對ETL的每個入庫過程進行詳細檢查,并將各個過程的源 頭文件、存儲位置、處理過程以及目標表記錄下來。手工檢查整理的入庫過程如下表1所示: [0033]
[0035] 表 1
[0036] 其中,手工ID:對于手工整理的每個入庫過程,均分配了一個ID號,這個ID號將在 后面的多個部分用到,主要作用是將丟失的數據與入庫過程關聯在一起。
[0037] 源頭信息:內容包括了源頭位置、源頭表和源頭系統(tǒng),給出了數據源頭的詳細信 息,便于結果表出問題時查看源頭文件是否有問題。
[0038] 中間過程:內容包括W0RKFL0W_F0LDER、W0RKFL0W_NAME,由于調度數據中心的數據 文件來源于多個源系統(tǒng),所以在開發(fā)ETL過程時,根據源頭系統(tǒng)、數據用途等將入庫過程分 散在不同目錄的不同WORKFLOW中,這部分信息將有助于數據出問題時查找到中間加工過 程;
[0039] 目標表:調度數據中心入庫的數據放在不同用戶的不同表中,給出數據存放在數 據庫中的某個用戶下的某張表中,有助于數據出問題時查找目標表。
[0040] 聯系人:調度數據中心由多個源系統(tǒng)的多個開發(fā)人員拋出文件,并由調度數據中 心不同的開發(fā)人員接入數據,在入庫過程中記錄每個源文件、目標表的聯系人,將有助了運 維人員在發(fā)現問題時及時聯系相關的開發(fā)人員。
[0041] 通過手工整理調度數據中心的入庫過程,將能獲得各入庫過程詳細的入庫信息, 從而方便運維人員在發(fā)現問題時,及時查找問題的故障點,并聯系相關人員快速進行處理。
[0042] 第二部分,在手工整理入庫過程時,重點放在從源文件接入數據到目標表的完整 過程,所以許多的中間加工過程也都放在同一條數據中,如表1的"WORKFLOW名稱"有2個,而 目標數據是放在2個用戶下的2張表中,其中的"l.WF_電廠日電量數據"屬于中間加工過程, 用戶"1. UIP_ETL"下的表"1. OMSJLDAY+DC"為中間表。但在進行數據掃描時,這種數據形式 很難實現程序化處理,因此需要對手工入庫過程進行分解,分解后的結果如表2所示:
[0044] 表 2
[0045] 從表2可以看出,經標準化分解后,原來的1行數據變成2行,將中間過程、最終過程 分解了出來,這樣每個源數據只有唯一的目標用戶、目標表,方便了程序化處理。從表2可以 看出,相對表1,多出4列數據,這4列數據功能如下:
[0046]標準ID:對手工數據分解后的新增的ID,這個ID號是標準化入庫過程唯一 ID,在數 據掃描、報表展示中作為主鍵ID。
[0047] 源頭文件標準名、文件后綴:這兩部分數據是從源頭文件名分解出來的,源頭文件 名是在手工統(tǒng)計時隨機選取的一個文件名,包括了時間信息,將其中不變的部分獨立出來, 就變成了標準名、文件后綴,這兩列用于報表展示時組織并顯示丟點文件名。
[0048] 數據時間精度:調度數據中心接入的數據主要有15分鐘、日、月3種時間類型,對每 種類型的數據進行數據掃描時,采用的比較基準時間都不相同,因此以數據時間精度進行 區(qū)別,以便于采用不同類型的數據掃描程序進行掃描。
[0049] 經過前面的入庫過程手工整理和標準化分解,可以獲得調度數據中心所有數據 ETL過程的詳細入庫過程信息,這部分信息對數據運維人員和數據掃描都非常重要。
[0050] 根據上述表1和表2中的數據得到待掃描配置表,其中的配置信息如表3所示:
[0051]
[0052] 表 3
[0053] 其中,針對不同的數據所述開始時間和結束時間表示的意思不同。例如,對于日數 據,開始時間中的-7表示相對于今天而言的7天前,結束時間中的-1表示相對于今天而言的 1天前,即昨天。對于月數據,開始時間-6則表示相對于今天而言的6個月前,結束時間-1表 示的1個月前,即上月。
[0054]步驟S2:對配置表所定義的目標表的目標列的數據進行掃描,顯示出丟失的數據 及參考信息。
[0055] 所述待掃描配置表中的數據如上表3中所示,包括標準ID,所述目標表中進行數據 掃描的目標列,所述目標表最后一次被修改的時間列,所述目標表第一次被錄入的時間列, 以及需要掃描的開始時間和結束時間。
[0056] 在本實施例中,使用Oracle數據庫的動態(tài)SQL(Structured Query Language,結構 化查詢語言)實現通用的數據丟失掃描功能。動態(tài)SQL是指在運行時刻才能構建所要執(zhí)行的 SQL語句,靜態(tài)SQL指的是在編譯時刻就比較明確固定的SQL語句,這里的動態(tài)SQL是相對于 靜態(tài)SQL構成語句的動態(tài)。靜態(tài)SQL-般查詢的表、列、表達式等是固定的,很容易實現固定 的表、固定列的的丟點掃描,但如果要提供一種通用的查詢方法,通過讀取配置信息進行不 同表的數據掃描卻難以實現。動態(tài)SQL由于在運行時刻才構建所要執(zhí)行的SQL,具有很大的 靈活性,可以實現從配置表中讀取信息,然后由動態(tài)SQL在運行時構建特定目標表的特定列 的丟點信息查詢,從而實現一種通用的丟點掃描方法。該方法在掃描不同表時只需修改配 置表就能實現,操作簡單,提高了工作效率。
[0057]圖2為本發(fā)明動態(tài)SQL實現丟點掃描的具體過程。
[0058] 對所述配置表所定義的目標表的目標列中的數據進行掃描的步驟包括如下的步 驟S21、S22和S23。
[0059] S21:獲取需要掃描的開始時間至結束時間之間的基準時間集合。
[0060] 所述基準時間分三種類型,其中15分鐘數據為每天凌晨1點、日數據為每一天的日 期、月數據為每一月第一天的日期。例如,假定今天為2016年4月10日,對于15分鐘掃描,開 始時間為-3,結束時間為-1,則基準時間集合為2016年4月7日的01:00、2016年4月8日的01: 00以及2016年4月9日的01:00;對于日掃描,開始時間為-3,結束時間為-1,則基準時間集合 為2016年4月7日、2016年4月8日以及2016年4月9日;對于月掃描,開始時間為-3,結束時間 為-1,則基準時間集合為2016年1月1日、2016年2月1日以及2016年3月1日。在本實施例的以 下內容中均以日數據的掃描為例。
[0061] 通過管道函數,得到需要掃描的開始時間至結束時間之間的基準時間集合,即開 始時間至結束時間之間的每一天的日期。
[0062] S22:對所述待掃描配置表所定義的目標表的目標列在所述開始時間至結束時間 之間的數據進行掃描,記錄數據丟失的時間。
[0063]組織動態(tài)SQL,實現對指定的標準ID所對應的目標表的目標列的數據進行檢查,獲 取在數據掃描開始時間至結束時間之間的有數據的時間集合,然后與基準時間集合相比 較,如果"基準時間集合"有此日期而"有數據的時間集合"沒有,則說明該日期的數據丟失 了,并記錄下該日期作為丟失的時間。
[0064] S23:對于丟失的數據,獲取該丟失的數據在丟失時間的前三天、上周以及上月的 入庫時間。
[0065] 當檢測到有數據丟失時,則對該數據在丟失時間的前三天、一周前以及一個月前 的數據進行檢查,檢查該數據在之前的入庫時間。
[0066]表4為日掃描的查詢結果。
[0067]
[0068] 表 4
[0069]進一步的,可根據數據丟失信息開發(fā)展示報表,通過標準ID將表4與表2相關聯,進 而通過從表2獲得的手工ID與表1相關聯,展示報表的數據情況包括:手工ID,標準ID,目標 表,丟點文件名,丟點數據時間,掃描時間等丟點信息。同時,通過關聯可獲得丟點數據的入 庫過程信息,包括:源頭文件名,源頭文件的存儲位置,目標表,目標用戶,數據源聯系人以 及數據接入負責人等。根據上述表4中開發(fā)的展示報表如圖3所示。
[0070] 重復上述步驟S21、S22以及S23,直至所述待掃描配置表中所定義的目標表的目標 列的數據均被掃描。運維人員可以簡單明了的查找到哪些數據發(fā)生了丟失,并通過展示報 表很容易的找到丟失數據的接入過程,從而快速查找到數據丟失的原因,大大降低了運維 難度。
[0071] 本發(fā)明實施例還提供了一種使用上述可配置的數據丟失檢查及監(jiān)控方法進行檢 查和監(jiān)控的系統(tǒng),如圖4所示,包括數據獲取單元101,數據處理單元102以及顯示單元103; 所述數據獲取單元101用于獲取調度數據中心的數據入庫過程數據;其中,所述數據處理單 元102根據數據入庫過程數據獲得一待掃描的配置表,并對配置表所定義的目標表的目標 列的數據進行掃描,當有數據丟失時,所述顯示單元103顯示出丟失的數據。
[0072] 所述待掃描配置表中的數據包括:配置表自定義的手工ID,配置表自定義的標準 ID,所述目標表中進行數據掃描的目標列的名稱,所述目標表最后一次被修改的時間列名, 所述目標表第一次被錄入的時間列名,以及需要掃描的開始時間和結束時間,目標表名稱, 與所述目標表名稱對應的文件名,數據錄入時間,所述目標表的源頭文件的存儲位置,用戶 名稱(Oracle數據庫的用戶名稱),接入名稱,數據源聯系人以及數據接入負責人。
[0073] 綜上,在本發(fā)明實施例提供的可配置的數據丟失檢查及監(jiān)控方法及系統(tǒng)中,根據 獲取的調度數據中心的數據入庫過程數據獲得一待掃描的配置表,并對所述待掃描配置表 所定義的目標表的目標列的數據進行掃描,當有數據丟失時,顯示出丟失的數據??梢约皶r 的發(fā)現數據的丟失情況,并可以詳細的顯示出丟失的數據的源頭文件以及相關人員,保證 了數據的完整性和及時性,提高了數據質量。另外,在調度數據中心入庫過程發(fā)生變化時, 只需將新增、修改、刪除的入庫過程在配置表中進行修改,就能自動實現對修改后的目標表 的目標列進行丟點掃描,無需編寫任何程序,從而降低了運維難度和成本。
[0074]上述僅為本發(fā)明的優(yōu)選實施例而已,并不對本發(fā)明起到任何限制作用。任何所屬 技術領域的技術人員,在不脫離本發(fā)明的技術方案的范圍內,對本發(fā)明揭露的技術方案和 技術內容做任何形式的等同替換或修改等變動,均屬未脫離本發(fā)明的技術方案的內容,仍 屬于本發(fā)明的保護范圍之內。
【主權項】
1. 一種可配置的數據丟失檢查及監(jiān)控方法,其特征在于,包括: 獲取調度數據中心的數據入庫過程數據,并根據數據入庫過程數據獲得一待掃描的配 置表;對配置表所定義的目標表的目標列的數據進行掃描,顯示出丟失的數據及參考信息。2. 如權利要求1所述的可配置的數據丟失檢查及監(jiān)控方法,其特征在于,所述配置表中 的數據包括:配置表自定義的標準ID,目標表,所述目標表的目標列的名稱,所述目標表最 后一次被修改的時間,所述目標表第一次被錄入的時間,以及需要掃描的開始時間和結束 時間。3. 如權利要求2所述的可配置的數據丟失檢查及監(jiān)控方法,其特征在于,對所述配置表 中所定義的目標表的目標列中的數據進行掃描的步驟包括: 獲取需要掃描的開始時間至結束時間之間的基準時間; 對所述目標表在所述開始時間至結束時間之間的數據進行掃描,記錄所述目標表中數 據丟失的時間; 對于丟失的數據,獲取該丟失的數據在丟失時間的前三天、上周以及上月的入庫時間; 重復上述步驟,直至所述配置表中的所有目標表均被掃描。4. 如權利要求3所述的可配置的數據丟失檢查及監(jiān)控方法,其特征在于,需要掃描的開 始時間至結束時間之間的基準時間包括每一天的一固定時刻、每一天的日期以及每一月第 一天的日期。5. 如權利要求2所述的可配置的數據丟失檢查及監(jiān)控方法,其特征在于,所述配置表中 的數據還包括:目標表名稱,與所述目標表對應的文件名,數據錄入時間列,所述目標表的 源頭文件的存儲位置。6. 如權利要求5所述的可配置的數據丟失檢查及監(jiān)控方法,其特征在于,所述配置表中 的數據還包括:配置表自定義的手工ID,用戶名稱,接入名稱,數據源聯系人以及數據接入 負責人。7. -種可配置的數據丟失檢查及監(jiān)控系統(tǒng),其特征在于,包括:數據獲取單元,數據處 理單元以及顯示單元;其中, 所述數據獲取單元用于獲取調度數據中心的數據入庫過程數據; 所述數據處理單元根據獲取的入庫過程數據獲得一待掃描的配置表,并對所述待掃描 的配置表所定義的目標表的目標列的數據進行掃描,當有數據丟失時,所述顯示單元顯示 出丟失的數據及參考信息。8. 如權利要求7所述的可配置的數據丟失檢查及監(jiān)控系統(tǒng),其特征在于,所述待掃描的 配置表中的數據包括:配置表自定義的標準ID,目標表,所述目標表的目標列的名稱,所述 目標表最后一次被修改的時間,所述目標表第一次被錄入的時間,以及需要掃描的開始時 間和結束時間。9. 如權利要求8所述的可配置的數據丟失檢查及監(jiān)控系統(tǒng),其特征在于,所述配置表中 的數據還包括:目標表名稱,與所述目標表對應的文件名,數據錄入時間,所述目標表的源 頭文件的存儲位置。10. 如權利要求9所述的可配置的數據丟失檢查及監(jiān)控系統(tǒng),其特征在于,所述配置表 中的數據還包括:配置表自定義的手工ID,目標表所使用的數據庫的用戶名稱,源頭數據接 入到目標表的接入名稱,數據源聯系人以及數據接入負責人。
【文檔編號】G06F17/30GK106096057SQ201610510730
【公開日】2016年11月9日
【申請日】2016年6月30日
【發(fā)明人】葛朝強, 張亮, 屈剛, 徐堯強, 岑維欣, 吳超, 李麗, 周瑾, 郭華軍, 馬歡, 周曉蘇
【申請人】華東電網有限公司, 上海辰華網絡技術服務有限公司