数仓分层结构

 --图片来源尚硅谷

ODS层:

数据存储格式:JSON/TSV+ gzip压缩(默认)

Operate Data Store

-- 存储从mysql业务数据库和日志服务器的日志文件中采集到的数据

        -- 日志数据

                -- 格式:JSON

        --业务数据
                --历史数据
        -- 格式:
                -- 全量
                        -- Datax : TSV
                -- 增量
                        -- Maxwell : JSON

-- 汇总数据
        -- 希望用最少的资源存储最多的数据
                -- 压缩:

                        -- gzip:Hadoop默认支持的,压缩率极高,压缩效率不高

                        -- Izo:Hadoop默认不支持的,压缩效率高,压缩率高
                        --snappy :Hadoop默认不支持的,压缩效率极高,压缩率不高

DIM层:(维度层)

数据存储格式:orc列式存储+snappy压缩

Dimension :维度
--所谓的维度其实就是分析数据的角度
--维度层保存的表其实就是分析数据的角度表
        -- 性别
        -- 年龄
        -- 品牌
        -- 品类
--维度层保存维度表,所以建模理论应该遵循维度建模理论

        -- 维度层中的维度表,主要用于统计分析
                --数据存储方式应该为列式存储: orc
                --数据压缩效率越高越好(时间短) : snappy

        --数据源
                -- ODS层的数据为整个数据仓库做准备
                -- DIM层数据源就是ODS层

--命名规范
        -- 分层标记 (dim_)_维度名称_全量/拉链(标记)
                -- 全量: 维度表的全部数据
                        -- 状态数据为了避免数据出现问题,最好的方式,就是每一天都保存数据
--建模理论

        --ER模型
                -- ODS
        --维度模型
                -- 维度(状态)表
                --事实(行为) 表

DWD层:(明细层)

数据存储格式:orc列式存储+snappy压缩

Data Warehouse Detail
-- detail : 详细,明细

  • 对ODS层的数据进行加工,为后续的统计分析做准备
  • DIM层主要功能其实是分析数据:面向状态
  • DWD层主要功能其实是统计数据: 面向行为
  • DWD层的表中主要保存的就是业务行为数据,表的设计需要遵循建模理论 - 维度建模 - 事实(行为)
  • 数据存储格式:列式存储
  • 数据压缩格式: snappy

命名规范
--分层标记 (dwd_)+ 数据域(分类) + 行为 + 全量/增量

        --原则上来讲,所有的行为都应该是增量数据
                --特殊情况下,会采用全量方式实现行为统计。

DWS层:(汇总层)

数据存储格式:orc列式存储+snappy压缩

Data Warehouse Summary

-- Data Warehouse : 数仓库

-- Summary : 汇总 (预聚合)


--用于将DIM,DWD的数据进行提前统计,将统计结果保存到当前的表中。
-- 所以当前的表不是最终的统计结果表
        --数据量就可能有点多。表的设计中应该添加分区
        --当前表需要进一步的聚合处理,所以表的设计中应该是列式存储,且采用snappy压缩

--表的分类:根据数据范围进行分类
        --1d:1天的数据的统计
                数据来源为DIM,DWD
        -- nd :N天的数据的统计
                数据来源必须为1d表
        --td : 所有数据的统计
                数据来源可以为1d表
                数据来源也可以为DIM,DWD

--表名
         --分层标记 (dws_)+ 数域 + 统计度 + 业务过程 + 统计周期 (1d/nd/td)

                -- 指标: 客户想要的一个统计结果 (数值)
                        --业务过程相同:数据来源相同
                        --统计周期相同:数据范围相同
                        --统计粒度相同:数据含义相同

ADS层:

-- Application Data Service
        -- Application : (数据仓库)应用
        -- Data : 用户需求的统计结果数据
        -- Service :对外服务
1. ADS层保存的数据是最终的统计结果,无需做进一步的计算

        -- 不需要列式存储,也不需要snappy压缩
