该系列博文为《数据仓库 Building the Data Warehouse》一书的读书笔记,笔者将书中重点内容进行概括总结。大致保留书中结构,一部分根据自己的理解进行调整。如发现问题,欢迎批评指正。
《数据仓库》读书笔记:第6章 分布式数据仓库
1. 分布式数据仓库的类型
1.1 局部数据仓库和全局数据仓库
-
产生原因
业务在不同地域或不同生产线进行,数据将会以集中(即全局数仓)和分布方式(如局部数仓)存在。 -
分支机构与总部关系演化
- 局部数据仓库与全局数据仓库的特征
局部数据仓库 | 全局数据仓库 |
---|---|
包含局部站点上的历史和集成的数据 | 涉及整个企业或组织的业务,包含了必须在企业级集成的信息(如财务信息) |
局部数仓之间数据或数据结构不需共享和协调一致 | 局部数仓必须和总部全局数仓共享数据 |
分支机构的数据必然以关系型 的方式在低粒度级别上进行组织(如果是星型连接的多维模型,分割重组后给全局数仓提供数据很困难) | 全局数仓并不符合典型数仓结构,细节数据存在于分支机构,轻度综合数据存在于集中全局层 |
-
局部到全局的映射(分布式数据仓库环境成功的关键)
将局部操作型系统中的数据映射到全局数据仓库的结构中。
映射的方式由局部商业行为决定。
该映射决定了哪些数据要进入全局数据仓库,数据的结构,必须要做的转换。
分布式全局数据仓库的结构和内容是集中决定的,而进入全局数据仓库的数据映射是局部确定的
。 -
全局和局部数据的重叠
除了少量数据的偶然重叠外,应当对局部数据和全局数据实行互斥。
全局和局部数据冗余/重叠带来的的问题:
① 表明了没有正确定义不同级别的数据仓库所辖的范围;
② 将会出现蜘蛛网系统;
③ 其它问题,如不一致的结果,创建新系统困难,操作代价大等。
- 局部和全局数据存取
原则上,局部数据应局部使用,全局数据应全局使用。
Q1: 为什么有些全局分析要在局部处理?
例如,为了提高局部业务运作,分公司分析人员需要进行全局性的思考,但并不是全局性决策者。
Q2: 在体系结构化信息环境中信息请求的路径选择问题(在分布式数仓中,如何确保信息来自正确的地方)?
例如,通过查询局部站点来确定整个公司的情况是错误的。
Q3:
数据从局部数仓到全局数仓的传输?
需要考虑很多因素:传输的频率,是否合法,使用什么网络,是否安全可靠,使用什么技术等。
1.2 技术分布式数据仓库
-
产生原因:
数据仓库包含的大量数据分布在多个处理器上,从逻辑上看只有一个数仓,但物理上看,存在许多有紧密联系但存放在不同处理器上的数据仓库。 -
分布式数据仓库的优缺点
分布式数据仓库的优点 | 缺点 |
---|---|
① 引入代价低(比传统大型集中式硬件搭建的代价低得多); ② 数据量理论上没有限制,只需要扩展服务器。 | ① 数仓中服务器扩展到一定程度,网络上出现过量的传输负载; ② 数据和处理环境难于管理。 |
1.3 独立演进的分布式数据仓库
- 产生原因:
通常由于政策和机构上差异,首先建立一个数仓,接着再建另一个。多个独立数仓之间没有进行协调和约束。
2. 分布式数据仓库的开发
2.1 不同业务的数据仓库由不同小组独立创建
- 背景: 公司的业务完全分离,非集成的
- 要求: 数据仓库开发项目间很少或不需要管理和协调,但在财务平衡层表上也必须集成
2.2 各个开发小组负责创建同一个数据仓库的不同部分
- 背景: 不同地域的分支机构各创建一个数据仓库(同一级数据由不同开发小组创建)
- 优点: 很快完成
- 缺点: 不能识别或合理处理部门间数据结构存在共性的情况
- 要求: 各小组间密切
配合
,若项目不协调,会出现大量冗余数据(蜘蛛网问题)
2.3 不同小组负责建立数仓环境不同级的数据
- 要求:
① 需要协调
不同开发小组工作,包括内容规范说明和结构的描述及开发时间等。小组协调相对简单。
② 一般不同小组选用不同开发平台。
原因:代价问题,如:汇总级数据量相对较少,与细节级采用同一平台,代价过高)
需要:认真管理和存储元数据,以保证一个细节级到另一个细节级的连续性。
互连性问题:在调用级存取的兼容性(数据仓库两级之间采用技术在调用语法上的兼容性);有效带宽(两级数据仓库之间的传输处理)。
2.4 多个小组建立当前细节级
-
问题:
① 费用。当前细节级数据庞大,很少冗余也会引起存储和处理的费用问题;
② 蜘蛛网问题。大量冗余数据引起对数据的错误解释,且没有有效办法。 -
公共细节级数据模型
(为了避免产生冗余数据)
① 实现时,公共模型分割为多张物理表,数据仓库以迭代式方法进行,不需要立即建立所有表。
② 数据非冗余性仅仅限于非键码数据,主键数据肯定是冗余数据。
③ 数据仓库中收集和存取的是快照数据,出现的外键关系是以“人工关系”组织的。
④ 通常使用单一技术存放所有细节表。
单一技术存放所有细节表 | 使用多个技术平台 | |
---|---|---|
优点 | 单一平台比多平台费用低; 维护培训费用低 | 能很好满足企业内不同策略需求; 不同开发小组对自己特有的需求具有一定程度的控制能力 |
缺点 | — — | 必须购买和支持多个技术平台; 最终用户必须接受多种技术培训; 各种技术可能很难融合在一起; 出现资源利用和管理的问题(大量数据传输,导致性能瓶颈) 数据冗余(数据的随意搬迁导致) |
参考书籍
[1] 《数据仓库》William H.Inmon著,王志涛等译,机械工业出版社。