數據是當今分析世界的寶貴資產 。在向最終用戶提供數據時,跟蹤數據在一段時間內的變化非常重要 。漸變維度 (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怎么使用榴彈)
- 水乳霜眼霜的使用順序是怎么樣的?
