鄙人的新书《Elasticsearch权威指南》正式出版发行,欢迎购买!本书由华为、中兴高级技术专家全面审读并撰序,助您挑战百万年薪 购书链接:
《Elasticsearch权威指南》
欢迎关注鄙人公众号,技术干货随时看!
鄙人的新书,欢迎订阅!
《elasticsearch7完全开发指南》
https://wenku.baidu.com/view/8ff2ce94591b6bd97f192279168884868762b8e7
《kibana权威指南》
https://wenku.baidu.com/view/24cfee1ce43a580216fc700abb68a98270feac21
什么是数据仓库?
业内普遍接受的定义:
数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse”(《建立数据仓库》)一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
数据仓库的特征
- 数据仓库是面向主题的;操作型数据库的数据组织面向事务处理任务,而数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
- 数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库。
- 数据仓库是不可实时更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询。
- 数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。
- 汇总的。操作性数据映射成决策可用的格式。
- 大容量。时间序列数据集合通常都非常大。
- 非规范化的。Dw数据可以是而且经常是冗余的。
- 元数据。将描述数据的数据保存起来。
- 数据源。数据来自内部的和外部的非集成操作系统。
什么是数据仓库?我的理解
数据仓库就是数据的仓库!
与建筑行业对比,深刻理解数据仓库相关概念
团队构成及其作用
使用方与建设方的对比
建筑设计师和模型设计师对比
搬砖工和ETL工程师对比
室内装修工和报表工程师对比
与建筑行业对比,释疑数据仓库建设和管理中的疑惑
模型设计的疑惑
问题:建设数据仓库能不能没有模型设计?
联想:造一栋大厦能不能没有建筑设计?
答案:NO!
报表考核的疑惑
问题:能不能简单地以完成报表的数量考核报表开发的工作?
联想:能不能简单地以完成装修的房间数量来考核室内装修师的工作?
答案:NO!
数据质量的疑惑
问题:数据仓库部门该不该向应用系统反映源数据质量问题?
联想:建筑施工方该不该向砖头厂反映砖头质量问题?
答案:YES!
为什么数据仓库一定要有建模?
目前国内数据仓库建设的两条路:
- 需求驱动
- 设计驱动
从数据准确性的角度考虑
需求驱动
设计驱动
从工作量角度考虑
需求驱动和设计驱动对比
数据仓库怎么建模
考虑的因素
- 了解各部门业务
- 探查多个源数据
- 将通过筛查的源数据导入数据登台层( Operational Data Store,ODS)
- 以业务为驱动,按范式规范,在数据仓库层(Enterprise DataWarehouse,EDW)依次进行概念建模、逻辑建模、物理建模
- 以需求为驱动,在数据集市层(Department DataWarehouse,DDW)依次进行概念建模、逻辑建模、物理建模
- 根据前端报表显示效率,酌情考虑是否需要报表应用层(Report Application Layer, RAL)
数据仓库架构
ODS层建模
EDW层建模
DDW层建模
星型和雪花型结构
国内数据仓库常见的失败原因
- 不重视数据仓库
- 不重视数据仓库模型设计
- 过度追求报表展现效果
- 简单粗暴的绩效考核体系
- 缺少文档和培训
- 数据仓库部门缺少话语权
- 尝试以技术解决一切问题
- 数据仓库模型设计得太复杂,和开发能力、维护能力脱节
常见的部分问题
行政协调方面
- 应用部门没有全面系统地向数据仓库部门说明数据结构
- 应用系统数据结构变动前后不通知数据仓库部门
- 各业务部门、应用部门没有设置统一的接口人
数据规范方面
- 数据字典信息滞后、不全
- 不符合范式要求
- 源数据中脏数据太多
- 无用/备用字段太多
- 字段类型不合理
- 维度成员不具备排他性
- 字段杂用
应用系统间标准方面
- 各业务部门、应用部门间的业务理解不统一
- 各源数据的信息分类编码标准、共享数据集标准不统一
- 各源数据间表、字段命名不统一
- 各源数据间字段类型不统一
- 各源数据间数据字典格式和存放路径不统一
笔者给出的经验性建议
- 增设数据仓库需求总控角色
- 增设数据仓库数据测试角色
- 增设数据标准团队
- 每个部门设置接口人
数据仓库需求总控职责
- 作为数据仓库团队对外接口人
- 跨部门、跨时间的需求采集和分析
- 将需求分成分析型需求、周期型需求、临时型需求、不合理需求,并分发给对应的同事以恰当的技术来实现
- 整理成需求文档以供数据仓库模型设计团队、数据标准团队使用
需求总控及分发
数据流自动校对
数据标准团队职责
- 管理业务解释和算法
- 管理各应用系统数据结构规范
- 管理信息分类编码标准、共享数据集标准
- 管理数据字典
- 管理数据交换格式标准、文档格式标准等
数据标准团队需具备的能力
- 了解各种业务
- 了解各应用系统源数据
- 精通数据结构规范