大数据(0b)离线数据仓库

离线数仓-数据仓库系统 数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。只有将数据有序的组织和存储起来之后,数据才能得到高性能、低成本、高效率、高质量的使用。高性能:良好的数据模型能够帮助我们快速查询所需要的数据。低成本:良好的数据模型能减少重复计算,实现计算结果的复用,降低计算成本。高效率:良好的数据模型能极大的改善用户使用数据的体验,提高使用数据的效率。高质量:良好的数据模型能改善数据统计口径的混乱,减少计算错误的可能性。事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计。 阅读详情

1、数据库 & 数据仓库

中文名英文名说明
数据库Database按照数据结构来组织、存储和管理数据的仓库
数据仓库Data Warehouse为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合

数据仓库不是数据的终点,而是为数据的终点做准备

  • 离线计算:延时的、周期性的、批处理的、海量的 数据计算
    通常,离线计算周期是1天,就是每天批处理前1天的数据,俗称T+1
  • 离线数仓:基于离线计算的数据仓库
    目前 主流的 主要的 离线数仓工具 是 HIVE

2、OLTP & OLAP

在线数据处理分类联机事务处理联机分析处理
英文简称OLTPOLAP
英文全称Online Transaction ProcessingOnline Analytical Processing
数据规模小大
延时低高
数据修改灵活不灵活,批量操作为主
数据表征最新数据状态随时间变化的历史状态
应用事务处理数据分析
场景用户注册、商品交易、商品评价商品销量、销售额、退单数、退单率…

3、范式理论

范式
构造 关系数据库遵循的规则
优点
降低数据的 冗余性
保证数据 一致性(数据修改时,改一个表就行,不用改多个)
缺点
需要 join拼接数据,效率降低

4、维度表 & 事实表

维度表事实表
行数较少,列数较多行数较多,列数较少
内容相对固定每天很多新增

4.1、维度表

  • 一般是对事实的描述信息,例如:用户、商品、日期、地区…
  • 行数较少,列数较多
  • 内容相对固定(编码表)

日期维度

用户维度(拉链表)
从拉链表取出快照

4.2、事实表

  • 每行数据代表一个业务事件,通常有很多外键(地区、用户、时间…)
  • 业务事件可以是:下单、支付、退款、评价…
  • 业务事件有数字度量,如:数量、金额、次数…
  • 行数较多,列数较少
  • 每天很多新增
分类说明特点场景
事务型事实表以每个事务为单位数据只追加不修改一个订单支付
一笔订单退款
周期型快照事实表保留固定时间间隔的数据不会保留所有数据点赞数
累积型快照事实表跟踪业务事实的变化数据会修改订单状态
数字度量说明示例示例说明
可加事实各个纬度可以相加销售额既可按日期相加,也可按地区相加
半可加事实部分维度可以相加库存不可按日期相加,可按地区相加
不可加事实各个维度不可相加比例

5、星型模型、雪花模型、星座模型

星型模型

适用于简单业务

雪花模型

和星型模型相比,查询更慢,冗余更低,拓展性更好

星座模型

存在共享维度

建议使用:星座模型+雪花模型

6、数仓分层

序分层全称译名说明压缩列式存储分区
1ODSOperation Data Store原始层原始数据✅❌✅
2DIMDimension维度层合并维度表✅✅✅
3DWDData Warehouse Detail明细层数据处理、维度建模✅✅✅
4DWSData Warehouse Service服务层去主键聚合,得到原子指标✅✅✅
5DWTData Warehouse Topic主题层存放主题对象的累积行为✅✅✅
6ADSApplication Data Store应用层具体业务指标❌❌❌
HIVE
维度退化
数据处理
维度建模
聚合
累积
计算指标
HDFS
ODS
DIM
ADS
DWD
DWS
DWT
  • 分层的好处
    复杂问题拆解为多层
    减少重复开发(可以去中间层取数,不用每次都去原始层)
    隔离原始数据,例如:异常数据、敏感数据(用户电话…)
  • 数据存储策略
    原始层保持数据原貌,不进行脱敏和清洗
    创建分区表(例如:日期分区),防止全表扫描
    数据压缩,减少磁盘占用(如:LZO、gzip、snappy)
    列式存储提高查询效率(如:Parquet、ORC)

6.1、命名规范

库名:业务大类
表名:分层名_业务细类
临时表:temp_表名
备份表:bak_表名
视图:view_表名(场景:不共享的维度表、即席查询)

分层命名规范说明例
ODSods+源类型+源表名+full/ifull:全量同步
i:增量同步
ods_postgresql_sku_full
ods_mysql_order_detail_i
ods_frontend_log
DIMdim+维度+full/zipfull:全量表
zip:拉链表
日期维度表没有后缀
dim_sku_full
dim_user_zip
dim_date
DWDdwd+事实+full/ifull:全量事实
i:增量事实
DWSdws+原子指标时间粒度有1d、1h…
1d:按1天
1h:按1小时
dws_page_visitor_1d
DWTdwt_消费者画像
ADSads+衍生指标/派生指标

