数据仓库

数仓主要特征

  • 面向主题:每个需求和表都属于一个主题,可以用主题来对数仓的表分门别类
  • 集成性:将异构数据源,比如MySQL和服务器埋点日志,统一转换成结构化的hive表数据存储到ODS层
  • 非易失性:对历史的所有数据的存储需要稳定性,使用非易失的介质(HDFS)来保存
  • 时变性:数据会增量增加,数据分析的需求可能会发生变化,分析的过程也会发生调整

区别

数据库和数据仓库的区别

数据库系统作为数据管理的主要手段,主要用于操作型处理

  • 操作型处理,也叫联机事务处理OLTP(On-Line Transaction Processing,),也可以称面向交易的处理系统。
  • 主要针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改
  • 特点是低延迟

数据仓库主要用于分析型处理

  • 分析型处理,也叫联机分析处理OLAP(On-Line Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策
  • 主要是查询操作
  • 特点是高延迟
对比 OLTP OLAP
功能 面向【交易】的事务处理 面向【分析】查询
设计 面向【业务】 面向【主题】
数据 最新数据,二维数据 历史数据,多维数据
存储 M,G ( 存储单位 ) T、P、E
响应时间 【快】 【慢】
用户 业务操作人员 管理决策人员

数据仓库和数据集市的区别

数据仓库:体量和概念范围更【广】,是面向整个公司的,比如整个保险公司的表都是数据仓库的,数据颗粒度更【细】。

数据集市:是数据仓库的【子集】,比如按部门,有理赔数据集市,核保集市。。也可以理解为按不同【主题】的集市,一般有维度退化和汇总。

数仓的分层架构


分为三层:
① ODS源数据层(采集源数据)
② DW数据仓库层(数据清洗与数据分析)
③ DA数据应用层(把分析结果对接外部应用)

数仓建模

数据仓库建模有2种方式:三范式建模维度建模

三范式

  • 第一范式,1NF,【原子】性,字段不可分;
  • 第二范式,2NF,【唯一】性, 有主键,非主键字段依赖主键;一个表只说明一个事物;
  • 第三范式,3NF,非主键字段之间【不能】相互依赖;
  • 对于三范式来说,尽量一个表只侧重一个对象的属性,尽量不要有冗余的信息

维度建模

  • 允许一定的字段信息冗余,避免了再join,以【空间】换【时间】
  • 宽表的数据可以复用,避免多次的join

维度和指标

指标

是衡量事务发展的标准,如价格,销量等;
指标可以求和、求平均值等计算

指标又可以细分为绝对数值相对数值

  • 绝对数值反映具体的大小和多少,如价格、销量、分数等;
  • 相对数值反映一定的程度,如及格率、购买率、涨幅等

维度

指事务的特征,如颜色、区域、时间等

维度又可以细分为定性维度定量维度

  • 定性维度:字符类型的特征,比如区域维度包括全国各省份;
  • 定量维度:数值类型的特征,如价格区间、销量区间等,如价格区间维度分为0–100、100-1000两个区间,可以按价格区间维度来对指标进行分析

分层与分级

  • 时间维度

    • 一个层次的4个级别:年、月、日、小时
  • 地区维度
    • 从行政层次3个级别:省、市、县

上卷和下钻

  • 自下而上粒度变粗,为上卷
  • 自上而下粒度变细,为下钻

维度建模

维度建模四步走

  1. 选择业务过程
  2. 声明粒度
  3. 确认维度
  4. 确认事实

维度建模_事实表

事实表可以分为3类:交易事实表周期快照事实表累积快照事实表、无事实事实表

  • 【交易】事实表,一般会同步到数仓中的ODS层或DWD层
  • 【周期快照】事实表,就是对【交易】事实表进行上卷。
  • 【周期快照】事实表在新零售数仓中对应DWS和DM层。
特点 交易事实 周期快照事实 累积快照事实
时间/时期 时刻 时期 时间跨度的多个时点
粒度 每行代表一个交易事件 每行代表一个时间周期 每行代表一个业务周期
事实表加载 新增 新增 新增和修改
事实表更新 不更新 不更新 新事件产生时更新
时间维 业务日期 时期末 多个业务过程的完成日期
事实 交易活动 时间周期内的绩效 限定多个业务阶段内的绩效

维度建模_维度表

维度表可以分为两类:高基数维度数据低基数维度数据

  • 【高基数】维度数据:一般是用户资料表,商品资料表类似的资料表,数据量可能是千万级或上亿级
  • 【低基数】维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维度,地理维度,数据量可能只有个位数或者几千条。

【概念】数据仓库和数仓建模相关推荐

  1. 数仓分层(ODS、DWD、DWS、DWT、ADS)和数仓建模

    文章目录 一.数仓分层 数仓概念 ODS(原始数据层)做了哪些事 DWD(明细数据层)做了哪些事 DWS(服务数据层)做了哪些事 DWT(主题数据层)做了哪些事 ADS(应用数据层)做了哪些事 二.数 ...

  2. 数据仓库面试题集锦(附答案和数仓知识体系)

    [数据仓库系列文章 - 传送门]  一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法)一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法.对比)_不吃西红柿-CSDN博客_事实表三种类型 一篇文 ...

  3. 数据仓库(3)数仓建模之星型模型与维度建模

      维度建模是一种将数据结构化的逻辑设计方法,也是一种广泛应用的数仓建模方式,它将客观世界划分为度量和上下文.度量是常常是以数值形式出现,事实周围有上下文包围着,这种上下文被直观地分成独立的逻辑块,称 ...

  4. 数仓建模—数据领域常见概念与职位划分

    数据领域常见概念 随着大数据时代的普及以及国家战略层面上的数字化转型,越来越多的客户意识到了"数据"的重要性,无论是走在前面的互联网企业.银行,还是传统有一定数据积累的零售.医药行 ...

  5. 数仓建模 项目_音乐数据项目火力全开,技能双倍提升!

    ↑ 点击上方"尚学堂"关注我们 音乐数据中心数仓综合项目 1项目介绍 音乐数据中心项目是大型企业级综合数仓项目,此项目针对音乐数据进行分析,构建数据仓库,建立用户.机器.内容等主题 ...

  6. 漫谈数据仓库之维度建模

    2019独角兽企业重金招聘Python工程师标准>>> 0x00 前言 下面的内容,是笔者在学习和工作中的一些总结,其中概念性的内容大多来自书中,实践性的内容大多来自自己的工作和个人 ...

  7. 数仓建模的edw_浅谈数仓分层和模型

    数仓分层 ODS层基础层-ODS(Operational Data Store-操作型数据存储):主要是未经过加⼯的原始数据 中间层-CDM\EDW(Enterprise Data Warehouse ...

  8. 数据建模_漫谈数据仓库之维度建模

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多惊喜 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 大数据真好玩点击右侧关注,大数据真好玩! ...

  9. 通透!数据仓库领域常见建模方法及实例演示

    1一.为什么需要数据建模? 在开始今天的话题之前,我们不妨思考下,到底为什么需要进行数据建模? 随着从IT时代到DT时代的跨越,数据开始出现爆发式的增长,这当中产生的价值也是不言而喻.如何将这些数据进 ...

最新文章

  1. Vue官网todoMVC示例
  2. 网易云信+妙克:从零到标杆的在线音视频音乐教学之路
  3. 谷歌浏览器 自动保存数据后input的黄色背景 解决办法
  4. python装饰器补充
  5. [译]JavaScript 究竟是如何工作的?(第一部分)
  6. [leetcode]240. 搜索二维矩阵 II
  7. SAS︱数据索引、数据集常用操作(set、where、merge、append)
  8. Windows Phone 7 MVVM模式的学习笔记
  9. php 爬取一个人的网易云评论,爬取网易云音乐某一个人的评论
  10. 月薪1万的乞丐--转载
  11. map转换成JSON的方法
  12. 映像劫持与反劫持技术
  13. 可爱的病毒——电脑病毒竟然被程序员当宠物养!
  14. 2022.11.12 英语背诵
  15. 独家 | 那些令人细思恐极的AI技术,哪一个戳中你的命门?
  16. 20140228老沙的感觉
  17. 巴菲特卸任后盖茨梅琳达与四位新理事共管盖茨基金会;Club Med中国第三家冰雪度假村开业 | 美通社头条...
  18. 学习路由出现'router' is assigned a value but never used (no-unused-vars) at src\main.js:9:8:错误
  19. Python使用OpenCV处理图片通道数
  20. 英特尔oneAPI简介

热门文章

  1. Excel图表—条形图的高级做法
  2. 我不喜欢代码,却为何坚持做程序员?
  3. 算法-查找(红黑树)
  4. 支持英特尔9242的服务器,宝德2U双子星服务器PR2725TP2
  5. 低代码平台有哪些?值得推荐的低代码公司?
  6. Discord账号被封怎么办?Discord账号解封申诉方案
  7. html背景图片纵向缩小,css怎么把背景图片缩小?
  8. 用python画小仓鼠代码,用python画小仓鼠教程
  9. 《奋斗》中徐志森的生意经
  10. applicationContext.xml的头文件