数据是当今分析世界的宝贵资产 。在向最终用户提供数据时,跟踪数据在一段时间内的变化非常重要 。渐变维度 (SCD) 是随时间推移存储和管理当前和历史数据的维度 。在 SCD 的类型中,我们将特别关注类型 2(SCD 2),它保留了值的完整历史 。每条记录都包含有效时间和到期时间,以标识记录处于活动状态的时间段 。这可以通过少数审计列来实现 。例如:生效开始日期、生效结束日期和活动记录指示器 。让我们了解如何使用 Apache Hudi 来实现这种 SCD-2 表设计 。
Apache Hudi 是下一代流数据湖平台 。Apache Hudi 将核心仓库和数据库功能直接引入数据湖 。Hudi 提供表、事务、高效的 upserts/deletes、高级索引、流式摄取服务、数据Clustering/压缩优化和并发性,同时将数据保持为开源文件格式 。Apache Hudi 默认显示表中的快照数据,即最近提交的最新数据 。如果我们想跟踪历史变化,我们需要利用 Hudi 的时间点查询(https://hudi.apache.org/docs/quick-start-guide#point-in-time-query)
Hudi 允许通过时间点查询旧版本数据或最新数据和时间旅行,通过时间点查询遍历历史数据变化是不高效的,需要对给定数据进行多次时间间隔分析 。让我们看看如何通过使用经典方法的解决方法来克服这个问题 。让我们考虑一个包含产品详细信息和卖家折扣的表 。
+---------+--------------+---------------+---------------+-------------------+-------------------+-------------------+--------+|seller_id|prod_category |product_name |product_package|discount_percentage|eff_start_ts |eff_end_ts |actv_ind|+---------+--------------+---------------+---------------+-------------------+-------------------+-------------------+--------+|3412 |Healthcare |Dolo 650 |10 |10 |2022-04-01 16:30:45|9999-12-31 23:59:59|1 ||1234 |Detergent |Tide 2L |6 |15 |2021-12-15 15:20:30|9999-12-31 23:59:59|1 ||1234 |Home Essential|Hand Towel |12 |20 |2021-10-20 06:55:22|9999-12-31 23:59:59|1 ||4565 |Gourmet |Dairy Milk Silk|6 |30 |2021-06-12 20:30:40|9999-12-31 23:59:59|1 |+---------+--------------+---------------+---------------+-------------------+-------------------+-------------------+--------+步骤
- 让我们使用 Spark 将这些数据写入 Hudi 表中
经验总结扩展阅读
- iptables使用详解
- 华为车载智慧屏值得买吗_华为车载智慧屏使用评测
- 夏天使用空调怎么更省电 空调不制冷解决方法
- Pytest进阶使用
- 法国大宝能当晚霜使用吗?
- 如何使用 pyqt 读取串口传输的图像
- 你们觉得华为手机卡不卡,使用体验如何(华为加装nm卡缺点)
- 飞机上手机可以开机吗 飞机上手机可以开机正常使用吗
- 古墓丽影10怎么打飞机(古墓丽影10怎么使用榴弹)
- 水乳霜眼霜的使用顺序是怎么样的?