当前位置:首页 > 数据库 > 正文内容

新式数据仓库规划与实践手册:从分层架构到实践使用(三)

邻居的猫1个月前 (12-09)数据库1195

本手册将分为三部分发布,以协助读者逐渐深化了解数据仓库的规划与实践。

  • 榜首部分介绍数据仓库的全体架构概述;
  • 第二部分深化谈论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直接接入缓冲层,关于包含updatedeleteinsert操作的事务表,会每日生成改变日志;而仅有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层中,首要存储三类数据:

  1. 明细现实数据:依据ODS层的原始数据加工而成,包含事务进程中的细节信息。

  2. 维表数据:描绘性数据(如客户信息、产品分类等),相同从ODS层加工生成。

  3. 公共目标汇总数据:依据维表和明细数据汇总而成,为事务剖析供给规范化的中心目标。

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) 粒度界说维度表中的数据粒度是事务进程的最小描绘单位。例如,一条订单记载的粒度或许为“每次下单”。粒度可经过维度特色组合来描绘,如“国家-城市-区县”组合用于表明地理位置的细节。粒度界说需精密,以满意后续剖析需求。

维度建模进程

  1. 挑选事务进程挑选事务体系中的要害事务进程(如下单、付出、物流等)进行建模。中小企业一般会选取一切事务进程,而大企业则聚集于剖析需求的首要事务线,以削减数据冗余和保护本钱。

  2. 声明粒度粒度界说明晰数据的细化程度。主张挑选最小粒度,以支撑更细粒度的目标核算。例如,在订单数据中,每个产品项代表一行数据记载,粒度为“每次下单”。坚持细粒度可以灵敏支撑不同的核算需求,防止数据粒度过粗导致的信息丢掉。

  3. 承认维度维度用来描绘事务中的“谁、何处、何时”等信息,协助剖析不同维度的目标改变。例如,为支撑订单量按时刻、区域或用户的核算剖析,需界说时刻、区域和用户维度。维度表规划遵从星型模型准则,在必要时进行维度退化。

  4. 承认现完结实是事务中的衡量数据,如订单金额、购买次数等。现实表中的每条记载反映某一事务活动的衡量成果。经过宽表规划恰当冗余重要字段,以进步查询功率。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层在坚持细粒度的前提下,供给规范化、清洗后的明细数据,为上层的事务运用和剖析供给了洁净、规范化的数据支撑。

这一层的优化和处理不只进步了数据仓库的功用,还明显下降了数据冗余,进步了数据的可用性和易用性。

