我是否应该规范化一个 130 万条记录的平面文件以供分析?
Should I normalize a 1.3 million record flat file for analysis?
我收到了一份巨大的健康保险索赔数据平面文件。它包含 130 万行和 154 列。我需要对这些数据进行一系列不同的分析。这将在 SQL Server 2012 中。
该文件有 25 列用于诊断代码(DIAG_CD01
到 DIAG_CD_25
),8 个用于计费代码(ICD_CD1
到 ICD_CD8
),4 个用于程序修饰符代码(MODR_CD1
到 MODR_CD4
)。看起来它是从关系数据库中转储的。计费和诊断代码将成为大部分分析的基础。
所以我的问题是我是否应该将文件拆分为模拟关系数据库。像这样在 table 上编写分析查询将是一场噩梦。如果我把它分成一个 parent table 和三个 child tables (Diagnoses
, Modifiers
, and Bill_codes
) 我查询代码会容易得多。但如果我这样做,除了 130 万 parent 条记录之外,我还将拥有多达 3250 万条诊断记录、多达 1040 万条计费代码记录和多达 520 万条修改记录。另一方面,这三个集合的平面数据中有很大一部分是空字段,这应该会影响查询性能。
将这些数据作为模拟关系数据库与作为巨型平面文件来查询可能产生的性能后果是什么?读到标准化,听起来性能应该更好,但是四个 table 拆分中的记录数量让我犹豫不决。
似乎如果你保持非规范化,你将不得不重复查询逻辑很多次(诊断 25 次),更糟糕的是,你必须以某种方式将所有这些部分聚合在一起。
按照您的建议将数据拆分为诊断代码、账单代码等逻辑表,您的查询将更容易处理。
如果您有一台像样的机器,这些行数应该不会成为 sql 服务器的性能问题。只要确保你有索引来帮助你的连接等。
祝你好运!
我收到了一份巨大的健康保险索赔数据平面文件。它包含 130 万行和 154 列。我需要对这些数据进行一系列不同的分析。这将在 SQL Server 2012 中。
该文件有 25 列用于诊断代码(DIAG_CD01
到 DIAG_CD_25
),8 个用于计费代码(ICD_CD1
到 ICD_CD8
),4 个用于程序修饰符代码(MODR_CD1
到 MODR_CD4
)。看起来它是从关系数据库中转储的。计费和诊断代码将成为大部分分析的基础。
所以我的问题是我是否应该将文件拆分为模拟关系数据库。像这样在 table 上编写分析查询将是一场噩梦。如果我把它分成一个 parent table 和三个 child tables (Diagnoses
, Modifiers
, and Bill_codes
) 我查询代码会容易得多。但如果我这样做,除了 130 万 parent 条记录之外,我还将拥有多达 3250 万条诊断记录、多达 1040 万条计费代码记录和多达 520 万条修改记录。另一方面,这三个集合的平面数据中有很大一部分是空字段,这应该会影响查询性能。
将这些数据作为模拟关系数据库与作为巨型平面文件来查询可能产生的性能后果是什么?读到标准化,听起来性能应该更好,但是四个 table 拆分中的记录数量让我犹豫不决。
似乎如果你保持非规范化,你将不得不重复查询逻辑很多次(诊断 25 次),更糟糕的是,你必须以某种方式将所有这些部分聚合在一起。
按照您的建议将数据拆分为诊断代码、账单代码等逻辑表,您的查询将更容易处理。
如果您有一台像样的机器,这些行数应该不会成为 sql 服务器的性能问题。只要确保你有索引来帮助你的连接等。
祝你好运!