数仓建模

  • 基本概念:

    • DW (Data Warehouse)

      • 是一个面向主题的(Subject Oriented), 集成的(Integrated), 相对稳定的(Non-Volatile), 反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
    • ODS (Operational Data Store)
      • 是一个面向主题的, 集成的, 可变的, 当前细节数据集合。
      • 用于支持企业对于即时性的, 操作性的, 集成的全体信息的需求。
      • 与数据仓库(DW)的区别:
        • ODS 是短期的实时的数据, 供产品或者运营人员日常使用, 而数据仓库是供战略决策使用的数据
        • ODS是可以更新的数据, 数据仓库是基本不更新的反应历史变化的数据
        • ODS 作为数据库到数据仓库的一种过渡形式, 与数据仓库在物理结构上不同, 能提供高性能的响应是见, ODS设计采用混合设计方式。
        • ODS中的数据是"实时值", 而数据仓库的数据却是"历史值", 一般ODS中储存的数据不超过一个月, 而数据仓库为10年或更多。
    • DM (Data Mart)
      • 为了特定的应用目的或应用范围, 而从数据仓库中独立出来的一部分数据, 也可称为部门数据或主题数据(subjectarea)。
      • 在数据仓库的实时过程中往往可以从一个部门的数据集着手, 以后再用几个数据集市组成一个完整的数据仓库。
      • 需要注意的是在实施不同的Data Mart时, 同一含义的字段定义一定要相容, 这样再以后实施数据仓库时才不会造成大麻烦。
  • 基于以下两套经典理论:
    • 范式模型

      • lnmon 提出的集线器的自上而下 (EDW-DW) 的数据仓库架构。
    • 维度模型
      • Kumball 提出的总线式的自下而上 (DM-DW) 的数据仓库架构。
      • 星型模型(便于OLAP分析), 雪花模型
    • 其他模型
      • Data Vault 模型
      • Anchor 模型

数仓分层

  • 为何要对数仓分层?

    • 简化复杂问题

      • 把一个复杂的人物分解成多个步骤来完成, 每一层只处理单一的步骤, 比较容易理解。
    • 使数据结构清晰
      • 每一个数据分层都有它的作用域, 这样我们在使用表的时候能更方便地定位和理解。
    • 提高数据的复用性
      • 规范数据分层, 通过中间层数据, 能够减少极大的重复计算, 增加一次计算结果的复用性。
    • 隔离原始数据
      • 不论是数据的异常还是数据的敏感性, 使真实数据与统计数据解耦。
  • 分层结构

    • Staging 层

      • 预处理层, 存储每天的增量数据, 表和ODS层一致
    • ODS (Operational Data Store) 层
      • 操作数据层, 存储所有基础数据, 做简单的数据清洗
    • DWD (Data Warehouse Detail) 层
      • 数据明细层, 主要是一些宽表, 存储明细数据。
      • 采用维度退化的方法, 将维度退化到事实表中, 减少事实表和维度表的关联, 提高明细表的易用性。
    • DWS (Data Warehouse Summary) 层
      • 采用更多的宽表化
      • 针对不同的维度进行数据聚合, 按主题进行划分, 属于维度建模的范畴。
    • ADS(Application Data Store) 层
      • 偏应用层m 各种报表的输出。
      • 存放数据产品个性化的统计指标数据, 主要面向前段展现

原文地址:https://www.cnblogs.com/ronnieyuan/p/11797734.html

时间: 2024-10-12 21:17:37

数仓建模的相关文章

干货:解码OneData,阿里的数仓之路。

免费开通大数据服务:https://www.aliyun.com/product/odps 据IDC报告,预计到2020年全球数据总量将超过40ZB(相当于4万亿GB),这一数据量是2013年的10倍.正在"爆炸式"增长的数据的潜在巨大价值正在被发掘,它有可能成为商业世界的"新能源",变革我们的生产,影响我们生活.当我们面对如此庞大的数据之时,如果我们不能有序.有结构的进行分类组织和存储,那么在价值被发现前,也许数据成本灾难已经来临.它犹如堆积如山的垃圾,给我们企业

调度、模型、同步与任务——阿里云大数据数仓建设性能优化方案

摘要:对于阿里云大数据数仓建设性能优化而言,主要可以从调度优化.模型优化.同步优化以及任务优化这四个方面着手.其实,对于性能优化而言,最终还是会归结到"资源"之上,所以资源是否足够,分配是否合理也是我们在进行性能优化时必须考虑的关键所在. 本文将主要围绕以下四个方面进行介绍:调度优化.模型优化.同步优化以及任务优化.对于调度优化而言,将分享任务调度如何进行优化,以及如何看到调度的瓶颈点,以及在初步进行建设和使用数据仓库的任务之后,对于任务如何进行调整来满足业务的时间要求.对于模型优化而