明细粒度现实表规划准则

  1. 单维度相关:每个明细粒度现实表只应与一个中心维度相关,坚持数据模型简略、明晰。

  2. 事务进程相关性:仅包含与事务进程直接相关的现实数据,保证每个现实表精确反映其特定事务进程。

  3. 声明粒度:在界说维度和现实之前,有必要先明晰数据粒度,即一行数据代表的详细事务含义。

  4. 一起性和可加性:保证现实的单位一起,且尽量将不行加的现实分解为可加性组件,以支撑更广泛的核算需求。

  5. 共同粒度:一个现实表中仅能包含单一粒度的现实数据,防止混合不同粒度的现实。

  6. 处理Null值:对Null值进行合理处理,以防止数据剖析进程中发生意外成果。

  7. 退化维度运用:运用退化维度(如订单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_summarydws_user_activity.

  • 分区规划:一般按天或周创立分区,便于时刻序列查询;若无时刻特色,则依据事务需求自界说分区字段。

经过DWS层的数据汇总与主题区分,企业可以在汇总宽表的根底上,敏捷提取中心事务目标,为上层事务查询、报表和OLAP剖析供给高效、结构化的数据支撑。

数据服务层(DWS)责任与规划准则

DWS层(数据汇总层)依据DWD层的明细数据,按事务主题对数据进行聚合,以宽表办法存储,支撑事务查询、OLAP剖析和数据分发。

DWS层将多个DWD层表中涣散的数据进行汇总,按主题整合到单一宽表中,例如用户、订单、产品、物流等。每张宽表包含相关主题的多个维度和目标字段,以满意事务方的多维度剖析需求。

DWS层的中心使命

  1. 主题汇总将DWD层的明细数据依照事务主题进行聚合,创立独自的宽表。例如,在“用户”主题下,用户注册信息、收货地址和征信数据等内容可以整合到一张宽表中,便利后续的数据查询和剖析。

  2. 主题建模针对特定事务主题,如流量、订单、用户,构建数据模型,将相关数据从DWD层抽取并聚合。DWS层供给的宽表一般按时刻分层,如按天、月汇总的流量会话、每日新增用户、每日活泼用户等。

  3. 维度汇总提早将查询需求中的常用维度数据进行聚合处理。例如,将营销途径、用户来历等维度数据提早整合,简化后续的查询逻辑。

规划规范

  • 宽表规划DWS层一般为每个主题供给1至3张宽表,宽表掩盖多个事务目标,可以满意70%以上的事务需求。典型的宽表包含用户行为宽表、产品宽表、物流宽表和售后宽表等。其间,用户行为宽表是字段最丰厚的,或许包含60至200个字段,以支撑更全面的用户剖析。

  • 命名和分区规范

    1. 命名:DWS层表名以dws_最初,后接事务主题和时刻周期标识(如_1d代表每日汇总,_1w代表每周汇总)。

    2. 分区:一般按天或小时创立分区(如_hh表明小时分区),如无时刻维度,则依据事务逻辑挑选分区字段。

    3. 示例命名:

      1. dws_asale_trd_byr_subpay_1d:按买家粒度的买卖分阶段付款每日汇总。

      2. 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层的中心功用

  1. 运用场景定制在DWS层根底上,面向运用场景进一步聚合数据,生成高定制化的宽表(如用户行为、订单趋势)。这些数据可以直接供事务体系调用或导入至运用体系(如MySQL、Redis、Druid)中,用于前端展现、实时查询和剖析。

  2. 满意部分需求ADS层的数据按事务部分需求进行区分,仅包含与部分剖析相关的数据子集。例如,流量数据集市供给流量剖析目标,用户数据集市供给活泼度、转化率等用户行为数据,为事务方供给更直观的剖析数据。

  3. 数据集市和宽表支撑数据集市在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;

常用剖析目标与运用场景

  1. 用户活泼度

    1. 日活、周活、月活:核算用户的活泼频率,经过设备ID核算不一起刻范围内的活泼用户。

    2. 留存率:核算新增用户的留存状况,核算1天、7天等时刻范围内的用户留存率。

  2. 用户增加与回流

    1. 新增用户:依据每日新增用户的核算。

    2. 回流用户:剖析在一段时刻内回归活泼的用户数量。

  3. 用户转化与行为剖析

    1. 转化率:从产品概况到下单、付出的转化率。

    2. 复购率:按用户或产品的复购状况核算,支撑产品或品类的复购趋势剖析。

  4. 产品剖析

    1. 出售额和GMV:按产品或品类核算出售额和GMV,剖析热销产品。

    2. Top N产品:核算出售排名前N的产品,支撑盛行度和消费偏好的剖析。

  5. 用户留存与丢失剖析

    1. 缄默沉静用户:核算登录时刻为7天前且登录频率极低的用户。

    2. 丢失用户:辨认近期未登录或活泼度下降的用户,便于后续的用户运营和召回战略。

数据运用层的人物与更新战略

  • 运用层人物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监控和仪表盘展现。

跟着数据规划和数据源的多样化,数据仓库的架构和技能也在不断演进,当时的首要趋势包含:

  1. 实时数据处理与CDC技能传统的批量数据处理现已无法满意现代企业的需求,CDC技能成为数据实时同步和更新的干流办法,保证数据仓库中数据的实时性。

  2. 数据湖与数据仓库的交融数据湖(Data Lake)与数据仓库的交融正在成为职业的抢手趋势,例如Data Lakehouse架构,将数据湖的灵敏性与数据仓库的高效剖析才能相结合,为企业供给更强的数据办理才能。

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=566

标签: 大数据
分享给朋友:

“新式数据仓库规划与实践手册:从分层架构到实践使用(三)” 的相关文章

读数据维护:作业负载的可恢复性04备份与档案

读数据维护:作业负载的可恢复性04备份与档案

1.       差异备份与档案 1.1.         两个彻底不同的操作 1.1.1.           要完成的是两个彻底不同的方针 1.1.2.           备份(backup) 1.1.3.           档案(archive) 1.2.         有...

第三十九讲:insert句子的锁为什么这么多?

第三十九讲:insert句子的锁为什么这么多?

第三十九讲:insert句子的锁为什么这么多? 简概: 依旧是导言 ​ 在上一篇文章中,我说到 MySQL 对自增主键锁做了优化,尽量在申请到自增 id 今后,就开释自增锁。因而,insert 句子是一个很轻量的操作。 ​ 不过,这个定论关于“一般的 insert 句子”才有用。也就是说,还有些...

时序数据库排名,性能与功能的较量

时序数据库排名,性能与功能的较量

根据多个来源的信息,以下是时序数据库的排名和性能评测情况: 全球时序数据库排名根据DBEngines的最新排名,以下是2024年4月10日更新的全球时序数据库排名:1. InfluxDB 2013年发布,主要用于存储时间序列数据,适用于物联网、分析和监控软件。2. Prometheus...

数据库全连接,数据库全连接概述

数据库全连接(Full Join)是一种数据库查询操作,它返回两个表中的所有记录,当其中一个表没有匹配的记录时,该表中的记录会与另一个表中的NULL值进行连接。全连接是SQL中的外连接(Outer Join)的一种,包括左外连接(Left Outer Join)、右外连接(Right Outer J...

oracle查询优化,Oracle数据库查询优化技巧与策略详解

oracle查询优化,Oracle数据库查询优化技巧与策略详解

1. 数据库设计: 正确地设计表结构,包括使用合适的数据类型、合理的字段长度等。 使用合适的数据模型,如星型模式或雪花模式,以优化数据仓库查询。 合理地使用分区表,以加快查询速度。2. 查询语句的编写: 使用EXPLAIN PLAN来分析查询语句的执行计划,找出性能瓶颈。...

大数据是指什么,大数据的定义

大数据是指什么,大数据的定义

大数据是指无法在一定时间内用常规软件工具进行捕捉、管理和处理的数据集合。这些数据集合通常具有以下几个特点:1. 数据量巨大:大数据通常涉及的数据量非常庞大,可能达到TB(太字节)甚至PB(拍字节)级别。2. 数据类型多样:大数据包括结构化数据、半结构化数据和非结构化数据。结构化数据如数据库中的数据,...