中国外汇交易中心数据仓库一期项目建议第二册技术部分安讯软件(上海)有限公司2008年5月4日目录1项目目标 (1)2技术解决方案 (2)2.1系统总体架构 (2)2.1.1逻辑架构 (2)2.1.1.1功能层面(上侧面) (2)2.1.1.2非功能层面(右侧面) (3)2.1.2设计层面 (3)2.1.2.1ETL数据抽取 (3)2.1.2.2报表设计 (3)2.1.2.3报表展现 (3)2.1.2.4报表应用 (3)2.1.3物理架构 (3)2.1.4数据架构 (5)2.2系统技术实现方案 (6)2.2.1总体技术实现方案 (6)2.2.2高效的ETL处理 (7)2.2.2.1ETL总体处理流程 (7)2.2.2.2数据仓库模型设计 (9)2.2.3数据质量管理 (10)2.2.3.1数据仓库对数据质量的要求 (10)2.2.3.2数据质量改进目标 (10)2.2.3.3数据质量改进方法 (10)2.2.4报表平台设计 (11)2.2.4.1灵活的报表查询 (12)2.2.4.2先进的报表开发模式 (12)2.2.4.3高效的报表消费 (12)2.2.4.4老系统统计报表移植 (12)2.2.5认证管理 (13)2.2.6系统可靠性及可扩展性 (13)2.2.7非功能性设计 (14)2.2.7.1性能需求 (14)2.2.7.2 灾备设计 (15)2.2.7.3可获性设计 (17)2.2.7.4 易用性设计 (17)2.2.7.5 安全性设计 (18)3项目管理 (19)3.1沟通管理 (19)3.1.1项目会议制度 (19)3.1.1.1定期会议 (20)3.1.1.2不定期会议 (20)3.1.2项目状态周报制度 (21)3.1.3沟通手段 (21)3.2配置管理 (22)3.2.1配置管理原则 (22)3.2.2配置库管理 (22)3.3变更管理 (22)3.3.1发起变更 (22)3.3.2评估变更 (23)3.3.3审批变更 (23)3.3.4执行变更 (23)3.3.5变更执行评估 (23)3.4质量管理 (24)3.4.1质量规划 (24)3.4.2质量保证 (25)3.4.3质量检查 (26)4工期进度 (26)5附录 (27)第二册技术部分1项目目标CFETS希望通过数据仓库系统的建设,可以有效地整合各市场业务数据,统一对信息进行利用和管理,对外提供统一的数据视图和综合决策分析支撑环境,为CFETS各部门所需的报表应用、统计分析及信息挖掘提供基础支持平台。
具体建设目标如下:(1)技术目标•建立数据仓库基础架构•建立自动数据抽取/转换/加载(ETL)机制•建立多维分析和数据查询工具和界面已经分析报表生成和展示框架(2)业务目标•实现一期经营分析的多维分析、查询和报表,提供CFETS各部门所需报表•提供下游系统所需要的统计数据•提供中心内部用户以Ad-Hoc方式查询所需数据•将业务系统的历史和增量数据加载进入数据仓库,并转换为数据仓库的存储格式•实现用户访问的门户界面并建立相应的访问安全和权限机制•进行老系统统计报表的移植工作,保证数据仓库系统中的报表统计结果与原报表统计结果的一致性基于上述需求,安讯软件(上海)有限公司提出如下技术解决方案来实现本项目的技术目标和业务目标。
2技术解决方案2.1 系统总体架构2.1.1逻辑架构总体逻辑架构如下:2.1.1.1 功能层面(上侧面)根据CFETS对应的功能需求,对应的功能层面上需要建立如下功能:•数据的ETL•数据存储•固定统计报表•统一用户界面及Portal认证管理2.1.1.2 非功能层面(右侧面)•易用性•响应性•可靠性•扩展性•安全性2.1.2设计层面2.1.2.1 ETL数据抽取通过成熟的ETL工具,实现从不同的数据源中抽取出所需要的信息,同时通过数据的加工和格式化,对外提供给其他系统使用。
2.1.2.2 报表设计当形成好统一的数据仓库后,基于该仓库模型,可进行对应的报表设计和管理,技术人员设计好基本的报表后,可提供给业务人员使用。
2.1.2.3 报表展现技术人员设计好报表模板后,通过发布到对应的服务器据,实现对报表的展现。
2.1.2.4 报表应用业务人员通过终端界面,可以使用由开发人员开发和设计的报表,同时,业务人员也能同报表进行交互,检索出自己需要的数据。
2.1.3物理架构对于本,外币不同的数据源,以及不同的物理子系统,基本的物理架构如下:物理架构说明:A.本外币数据库向仓库提供对应的数据B.仓库为对应的报表服务器提供统一的视图。
C.权限报表服务器部署到同一机器上。
2.1.4数据架构数据流说明:A.首先从本外币或者其他系统获得对应的数据.B.经过ETL对数据进行加工,清洗和标准化。
C.将已经标准化和模型化的数据进入到数据仓库,或者提供需要的数据文件。
D.数据仓库对外暴露数据模型和数据视图以及sql接口。
E.数据仓库为报表管理系统和下游系统提供所需要的数据F.报表管理系统展现对应数据的报表。
2.2 系统技术实现方案2.2.1总体技术实现方案充分考虑到CFETS系统存在在本外币等多种数据源,且数据源分散,多分散子系统的情况,同时各个子系统中存在统计口径不一致,影响统一的决策和各个部门信息的一致性。
在使用的过程中,会员信息维护复杂,且各个系统各自维护一套对应的会员信息,导致会员维护工作量加大。
数据仓库一期需求大致可以分成数据库架构的建立、ETL机制的建立、以及报表分析架构的建立和报表实施。
系统可以分成数据仓库和报表系统两大部分。
以下是我们建议的系统架构概念图:系统包含一个双机组成的数据仓库,和一个双机组成的报表服务平台。
数据仓库和报表服务器分别带有自己的外存磁盘阵列。
架构中的每个功能节点设计都含冗余度,保证系统不存在单一失败点,满足提供7x24不间断服务的要求。
在系统架构不变的前提下,系统的每部分可以用不同的技术实现。
比如,数据库管理系统可以使用Oracle的技术,也可以使用IBM的技术。
报表技术建议使用Actuate 9。
使用我们建议的应用软件,这样的系统架构会有很强的可扩展性,用户可以通过增加硬件的方式扩容,以支持越来越多的用户和应用。
总体方案通过以下步骤实现数据到可用信息的转换:1.通过ETL手段对不同的数据源数据进行抽取,转换,清洗,数据格式化。
2.通过ETL转化后的数据统一进入数据仓库,形成统一的数据视图。
3.进入数据仓库的数据模型可以为报表平台提供对应的数据来源。
4.通过认证的用户可以登陆报表平台消费和设计对应的报表。
2.2.2高效的ETL处理2.2.2.1 ETL总体处理流程ETL处理流程:1.从本币数据源或其他数据源中抽取需要的数据。
2.ETL对抽取到的数据进行必要的增量处理,生成一天的增量数据。
3.ETL对增量数据进行技术性检核、标准化、转换。
4.产生LDM落地数据文件。
5.落地数据文件下发到下游系统,同时进行数据入库。
6.整个ETL处理过程进行异常处理及监控。
ETL实施我们建议采用成熟的ETL工具,所选ETL工具需要满足如下基本要求:(1)技术架构1) 支持所有的主流平台2) 模块化的架构设计,可按需进行模块添加和扩展3) 具有错误恢复逻辑的功能4) 支持并行处理(2)核心功能1) 支持本地数据访问模式2) 支持星型模式3) 支持打包应用(例如SAP)4) 支持基本处理(例如SQL)5) 具有数据自动转换和清洗功能6) 支持实时ETL和按需ETL7) 具有自动错误预警功能(3)开发环境1) 图形化界面2) 支持命令行3) 便于调试和维护4) 具有代码版本控制功能(4)ETL管理1) 支持集中管理2) 自动产生每日ETL运行报表3) 具有ETL自动和手工调度功能我们相信商业ETL工具中INFORMATICA会是一个很好的选择,开源ETL产品Kettle 则是INFORMATICA之外一个很好的备选。
2.2.2.2 数据仓库模型设计数据建模建模过程:(以常用会计报表为例)1.用户需要查看基于时间、机构和科目的报表。
2.建立以数据事实表为中心,需要时间、机构和度量作为其维度。
3.建立好如上的星型模型后,可发现模型具有如下优点。
4.灵活的数据查询,可基于时间查询对应的日报,月报和季报。
5.效率最优化,需要查询机构信息,则通过机构和事实表关联即可完成。
2.2.3数据质量管理2.2.3.1 数据仓库对数据质量的要求数据仓库对数据质量的要求总体上归纳为:数据完整性,包括数据源是否完整、数据取值是否完整、维度取值是否完整等。
数据准确性,包括数据源是否准确、编码映射关系是否准确、处理逻辑是否准确等。
数据核对准确的判断是要么结果一致,要么不一致但原因是可解释的。
数据一致性,包括源系统之间同一数据是否一致,源数据与抽取的数据是否一致,数据仓库内部各处理环节数据是否一致等。
数据逻辑合理性,主要从业务逻辑的角度判断数据是否正确,如帐目类型的金额、时长、次数的逻辑关系是否满足等。
数据时效性,包括数据处理(获取、整理、加载等)的及时性,数据异常检测的及时性,数据处理回退的及时性等。
数据仓库服务于经营决策,经营决策依据的数据应该是全面的、真实可靠的、有意义的。
数据时效性如果得不到保证,就可能延误了市场人员的分析,失去商机。
从数据仓库的建设过程来看,它本身修复数据以提高数据质量的能力并不是很强,但是它能发现生产系统存在的一些数据质量问题从而提醒用户哪些数据有质量问题,将数据问题反馈到业务支撑系统中,由后者做数据修正。
2.2.3.2 数据质量改进目标数据质量改进的目标是清理、标准化、提高和匹配现有数据。
通过数据整合,建立完整的、准确的、一致的统一客户视图,完善共享信息数据,并使共享信息数据服务于经营分析,为生产系统的改进提供标准。
建立数据整合流程,实现流程定义、流程配置和流程管控。
建立数据整合的规章制度,落实数据质量的分级负责。
建立起数据整合队伍,使数据质量能够得以持续改进。
2.2.3.3 数据质量改进方法数据质量控制要从技术、流程和管理三个方面进行。
从技术层面上,生产系统存在的噪音数据、遗漏数据和不一致性数据,需要进行数据清洗;同时需要对源数据做稽核,如总量稽核和分量稽核。
在流程层面上,对于源数据的抽取要遵从一定的业务规则,数据的抽取和转换需要很多步骤来完成,这就需要将过程流程化,并且流程可通过配置来实现。
在管理层面上,要求生产系统报送数据,按照“谁提供数据,谁负责”的原则由生产系统保证源数据的完整性、准确性、一致性、时效性。
下面是我们在技术层面采取的具体做法。
在ETL架构设计中我们会包括数据质量设计,将数据质量检查脚本加入到ETL流程中,分为技术检查和业务规则检查。
错误分严重程度,如主键重复的就停止ETL流程,等待解决,但低级别的错误不会阻塞ETL过程。