Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 我应该跟踪关系/跨国家数据库中缓慢变化的维度吗?_Database_Relational Database_Data Warehouse_Etl_Dimensional Modeling - Fatal编程技术网

Database 我应该跟踪关系/跨国家数据库中缓慢变化的维度吗?

Database 我应该跟踪关系/跨国家数据库中缓慢变化的维度吗?,database,relational-database,data-warehouse,etl,dimensional-modeling,Database,Relational Database,Data Warehouse,Etl,Dimensional Modeling,让我们以人力资源数据库为例。HR人员每天使用的事务数据库处理每天发生的所有招聘和解雇。还有一个从事务数据库中提取的多维数据仓库 假设延迟足够低,以下哪个参数将被视为“最佳实践” 1) 事务数据库应该只需要跟踪数据当前的状态。它不必跟踪缓慢变化的数据(例如,某个特定员工拥有哪些经理的历史,他的工资是如何随时间变化的,等等)。ETL过程应该检测过渡数据库中的变化,并更新数据仓库中缓慢变化的维度 2) 事务数据库完全能够跟踪自己的历史信息。如果某个东西在ETL会话之间更改两次,那么第一次更改将永远丢失

让我们以人力资源数据库为例。HR人员每天使用的事务数据库处理每天发生的所有招聘和解雇。还有一个从事务数据库中提取的多维数据仓库

假设延迟足够低,以下哪个参数将被视为“最佳实践”

1) 事务数据库应该只需要跟踪数据当前的状态。它不必跟踪缓慢变化的数据(例如,某个特定员工拥有哪些经理的历史,他的工资是如何随时间变化的,等等)。ETL过程应该检测过渡数据库中的变化,并更新数据仓库中缓慢变化的维度

2) 事务数据库完全能够跟踪自己的历史信息。如果某个东西在ETL会话之间更改两次,那么第一次更改将永远丢失。多维数据库的主要用途是在报表中实现高效的查询性能,因此它仍在发挥作用。这也使得ETL过程更快、更简单

我觉得这两个论点都有优点,如果它们都是有效的论点,我很乐意在它们之间做出选择

我是否遗漏了一些未被考虑的东西


其中一个论点完全错了吗

我认为@marek grzenkowicz所说的是正确的。如果人力资源事务/运营系统的业务需求表明需要更改历史记录,则它们属于事务/运营系统。同样,如果业务需求声明需要此历史记录(或者可能是不同粒度级别的历史记录),那么仓库也会存储该历史记录。历史记录可能存储在两个系统中


我也推荐“数据仓库工具包”。我现在正在阅读它,它似乎有很多经过时间和现场测试的设计模式来为数据建模。这本书的第三版几周前刚刚出版。

我认为@marek grzenkowicz所说的是正确的。如果人力资源事务/运营系统的业务需求表明需要更改历史记录,则它们属于事务/运营系统。同样,如果业务需求声明需要此历史记录(或者可能是不同粒度级别的历史记录),那么仓库也会存储该历史记录。历史记录可能存储在两个系统中

我也推荐“数据仓库工具包”。我现在正在阅读它,它似乎有很多经过时间和现场测试的设计模式来为数据建模。这本书的第三版几周前刚刚出版。

您缺少的是业务需求。用户是否需要历史数据?此外,还需要一份数据仓库工具包:维度建模的完整指南——书中有一整章是关于人力资源数据的维度建模的。您缺少的是业务需求。用户是否需要历史数据?另外,还需要一份数据仓库工具包:维度建模完整指南——书中有一整章是关于人力资源数据维度建模的。