2. 统计结果的目的是对外提供服务,所以表不会最终数据的存储位置

        -- 需要将表中的数据同步到第三方存储(MYSQL)
                -- ADS层的表最好是行式存储: tsv (DataX)
                --压缩格式采用gzip
3. 统计结果的数据量不会很多
        -- ADS层的表无需分区设计
4. 表的设计
        -- ODS层:表的结构依托于数据源的数据结构(ER模型)

        -- DIM层:遵循维度模型的维度表的设计理念(维度越丰富越好)

        -- DWD层:遵循维度模型的事实表的设计理念(粒度越细越好)

        -- ADS层:客户要啥你加啥,不要额外添加

基础概念
        维度: 分析数据的角度
        粒度: 描述数据的详细程度
        统计周期 : 统计的时候,数据统计时间范围

        统计粒度 : 分析数据的具体角度,称之为统计粒度(站在哪一个角度统计数据)

        指标: 客户想要的一个结果数值

指标体系:

-- 原子指标(拆分指标)
        -- 行为,统计字段,统计逻辑
--派生指标(增加条件)
        -- 统计周期(范围) + 业务限定(筛选条件) + 统计粒度(分组维度)
--衍生指标(比率,比例)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/290967.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

借还款记账表,借款还款记账软件

我们每个人都在为生活奔波,为事业打拼。但有时候,生活中的一些小事情,比如朋友间的借贷、还款,就可能让我们的生活变得有些混乱。为了解决这个问题,一个全新的借还款记账软件【晨曦记账本】横空出世,它不仅…

STM32真的是很落后吗?

今日话题,STM32真的是很落后吗?STM32是否落后于其他技术在很大程度上依赖于具体的应用和需求。虽然我对Python的了解有限,但我认识到STM32在嵌入式领域具有广泛的应用和卓越的性能。值得注意的是,STM32不仅性能卓越,而…

公众号文章如何提高阅读量?媒介盒子教你几招

公众号作为微信运营的主要载体,做得好就能让品牌得到大量曝光,公众号文章作为长文案想要写好还需要一定的技术,今天媒介盒子就来和大家聊聊公众号文章怎么写才能提高阅读量: 一、 内容干货满足读者求知欲 只要你的文章实用性强&…

CFOxCIO共议:CRM如何帮上市公司更长久赚钱?

2024年的增长机会,在于新旧动能转化,在于高质量发展,也在于组织的应变力。包括CRM系统在内的数字化平台对于上市公司的价值,正从单纯的降本增效工具,走向与合规及利润提升相结合,支撑企业战略落地&#xff…

Linux操作系统基础(02):Linux系统的安装

1. 准备工作 VMware Workstation 是一款由 VMware 公司开发的虚拟机软件,它可以在一台物理计算机上创建多个虚拟计算机环境,每个虚拟计算机都可以运行不同的操作系统,网络上的资源很多。 Windwos系统下载并安装 VMware Workstation17。在VM…

前端技术-调试工具(上)

页面制作之调试工具 常用的调试工具有Chrome浏览器的调试工具,火狐浏览器的Firebug插件调试工具,IE的开发人员工具等。它们的功能与使用方法大致相似。Chrome浏览器简洁快速,功能强大这里主要介绍Chrome浏览器的调试工具。 打开 Google Chrom…

搜维尔科技:【简报】第九届元宇宙数字人设计大赛,报名已经进入白热化阶段!

随着元宇宙时代的来临,数字人设计成为了创新前沿领域之一。为了提高大学生元宇宙虚拟人角色策划与美术设计的专业核心能力,我们特别举办了这场元宇宙数字人设计赛道,赛道主题为「AI人工智能科技」 ,只要与「AI人工智能科技」相关的…

mysql的读写分离

MySQL 读写分离原理 读写分离就是只在主服务器上写,只在从服务器上读。 主数据库处理事务性操作,而从数据库处理 select 查询。 数据库复制被用来把主数据库上事务性操作导致的变更同步到集群中的从数据库。 常见的mysql读写分离分为以下两种 1&…

论文润色让审稿人更青睐

