data-warehouse - 数据仓库架构 : is it OK to directly link fact tables in DWH?

标签 data-warehouse

直接链接DWH中的事实表可以吗?

据我了解,在银河模式事实表中没有链接,它们只是有共同的维度表。但是,如果有假设直接链接它们的 DWH 模式?

最佳答案

IMO,他们不应该,即使他们可以。事实表通常很大,可能有数十亿行,并且以一定的粒度保存度量。

链接两个或多个事实表可能需要连接数十亿行表,这太昂贵了。

如果您需要链接不同事实表中的事实(所有维度都是通用的),您最好只进行一次连接,存储结果并改用该结果表。如果这可以在 ETL 级别完成,您可以逐批加入,那就更好了。

如果您在两个表中连接事实,其中一个维度是另一个维度的超集,您最好将最细粒度的事实聚合到另一个的粒度并应用上述解决方案。

如果两个维度都不是另一个维度的超集,那么您可能需要在一个共同的级别上聚合两者。

我的立场背后的原因是,我宁愿在存储中拥有冗余并避免查询时间计算,而不是让我的用户等待很长时间以使这些连接产生结果。此外,非常大的连接需要大量内存,这通常比存储更昂贵。

最后,请记住 DWH 通常具有由 ETL 进程加载的数据。它们成批运行,并且可以在每次运行时检查一致性,这与 OLTP 不同,在 OLTP 中,避免多次写入相同数据对于防止不一致至关重要。

对此有不同的看法,您很可能会对此事有不同的看法。最后,这两种方法都有其优点和缺点,两者都学习并选择你最喜欢的一种。

关于data-warehouse - 数据仓库架构 : is it OK to directly link fact tables in DWH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52061383/

相关文章:

sql-server - SSIS 查询在目录作业中运行速度非常慢。等待类型 : ASYNC_NETWORK_IO

sql - 根据 teradata 中表 2 的值更新表 1

azure - 资源类 - 并发 - Azure SQL 数据仓库

analytics - OLAP 和操作数据的联接查询

data-warehouse - 免费数据仓库系统——专门用于数据存储

data-warehouse - 项目的大型数据集

database - 如何在物理/逻辑上分离集成层和数据仓库,是否有必要?

hadoop - Hive 外部表架构重新连接

c# - 我应该如何处理来自不同来源的仓储数据?

data-warehouse - 维度建模的命名标准