6.2、合并维度表 and 维度缩减(ODS=>DIM)

合并维度表

维度缩减:
情况1:字段很少的维度表 合并到事实表
情况2:非公共的维度表(该维度表只用在一个事实表)合并到事实表

6.3、数据处理(ODS=>DWD)

处理方式说明
JSON 解析{'A': {'a': 3, 'b': 4, 'c': 6}}=>{'Aa': 3, 'Ab': 4, 'Ac': 6}
字段统一将student_id和StudentId统一成student_id
单位统一2万元 => 20000元
名称统一西红柿 => 番茄
番茄 => 番茄
tomato => 番茄
枚举转换0 => 男
1 => 女
脱敏电话:188xxxxxx79
去重去除重复数据(避免笛卡尔乘积)
过滤清除无效数据

6.4、维度建模(ODS+DIM=>DWD)

  1. 选择业务过程,例如:用户、商品、订单、优惠券、评价…
  2. 声明粒度,例如:订单表的1行数据 代表了1次下单行为
  3. 确度维度:时间维度、地区维度、商品维度、用户维度、优惠券维度…
  4. 确定事实:点击、下单、支付、退款、评价…
  5. 度量值:次数、金额、个数…
  6. 构建 事实 × ( 维度 + 度量值 ) 事实 \times (维度+度量值) 事实×(维度+度量值)矩阵
事实\维度时间地区用户商品优惠券…度量值
子订单11111个数、金额
退款1111次数、金额
评价1111次数

6.5、指标(DWD=>DWS=>ADS)

  • 原子指标:业务定义中 不可拆解的指标
    由DWD层聚合而来,存储到DWS层
原子指标业务过程度量值聚合逻辑
订单数订单order_idcount
订单金额订单order_amountsum
页面浏览量页面浏览page_idcount
每日 独立访客数页面浏览user_idcount(distinct)
每月 独立访客数页面浏览user_idcount(distinct)
  • 派生指标:对 原子指标 进一步 聚合和筛选
    由DWS层聚合而来,可存储到DWT层或ADS层
指标类型原子指标统计粒度(group by)业务限定(where)
各省份 每天 手机类目 下单金额下单金额天、省份手机类目
每月 各页面 流量页面浏览量月、页面无
  • 衍生指标:多个派生指标 复合运算而成,例如:比率
    当天退单率 = 当天退单数 / 当天订单结束数 当天退单率=当天退单数/当天订单结束数 当天退单率=当天退单数/当天订单结束数
    下单率 = 下单人数 / U V 下单率=下单人数/UV 下单率=下单人数/UV
    存储到ADS层

  • 画像:对维度表的字段进行分组COUNT得到的统计值,并没有事实表参与
    例如:用户画像、商品画像
    统计值例如:对用户维度表COUNT(性别)得到男生人数和女生人数
    这种统计值通常不完全可加的,例如昨天的男生人数不能和前天的男生人数相加
    而每天算一次就可得到时间序列,例如男生人数按天统计的时间序列

7、数据同步策略

同步策略周期读数方式写入方式适用场景示例
同步1次长全量覆盖写入源不变日期表
全量同步每天全量覆盖写入日期分区源量小,有增改品牌表
增量同步每天按日期新增覆盖写入日期分区源增量大子订单表
增量变化同步每天按日期增量和变化覆盖写入日期分区源量大,有新改父订单表、用户表
示例表类型源量是否允许
update
是否允许
delete
同步策略
&增量标识
同步周期
&分区
商品信息维度表小是全量按天
用户信息维度表大是创建时间和更新时间按天
子订单流水事务型事实表大创建时间按天
商品收藏周期型快照事实表中是全量按天
订单状态累积型快照事实表大是创建时间和更新时间按天

8、示例表

数仓建设(离线和实时) 文档大纲: 一、数仓基本概念 1. 数据仓库架构 我们在谈数仓之前,为了让大家有直观的认识,先来谈数仓架构,“架构”是什么?这个问题从来就没有一个准确的答案。这里我们引用一段话:在软件行业,一种被普遍接受的架构定义是指系统的一个或多个结构。结构中包括软件的构建(构建是指软件的设计与实现),构建的外部可以看到属性以及它们之间的相互关系。 这里参考此定义,把数据仓库架构理解成构成数据仓库的组件及其之间的关系,画出下面的数仓架构图: 数仓架构 上图中显示的整个数据仓库环境包括操作型系统和数据仓 阅读详情

相关推荐

