
数仓
滴滴三里屯VIP
三里屯VIP,你懂得。。。。。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据集市搭建
数据集市深刻理解数据集市概念数据集市,存在于数仓之中,可以理解为是数仓的一个分层,市面上数仓分层繁多,大致为 ODS层镜像层,DWD明细层,DWS宽表层,DIM维度层,ADS指标体系层,APP应用层,DM数据集市层。除去ODS层,APP、ADS层,中间的DWD、DWS统称为中间层,在数仓中,有个规定,就是中间层不可跨域,而DM层,是凌驾于ADS层,更贴近应用的层级,而这一层,是可以跨域的,并且可以理解成,是可跨域的宽表层。该层主要是加工多维度冗余的宽表,解决什么问题呢?解决复杂的查询问题,多角度分析原创 2021-07-07 21:17:17 · 1627 阅读 · 0 评论 -
基于分区合并小文件处理
基于分区内合并小文件处理数据治理同学已经砸门了数据治理同学已经砸门了,说每次任务单独的分区会产生大量小文件,基于此类问题,我们定出方案。方案如下:生产脚本为代码:spark-submit \--master yarn \--deploy-mode cluster \--executor-memory= 25G \--executor-cores=6 \--num-executors=100 \-- class 此处为JAR包中全类名 case: cn.didi.dwd.leader.Ex原创 2021-07-07 17:44:42 · 373 阅读 · 0 评论 -
SparkSQL广播实现处理数据倾斜
SparkSQL处理数据倾斜广播实现思路伪代码原因是因为我们在做一个需求的时候由于计算量非常大,数据量不是很大,但是会有很多空值,导致数据倾斜,我们采取了Spark SQL方式实现需求,同时采取了广播优化的方案策略。object External { val RESU_SAVE_TABLE_NAME = "dwd_led_tab" val session = session.conf.set("spark.app.name","External") session.conf.set("spar原创 2021-07-07 16:11:51 · 499 阅读 · 0 评论 -
数仓APP层如何做CUBE
数仓CUBE表深刻理解数仓,在我们做中间层建设的时候,不会做真正的CUBE,而真正的CUBE,要么就是DS(数据分析师)在做,要么,我们在应用层(APP层),将其做成CUBE,并且严格按照数仓的统一标准来做。对于空值的处理:第一,所有的维度字符串,全部为其他。第二,所有的ID,全部为-999。第三,所有金额全部置成0第四,面向全国做CUBE的时候,所有空值为-999999需求:时间维度:by天品类维度:维度中文维度英文后端汇总品类gop_name后端一级品类原创 2021-07-07 11:39:05 · 676 阅读 · 1 评论 -
累积快照事实表的制作方式
累积快照事实表首先我们要考虑,为什么要做累积快照的事实表,事实表就能不做解释了,来理解为什么要做累积快照。累计快照事实表用于跟踪业务事实的变化。例如,数据仓库中可能需要累积或者存储订单从下订单开始,到订单的完结。中间整条的链路是什么样子的呢?case :订单的创建时间、订单修改时间、订单关闭时间(用户取消或者超时)、实际下单时间、支付完成时间、预期发货时间、确认收货时间。这是一张订单表中,该有的时间。根据时间节点,来跟踪订单生命周期的进展情况。当这个业务过程进行的时候,事实表的记录也要不断的更新。但原创 2021-07-06 14:49:33 · 1360 阅读 · 7 评论 -
数仓粒度初级篇
数仓中的粒度数据粒度对于Data Warehouse的数据模型建设,我们逃离不了的一个话题就是粒度,而Kimball的建模四部曲中,至关重要的第二步,就是确认粒度,那么粒度,到底是什么?这个模糊的概念对于初学者非常的不友好,不友好在抽象,太抽象,很难去深刻理解这个概念。而我们在真正的工作中,对于粒度,我有以下几个CASE,方便读者能够深刻理解。今天我们就用大白话,手撕粒度。首先是数据粒度:什么是数据粒度,数据粒度准确的描述,就是确定数据惟一。在一个表中,我查找ID,ID是唯一,那么这个粒度就是ID,什原创 2021-07-05 22:17:35 · 625 阅读 · 2 评论