商业银行企业级数据仓库系统架构设计书(共41页).doc
《商业银行企业级数据仓库系统架构设计书(共41页).doc》由会员分享,可在线阅读,更多相关《商业银行企业级数据仓库系统架构设计书(共41页).doc(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上商业银行企业数据仓库系统系统架构设计书文档变更历史:版本修订日期修订者变更摘要分发:本文档已经被分发到:名称部门职位专心-专注-专业目录1 概述1.1 背景 企业数据仓库系统是以业务支撑应用系统的数据以及其他相关数据作为基础数据源,采用科学的数据抽取、整理、存储等方法,建立企业级数据仓库;然后通过丰富的数据分析和挖掘方法找出这些数据内部蕴藏的大量有用信息,对客户、业务、市场、收益、服务、等各方面情况进行科学的分析,从而为市场决策管理者和市场经营工作提供及时、准确、科学的辅助决策依据。目前行内已经有许多业务支撑应用系统,但是各个系统相对独立,信息共享困难,无法从整个企业
2、和单一视图的角度对数据进行深入分析和挖掘,无法为高层管理和决策提供强有力的依据,无法满足快速变化的市场的需求。为了能准确把握市场运行规律和客户需求,以便在激烈竞争中做出正确及时的决策,本工程将建设银行企业数据仓库系统。本工程的建设目的使*银行更加充分利用业务支撑应用系统产生的大量宝贵信息资源,对生产经营和业务发展趋势做出科学合理的预测,从而帮助*银行及时掌握市场动态,准确地把握市场脉搏,及时制定高效合理的营销策略,更好地适应日趋激烈的市场竞争环境。企业数据仓库系统不但可以为企业制定和调整经营策略提供重要依据,更可成为企业发展的驱动中心,确保*银行在日益激烈的市场竞争中确立主导地位。1.2 目的
3、本文件的目的在于简要阐释整个商业智能环境和它的组成部份。这些部份包括硬件,软件和将会被购买或开发的满足需求的知识产权。这份文件提供详细设计和架构的框架,这份文件包括: l 描述目标环境所有技术细节的概要设计和总体结构;l 阐释用于建立系统所购买的厂商设备;l 阐释或叁照在本项目中使用的标准和指导方针;;l 阐释架构和设计原则;l 定义将要用到的术语;l 在它得到认同形成基础后,我们将继续对此文档进行扩充。为了使这份文档成为有效的资源,应该及时更新这份文档。1.3 适用对象这份文件适用对象是本项目团队成员或想对决策分析系统有全局掌握的业务人员、业务分析人员、架构师、部门经理与领导和其它需要使用这
4、份文件了解决策分析商业智能环境提供功能的其他项目组人员。1.4 范围这份文件的重点在于描述所有对*银行决策分析环境有用的系统和组成部分。在项目实施过程中,将提供一份关于需要客户化开发的组成部件的详细说明,和现有组成部件的总结性描述。1.5 叁考文档2 概念性体系构架IBM 概念性应用体系架构叙述了将要用于此方案的应用程序及主要组成成分。这个图表提供IBM参考体系架构的概要版本,这是专为非科技业务人员所备的。它使用了许多业务人员所熟知的术语。2.1 数据源数据来源层标识了公司内外所有有效的数据源。2.2 数据仓库本层被分为SSA、SOR和数据集市三部分。这些数据仓库不是操作型数据库的替代品或复制
5、品,而是这些源数据系统的补充,它被改造成一个用于决策和业务管理的数据库。2.3 分析分析层提供了分析软件,支持各种各样的应用,从固定报表到平衡记分卡。为满足特定需要,分析层将由各种各样各种领域最好的软件和工具组成。2.4 交互参考功能从逻辑层到支持具体的环境,我们需要额外的技术流程和交互。这些额外的组成部分使系统拥有动态性和可控性。这些额外因素有硬件,安全保密机制及其实施和系统管理。3 参考体系架构这是IBM用来描述商业智能环境的主要参考体系架构。它是为科技人员或具有深厚科技背景的商业用户所准备的。为保证每一层易于理解,IBM区分了各层的差异并加入必要的细节,使得此参考体系结构成为概念性体系结
6、构的拓展。4 技术体系架构 如上图所示,整个数据仓库在技术上大概可以分为5个主要的模块,它们分别是: 1. 源数据和数据接口2. 数据架构3. ETL处理和控制4. 应用架构5. 软硬件架构在接下来的小节中我们将分别对这5个主要的模块进行详细的描述。4.1 源数据和数据接口数据接口架构描述了数据从数据源到到数据仓库过程中所遵循的规范和架构,如下图所示: 4.1.1 数据源数据仓库系统将采用文本文件的方式从源系统获取数据。每个源系统会就与EDW之间就传输数据接口文件(IFF)的格式和方法制定标准,称之为接口规范。每个数据源会首先通过各自的数据导出程序(Extractor)生成接口文件存储在各自的
7、文件缓冲区内。这个Extractor负责各自范围内导出数据的完备性和一致性,包括:1. 依照各自的业务规则确定增量数据的导出方法2. 保证导出文件的格式符合接口规范的要求3. 保证导出文件的传输时间的及时性4. 保证接口文件的数据质量,不错数、不丢数、不多数4.1.1.1 数据源范围在编写本文档的时候,总共有5个系统的数据被确定在范围之内。以下表格概述了将要实施的每一个数据源(用于数据初始加载、数据增量加载或两者均可)的阶段。阶段系统名称数据源类型第1阶段核心业务系统DB2信贷系统DB2资金交易系统SQL Server第2阶段财务系统国际结算系统在选择使用哪个数据源系统来满足数据要求上,数据很
8、可能地来源于一个或多个数据源系统。介于此原因,必须为物理模型的所有数据表选择一个记录系统。当有多个可供选择的数据源时,在选择数据源上必须遵循以下设计原则:1如果有可能就使用最原始的数据来源,不要使用副本或复制本2源数据系统数据应该是完整的。3源数据系统数据应该是最新的。4源数据系统数据应该是高质量的。4.1.2 文件缓冲区文件缓冲区是一块在数据仓库之外的存储区域,它是接口文件的暂存地,可以是在每个源系统上,也可是在独立的接口机上。接口文件先放到文件缓冲区,然后在到数据仓库的接口文件区。此区域不属于数据仓库范围,相应的其存储空间的分配和维护也不属于数据仓库项目范围。4.1.3 接口文件区接口文件
9、区是数据仓库架构内存放接口文件和对接口文件进行处理的地方。数据仓库中的ETL程序负责维护此区域。为了合理的组织接口文件区的内容,我们把接口文件区按如下目录结构组织,假设$IFF_Home代表接口文件区根目录(IFS:Interface File Staging):目录内容$IFF_Homeinb所有源系统传过来的接口文件$IFF_HomewrkETL过程中的临时文件和ETL文件处理结束后结果文件的存放地$IFF_Homearc备份文件$IFF_HomelogETL处理日志及拒绝文件存放地$IFF_Homeout数据仓库导出文件inb(Inbox)-当前正在处理的接口文件IFF。每个IFF传输到
10、这里后,首先根据文件验证规则进行一致性检查,验证通过后,就表明这个文件是有效的,然后将此文件登记到数据仓库的调度系统内,然后针对这个文件可以进行进一步的处理。wrk(Work)-工作目录。基于文本的ETL程序在此目录内把接口文件转换成可以装载数据仓库的load文本,load成功后,此文件连通原始接口文件可以压缩后放到arc目录下做备份处理。如果ETL过程中发现文件错误,则将错误文件放到log目录下。log-日志目录。ETL运行过程中的日志和发生错误的接口文件都存放在此目录。out-导出目录。需要传给数据仓库以外系统的数据,全部安装目标系统分类放在此目录内。arc-备份目录。存放历史接口文件。接
11、口文件处理完毕后,将按业务类型和日期移动到此目录。然后在此目录完成数据备份。IFF文件以固定的时间间隔由数据仓库从文件缓冲区拉到接口文件区,或者由源数据系统把数据从文件缓冲区推到接口文件区。不管以何种方式,在源数据系统和数据仓库之间都应该有一个握手机制来保证文件传输的完备性,即因为在网络上传输数据文件需要时间,数据仓库系统如何知道文件是否已经传完了。在接口规范上,我们要求源数据系统在传输完每个数据文件后,立刻创建一个与数据文件同名并以“.end”结尾的文件,文件内容为空或包含一些简单的数据文件验证信息,来告诉数据仓库说我这个文件已经传完了。对于inb、wrk、和arc目录,进一步按照数据源和数
12、据类型划分目录:目录内容$Home acms授信系统数据$Home acms daily授信系统日变化数据$Homeacmsmonthly授信系统月变化数据$Homezsrun核心系统数据$Homeopics资金系统数据参考详细目录结构:4.2 数据架构和存储数据架构描述数据在数据仓库系统内如何组织和存储。数据架构的主要模块如下图所示:数据仓库和数据集市都存储在一个DB2数据库内,各个不同的数据在DB2内按不同的schema来区分。数据集市存储在DB2 CubeView内,多维立方体存储在AlphaBlox内。每个应用(1104和绩效考核)有自己独立的数据库。接下来我们分别对每个数据区域做详细
13、介绍。4.2.1 接口文件区接口文件区是存储和处理接口文件的区域,如前面章节所述,接口文件区在Unix系统下按照特定的目录结构组织起来。用Unix的一些系统命令和工具来管理。对每个目录按照其特定的用途设定对不同用户的访问权限,比如谁能读,谁能写,谁能改等。接口文件区数据的处理工具主要是DataStage,附加以Unix脚本和一些自己开发的特定程序。4.2.2 数据仓库4.2.2.1 细节数据暂存区SSA(SOR Staging Area)SSA的主要目的是支持把接口文件的装载到数据库,对其进行验证和处理,然后把数据整合到SOR内。验证的方法主要是将新转载的数据与SOR内已有的数据进行查找和比较
14、。SSA内数据结构的设计原则是最大限度的利用接口文件的数据结构,尽量降低实体的个数,同时很好的支持后续的ETL过程。当然在物理表的设计上一些DB2的特性也要考虑,比如合理的选择表的分区键,以最大限度的发挥DB2的并行特性。SSA里面的表的用途基本都是临时的,每次数据装载都会清空,因此对这些表的处理可以不记日志,以加快处理速度。4.2.2.2 细节数据SOR(System Of Record)SOR是基于BDW开发的一套符合3NF范式规范的表结构。SOR存储了数据仓库内最细节层次的数据,按照不同的主题域进一步分分类组织。此模型是整个数据仓库数据模型的核心,其设计为具有足够的灵活性,以能够应对添加
15、更多的数据源,支持更多分析需求,同时也能够支持BDW进一步升级和更新。为了能够在数据仓库内记录数据的变化以支持历史趋势和变化分析,SOR在一些关键的属性值上会跟踪变化(比如客户的信用度、状态等)。跟踪变化的常见方法就是利用渐变维的Type 2方法来处理记录,在表内增加一条记录变化数据的新记录。同时为了降低不必要的存储空间的浪费(相同数据的重复存储),我们可以把实体中动态变化的属性与静态不变或只需覆盖不需跟踪变化的属性分开。比如对用户,我们可以用一张表存放不变化的用户静态属性,用另一张表存放经常变化的用户行为属性,当跟踪用户行为的变化时我们只需在用户行为表内添加记录就行了,没必要把没有发生变化的
16、用户静态表内的数据也复制一份。SOR显然是整个数据仓库中数据量最大的部分,为了提高此部分数据处理的性能,DB2内一些提供性能的特性必须在这里仔细考虑,比如创建索引,分区键的选择等。但索引同时也会降低数据更新的性能并且占用存储空间,因此索引一定要选择在经常用到的键值或属性上。同时不同索引的类型对性能也会有相当的影响,因此创建索引的时候也需要仔细考虑。数据的分区策略体现在两个方面,一个是存储层面一个是处理层面,处理层面我们在接下来的ETL架构中讨论。就存储层面来说,一是通过分区键数据自然的按照hash算法均匀的分布到DB2数据库的各个分区上,还有就是对于一些数据量特别大的表,我们需要手工的按照数据
17、范围把表分区,比如帐单表之类的,就可以按照帐单时间分成不同的表。手工把表拆开会增加ETL处理过程的复杂性,但相应的也带来处理性能的提高。SOR内另一个性能相关的是代理主键(surrogate key)的生成。代理主键是一个唯一的、单列的、数值类型的属性值,用来代替源数据中自然主键。一方面数值型主键会提高查询、关联和索引的性能,另一方面最关键的是隔离源数据系统数据变化对数据仓库的影响。代理键的生成可以基于DB2内的序列对象,然后此键值在所有引用同一对象的实体内共享。在SOR逻辑模型的物理化时,不同的物理化方法得到的模型对数据库的性能也有较大的影响,为了提高数据装载和访问的性能,保持物理模型的简单
18、性,在物理化SOR模型时我们将权衡使用如下3种方法:1. Lookup合并到父实体2. 子实体合并到父实体3. 父实体合并到子实体4.2.2.3 汇总数据区Summary汇总数据区是为了方便查询和后续多维数据的更新,创建一些常用的中间汇总表,以提高性能和降低后续ETL工作的复杂性。由于SOR是高度规范化的数据,因此要完成一个查询需要大量的关联操作;同时数据集市中的数据粒度往往要比SOR高很多,对要成生数据集市所需数据也需要大量的汇总计算,因此如果我们把常用的数据预先关联和汇总好,并让其尽量多在多个数据集市的计算中共享,就能大幅度的提高整个ETL工作和数据仓库查询的性能。4.2.2.4 反馈数据
19、区(Feedback Area)反馈数据区主要记录的是数据仓库自身生成的结果。比如用户对营销活动的反馈等。数据仓库的特性决定了用户在原则上不能直接修改数据仓库中的数据,因此用户的修改数据和其它生成数据必须单独记录,以便于追踪历史和进行比较。4.2.2.5 元数据存储MDR(Meta Data Repository)元数据存储用来保存关于数据仓库中的过程、数据的信息(日志、数据词典、配置信息等)。由于各个工具和系统都会生成自己的元数据,同时我们还利用元数据管理工具把这些元数据尽可能的集中存储到数据仓库中的MDR内,因此MDR总的来说只是一个共享元数据供用户集中访问的地方,真正元数据的维护地还是在
20、生成这些元数据的系统或工具内。元数据的管理和存储将会用到文件系统、建模工具、数据库等多种途径。在数据仓库内,元数据可以被分成三种类型:业务、技术、和操作型元数据。1. 业务定义(业务元数据)业务元数据在业务层面最终用户感兴趣的元数据,通常包括业务指标的含义、计算规则,数据概念分类,属性的业务含义等。2. 技术规范(技术元数据)技术元数据是指支持数据仓库运行的各种技术定义和规范。它通常是各种配置信息,较少直接被最终用户访问。比如表的定义,ETL Job的配置,调度信息等。3. 操作状态(操作型元数据)操作元数据是指数据仓库运行中各个组成部分的实际状态和日志。它记录了整个数据仓库运行的过程,方便对
21、数据仓库进行跟踪和调试。这类元数据通常存储在用户定义的表内。比如数据仓库的各种统计信息,ETL运行日志等。4.2.3 数据集市和多维立方体4.2.3.1 多维数据存储多维数据存储包含一系列多维数据模型(符合星型模式或雪花模式的关系表)。每个多维数据模型由一个数据表和几个外键表组成,一个称为事实表,英文称为”Fact Table” ,其他的表称为维度表。每个维度表含有单一的主键,这个主键和事实表里一个键相对应。这个类似于星形的结构通常被称作星形连接。一个事实表经常包含一个或多个数字指标,或“事实,英文称为Fact”,定义每个记录的键值组合。在事实表最有用的东西是数字和可以相加的东西。相加是很重要
22、的,因为数据仓库的应用程序不会检索单个的事实表,相反,他们会同时取回上百、上万、甚至上亿条记录,唯一有用的事情是把这些记录相加。通过对比,维度表通常含有描述信息。维度属性被用于在数据仓库查询里大部分有用约束的来源,实际上他们是SQL查询返回结果集的行表头。维表相对事实表来说都很小。这些小表一般都可以Cach在内存内,从而在与大的事实表关联时具有比较好的性能。维表的可以设计为完全反范式化的,这时与一个维相关的所有层次都合并到最底层的维表内,这时的多维模型就体现为一个事实表带很多维表的“星型”结构;同样也可以选择维中不同的层次的数据在各自的表内,这时在结构上体现出来的就是,事实表与很多底层维表关联
23、,然后维中层次结构上的各层维表有与其更高层次维表关联,展现出“雪花”结构。为了保证对DB2内多维数据查询的性能,IBM在DB2内引入的物化查询表MQT(Materialize Query Table)的概念。MQT是基于一个查询(比如关联、汇总等)构造出来的表,表的内容就是这个查询得到的结果集,这个结果集物理的存储在数据库表内。MQT的作用相当于一个DB2查询优化器知道的一个中间表。当用户提交一个对底层细节表的查询时,如果这个查询能等价的转换成对这个MQT中间表的查询,DB2就会自动的从MQT中取得数据返回给用户。由于一般从MQT中取数的代价会比直接从细节数据取数小得多,尤其是对于含有汇总、关
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商业银行 企业级 数据仓库 系统 架构 设计 41
限制150内