浙商银行数据仓库系统高层架构设计文档 联系客服

发布时间 : 星期日 文章浙商银行数据仓库系统高层架构设计文档更新完毕开始阅读

浙商银行企业数据仓库系统

高层架构设计

4.3.4.4 ETL3-数据汇总

ETL3数据汇总主要是把SOR内3NF最细节层次的数据转换成支持分析需求的星型结构数据,同时为了提高生成星型结构数据的性能,我们会把数据先进行一次较低数据粒度的汇总。

由于ETL3主要是大批量数据的join、group by、sum、insert操作,因此此部分工作也主要是通过DB2的SQL语句完成。

对汇总表我们可以将其建成手工更新数据的MQT,使得DB2也能对不直接引用中间汇总表的查询进行优化。具体MQT的使用可以参照前面数据架构和存储中实现中一些特别因素部分。

4.3.4.5 ETL4-生成数据集市

ETL4完成数据集市的建立,依据采用技术的不同,可以采用如下两种方法。 汇总导出

如果导出文件需要落地的话,我们可以直接使用DB2的export命令,将汇总SQL语句直接写在export命令中。可以使用DataStage的导出文件功能。

II直接访问

由于利用DB2 II可以直接进行跨系统跨数据库的SQL查询,因此在数据集市数据库内,也可以利用II直接访问SOR及汇总数据。

4.3.4.6 ETL5-计算KPI

KPI主要是指为满足分析需求而生成的报表和展示等。基于展示方式的不同可以有多种方式: 手工开发基于表的KPI展示

这时KPI数据的存储在DB2的表内,数据的生成可以直接通过手工编写SQL来完成。 基于OLAP工具的KPI展示

这时OLAP工具会自动根据展示的定义从AlphaBloxCube或数据集市的星型结构内计算生成展示界面,无需用户手工编写计算程序。

如果有KPI的发布或报表发布需求,则需要在ETL内调用特定发布系统的内部API或脚本完成数据发布工作。

4.3.5 ETL规范

4.3.5.1 SQL规范

指定列名

禁止在SQL中使用“SELECT *”子句,任何时候都要在SELECT中明确的声明要查询的字段名。这样的SQL不仅看起来比较清晰,也更容易维护,如果基础表中增加了新的字段的话不会对我们的CZB & IBM 机密

Page 28 of 43

浙商银行企业数据仓库系统

高层架构设计

ETL语句产生太大的影响。

EXIT vs IN

如果可能的话就用EXIT代替IN子句,比如:

SELECT … FROM table1

WHERE col1 IN (SELECT col2 FROM table2); 可以重写为

SELECT … FROM table1

WHERE EXISTS (SELECT 1 FROM table2

WHERE table2.col2 = table1.col1);

两表的关联比用IN子句性能会好的多,尤其是如果TABLE2.COL2上有索引的话。 MERGE SQL (UPSERT)

使用DB2提供的MERGE语句可以仅对基础表扫描一遍就能完成插入和更新工作。语法如下所示:

MERGE INTO AS t_tbl

USING (SELECT …

FROM WHERE …

GROUP BY …) as s_tbl ON t_tbl.col1 = s_tbl.col2 WHEN MATCHED THEN UPDATE SET

cola = s_tbl.colb …

WHEN NOT MATCHED THEN

INSERT (cola, …) = (s_tbl.colb);

4.3.5.2 可重运行

任何ETL任务在设计和实现的时候都必须设计成可重运行的,也即如果一个Job失败,那只需调整此Job本身然后重运行这一个Job即可,并且一个Job可以重复运行多次但得到的结果都应该是一致的。要实现这一点,每个Job都必须完整自己的环境准备和垃圾清理工作。

4.3.5.3 DB2 RUNSTATS

由于DB2是一种基于代价的查询优化引擎,DB2会自动选择性能最好的SQL访问计划。DB2能够做到这一点的前提是DB2必须正确的知道各个表的统计信息和索引的情况,也即要用RUNSTATS命令让DB2收集表和索引的统计信息。 CZB & IBM 机密

Page 29 of 43

在ETL任务中如果此任务对表的记录数做了比较大的改变,要求在此ETL任务内通过RUNSTATS更新表的统计信息。

浙商银行企业数据仓库系统

高层架构设计

4.3.5.4 ETL工作流程

在开始工作之前定义工作流程,让开发者理解:在ETL处理过程中,他们开发的部分在哪个地方被调用、为什么这个组成部分是必须的、各个组成部分之间的独立性。一个完整的工作流程必须在EDW设计、ODS设计、数据集市设计交付之前设计完毕,最大可能地去重用前后地处理过程。

工作流程必须遵守以下工作流程: 1. 2. 3. 骤。

4. 5. 6.

主处理过程应该尽可能地重用。

在开始构件所有的处理过程之前,设计师必需完成工作流程模型的设计工作。

每个处理过程可能包含一个或多个步骤,同时处理一个目标表。开发者应该在他们的处理在主要地处理过程中,每个处理过程着重于填充目标系统的一个数据表。 前后的处理过程应保持一致性,例如,预处理、清除、一般的存储

在前后的处理中每个独立的处理步骤应该被创建,尽量在EDW和数据集市里重用这些步

过程内遵照每步的设计文档。

7.

为了完成处理过程的开发,开发者将使用工作流程和源系统和目标系统的映射关系和目标

数据模型进行关联。

8.

开发者将测试自己的处理过程、检验完整性,直到处理过程非常完善。

CZB & IBM 机密

Page 30 of 43

浙商银行企业数据仓库系统

高层架构设计

4.4 应用架构

应用架构描述用户都可以通过何种方式访问数据仓库中的数据。

4.4.1 访问途径

4.4.1.1 网络浏览器

为了给浙商银行的主要用户提供报表和访问信息,将会使用网络浏览器。用户利用网络浏览器访问预定义功能或执行即时查询。

4.4.2 展示内容

4.4.2.1 BST分析主题

BST构建完成后,将会直接通过OLAP的方式提供给用户访问。

OLAP的功能通过为支持最终用户的分析和运用性的数据的动态分析来实例化,包括: ? 计算和建模实现交叉维度 ? 倾向在连续的时间片内分析 ? 为了在屏幕上显示,切片数据 ? 下钻到合并层的下一层

不管数据库的大小和复杂度,OLAP服务器提供始终如一查询响应。通过比较、个性化观察,也可以通过用多种“what-if”数据模型分析历史和计划的数据,OLAP服务器帮助用户综合企业信息。

4.4.2.2 1104报表

1104报表是针对银监会上报需求开放的一套定制的报表应用,提供固定的、格式化的报表数据。 通过提供给用户定制好的应用,集中满足浙商的1104上报和数据访问需求。

4.4.2.3 绩效考核

绩效考核也是在数据仓库之上建立的一套定制化应用,具有独立的页面和访问方法,集中满足浙商的绩效考核需求。

4.4.2.4 输出服务

输出服务把数据按照最终用户需要的格式提交给最终客户。根据用户的需求我们可以把数据通过如下方式“推”给用户:

? 短信:定期发布一些KPI

? PDF格式报表:通过邮件或文件系统定期将生成的报表提供给需要的用户。

CZB & IBM 机密

Page 31 of 43