数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合
一个面向事务处理的“商场”数据库系统,其数据模式如下:
采购子系统: 订单(订单号,供应商号,总金额,日期) 订单细则(订单号,商品号,类别,单价,数量) 供应商(供应商号,供应商名,地址,电话)
销售子系统: 顾客(顾客号,姓名,性别,年龄,文化程度,地址,电话) 销售(员工号,顾客号,商品号,数量,单价,日期)
库存管理子系统: 领料单(领料单号,领料人,商品号,数量,日期) 进料单(进料单号,订单号,进料人,收料人,日期) 库存(商品号,库房号,库存量,日期) 库房(库房号,仓库管理员,地点,库存商品描述)
人事管理子系统: 员工(员工号,姓名,性别,年龄,文化程度,部门号) 部门(部门号,部门名称,部门主管,电话)
提取主题:
主题一:销售 固有信息:员工号,顾客号,商品号,数量,单价,日期 员工信息:员工号,姓名,性别,年龄,文化程度,部门号 顾客信息:员工号,顾客号,商品号,数量,单价,日期 商品信息:商品号,商品名称,单价,重量,体积,…
主题二:供应商 固有信息:供应商号,供应商名,地址,电话 商品信息:商品号,商品名称,单价,重量,体积,…
主题三:顾客 固有信息:顾客号,姓名,性别,年龄,文化程度,地址,电话,职业,… 购物信息:顾客号,商品号,商品名,售价,购买数量,购买日期,…
在每个主题当中,包含了相关主题的所有信息,同时又抛弃了与分析处理无关的数据
数据仓库中的数据是经过抽取而形成的分析型数据:
不具有原始性主要供企业决策分析之用执行的主要是“查询”操作,一般情况下不执行“更新”操作一个稳定的数据环境也有利于数据分析操作和决策的制订数据仓库以维的形式对数据进行组织,时间维是数据仓库中很重要的一个维度:
不断增加新的数据内容不断删除旧的数据内容更新与时间有关的综合数据ODS:数据接入层 DWD:数据明细层 DWS:数据汇总层 ADS:数据应用层
数据库是为捕获和存储数据而设计 数据仓库是为分析数据而设计
数据库数据仓库本质数据的集合数据的集合定位事务处理OLTP数据分析OLAP面向群体前端用户管理人员操作增删改查询数据粒度事件记录维度表结构三范式 3NF星型、雪花联机事务处理OLTP 全名On-Line Transaction Processing OLTP是传统的关系型数据库的主要应用 主要是基本的、日常的事务处理,例如银行交易
联机分析处理OLAP 全名On-Line Analytical Processing OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果
对比属性OLTPOLAP读特性每次查询只返回少量记录对大量记录进行汇总写特性随机、低延时写入用户的输入批量导入使用场景用户,JavaEE项目内部分析师,为决策提供支持数据表征最新数据状态随时间变化的历史状态数据规模GBTB到PB数据采集 Flume,Sqoop,Logstash,Datax
数据存储 MySQL,HDFS,HBase,Redis,MongoDB
数据计算 Hive,Tez,Spark,Flink,Storm,Impala
数据可视化 Tableau,Echarts,Superset,QuickBI,DataV
任务调度 Oozie,Azkaban,Crontab
ELT分别代表三个单词: Extract:抽取,从操作型数据源获取数据 Transform:转换,使数据转变为适用于查询和分析的形式和结构 Load:装载,将转换后的数据导入到最终的目标数据仓库
常见的ELT工具有: Oracle:OWB和ODI 微软:SQL Server Integration Services SAP:Data Integrator IBM:InfoSphere DataStage、Informatica Pentaho:Kettle(开源免费)
数据仓库模型构建步骤:
选择业务流程声明粒度确认维度确认事实第一步,确认哪些业务处理流程是数据仓库应该覆盖的,例如:了解和分析一个零售店的销售情况
第二步,采取合适的记录方式
使用纯文本使用业务流程建模标注(BPMN)方法使用同一建模语言(UML)何为粒度?粒度用于确定事实中表示的是什么 例如:一个零售店的顾客在购物小票上的一个购买条目
选择维度和事实前必须声明粒度建议从原始粒度数据开始设计 原始记录能够满足无法预期的用户查询不同的事实可以有不同的粒度何为维度?维度说明了事实表的数据是从哪里采集来的
典型的维度都是名词 例如:日期、商店、库存等维度表存储了某一维度的所有相关数据 例如:日期维度应该包括年、季度、月、周、日等数据