离线数仓(一)【数仓概念、需求架构】

电商数仓-数仓概念

功不唐捐,玉汝于成 4793

离线数据仓库

离线数据仓库知识点

小道的博客 5390

DB-GPT安装部署使用初体验

参考源码部署注:如本地部署大模型,可离线下载后放置DB-GPT/models目录下。考虑大家资源有限,此处介绍代理模式安装。代理模式即各大大模型厂商提供的API接口,有免费的、限免的、付费的,大家酌情选择。阿里系: https://dashscope.console.aliyun.com/billing科大讯飞:星火大模型,官网领取额度结论:通义千问qwen-turbo模型效果稍好点。有条件的可以上chat-gpt和智谱AI,效果更好。

leehoward 2万+

离线数仓-基础知识(个人总结)

    声明: 1. 本文为我的个人复习总结, 并非那种从零基础开始普及知识 内容详细全面, 言辞官方的文章               2. 由于是个人总结, 所以用最精简的话语来写文章            

hellosrc的博客 9488

尚硅谷大数据项目【电商数仓5.0】学习笔记

尚硅谷大数据项目【电商数仓5.0】学习笔记

yiluohan0307的专栏 3982

大数据平台设置表数据量的监控任务(阈值)

侯圣文大数据体验课笔记 一、玩转大数据和互联网大厂大数据解析 大数据职位有广袤的海洋: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R6aNWQ9r-1652164317262)(C:\Users\MSI-NB\AppData\Roaming\Typora\typora-user-images\image-20220508163847484.png?lastModify=1652142610)] 未来比较吃香的ABC A:AI人工智能 B:Big Date大数据 C:云计算

qq_43528451的博客 944

大数据平台架构01_离线数据仓库平台

离线数据平台通常和Hadoop 、Hive 、数据仓库、ETL 、维度建模、数据公共层等联系在一起。在大数据以及Hadoop 没有出现之前,离线数据平台就是数据仓库,数据部门也就是数据仓库部门。随着大数据的兴起以及数据量的持续爆炸和指数级别增长, Hadoop 以及MapReduce 、Hive 等大数据处理技术才得到越来越广泛的应用。 1.离线数据整体框架 离线数据平台的另一个关键技术是数据的...

清平乐的技术专栏 2294

大数据-数据仓库-Hive总结及性能优化

Hive是构建在Hadoop之上的数据仓库软件。它提供类似sql的查询语句HiveQL对数据进行分析处理,Hive将HiveQL语句转换成一系列MapReduce作业并执行。

MsSpark的博客 3389

大数据面试吹牛草稿V2.0

大数据面试:吹牛之前先打个草稿!

yuan_more的博客 9362

大数据在线离线一体化解决方案最佳实践

简介:本文重点介绍大数据产品集通用解决方案,即大数据在线计算+离线计算一体化解决方案,并通过真实案例模拟来说明此通用解决方案在具体项目中是如何落地的。 概述 本方案重点要落地的业务是中央网信办网络安全应急指挥中心相关业务,由于需要处理的网络数据流量巨大,而且对实时和离线大数据计算分析均有要求,所以提供此在线离线一体化解决方案。 混合云某项目主要业务简介如下: 流量采集 流量采集技术是监控网络流量的关键技术之一,为流量分析提供数据来源。为了能够在复杂企业网中有效的分析网络流量。 网络探针 互联网探.

阿里云云栖号 1846

什么是大数据系统存储及管理?

什么是大数据系统存储及管理?根据数据存储和管理的内容范围,大数据存储及管理技术需要重点研究如何解决大数据的可存储、可表示、可处理、可靠性及有效传输等。需要解决:海量文件的存储与管理,海量小文件的传输、索引和管理,海量大文件的分块与存储,系统可扩展性与可靠性的问题。对于任何一个企业来说,任何类型的数据都可能是至关重要且私有的,只有能在自己掌控的范围内才可以说是安全的。然而,很多行业巨头容易成为黑客攻击的首要目标,许多公司会对此有危机感。

weixin_51689029的博客 3107

【大数据离线项目一:基于Apache HIve的大数据离线项目的项目背景,技术框架,业务流程】

基于Apache HIve的大数据离线项目的相关技术分享,项目背景的目的,技术框架,业务流程,设备选型,连接数据库。

书生的技术分享 1648

手把手教你用单结晶体管搭建简易振荡电路(含电路图和波形分析)

本文详细介绍了如何使用单结晶体管(UJT)搭建简易振荡电路,包括电路设计、波形分析和实战技巧。通过具体的电路图和参数计算,帮助电子爱好者和工程师快速掌握UJT振荡器的设计与调试方法,适用于脉冲信号生成和时钟源制作等应用场景。

weixin_29207533的博客 516

