于 慧 方 堅 廖華元
隨著企業信息化建設的不斷應用、推廣與深入,企業內部間的信息交流愈加緊密。主數據作為核心、關鍵數據元素貫穿企業產品生命周期管理全過程,被各信息系統識別和調用。本文中的主數據共享管理平臺將主數據從應用系統中分離出來,以數據倉庫作為核心業務系統重要主數據的存儲與共享中心,并通過面向服務架構(SOA)技術發布主數據分發、共享服務,使其成為一個集中的、高質量的、可管理的、可重用的核心數據資源。
主數據存在于企業各應用系統中,如企業資源計劃系統(ERP)、人力資源管理系統(HR)、供應商關系管理系統(SRM)等,是描述企業核心業務的實體數據,在多業務實例中被反復使用,是業務開展過程中所必須的關鍵信息及其元數據。相較于業務交易數據來說,主數據變化頻率相對較低,如人員、組織結構、物料、客戶、供應商等。隨著企業信息化建設的不斷應用、推廣與深入,企業內部間的信息交流愈加緊密。主數據作為核心、關鍵數據元素貫穿企業產品生命周期管理全過程,被各信息系統識別和調用。
基于主數據在企業數據管理中的重要地位和可能存在的問題,需通過一系列的管理辦法、系統、應用配置等保障其在各信息系統中的一致性、完整性、有效性。
分析主數據在企業數據管理中可能存在的問題主要有以下三種。
(1)存在數據冗余,數據缺乏一致性、完整性:沒有主數據管理功能,企業各信息系統獨立管理主數據信息,彼此隔離,采用不同的流程收集、錄入信息片段,形成數據孤島。且信息反復錄入,造成信息差異,維護效率低,準確性不高。
(2)數據有效性低:數據管理職責分散,無統一的數據定義標準,導致各系統間業務數據無對應標準,無法進行共享和交換。
(3)可重用性差:因數據信息分散存儲,需通過對源系統進行定制化接口開發、視圖定義等方法進行數據的獲取,功能單一,只能解決特定系統的數據交換問題。
因此從功能上劃分主數據管理需求可分為兩個方面:一是維護流程的需求,即通過統一的申請、維護、審批流程,對主數據的創建、修改過程進行控制、校驗與管理,保障其一致性和完整性;另一方面則是數據共享的需求,從多信息系統中抽取出主數據,對數據進行轉換、整合和集中式存儲,以服務的方式將數據分發給需要使用這些數據的系統,提高數據有效性和可重用性。
目前本公司已對核心主數據制定了相關編碼規范、維護管理辦法,并將這些技術標準、管理規范融入到應用系統的設置中,通過企業流程平臺定制開發或業務系統主數據維護流程,保證每一類主數據均有統一的錄入窗口,這從一定程度上保證了主數據的一致性、完整性、有效性,但這些數據最終仍保存在不同的信息系統中。
公司內部署的應用系統大多采用成熟的產品,這些產品在開發時采用不同的編程語言和實現平臺,所使用的數據庫平臺不一致,采用的數據交換格式和通信協議存在差異,因而使得公司在不同系統間實現信息互相傳遞與共享非常困難,對原有應用系統與實施的新應用系統不能進行合理化的集成,系統與系統之間的交互接口越來越多、開發維護成本與代價越來越大、關系越來越復雜。
為了解決公司主數據共享、分發面臨的現狀,本文中的主數據共享管理平臺功能主要側重于將主數據從應用系統中分離出來,通過企業ESB 總線平臺提供相關主數據和元數據的服務,實現重要主數據的跨平臺同步和共享。
主數據共享平臺從ERP 系統、PLM 系統、HR 系統等數據源獲取主數據,將這些主數據統一放置在數據倉庫中,根據需要和設定再將這些主數據通過各種方式發布出去。主數據共享平臺可以將現在各個系統之間互聯獲取主數據的方式變為統一從該平臺獲取。
公司數據倉庫使用SAP BW 產品,為構建企業級數據中心,會將企業分析需求相關的數據通過ETL 抽取至BW,形成多個面向主題的分析模型,主數據則需要作為這些分析主題的關聯結構,存儲在數據倉庫中。為了避免數據的重復存儲,提高數據的可利用性,主數據共享管理平臺的數據直接存放于數據倉庫中,可作為數據倉庫的ODS 層,供上層模型轉換、調用。
主數據共享管理平臺主要包括數據采集、數據管理與數據發布三個功能。數據采集通過各種數據集成技術把不同來源、格式、特點的數據在物理上有機的集中起來;數據管理則包含數據匹配、同步、轉換和版本管理,并提供系統監控日志;數據發布則是根據分發機制和權限配置,將已通過系統采集、管理后的主數據全量或增量的方式分發、共享給目標應用系統。系統邏輯框架圖如下圖1 所示。

