数据仓库开发之路之二--概述整个开发流程

在上篇随笔《数据仓库开发之路之一--准备工作
》中粗略介绍了一下数据仓库项目应用中涉及到的一些知识和工具,其中涉及到了ETL工具DataStage、BI商务智能工具BO(Business Objects),这两款软件都是一个工具包的集合,包含了很多软件集合的。
数据仓库整体项目流程是一个比较复杂的过程,设计到不少内容,从横向来看,一般可以分为:
1)数据整合层,或者称为操作数据层(ODS),根据项目的需要,可以选用。
2)数据仓库层,也就是所谓的DW层。
3)使用BO的Universe设计的数据库语义层,相关于物理表和报表视图的隔离层。
4)使用BO的Infoview设计报表(如Web Intelligence 报表文档)。

其中1、2是数据准备阶段,3,4是数据应用阶段,准备阶段一般使用ETL工具DataStage和自己编写的各类存储过程来实现,后面的应用阶段,主要使用了BO的套件来完成报表的设计及开发展现等工作。
如一般的横向开发流程示意图如下所示:



在DataStage开发过程中,重头戏是使用DataStage Designer来进行各种任务及任务序列的设计工作,然后利用DataStage Diretor进行相关的调度设计即可。在使用DataStage Designer过程中,总结了一下开发流程,大致如下所示:
1)设计细粒度的复制数据的Server Job,然后串联各类表的Server Job(任务)作为一个主题的Job Sequence(任务序列),最后是串联各主题形成一个大主题的Job Sequence。类似于企业从小组到大部门再到大片区(或更大集权部门)的一种向上集权机制。这样的好处是,我们在调度的时候,只需要调度最大一个Job Sequence即可。
2)建立一个调用存储过程的ETL Job(STP Stage类型),并记录结果。这个ETL Job调用的存储过程就是我们自定义进行数据清理加载到数据库的操作,是指从ODS-》DW的数据操作。
3)串联形成一个完整的数据仓库项目Job,如串联1、2点的相关大主题任务为ODS->ETL。
4)使用Director创建执行时间及周期,这样系统可以自动运行进行相关的调度操作了。



在数据仓库开发设计总,ETL是整个过程的核心灵魂,这里的DataStage做了一部分工作,但是数据的清洗和数据仓库加载的操作还需要自己编写很多存储过程来完成,以便达到灵活处理,方便为何之目的。
这里设计到了数据仓库表、视图等的设计以及存储过程的设计编写操作,因此一般需要遵守好各方面的命名规则及协议,以便达到方便维护管理之目的,各种内容分门别类好,对大量表、视图、存储过程等元数据的管理很有帮助。
这里谈谈ETL设计要点:
1)建立表命名、视图、存储过程等内容的命名规则,如数据表比较多,一般建议采用按用户名Schema的方式来区分不同的数据层,如操作数据层ODS,则可以建立一个ODS的用户Schema来进行管理、数据仓库DW层,则建立DW的用户Schema来进行管理,这样可以在逻辑以及表的命名空间上(物理上)区分不同的内容,实现性能的最大化。如下面是一种规则界定:
1)数据仓库中,表及视图的命名规则:表以T
开头,视图以V
开头。下滑线后连接数据仓库主题的拼音缩写,如出租主题即为C
,客运主题即为K
,从业人员主题即为CY
,依此类推。表名及视图名称的主体为汉语拼音,前面两个全拼,后面的以开头字母为缩写。例如:出租的车辆基本信息表为T_C_CheLiangJBXX
。详见下表。

2)如果表数据比较少或者基于其他原因考虑,也可以考虑通过前缀的方式进行区分,如ODS层的数据,如使用ODS_T_Accuse、ODS_T_QIYEPQ这种方式命名、DW层常用时间维度使用DW_DIM_TIME、事实表采用DW_F_H_YUNLIFENXI来表示,DW业务维度采用DW_D_H_DUNWEI来表示。
3)建立不同的Package来存放不同业务范围的存储过程,如维度可用PKG_LOAD_DIM来命名、时间维度可以用PKG_LOAD_DIM_TIME来命名、事实表可以用PKG_LOAD_FACT_TAXI来命名等,包体里面的存储过程要清晰,附带必要的功能说明,最好在文档的一个表格中详细说明包体及存储过程函数的各种信息,如数据库详细说明那样(PKG是业务定义字母,不同业务用不同的区分)。
4)如果采用不同用户Schema来区分不同的数据层的做法,那么需要为DW层、ODS层指定不同的表空间及存储大小等,以便利用不同物理存储带来的性能方面的提升。
如下面是一个存储过程的组织实例图:

设计好数据仓库的相关内容后,接着就是需要进行另外一个重要的操作,就是语义设计和报表设计了,这两项工作是通过BO工具进行完成,前期的工作都是为后面两步进行准备的。
Universe设计,就是在语义层指定表自己的关系,主题的度量值、维之间的层次关系(以便实现报表向上向下钻取的操作),Universe设计,其实就是在报表的使用对象和实际的表对象之间建立一个逻辑对应关系以及隔离关系。



做好这些,就需要在BO的InfoView里面设计好相关的报表,通过选定Universe文件后,然后再主界面中拖拉各种维度以及度量值,就可以很方面的创建各类报表,图表则拖拉报表模板进去,然后拖动维度和度量到模板中,加载数据就可以实现报表的数据显示了,如下所示:



先总结写到这里,有心得再继续记录了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容