第1章 读本概览 1
1.1 抑制住立即开始编码的冲动 1
1.2 设置边界 3
1.3 数据争夺 5
1.4 流言终结者 7
1.5 划分数据世界 9
1.6 集成式企业数据仓库的必要步骤 10
1.6.1 集成式EDW会交付什么 11
1.6.2 集成的终极试金石 11
1.6.3 组织挑战 12
1.6.4 一致化维度和事实 12
1.6.5 使用总线矩阵与管理层交流 12
1.6.6 管理集成式EDW的主干 13
1.6.7 维度管理器 14
1.6.8 事实提供者 15
1.6.9 配置商业智能(BI)工具 16
1.6.10 连带责任 17
1.7 钻取以寻求原因 17
1.8 渐变维度 19
1.8.1 渐变维度的三种原生类型 20
1.8.2 高级渐变维度 22
1.9 通过维度评价BI工具 22
1.10 事实表 24
1.10.1 忠实于粒度 24
1.10.2 从最低的可能粒度进行构建 25
1.10.3 三类事实表 25
1.11 开发利用事实表 26
1.11.1 前端:聚合导航 26
1.11.2 前端:钻取不同的粒度 26
1.11.3 前端:将约束暴露给不同的业务过程 26
1.11.4 后端:事实表代理键 27
第2章 深入研究之前 29
2.1 Ralph Kimball和施乐帕克研究中心(Xerox PARC) 29
2.2 数据库市场分化 31
2.3 提出超市概念(Kimball经典) 33
2.3.1 危机规划 33
2.3.2 具有架构的数据集市 34
2.3.3 一致化维度的重要性 34
2.3.4 设计一致化维度 35
2.3.5 做出承诺 36
2.3.6 允许的一致化维度变体 36
2.3.7 建立标准事实定义 36
2.3.8 粒度的重要性 37
2.3.9 更高级别的数据集市 38
2.3.10 解决烟囱问题 38
2.3.11 不需要一致化维度的情形 38
2.3.12 清晰视角 39
2.4 数据仓库的全新需求 39
2.5 应对全新需求 42
2.5.1 数据集市和维度建模 42
2.5.2 将数据集市插入数据仓库总线架构中 44
2.6 挑起事端 46
2.7 设计约束和不可避免的现实 49
2.7.1 设计约束 49
2.7.2 不可避免的现实 50
2.7.3 摆脱困境 51
2.8 两个强有力的观点 52
2.8.1 分离系统 52
2.8.2 对称的星型结构和多维数据集 53
2.8.3 巨大的回报 54
2.8.4 我们已经取得了什么成果 54
2.9 数据仓库就餐体验(Kimball经典) 54
2.9.1 厨房 55
2.9.2 就餐区 56
2.10 用于更艰难问题的更简单方法 57
2.10.1 增量集成 57
2.10.2 递增的数据质量 58
2.11 扩展数据仓库的边界 58
第3章 项目/程序规划 61
3.1 专家边界 61
3.2 工程师的观点 63
3.2.1 数据仓库使命 64
3.2.2 设计驱动 65
3.2.3 设计约束 65
3.2.4 工程师的回应 66
3.3 当心异议消除者 66
3.4 中央团队要做些什么 69
3.4.1 定义和发布共享维度 70
3.4.2 提供跨部门的应用程序 71
3.4.3 定义一致化数据仓库安全性架构 72
3.5 避免隔离的DW和BI团队 72
3.6 BI和数据仓库专家可用的、更好的业务技能 73
3.6.1 建立对业务的理解 73
3.6.2 建立人际交往能力 73
3.6.3 掌握公开演讲技巧 74
3.6.4 掌握书面沟通技巧 74
3.6.5 实践决定一切 75
3.7 有风险的项目资源就是有风险的业务 75
3.8 无法实现分析 76
3.9 包含DW/BI范围蔓延并且避免范围冒用 77
3.10 IT过程对于DW/BI项目是否有益 79
3.10.1 规范 79
3.10.2 命名规范 79
3.10.3 教条主义 80
3.11 有效主办者的行为 80
3.11.1 为成功做准备 81
3.11.2 抵制阻力最小的路径 81
3.11.3 团结周边可用资源 82
3.11.4 耐心是一种美德 82
3.11.5 保持对目标的专注 83
3.12 从终端用户开始计算的总体拥有成本(Kimball经典) 83
3.12.1 不好的决策也是成本 83
3.12.2 仔细查看这些成本 84
3.13 简要概括Kimball生命周期 87
3.13.1 程序/项目规划和管理 88
3.13.2 业务需求 88
3.13.3 技术轨迹 88
3.13.4 数据轨迹 88
3.13.5 商业智能轨迹 89
3.13.6 部署、维护和发展 89
3.14 挺身而出 89
3.15 持相反意见的架构师 90
3.16 在应用最佳实践时慎重思考 93
3.16.1 采取一种企业方法 93
3.16.2 拥抱商业智能 93
3.16.3 设计维度模式 93
3.16.4 将一致化维度用于集成 94
3.16.5 仔细规划ETL架构 94
3.17 低风险企业数据仓库的八个准则 95
3.17.1 做正确的事情 95
3.17.2 赋予业务用户控制权 96
3.17.3 渐进式处理 96
3.17.4 从轻量级、专注的治理开始 96
3.17.5 构建一个简单、通用的平台 97
3.17.6 使用一致化维度来集成 97
3.17.7 每次都用一些过滤来管理质量 97
3.17.8 自始至终使用代理键 97
第4章 需求定义 99
4.1 将AlanAlda的访问技巧用于揭示业务需求(Kimball经典) 99
4.1.1 保持好奇心,但不要自作聪明 100
4.1.2 要口语式对话 100
4.1.3 倾听并且期望被改变 101
4.2 业务需求收集的更多注意事项 102
4.3 平衡需求与现实(Kimball经典) 104
4.4 在收集业务需求时克服障碍 105
4.5 令人吃惊的数据剖析价值 106
4.6 专注于业务过程,而非业务部门 108
4.7 识别业务过程 109
4.8 业务过程全面揭秘 110
4.9 战略业务举措和业务过程之间的关系 111
4.10 自下而上属于用词不当 112
4.10.1 专注于企业,而非部门 112
4.10.2 起草企业数据仓库总线矩阵 112
4.10.3 进行优先级排序以便得到一份有序的结论 113
4.10.4 绘制企业路线图 115
4.11 (超越数据建模的)维度化思维 115
4.12 使用维度模型验证业务需求 116
第5章 数据架构 119
5.1 ER建模是否对DSS有害(Kimball经典) 119
5.2 一个维度建模宣言(Kimball经典) 122
5.2.1 什么是3NF标准化建模 122
5.2.2 什么是DM 124
5.2.3 DM与3NF的对比 125
5.2.4 DM的优势 126
5.2.5 对DM的误解 127
5.2.6 捍卫DM 128
5.3 没有百分百的保证 128
5.3.1 3NF建模是否会处理业务规则吗 129
5.3.2 早期维度建模 130
5.4 分而治之 131
5.4.1 是否需要通用标签 132
5.4.2 业务过程主题领域并不是部门化的 132
5.4.3 一致化维度和事实 132
5.4.4 数据仓库总线架构 133
5.4.5 是否仅仅为了高度分布式系统 133
5.4.6 净收益 134
5.5 矩阵(Kimball经典) 134
5.5.1 邀请主题领域小组参加一致化会议 136
5.5.2 与老板进行沟通 136
5.5.3 二级主题领域 136
5.6 再次探讨矩阵(Kimball经典) 137
5.6.1 用于引用数据的矩阵列 137
5.6.2 数据管理 137
5.6.3 以过程为中心的行 138
5.6.4 关联列和行 138
5.6.5 常见的矩阵不幸事件 139
5.6.6 矩阵扩展 139
5.7 向下钻取到详细的总线矩阵中 140
5.8 关于敏捷方法论 142
5.9 敏捷企业数据仓库是不是一个矛盾混合体 143
5.10 采用敏捷方法?先要从总线矩阵开始 144
5.11 作为敏捷数据仓库基础的一致化维度 145
5.12 为现实中的人而集成 146
5.12.1 定义集成 146
5.12.2 集成标签 147
5.12.3 集成测量 147
5.12.4 维度管理者的职责 148
5.12.5 事实提供者的职责 148
5.13 为企业维度构建即时可用的资源 149
5.14 数据管理基础知识:质量和一致性的第一步 150
5.14.1 为何管理是必要的 150
5.14.2 管理职责 151
5.14.3 管理的正确举措 152
5.14.4 沟通工具和技术 152
5.14.5 如何开始 152
5.15 要不要集中化 153
5.15.1 闪光的未必都是金子 153
5.15.2 不要畏惧伟大 154
5.15.3 结果好意味着一切都好 155
5.16 观点差异(Kimball经典) 155
5.16.1 共同之处 155
5.16.2 Kimball总线架构 156
5.16.3 企业信息工厂 157
5.16.4 根本性差异 158
5.16.5 混合方法怎么样 159
5.16.6 成功标准 159
5.17 庸人自扰 160
5.18 不要用一个标准化EDW支持商业智能 160
5.19 使用维度展示区域补充3NF EDW 162
第6章 维度建模基础 165
6.1 事实表和维度表 165
6.1.1 测量和上下文 165
6.1.2 维度键 166
6.1.3 把两个建模方法关联起来 167
6.1.4 声明粒度 167
6.1.5 可累加事实 167
6.1.6 退化维度 168
6.2 向下、向上和横向钻取 168
6.2.1 向下钻取 168
6.2.2 向上钻取 170
6.2.3 横向钻取 170
6.3 数据仓库的灵魂之第一部分:向下钻取 171
6.4 数据仓库的灵魂之第二部分:横向钻取 173
6.4.1 实现横向钻取 174
6.4.2 令人惊讶的神奇之处 175
6.5 数据仓库的灵魂之第三部分:时间处理 175
6.5.1 时间的有效性 176
6.5.2 正确关联 176
6.5.3 自然粒度 177
6.5.4 是否兑现了承诺 178
6.6 优雅修改已有的事实和维度表 178
6.7 Kimball关于维度建模的十项必要规则(Kimball经典) 179
6.8 不该做的事情 181
6.9 危险的先入为主的想法 183
6.10 虚言和事实 185
6.10.1 并非所有的维度模型都是同等创建的 185
6.10.2 专注于测量过程,而非部门报告 185
6.10.3 从原子详情开始,而非汇总数据 186
6.10.4 目标是集成,而非标准化 187
第7章 维度建模任务和职责 189
7.1 让用户安然入眠 189
7.2 用于设计维度模型的实践步骤 194
7.2.1 参与其中 195
7.2.2 深究细节 195
7.2.3 审核结果 196
7.3 为维度建模团队配置人员 197
7.4 让业务代表参与到维度建模中 198
7.5 管理大型维度设计团队 199
7.6 使用设计章程让维度建模活动处于正轨 200
7.7 命名博弈 201
7.7.1 步骤1:准备 201
7.7.2 步骤2:创建一个初始名称集 202
7.7.3 步骤3:建立共识 202
7.8 名称的意义 202
7.9 维度设计何时算结束 204
7.10 设计评审注意事项(Kimball经典) 206
7.11 大把的缺点 207
7.11.1 粒度是什么 207
7.11.2 是否存在混合粒度或文本事实 208
7.11.3 是否有维度描述符和解码 208
7.11.4 层次结构如何处理 208
7.11.5 是否采用显式日期维度 209
7.11.6 是否将控制编号作为退化维度 209
7.11.7 是否使用代理键 209
7.11.8 是否采用渐变维度策略 210
7.11.9 是否很好地理解了业务需求 210
7.12 对维度数据仓库进行评分 210
7.12.1 架构标准 210
7.12.2 管理标准 211
7.12.3 表述标准 212
7.12.4 是否具有维度化思想 214
第8章 事实表核心概念 215
8.1 声明粒度 215
8.1.1 业务术语中的表达 216
8.1.2 巨大的影响 216
8.1.3 保持事实忠实于粒度 217
8.2 在维度建模中保持粒度 218
8.3 警告:汇总数据可能会有害健康 219
8.4 再微小的细节都是需要的 220
8.4.1 累积原子数据 220
8.4.2 跨过程合并 220
8.4.3 性能越高,维度性越低 220
8.4.4 合并事实表示例 221
8.4.5 累计式快照示例 221
8.4.6 细节至上 222
8.5 基础粒度 223
8.5.1 基础粒度 223
8.5.2 我们要如何使用每一个事实表类型 225
8.6 使用累计式快照对管道进行建模 225
8.7 合并定期和累计式快照 228
8.8 互补的事实表类型 228
8.8.1 事务事实表 229
8.8.2 定期快照事实表 229
8.8.3 累计式快照事实表 230
8.9 对时间段进行建模 230
8.10 在现在和过去对未来进行滚动预测 232
8.11 时间段累计式快照事实表 235
8.12 是维度还是事实,抑或两者都是 236
8.13 非事实型事实表 237
8.14 非事实型事实表听起来像不像没有帆的帆船 239
8.15 哪些事情还没发生 240
8.15.1 覆盖范围表 241
8.15.2 用于未发生行为的明确记录 241
8.15.3 用NOT EXISTS搜索不存在的事实 241
8.15.4 使用NOT EXISTS找到还不存在的属性 242
8.16 追求简化的非事实型事实表 243
8.17 管理父数据 244
8.17.1 有争议的分配机制 246
8.17.2 艰难的分配环境 246
8.18 在建模标题/行项目事务时要避免的模式 247
8.18.1 糟糕的主意#1:将标题保存成维度 247
8.18.2 糟糕的主意#2:行项目不继承标题维度性 247
8.18.3 标题/行项目事务的推荐结构 248
8.19 事实表代理键 249
8.20 关于事实表代理键的读者建议 249
8.21 再谈退化维度 251
8.22 为极少访问的退化项创建一个引用维度 252
8.23 规范事实表 253
8.24 将文本保存在事实表外 254
8.25 处理维度模型中的空值 255
8.25.1 作为事实表外键的空值 255
8.25.2 作为事实的空值 256
8.25.3 作为维度属性的空值 256
8.26 将数据同时建模为事实和维度属性 256
8.27 事实表何时可被用作维度表 257
8.28 稀疏事实和具有较短生命周期的事实 258
8.29 用事实维度让事实表成为中心 260
8.30 用于复杂工作流的累计式快照(Kimball经典) 261
第9章 维度表核心概念 263
9.1 代理键(Kimball经典) 263
9.2 保持键的简单性 266
9.3 持久的“超自然”键 267
9.4 是时候谈谈时间了 269
9.4.1 基础时间问题 269
9.4.2 中间时间问题 270
9.5 用于时间维度的代理键 271
9.6 对时间维度表的最新思考 272
9.7 将智能日期键用于分区事实表 274
9.8 更新日期维度 275
9.9 处理所有的日期 275
9.10 为空值选择默认值(Kimball经典) 277
9.11 数据仓库角色模型 278
9.12 神秘维度 281
9.12.1 找到明显的与维度有关的字段 281
9.12.2 找出与事实有关的字段 282
9.12.3 决定对其余字段的处理 282
9.12.4 将神秘字段转换成神秘维度 283
9.13 整理杂项维度 284
9.14 显示维度之间的相关性 284
9.15 因果性(非因果性)维度(Kimball经典) 285
9.16 抵制抽象的通用维度 288
9.17 热插拔维度 289
9.18 精确统计维度增补项的数量 290
9.19 使用类型2SCD的完美分区历史 291
9.20 许多交替的现实 292
9.20.1 可预测的多种现实 293
9.20.2 不可预测的多种现实 294
9.21 庞然大物般的维度 295
9.22 当渐变维度加速时 297
9.22.1 渐变维度中的日期戳 297
9.22.2 并非缓慢变化的SCD 297
9.23 维度何时会变得危险 298
9.24 渐变维度并非总是像类型1、类型2和类型3那样简单(Kimball经典) 299
9.24.1 具有当前重写的微型维度 300
9.24.2 具有当前重写的类型2 300
9.24.3 在事实表中具有持久键的类型2 301
9.24.4 类型3属性系列 302
9.24.5 在能力与易用性之间取得平衡 303
9.25 渐变维度类型0、类型4、类型5、类型6和类型7(Kimball经典) 303
9.25.1 类型0:保留原始值 303
9.25.2 类型4:添加微型维度 303
9.25.3 类型5:添加微型维度和类型1外支架 304
9.25.4 类型6:将类型1属性添加到类型2维度 304
9.25.5 类型7:双重类型1和类型2维度 305
9.26 维度行变更原因属性 306
第10章 更多的维度模式和注意事项 309
10.1 星型、外支架和桥接 309
10.2 三种有意思的星型模式 311
10.2.1 经典的星型模式 312
10.2.2 大型顾客维度 312
10.2.3 金融产品维度 313
10.2.4 多企业日历维度 314
10.2.5 允许的星型模式 314
10.3 为维度建模提供帮助 314
10.4 管理桥接表 317
10.4.1 使用代理键 318
10.4.2 使用双时间戳 318
10.4.3 更新桥接表 319
10.5 关键字维度 320
10.5.1 设计关键字维度 321
10.5.2 AND/OR的两难局面 322
10.5.3 搜索子字符串 322
10.5.4 高性能子字符串索引 323
10.6 可能的桥接(表)弯路 323
10.7 多值维度的可选项 325
10.8 将微型维度添加到桥接表 327
10.9 维护维度层次结构 328
10.9.1 从设计开始入手 328
10.9.2 加载标准化数据 330
10.9.3 维护真正的层次结构 331
10.9.4 应对脏数据源 331
10.9.5 让它执行起来 332
10.10 为层次结构提供帮助(Kimball经典) 332
10.11 用于更好的员工维度建模的五个选项 335
10.11.1 选项1:使用代理键的桥接表 335
10.11.2 选项2:具有单独汇报对象维度的桥接表 336
10.11.3 选项3:具有自然键的桥接表 337
10.11.4 选项4:强制实现固定深度层次结构的技术 338
10.11.5 选项5:路径字符串属性 339
10.11.6 推荐 339
10.12 避免可替换的组织层次结构 340
10.13 可替换的层次结构 341
10.14 维度修饰 342
10.15 对行为标记进行争论 343
10.16 捕获顾客满意度的三种方式 345
10.16.1 标准的固定列表 345
10.16.2 同步的维度属性和事实 346
10.16.3 不可预测的紊乱列表 347
10.17 用于实时顾客分析的极端状态追踪 348
10.18 全局化思考,本地化行动 351
10.18.1 同步多个时区 351
10.18.2 支持多国日历 352
10.18.3 以多种货币单位集中收益 353
10.18.4 处理欧洲问题(来自1998年的观点) 354
10.19 没有边界的数据仓库 354
10.20 让数据仓库在空间上可用 358
10.20.1 调研GIS供应商 359
10.20.2 进入训练营 359
10.20.3 自动地址标准化 360
10.20.4 标准数据库上的地理位置查询 361
10.20.5 恰好合适 361
10.21 跨国维度化数据仓库注意事项 362
10.22 行业标准数据模型的不足之处 363
10.23 一个保险行业数据仓库的案例研究 364
10.24 遍历数据库 368
10.24.1 排查设计 368
10.24.2 添加维度 369
10.24.3 图片和地图 370
10.25 人力资源维度模型(Kimball经典) 371
10.26 维度化管理待办事项 373
10.27 不要过于急切 375
10.27.1 找出盈利能力的组成部分 375
10.27.2 市场营销和财务部门需要提供帮助 376
10.27.3 成本分配:盈利能力的核心挑战 376
10.27.4 如果时间紧迫 377
10.28 预算链 377
10.28.1 预算链事实表的粒度 379
10.28.2 预算链维度和事实 379
10.28.3 跨预算链的应用程序 380
10.29 启用合规性的数据仓库 380
10.30 记录顾客的点击操作 382
10.30.1 点击流维度模型的目标 382
10.30.2 点击流数据源 383
10.30.3 点击流数据的基础粒度 384
10.30.4 识别点击流维度和事实 384
10.30.5 分析点击流事件 385
10.31 点击流的特殊维度 386
10.31.1 访客维度 386
10.31.2 页面对象维度 387
10.31.3 会话类型 387
10.31.4 专注于页面对象和会话维度 388
10.32 用于文本文档搜索的事实表 389
10.32.1 相似性指标 389
10.32.2 用于相似性测量的事实表 390
10.32.3 强大的应用程序 391
10.33 让市场购物篮分析成为可能 391
第11章 后台ETL和数据质量 395
11.1 围绕ETL需求(Kimball经典) 395
11.1.1 业务需求 396
11.1.2 合规性 396
11.1.3 经过数据剖析的数据质量 396
11.1.4 安全性 397
11.1.5 数据集成以及360°画像 397
11.1.6 数据延迟 397
11.1.7 存档和派生关系 398
11.1.8 BI用户交付界面 398
11.1.9 可用技能 398
11.1.10 遗留许可 399
11.2 ETL的34个子系统(Kimball经典) 399
11.2.1 提取:将数据放入数据仓库 399
11.2.2 数据清洗和一致化 400
11.2.3 交付:准备呈现 400
11.2.4 管理ETL环境 401
11.3 用于ETL架构的六个关键决策 402
11.3.1 是否应该使用ETL工具 402
11.3.2 应该在何处以及如何进行数据集成 403
11.3.3 应该选择哪种变更数据捕获机制 403
11.3.4 何时应该暂存数据 404
11.3.5 应该在何处纠正数据 404
11.3.6 必须以多快的速度通过DW/BI系统使用源数据 405
11.4 要避免的三种ETL妥协 405
11.4.1 妥协1:忽视渐变维度需求 406
11.4.2 妥协2:未能接受元数据策略 406
11.4.3 妥协3:未交付有意义的范围 407
11.4.4 公开且诚实地做出妥协 407
11.5 在提取时工作 407
11.5.1 对跨多个时区的事件建模 408
11.5.2 冗长的日历维度 408
11.5.3 保留跨多种货币的定金 408
11.5.4 产品管道测量 408
11.5.5 损益的物理完整性 409
11.5.6 异质性产品 409
11.5.7 通用聚合 409
11.5.8 通用维度建模 409
11.6 数据暂存是关系型的吗 410
11.6.1 维度处理 410
11.6.2 确定已经变更的内容 411
11.6.3 从不同的源合并 411
11.6.4 数据清洗 411
11.6.5 处理名称和地址 412
11.6.6 验证一对一和一对多关系 412
11.6.7 事实处理 412
11.6.8 聚合处理 412
11.6.9 基线:数据暂存是关系型的吗 413
11.7 暂存区和ETL工具 413
11.8 是否应该使用ETL工具 414
11.8.1 ETL工具的优势 414
11.8.2 ETL工具的劣势 415
11.8.3 构建一个坚实的基础 415
11.9 ETL工具提供商的行动要求 416
11.10 文档化ETL系统 417
11.11 三思而行 418
11.11.1 目标:高层次ETL规划 418
11.11.2 输入和数据流 418
11.11.3 转换注释 419
11.11.4 在开工之前完成规划 420
11.12 为传入数据做好准备 421
11.12.1 典型的数据集成过程 421
11.12.2 架构 422
11.12.3 设置过程 422
11.12.4 异常处理 423
11.12.5 靠不住的简单性 423
11.13 构建变更数据捕获系统 423
11.14 破坏性的ETL变更 424
11.15 ETL的新方向 426
11.15.1 极端的集成 426
11.15.2 极端的多样性 426
11.15.3 巨大的量级 426
11.15.4 实时交付 426
11.15.5 分析师的崛起和数据见解的货币化 427
11.15.6 新的分析工具 427
11.15.7 列式数据存储和内存数据库 427
11.15.8 疯狂增长的数据虚拟化 427
11.15.9 小结 427
11.16 处理数据质量:不要只是坐着,要行动起来 428
11.16.1 进行调查研究 428
11.16.2 共享发现 429
11.16.3 小结 429
11.17 数据仓库测试建议 429
11.18 处理脏数据 431
11.18.1 合格数据至关重要的应用程序 431
11.18.2 数据清洗的科学 433
11.18.3 数据清洗的市场机会 434
11.18.4 数据完整性驱动业务再造 435
11.19 用于数据质量的架构(Kimball经典) 436
11.19.1 确立一种质量文化,再造过程 437
11.19.2 数据剖析角色 437
11.19.3 质量筛查 438
11.19.4 错误事件模式 438
11.19.5 响应质量事件 440
11.19.6 审计维度 440
11.19.7 六西格玛数据质量 441
11.20 质量指示器:审计维度 442
11.20.1 从最小可能粒度入手 443
11.20.2 报告聚合数据质量 444
11.20.3 构建审计维度 445
11.21 添加审计维度以追踪派生关系和置信度 445
11.22 为事实表增加不确定性 447
11.23 是否已经构建审计维度 448
11.24 数据是否正确 449
11.24.1 评价没有历史的数据质量 451
11.24.2 可预测变更的补充 451
11.25 对于国际化数据质量的八项建议 452
11.25.1 语言和字符集 452
11.25.2 文化、姓名和称呼 452
11.25.3 地理位置和地址 453
11.25.4 隐私和信息传输 453
11.25.5 国际化合规性 453
11.25.6 货币 453
11.25.7 时区、日历和日期格式 453
11.25.8 数字 453
11.25.9 用于国际化数据质量的架构 454
11.26 将正则表达式用于数据清洗 454
11.26.1 求助于正则表达式 455
11.26.2 基本运算符 455
11.26.3 找出“Inc” 456
11.26.4 最终结果 456
11.26.5 可以在何处使用正则表达式 457
11.27 对代理进行管道化处理 457
11.27.1 用于维度表的键 458
11.27.2 用于事实表的键 460
11.28 疏通事实表代理键管道 461
11.28.1 缺失源系统键 461
11.28.2 糟糕的源系统键 462
11.28.3 业务需求含义 463
11.29 正确复制维度 463
11.30 使用循环冗余校验和识别维度变更 464
11.31 维护指向操作源的回指指针 465
11.32 创建历史维度行 465
11.32.1 挖掘历史 466
11.32.2 探讨选项和影响 466
11.32.3 构建维度 466
11.32.4 选择每日或精确到分秒的粒度 466
11.33 面对键重置危机 468
11.34 沿时间回溯(Kimball经典) 469
11.34.1 延迟到达的事实记录 470
11.34.2 延迟到达的维度记录 470
11.35 提前到达的事实 471
11.36 渐变实体 472
11.37 将SQL MERGE语句用于渐变维度 474
11.37.1 步骤1:重写类型1变更 474
11.37.2 步骤2:处理类型2变更 474
11.38 创建和管理收缩维度 476
11.38.1 创建基础维度 476
11.38.2 从基础维度创建收缩维度 476
11.38.3 替代方式:分别创建基础维度和收缩维度 477
11.38.4 将维度提供给用户 477
11.39 创建和管理微型维度 477
11.39.1 创建初始微型维度 477
11.39.2 持续的微型维度维护 478
11.40 创建、使用和维护杂项维度 479
11.40.1 构建初始杂项维度 479
11.40.2 将杂项维度纳入事实行处理 480
11.40.3 维护杂项维度 480
11.41 构建桥接 481
11.41.1 历史加载 481
11.41.2 创建分组的初始化列表 481
11.41.3 创建桥接表 482
11.41.4 增量处理 483
11.42 尽量少做离线处理 483
11.43 网络时代的工作 485
11.44 实时分区 488
11.44.1 实时分区的要求 488
11.44.2 事务粒度实时分区 488
11.44.3 定期快照实时分区 489
11.44.4 累计快照实时分区 489
11.45 实时分类 490
第12章 技术架构注意事项 493
12.1 数据仓库是否能从SOA中获益 493
12.2 选择正确的MDM方法(Kimball经典) 494
12.2.1 源系统差异 495
12.2.2 对于主数据的需求 495
12.2.3 方法1:一致化数据仓库中的主数据 496
12.2.4 方法2:MDM集成中心 497
12.2.5 方法3:企业MDM系统 498
12.2.6 通往MDM的四个步骤 499
12.3 为DW/BI系统构建自定义工具 499
12.4 欢迎封装好的应用程序 500
12.4.1 避免烟囱式数据集市 501
12.4.2 查询时的一致化 501
12.4.3 供应商确实会严肃对待集成任务 501
12.5 ERP供应商:推倒那些墙 502
12.5.1 新规则是什么 503
12.5.2 ERP在新网络仓库中的作用 503
12.6 构建智能应用程序的基础 505
12.6.1 快速但充满风险的路径 506
12.6.2 通往智能应用的正确路径 506
12.6.3 当基础设施供不应求时 507
12.6.4 支持事务工作负荷 508
12.6.5 普及的BI:让BI散布到每一个地方 508
12.7 RFID标签和智能尘埃 509
12.7.1 终身就业保障 510
12.7.2 对隐私的侵犯 510
12.7.3 超越RFID的智能尘埃 510
12.8 大数据是否可与数据仓库兼容 511
12.9 企业数据仓库在大数据分析时代的角色演变(Kimball经典) 512
12.9.1 摘要 512
12.9.2 简介 513
12.9.3 数据是资产负债表上的一项资产 513
12.9.4 大数据分析的用例 514
12.9.5 大数据分析系统需求 516
12.9.6 扩展的关系型数据库管理系统 517
12.9.7 Hadoop 518
12.9.8 未来十年的特性融合 521
12.9.9 可重用的分析 521
12.9.10 未来十年中数据仓库的文化变更 522
12.9.11 未来十年中数据仓库的组织变更 524
12.9.12 EDW去向何处 525
12.10 新近出现的大数据最佳实践(Kimball经典) 525
12.10.1 用于大数据的管理最佳实践 526
12.10.2 用于大数据的架构最佳实践 527
12.10.3 用于大数据的数据建模最佳实践 530
12.10.4 用于大数据的数据治理最佳实践 533
12.10.5 小结 534
12.11 超细粒度主动归档 534
12.11.1 迁移和刷新 534
12.11.2 主动式归档 534
12.11.3 超细粒度数据 535
12.11.4 原始数据格式 535
12.12 列式数据库:DW/BI部署的规则改变者 535
12.13 数据库不存在神奇的力量 536
12.13.1 可选的原子数据库技术 537
12.13.2 这些“新”技术提供了什么 537
12.13.3 多维数据集如何 538
12.13.4 云又如何呢 538
12.14 关于OLAP 539
12.14.1 桌面OLAP与服务器端OLAP的对比 539
12.14.2 维度化相似性 539
12.14.3 维度化差异 540
12.14.4 OLAP的优势 540
12.15 维度关系与OLAP对比:最后的部署难题 541
12.15.1 维度关系型优势 542
12.15.2 关系型劣势 542
12.15.3 OLAP优势 542
12.15.4 OLAP劣势 543
12.15.5 这两种方法的易用性相当 543
12.15.6 进行最终选择 544
12.16 与数据仓库同时代的Microsoft SQL Server 544
12.16.1 使用数据库压缩加速查询 544
12.16.2 划分表分区并且对其分而治之 546
12.16.3 使用星型模式优化进行维度化 546
12.16.4 即将出现的机会 547
12.17 聚合导航器 547
12.18 (几乎)没有元数据的聚合导航(Kimball经典) 549
12.18.1 高级别目标和风险 550
12.18.2 聚合导航算法 552
12.18.3 用于每一方的聚合 555
12.19 用户界面的第二次革命 555
12.19.1 第二次革命与第一次革命的区别在何处 556
12.19.2 用户界面现在更为迫切 556
12.19.3 第二代用户界面准则 557
12.20 设计用户界面(Kimball经典) 557
12.21 描述元数据的数据(Kimball经典) 561
12.22 创建元数据策略 564
12.23 发挥用于自我监控DW运行的过程元数据的作用 565
12.24 对监督者进行监督(Kimball经典) 567
12.24.1 有利的使用与潜在的滥用 568
12.24.2 谁拥有你的个人数据 568
12.24.3 有可能发生什么 569
12.24.4 对于数据仓库架构的影响 569
12.25 灾难性故障 570
12.25.1 灾难性故障 571
12.25.2 对抗灾难性故障 571
12.26 数字化保存 573
12.26.1 数据仓库是否真的需要保留旧数据 573
12.26.2 介质、格式、软件和硬件 574
12.26.3 废弃的格式和过时的格式 574
12.26.4 硬拷贝、标准和博物馆 574
12.26.5 刷新、迁移、模拟和压缩 575
12.27 创建64位服务器的优势 576
12.28 服务器配置注意事项 577
12.28.1 影响服务器配置的因素 577
12.28.2 增加生产能力 577
12.28.3 获得帮助 578
12.28.4 结论 578
12.29 调整对于SAN的看法 578
第13章 前台商业智能应用程序 581
13.1 对于决策支持的承诺(Kimball经典) 581
13.1.1 分析应用程序生命周期 582
13.1.2 发布报告 583
13.1.3 识别异常 583
13.1.4 确定因果关系因素 583
13.1.5 对可选项进行建模 584
13.1.6 追踪操作 584
13.1.7 回顾 584
13.2 要勇于创新而不是因循守旧 585
13.2.1 从所报告的结果开始着手 585
13.2.2 识别出标准和阈值允许的误差 585
13.2.3 理解因果关系 586
13.2.4 评估选项 586
13.2.5 追踪操作以便用于未来优化 586
13.3 用于业务价值的BI组成部分 587
13.3.1 标准报告 587
13.3.2 自服务访问 587
13.3.3 有针对性的BI应用程序 588
13.3.4 这比你想象的要更难 588
13.4 BI领域发生的重大变化 589
13.4.1 合规性是BI的免费通行证 589
13.4.2 顺序行为分析是BI的最高峰 589
13.5 行为:下一个最受欢迎的应用程序 590
13.5.1 CRM:通向行为数据应用的跳板 591
13.5.2 对于行为的新分析 591
13.6 成功的自服务BI的三个关键组成部分 592
13.6.1 坚实的维度数据模型 593
13.6.2 合格的用户支持系统 593
13.6.3 有效的自服务BI查询/分析工具 594
13.6.4 自服务BI:它并非仅仅是一个工具 594
13.7 利用数据可视化工具,但要避免混乱局面 594
13.8 像软件开发经理那样思考 596
13.9 标准报告:供业务用户使用的基础报告 597
13.9.1 BI应用程序是什么 597
13.9.2 构建还是购买 598
13.9.3 设计报告系统 598
13.9.4 概述 600
13.10 构建和交付BI报告 601
13.10.1 设置开发环境 601
13.10.2 创建报告 602
13.10.3 测试准确性和性能 602
13.10.4 部署到生产环境 603
13.10.5 管理和维护 603
13.10.6 扩展应用程序 603
13.11 BI门户 604
13.11.1 密度 604
13.11.2 结构 604
13.11.3 更多的结构和内容 605
13.12 正确完成的仪表盘 606
13.13 不要过度依赖数据访问工具的元数据 607
13.14 让语义层有意义 608
13.15 深入研究数据挖掘 609
13.15.1 数据挖掘的根源 610
13.15.2 数据挖掘的类别 610
13.16 为数据挖掘做准备 611
13.16.1 通用数据转换 612
13.16.2 用于所有数据挖掘形式的转换 612
13.16.3 特殊的依赖于工具的转换 614
13.17 完美的传递 615
13.17.1 完美的观测 615
13.17.2 对于数据库架构的影响 617
13.18 现在就开始进行数据挖掘 617
13.18.1 业务阶段 618
13.18.2 数据挖掘阶段 619
13.18.3 操作阶段 620
13.18.4 数据挖掘元数据的作用 620
13.19 利用维度模型进行预测分析 621
13.20 组织是否需要一个分析沙盒 622
13.21 SQL中的简单横向钻取 623
13.22 用于横向钻取的Excel宏 625
13.23 对比的问题 627
13.24 SQL的障碍和缺陷 630
13.25 查询工具的特性 632
13.26 增强查询工具 634
13.27 更加智能的数据仓库 637
13.27.1 SQL审查 638
13.27.2 SQL-99 OLAP扩展 638
13.27.3 更多高级查询 639
13.27.4 延伸问题 640
13.27.5 OLAP是一个答案 640
第14章 维护和发展的注意事项 643
14.1 不要忘记用户手册 643
14.1.1 前台操作 644
14.1.2 后台操作 645
14.1.3 监控操作 645
14.2 我们来改进我们的运营过程 646
14.3 对DW/BI系统进行市场营销 648
14.3.1 产品 648
14.3.2 代价 648
14.3.3 布局 648
14.3.4 推销 649
14.4 应对成长的烦恼 649
14.4.1 识别目标 649
14.4.2 用例研究场景 650
14.4.3 不要操之过急 650
14.4.4 在开始构建之前先做计划 650
14.4.5 开发、测试、部署 651
14.4.6 最后的一些思考 652
14.5 数据仓库检查(Kimball经典) 652
14.5.1 业务主办人的紊乱 652
14.5.2 数据的紊乱 654
14.5.3 业务认可的紊乱 654
14.5.4 基础设施的紊乱 656
14.5.5 文化/政治性的紊乱 656
14.5.6 早期检测 656
14.6 提升业务认可度 657
14.6.1 DW/BI业务重组 657
14.6.2 选择会谈场所 657
14.6.3 确定和筹建访谈团队 658
14.6.4 选择、安排业务代表以及让其做好准备 658
14.6.5 进行访谈 659
14.6.6 文档记录、优先级排序以及达成共识 659
14.7 对管理层进行培训以便让DW/BI持续取得成功 660
14.7.1 收集证明信息 660
14.7.2 培训业务用户:用户论坛 660
14.7.3 培训高级职员 661
14.7.4 与指导委员会协作 662
14.7.5 结束语 662
14.8 让数据仓库回到正轨 662
14.9 升级BI架构 663
14.10 对于遗留数据仓库的四项修复(Kimball经典) 665
14.10.1 对非一致化维度进行一致化 665
14.10.2 创建代理键 666
14.10.3 交付详情 667
14.10.4 减少冗余 667
14.10.5 面对现实 668
14.11 不景气时期的数据仓库瘦身计划 668
14.11.1 去掉多余部分 668
14.11.2 监控和调整以便推迟开支 669
14.11.3 扩充底线 670
14.12 享受淘汰带来的红利 671
第15章 最后的思考 673
15.1 当前的最后一个词:协作 673
15.2 让DW/BI取得成功的行之有效的概念 675
15.3 Kimball方法论的关键原则 676
15.4 未来是光明的 678
15.4.1 ETL的未来 679
15.4.2 数据库技术的未来 679
15.4.3 维度建模的未来 680
15.4.4 BI工具的未来 681
15.4.5 数据仓库专家的未来 681