SCD (slowly changed dimension) Type 4/6 - 如何在spring boot app, hibernate envers中实现

Posted

技术标签:

【中文标题】SCD (slowly changed dimension) Type 4/6 - 如何在spring boot app, hibernate envers中实现【英文标题】:SCD (slowly changing dimension) Type 4/6 - how to implement in spring boot app, hibernate envers 【发布时间】:2021-03-07 15:52:55 【问题描述】:

我正在尝试解决这个问题,我应该如何为我的应用创建“日志”并将它们存储到数据库中。

假设我有这个数据库结构:

第一张桌子:

weatherstation_id | weatherstation_name | weatherstation_ip_address

第二张桌子:

sensor_id | sensor_name | sensor_number | weatherstation_id

第三张表:

measurement_id | value | measure_date | weatherstation_id | sensor_id

从这里我应该能够得到“日志”所以测量值和有关气象站和传感器的信息!在进行测量的时间!,所以我需要实施不知何故的历史。

我试图解决这个问题超过两个星期,我发现我可能应该使用 SCD 类型 4 或 6 之类的东西。

我想到的一个选项是spring-data-envers,它应该处理历史记录,但在这里我不知道我应该如何将测量结果“链接”到修订版。

第二种选择是自己编写并使用JPA Lifecycle Callbacks,并在我的 WeatherStation 实体列表中添加 WeatherStationHistory 并在任何更新或持久化之前添加当前 WeatherStation 的副本,然后让 Measurement 指向此 WeatherStationHistory。

所以我想知道解决这个问题的最佳方法是什么以及如何在spring boot应用程序中实现它。

我希望我已经清楚地描述了我的问题。如有任何建议,我将不胜感激。

【问题讨论】:

【参考方案1】:

我认为您应该使用 SCD 的数据库级选项。虽然我不知道如果它在应用程序级别实现是否有任何好处。

【讨论】:

以上是关于SCD (slowly changed dimension) Type 4/6 - 如何在spring boot app, hibernate envers中实现的主要内容,如果未能解决你的问题,请参考以下文章

哪个是维度的最佳方法(SCD-2 或 SCD-1 + 全新维度)

SQL Server scd2 和 scd1 中的 DWH SCD 类型 2 实现

不同色谱柱的不同 SCD 类型

我是不是正确实施了 SCD 类型 1 和 7

HIVE- SCD缓慢变化

SCD缓慢变化维拉链表