新式数据仓库规划与实践手册:从分层架构到实践使用(三)
本手册将分为三部分发布,以协助读者逐渐深化了解数据仓库的规划与实践。
- 榜首部分介绍数据仓库的全体架构概述;
- 第二部分深化谈论ETL在数仓中的运用理论,ODS层的详细完结与运用;
- 第三部分将环绕DW数据仓库层、ADS层和数据仓库的全体趋势打开;
经过这样的结构,您可以体系地学习每一层次的内容和规划准则。
前情概要:
《新式数据仓库规划与实践手册:从分层架构到实践运用(一)》https://mp.weixin.qq.com/s/_iYSM0sT_NOysducbxEJhg
《新式数据仓库规划与实践手册:从分层架构到实践运用(二)》:http://mp.weixin.qq.com/s?__biz=MzkyODg0MzA1MQ==&mid=2247489134&idx=1&sn=47d09334fecb43ac2ee1beeb111c6abe&chksm=c37528ab9804979fefcb56f45551c409fd97d22453af0ae3b1df36de1026c42a3a61203c5a02#rd
技能计划规划
概念介绍
缓冲层(也称接口层或Stage层)用于存储每天的增量和改变数据。该层暂存从源体系收集的原始数据,以便后续数据处理和ETL流程的运用。
数据生成办法
数据一般经过Kafka直接接入缓冲层,关于包含update
、delete
和insert
操作的事务表,会每日生成改变日志;而仅有insert
操作的事务表,则直接将数据进入明细层。
主张计划: 运用Apache SeaTunnel或WhaleTunnel生成的CDC日志直接进入缓冲层。假如事务触及拉链数据,相同将其存放于缓冲层,以保证数据改变的精确记载。
日志存储办法
缓冲层的日志数据以Impala
外部表办法存储,选用Parquet
文件格局。这种办法不只进步了存储功率,还便于MapReduce
等处理引擎对数据的快速拜访和处理。
日志整理战略
关于日志数据,一般只保存最近几天的数据以节约存储空间。
主张计划:考虑长时刻存储重要日志数据,以便于前史数据回溯和审计。
表的Schema和分区战略
一般按天分区数据,以partitioned by
时刻字段进行存储。这样不只简化了数据办理,还能进步查询功率。表的Schema规划遵从源体系的结构,以保证数据的一起性和完整性。
库和表的命名规范
-
库名:
ods
,表明数据的贴源层。 -
表名:格局主张为
ods_日期_事务表名
,例如ods_2024_10_sales
,便于办理和查询。
Hive表类型
在缓冲层中运用Hive的外部表办理数据,外部表的文件可以存储在非默许的HDFS途径中,这样当删去表界说时,实践存储文件不会被删去,保证数据安全。
事务表运用Hive的内部表,当删去表界说时,相关的HDFS文件也会被删去。此办法适宜暂时或不重要的数据存储,防止重要数据的误删。
DW数据仓库层
数据仓库层(DW层)是数据仓库规划的中心层,担任对来自贴源层(ODS层)的数据进行主题化建模,以支撑高效的事务剖析和决议计划。
DW层依据事务主题区分范畴,为各主题构建明晰的数据视图,过滤掉无关决议计划的数据,专心于支撑企业要害剖析。
在该层,一般会存储事务体系的一切前史数据,例如保存10年以上的数据,为BI体系供给全面的前史数据支撑。
数据分层模型规划
DW层选用维度建模,将维度表和现实表树立外键相相联系,以削减数据冗余、进步数据的安排功率。
维度模型不只简化了事务剖析的杂乱性,还进步了DW层的数据易用性。在汇总数据层中,经过宽表规划将不同核算维度相关,树立高度复用的公共目标数据层,然后削减下流数据开发的重复劳动。
数据内容和结构
在DW层中,首要存储三类数据:
-
明细现实数据:依据ODS层的原始数据加工而成,包含事务进程中的细节信息。
-
维表数据:描绘性数据(如客户信息、产品分类等),相同从ODS层加工生成。
-
公共目标汇总数据:依据维表和明细数据汇总而成,为事务剖析供给规范化的中心目标。
DW层的细分
DW层一般进一步区分为三个子层:维度层(DIM)、明细数据层(DWD)和汇总数据层(DWS),并运用维度建模办法为数据规划结构,以保证高效的数据办理和拜访:
维度层(DIM,Dimension)
维度层以事务维度为建模中心,依据每个维度的事务语义,界说维度特色和相相联系,构成规范化的数据剖析维表。此层经过为各维度增加特色、界说相相联系等,明晰核算逻辑,完结一起性的数据描绘。为了防止在维度模型中呈现冗余数据,维度表一般选用雪花模型结构,经过拆分特色表来削减数据重复,完结愈加规范的维度建模。
明细数据层(DWD,Data Warehouse Detail)
明细数据层以详细的事务进程为中心进行建模,旨在捕捉事务活动的最细粒度信息,构建详细的现实表。这些现实表保存了事务进程的每一个细节,保证数据的完整性和精准性。
在实践规划中,关于一些要害的特色字段,可以恰当进行冗余处理,即选用宽表化规划,以进步查询功率,削减多表相关带来的功用开支。这种做法在保证数据精密化的一起,统筹了体系的易用性和高效性。
汇总数据层(DWS,Data Warehouse Summary)
汇总数据层(DWS)以剖析主题为中心进行建模,环绕事务目标需求,构建规范化的汇总表,为上层运用供给一起的公共目标。
这一层依据宽表规划,将核算逻辑物理化,保证数据的命名规范和口径一起,然后支撑高效的剖析查询。汇总数据层包含多种主题的宽表和明细现实表,为事务供给共同的核算视角。
-
主题域:以事务进程为视角,将事务活动进行笼统和分类。例如,下单、付出、退款等事情可归类为不同的事务主题域,首要针对公共明细层(DWD)进行主题区分。
-
数据域:以剖析需求为导向,将事务进程和维度进一步笼统,构成数据域。数据域区分在公共汇总层(DWS)中进行,用于满意各类事务剖析需求。
层次结构与数据处理
-
DWD(Data Warehouse Details,数据明细层):以事务进程为驱动,首要从ODS数据层抽取原始数据并进行清洗和规范化处理,保证数据的完整性和一起性。清洗内容包含去除空值、转化脏数据、枚举值共同、以及异常值过滤等。
-
DWS(Data Warehouse Base,数据根底层):该层存储客观数据,首要作为中心层,为DWS层供给根底目标支撑。可以视为很多中心目标的存储区,聚集客观的事务现实。
-
DWS(Data Warehouse Summary数据服务层):依据DWB中的根底数据,DWS层整兼并汇总成以主题域为中心的宽表数据,用于OLAP剖析、事务查询和数据分发。DWS的宽表规划适用于高效查询和聚合剖析,满意各种事务部分的核算需求。
数据汇总和轻度聚合
汇总数据层在数据服务和剖析场景中发挥要害作用。首要对ODS和DWD层的数据进行轻度聚合和汇总,保证数据粒度适用于事务需求,支撑杂乱剖析和快速呼应上层查询需求。
公共维度层(Dimension)
公共维度层(DIM)经过维度建模来构建企业的一起性维度,以保证在数据剖析和核算进程中口径共同,防止因算法或目标不一起而引发的误差。
维度层的首要意图是界说和规范化数据剖析的根本特色,例如国家代码、地理位置、产品分类等。经过为一切事务同享的维表树立共同的结构和命名规范,DIM层成为事务数据的规范参照层。
公共维度层的构成
维表:维表是逻辑维度的物理完结,将每个维度及其特色详细化。为了进步查询功率和下降数据冗余,维表一般选用宽表规划准则。
高基数的维表(如用户、产品等)或许包含数百万乃至数亿条记载,而低基数的维表(如枚举装备、日期等)则记载数相对较少。
维度层的规划要害
1) 维表规划准则在规划维表时,主张将单表的数据量操控在1000万条以内。关于高基数表,可选用Map Join操作优化查询功用。一起,防止频频更新维表,针对缓慢改变的维度(如产品分类)可选用拉链表办法记载改变前史。
2) 维表命名规范公共维度表命名一般以dim_
最初,表明与详细事务无关、可以在各个事务模块中复用的维度。例如,公共区域表命名为dim_pub_area
,产品表命名为dim_asale_item
。这种命名规范便于辨认表用处和主题,进步数据办理的明晰度。
3) 粒度界说维度表中的数据粒度是事务进程的最小描绘单位。例如,一条订单记载的粒度或许为“每次下单”。粒度可经过维度特色组合来描绘,如“国家-城市-区县”组合用于表明地理位置的细节。粒度界说需精密,以满意后续剖析需求。
维度建模进程
-
挑选事务进程挑选事务体系中的要害事务进程(如下单、付出、物流等)进行建模。中小企业一般会选取一切事务进程,而大企业则聚集于剖析需求的首要事务线,以削减数据冗余和保护本钱。
-
声明粒度粒度界说明晰数据的细化程度。主张挑选最小粒度,以支撑更细粒度的目标核算。例如,在订单数据中,每个产品项代表一行数据记载,粒度为“每次下单”。坚持细粒度可以灵敏支撑不同的核算需求,防止数据粒度过粗导致的信息丢掉。
-
承认维度维度用来描绘事务中的“谁、何处、何时”等信息,协助剖析不同维度的目标改变。例如,为支撑订单量按时刻、区域或用户的核算剖析,需界说时刻、区域和用户维度。维度表规划遵从星型模型准则,在必要时进行维度退化。
-
承认现完结实是事务中的衡量数据,如订单金额、购买次数等。现实表中的每条记载反映某一事务活动的衡量成果。经过宽表规划恰当冗余重要字段,以进步查询功率。DWD层(数据明细层)以事务进程为驱动,而DWS层(汇总层)则是以需求为导向,与维度建模无直接相关。
主题、主题域与维度模型
-
主题数据仓库中的数据安排环绕不同的主题(如财政、出售、客户)打开。主题界说了数据仓库的首要剖析方向,每个主题对应一个事务剖析范畴。例如,“财政剖析”是一个主题,包含收入、开销、盈余等目标。
-
主题域主题域是多个相关主题的调集,便于数据的分层安排和分类办理。主题域的区分应由事务部分与数据仓库规划人员一起决议,考虑事务的相关性和剖析需求。例如,出售主题域可包含订单剖析、客户行为、广告投进等主题。
主题域区分准则
主题域的区分逻辑可以依据不同的事务需求或部分需求:
-
按事务进程:如电商途径可建立“广告域”、“客户域”等主题域,进一步分为“库存办理”、“出售剖析”等详细主题。
-
按需求方:如财政部分的主题域或许包含“薪酬剖析”、“出资报答剖析”等内容。
-
按功用或运用:如“朋友圈域”可包含用户动态、广告数据等,适用于交际途径数据的主题区分。
-
按部分:如运营域、技能域,别离包含与各部分作业相关的主题(如运营域中的“活动作用剖析”)。
主题域区分不用一次性完结,可选用迭代办法,从承认的主题开端逐渐扩展,终究构成契合职业规范的主题模型。
数据明细层(Data Warehouse Detail)
数据明细层(DWD)是数据仓库和事务体系间的阻隔层,首要用于进步数据的质量和一起性,保证存储的数据契合剖析需求。
DWD层接纳并清洗来自ODS层的原始数据,经过去噪、去重、脱敏等处理后,生成洁净、精确的明细数据表,以支撑事务剖析。该层还会适度进行维度退化处理,将一些必要的维度字段直接存储在现实表中,以削减表相关,进步查询功用。
数据清洗与处理
DWD层的数据需求契合严厉的数据质量规范,数据在装入前进行多种处理:
1、数据清洗
-
去除空值、脏数据:例如丢掉要害字段(如订单ID为空)的记载、格局过错的数据。
-
灵敏数据脱敏:对手机号、身份证等灵敏信息进行加密或脱敏处理。
-
去除无效数据:如无时刻戳的数据(视事务需求)。
-
会话切开:如针对App日志数据的场景,将用户进入后台再回来前台的操作分割为新的会话,便利后续行为剖析。
2、数据映射与转化
-
地理位置映射:将GPS经纬度转化为省市区地址,选用geohash或IP地址转化库(如ip2region)进行快速定位,也可凭借高德、百度地图API。
-
时刻规范化:将时刻戳转化为年、月、日、周、季度等信息。
-
数据规范化:对来自不同来历的数据进行格局共同,例如布尔值(0/1转化为true/false)、空值(共同为
null
)、日期格局(规范化为YYYY-MM-dd HH:mm:ss
)。
3、 维度退化
关于一些高基数的维度字段(如订单ID),直接存储在现实表中而不创立独自的维度表。这些退化维度可以简化数据结构,削减相关,进步数据查询的功率。
明细粒度现实表规划
DWD层以事务进程为中心进行建模,依据每个事务进程(如下单、付出、退款等)的特色,构建最细粒度的现实表。这些明细现实表保存了事务进程的悉数细节,且一般会将一些常用的维度字段冗余存储,选用宽表规划以进步功用。这些现实表也被称为“逻辑现实表”。
数据质量操控
DWD层的数据粒度与ODS层坚持一起,但在此根底上供给更严厉的数据质量保证。DWD层还会适度进行维度退化,例如将产品类别的多级维度(如一级、二级、三级类别)或时刻、地域等常用维度直接存储在现实表中,简化相关,进步数据的运用功率。
-
清洗份额:关于大数据量的数据,主张清洗掉低于0.01%的数据,如每万条记载中去除一条不合规数据。
-
表数量优化:经过兼并类似数据,合理操控表数量,将过多的表精简为更易办理的结构。例如,将上万张表优化为三千张或一千张表,以便于后续的保护和扩展。
总结来说,DWD层在坚持细粒度的前提下,供给规范化、清洗后的明细数据,为上层的事务运用和剖析供给了洁净、规范化的数据支撑。
这一层的优化和处理不只进步了数据仓库的功用,还明显下降了数据冗余,进步了数据的可用性和易用性。
明细粒度现实表规划准则
-
单维度相关:每个明细粒度现实表只应与一个中心维度相关,坚持数据模型简略、明晰。
-
事务进程相关性:仅包含与事务进程直接相关的现实数据,保证每个现实表精确反映其特定事务进程。
-
声明粒度:在界说维度和现实之前,有必要先明晰数据粒度,即一行数据代表的详细事务含义。
-
一起性和可加性:保证现实的单位一起,且尽量将不行加的现实分解为可加性组件,以支撑更广泛的核算需求。
-
共同粒度:一个现实表中仅能包含单一粒度的现实数据,防止混合不同粒度的现实。
-
处理Null值:对Null值进行合理处理,以防止数据剖析进程中发生意外成果。
-
退化维度运用:运用退化维度(如订单ID等高频维度)直接冗余存储在现实表中,以简化数据表相关,进步查询功率。
数据处理与存储计划
数据组成:选用全量组成战略,每天兼并前天的全量数据和昨日的新增数据,生成一个新的数据表,掩盖旧表。一起,运用前史镜像按周、月或年存储快照。
日志存储办法:运用Impala的外部表和Parquet文件格局存储日志数据。主张在DWD层和基层数据均运用Impala内表,以完结更高效的静态或动态分区办理。
分区规划:默许按天创立分区。假如数据没有时刻特色,可依据事务需求挑选适宜的分区字段。
库与表命名规范:库名为dwd
,表名格局主张为dwd_日期_事务表名
。关于增量表和全量表,用i
表明增量,f
表明全量。例如:
-
dwd_asale_trd_ordcrt_trip_di
:表明A电商公司航旅机票订单下单的增量现实表,按日更新。 -
dwd_asale_itm_item_df
:表明A电商公司产品快照的全量现实表,按日改写。
明细粒度现实表规划示例
- 以买卖产品信息现实表(
dwd_asale_trd_itm_di
)为例:
CREATE TABLE IF NOT EXISTS dwd_asale_trd_itm_di
(
item_id BIGINT COMMENT '产品ID',
item_title STRING COMMENT '产品称号',
item_price DOUBLE COMMENT '产品价格',
item_stuff_status BIGINT COMMENT '产品新旧程度_0全新1搁置2二手',
item_prov STRING COMMENT '产品省份',
item_city STRING COMMENT '产品城市',
cate_id BIGINT COMMENT '产品类目ID',
cate_name STRING COMMENT '产品类目称号',
commodity_id BIGINT COMMENT '品类ID',
commodity_name STRING COMMENT '品类称号',
buyer_id BIGINT COMMENT '买家ID'
)
COMMENT '买卖产品信息现实表'
PARTITIONED BY (ds STRING COMMENT '日期')
LIFECYCLE 400;
此表规划为按天分区,数据存储生命周期为400天,用于存储每日更新的产品买卖信息。经过ds
字段办理数据的时刻分区,便于查询和办理。
数据服务层(Data Warehouse Service)
数据服务层(DWS)是依据数据明细层(DWD)构建的汇总层,面向特定事务主题,以宽表办法安排数据,支撑剖析和事务查询。该层的数据依据不同的主题和剖析需求,经过对明细数据进行轻度聚合而成,削减维度数量,以便进行快速、高效的查询。
规划理念与结构
DWS层经过将DWD层的明细数据按主题域(如订单、用户、产品)进行汇总,为剖析场景供给预处理的数据支撑。数据粒度由细粒度进步至汇总粒度,以更适宜多场景的事务查询需求。例如,按买卖来历或类型对买卖数据进行汇总,可以快速生成每天各主题的行为核算,如产品复购率、用户活泼度等。
特色和用处
-
面向主题:DWS层按事务主题区分数据,如出售、库存、客户等,生成掩盖多个目标的宽表。每张宽表一般包含较多字段,支撑杂乱的事务剖析与数据分发。
-
少表宽表规划:DWS层表数量相对较少,每张宽表包含多个事务内容,削减表相关,进步OLAP剖析和查询功用。
-
一起性整合:经过整合多个中心层数据(如DWD层),构成一起的企业级汇总现实表(如用户现实表、途径现实表、终端现实表等),保证数据口径的一起性。
数据聚合与汇总示例
-
按天轻度汇总:依据DWD数据,对各主题目标(如购买行为)按天进行核算。例如,核算某产品的日复购率或出售额,便利后续的时刻序列剖析。
-
主题宽表明例:依照事务主题,生成具有较多字段的宽表,用于事务查询、OLAP剖析等。例如,
dws_sales_summary
宽表可包含出售额、复购率、用户地域散布等字段。 -
多层次剖析:以不同维度进行汇总,如最近一天特定类目(如厨具)产品在各省的出售总额,或许Top 10产品的出售额,支撑灵敏的多维剖析。
场景运用与功率进步
经过汇总层的预聚合,DWS层可以满意80%的常见事务剖析需求,削减直接查询ODS层的核算压力。例如,按7天、30天、90天等时刻窗口的用户行为剖析在DWS层中可以愈加高效。
-
实时剖析支撑:对DWS层数据进行轻度汇总,有助于完结实时或准实时的用户画像、出售趋势剖析等需求。
-
典型剖析场景:如用户在不一起刻段登录的IP及购买产品数量、各区域的购买力散布等。这些剖析支撑事务决议计划和营销战略调整。
命名和分区规范
-
表命名规范:主张DWS层表名以
dws_主题_宽表描绘
命名,如dws_sales_summary
或dws_user_activity
. -
分区规划:一般按天或周创立分区,便于时刻序列查询;若无时刻特色,则依据事务需求自界说分区字段。
经过DWS层的数据汇总与主题区分,企业可以在汇总宽表的根底上,敏捷提取中心事务目标,为上层事务查询、报表和OLAP剖析供给高效、结构化的数据支撑。
数据服务层(DWS)责任与规划准则
DWS层(数据汇总层)依据DWD层的明细数据,按事务主题对数据进行聚合,以宽表办法存储,支撑事务查询、OLAP剖析和数据分发。
DWS层将多个DWD层表中涣散的数据进行汇总,按主题整合到单一宽表中,例如用户、订单、产品、物流等。每张宽表包含相关主题的多个维度和目标字段,以满意事务方的多维度剖析需求。
DWS层的中心使命
-
主题汇总将DWD层的明细数据依照事务主题进行聚合,创立独自的宽表。例如,在“用户”主题下,用户注册信息、收货地址和征信数据等内容可以整合到一张宽表中,便利后续的数据查询和剖析。
-
主题建模针对特定事务主题,如流量、订单、用户,构建数据模型,将相关数据从DWD层抽取并聚合。DWS层供给的宽表一般按时刻分层,如按天、月汇总的流量会话、每日新增用户、每日活泼用户等。
-
维度汇总提早将查询需求中的常用维度数据进行聚合处理。例如,将营销途径、用户来历等维度数据提早整合,简化后续的查询逻辑。
规划规范
-
宽表规划DWS层一般为每个主题供给1至3张宽表,宽表掩盖多个事务目标,可以满意70%以上的事务需求。典型的宽表包含用户行为宽表、产品宽表、物流宽表和售后宽表等。其间,用户行为宽表是字段最丰厚的,或许包含60至200个字段,以支撑更全面的用户剖析。
-
命名和分区规范
-
命名:DWS层表名以
dws_
最初,后接事务主题和时刻周期标识(如_1d
代表每日汇总,_1w
代表每周汇总)。 -
分区:一般按天或小时创立分区(如
_hh
表明小时分区),如无时刻维度,则依据事务逻辑挑选分区字段。 -
示例命名:
-
dws_asale_trd_byr_subpay_1d
:按买家粒度的买卖分阶段付款每日汇总。 -
dws_asale_trd_itm_slr_hh
:按卖家粒度的产品小时汇总。
-
-
-
数据存储DWS层数据选用Impala内表和Parquet文件格局存储,具有高效的查询功用。一般以掩盖旧表的办法更新数据,定时生成前史快照用于数据存档和溯源剖析。
典型的DWS宽表规划示例
- 用户维度宽表明例
CREATE EXTERNAL TABLE dws_sale_detail_daycount (
user_id STRING COMMENT '用户ID',
user_gender STRING COMMENT '用户性别',
user_age STRING COMMENT '用户年纪',
user_level STRING COMMENT '用户等级',
buyer_nick STRING COMMENT '买家昵称',
mord_prov STRING COMMENT '地址',
login_count BIGINT COMMENT '当日登录次数',
cart_count BIGINT COMMENT '参加购物车次数',
order_count BIGINT COMMENT '当日下单次数',
order_amount DECIMAL(16,2) COMMENT '当日下单金额',
payment_count BIGINT COMMENT '当日付出次数',
payment_amount DECIMAL(16,2) COMMENT '当日付出金额',
confirm_paid_amt_sum_1d DOUBLE COMMENT '最近一天订单已承认收货的金额总和',
order_detail_stats ARRAY<STRUCT<sku_id:STRING, sku_num:BIGINT, order_count:BIGINT, order_amount:DECIMAL(20,2)>> COMMENT '下单明细核算'
)
COMMENT '每日购买行为'
PARTITIONED BY (`dt` STRING)
STORED AS PARQUET
LOCATION '/warehouse/gmall/dws/dws_sale_detail_daycount/'
TBLPROPERTIES("parquet.compression" = "lzo");
- 产品维度宽表明例
CREATE TABLE IF NOT EXISTS dws_asale_trd_itm_ord_1d (
item_id BIGINT COMMENT '产品ID',
item_title STRING COMMENT '产品称号',
cate_id BIGINT COMMENT '产品类目ID',
cate_name STRING COMMENT '产品类目称号',
confirm_paid_amt_sum_1d DOUBLE COMMENT '最近一天订单已承认收货的金额总和'
)
COMMENT '产品粒度买卖最近一天汇总现实表'
PARTITIONED BY (ds STRING COMMENT '分区字段YYYYMMDD')
LIFECYCLE 36000;
ADS数据运用层
数据运用层(ADS,Application Data Store)用于存储个性化的核算目标和报表数据,为数据产品、事务运用和数据剖析供给专门的数据支撑。
ADS层的数据是高度汇总或定制化的数据集,掩盖流量、订单、用户等主题,以宽表办法存储,支撑多维剖析、查询、数据分发等。该层的数据粒度一般较粗,包含汇总数据和部分重要的明细数据,满意用户对近期数据的剖析需求。
ADS层的中心功用
-
运用场景定制在DWS层根底上,面向运用场景进一步聚合数据,生成高定制化的宽表(如用户行为、订单趋势)。这些数据可以直接供事务体系调用或导入至运用体系(如MySQL、Redis、Druid)中,用于前端展现、实时查询和剖析。
-
满意部分需求ADS层的数据按事务部分需求进行区分,仅包含与部分剖析相关的数据子集。例如,流量数据集市供给流量剖析目标,用户数据集市供给活泼度、转化率等用户行为数据,为事务方供给更直观的剖析数据。
-
数据集市和宽表支撑数据集市在ADS层按主题区分,如流量、订单、用户等,生成字段丰厚的宽表。这些宽表汇总了各类事务目标和维度,支撑多种剖析需求,广泛用于OLAP剖析、KPI展现和事务监控。
数据生成和存储办法
-
数据生成ADS层的数据源于DWD和DWS层,按事务需求从这些根底层数据中抽取并加工。ADS层表的数据更新频率依靠于事务需求,可以是每日或每小时改写。
-
存储与分区运用
Impala
内表和Parquet
格局存储ADS
数据,按天或事务字段进行分区,以优化查询功率。关于没有时刻特色的表,依据详细事务挑选恰当的分区字段。 -
表命名规范库名暂定为
ads
,表名格局主张为ads_主题_事务表名
,按事务需求进行定制。
数据运用层示例
- 用户行为宽表用于存储用户的互动、消费等行为数据,包含各类用户活动信息,如谈论、点赞、保藏、同享、GMV等字段。每张宽表大约包含60-200个字段,满意多维度的用户剖析需求。
CREATE TABLE app_usr_interact (
user_id STRING COMMENT '用户ID',
nickname STRING COMMENT '用户昵称',
register_date STRING COMMENT '注册日期',
register_from STRING COMMENT '注册来历',
remark STRING COMMENT '细分途径',
province STRING COMMENT '注册省份',
pl_cnt BIGINT COMMENT '谈论次数',
ds_cnt BIGINT COMMENT '打赏次数',
sc_add BIGINT COMMENT '增加保藏',
sc_cancel BIGINT COMMENT '撤销保藏',
gzg_add BIGINT COMMENT '重视产品',
gzg_cancel BIGINT COMMENT '撤销重视产品',
zhi_cnt BIGINT COMMENT '点赞次数',
share_cnts BIGINT COMMENT '同享次数',
bl_cnt BIGINT COMMENT '爆料数',
gmv_amount BIGINT COMMENT '成交金额',
gmv_sales BIGINT COMMENT '订单数'
)
PARTITIONED BY (dt STRING)
STORED AS PARQUET;
- 产品出售汇总表
汇总产品的出售数据,按日或更细粒度进行存储,为剖析产品的出售趋势、库存办理等供给支撑。
CREATE TABLE IF NOT EXISTS dws_asale_trd_itm_ord_1d (
item_id BIGINT COMMENT '产品ID',
item_title STRING COMMENT '产品称号',
cate_id BIGINT COMMENT '产品类目ID',
confirm_paid_amt_sum_1d DOUBLE COMMENT '订单承认收货的金额总和'
)
PARTITIONED BY (ds STRING COMMENT '分区字段YYYYMMDD')
LIFECYCLE 36000;
常用剖析目标与运用场景
-
用户活泼度
-
日活、周活、月活:核算用户的活泼频率,经过设备ID核算不一起刻范围内的活泼用户。
-
留存率:核算新增用户的留存状况,核算1天、7天等时刻范围内的用户留存率。
-
-
用户增加与回流
-
新增用户:依据每日新增用户的核算。
-
回流用户:剖析在一段时刻内回归活泼的用户数量。
-
-
用户转化与行为剖析
-
转化率:从产品概况到下单、付出的转化率。
-
复购率:按用户或产品的复购状况核算,支撑产品或品类的复购趋势剖析。
-
-
产品剖析
-
出售额和GMV:按产品或品类核算出售额和GMV,剖析热销产品。
-
Top N产品:核算出售排名前N的产品,支撑盛行度和消费偏好的剖析。
-
-
用户留存与丢失剖析
-
缄默沉静用户:核算登录时刻为7天前且登录频率极低的用户。
-
丢失用户:辨认近期未登录或活泼度下降的用户,便于后续的用户运营和召回战略。
-
数据运用层的人物与更新战略
-
运用层人物ADS层首要面向事务方和数据产品团队,数据经过多层处理和汇总后直接支撑报表、KPI、OLAP剖析和仪表盘等运用。作为面向终究用户的数据集市,ADS层可以快速呼应事务需求。
-
更新办法旧数据一般选用掩盖更新,按事务需求定时改写,保证数据时效性。
暂时表支撑
- TMP层数据处理进程中常需暂时表以支撑杂乱核算,ADS层供给独立的TMP层(DW TMP)用于存储这些中心核算成果,防止主数据表的重复更新,进步数据处理的功率和安稳性。
经过ADS层的数据集市和宽表规划,企业可以更灵敏地支撑多种数据产品和剖析需求,为事务增加、用户行为剖析、商场洞悉等供给强有力的数据支撑。
层次调用规范
在数据仓库分层架构中,有必要遵从严厉的调用规范,以保证数据活动的单向性,防止杂乱的依靠联系和反向调用。
-
制止反向调用:基层数据不行调用上层数据,坚持数据流向的单向性和明晰性。
-
调用规范:
-
ODS层:仅答应被DWD层调用。
-
DWD层:答应被DWS和ADS层调用。
-
DWS层:仅答应被ADS层调用。
-
ADS层:可调用DWD、DWS及其他ADS表,但主张优先运用汇总度更高的数据,以削减数据冗余和功用耗费。
-
调用处径概述
数据的规范调用处径包含:
-
ODS -> DWD -> DWS -> ADS
-
ODS -> DWD -> ADS
数据仓库技能趋势与小结
数据仓库分层架构为企业构建了高效、安稳的海量数据办理体系,支撑数据管理、事务逻辑阻隔、数据追寻和复用。经过ODS、DWD、DWS和ADS的分层规划,数据在逐层传递和加工中完结规范化和清洗,保证了一起性和数据可追溯性。
这一架构不只进步了数据运用的规范性,还下降了体系耦合,进步了数据同享的快捷性。
-
ODS层:作为原始数据接入层,ODS层担任保存细粒度数据,经过ETL或CDC办法捕获源体系的改变数据,保证数据完整性。
-
DWD层:规范化数据并进行清洗和脱敏,去除冗余,保证数据一起性,为后续剖析和建模供给了根底。
-
DWS层:将DWD数据聚合为契合事务主题的宽表,构建面向主题的数据服务,优化核算功用并促进数据复用。
-
ADS层:进一步聚合数据,生成高功用、面向运用的宽表,支撑数据产品和事务运用场景,如OLAP剖析、KPI监控和仪表盘展现。
跟着数据规划和数据源的多样化,数据仓库的架构和技能也在不断演进,当时的首要趋势包含:
-
实时数据处理与CDC技能传统的批量数据处理现已无法满意现代企业的需求,CDC技能成为数据实时同步和更新的干流办法,保证数据仓库中数据的实时性。
-
数据湖与数据仓库的交融数据湖(Data Lake)与数据仓库的交融正在成为职业的抢手趋势,例如Data Lakehouse架构,将数据湖的灵敏性与数据仓库的高效剖析才能相结合,为企业供给更强的数据办理才能。