大数据千亿级离线数仓项目第一天 环境部署和etl

千亿级数仓项目第01天讲义 课程目标 了解大数据离线数仓架构 了解项目部署环境(数据规模和集群规模) 掌握ETL工具 Kettle常用组件的使用 能够掌握kettle作业与转换区别以及linux部署 1. 电商行业简介 电商行业分析 近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。 中国电

fegus的博客 1728

不用Root也能抓包?Android高版本HTTPS抓包的3种替代方案(含Charles技巧)

本文针对Android高版本HTTPS抓包难题,提供了三种无需Root权限的实战解决方案:利用VirtualXposed等虚拟沙盒环境、配置Postern等系统级代理工具,以及通过修改应用源码或网络安全配置。文章还详细解析了Charles抓包工具在非Root环境下的高级配置与排错技巧,帮助开发者在遵守安全规范的前提下,有效进行网络调试与监控。

http9protocoller的博客 648

学术报告系列(二) - 智能自主作业机器人感知与控制技术及发展趋势

收集整理于2022年模式识别高峰论坛湖南大学王耀南院士报告(报名题目:智能自主作业机器人感知与控制技术及发展趋势)

Make something people want. 4699

从0建设离线数据仓库

话聊建设数仓ETL工具面临的问题分层分层的出发点分层设计模型建设为什么要建设模型怎么建设模型理清工作思路实施步骤建模方法及实施规范建设临时表管理代码规范流程规范话聊技术升...

微信搜:import_bigdata,大数据领域硬核原创作者 953

(实战)[re:Invent 2018]-001:赛道分析-(致敬1024)

打印log

Rainbow 2784

kettle全量抽数据_从0建设离线数据仓库

话聊建设数仓ETL工具面临的问题分层分层的出发点分层设计模型建设为什么要建设模型怎么建设模型理清工作思路实施步骤建模方法及实施规范建设临时表管理代码规范流程规范话聊技术升级快于我们的想象,今天的故事在明天来看就是一种常识。对于数仓而言,又何尝不是?互联网的发展,导致大数据的人才缺口。互联网公司雨后春笋,传统行业机巧转身。短短几年,数据行业已沧海桑田。今天谈大数据已不复当年雾里看花的景象,...

weixin_26805451的博客 360

别再乱用标签了!深度解析Unity Addressables标签(Labels)的三种高级用法与性能影响

本文深度解析Unity Addressables标签(Labels)的三种高级用法与性能影响,包括标签组合查询、Pack Together by Label打包策略及运行时性能优化。通过实战代码示例和性能数据对比,帮助开发者实现精细化资源加载控制与包体优化,提升项目效率。

weixin_30500105的博客 509

巨量千川M-API实战:5分钟搞定短视频计划数据自动获取(Python版)

本文详细介绍了如何利用巨量千川M-API和Python快速搭建自动化工具,实现短视频计划数据的自动获取。通过实战代码演示了从环境准备、Token管理到核心数据接口调用的完整流程,帮助电商运营和技术开发者告别手动导出,高效完成数据汇总与分析。

weixin_29325515的博客 1366

尚硅谷离线数仓6.0笔记+安装文件(自用连载中)

输出json格式文件操作插入更新删除MySQLMaxwell"data":{"id",1"data":{"id",1"old":{"data":{"id",1。

m0_63090261的博客 3627

12、每日卫星任务规划问题的不同公式

本文探讨了卫星任务规划问题的多种数学公式表示方法,包括传统的整数线性规划(ILP)模型、改进的基于路径的公式、基于集合覆盖的公式以及动态规划公式。通过案例研究比较了不同公式的求解效率和适用场景,并提供了使用Python进行实际求解的操作步骤。最后讨论了进一步优化策略及未来研究方向,旨在为解决卫星任务规划问题提供全面的理论支持和实践指导。

assembly8low的博客 204

大数据项目之离线数仓(二)

1)需要问项目经理的问题(1)数据量(历史数据、增量、全量):100g(2)预算:50 万(3)数据存储多久:1 年(4)云主机、物理机:云主机(5)日活:100 万(6)数据源:接口、用户行为数据(文件)、业务数据(MySQL)(7)项目周期:1 个月-3 个月(8)团队多少人:3-5 个(9)首批指标:1-10 个(10)未来的规划:离线和实时 是否都要做2)项目周期(2 个月)(1)数据调研(2 周) + 集群搭建(2)明确数据域(2 天)(3)构建业务矩阵(3 天)(4)建模 至下而上 (2 周)①

zjjcchina的博客 774

WIN10系统下VS2019编译CloudCompare2.12.4

CloudCompare2.12.4

点云侠的博客 3145

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 大数据(3a)HIVE安装
下一篇: 大数据(3d)HIVE基础操作
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值