数据仓库模型建设规范10资料.docx
- 文档编号:6332734
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:34
- 大小:32.24KB
数据仓库模型建设规范10资料.docx
《数据仓库模型建设规范10资料.docx》由会员分享,可在线阅读,更多相关《数据仓库模型建设规范10资料.docx(34页珍藏版)》请在冰豆网上搜索。
数据仓库模型建设规范10资料
数据库房模型建设规范
1.概括
数据库房不一样于平时的信息系统开发,除了依据其余系统开发的需求、剖析、设计、
测试等往常的软件生命周期以外,它还波及到公司信息数据的集成,大容量数据的阶段办理和分层储存,数据库房的模式选择等等,所以数据库房的模型设计异样重要,这也是关系到数据库房项目成败的重点。
物理模型就像大厦的基础架构,就是通用的业界标准,不论是一座摩天大厦也好,仍是茅草房也好,在架构师的眼里,他不过一所建筑,地基—层层建筑—封顶,这样的工序相同也不可以少,关系到住户的安全,房子的建筑质量也一定得以保证,独一的差别是建筑的资料,地基是采纳钢筋水泥仍是石头,墙壁采纳木质仍是钢筋水泥或是砖头;自然资料和建筑细节仍是会有区其余,视用户给出的成本而定;还有不行忽略的一点是,数据库房的数据从几百GB到几十TB不等,即便支撑这些数据的RDBMS不论有多么强盛,仍不行防止地要考虑数据库的物理设计。
数据库房建模的设计目标是模型的稳固性、自适应性和可扩展性。
为了做到这一点,一定坚持建模的相对独立性、业界先进性原则。
2.数聚模型架构
在数聚项目实行过程,我们一般将数据库房系统的数据区分为以下列图所示几个层
次。
2.1.数据架构图
2.2.架构工作方法例范
加载方
表
数据种类
抽取方式
变化
变换方式
类
式
种类
型
新增
改正
维
表
删除
1.
有时间戳
增量变化抽
冲洗变换
2.
数据量巨大
取
表记增修改
3.
交易事务表
增量变化
加载
4.周期数据处
理落地TMP区落地DCI区
新增
事
改正
实
表
删除
维
冲洗变换
表
全量加载
事
落地DCI区
实
1.
无时间戳
表
2.
数据量小的
新增
表
全量抽取
3.
代码表
冲洗变换
维
改正
4.
主数据表
落地TMP区
获取增量
表
5.
初始数据加
表记增修改
增量变化
载
增添时间戳
加载
删除
事
新增
落地DCI区
改正
实
表
删除
加载过程
新增代理键。
插入记录
假如须保存历史,新增代理键。
插入记录
假如不必保存历史,依据代理键改正记录。
若为逻辑删除,可等同改正,或在抽取时过滤。
若为物理删除,则增量抽取没法判断被删除。
依据流水号删除目标表数据,查找代理键,而后再加载增量变化数据.
一般来说,事实表数据不物理删
除,
假如物理删除,增量抽取方式没法判断出来。
只合适系统初始化数据加载,不区分增修改
查找对应代理键,所有加载,
合适数据量小的场合,ETL简单快捷。
新增代理键。
插入记录
假如须保存历史,新增代理键。
插入记
录
假如不必保存历史,依据代理键修
改记录
维表不办理被删除的维度记录。
依据事务流水号,删除目标表。
查找代理键,直接插入目标表。
依据事务流水号,删除目标表.
能够办理物理删除现象。
2.3.准备层L0
2.3.1.主要数据结构
暂时表:
从数据源抽取,直接落地来暂时表。
暂时表老是保存此次抽取的数据,不保存历史数据。
也就是说,假如是全量抽取的话,就是源系统整个表的数据,假如是增量抽取的话,就是自从上一次改正后的数据。
接口表:
从暂时表,经过冲洗、变换抵达接口表。
接口表保存历史数据,也就是说,假如是全量抽取的话,就是源系统整个表的数据,假如是增量抽取的话。
接口表里面也是源系统整个表的数据。
变换表:
为了进行冲洗和变换成立的中间协助表。
2.3.2.命名规范
暂时表:
L0_TMP源系统_详细业务或L0_TMP_业务主题_详细业务(对单调源)
举例:
L0_TMP_POS_SALESORDER
接口表:
L0_DCI_业务主题_详细业务表
举例:
L0_DCI_SALES_SALESORDER
变换表:
L0_MAP详细业务表
举例:
L0_MAP_SALES
2.3.3.开发工作
开发数据抽取接口,落地TMP区
开发数据冲洗变换程序,落地DCI区,多源系统进行归并
开发数据装载程序,装载到L1层
2.4.原子层L1
2.4.1.主要数据结构
维度表:
整个数据库房一致的维度
代码表:
维度属性,非维度代码等。
原子事实表:
依据业务主题,形成原子事实表
汇总事实表:
依据剖析主题,业务主题形成归并或汇总的事实表。
2.4.2.命名规范
维度表:
DW_DIM维度。
举例:
组织维DW_DIM_ORG日期维DW_DIM_DATE.
代码表:
DW_CODE代_码。
举例:
性别DW_CODE_GENDER
原子事实表:
L1_DW_FACT剖析主题_详细剖析
汇总事实表:
L1_DM_FACT剖析主题_详细剖析
2.4.3.开发工作
保护齐集。
衍生计算,二次指标计算。
2.5.应用层L2
2.5.1.主要数据结构
宽表:
依据需求,从L1层抽取成宽表,表现形式为固定报表,仪表盘等等。
立方体:
依据剖析主题,从L1生成OLAP立方体。
视图:
依据需要,从L1,L0层产生L2层的视图。
前端应用,不不过能够利用L2层的数据结构,还可以够利用
统,还可以够利用L0层的DCI区数据,能够做详单和明细查问
L1层的数据结构。
对于源系
。
2.5.2.命名规范
宽表:
L2_FACT_【应用主题】_【剖析主题】_应用。
举例:
L2_FACT_FIN_ZCFZB财(务->财产欠债表)
立方体:
依据剖析主题,从L1生成OLAP立方体。
视图:
依据需要,从L1,L0层产生L2层的视图。
如明细单。
举例:
L2_VIEW_原L1层表。
2.5.3.开发工作
数据从L1层经过计算,汇总,依据前端剖析需求,形成能够有效支撑前端应用查问的结构。
3.建模方法
要成功地成立一个数据库房,一定有一个合理的数据模型。
数据库房建模在业务需
求剖析以后开始,是数据库房结构的正式开始。
在创立数据库房的数据模型时应试虑:
知足不一样层次、用户的需求;兼备查问效率与数据粒度的需求;支持用户需求变化;
防止业务营运系统性能影响;供给可扩展性。
数据模型的可扩展性决定了数据库房对新
的需求的适应能力,建模既要考虑眼前的信息需求,也要考虑将来的需求。
目前两类主流的数据库房模型分别是由Inmon提出的公司级数据库房模型和由
Kimball提出的多维模型。
Inmon提出的公司级数据库房模型采纳第三范式(3NF),先
成立公司级数据库房,再在其上开发详细的应用。
公司级数据库房诚然是我们所追求的
目标,但在缺少足够的技术力量和数据库房建设经验的状况下,依据这种模型设计的系统建设过程长,周期长,难度大,风险大,简单失败。
这种模型的长处是信息全面、系统灵巧。
因为采纳了第三范式,数据储存冗余度低、数据组织结构性好、反应的业务主
题能力强以及拥有较好的业务扩展性等,但同时会存在大批的数据表,表之间的联系比许多,也比较复杂,跨表操作多,查问效率较低,对数据库房系统的硬件性能要求高等
问题。
另一方面,数据模式复杂,不简单理解,对于一般计算机用户来说,增添了理解数据表的困难。
Kimball提出的多维模型降低了范式化,以剖析主题为基本框架来组织数据。
以维
模型开发剖析主题,这样能够快速实行,快速获取投资回报,在获得实质成效的基础上,再渐渐增添应用主题,顺序渐进,累积经验,逐渐建成公司级数据库房。
这也能够说是采纳总线型结构先成立数据市集,使所有的数据市集拥有一致的维定义和一致的业务事
实,这种方法交融了自下而上和自上而下两种设计方法的思想。
这种模型的长处是查问速度快,做报表也快;弊端是因为存在大批的预办理,其建模过程相对来说就比较慢。
当业务问题发生变化,本来的维不可以知足要求时,需要增添新的维。
因为事实表的主码由所有维表的主码构成,所以这种维的改动将是特别复杂、特别耗时的。
并且信息不够全面、系统欠灵巧、数据冗余多。
本规范我们主要针对维度建模的方法来论述规范。
3.1.维度建模
多维数据建模以直观的方式组织数据,并支持高性能的数据接见。
每一个多维数据模型由多个多维数据模式表示,每一个多维数据模式都是由一个事实表和一组维表构成的。
多维模型最常有的是星形模式。
在星形模式中,事实表居中,多个维表呈辐射状散布于其周围,并与事实表连结。
位于星形中心的实体是指标实体,是用户最关怀的基本实体和查问活动的中心,为数据库房的查问活动供给定量数据。
每个指标实体代表一系列有关事实,达成一项指定的功能。
位于星形图星角上的实体是维度实体,其作用是限制用户的查问结果,将数据过滤使得从指标实体查问返回较少的行,进而减小接见范围。
每个维表有自己的属性,维表和事实表经过重点字有关系。
使用星形模式主要有双方面的原由:
提升查问的效率。
采纳星形模式设计的数据仓
库的长处是因为数据的组织已经过预办理,主要数据都在宏大的事实表中,所以只需扫
描事实表便可以进行查问,而不用把多个宏大的表联接起来,查问接见效率较高。
同时
因为维表一般都很小,甚至能够放在高速缓存中,与事实表作连结时其速度较快;便于用户理解。
对于非计算机专业的用户而言,星形模式比较直观,经过剖析星形模式,很简单组合出各种查问。
3.2.建模步骤
第一步:
选用建模的业务过程
设计过程的第一步是确立要建模的业务过程或许胸怀事件。
业务过程是在业务需求采集过程明确下来。
在好多的生产活动中,存在着好多价值链,这些价值链就是有一系列的业务过程来构成的。
比方在供给链管理中。
存在着下边的业务过程:
原资料购置
原资料交货
原资料库存
资料账单
生产制造
将产品运到库房
制成品库存
客户订单
为客户送货
货物计价
付款
退货
第二步:
定义模型的粒度
业务过程被确立下来后,就建模师就一定申明事实表的粒度。
清楚地定义事实
表的行究竟代表什么在提出业务过程维度模型的过程至关重要。
假如没有在事实表的粒度上达成一致,那么设计过程就不行能成功地向前推动。
第三步:
选定维度
一旦事实表的粒度已经牢固地确立下来,对维的选择就相当简单了。
也正是在此时,便可以开始考虑外键的问题了。
一般来说,粒度自己便可以确立一个基本或许最
小的维度会合,设计过程就是在此基础上增添其余维。
这些维在已经申明的事实表粒度都有一个独一对应的值。
第四步:
确立事实
四步设计过程的最后一步是认真选择合用于业务过程的事实和指标。
事实能够从胸怀事件中采纳物理手段捕获,或许也能够从这些胸怀中导出。
对于事实表粒度来说,每
个事实都是一定设计存在的,不要将那些明确申明的粒度不相般配的其余时间段的事实或许其余细节层次的事实混淆进来。
4.维度表设计
维度表包括内容:
1)代理键:
整型,不行重复,独一表记每一条记录,不包括任何商业信息。
(必选)
2)代理键有效开始时间和结束时间。
(必选)
3)目前有效标记。
(必选)
4)主键:
传统意义的业务键,包括相应的商业信息,如职工编号。
(必选)
5)名称:
数据剖析时显示的内容,如职工名称等;(必选)
6)排序键:
自定义序列。
(可选)
7)自定义汇总:
利用自定义表达式进行特定的数据运算。
可选)
8)父键:
父子维度顶用来表记主键的上司。
(可选)
9)一元运算符:
在父子维度顶用来定义上下级的汇总关系。
(可选)(详尽)
10)
属性:
属性包括有关维度的信息。
比如,Customer维度能够包括Name、Phone
Number、Gender、City、State等属性。
属性经过属性层次结构显示出来。
维度中
的属性层次结构同时包括可选的(All)级别和该属性的非重复成员。
比如,
Customer维度能够包括拥有两个级其余Name属性层次结构:
(All)级别以及为每
个姓名包括一个成员的级别。
父子层次结构的办理方式有所不一样。
属性不必定要拥有属性层次结构。
假如未创立属性层次结构,多维数据集的空间将与属性没关。
比如,往常不会为PhoneNumber属性创立属性层次结构,因为往常不会按电话号码导航维度。
假如没有为属性创立属性层次结构,则该属性可用作成员属性,但不可以
用作用户层次结构中的级别。
属性能够经过前端显现软件进行显现。
(可选)
11)属性层次结构:
属性层次结构完好定义多维数据集的空间。
多维数据集是由多维数据集的属性层次结构的交集产生的多维空间。
(可选)
4.1.时间维度
时间维度是必不行少的一个维度,能够参照以下的模板:
NameCodeDataTypeLength
日期代理键DATE_PKINTEGER
日期描绘
DATE_DESC
VARCHAR2(8)
8
日期长描绘
DATE_LDESC
VARCHAR2(20)
20
日期中文描绘
DATE_CNDESC
VARCHAR2(20)
20
天
DAY
NUMBER
天中文
DAYCN
VARCHAR2(10)
10
月
MONTH
NUMBER
月中文
MONTH_DESC
VARCHAR2(10)
10
年
YEAR
NUMBER
年中文
YEAR_DESC
VARCHAR2(10)
10
年代
YEARM_ONTH
VARCHAR2(6)
6
周月
WEEKMONTH
NUMBER
周月中文描绘
WEEK_MONTH_CNDESCVARCHAR2(20)
20
年中第几周
WEEK_YEAR
NUMBER
年中第几周描绘
WEEK_YEAR_CN
VARCHAR2(20)
20
周几
WEEKNO
NUMBER
周几中文描绘
WEEK_CN
VARCHAR2(10)
10
旬
XUN
NUMBER
旬中文
XUNCN
VARCHAR2(10)
10
季度
QUARTER
NUMBER
季度中文
QUAR_CN
VARCHAR2(10)
10
能否周末
IF_WEEKEND
VARCHAR2(10)
10
能否月底
IF_MONTHEND
VARCHAR2(10)
10
节假日名称
HOLIDAY
VARCHAR2(10)
10
上月同一天
LASTMONTH_DAY
VARCHAR2(8)
8
昨年同一天
LASTYEAR_DAY
VARCHAR2(8)
8
4.2.层级维度
层级维度也是我们模型设计最常遇到的维度,比方组织结构,地区,产品树,行业结构等等。
在设计时,能够采纳以下模板:
针对数据储存时,采纳自关系的结构:
Name
Code
DataType
Length
组织代码
ORG_CODEVARCHAR2(20)
20
上司组织代码
PORG_CODEVARCHAR2(20)
20
组织名称
ORG_NAMEVARCHAR2(100)
100
上司组织名称
PORG_NAMEVARCHAR2(100)
100
组织种类
ORG_TYPEVARCHAR2(20)
20
组织层级
ORG_LEVELVARCHAR2(20)
20
组织描绘
ORG_DESCVARCHAR2(200)
200
组织简称
ORG_SNAMEVARCHAR2(20)
20
组织地址
ORG_ADDRVARCHAR2(100)
100
针对数据显现时,将自关系的结构睁开,以列储存层次:
依据需要能够把组织层级详细化。
Name
Code
DataType
Length
组织代理键
ORG_KEY
INTEGER
组织代码
ORG_CODE
VARCHAR2(30)
30
组织名称
ORG_NAME
VARCHAR2(50)
50
组织描绘
ORG_DESC
VARCHAR2(100)
100
组织简称
ORG_SNAME
VARCHAR2(50)
50
组织层级
ORG_LEVEL
VARCHAR2(30)
30
组织种类
ORG_TYPE
VARCHAR2(20)
20
上司组织代码
ORG_PCODE
VARCHAR2(30)
30
上司组织名称
ORG_PNAME
VARCHAR2(50)
50
组织1级代码
ORG_1_CODE
VARCHAR2(50)
50
组织1级名称
ORG_1_NAME
VARCHAR2(50)
50
组织2级代码
ORG_2_CODE
VARCHAR2(50)
50
组织2级名称
ORG_2_NAME
VARCHAR2(50)
50
组织3级代码
ORG_3_CODE
VARCHAR2(50)
50
组织3级名称
ORG_3_NAME
VARCHAR2(50)
50
组织4级代码
ORG_4_CODE
VARCHAR2(50)
50
组织4级名称
ORG_4_NAME
VARCHAR2(50)
50
组织5级代码
ORG_5_CODE
VARCHAR2(50)
50
组织5级名称
ORG_5_NAME
VARCHAR2(50)
50
组织6级代码
ORG_6_CODE
VARCHAR2(50)
50
组织6级名称
ORG_6_NAME
VARCHAR2(50)
50
组织7级代码
ORG_7_CODE
VARCHAR2(50)
50
组织7级名称
ORG_7_NAME
VARCHAR2(50)
50
组织8级代码
ORG_8_CODE
VARCHAR2(50)
50
组织8级名称
ORG_8_NAME
VARCHAR2(50)
50
代理键开始时间
KEY_STARTDATEVARCHAR2(30)
30
代理键结束时间
KEY_ENDDATE
VARCHAR2(30)
30
有效标记
CURRENT_FLAG
INTEGER
改正时间
KEY_MODIFYDATEVARCHAR2(30)
30
4.3.迟缓变化维
迟缓变化维定义
数据会发生迟缓变化的维度就叫”迟缓变化维”。
举个例子就清楚了:
在一个零售业数据库房中,事实表保存着各销售人员的销售记录,某天一个销售人员从北京分公司调到上海分公司了,那么怎样来保存这个变化呢?
也就是说销售人员维度要怎么合适的办理这一变化。
先往返答一个问题,为何要办理,或保存这一变化?
假如
我们要统计北京地域或上海地域的总销售状况的时候,这个销售人员的销售记录应当算
在北京仍是算在上海?
自然是调离前的算在北京,调离后的算在上海,可是如标记这个
销售人员所属地区?
这里就需要办理一下这个维度的数据,即我们迟缓变化维需要做的
事情。
办理迟缓变化维一般按不一样状况有以下几种解决方案:
4.3.1.新数据覆盖旧数据
此方法一定有前提条件,即你不关怀这个数剧的变化。
比如,某个销售人员的英文
名改了,假如你不关怀职工的英文名有什么变化则可直接覆盖(改正)数据库房中的数据。
4.3.2.保存多条记录,并增添字段加以区分
这种状况下直接新添一条记录,同时保存原有记录,并用独自的专用的字段保存差别。
如:
(以下表格中Supplier_State表示上边例子中所属地区,为描绘清楚,不用代理键表示)
Supplier_key
Supplier_Code
Supplier_Name
Supplier_State
Disa
001
ABC
PhlogisticalSupplyCompany
CA
002
ABC
PhlogisticalSupplyCompany
IL
或:
Supplier_key
Supplier_Code
Supplier_Name
Supplier_State
Version
001
ABC
Phlogistical
CA
0
SupplyCompany
002
ABC
Phlogistical
IL
1
SupplyCompany
以上两种是增添数据版本信息或能否可用来表记新旧数据。
下边一种则是增添记录的奏效日期和无效日期来表记新旧数据:
Supplier_kSupplier_CoSupplier_NaSupplier_StaStart_DatEnd_Date
ey
de
me
te
e
001
ABC
Phlogistica
CA
01-Jan-20
21-Dec-20
lSupply
00
04
Company
002
ABC
Phlogistica
IL
22-Dec-20
lSupply
04
Company
空的End_Date表示目前版本数据,或许你也可一用一个默认的大时间
(如:
12/31/9999)
来取代空值,
这样数据还可以被索引辨别到.
4.3.3.不一样字段保存不一样值
Supplier_Supplier_NOriginal_Supplier_Effective_DCurrent_Supplier_
keyameStateateState
001Phlogi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据仓库 模型 建设 规范 10 资料