数仓主数据概念及实施方案(作废)
前言
企业主数据是用来描述企业核心业务实体的数据,比如客户、合作伙伴、员工、产品、物料单、账户等;它是具有高业务价值的、可以在企业内跨越各个业务部门被重复使用的数据,并且存在于多个异构的应用系统中。本文将针对主数据管理的概念以及主数据管理解决方案的实施等方面跟大家作一个探讨。
主数据和主数据管理的概念
企业主数据可以包括很多方面,除了常见的客户主数据之外,不同行业的客户还可能拥有其他各种类型的主数据,例如:对于电信行业客户而言,电信运营商提供的各种服务可以形成其产品主数据;对于航空业客户而言,航线、航班是其企业主数据的一种。对于某一个企业的不同业务部门,其主数据也不同,例如市场销售部门关心客户信息,产品研发部门关心产品编号、产品分类等产品信息,人事部门关心员工机构,部门层次关系等信息。
数据管理的范畴和主数据管理的概念
图 1. 数据管理的范畴
如图所示,企业数据管理的内容及范畴通常包括交易数据、主数据以及元数据。
- 交易数据: 用于纪录业务事件,如客户的订单,投诉记录,客服申请等,它往往用于描述在某一个时间点上业务系统发生的行为。
- 主数据:主数据则定义企业核心业务对象,如客户、产品、地址等,与交易流水信息不同,主数据一旦被记录到数据库中,需要经常对其进行维护,从而确保其时效性和准确性;主数据还包括关系数据,用以描述主数据之间的关系,如客户与产品的关系、产品与地域的关系、客户与客户的关系、产品与产品的关系等。
- 元数据: 即关于数据的数据,用以描述数据类型、数据定义、约束、数据关系、数据所处的系统等信息。
主数据管理是指一整套的用于生成和维护企业主数据的规范、技术和方案,以保证主数据的完整性、一致性和准确性 ( “ The set of disciplines, technologies, and solutions used to create and maintain consistent, complete, contextual and accurate business data for all stakeholders (users, applications, data warehouses, processes, companies, trading partners, customers, etc.) across and beyond the enterprise ” ) 。主数据管理的典型应用有 Customer Data Integration —客户数据管理和 Product Information Integraiton —产品数据管理。
图 2. 主数据管理的信息流
一般来说,主数据管理系统从 IT 建设的角度而言都会是一个相对复杂的系统,它往往会和企业数据仓库 / 决策支持系统以及企业内的各个业务系统发生关系,技术实现上也会涉及到 ETL、EAI、EII 等多个方面,如图 2 所示,一个典型的主数据管理的信息流为:
- 某个业务系统触发对企业主数据的改动;
- 主数据管理系统将整合之后完整、准确的主数据分发给所有有关的应用系统;
- 主数据管理系统为决策支持和数据仓库系统提供准确的数据源。
因此对于主数据管理系统的建设,要从建设初期就考虑整体的平台框架和技术实现。
以客户主数据为例,常见的主数据域包括:
- Party:参与方。参与方包含的范围是所有与企业发生了或者发生过正式业务关系的任何合法的实体,比如填写了投保单的参与方。 Party 是分类别的,可以是个人、机构和团体。对于 Party 来说,因为开展业务的需要,可能要对他们进行分级、分类,比如 VIP,黑名单等。个人包括个人基本属性、个人名称、职业、性别、教育等自然属性;机构是指在法律上有登记的组织实体,可以分为政府机构、商业机构、非盈利机构等类别;团体可以有多种形态,比如他们可以是家庭、兴趣小组、某个大机构中的一部分,或者通过某种数据分析技术得出的客户细分群体。
- Party Role:参与方在业务中扮演的角色。例如,对于保险行业而言,可以有:投保人,被保人,受益人,担保人,报案人,核保人,查勘员,核赔人等。
- Relationship:Party 与 Party 之间的关系 , 例如可以是:夫妻关系、父子关系、母女关系、兄弟姐妹关系、总 ( 母 ) 公司分 ( 子 ) 公司关系、企业事业单位隶属、上下级关系等。
- Account:帐户是客户使用企业服务的付费实体。
- Location:Location 记录的是每个 Party 可能拥有的所有联系地址,地址的类别包括邮寄地址、email 地址、电信联络地址等。
- Contract:Party 与企业之间的契约。
主数据有几个鲜明的特点,其中包括:它是准确的、集成的,其次它是跨业务部门的,再有就是它是在各个业务部门被重复使用的。
主数据管理的意义
图 3. 主数据管理的要素
如图 3 所示:集成、共享、数据质量、数据治理是主数据管理的四大要素,主数据管理要做的就是从企业的多个业务系统中整合最核心的、最需要共享的数据(主数据),集中进行数据的清洗和丰富,并且以服务的方式把统一的、完整的、准确的、具有权威性的主数据分发给全企业范围内需要使用这些数据的操作型应用和分析型应用,包括各个业务系统、业务流程和决策支持系统等。
主数据管理使得企业能够集中化管理数据,在分散的系统间保证主数据的一致性,改进数据合规性、快速部署新应用、充分了解客户、加速推出新产品的速度。从 IT 建设的角度,主数据管理可以增强 IT 结构的灵活性,构建覆盖整个企业范围内的数据管理基础和相应规范,并且更灵活地适应企业业务需求的变化。
以客户主数据为例,客户主数据是目前企业级客户普遍面临的一个问题,在大多数企业中,客户信息通常分散于 CRM 等各个业务系统中,而每个业务系统中都只有客户信息的片断,即不完整的客户信息,但却缺乏企业级的完整、统一的单一客户视图,结果导致企业不能完全了解客户,无法协调统一的市场行为,导致客户满意度下降,市场份额减少。因此,建立客户主数据系统的目的在于:
- 整合并存储所有业务系统和渠道的客户及潜在客户的信息:一方面从相关系统中抽取客户信息,并完成客户信息的清洗和整合工作,建立企业级的客户统一视图;另一方面,客户主数据管理系统将形成的统一客户信息以广播的形式同步到其他各个系统,从而确保客户信息的一致;
- 为相关的应用系统提供联机交易支持,提供客户信息的唯一访问入口点,为所有应用系统提供及时和全面的客户信息;服务于 OCRM 系统,充分利用数据的价值,在所有客户接触点上提供更多具有附加价值的服务;
- 实现 SOA 的体系结构:建立客户主数据系统之前,数据被锁定在每一个应用系统和流程中,建立主数据管理系统之后,数据从应用系统中被释放出来,并且被处理成为一组可重用的服务,被各个应用系统调用。
主数据管理系统与数据仓库系统的关系
主数据管理系统与数据仓库系统是相辅相成的两个系统,但二者绝不是重复的,也不是互斥的。它们有很多共同之处:
- 首先二者对企业都具有相同的价值,可以减少数据冗余和不一致性、提升对数据的洞察力,二者都是跨部门的集中式系统;
- 其次二者都依赖很多相同的技术手段,都会涉及到 ETL 技术、都需要元数据管理、都强调数据质量;
- 第三就是二者建设手段类似,都需要数据治理的规范作为指导、都需要不同系统、不同部门的协作、需要统一的安全策略。
但是,主数据管理系统和数据仓库 / 决策支持系统二者之间也存在很多不同:
- 处理类型不同:主数据管理 (MDM) 系统是偏交易型的系统,它为各个业务系统提供联机交易服务,系统的服务对象是呼叫中心、B2C、CRM 等业务系统;而数据仓库是属于分析型的系统,面向的是分析型的应用,是在大量历史交易数据的基础上进行多维分析,系统的使用对象是各层领导和业务分析、市场销售预测人员等;
- 实时性不同:与传统的数据仓库方案的批量 ETL 方式不同,主数据管理系统在数据初始加载阶段要使用 ETL,但在后续运行中要大量依赖实时整合的方式来进行主数据的集成和同步;
- 数据量不同:数据仓库存储的是大量的历史数据和各个维度的汇总数据,可能会是海量的,而 MDM 存储的仅仅是客户和产品等信息。
虽然主数据管理系统和数据仓库系统异同共存,但是二者却有着紧密的联系,并且可以互为促进、互为补充。举例而言,数据仓库系统的分析结果可以作为衍生数据输入到 MDM 系统,从而使 MDM 系统能够更好地为操作型 CRM 系统服务。以航空公司为例,客户的主数据模型大致可以分为三部分:
首先包括客户基本信息和偏好信息。
- 客户基本信息:
- 个人及公司信息
- 消费者市场状况
- 常旅客会员卡号,状态,及累计里程等
- 客户间关系 ( 个体 - 个体,个体 - 公司 )
- 联系地址,包括电话,电子邮件等
- 客户偏好信息:
- 餐食偏好
- 是否吸烟
- 座位偏好
- 机型偏好
- 公务舱位偏好
- 旅行舱位偏好
- 休息室服务偏好
除了这两部分之外,我们还可以从数据仓库系统中提取相关的信息,作为客户主数据的衍生信息部分,从而更好地、全方位地描述客户特征,这些可以包括:
- 衍生信息:
- 本月飞行里程
- 年度飞行里程(最近 12 个月内)
- 提前预订倾向
- 习惯预订模式
- 使用自主服务倾向
- 上次预订使用的信用卡号
- 累计 / 本月转签 / 取消航班次数
- 转签航班倾向
- 取消航班倾向
- No Show 倾向等。
主数据管理系统和 ODS 的关系
在某些情况下,主数据管理系统和 ODS 系统可能容易被混淆,的确,从实时上来看,主数据管理系统和 ODS 系统存储的都是实时数据,但是二者存储的数据内容是全然不同的,主数据管理系统中不存储交易数据,比如银行客户的交易流水信息是不应该放在主数据管理系统中进行管理的,这与 MDM 与 ODS 的一个很大区别。举一个航空公司的例子,比如某个客户在电子商务网站上定了一张机票,产生一个订单,然后他又通过呼叫中心要求改签,这个场景中,两个系统之间要实现客户信息和订单信息的共享,其中客户信息共享通过 MDM 系统来实现,而订单信息则需要采用 ODS 或其它手段进行共享,我们是不推荐把此类信息交由 MDM 系统来管理的。
主数据管理解决方案介绍
目前业界比较常见的主数据管理解决方案主要可以分为三类:
- 第一是依托专业套装软件来实现主数据管理,这类方案是作为套装软件的一部分,主要是为套装软件的其它模块提供服务的,因此,通常功能都缺乏完善性。
- 还有一类是侧重于分析型应用的主数据管理,这类方案在数据实时同步以及面向交易型应用时通常缺乏整体方案的完整性。
- 再有一类就是专注于主数据管理的中立的、完整的解决方案,这一类应用独立于套装软件,不仅具有整体架构的完整性和先进性,从功能上讲往往也最为完善,除了具有比较完整的数据模型 (Data Model) 之外,还会提供广泛的集成性,具备先进的机制实现数据同步,并且可以对外提供多种预置的主数据服务被外部交易系统调用,从而使系统具有很强的实时操作性,同时还强调主数据管理、主数据质量控制以及主数据维护的手段和规范性。
企业主数据管理系统逻辑架构
一个完整的主数据管理解决方案的逻辑架构应如下图所示:
图 4. 主数据管理系统逻辑架构
在一个完整的主数据管理解决方案中,除了主数据管理的核心服务组件之外通常还会涉及到企业元数据管理、企业信息集成、ETL、数据分析和数据仓库以及 EAI/ESB 等其他各种技术和服务组件。
其中主数据管理服务又包括如下一些主要的服务组件:
- Interface Services:为企业中需要主数据的所有业务系统提供各种服务接口,通过实时的、批量的接口可以读取或者修改主数据,这些接口包括 Batch, Web Services, XML Interface, Messaging Interface, Publish/Subscribe, Import/Export Services, Data Standardization Interface, Directory Integration 等。除了这些标准的技术接口之外 , 对于某些专有系统还提供适配器 (Adapter) 接口 , 通过适配器接口可以和一些特有的系统做接口,例如企业中的传统 (Legacy) 应用系统或者 SAP 等打包应用。
- Lifecycle Management Services: 履行针对主数据的 CRUD 操作,执行对主数据存储库中的数据进行更新、存取和管理时的业务逻辑,除此之外,它还负责维护主数据的衍生信息,例如客户之间的关系、客户的偏好、客户在各种客户服务渠道上的行为轨迹等。 Lifecycle Management Services 贯穿整个主数据管理的生命周期,它利用 Data Quality Management Services 来确保数据质量、利用 Master Data Event Management Services 来捕获各种主数据变化等相关的事件,以及利用 Hierarchy and Relationship Management Services 用来维护数据实体之间的关系和层次。
- Data Quality Management Services:确保主数据的质量和标准化,这在主数据管理解决方案中一个非常重要的组件,在我们从各个业务系统获取数据之后,要对数据进行清洗和验证,例如对于地址而言,要弥补地址的缺失、地市的缺失、邮编的缺失、进行地址的标准化等。对于其他数据要进行非空检查、外键检查、数据过滤等。然后要对数据进行匹配 / 重复识别、自动进行基于规则的合并 / 去重、交叉验证等,并且还要遵从企业的数据管控规范和流程。它可以是 Master Data Management Services 的一个内部组件,也可以调用整个企业的 Information Integrity Services 来实现。
- Authoring Services:依据数据管控流程,定义和扩展企业的主数据模型。
- Hierarchy Relationship and Management Services:定义数据实体的层次 (Hierarchy), 分组 (Grouping), 关系 (Relationship), 版本 (Version) 等。
- Master Data Event Management Services:捕获事件并且触发相应的操作,包括事件发现、事件管理和通知功能,它在主数据管理系统和业务系统之间进行数据同步时起到至关重要的作用。
- Base Services:提供通用服务,包括安全控制、错误处理、交易日志、事件日志等功能。
- Master Data Repository:主数据存储库,包括 Metadata, Master Data, History Data, Reference Data 等。
下面我们介绍两个这些逻辑组件之间的协作场景:
图 5. 场景 1-- 初始数据加载
场景 1:初始数据加载:
- 源数据从外部业务系统及 EDW 系统中通过批处理方式拷贝到磁带;
- 数据被加载到 Staging DB,进行数据质量分析;
- Data Quality Management Services 对数据进行清洗、匹配、标准化等;
- ETL Transform and Load services 对合格数据进行转换并准备好加载数据;
- Master Data Interface Services 接收批处理更新请求,调用 Lifecycle Management Update Service 进行数据的批量更新;
- Lifecycle Management Update Service 调用 Hierarchy & Relationship Management Services 和 Base Services 更新主数据库。
图 6. 场景 2-- 主数据库更新,然后同步到各业务系统
场景2:主数据库更新,然后同步到各业务系统
- 某业务系统发起一个创建主数据的交易,该业务系统将交易数据以消息的形式发送到消息队列;
- MDM Interface Services 捕获该消息,进行消息解析,并调用 Security and Privacy Services 进行权限验证;
- MDM Interface Services 调用 Lifecycle Mgmt. Update Service ;
- Lifecycle Mgmt. Update Service 再调用 Data Quality Management Services 进行数据的清洗和标准化;
- Update Service 调用 Search Services 发现该主数据已经存在,确认这是对已有主数据的更新操作;
- Update Service 通过调用外部系统对数据进行扩充;
- Update Service 在更新主数据库之前调用 Event Management Services ;
- Event Management Services 确认是否需要涉及数据管控方面的处理;
- Update Service 调用 Hierarchy & Relationship Management Services 并且更新主数据库;
- Audit Logging Services 纪录相应交易日志和历史数据;
- MDM Lifecycle Management Service 调用 MDM Interface Services 返回更新处理请求;
- 源业务系统接收到处理请求之后,利用 MDM 系统发回来的数据对本地的应用系统数据库进行更新操作;
- 其他所有需要主动被更新的相关的业务系统都会接收到更新后的最新数据。
IBM 主数据管理解决方案
IBM 的主数据管理解决方案 InfoSphere Master Data Management 是 IBM 信息管理大家族的一员。
图 7. IBM InfoSphere MDM Server 产品构成
如上图所示,IBM MDM Server 包含:
- Knowledge(知识层):知识层包括当事方 ( 人员和组织 )、角色、地址位置、当事人属性(统计学信息)、关系、财务简档、多渠道集成、协议和产品、事件等。
- Action(交互层):MDM Server 本身就是按照 SOA 的体系结构设计的,它提供 700 多个开箱既有的服务接口,这些服务可划分为多个主题范围,如下图所示:
图 8. MDM Server Business Services
其中主要包括:
- 当事方人口统计学服务:
- 角色:一个当事方可以扮演一个或多个角色,如帐户方角色服务用于管理当事方在一个或多个帐户中扮演的多个角色,折扣或索赔方角色服务用于维护当事方在一个或多个折扣或索赔中扮演的角色的信息。
- 关系服务:维护当事方对当事方关系,当事方对当事方关系不仅可以存在于两个独立的当事方之间 ( 例如甲方和乙方是配偶 ),也可以存在于双方在某个帐户中扮演的角色范围之内 ( 例如甲方是乙方遗嘱的执行人 ) 。
- 位置服务:维护关于位置的数据,如地址和联系方式。
- 客户服务和销售服务:包含管理多渠道集成所需要的客户服务与销售信息的综合业务服务。例如:隐私服务用于维护数据管理与请求的默认隐私偏好以及客户声明的隐私偏好;偏好服务用于管理复杂的客户服务偏好 ( 比如,特定联系方法和特定产品的联系偏好 ) 。
- 协议和产品服务:帐户或合同服务用于维护某个帐户或合同的详细信息,这里合同定义为一个或多个当事方与公司的合法协议。
- 数据维护服务:MDM Server 提供重复嫌疑管理服务 , 进行当事方记录的合并等。
- 当事方财务简档:比如收入来源信息、财务帐户信息等。
- 当事方识别服务:为每个客户记录创建一个唯一客户 ID,并且维护对其它系统的交叉引用。
- 历史纪录和审核服务:包含检索对象的历史审核数据的服务。
- Integrity(完整性层):完整性服务用于管理数据质量和维护客户数据的单一版本,包括疑似处理、重复处理、数据检查、标准化等。
- Intellegence(智能层):包括事件管理、业务处理规则、数据安全性。
- Data Governance(数据管控层):管理数据实体间的关系 (Relationship), 分组 (Group), 层次 (Hierarchy),以及数据生命周期等。
- Service Inteface(接口层): MDM Server 支持多个实时和批处理接口,其中实时接口包括 XML 接口、Web Services 接口、消息接口、Java 对象接口、COBOL 和 CICS 接口等。此外,还支持用户自定义接口。
使用 IBM 全套解决方案的主数据管理案例
以下是一个使用全套 IBM 软件解决方案的案例,这是一个典型的客户主数据管理的应用场景,其中使用的产品包括:WebSphere Portal Server,WebSphere MDM Server,WebSphere Enterprise Services Bus, WebSphere QualityStage, DB2 等。
图 9. 主数据管理应用案例
图 9 描述了一个主数据管理应用的端到端流程:
- 业务系统通过自己的用户界面创建一个新的用户,并且把数据写入了其应用系统数据库中;
- 该业务系统向 MQ 发送一条 XML 消息;消息中包含了客户基本信息和策略信息;
- MDM Server 接收到该 MQ 消息,对此消息进行处理;
- MDM Server 通过与 QualityStage 的接口调用 WebSphere QualityStage 的服务,进行客户姓名和联系方式的清洗和标准化;
- WebSphere QualityStage 对客户姓名和联系方式的清洗和标准化;
- WebSphere QualityStage 返回标准化了的客户数据;
- MDM Server 接收到标准化了的客户姓名和地址,查询主数据库获取候选姓名,调用 QualityStage 的疑似匹配服务;
- QualityStage 进行疑似处理;
- QualityStage 将打分结果返回给 MDM Server,结果表明这是一个新客户;
- MDM Server 向某外部系统发出 Web Services 请求,进行数据扩充;
- 外部系统将结果返回 MDM Server ;
- MDM Server 分配一个唯一的 PartyID,并且将客户主数据写入 MDM Server DB ;
- 根据客户 Profile,MDM Server 发现该客户是新推出的一项新业务的目标客户;
- MDM Server 向 MQ 产生一条 XML/JMS 消息;
- WebSphere ESB 接收到 XML 消息并且将其转换为市场促销系统所需要的消息格式;
- 市场促销系统接收到该消息,进行相应的业务处理;
- MDM Server 产生 XML 交易响应信息给源业务系统;
- 源业务系统接收到响应信息,对其应用系统数据库进行更新;
- MDM Server 又产生一个关于该新增客户的完整信息,并且发送到 MQ,利用 MQ 的 Pub/Sub 机制将数据通知到各个相关的业务系统;
- 各个业务系统接收到新增的客户信息,并且更新自身的应用系统数据库。
客户主数据系统实施方法论
客户主数据项目的本质是一个系统间针对客户信息的整合项目,根据以往的经验,大致分成基础实施、双向同步、多渠道访问、全企业采用等 4 个阶段,如下图所示:
图 10. 主数据系统实施步骤
基础实施阶段:
- 安装 MDM,实现 ECIF 的基础架构
- 完成主数据建模
- MDM 初始数据加载:根据期望的实施方法和策略,将数据从各个业务系统中抽取出来,经过清洗、转换、标准化之后加载到主数据存储库中,在这个阶段主要用到的是 ETL 的相关技术和工具。
- 使 MDM 的 700 多个业务服务能被其他系统实时连接和使用。
基础实施阶段为客户数据集成搭建了基础框架, 为企业提供了转向以客户为中心的能力和价值。后续的阶段主要是在此基础上推动全企业更多的应用和系统来使用这些价值,带来更多的业务增长。所以第一阶段的基础实施对企业来说是至关重要的,也是客户主数据管理项目能否带来业务价值的关键。
双向同步阶段:
- 通过实时或批处理方式,帮助逐步实现业务系统和 MDM 系统的双向数据更新和同步。这个阶段阶段主要用到的是 EAI/SOA 的相关技术和工具
- 多渠道访问阶段
- 整合 WCC 与已有的渠道或新的前台系统,实现多渠道访问。
- 添加新的客户数据属性和客户为中心的业务流程。
全企业采用阶段:
- MDM 成为企业唯一的记录客户信息的来源,促进对客户的洞察力和了解。
- 促进全企业整合,支持端到端的业务流程。
小结
本文首先系统地介绍了主数据管理的概念,主数据管理系统和数据仓库、ODS(操作型数据存储)之间的区别,并且结合航空公司的需求,给出了航空业客户主数据的简单模型;在理解了主数据管理的基本概念之后,给出了主数据管理解决方案的逻辑框架以及 IBM 的主数据管理解决方案;最后跟大家分享了主数据管理项目实施的路径和方法。