您的当前位置:首页正文

第五章 数据仓库和技术

来源:要发发知识网

[TOC]

第五章 数据仓库和技术

5.0 概述

5.1 管理大量数据(的技术)

  • 一句话,要同时满足容量和效率

5.2 管理多种介质(的技术)

  • 一句话,由于数据仓库的数据量限制和数据访问率不同,所以数据仓库的数据应该存储在多种不同介质上

5.3 索引和监控数据(的技术)

  • 一句话,数据仓库中的数据必须方便、有效的建立索引,否则就是失败
  • 一句话,必须对仓库的数据进行方便、有效的监控,否则就是失败

5.4 多种技术的接口(的技术)

graph LR
A[操作型环境和ODS] --> |导入|B(数据仓库)
B --> C{导出}
C --> D[数据集市]
C --> E[DSS应用]
C --> F[探查和数据挖掘]
C --> G[备用存储]
  • 一句话,导入和导出必须流畅且容易进行,否则失败

5.5 程序员/设计者对数据存放位置的控制

  • 一句话,因费用等原因,数据的存放位置会经常改动

5.6 数据的并行存储和管理

  • 一句话,并行存储和管理,提高性能,且容量没限制(技术上)

元数据管理(业务元数据,技术元数据)
报表工具、业务智能工具、ODS环境、ETL 等都要有元数据

  • 表结构
  • 表属性
  • 源数据
  • 源数据到仓库的映射
  • 数据模型说明
  • 抽取日志
  • 访问数据的公用例行程序
  • 数据的定义/描述
  • 数据单元之间的关系

5.7 语言接口

一句话,只有程序员使用SQL,其他人要使用比SQL更简单的语言(那是什么呢?没说!!!)

5.8 数据的有效装载

单条载入:一次载入一条
批量载入:
并行装载:
缓冲处理

5.9 有效利用索引

高效索引访问技术

  • 用位图
  • 用多级索引
  • 索引装入内存
  • 压缩索引
  • 创建选择索引和范围索引

5.10 数据压缩

  • 数据应总是被压缩存储

5.11 符合主键

5.12 变长数据

5.13 加锁管理

5.14 只涉及索引的处理

5.15 快速恢复

一句话,数据需要从非直接存储快速恢复成仓库的表

5.16 其他的技术特征(不需要的技术)

  • 事务完整性
  • 高速缓存
  • 行/页级的锁定
  • 参照完整性
  • 数据视图
  • 部分块载入

5.17 DBMS类型和数据仓库

  • DBMS和DW最重要的区别就是数据的更新
  • 对基本数据的管理不同
  • 对索引的限制

5.18 改变DBMS技术

--

5.19 多维DBMS和数据仓库(跟Kimball不太一样)

数仓 多维
大量数据 少一个数量级
适合少了灵活访问 适合大量非预知访问
很长时间范围的数据 短时间范围的数据
受限访问 自由访问
与多维互补 与仓库互补

5.20 在多种存储介质上构建数据仓库

  • 一句话,高效环境和低效环境都是仓库的一部分

5.21 数据仓库环境中的元数据角色

5.22 上下文和内容

5.23 刷新数据仓库

  • 第一种方式是直接读取源库(1影响业务库,2重复数据)
  • 第二种方式是数据复制(有额外IO)
  • 第三种方式是变化数据捕获(CDC,推荐使用)
    PS:总感觉跟之前讲的数据更新算一个事

5.24 测试问题

  • 一句话,很多情况仓库不需要测试环境(OMG)

5.25 小结

  • 再次看到跟多维相关的内容
  • 再次感觉Inmon 跟 Kimball 的观点很相似
  • 都是要求建立一个统一的数仓,然后把数仓作为OLAP的基础或补充
  • 不同的地方时 Inmon 要求数仓是 规范化的(不一定是3NF哦),二Kimball要求是星型模型
  • 因 Inmon 也没有要求一定是要3NF的,而且他还提出了很多优化,比如表合并,冗余,反规范化等,这些优化怎么看都跟维度建模很相似
  • 他们最大的不同感觉应该是 Inmon 要求先有个企业级的ERD模型,这样就相当于有个总体的设计图,然后按照设计图的分块做,而Kimball貌似没有这样要求,而是建议按照业务过程进行分步设计,
  • 然而Inmon 任务直接分步设计会出现板块不能拼接的情况,就是冲突、或者遗漏吧
  • 哎,我觉得两种都还好,先整体设计固然好,有设计图了,干活就有战略指导了,但整体设计的工作较复杂不容易落地,分步设计就轻松些了,只要分步设计的冲突和遗漏影响不大还是可以使用的