数仓建模
文章平均质量分 91
记录日常学习数仓建模过程中遇到的知识点以及遇到的各类问题
努力转行的任同学...
好好规划自己的路,不要跟着感觉走......
展开
-
离线数仓任务调度系统Airflow——(Airflow体系架构,crontab简介,Airflow核心)
Airflow将一个工作流制定为一组任务的有向无环图(DAG),并指派到一组计算节点上,根据相互之间的依赖关系,有序执行。Airflow 有以下优势:灵活易用。Airflow 是 Python 编写的,工作流的定义也使用 Python 编写;功能强大。支持多种不同类型的作业,可自定义不同类型的作业。如 Shell、Python、Mysql、Oracle、Hive等;作业的定义简单明了;易扩展。提供各种基类供扩展,有多种执行器可供选择;原创 2022-02-27 20:00:27 · 496 阅读 · 0 评论 -
离线数仓——(DWD层订单表,DWD层订单产品表,DWS层订单明细表,DWS层订单明细宽表,ADS层订单分析表)
订单从创建到最终完成,是有时间限制的;业务上也不允许订单在一个月之后,状态仍然在发生变化;2. 如果没有数据清洗、数据转换的业务需求,保留在ODS,不做任何变化【没有业务处理了】订单的状态不可能永远处于变化之中(订单的生命周期一般在15天左右)为保留订单状态,可以使用拉链表进行处理;分区的条件:订单创建日期;订单产品表普通的事实表,用常规的方法进行处理;DWD要处理的表有两张:订单表、订单产品表。分区的目的:订单一旦终止,不会重复计算。与维表不同,订单事实表的记录数非常多。订单是一个拉链表,而且是分区表。原创 2022-02-25 17:30:08 · 684 阅读 · 0 评论 -
离线数仓——(DIM公共维度层建表及加载数据)
2. 用什么方式处理维表,每日快照、拉链表? 1. 小表使用每日快照:产品分类表【 dim_trade_product_cat】、商家店铺表、商家地域组织表、支付方式表 2. 大表使用拉链表:产品信息表 **DIM公共维度层第一张表:产品分类表【dim_trade_product_cat】** ```clike create table if not exists dim.dim_trade_product_cat( firstId int, -- 一级商品分类id firstName str原创 2022-02-21 10:46:22 · 264 阅读 · 0 评论 -
离线数仓——(业务数据库表结构,缓慢变化维,拉链表的实现,周期性事实表,周期性事实表拉链表的实现)
此时,【userinfo】中的数据分为两部分,一是【dt=2020-06-20】,二是【dt=2020-06-21】,【dt=2020-06-21】的数据(包含dt=2020-06-20)中变化的数据以及一条新增的数据,初始化拉链表后,拉链表【userhis】中存在了第一天的原始数据,并且【start_date=2020-06-20】,【end_date=9999-12-31】分区表【userinfo】中数据可分为:每日变更的数据(修改的+新增的) 以及历史数据(第一天)6月21日,表中有5条记录。原创 2022-02-16 16:42:34 · 437 阅读 · 0 评论 -
离线数仓——(广告业务需求分析,广告业务ODS层建表及数据加载,广告业务DWD层建表及数据加载,广告点击次数分析,点击率购买率分析,广告效果分析)
2. 用户事件日志数据中的信息包括: 1. 商品详情页加载:goods_detail_loading 2. 商品列表:loading 3. 消息通知:notification 4. 商品评论:comment 5. 收藏:favorites 6. 点赞:praise 7. 广告:ad 1. action。用户行为;0 曝光;1 曝光后点击;2 购买 2. duration。停留时长 3. shop_id。商家id 4. event_type。"ad" 5. ad_type。格原创 2022-02-09 14:57:05 · 433 阅读 · 0 评论 -
离线数仓——(新增用户业务指标,每日新增用户明细表,留存用户业务指标,用户留存明细表)
## 新增用户业务指标 1. 留存用户:指某段时间的新增用户,经过一段时间后,仍继续使用应用认为是留存用户 2. 新增会员:第一次使用应用的用户,定义为新增会员;卸载再次安装的设备,不会被算作一次新增。 3. 计算关系:先计算新增会员 => 再计算留存用户 4. 在DWD用户每日启动明细表中,新增用户数+旧的所有用户信息=新的所有用户信息,此时的计算关系是,先计算新增用户,然后更新所有用户信息。 5. 计算每日新增用户数:在所有的用户信息中增加时间列,表示这个用户是那一天成为新增用户的,此时,只需要一张表,原创 2022-02-01 12:27:56 · 455 阅读 · 0 评论 -
离线数仓——(活跃用户ODS层建表及加载数据,活跃用户DWD层建表及加载数据,活跃用户DWS层建表及加载数据,活跃用户ADS层建表及加载数据)
用户日启动日志汇总【dws_member_start_day】,用户周启动汇总表【dws_member_start_week】,用户月启动汇总表【dws_member_start_month】DWS层中是每日、每周、每月活跃会员的汇总表,在ADS层中要计算当天,当周,当月活跃用户数量【ads_member_active_count】加载ADS层数据【ads_load_member_active.sh】创建DWD层表:表的格式:parquet、分区表。离线数仓架构如下图所示:详细概念参考。原创 2022-01-27 12:01:20 · 265 阅读 · 0 评论 -
离线数仓——(用户活跃度,启动日志数据采集,事件日志数据采集)
给source增加自定义拦截器去掉本地时间戳 a1.sinks.k1.hdfs.useLocalTimeStamp = true根据header中的logtime写文件# 配置文件滚动方式(文件大小 32 M)原创 2022-01-14 15:47:35 · 568 阅读 · 0 评论 -
数据仓库——(数仓建模,数仓分层,事实表和维度表,星型模型,雪花模型)
## 数据仓库建模方法数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。适合业务和基础数据存储环境的模型的优点如下:1. 性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据的I/O吞吐2. 成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低大数据系统中的存储和计算成本3. 效率:良好的数据模型能极大地改善用户使用数据的体验,提高使用数据的效率4. 质量:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性通原创 2022-01-05 10:11:39 · 2501 阅读 · 0 评论 -
数据仓库理论及其相关概念
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策 (Decision-Making Support)原创 2022-01-04 18:03:35 · 2254 阅读 · 0 评论