保险数仓建设-kimball

一.  背景: 1. 部门经过一轮的重大变化,对目前的数据提出了新的要求,其中之一就是要做业务数仓. 2. 经过和leader的沟通,从业务层面,时间层面,人力层面出发,最终还是使用维度建模的方式来实现,实现的内容更多的是个数据集市或者业务数仓. 二. 经过: 1. 整个建设流程分为如下几个:a. 业务流程的梳理和规划. b. 业务数据的梳理. c. 业务指标和维度的梳理. d. 数仓框架设计,层次设计,维表设计,事实表设计. e. 数仓开发. f. 结果的输出,指标的输出. 三. 问题和总结:

数仓模型示例

数仓模型案例一.范式建模1.零范式为便于分级说明三范式的特点,我们将不满足任何范式即无范式的数据称为零范式,假设它只满足一个最基本的条件--数据中不存在重复数据.假设根据零范式的定义数据库中有一张保险订单统计表,表中包含了用户id.保险id.用户名.注册省份.注册城市.注册区县.保险名称.购买信息(价格.数量).总保费.购买日期.具体情况如下图:2.一范式在零范式的基础上加上字段具有原子性即属性不可分这个条件后便形成了符合一范式的表.基于上面的保险订单统计表一范式和零范式的区别主要在于将表中的"

如何才能让数仓构建成本降低80%,维护成本降低70%?

构建数据仓库的核心是建模,在数据仓库的构建中,ETL贯穿于项目始终,它是整个数据仓库的生命线.从数据源中抽取数据,然后对这些数据进行转化,最终加载到目标数据库或者数据仓库中去,这也就是我们通常所说的 ETL 过程(Extract,Transform,Load). 通常数据抽取工作分抽取.清洗.转换.装载几个步骤: 抽取主要是针对各个业务系统及不同服务器的分散数据,充分理解数据定义后,规划需要的数据源及数据定义,制定可操作的数据源,制定增量抽取和缓慢渐变的规则. 清洗主要是针对系统的各个环节可能出

企业大数据平台下数仓建设思路

免费开通大数据服务:https://www.aliyun.com/product/odps 介然(李金波),阿里云高级技术专家,现任阿里云大数据数仓解决方案总架构师.8年以上互联网数据仓库经历,对系统架构.数据架构拥有丰富的实战经验,曾经数据魔方.淘宝指数的数据架构设计专家. 与阿里云大数据数仓结缘 介然之前在一家软件公司给企业客户做软件开发和数仓开发实施,数仓开发和实施都是基于传统的基础架构.2008年加入阿里进入淘宝数据平台部后,他开始接触分布式计算平台Hadoop. 初始时在Hadoop平

【云+社区极客说】新一代大数据技术:构建PB级云端数仓实践

本文来自腾讯云技术沙龙,本次沙龙主题为构建PB级云端数仓实践 在现代社会中,随着4G和光纤网络的普及.智能终端更清晰的摄像头和更灵敏的传感器.物联网设备入网等等而产生的数据,导致了PB级储存的需求加大. 但数据保留下来并不代表它真的具有利用价值,曾经保存的几TB的日志,要么用来做做最简单的加减乘除统计,要么就在日后出现问题了,扒出日志堆找证据.你的影视库里面可以下载储存成千上万部影片,但不代表你真的能全部看完. 如何将手里现有的数据变得更具有价值?一些营销云已经可以做到毫秒级响应做到精准投放广告

数仓简介

数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的"Building the Data Warehouse"(<建立数据仓库>)一书中所提出的定义被广泛接受,数据仓库是一个面向主题的(Subject Oriented).集成的(Integrate).相对稳定的(Non-Volatile).反映历史变化(Time Variant)的数据集合,用于支持管理决策. OLTP:on-line transaction proccessing,联机事务处理,主要是业务数据

在HUE中将文本格式的数据导入hive数仓中

今天有一个需求需要将一份文档形式的hft与fdd的城市关系关系的数据导入到hive数仓中,之前没有在hue中进行这项操作(上家都是通过xshell登录堡垒机直接连服务器进行操作的),特此记录一下. -- step1 -- 创建表(注意表的存储格式) create table if not exists edw_public.dim_edw_pub_hft_fdd_city_rel_info( hft_city_id bigint comment '好房通城市id', hft_city_name