河北公司營(yíng)銷分析與輔助決策系統(tǒng)于2008年正式上線,至今已運(yùn)行10年,該系統(tǒng)是營(yíng)銷信息化的高級(jí)應(yīng)用,具有營(yíng)銷綜合分析、報(bào)表、營(yíng)銷指標(biāo)監(jiān)控等功能。隨著相關(guān)設(shè)備運(yùn)行時(shí)間不斷延長(zhǎng),硬件設(shè)備日益老化,系統(tǒng)存在一定的安全運(yùn)行風(fēng)險(xiǎn)。
此外,該系統(tǒng)所用ETL(extract-transform-load)數(shù)據(jù)抽取工具及Sybase IQ數(shù)據(jù)庫(kù)與數(shù)據(jù)中心共用服務(wù)器,均部署于IBM 9116-561型號(hào)的小型機(jī)上,近年來(lái)該小型機(jī)穩(wěn)壓模塊曝出存在家族缺陷,且使用小型機(jī)也不滿足國(guó)網(wǎng)公司硬件設(shè)備國(guó)產(chǎn)化的要求,這些均給系統(tǒng)穩(wěn)定運(yùn)行和運(yùn)維工作造成壓力。
為此,將ETL工具和Sybase IQ數(shù)據(jù)庫(kù)從數(shù)據(jù)中心中剝離出來(lái),在PC服務(wù)器中進(jìn)行獨(dú)立部署是很有必要的,這將徹底解決營(yíng)銷分析與輔助決策系統(tǒng)運(yùn)行過(guò)程中存在的一系列問(wèn)題。
營(yíng)銷分析與輔助決策系統(tǒng)的數(shù)據(jù)以營(yíng)銷業(yè)務(wù)應(yīng)用數(shù)據(jù)、電能服務(wù)管理、用電信息采集、計(jì)量生產(chǎn)調(diào)度平臺(tái)、市場(chǎng)化售電等系統(tǒng)業(yè)務(wù)數(shù)據(jù)為基礎(chǔ),采用定期抽取的方式,經(jīng)過(guò)加工、轉(zhuǎn)換、處理、生成等一系列過(guò)程,形成所需的報(bào)表結(jié)果數(shù)據(jù)并進(jìn)行上報(bào)和展示,主要包括營(yíng)業(yè)管理、客戶服務(wù)、市場(chǎng)管理、用電安全及計(jì)量管理五大類報(bào)表,共計(jì)約133張報(bào)表。
抽取數(shù)據(jù)需要用到ETL抽取工具,當(dāng)報(bào)表進(jìn)行上報(bào)完成后,基礎(chǔ)數(shù)據(jù)會(huì)通過(guò)ETL抽取工具中的相應(yīng)工作流傳遞到Sybase數(shù)據(jù)庫(kù),再同樣啟動(dòng)ETL抽取工具中的相應(yīng)工作流將Sybase數(shù)據(jù)庫(kù)中的數(shù)據(jù)傳遞到國(guó)網(wǎng)總部數(shù)據(jù)庫(kù),中間是通過(guò)網(wǎng)省的基礎(chǔ)數(shù)據(jù)平臺(tái)作為網(wǎng)省與國(guó)網(wǎng)的數(shù)據(jù)傳輸通道,所以本次遷移涉及大量的歷史數(shù)據(jù)需同步進(jìn)行遷移,即需要對(duì)Sybase數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行全庫(kù)備份并完成新環(huán)境遷移,完成遷移后同樣需要對(duì)新版本的ETL抽取工具進(jìn)行數(shù)據(jù)抽取驗(yàn)證工作,確保數(shù)據(jù)抽取的質(zhì)量(包括抽取的基礎(chǔ)數(shù)據(jù)數(shù)量總和與數(shù)據(jù)源一致,抽取的結(jié)果數(shù)據(jù)不出現(xiàn)亂碼現(xiàn)象)。
ETL、Sybase數(shù)據(jù)庫(kù)從現(xiàn)有小型機(jī)環(huán)境遷移至PC服務(wù)器設(shè)備屬于跨平臺(tái)遷移,存在一定的技術(shù)難度,主要為遷移過(guò)程中安裝介質(zhì)是否能夠?qū)缙脚_(tái)服務(wù)系統(tǒng)進(jìn)行版本兼容,數(shù)據(jù)工作流導(dǎo)出與導(dǎo)入時(shí)是否存在異常報(bào)錯(cuò)情況。本次跨平臺(tái)遷移技術(shù)特點(diǎn)包括Sybase IQ的源數(shù)據(jù)庫(kù)結(jié)構(gòu)的導(dǎo)出、源數(shù)據(jù)庫(kù)數(shù)據(jù)的導(dǎo)出、數(shù)據(jù)的導(dǎo)入和Informatica應(yīng)用的遷移兩大部分。
遷移應(yīng)用了工作流主體遷移的工作原理,把原工作流遷移至新環(huán)境后再進(jìn)行數(shù)據(jù)遷移。Sybase IQ的源數(shù)據(jù)庫(kù)結(jié)構(gòu)的導(dǎo)出是通過(guò)Sybase IQ客戶端工具,導(dǎo)出源數(shù)據(jù)庫(kù)的結(jié)構(gòu),包含表、視圖、過(guò)程、type等;Sybase IQ的源數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)出一般按表一個(gè)個(gè)地導(dǎo)出,導(dǎo)出表的數(shù)據(jù)的語(yǔ)句如下所示。
set temporary option temp_extract_row_delimiter = '\x0a';
set temporary option temp_extract_column_delimiter = '|!';
set temporary option temp_extract_null_as_empty = 'OFF';
set temporary option temp_extract_append = 'OFF';
set temporary option temp_extract_size1 = 536870912;
set temporary option temp_extract_binary = 'OFF';
set temporary option temp_extract_swap = 'OFF';
set temporary option temp_extract_name1 = '/backup/psdss_ dm/AA_RESULT.dat';
select * from AA_RESULT;
Sybase IQ數(shù)據(jù)導(dǎo)入的腳本如下所示。
set temporary option conversion_error='OFF';
message 'load table AA_RESULT' type info to client;
LOAD TABLE AA_RESULT
(
FY '|!' ,
FY_ID '|!' ,
DY '|!' ,
DY_ID '|!' ,
NUMS '|!' ,
ID '|!'
)
由于導(dǎo)入腳本需要寫(xiě)出表所有的字段,腳本編寫(xiě)較為復(fù)雜,建議通過(guò)工具自動(dòng)生成。這種方法的基本思路是:使用IQ系統(tǒng)存儲(chǔ)過(guò)程sp_iqcolumn獲得被裝載表的所有字段,然后拼裝LOAD TABLE語(yǔ)句,最后使用execute動(dòng)態(tài)執(zhí)行拼裝好的SQL。
其中Informatica中的ETL工作流文件遷移是本次遷移的重點(diǎn),遷移工作流包括較多的大項(xiàng)工作流,每個(gè)大項(xiàng)又包含多個(gè)小項(xiàng)工作流。舊環(huán)境工作流的導(dǎo)出需要嚴(yán)謹(jǐn)操作,不能有遺漏項(xiàng),否則將影響新環(huán)境工作流的導(dǎo)入工作。遷移工作分為三大部分:Informatica及工作流導(dǎo)出和導(dǎo)入、Sybase和ETL抽取工具的銜接、新環(huán)境數(shù)據(jù)抽取。
Informatica PowerCenter 9.6.1在安裝前,要在數(shù)據(jù)庫(kù)下新建用戶,用來(lái)管理資料庫(kù),用于存放源表和目標(biāo)表。客戶端安裝完成后需要進(jìn)行Informatica連接Oracle數(shù)據(jù)庫(kù)的配置修改,進(jìn)入PowerCenter Workflow Manager—connections—relational,如圖1所示。
圖1 配置截圖
在這些前期的配置準(zhǔn)備工作都完成后,就可以對(duì)舊環(huán)境中Informatica客戶端中的工作流進(jìn)行整體或者單個(gè)導(dǎo)出工作,對(duì)導(dǎo)出的工作流進(jìn)行存放以備在新環(huán)境中導(dǎo)入時(shí)使用。遷移難點(diǎn)在于工作流的導(dǎo)出與導(dǎo)入,即從舊環(huán)境中導(dǎo)出的工作流數(shù)量不能缺失(如原有環(huán)境中存在1250個(gè)工作流,那么導(dǎo)出的工作流數(shù)量也應(yīng)與之匹配);導(dǎo)出的工作流不能出現(xiàn)異常情況(如導(dǎo)出完成工作流后會(huì)彈出類似于成功的提示語(yǔ),如出現(xiàn)fail則表示有失敗工作流,需要進(jìn)行日志提取排查原因);導(dǎo)入時(shí)同樣需要進(jìn)行數(shù)量和是否存在異常工作流的核對(duì)工作。
若版本兼容情況比對(duì)未發(fā)生異常,則可以在Windows環(huán)境下正常使用導(dǎo)入的工作流進(jìn)行抽取 工作。
2.1 工作流導(dǎo)出和導(dǎo)入
ETL是英文Extract-Transform-Load的縮寫(xiě),用來(lái)描述將數(shù)據(jù)從來(lái)源端經(jīng)過(guò)萃?。╡xtract)、轉(zhuǎn)置(transform)、加載(load)至目的端的過(guò)程。數(shù)據(jù)的遷移和集成都需要ETL來(lái)實(shí)現(xiàn),一般來(lái)說(shuō)在數(shù)據(jù)倉(cāng)庫(kù)的開(kāi)發(fā)過(guò)程中ETL會(huì)占到70%到80%的時(shí)間,Informatica是美國(guó)一個(gè)數(shù)據(jù)集成公司開(kāi)發(fā)的數(shù)據(jù)集成工具,圖形化開(kāi)發(fā)并且入門(mén)快,本地營(yíng)銷分析與輔助決策系統(tǒng)正是使用Informatica軟件作為數(shù)據(jù)遷移工具。
Informatica可用于訪問(wèn)和集成幾乎任何業(yè)務(wù)系統(tǒng)、任何格式的數(shù)據(jù),也可按任意速度在企業(yè)內(nèi)交付數(shù)據(jù),具有高性能、高可擴(kuò)展性、高可用性的特點(diǎn)。
Informatica中涉及的很多具有關(guān)聯(lián)性的工作流,需要現(xiàn)場(chǎng)結(jié)合實(shí)際情況進(jìn)行分析,確認(rèn)導(dǎo)入時(shí)是否存在前后關(guān)系,建議按照Informatica8.1.1版本上的工作流順序進(jìn)行導(dǎo)出操作,導(dǎo)出的文件按照.xml進(jìn)行存儲(chǔ),Informatica PowerCenter 9.6.1的主安裝界面是基于Java平臺(tái)建立的,所以在安裝前安裝JDK(推薦)。要在數(shù)據(jù)庫(kù)下新建用戶,用來(lái)管理資料庫(kù),用于存放源表和目標(biāo)表。
Windows 2008 server下普通Window 64位的Oracle客戶端無(wú)法安裝,需要找到Visa版本64位的客戶端安裝包,解壓安裝包,直接執(zhí)行setup.exe。在新機(jī)環(huán)境上安裝好Informatica 9.6.1版本的抽取軟件后,進(jìn)行接口基礎(chǔ)配置,因?yàn)楣ぷ髁鲗?dǎo)出是按照整包進(jìn)行導(dǎo)出的,所以在Informatica 9.6.1中導(dǎo)入同樣采取整包導(dǎo)出。因?yàn)槊總€(gè)大項(xiàng)工作流中涉及到的子項(xiàng)工作流數(shù)量不同,所以在導(dǎo)入時(shí)所花費(fèi)的時(shí)間也不同,需要耐心等待,導(dǎo)入成功后會(huì)有成功日志提示。
2.2 Sybase和ETL抽取工具的銜接
Sybase主要有3個(gè)版本:①UNIX操作系統(tǒng)下運(yùn)行的版本;②Novell Netware環(huán)境下運(yùn)行的版本;③Windows NT環(huán)境下運(yùn)行的版本。對(duì)UNIX操作系統(tǒng)目前廣泛應(yīng)用的為SYBASE 10及SYSBASE 11 FOR SCO UNIX。本地新舊環(huán)境存在差異情況的遷移還涉及到跨環(huán)境平臺(tái)遷移,所以在遷移后的驗(yàn)證也很重要。
一般的關(guān)系型數(shù)據(jù)庫(kù)都是基于主/從模式的。在主/從式結(jié)構(gòu)中,所有的應(yīng)用運(yùn)行在一臺(tái)機(jī)器上。用戶可以通過(guò)終端發(fā)送命令或簡(jiǎn)單地查看應(yīng)用運(yùn)行的結(jié)果。而在客戶/服務(wù)器結(jié)構(gòu)中,應(yīng)用被分發(fā)在多臺(tái)機(jī)器上運(yùn)行。一臺(tái)機(jī)器可能是另一個(gè)系統(tǒng)的客戶,也可能是另外一些機(jī)器的服務(wù)器,這些機(jī)器是通過(guò)局域網(wǎng)或廣域網(wǎng)聯(lián)接起來(lái)的。一般的數(shù)據(jù)庫(kù)是依靠操作系統(tǒng)來(lái)管理與數(shù)據(jù)庫(kù)的連接,當(dāng)有多個(gè)用戶連接時(shí),系統(tǒng)的性能會(huì)大幅下降。
Sybase數(shù)據(jù)庫(kù)未采用操作系統(tǒng)來(lái)管理進(jìn)程,而是把與數(shù)據(jù)庫(kù)的連接當(dāng)作自己的一部分來(lái)管理。此外,Sybase的數(shù)據(jù)庫(kù)引擎還代替操作系統(tǒng)來(lái)管理一部分硬件資源,如端口、內(nèi)存、硬盤(pán),Sybase數(shù)據(jù)庫(kù)的此種管理方式,大大提高了性能。
編輯Sybase數(shù)據(jù)庫(kù)主要由三部分組成:
具備以上優(yōu)勢(shì)對(duì)ETL抽取過(guò)來(lái)的數(shù)據(jù)進(jìn)行存儲(chǔ)有很好的數(shù)據(jù)保存應(yīng)用性。將新的Informatica 9.6.1版本的接口與Sybase配置好后,再進(jìn)行新工作流執(zhí)行數(shù)據(jù)提取時(shí)會(huì)很清晰地看到日志中數(shù)據(jù)的流向,在Sybase數(shù)據(jù)庫(kù)中會(huì)看到抽取的明細(xì)數(shù)據(jù)。搭建好的Sysbase數(shù)據(jù)環(huán)境要進(jìn)行測(cè)試驗(yàn)證,還要看全盤(pán)備份遷移過(guò)來(lái)的數(shù)據(jù)量是不是完整,數(shù)據(jù)是否完整對(duì)后續(xù)數(shù)據(jù)的提取是否全面有相當(dāng)大的影響。
全盤(pán)數(shù)據(jù)確定無(wú)問(wèn)題后,再進(jìn)行配置接口的檢查和調(diào)試工作,即確定Sysbase數(shù)據(jù)庫(kù)是否和Informatica 9.6.1軟件平臺(tái)連接通了,這個(gè)是后續(xù)進(jìn)行數(shù)據(jù)提取的關(guān)鍵。ETL抽取工具中涉及到很多類似于數(shù)據(jù)庫(kù)的DBLINK,這個(gè)是數(shù)據(jù)抽取的通道方向,所以在配置過(guò)程中我們會(huì)看到目標(biāo)源和數(shù)據(jù)源端用戶名,之間還需要配置正確的密碼確保整個(gè)配置的準(zhǔn)確與完整性。
2.3 新環(huán)境數(shù)據(jù)抽取
數(shù)據(jù)抽取一般分全量抽取和增量抽取。
1)全量抽取。全量抽取可被看做是數(shù)據(jù)遷移或數(shù)據(jù)復(fù)制,它將源數(shù)據(jù)庫(kù)中的表或視圖的數(shù)據(jù)原封不動(dòng)地抽取出來(lái),并轉(zhuǎn)換成自身ETL工具可以識(shí)別的格式。全量抽取較為簡(jiǎn)單。
2)增量抽取。增量抽取是指從上次抽取結(jié)束后再次抽取數(shù)據(jù)庫(kù)中新增、修改、刪除的表數(shù)據(jù)。在ETL實(shí)際使用過(guò)程中,增量抽取比全量抽取應(yīng)用范圍更廣。如何獲取變化的數(shù)據(jù)是增量數(shù)據(jù)抽取的關(guān)鍵。對(duì)獲取方法通常主要注意兩方面:準(zhǔn)確性,能夠準(zhǔn)確地獲取業(yè)務(wù)系統(tǒng)中的變化數(shù)據(jù);系統(tǒng)性能,盡量降低對(duì)業(yè)務(wù)系統(tǒng)的壓力,減少對(duì)業(yè)務(wù)的影響。
本次遷移選用增量抽取的方案,即對(duì)原數(shù)據(jù)按照某種邏輯關(guān)系進(jìn)行分段抽取,比如按照年月或者單位,將工作流全部成功導(dǎo)入到新環(huán)境的Informatica 9.6.1下后,需要對(duì)導(dǎo)入的工作流進(jìn)行數(shù)據(jù)抽取,提取的數(shù)據(jù)源可以定義為來(lái)自營(yíng)銷分析與輔助決策系統(tǒng)中的數(shù)據(jù),此類數(shù)據(jù)來(lái)源于營(yíng)銷業(yè)務(wù)系統(tǒng)、市場(chǎng)化售電系統(tǒng)、95598系統(tǒng)、基礎(chǔ)數(shù)據(jù)平臺(tái)中的基礎(chǔ)數(shù)據(jù)。所以將數(shù)據(jù)提取直接定義在營(yíng)銷分析與輔助決策系統(tǒng)較為合理,同時(shí)符合業(yè)務(wù)應(yīng)用規(guī)范。
在數(shù)據(jù)提取過(guò)程中工作流執(zhí)行為人工手動(dòng)觸發(fā),執(zhí)行工作流啟動(dòng)按鈕后,可以在ETL抽取界面對(duì)啟動(dòng)的工作流進(jìn)行執(zhí)行進(jìn)程監(jiān)控,抽取完成后可以監(jiān)控執(zhí)行的工作流的抽取時(shí)間,同時(shí)會(huì)有抽取結(jié)果日志的展現(xiàn),可以從抽取日志中看到提取數(shù)據(jù)量、提取相關(guān)表、提取時(shí)間節(jié)點(diǎn)等相關(guān)信息。
營(yíng)銷分析與輔助決策系統(tǒng)Informatica遷移過(guò)程包括方案制定、環(huán)境備份、數(shù)據(jù)遷移和遷移驗(yàn)證,如圖2所示。
圖2 操作流程圖
1)方案制定
遷移過(guò)程前需要先對(duì)安裝程序包在新環(huán)境下進(jìn)行安裝部署,搭建合理的部署環(huán)境,主要是對(duì)Informatica 9.6.1版本安裝包、Sysbase數(shù)據(jù)庫(kù)安裝包在新機(jī)上進(jìn)行客戶端和服務(wù)端的安裝配置工作,創(chuàng)建正式賬號(hào)以備后續(xù)進(jìn)行工作流數(shù)據(jù)導(dǎo)入與業(yè)務(wù)數(shù)據(jù)抽取驗(yàn)證使用。
2)環(huán)境備份
安裝客戶端和服務(wù)端前后進(jìn)行環(huán)境整體備份,在安裝完成后導(dǎo)入工作流和抽取驗(yàn)證數(shù)據(jù)前對(duì)Informatica 9.6.1所含已有工作流進(jìn)行備份處理,工作流備份主要對(duì)存儲(chǔ)路徑進(jìn)行備份。
3)數(shù)據(jù)遷移
數(shù)據(jù)遷移是指將數(shù)據(jù)文件從現(xiàn)有數(shù)據(jù)庫(kù)移到新數(shù)據(jù)庫(kù)的過(guò)程。這些數(shù)據(jù)通常是需要在未來(lái)任何時(shí)間可進(jìn)行方便訪問(wèn)的圖像文檔或歷史信息。遷移工作與備份策略相結(jié)合,并且仍要求定期備份。
4)遷移驗(yàn)證
遷移工作完成后的驗(yàn)證是遷移必不可少的一個(gè)環(huán)節(jié)。將遷移驗(yàn)證分為工作流穩(wěn)定驗(yàn)證、數(shù)據(jù)質(zhì)量驗(yàn)證、業(yè)務(wù)系統(tǒng)功能驗(yàn)證等三方面,遷移驗(yàn)證流程如圖3所示。
圖3 遷移驗(yàn)證流程圖
(1)工作流穩(wěn)定驗(yàn)證。按照新舊環(huán)境的Informatica抽取工具進(jìn)行工作流數(shù)量驗(yàn)證,檢查新舊環(huán)境導(dǎo)出與導(dǎo)入的工作流數(shù)量是否一致,并核查導(dǎo)入的工作流是否均可用。不存在失效的工作流中部分工作流需要配置數(shù)據(jù)源連接,要正確配置數(shù)據(jù)源賬號(hào)與密碼,確保源端與目標(biāo)端可以正確訪問(wèn),驗(yàn)證結(jié)果見(jiàn)表1。
(2)數(shù)據(jù)質(zhì)量驗(yàn)證。數(shù)據(jù)質(zhì)量驗(yàn)證包含數(shù)據(jù)存量與數(shù)據(jù)無(wú)異常驗(yàn)證。即抽取完成或者備份遷移過(guò)來(lái)的數(shù)據(jù)存儲(chǔ)量一致,不存在缺少歷史數(shù)據(jù)的情況(無(wú)年月、單位層級(jí)缺失)。檢查新環(huán)境中存儲(chǔ)的數(shù)量是否都符合數(shù)模標(biāo)準(zhǔn)規(guī)定格式(即字符型、數(shù)字型),不出現(xiàn)不能識(shí)別的亂碼標(biāo)志,驗(yàn)證結(jié)果見(jiàn)表2。
表2 數(shù)據(jù)質(zhì)量驗(yàn)證結(jié)果
(3)業(yè)務(wù)系統(tǒng)功能驗(yàn)證。這里主要指遷移完成后,根據(jù)遷移數(shù)據(jù)登陸前臺(tái)營(yíng)銷分析與輔助決策系統(tǒng),可以正常查詢歷史數(shù)據(jù),無(wú)數(shù)據(jù)丟失現(xiàn)象,確保業(yè)務(wù)數(shù)據(jù)的完備性與可用性,驗(yàn)證結(jié)果見(jiàn)表3。
表3 業(yè)務(wù)系統(tǒng)功能驗(yàn)證結(jié)果
遷移驗(yàn)證成功標(biāo)志著整個(gè)遷移工作的順利完成。
本文在ETL工具遷移過(guò)程中,對(duì)導(dǎo)入工作流的一些關(guān)鍵問(wèn)題提出了相關(guān)的解決方法和策略,并將整體現(xiàn)象做了記錄觀察,對(duì)存在的導(dǎo)入報(bào)錯(cuò)問(wèn)題也做了一定的分析。在基于營(yíng)銷分析與輔助決策系統(tǒng)的Sybase數(shù)據(jù)庫(kù)、Informatica抽取工具遷移實(shí)施方案中,本文對(duì)工作流異常導(dǎo)入進(jìn)行了分析研究,攻克了技術(shù)困難,完成了營(yíng)銷分析與輔助決策系統(tǒng)Informatica數(shù)據(jù)遷移工作計(jì)劃。
河北公司營(yíng)銷分析與輔助決策系統(tǒng)ETL遷移為其他網(wǎng)省公司提供遷移現(xiàn)行的指導(dǎo)方案,在一定程度上能夠減少其他網(wǎng)?。ㄊ校┕镜倪w移工作量,從而提升工作效率,具有一定的借鑒價(jià)值和意義。