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

数据仓库实战

目录

    • 1、最佳实战
      • 1.1 表的分类
      • 1.2 ETL策略
      • 1.3 任务调度
    • 2、项目实战
      • 2.1 项目概述
      • 2.2 数据描述
      • 2.3 架构设计
      • 2.4 环境搭建
      • 2.5 项目开发

1、最佳实战

1.1 表的分类

维度建模中表的类型:事实表和维度表
事实表又可以分为:事务事实表、周期快照事实表、累积快照事实表

事实表:一般指现实存在的业务对象,比如用户、商品、商家、销售员等
在这里插入图片描述
维度表:对应一些业务状态,代码的解释表,也称为码表
通常使用维度对事实表中的数据进行统计、聚合运算
在这里插入图片描述
事务事实表:随着业务不断产生的数据、一旦产生不会再变化,如交易流水、操作日志、出库入库记录
在这里插入图片描述
周期快照事实表:随着业务周期型的推进而变化,完成间隔周期内的度量统计,如年、季度累计
使用周期+状态度量的组合,如年累计订单数,年是周期,订单总数是量度
分析压力大
在这里插入图片描述
累积快照事实表:记录不确定周期的度量统计,完全覆盖一个事实的生命周期,如订单状态表
多个时间字段,用于记录生命周期中的关键时间点
一条记录,对此记录不断更新

在这里插入图片描述
一条事件只有一个记录

累积快照事实表的实现:
实现方式一:使用日期分区表,全量数据记录
存储大量永远不更新的冷数据,对性能影响较大,适用数据量小的情况

实现方式二:存储周期内数据,周期外的冷数据存储到归档表

实现方式三:-使用最多且最好的
使用日期分区表,以业务实体的结束时间分区,每天的分区存放当天结束的数据,设计一个时间非常大的分区,如9999-12-31,存放截止当前未结束的数据

拉链表:记录每条信息的生命周期,用于保留数据的所以历史状态
拉链表将表数据的随机修改方式,变为顺序追加

在这里插入图片描述
金额300.5的那个信息,上表中结束日期9999-99-99,说明此状态未结束,下表,日期改为了2020-01-03,说明状态已结束,且新增了一条记录,已支付状态,结束日期也是9999-99-99

1.2 ETL策略

两种:全量同步,增量同步

全量同步:
数据初始化装载一定使用全量同步的方式

增量同步:
传统数据整合方案中,大多采用merge方式(update +insert)
大数据平台不支持update操作,可采用全外连接+数据全量覆盖方式

1.3 任务调度

为什么需要任务调度?

  • 解决任务单元间的依赖关系
  • 自动化完成任务的定时执行

在这里插入图片描述
常见任务类型?
shell、java程序、Mapreduce程序、SQL脚本

常见调度工具?
Azkaban、Oozie

2、项目实战

2.1 项目概述

背景:
某电商企业,因数据积存、分析需要,筹划搭建数据仓库,提供数据分析访问接口
项目一期需要完成数仓建设,并完成用户复购率的分析计算,支持业务查询需求

复购率:
指在一段时间间隔内,多次重复购买产品的用户,占全部人数的比率

在这里插入图片描述

2.2 数据描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 架构设计

在这里插入图片描述
一开始,业务数据存放在Mysql中
在这里插入图片描述

2.4 环境搭建

在这里插入图片描述
虚拟机搭建 - Xshell - 脚本准备 - 集群按照

2.5 项目开发

在这里插入图片描述
1,业务数据生成:
在这里插入图片描述
2,ETL数据导入
后面看不懂了。。。
原视频课程

http://www.lryc.cn/news/8983.html

相关文章:

  • GPT系列:GPT, GPT-2, GPT-3精简总结 (模型结构+训练范式+实验)
  • ASE12N65SE-ASEMI高压MOS管ASE12N65SE
  • centos8防火墙命令配置(开放端口)
  • Instagram营销教程_编程入门自学教程_菜鸟教程-免费教程分享
  • HTTP Code含义
  • Elasticsearch:Security API 介绍
  • springmvc考研交流平台 java ssm mysql
  • 2.15 vue3 day01 setup ref setup的参数 prop slot插槽 自定义事件通信
  • CentOs7更新Yum源
  • 【C/C++】VS2019下C++生成DLL并且成功调用(金针菇般细)
  • 如何重新安装安卓手机系统
  • ArcGIS API for JavaScript 4.15系列(7)——Dojo中的Ajax请求操作
  • 智慧校园电子班牌系统
  • 软考高项——第五章进度管理
  • 基于springboot+bootstrap+mysql+redis搭建一套完整的权限架构【二】【整合springSecurity】
  • 字节6面,成功唬住面试官拿了27K,软件测试面试也没有传说中那么难吧....
  • Qt扫盲-QMake 语言概述
  • 代码随想录二刷Day02链表:203.移除链表元素,707.设计链表,206.反转链表
  • Zabbix 3.0 从入门到精通(zabbix使用详解)
  • 基于JDBC框架的事务管理
  • 使用IPV6+DDNS连接内网主机
  • 【新2023】华为OD机试 - 高效的任务规划(Python)
  • sql复习(数据处理、约束)
  • 前端入门~
  • 工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明
  • uni-app前端H5页面底部内容被tabbar遮挡
  • 昇腾CANN算子开发揭秘
  • 华为OD机试注意事项,备考思路,刷题要点,答疑,od Base 提供
  • Python 自己简单地造一个轮子.whl文件
  • NVIDIA Tesla V100部署与使用