为什么hive在处理数据时,有的累加是半累加数据

在 Hive 处理数据时,"半累加数据" 指的是部分字段保留历史状态、部分字段随业务变化累加或更新的场景,这种模式广泛存在于需要兼顾 "历史追溯" 和 "增量更新" 的业务中。以下是具体例子,帮助理解其本质:

例子 1:用户行为维度表(SCD2 模型)

业务场景:用户信息表中,部分属性(如注册时间)一旦生成就固定不变,部分属性(如用户等级、积分)需要随行为累加或更新,同时需要保留历史状态。

数据变化过程

  1. 初始数据(2023-01-01):

    用户 ID 注册时间 等级 积分 生效时间 失效时间
    1001 2023-01-01 Lv1 0 2023-01-01 9999-12-31
  2. 2023-02-01 用户积分增加到 100,等级升级为 Lv2:

    不修改原记录,而是新增一条记录(保留历史版本):

    用户 ID 注册时间 等级 积分 生效时间 失效时间
    1001 2023-01-01 Lv1 0 2023-01-01 2023-01-31 (历史版本)
    1001 2023-01-01 Lv2 100 2023-02-01 9999-12-31 (当前版本)

半累加特征

  • 静态字段(注册时间):永远不变,不参与累加。
  • 动态字段(等级、积分):随业务更新,新记录覆盖旧状态,但通过 "生效 / 失效时间" 保留历史。
  • 整体数据量:随变更累加(新增记录),但单条记录不被覆盖。

例子 2:订单状态流水表

业务场景:订单创建后,金额、商品等信息固定,但支付状态、退款次数等需要随流程更新,同时需要记录状态变更轨迹。

数据变化过程

  1. 订单创建(2023-03-01 10:00):

    订单 ID 金额 商品 支付状态 退款次数 记录时间
    O2001 200 衬衫 未支付 0 2023-03-01 10:00
  2. 2023-03-01 10:30 支付成功:

    新增一条状态记录(不修改原记录):

    订单 ID 金额 商品 支付状态 退款次数 记录时间
    O2001 200 衬衫 未支付 0 2023-03-01 10:00
    O2001 200 衬衫 已支付 0 2023-03-01 10:30
  3. 2023-03-02 09:00 申请退款:

    再新增一条记录:

    订单 ID 金额 商品 支付状态 退款次数 记录时间
    O2001 200 衬衫 未支付 0 2023-03-01 10:00
    O2001 200 衬衫 已支付 0 2023-03-01 10:30
    O2001 200 衬衫 已退款 1 2023-03-02 09:00

半累加特征

  • 静态字段(金额、商品):创建后固定,不参与累加。
  • 动态字段(支付状态、退款次数):随流程更新,每次变更生成新记录。
  • 整体数据:按状态变更累加,可追溯完整流程,但不会覆盖历史状态。

例子 3:每日活跃用户增量表

业务场景:按天统计活跃用户,每天的活跃用户是增量数据,但用户的基础信息(如注册渠道)固定。

数据存储方式

  • 按天分区(dt='2023-05-01'dt='2023-05-02'等)。
  • 每个分区存储当天活跃用户的信息,包含固定字段和动态字段。

数据示例

  • dt='2023-05-01' 分区:

    用户 ID 注册渠道 当日活跃时长(分钟)
    1001 官网 30
    1002 应用商店 45
  • dt='2023-05-02' 分区(新增当日活跃用户):

    用户 ID 注册渠道 当日活跃时长(分钟)
    1001 官网 20 (1001 用户再次活跃)
    1003 小程序 15 (新活跃用户)

半累加特征

  • 静态字段(注册渠道):每个用户只记录一次(或重复但值不变),不随日期累加。
  • 动态字段(当日活跃时长):按日增量记录,累计计算总时长时需汇总各分区。
  • 整体数据:按日期分区累加,每个分区是独立的增量,不覆盖历史分区。

总结

半累加数据的核心是 **"区分静态与动态字段,保留历史同时支持增量更新"**,这既满足了数据仓库 "可追溯" 的需求,也适配了 Hive 基于 HDFS"擅长追加、不擅长修改" 的技术特性。常见于维度表(SCD2)、状态流水表、按时间分区的增量统计场景中。

相关推荐
零一科技9 小时前
windows安装VMware Workstation Pro
hadoop
yumgpkpm14 小时前
2026软件:白嫖,开源,外包,招标,晚进场(2025年下半年),数科,AI...中国的企业软件产业出路
大数据·人工智能·hadoop·算法·kafka·开源·cloudera
kylezhao201918 小时前
深入浅出地理解 C# WPF 中的属性
hadoop·c#·wpf
迎仔18 小时前
01-Hadoop 核心三剑客通俗指南:从“单机搬砖”到“包工队”
大数据·hadoop·分布式
TTBIGDATA1 天前
【Ranger】Ranger Admin 配置 Knox 策略时出现,the trustAnchors parameter must be non-empty
大数据·hadoop·ambari·kerberos·ranger·knox·bigtop
BYSJMG1 天前
计算机毕设推荐:基于大数据的各省碳排放数据分析与可视化系统实战
大数据·vue.js·hadoop·后端·信息可视化·数据分析·课程设计
市场部需要一个软件开发岗位2 天前
数据仓库相关内容分享
数据库·数据仓库·oracle
BYSJMG2 天前
计算机毕设选题推荐:基于Hadoop的交通事故数据可视化分析系统
大数据·vue.js·hadoop·分布式·后端·信息可视化·课程设计
Gain_chance2 天前
32-学习笔记尚硅谷数仓搭建-DWD层首日数据装载脚本及每日数据装载脚本
大数据·数据仓库·hive·笔记·学习
sheji34162 天前
【开题答辩全过程】以 基于hadoop的空气质量数据分析及可视化系统为例,包含答辩的问题和答案
大数据·hadoop·数据分析