于 慧 方 堅(jiān) 廖華元
隨著企業(yè)信息化建設(shè)的不斷應(yīng)用、推廣與深入,企業(yè)內(nèi)部間的信息交流愈加緊密。主數(shù)據(jù)作為核心、關(guān)鍵數(shù)據(jù)元素貫穿企業(yè)產(chǎn)品生命周期管理全過程,被各信息系統(tǒng)識別和調(diào)用。本文中的主數(shù)據(jù)共享管理平臺將主數(shù)據(jù)從應(yīng)用系統(tǒng)中分離出來,以數(shù)據(jù)倉庫作為核心業(yè)務(wù)系統(tǒng)重要主數(shù)據(jù)的存儲與共享中心,并通過面向服務(wù)架構(gòu)(SOA)技術(shù)發(fā)布主數(shù)據(jù)分發(fā)、共享服務(wù),使其成為一個(gè)集中的、高質(zhì)量的、可管理的、可重用的核心數(shù)據(jù)資源。
主數(shù)據(jù)存在于企業(yè)各應(yīng)用系統(tǒng)中,如企業(yè)資源計(jì)劃系統(tǒng)(ERP)、人力資源管理系統(tǒng)(HR)、供應(yīng)商關(guān)系管理系統(tǒng)(SRM)等,是描述企業(yè)核心業(yè)務(wù)的實(shí)體數(shù)據(jù),在多業(yè)務(wù)實(shí)例中被反復(fù)使用,是業(yè)務(wù)開展過程中所必須的關(guān)鍵信息及其元數(shù)據(jù)。相較于業(yè)務(wù)交易數(shù)據(jù)來說,主數(shù)據(jù)變化頻率相對較低,如人員、組織結(jié)構(gòu)、物料、客戶、供應(yīng)商等。隨著企業(yè)信息化建設(shè)的不斷應(yīng)用、推廣與深入,企業(yè)內(nèi)部間的信息交流愈加緊密。主數(shù)據(jù)作為核心、關(guān)鍵數(shù)據(jù)元素貫穿企業(yè)產(chǎn)品生命周期管理全過程,被各信息系統(tǒng)識別和調(diào)用。
基于主數(shù)據(jù)在企業(yè)數(shù)據(jù)管理中的重要地位和可能存在的問題,需通過一系列的管理辦法、系統(tǒng)、應(yīng)用配置等保障其在各信息系統(tǒng)中的一致性、完整性、有效性。
分析主數(shù)據(jù)在企業(yè)數(shù)據(jù)管理中可能存在的問題主要有以下三種。
(1)存在數(shù)據(jù)冗余,數(shù)據(jù)缺乏一致性、完整性:沒有主數(shù)據(jù)管理功能,企業(yè)各信息系統(tǒng)獨(dú)立管理主數(shù)據(jù)信息,彼此隔離,采用不同的流程收集、錄入信息片段,形成數(shù)據(jù)孤島。且信息反復(fù)錄入,造成信息差異,維護(hù)效率低,準(zhǔn)確性不高。
(2)數(shù)據(jù)有效性低:數(shù)據(jù)管理職責(zé)分散,無統(tǒng)一的數(shù)據(jù)定義標(biāo)準(zhǔn),導(dǎo)致各系統(tǒng)間業(yè)務(wù)數(shù)據(jù)無對應(yīng)標(biāo)準(zhǔn),無法進(jìn)行共享和交換。
(3)可重用性差:因數(shù)據(jù)信息分散存儲,需通過對源系統(tǒng)進(jìn)行定制化接口開發(fā)、視圖定義等方法進(jìn)行數(shù)據(jù)的獲取,功能單一,只能解決特定系統(tǒng)的數(shù)據(jù)交換問題。
因此從功能上劃分主數(shù)據(jù)管理需求可分為兩個(gè)方面:一是維護(hù)流程的需求,即通過統(tǒng)一的申請、維護(hù)、審批流程,對主數(shù)據(jù)的創(chuàng)建、修改過程進(jìn)行控制、校驗(yàn)與管理,保障其一致性和完整性;另一方面則是數(shù)據(jù)共享的需求,從多信息系統(tǒng)中抽取出主數(shù)據(jù),對數(shù)據(jù)進(jìn)行轉(zhuǎn)換、整合和集中式存儲,以服務(wù)的方式將數(shù)據(jù)分發(fā)給需要使用這些數(shù)據(jù)的系統(tǒng),提高數(shù)據(jù)有效性和可重用性。
目前本公司已對核心主數(shù)據(jù)制定了相關(guān)編碼規(guī)范、維護(hù)管理辦法,并將這些技術(shù)標(biāo)準(zhǔn)、管理規(guī)范融入到應(yīng)用系統(tǒng)的設(shè)置中,通過企業(yè)流程平臺定制開發(fā)或業(yè)務(wù)系統(tǒng)主數(shù)據(jù)維護(hù)流程,保證每一類主數(shù)據(jù)均有統(tǒng)一的錄入窗口,這從一定程度上保證了主數(shù)據(jù)的一致性、完整性、有效性,但這些數(shù)據(jù)最終仍保存在不同的信息系統(tǒng)中。
公司內(nèi)部署的應(yīng)用系統(tǒng)大多采用成熟的產(chǎn)品,這些產(chǎn)品在開發(fā)時(shí)采用不同的編程語言和實(shí)現(xiàn)平臺,所使用的數(shù)據(jù)庫平臺不一致,采用的數(shù)據(jù)交換格式和通信協(xié)議存在差異,因而使得公司在不同系統(tǒng)間實(shí)現(xiàn)信息互相傳遞與共享非常困難,對原有應(yīng)用系統(tǒng)與實(shí)施的新應(yīng)用系統(tǒng)不能進(jìn)行合理化的集成,系統(tǒng)與系統(tǒng)之間的交互接口越來越多、開發(fā)維護(hù)成本與代價(jià)越來越大、關(guān)系越來越復(fù)雜。
為了解決公司主數(shù)據(jù)共享、分發(fā)面臨的現(xiàn)狀,本文中的主數(shù)據(jù)共享管理平臺功能主要側(cè)重于將主數(shù)據(jù)從應(yīng)用系統(tǒng)中分離出來,通過企業(yè)ESB 總線平臺提供相關(guān)主數(shù)據(jù)和元數(shù)據(jù)的服務(wù),實(shí)現(xiàn)重要主數(shù)據(jù)的跨平臺同步和共享。
主數(shù)據(jù)共享平臺從ERP 系統(tǒng)、PLM 系統(tǒng)、HR 系統(tǒng)等數(shù)據(jù)源獲取主數(shù)據(jù),將這些主數(shù)據(jù)統(tǒng)一放置在數(shù)據(jù)倉庫中,根據(jù)需要和設(shè)定再將這些主數(shù)據(jù)通過各種方式發(fā)布出去。主數(shù)據(jù)共享平臺可以將現(xiàn)在各個(gè)系統(tǒng)之間互聯(lián)獲取主數(shù)據(jù)的方式變?yōu)榻y(tǒng)一從該平臺獲取。
公司數(shù)據(jù)倉庫使用SAP BW 產(chǎn)品,為構(gòu)建企業(yè)級數(shù)據(jù)中心,會將企業(yè)分析需求相關(guān)的數(shù)據(jù)通過ETL 抽取至BW,形成多個(gè)面向主題的分析模型,主數(shù)據(jù)則需要作為這些分析主題的關(guān)聯(lián)結(jié)構(gòu),存儲在數(shù)據(jù)倉庫中。為了避免數(shù)據(jù)的重復(fù)存儲,提高數(shù)據(jù)的可利用性,主數(shù)據(jù)共享管理平臺的數(shù)據(jù)直接存放于數(shù)據(jù)倉庫中,可作為數(shù)據(jù)倉庫的ODS 層,供上層模型轉(zhuǎn)換、調(diào)用。
主數(shù)據(jù)共享管理平臺主要包括數(shù)據(jù)采集、數(shù)據(jù)管理與數(shù)據(jù)發(fā)布三個(gè)功能。數(shù)據(jù)采集通過各種數(shù)據(jù)集成技術(shù)把不同來源、格式、特點(diǎn)的數(shù)據(jù)在物理上有機(jī)的集中起來;數(shù)據(jù)管理則包含數(shù)據(jù)匹配、同步、轉(zhuǎn)換和版本管理,并提供系統(tǒng)監(jiān)控日志;數(shù)據(jù)發(fā)布則是根據(jù)分發(fā)機(jī)制和權(quán)限配置,將已通過系統(tǒng)采集、管理后的主數(shù)據(jù)全量或增量的方式分發(fā)、共享給目標(biāo)應(yīng)用系統(tǒng)。系統(tǒng)邏輯框架圖如下圖1 所示。
圖1 主數(shù)據(jù)平臺系統(tǒng)邏輯框架圖
1.數(shù)據(jù)采集
平臺支持從Oracle 數(shù)據(jù)庫、SQL Server 數(shù)據(jù)庫、SAP ECC 系統(tǒng)、ESB 的Web Service 等數(shù)據(jù)源采集主數(shù)據(jù),采集地址、數(shù)據(jù)內(nèi)容可以通過配置的方式添加或修改。因傳統(tǒng)數(shù)據(jù)倉庫的ETL 工具不能滿足主數(shù)據(jù)準(zhǔn)實(shí)時(shí)讀取和發(fā)布的要求,因此采用不同類型的“連接器”從不同數(shù)據(jù)源獲取數(shù)據(jù)。
為避免對數(shù)據(jù)源的全量抽取,采用增量方式降低對源系統(tǒng)的性能影響,平臺主要采取以下兩種方式進(jìn)行數(shù)據(jù)的增量識別:(1)觸發(fā)器:主要針對普通數(shù)據(jù)庫數(shù)據(jù)源,如ORACLE 或SQL SERVER 等,在指定抽取的數(shù)據(jù)表上建立觸發(fā)器,當(dāng)源表數(shù)據(jù)發(fā)生變化時(shí),變化的數(shù)據(jù)則被觸發(fā)寫入一個(gè)臨時(shí)表中,數(shù)據(jù)采集進(jìn)程從該臨時(shí)表中抽取數(shù)據(jù);(2)日志表和時(shí)間戳:主要針對SAP ECC 的數(shù)據(jù)獲取,先通過日志表和時(shí)間戳獲取需要更新的數(shù)據(jù)列表;基于SAP 系統(tǒng)數(shù)據(jù)表結(jié)構(gòu)的特殊性,有些表內(nèi)容無法通過直接讀取數(shù)據(jù)庫的方式獲取,因此需要用通過二次開發(fā),改造SAP 系統(tǒng)中原有RFC_READ_TABLE 函數(shù)的功能。并且為了減少每次采集的數(shù)據(jù)量,可定義每次采集的數(shù)據(jù)包大小。針對一些系統(tǒng)發(fā)布的WEB SERVICE 服務(wù),系統(tǒng)能夠通過配置的ESB Web Service 或JMS 地址獲取信息進(jìn)行數(shù)據(jù)采集。
通過系統(tǒng)“檢查引擎”來定期保持該表結(jié)構(gòu)的一致性,在數(shù)據(jù)采集前“檢查引擎”首先獲取源數(shù)據(jù)的表結(jié)構(gòu),將源表的結(jié)構(gòu)與目標(biāo)表的結(jié)構(gòu)進(jìn)行對比,并將結(jié)構(gòu)變化提示給系統(tǒng)管理員。系統(tǒng)預(yù)留參數(shù)控制分批采集數(shù)據(jù)的批次大小,以滿足不同場景的需要。
2.數(shù)據(jù)管理
本平臺側(cè)重點(diǎn)不在于數(shù)據(jù)的質(zhì)量治理和清洗,因此只提供一定的管理功能,主要包括:可以列表的形式進(jìn)行查看主數(shù)據(jù);簡單的主數(shù)據(jù)合并功能,將從不同系統(tǒng)獲取的主數(shù)據(jù)根據(jù)“編碼”或“主鍵”合并在一起;將歷史版本保存到歷史表中。
系統(tǒng)將所有的數(shù)據(jù)采集、發(fā)布過程細(xì)節(jié)記錄在“系統(tǒng)日志”中,系統(tǒng)管理員可通過監(jiān)控功能隨時(shí)查看,并定制采集、發(fā)布控制參數(shù)。
3.數(shù)據(jù)發(fā)布
該平臺通過不同類型的“連接器”將主數(shù)據(jù)發(fā)布到Oracle 數(shù) 據(jù) 庫、SQL Server 數(shù) 據(jù) 庫、ESB 的Web Service 等不同目標(biāo)系統(tǒng),系統(tǒng)在發(fā)布主數(shù)據(jù)的同時(shí),將主數(shù)據(jù)的管理信息和概要信息一同發(fā)布,例如系統(tǒng)會發(fā)布現(xiàn)在有多少個(gè)主數(shù)據(jù)可以被獲取,主數(shù)據(jù)的條數(shù)是多少等。
分發(fā)、共享功能主要通過發(fā)布Web Service、在ESB 上注冊服務(wù)的方式實(shí)現(xiàn)。目標(biāo)系統(tǒng)可以根據(jù)需要全量或增量獲取主數(shù)據(jù)信息。傳統(tǒng)的Web Service 數(shù)據(jù)發(fā)布方式需要執(zhí)行以下兩個(gè)步驟:(1)當(dāng)有新的主數(shù)據(jù)需要發(fā)布時(shí),需要開發(fā)新的Web Service 接口;(2)當(dāng)有新的主數(shù)據(jù)需要發(fā)布時(shí),需要手工生成WSDL 文件,并手工部署Web Service。為了減少開發(fā)工作量,提高工作效率,主數(shù)據(jù)共享平臺需在上兩個(gè)方面實(shí)現(xiàn)自動化,即當(dāng)有新的主數(shù)據(jù)需要發(fā)布的時(shí),系統(tǒng)管理員只需選擇主數(shù)據(jù),系統(tǒng)自動完成上述工作,主要設(shè)計(jì)思路為:(1)選擇需要發(fā)布的主數(shù)據(jù),設(shè)置需要發(fā)布的字段;(2)設(shè)置發(fā)布的Web Service 的名稱等參數(shù);(3)系統(tǒng)自動將該主數(shù)據(jù)發(fā)布成Web Service,并自動生成WSDL文件,最終由ESB 系統(tǒng)管理人員在ESB 平臺上注冊該Web Service。
主數(shù)據(jù)承載著有價(jià)值的企業(yè)信息,其保密性也應(yīng)受到關(guān)注,因此在數(shù)據(jù)發(fā)布時(shí)需考慮數(shù)據(jù)分發(fā)的范圍和組織級別權(quán)限,在系統(tǒng)中設(shè)置權(quán)限管理功能??蓪⒛硞€(gè)“數(shù)據(jù)發(fā)布”分配給一個(gè)多個(gè)系統(tǒng)用戶,并為了保證數(shù)據(jù)分發(fā)的靈活可配置性,定義“數(shù)據(jù)發(fā)布”時(shí),需能設(shè)定發(fā)布的字段和記錄過濾條件。
主數(shù)據(jù)管理是一個(gè)非常復(fù)雜和耗費(fèi)資源的信息管理過程,理想的主數(shù)據(jù)管理方式應(yīng)該是一個(gè)“封閉式閉環(huán)管理”模式,該模式應(yīng)至少包含統(tǒng)一數(shù)據(jù)維護(hù)、數(shù)據(jù)獲取、格式整理、數(shù)據(jù)清洗、數(shù)據(jù)驗(yàn)證、數(shù)據(jù)分類和數(shù)據(jù)分析等方面,本文中的主數(shù)據(jù)共享管理平臺是實(shí)現(xiàn)這種“封閉式閉環(huán)管理”模式的第一步,我們可以在后續(xù)的應(yīng)用實(shí)施過程中逐步實(shí)現(xiàn)完善的、科學(xué)的主數(shù)據(jù)管理流程。