数据仓库知识

一、数据流转

数据从接入到应用的过程

1、用户在客户端的行为数据会通过日志收集、操作记录到数据库中。这一步也涉及到埋点

2、数仓对不同的数据源数据进行接入(mysql、kafka、业务系统等)

3、数据仓库对数据进行清洗、转换、关联、指标开发等完成数据宽表、标签宽表的开发

4、数分/算法使用数仓开发宽表进行实验、各类分析方法、可视化、算法模型开发,进行整体数据应用;

5、业务侧使用分析好的数据进行投放、拉新、促活等操作

二、数据仓库的概念

数据基建:承接各种数据源,通过对数据源数据采集,将不同源数据接入到数据仓库中统一处理

数据资产:数据宽表、数据明细表的建设

数据服务:通过指标体系、用户标签、数据门户、接口等方式统一管理数据

数据应用:为运营、风控等业务提供数据支撑,包括看板大屏、a/b实验、专题分析报告等

三、数据域及主题域

数据域是基于业务含义或技术特性进行分类,同一数据域中的数据共享相同的业务定义和规则,例如:客户数据域、产品数据域等

主题域是从业务战略角度对信息的划分,代表企业关注的主要业务领域,比数据域更宏观,一个主题域可能包含多个数据域。例如:销售主题域、供应链主题域等

四、数仓分层

4.1 为什么要数仓分层

(1)清洗数据结构:每一层有对应的作用,在使用时更好定位与了解

(2)数据血缘追踪:清晰知道上下游,便于排查问题,知道下游哪个模块在使用,提高开发效率及后期维护,尤其是在找报错和指标地来源时

(3)减少重复开发:完善好中间层,减少后期不必要的开发,从而减少资源消耗,保障口径一致

(4)复杂问题简单化:将复杂的问题拆解成多个步骤来完成,每一层处理单一步骤,当数据出现问题,只需要从单个问题去解决

4.2 如何分层及每层的作用

ODS(接入层):从各数据源将数据同步到数仓,不做任何数据处理,保留原始数据

DIM(维度层):用于维度管理

DWD(明细层):对ODS层数据进行关联,清洗,维度退化(维度表中维度数据放入明细表),转换,主题域建设

DWM(轻度汇总层):DWD层的生产数据进行整体关联,形成一张大的明细宽表

DMS(汇总层) :按照主题域、颗粒度(例如买家、卖家)划分,按照周期粒度、维度聚合形成指标较多的宽表。在DWS层完成指标口径统一及沉淀

ADS(数据应用层):按照应用域,颗粒度划分(例如买家、卖家)划分,按照应用主题将对应数据标签补充至应用层,最终形成用户画像及专项应用

五、数仓模型介绍

维度建模:按照事实表、维度表来构建数据仓库模型的方法,根据维度表与事实表之间的链接方式完成数据表开发。

模型建设五要素:

  1. 数据域/主题域:数据域对当前业务场景或业务sop进行拆分完成建设,主题域则是通过业务使用场景去做
  2. 事实表设计:围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量;
  3. 维度:对当前场景分析角度描述及补充
  4. 颗粒度:数据域下场景用户再细分(买家和卖家),基于MECE法则,拆到不可拆分状态
  5. 度量值:对场景下数值类型的数据记录

六、增量与全量

数据分区:记录了当天的数据,可以通过分区快速定位自己数据,基本是日期

全量数据(对源数据全部覆盖)
增量数据(对源数据进行分区式覆盖)

df为日全量数据,di为日增量数据

七、数据模型规范

7.1 表命名规范

ODS层(接入层):全量:ods__{业务数据库名}_{业务数据表名}_df/di(df为日全量数据,di为日增量数据)

DWD层(明细层):dwd_{数据域}{二级数据域}{业务过程(不清楚或没有写detail)}_df/di(df为日全量数据,di为日增量数据)

DIM层(维度层):dim_业务域(没有业务相关可不写)__{维度定义}(例如日期写date)

DWM层(明细宽表层):dwd_{数据域}{二级数据域}{业务过程(不清楚或没有写detail)}_df/di(df为日全量数据,di为日增量数据)

DWS层(汇总层):dws_{数据域}{二级数据域}{颗粒度}(例如买家/卖家){业务过程}(如果没过程写target){周期粒度}(例如近30天写30d、一个月写1m、90天写90d等)

ADS层(应用层):ads_{一级主题域}(例如风控叫risk、营销叫mkt){二级主题域}{颗粒度}(例如买家/卖家){业务过程}{调度周期}(例如1天调度一次写1d)

7.2 字段命名

是否xxxxx用户,类型字段命名规范:is_{内容}

枚举值类型字段命名规范:xxxx_type

时间戳类型字段命名规范:xxx_date(日期),xxx_time(时间)

周期指标命名:{内容}_{时间描述}(如最近一次last1,最近两次last2,历史his,最近第二次last2nd)_date、最近180天 180d

百分比命名:{内容}_rate

数值类型(整型)命名:{内容}cnt{周期}(周期看情况加)

数值类型(小数)金额命名:{内容}amt{周期}(周期看情况加)

相关推荐
weixin_307779134 小时前
C#实现Hive到Snowflake数据迁移
开发语言·数据仓库·hive·c#
beijingliushao4 小时前
27-数据仓库与Apache Hive-2
数据仓库·hive·hadoop
beijingliushao5 小时前
31-数据仓库与Apache Hive-Insert插入数据
数据仓库·hive·apache
随心............2 天前
hive专题面试总结2
数据仓库·hive·hadoop
派可数据BI可视化4 天前
CIO如何规划企业BI分析指标体系 —— 从经营出发到绩效管理
数据仓库·信息可视化·数据挖掘·数据分析·商业智能bi
Jay Kay4 天前
hive新增列之后插入新数据时,新列为NULL的解决办法
数据仓库·hive·hadoop
weixin_307779135 天前
ClickHouse Windows迁移方案与测试
linux·c++·数据仓库·windows·clickhouse
喻师傅5 天前
数据治理:DQC(Data Quality Center,数据质量中心)概述
大数据·数据仓库·数据治理
正在走向自律5 天前
SelectDB数据库,新一代实时数据仓库的全面解析与应用
数据库·数据仓库·实时数据仓库·selectdb·云原生存算分离·x2doris 迁移工具·mysql 协议兼容