湯蕾蕾
摘 要 在大量業(yè)務(wù)型的數(shù)據(jù)倉庫中,存在海量數(shù)據(jù)比對碰撞的問題,如何通過海量數(shù)據(jù)的比對碰撞,發(fā)現(xiàn)目標結(jié)構(gòu)是當前數(shù)據(jù)倉庫中面臨的一個嚴峻的現(xiàn)實問題。在許多系統(tǒng)中,通過消息隊列的形式進行比對碰撞的實現(xiàn)。在本文中,我們通過ETL的方式在抽取的同時結(jié)合XML的配置完成比對模塊的直接運行。通過ETL的同時進行比對,達到數(shù)據(jù)比對的最大效率,在進庫的同時就進行數(shù)據(jù)的比對碰撞,及時的獲取比對結(jié)果信息。
關(guān)鍵詞 ETL;數(shù)據(jù)比對;XML;數(shù)據(jù)抽取
中圖分類號:TP242 文獻標識碼:A 文章編號:1671-7597(2014)10-0068-02
1 WEB技術(shù)設(shè)計
數(shù)據(jù)比對WEB部分包含兩塊功能,
1)提供界面對需要參與在線輯控的數(shù)據(jù)源庫和目標庫已經(jīng)需要相關(guān)的條件進行設(shè)置。
2)對ETL任務(wù)的運行時間參數(shù)和啟、停進行設(shè)置。
其中在線輯控的對需要進行輯控的數(shù)據(jù)源庫和目標庫進行設(shè)置將仍然采用XML配置文件方式,如圖1。
說明:
basesql字段,為比對結(jié)果表中固化的字段,如比對的結(jié)果是人的信息,那么必須有身份證、姓名、性別等,如果是是車輛的話必須有車牌號碼,車輛名稱等信息。對于產(chǎn)生這條比對結(jié)果信息的源庫和目標庫的信息ID也將保存。
resultsql字段為比對結(jié)果表中保存的希望關(guān)注源庫中的一些字段的信息,將會保存到比對結(jié)果表的一個clob字段中。
WEB方面負責(zé)提供界面供用戶選擇需要進行關(guān)注的庫和相關(guān)的字段,保存后生成對應(yīng)的sql語句形成一個在線輯控任務(wù)。用戶可以對這個在線輯控任務(wù)進行啟動、停止設(shè)置。
對ETL抽取任務(wù)的控制:
ETL的抽取任務(wù)有數(shù)據(jù)組在設(shè)計、測試完成后,在數(shù)據(jù)庫中設(shè)置需要定時執(zhí)行的任務(wù)屬性,其中設(shè)置定時執(zhí)行的參數(shù)是保存在一張表中,這張表和字段必須固化下來。
WEB端提供UI接口供用戶管理ETL任務(wù)的啟動、停止,以及相關(guān)的任務(wù)執(zhí)行時間等參數(shù)的設(shè)定,并且提供任務(wù)的上次運行時間等信息。
對ETL抽取和比對過程中日志控制:
ETL的抽取和比對過程需要產(chǎn)生日志,替代現(xiàn)在后臺采用文件方式保存的日志。
其中ETL日志表需要數(shù)據(jù)組固化表名和字段名;
比對過程的日志需要數(shù)據(jù)組固化另外一張表名和字段名;
整體,采用ETL抽取完成后直接執(zhí)行比對操作,將替代現(xiàn)在后臺中執(zhí)行的定時調(diào)度任務(wù),
但定時調(diào)度對某些操作任然需要,如案件串并中的查詢,所以這里考慮仍然保留這個功能。
2 ETL技術(shù)設(shè)計
此次ETL架構(gòu)主要為了滿足動態(tài)數(shù)據(jù)驗證,實現(xiàn)數(shù)據(jù)比對功能,由前臺WEB頁面控制調(diào)度平率等相關(guān)要求而設(shè)計。(圖2)
1)判斷是否抽取。
設(shè)置標志位確認數(shù)據(jù)流狀態(tài),當數(shù)據(jù)流處于運行狀態(tài),那么數(shù)據(jù)流將停止,等待下次運行時間后再次運行。
2)加載抽取數(shù)據(jù)。
更具時間戳判斷,將需要抽取的數(shù)據(jù)加載到TEMP表中,由于使用TEMP表將會大大提高抽取效率。等加載完后,數(shù)據(jù)抽取的事情基本上已經(jīng)完成,此時已經(jīng)和源數(shù)據(jù)庫庫沒有任何關(guān)系了。
3)數(shù)據(jù)量計算。
計算當前批次抽取數(shù)據(jù)總量、更新數(shù)據(jù)總量、數(shù)據(jù)插入總量、數(shù)據(jù)刪除總量。由此來證明數(shù)據(jù)抽取情況。
4)數(shù)據(jù)驗證。
更具前臺頁面設(shè)置對應(yīng)的參數(shù)進行數(shù)據(jù)驗證,此數(shù)據(jù)驗證是逐一驗證的方式。所以效率并不是很高。
5)數(shù)據(jù)轉(zhuǎn)換。
更具業(yè)務(wù)要求,將數(shù)據(jù)轉(zhuǎn)換成系統(tǒng)的數(shù)據(jù)。主要是字典表轉(zhuǎn)換。
6)數(shù)據(jù)加載。
將抽取完成的數(shù)據(jù)加載到數(shù)據(jù)倉庫中。
7)生產(chǎn)新數(shù)據(jù)源。
更具具體業(yè)務(wù)要求,插入到集合數(shù)據(jù)庫中。
8)判斷比對任務(wù)。
更具比對任務(wù)表判斷是否有需要比對的任務(wù)。
9)獲取比對項。
循環(huán)獲取比對項。
10)輸出結(jié)果。
將比對結(jié)果輸入到比對結(jié)果表中。
11)第三方擴展接口。
開發(fā)第三方組建,例如短信接口。
3 詳細設(shè)計
根據(jù)上面的設(shè)計,我們在此主要進行詳細方面的規(guī)劃設(shè)計。
WEB方面:
1)提供UI列表界面,列出當前所有的定義的在線輯控任務(wù)。用戶可以在這個界面對在線輯控任務(wù)進行啟動、停止控制。
2)提供UI編輯界面,根據(jù)配置文件的定義,提供選擇兩個庫進行比對的設(shè)置,并根據(jù)設(shè)置提供兩個庫中哪些字段進行比對的設(shè)置。在用戶保存后將生成SQL語句保存成一個在線輯控的任務(wù)。用戶可以在后期對這個任務(wù)進行修改,修改的內(nèi)容主要是比對的設(shè)置。默認對于新建立的在線輯控任務(wù)是設(shè)置為活動狀態(tài)。
3)提供UI列表界面,列出所有定義的ETL抽取任務(wù)。用戶可以在這個界面對ETL抽取任務(wù)進行啟動、停止控制。
4)提供UI編輯界面,編輯ETL抽取任務(wù)的時間定義。
5)另外針對某些操作如案件串并中的案件查詢?nèi)匀恍枰〞r去執(zhí)行查詢工作,所以這里將實現(xiàn)一個獨立運行的服務(wù),已jar 包和腳本配合的形式運行在后臺。定時執(zhí)行任務(wù)。
6)需要固化的表:
比對信息結(jié)果表和相關(guān)關(guān)聯(lián)信息字段的保存形式;
ETL抽取任務(wù)表和相關(guān)控制字段的含義;
ETL抽取日志表;
ETL比對日志表。
4 總結(jié)
本文通過這種ETL結(jié)合WEB端XML的配置方式,將海量數(shù)據(jù)在線比對的功能和數(shù)據(jù)抽取集成在一起,通過前臺靈活地信息配置,將ETL和比對抽取配置結(jié)合在一起,實現(xiàn)數(shù)據(jù)抽取時靈活地數(shù)據(jù)碰撞和數(shù)據(jù)比對的功能。大大提升了數(shù)據(jù)比對的效率和數(shù)據(jù)比對的靈活度。
參考文獻
[1]Valiant L G.A bridging model for parallel computation[J].Communications of the ACM,1997,33(8):103-111.
[2]盛憲鋒,孫健英,焦文彬.基于數(shù)據(jù)生命周期管理的ARP系統(tǒng)優(yōu)化設(shè)計[J].計算機工程與科學(xué),2011.endprint
摘 要 在大量業(yè)務(wù)型的數(shù)據(jù)倉庫中,存在海量數(shù)據(jù)比對碰撞的問題,如何通過海量數(shù)據(jù)的比對碰撞,發(fā)現(xiàn)目標結(jié)構(gòu)是當前數(shù)據(jù)倉庫中面臨的一個嚴峻的現(xiàn)實問題。在許多系統(tǒng)中,通過消息隊列的形式進行比對碰撞的實現(xiàn)。在本文中,我們通過ETL的方式在抽取的同時結(jié)合XML的配置完成比對模塊的直接運行。通過ETL的同時進行比對,達到數(shù)據(jù)比對的最大效率,在進庫的同時就進行數(shù)據(jù)的比對碰撞,及時的獲取比對結(jié)果信息。
關(guān)鍵詞 ETL;數(shù)據(jù)比對;XML;數(shù)據(jù)抽取
中圖分類號:TP242 文獻標識碼:A 文章編號:1671-7597(2014)10-0068-02
1 WEB技術(shù)設(shè)計
數(shù)據(jù)比對WEB部分包含兩塊功能,
1)提供界面對需要參與在線輯控的數(shù)據(jù)源庫和目標庫已經(jīng)需要相關(guān)的條件進行設(shè)置。
2)對ETL任務(wù)的運行時間參數(shù)和啟、停進行設(shè)置。
其中在線輯控的對需要進行輯控的數(shù)據(jù)源庫和目標庫進行設(shè)置將仍然采用XML配置文件方式,如圖1。
說明:
basesql字段,為比對結(jié)果表中固化的字段,如比對的結(jié)果是人的信息,那么必須有身份證、姓名、性別等,如果是是車輛的話必須有車牌號碼,車輛名稱等信息。對于產(chǎn)生這條比對結(jié)果信息的源庫和目標庫的信息ID也將保存。
resultsql字段為比對結(jié)果表中保存的希望關(guān)注源庫中的一些字段的信息,將會保存到比對結(jié)果表的一個clob字段中。
WEB方面負責(zé)提供界面供用戶選擇需要進行關(guān)注的庫和相關(guān)的字段,保存后生成對應(yīng)的sql語句形成一個在線輯控任務(wù)。用戶可以對這個在線輯控任務(wù)進行啟動、停止設(shè)置。
對ETL抽取任務(wù)的控制:
ETL的抽取任務(wù)有數(shù)據(jù)組在設(shè)計、測試完成后,在數(shù)據(jù)庫中設(shè)置需要定時執(zhí)行的任務(wù)屬性,其中設(shè)置定時執(zhí)行的參數(shù)是保存在一張表中,這張表和字段必須固化下來。
WEB端提供UI接口供用戶管理ETL任務(wù)的啟動、停止,以及相關(guān)的任務(wù)執(zhí)行時間等參數(shù)的設(shè)定,并且提供任務(wù)的上次運行時間等信息。
對ETL抽取和比對過程中日志控制:
ETL的抽取和比對過程需要產(chǎn)生日志,替代現(xiàn)在后臺采用文件方式保存的日志。
其中ETL日志表需要數(shù)據(jù)組固化表名和字段名;
比對過程的日志需要數(shù)據(jù)組固化另外一張表名和字段名;
整體,采用ETL抽取完成后直接執(zhí)行比對操作,將替代現(xiàn)在后臺中執(zhí)行的定時調(diào)度任務(wù),
但定時調(diào)度對某些操作任然需要,如案件串并中的查詢,所以這里考慮仍然保留這個功能。
2 ETL技術(shù)設(shè)計
此次ETL架構(gòu)主要為了滿足動態(tài)數(shù)據(jù)驗證,實現(xiàn)數(shù)據(jù)比對功能,由前臺WEB頁面控制調(diào)度平率等相關(guān)要求而設(shè)計。(圖2)
1)判斷是否抽取。
設(shè)置標志位確認數(shù)據(jù)流狀態(tài),當數(shù)據(jù)流處于運行狀態(tài),那么數(shù)據(jù)流將停止,等待下次運行時間后再次運行。
2)加載抽取數(shù)據(jù)。
更具時間戳判斷,將需要抽取的數(shù)據(jù)加載到TEMP表中,由于使用TEMP表將會大大提高抽取效率。等加載完后,數(shù)據(jù)抽取的事情基本上已經(jīng)完成,此時已經(jīng)和源數(shù)據(jù)庫庫沒有任何關(guān)系了。
3)數(shù)據(jù)量計算。
計算當前批次抽取數(shù)據(jù)總量、更新數(shù)據(jù)總量、數(shù)據(jù)插入總量、數(shù)據(jù)刪除總量。由此來證明數(shù)據(jù)抽取情況。
4)數(shù)據(jù)驗證。
更具前臺頁面設(shè)置對應(yīng)的參數(shù)進行數(shù)據(jù)驗證,此數(shù)據(jù)驗證是逐一驗證的方式。所以效率并不是很高。
5)數(shù)據(jù)轉(zhuǎn)換。
更具業(yè)務(wù)要求,將數(shù)據(jù)轉(zhuǎn)換成系統(tǒng)的數(shù)據(jù)。主要是字典表轉(zhuǎn)換。
6)數(shù)據(jù)加載。
將抽取完成的數(shù)據(jù)加載到數(shù)據(jù)倉庫中。
7)生產(chǎn)新數(shù)據(jù)源。
更具具體業(yè)務(wù)要求,插入到集合數(shù)據(jù)庫中。
8)判斷比對任務(wù)。
更具比對任務(wù)表判斷是否有需要比對的任務(wù)。
9)獲取比對項。
循環(huán)獲取比對項。
10)輸出結(jié)果。
將比對結(jié)果輸入到比對結(jié)果表中。
11)第三方擴展接口。
開發(fā)第三方組建,例如短信接口。
3 詳細設(shè)計
根據(jù)上面的設(shè)計,我們在此主要進行詳細方面的規(guī)劃設(shè)計。
WEB方面:
1)提供UI列表界面,列出當前所有的定義的在線輯控任務(wù)。用戶可以在這個界面對在線輯控任務(wù)進行啟動、停止控制。
2)提供UI編輯界面,根據(jù)配置文件的定義,提供選擇兩個庫進行比對的設(shè)置,并根據(jù)設(shè)置提供兩個庫中哪些字段進行比對的設(shè)置。在用戶保存后將生成SQL語句保存成一個在線輯控的任務(wù)。用戶可以在后期對這個任務(wù)進行修改,修改的內(nèi)容主要是比對的設(shè)置。默認對于新建立的在線輯控任務(wù)是設(shè)置為活動狀態(tài)。
3)提供UI列表界面,列出所有定義的ETL抽取任務(wù)。用戶可以在這個界面對ETL抽取任務(wù)進行啟動、停止控制。
4)提供UI編輯界面,編輯ETL抽取任務(wù)的時間定義。
5)另外針對某些操作如案件串并中的案件查詢?nèi)匀恍枰〞r去執(zhí)行查詢工作,所以這里將實現(xiàn)一個獨立運行的服務(wù),已jar 包和腳本配合的形式運行在后臺。定時執(zhí)行任務(wù)。
6)需要固化的表:
比對信息結(jié)果表和相關(guān)關(guān)聯(lián)信息字段的保存形式;
ETL抽取任務(wù)表和相關(guān)控制字段的含義;
ETL抽取日志表;
ETL比對日志表。
4 總結(jié)
本文通過這種ETL結(jié)合WEB端XML的配置方式,將海量數(shù)據(jù)在線比對的功能和數(shù)據(jù)抽取集成在一起,通過前臺靈活地信息配置,將ETL和比對抽取配置結(jié)合在一起,實現(xiàn)數(shù)據(jù)抽取時靈活地數(shù)據(jù)碰撞和數(shù)據(jù)比對的功能。大大提升了數(shù)據(jù)比對的效率和數(shù)據(jù)比對的靈活度。
參考文獻
[1]Valiant L G.A bridging model for parallel computation[J].Communications of the ACM,1997,33(8):103-111.
[2]盛憲鋒,孫健英,焦文彬.基于數(shù)據(jù)生命周期管理的ARP系統(tǒng)優(yōu)化設(shè)計[J].計算機工程與科學(xué),2011.endprint
摘 要 在大量業(yè)務(wù)型的數(shù)據(jù)倉庫中,存在海量數(shù)據(jù)比對碰撞的問題,如何通過海量數(shù)據(jù)的比對碰撞,發(fā)現(xiàn)目標結(jié)構(gòu)是當前數(shù)據(jù)倉庫中面臨的一個嚴峻的現(xiàn)實問題。在許多系統(tǒng)中,通過消息隊列的形式進行比對碰撞的實現(xiàn)。在本文中,我們通過ETL的方式在抽取的同時結(jié)合XML的配置完成比對模塊的直接運行。通過ETL的同時進行比對,達到數(shù)據(jù)比對的最大效率,在進庫的同時就進行數(shù)據(jù)的比對碰撞,及時的獲取比對結(jié)果信息。
關(guān)鍵詞 ETL;數(shù)據(jù)比對;XML;數(shù)據(jù)抽取
中圖分類號:TP242 文獻標識碼:A 文章編號:1671-7597(2014)10-0068-02
1 WEB技術(shù)設(shè)計
數(shù)據(jù)比對WEB部分包含兩塊功能,
1)提供界面對需要參與在線輯控的數(shù)據(jù)源庫和目標庫已經(jīng)需要相關(guān)的條件進行設(shè)置。
2)對ETL任務(wù)的運行時間參數(shù)和啟、停進行設(shè)置。
其中在線輯控的對需要進行輯控的數(shù)據(jù)源庫和目標庫進行設(shè)置將仍然采用XML配置文件方式,如圖1。
說明:
basesql字段,為比對結(jié)果表中固化的字段,如比對的結(jié)果是人的信息,那么必須有身份證、姓名、性別等,如果是是車輛的話必須有車牌號碼,車輛名稱等信息。對于產(chǎn)生這條比對結(jié)果信息的源庫和目標庫的信息ID也將保存。
resultsql字段為比對結(jié)果表中保存的希望關(guān)注源庫中的一些字段的信息,將會保存到比對結(jié)果表的一個clob字段中。
WEB方面負責(zé)提供界面供用戶選擇需要進行關(guān)注的庫和相關(guān)的字段,保存后生成對應(yīng)的sql語句形成一個在線輯控任務(wù)。用戶可以對這個在線輯控任務(wù)進行啟動、停止設(shè)置。
對ETL抽取任務(wù)的控制:
ETL的抽取任務(wù)有數(shù)據(jù)組在設(shè)計、測試完成后,在數(shù)據(jù)庫中設(shè)置需要定時執(zhí)行的任務(wù)屬性,其中設(shè)置定時執(zhí)行的參數(shù)是保存在一張表中,這張表和字段必須固化下來。
WEB端提供UI接口供用戶管理ETL任務(wù)的啟動、停止,以及相關(guān)的任務(wù)執(zhí)行時間等參數(shù)的設(shè)定,并且提供任務(wù)的上次運行時間等信息。
對ETL抽取和比對過程中日志控制:
ETL的抽取和比對過程需要產(chǎn)生日志,替代現(xiàn)在后臺采用文件方式保存的日志。
其中ETL日志表需要數(shù)據(jù)組固化表名和字段名;
比對過程的日志需要數(shù)據(jù)組固化另外一張表名和字段名;
整體,采用ETL抽取完成后直接執(zhí)行比對操作,將替代現(xiàn)在后臺中執(zhí)行的定時調(diào)度任務(wù),
但定時調(diào)度對某些操作任然需要,如案件串并中的查詢,所以這里考慮仍然保留這個功能。
2 ETL技術(shù)設(shè)計
此次ETL架構(gòu)主要為了滿足動態(tài)數(shù)據(jù)驗證,實現(xiàn)數(shù)據(jù)比對功能,由前臺WEB頁面控制調(diào)度平率等相關(guān)要求而設(shè)計。(圖2)
1)判斷是否抽取。
設(shè)置標志位確認數(shù)據(jù)流狀態(tài),當數(shù)據(jù)流處于運行狀態(tài),那么數(shù)據(jù)流將停止,等待下次運行時間后再次運行。
2)加載抽取數(shù)據(jù)。
更具時間戳判斷,將需要抽取的數(shù)據(jù)加載到TEMP表中,由于使用TEMP表將會大大提高抽取效率。等加載完后,數(shù)據(jù)抽取的事情基本上已經(jīng)完成,此時已經(jīng)和源數(shù)據(jù)庫庫沒有任何關(guān)系了。
3)數(shù)據(jù)量計算。
計算當前批次抽取數(shù)據(jù)總量、更新數(shù)據(jù)總量、數(shù)據(jù)插入總量、數(shù)據(jù)刪除總量。由此來證明數(shù)據(jù)抽取情況。
4)數(shù)據(jù)驗證。
更具前臺頁面設(shè)置對應(yīng)的參數(shù)進行數(shù)據(jù)驗證,此數(shù)據(jù)驗證是逐一驗證的方式。所以效率并不是很高。
5)數(shù)據(jù)轉(zhuǎn)換。
更具業(yè)務(wù)要求,將數(shù)據(jù)轉(zhuǎn)換成系統(tǒng)的數(shù)據(jù)。主要是字典表轉(zhuǎn)換。
6)數(shù)據(jù)加載。
將抽取完成的數(shù)據(jù)加載到數(shù)據(jù)倉庫中。
7)生產(chǎn)新數(shù)據(jù)源。
更具具體業(yè)務(wù)要求,插入到集合數(shù)據(jù)庫中。
8)判斷比對任務(wù)。
更具比對任務(wù)表判斷是否有需要比對的任務(wù)。
9)獲取比對項。
循環(huán)獲取比對項。
10)輸出結(jié)果。
將比對結(jié)果輸入到比對結(jié)果表中。
11)第三方擴展接口。
開發(fā)第三方組建,例如短信接口。
3 詳細設(shè)計
根據(jù)上面的設(shè)計,我們在此主要進行詳細方面的規(guī)劃設(shè)計。
WEB方面:
1)提供UI列表界面,列出當前所有的定義的在線輯控任務(wù)。用戶可以在這個界面對在線輯控任務(wù)進行啟動、停止控制。
2)提供UI編輯界面,根據(jù)配置文件的定義,提供選擇兩個庫進行比對的設(shè)置,并根據(jù)設(shè)置提供兩個庫中哪些字段進行比對的設(shè)置。在用戶保存后將生成SQL語句保存成一個在線輯控的任務(wù)。用戶可以在后期對這個任務(wù)進行修改,修改的內(nèi)容主要是比對的設(shè)置。默認對于新建立的在線輯控任務(wù)是設(shè)置為活動狀態(tài)。
3)提供UI列表界面,列出所有定義的ETL抽取任務(wù)。用戶可以在這個界面對ETL抽取任務(wù)進行啟動、停止控制。
4)提供UI編輯界面,編輯ETL抽取任務(wù)的時間定義。
5)另外針對某些操作如案件串并中的案件查詢?nèi)匀恍枰〞r去執(zhí)行查詢工作,所以這里將實現(xiàn)一個獨立運行的服務(wù),已jar 包和腳本配合的形式運行在后臺。定時執(zhí)行任務(wù)。
6)需要固化的表:
比對信息結(jié)果表和相關(guān)關(guān)聯(lián)信息字段的保存形式;
ETL抽取任務(wù)表和相關(guān)控制字段的含義;
ETL抽取日志表;
ETL比對日志表。
4 總結(jié)
本文通過這種ETL結(jié)合WEB端XML的配置方式,將海量數(shù)據(jù)在線比對的功能和數(shù)據(jù)抽取集成在一起,通過前臺靈活地信息配置,將ETL和比對抽取配置結(jié)合在一起,實現(xiàn)數(shù)據(jù)抽取時靈活地數(shù)據(jù)碰撞和數(shù)據(jù)比對的功能。大大提升了數(shù)據(jù)比對的效率和數(shù)據(jù)比對的靈活度。
參考文獻
[1]Valiant L G.A bridging model for parallel computation[J].Communications of the ACM,1997,33(8):103-111.
[2]盛憲鋒,孫健英,焦文彬.基于數(shù)據(jù)生命周期管理的ARP系統(tǒng)優(yōu)化設(shè)計[J].計算機工程與科學(xué),2011.endprint