如何为临床数据集确定数据仓库模式?

问题描述 投票:0回答:2

我正在尝试为临床数据集MIMIC-III设计一个架构。我试图找出一种存储事件的方式,以便用户可以使用星型架构轻松查询数据集。几乎所有条目(例如诊断,过程,注释,图表等)都与单次入院相关。我心中有几件事,但我没有经验,因此很难找出实现此目的的最佳方法。

  1. 例如,创建多个事实表,我将有一个事实表用于诊断,一个人为程序,一个人为实验记录,但这似乎太多了事实表,却无济于事。就像我可以有一个事实表,其中包含每个准入每个用户的每个诊断的条目,但是,与已经实施的OLTP模式相比,这会给我带来更多的好处吗?
  2. 创建一个事实表,每个准入一行包含多个列/维度,例如诊断,过程等。但是问题在于,对于大多数每个准入来说,都有多个诊断,因此我将不得不链接到大多数事实表中的桥表然后看起来像下面的图片。与此相关的问题是查询所需的联接。schema
  3. 我读到的第三种方法是使用类似实体-属性-值事实表的东西,其中我有一个事实表,每一行都是一个事实。例如,一行可能类似于(病人ID-入院ID-(属性)心率读数-(VALUE)120bpm),这将创建一个事实表,其中几乎包含所有内容,并且所需的联接较少,但最终用户需要旋转由于EAV的性质,查询后会显示该表,从而使最终用户变得更加复杂。看起来像i2b2 star schema.
  4. [我想到的最后一种方法是每个事件都进入事实表,但事实表中有许多列来存储维,例如(患者编号,入院编号,icustay_id,诊断,程序,labnote,labevent,microbiologyevent等。 ),所有列中都有患者编号和准入编号,但其余行将取决于条目,因此一个条目可能只有患者编号,准入编号和单个过程。由于缺乏经验,我不知道查询的最终结果如何。我也不知道是否所有这些与几乎每一列都不相关的条目都是可行的方法。
  5. 任何帮助将不胜感激,我正在尝试将其实施到BigQuery中。

我正在尝试为临床数据集MIMIC-III设计模式。我试图找出一种存储事件的方式,以便用户可以使用...

sql data-warehouse dimensional-modeling star-schema
2个回答
0
投票

[一些测试得出的结论是,减少联接数可以提高BigQuery的性能。换句话说,如果您对单个表中的大多数数据进行非规范化,则由于不需要执行很多联接,因此可能会得到更好的结果。


0
投票

初始阅读

© www.soinside.com 2019 - 2024. All rights reserved.