圖1 主數據平臺系統邏輯框架圖
1.數據采集
平臺支持從Oracle 數據庫、SQL Server 數據庫、SAP ECC 系統、ESB 的Web Service 等數據源采集主數據,采集地址、數據內容可以通過配置的方式添加或修改。因傳統數據倉庫的ETL 工具不能滿足主數據準實時讀取和發布的要求,因此采用不同類型的“連接器”從不同數據源獲取數據。
為避免對數據源的全量抽取,采用增量方式降低對源系統的性能影響,平臺主要采取以下兩種方式進行數據的增量識別:(1)觸發器:主要針對普通數據庫數據源,如ORACLE 或SQL SERVER 等,在指定抽取的數據表上建立觸發器,當源表數據發生變化時,變化的數據則被觸發寫入一個臨時表中,數據采集進程從該臨時表中抽取數據;(2)日志表和時間戳:主要針對SAP ECC 的數據獲取,先通過日志表和時間戳獲取需要更新的數據列表;基于SAP 系統數據表結構的特殊性,有些表內容無法通過直接讀取數據庫的方式獲取,因此需要用通過二次開發,改造SAP 系統中原有RFC_READ_TABLE 函數的功能。并且為了減少每次采集的數據量,可定義每次采集的數據包大小。針對一些系統發布的WEB SERVICE 服務,系統能夠通過配置的ESB Web Service 或JMS 地址獲取信息進行數據采集。
通過系統“檢查引擎”來定期保持該表結構的一致性,在數據采集前“檢查引擎”首先獲取源數據的表結構,將源表的結構與目標表的結構進行對比,并將結構變化提示給系統管理員。系統預留參數控制分批采集數據的批次大小,以滿足不同場景的需要。
2.數據管理
本平臺側重點不在于數據的質量治理和清洗,因此只提供一定的管理功能,主要包括:可以列表的形式進行查看主數據;簡單的主數據合并功能,將從不同系統獲取的主數據根據“編碼”或“主鍵”合并在一起;將歷史版本保存到歷史表中。
系統將所有的數據采集、發布過程細節記錄在“系統日志”中,系統管理員可通過監控功能隨時查看,并定制采集、發布控制參數。
3.數據發布
該平臺通過不同類型的“連接器”將主數據發布到Oracle 數 據 庫、SQL Server 數 據 庫、ESB 的Web Service 等不同目標系統,系統在發布主數據的同時,將主數據的管理信息和概要信息一同發布,例如系統會發布現在有多少個主數據可以被獲取,主數據的條數是多少等。
分發、共享功能主要通過發布Web Service、在ESB 上注冊服務的方式實現。目標系統可以根據需要全量或增量獲取主數據信息。傳統的Web Service 數據發布方式需要執行以下兩個步驟:(1)當有新的主數據需要發布時,需要開發新的Web Service 接口;(2)當有新的主數據需要發布時,需要手工生成WSDL 文件,并手工部署Web Service。為了減少開發工作量,提高工作效率,主數據共享平臺需在上兩個方面實現自動化,即當有新的主數據需要發布的時,系統管理員只需選擇主數據,系統自動完成上述工作,主要設計思路為:(1)選擇需要發布的主數據,設置需要發布的字段;(2)設置發布的Web Service 的名稱等參數;(3)系統自動將該主數據發布成Web Service,并自動生成WSDL文件,最終由ESB 系統管理人員在ESB 平臺上注冊該Web Service。
主數據承載著有價值的企業信息,其保密性也應受到關注,因此在數據發布時需考慮數據分發的范圍和組織級別權限,在系統中設置權限管理功能。可將某個“數據發布”分配給一個多個系統用戶,并為了保證數據分發的靈活可配置性,定義“數據發布”時,需能設定發布的字段和記錄過濾條件。
主數據管理是一個非常復雜和耗費資源的信息管理過程,理想的主數據管理方式應該是一個“封閉式閉環管理”模式,該模式應至少包含統一數據維護、數據獲取、格式整理、數據清洗、數據驗證、數據分類和數據分析等方面,本文中的主數據共享管理平臺是實現這種“封閉式閉環管理”模式的第一步,我們可以在后續的應用實施過程中逐步實現完善的、科學的主數據管理流程。