当前位置: 首页 > news >正文

离线数仓(2):数据仓库相关架构和规范

目录

0. 相关文章链接

1. 数据仓库在整个应用中的位置

2. 此次重构的数据仓库具体分层架构

3. 数据仓库为什么要分层

4. 此次重构的数据仓库命名规范

4.1. 表命名

4.2. 表字段类型


0. 相关文章链接

 离线数仓文章汇总 

1. 数据仓库在整个应用中的位置

        数据仓库在企业是处于非常重要的位置;往前接收经由埋点而获取的用户行为日志、拉取商家(报社、博主等内容发布方)和用户交互的业务数据;往后输出的数据可以给领导层提供决策、可以给用户构建画像系统、可以判断用户喜好等。

2. 此次重构的数据仓库具体分层架构

  • ODS(原始数据层):存储原始数据,直接加载原始日志、数据,不做任何处理
  • DWD(明细数据层):对ODS层数据进行清洗、脱敏等,保存业务事实明细
  • DIM(维度层):保存维度数据,主要是对业务事实的描述信息,例如何人、何时、何地
  • DWM(中间数据层):对DWD层同一个业务事实进行汇总,例如订单详情、订单、订单取消
  • DWS(数据服务层):以DWD为基础,按天进行轻度汇总;一行信息代表一个主题对象一天的汇总行为,例如一个用户一天的下单次数
  • DWT(数据主题层):以DWS为基础,对数据进行累积汇总;一行信息代表一个主题对象的累积行为,例如一个用户累计下单次数
  • ADS(数据应用层):为各种统计报表和数据协助提供数据

3. 数据仓库为什么要分层

  • 把复杂问题简单化: 将复杂的任务分解成多层来完成,每一层只处理简单的任务,方便定位问题。
  • 减少重复开发:规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。
  • 隔离原始数据:不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开。

4. 此次重构的数据仓库命名规范

4.1. 表命名

ODS层命名为ods_表名
DIM层命名为dim_表名
DWD层命名为dwd_表名
DWM层命名为dwm_表名
DWS层命名为dws_表名  
DWT层命名为dwt_表名
ADS层命名为ads_表名
临时表命名为tmp_表名

4.2. 表字段类型

数量类型为bigint
金额类型为decimal(16, 2),表示:16位有效数字,其中小数部分2位
字符串(名字,描述信息等)类型为string
主键外键类型为string
时间戳类型为bigint

注:其他 离线数仓 相关文章链接由此进 -> 离线数仓文章汇总


相关文章:

  • MySQL-数据类型和DDL
  • Linux学习笔记6 - 系统启动流程
  • 动态数组写模板类
  • 代码错误与检查简短教程(新手适用)
  • Java Design Patterns 之API 网关模式
  • vue框架的基础语法之方法和事件的绑定,样式绑定,循环渲染,条件渲染
  • 项目第一天
  • go get 拉取报错The project you were looking for could not be found的解决方法
  • 算法题练习——NC15 求二叉树的层序遍历、NC88 寻找第K大
  • java基于springboot+vue的汉服推广与交流平台
  • 6面向对象中的继承
  • 【非正式协议 Objective-C语言】
  • Java面试题09-ThreadLocal的底层原理
  • Golang依赖管理(GOPATH->vendor->Go Module)
  • java计算机毕业设计网上报名及成绩查询系统源码+数据库+系统+lw文档+mybatis+运行部署
  • CentOS6 编译安装 redis-3.2.3
  • Effective Java 笔记(一)
  • HTTP--网络协议分层,http历史(二)
  • PHP那些事儿
  • vue-router 实现分析
  • 闭包--闭包作用之保存(一)
  • 从零搭建Koa2 Server
  • 飞驰在Mesos的涡轮引擎上
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 关于使用markdown的方法(引自CSDN教程)
  • 和 || 运算
  • 那些被忽略的 JavaScript 数组方法细节
  • 深度学习中的信息论知识详解
  • 实习面试笔记
  • 使用API自动生成工具优化前端工作流
  • 我的面试准备过程--容器(更新中)
  • scrapy中间件源码分析及常用中间件大全
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #define 用法
  • #Linux(make工具和makefile文件以及makefile语法)
  • #QT(TCP网络编程-服务端)
  • #考研#计算机文化知识1(局域网及网络互联)
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (转)scrum常见工具列表
  • .net core 6 redis操作类
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Micro Framework 4.2 beta 源码探析
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET基础篇——反射的奥妙
  • .NET中的Exception处理(C#)
  • .考试倒计时43天!来提分啦!
  • :中兴通讯为何成功
  • @AutoConfigurationPackage的使用
  • []指针
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [CSS]文字旁边的竖线以及布局知识
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页