gpt4 book ai didi

sql-server - 建模和查询多个事实表

转载 作者:行者123 更新时间:2023-12-03 19:35:54 26 4
gpt4 key购买 nike

再会!

我有一个包含 3 个相互关联和模型的事实表的关系数据源

患者就诊(EncounterEventFact 表),将诊断分配给患者(DiagnosisEventFact 表)并在下图中收集患者的实验室结果(LabComponentResultFact 表)。他们都共享 EncounterKey 一个键,指定一个独特的医生访问。所有 EncounterKeys 都在 EncounterEventFact 表中,并且只有一次。我在内存中使用 SSAS 表格来建模数据。

每个事实表都有几百万行(2-4 百万)。 DiagnosisDim 有几万行。 PatientDim 有几百万行(<10 百万)。 LabDim 有几百条记录。这是一个只有 3 个主要维度的简化模型。

我的衡量标准是 DiagnosisEventFact 上 EncounterKeys 的不同计数和 LabComponentResultFact 上 EncounterKeys 的不同计数。

正在开发的样本报告在诊断模糊方面给出了选择,显示此诊断的唯一访问计数和此诊断的实验室收集访问计数。

诊断 count_visits_diagnosis count_visits_labs

ABC 5 0

防御 10 5

等等

当我在报告中选择所有诊断时,问题就出现了。诊断计数立即测量负载,而实验室测量计数需要永远。当我选择几个诊断报告时,工作速度很快。

如何改进我的 SSAS 表格模型或计算以有效处理此类报告?

不幸的是,我无法在数据源端重新建模数据。

enter image description here

最佳答案

一个模式可以有一个或多个事实,但这些事实之间没有任何关键关系。最好不要像查询规范化/跨国数据库那样在单个查询中加入事实表。由于多对多连接等的性质 - 如果尝试,结果将是不正确的。

相反,建议遵循 Kimball 称之为“钻探”的过程。钻取过程可以分为两个阶段。在第一阶段,查询每颗星,并将结果汇​​总到一个共同的详细级别。在第二阶段,这些结果集根据它们的共同维度进行合并。

可以在 Kimball site 中阅读有关此内容的详细信息。

这里有一个类似的问题可供引用:Design of a data warehouse with more than one fact tables

关于sql-server - 建模和查询多个事实表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49251334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com