大家好,今天来聊聊论文润色让审稿人更青睐,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 标题:论文润色让审稿人更青睐――提升论文通过率的秘诀 …

LDD学习笔记 -- Linux内核模块

LDD学习笔记 -- 内核模块 简介LKM类型Static Linux Kernel ModuleDynamic Linux Kernel ModuleLKM编写语法 syntax详细描述内核头文件用户空间头文件Module Initialization FunctionModule Cleanup FunctionKeyword & Tag宏 __init __exitLKM入口注册Module Metadate&#…

AE (4)_ 直方图调整的理论

#灵感# 在短暂的高通平台调试中,很看重直方图调整的理解。后来其它平台,不怎么调整这个了。但还是记录一下。 我个人还是倾向 招式简单,但应用到极致。 绝大部分内容来自:刘斯宁,Image Enhancement - CLAHE - 知乎 (z…

redis 面试问题 (更新中 ing)

目录 reids 是做什么的为什么那么快有哪些使用场景redis有哪些 数据结构redis 有哪些底层数据结构为什么设计 sds一个 字符串 存储多大容量 stream为什么设计 streamstream 消费者消息丢失stream 消息私信问题 持久化机制redis 持久化机制,优缺点,怎么用…

全解析阿里云Alibaba Cloud Linux镜像操作系统

Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版,针对阿里云服务器ECS做了大量深度优化,Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS,Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…

【python入门】day12:bug及其处理思路

bug的常见类型 粗心 / 没有好习惯 思路不清 lst[{rating:[9.7,2062397],id:1292052,type:[犯罪,剧情],title:肖申克的救赎,actors:[蒂姆罗宾斯,摩根弗里曼]},{rating:[9.6,1528760],id:1291546,type:[剧情,爱情,同性],title:霸王别姬,actors:[张国荣 ,张丰毅 , 巩俐 ,葛优]},{r…

.NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法

在.NET 6中,微软官方建议把 System.Drawing.Common 迁移到 SkiaSharp 库。因为System.Drawing.Common 被设计为 Window 技术的精简包装器,因此其跨平台实现欠佳。 SkiaSharp是一个基于谷歌的Skia图形库(Skia.org)的用于.NET平台的…

目标检测损失函数:IoU、GIoU、DIoU、CIoU、EIoU、alpha IoU、SIoU、WIoU原理及Pytorch实现

前言 损失函数是用来评价模型的预测值和真实值一致程度,损失函数越小,通常模型的性能越好。不同的模型用的损失函数一般也不一样。损失函数主要是用在模型的训练阶段,如果我们想让预测值无限接近于真实值,就需要将损失值降到最低…

flink on yarn任务启停脚本(实现一键读取ck启动,保存ck停止)

1.问题描述 flink同步任务,长期任务过多,某个任务停止保存checkpoint或者savepoint后,修改代码,使用命令行读取检查点重新启动需要人工去hdfs上找寻检查点保存位置。任务过多管理起来很不方便。 鉴于此,使用脚本编写了…

kotlin基础——重载

重载算术运算符 重载二元算术运算 使用operator定义plus()方法后,可以直接使用号求和 data class Point(val x: Int, val y: Int) {operator fun plus(other: Point): Point {return Point(x other.x, y other.y)} } val p1 Point(1, 2) val p2 Point(3, 4) …

Spark三:Spark SQL

Spark SQL 数据的分析方式、数据分类和SparkSQL适用场景、数据抽象(DataFrame, DataSet, RDD),SparkSQL读取数据和处理数据的两种风格:SQL风格和DSL风格 学习链接 https://mp.weixin.qq.com/s/caCk3mM5iXy0FaXCLkDwYQ 一、数据分…

【GNN】经典GNN的数学原理之美

目录 引言 背景 图神经网络 节点 消息传递 聚合 更新 整合在一起 使用邻接矩阵 GNN层堆叠 以节点分类为例训练GNN。 训练和测试数据 1、Transductive 2、Inductive 反向传播和梯度下降 流行图神经网络总结 1、消息传递神经网络 2、图卷积 3、图注意力网络 …