首页 > 大数据 > 数据挖掘 > 数据仓库的数据标准化思路
对于大型公司而言,各个下层子公司都使用自己本地的业务系统,当这些子公司数据往上汇总到总公司时,常常出现代码不一致,数据歧义等等各种各样的问题,在这种情况下,数据标准化就变得不得不行了。
典型的例子,比如医院,大型医院往往包含多个分院,而分院都是用自己的业务系统。业务数据采集汇总后,发现数据结构及数据本身出现歧义,无法直接使用。因此,就不得不对本院及分院的业务数据进行标准化处理,避免歧义,使数据更真实可用,简单易理解。
数据标准化处理应当注意两个关键点:
以病人为例,病人可能在各分院及本院都注册建档,因此同一病人可能在各分院都有不同的ID号,但数据采集到本院,与本院数据合并后,进行标准化处理,应保证此病人具有新的唯一ID号。同时需保留病人曾经的各分院及本院ID号,便于其他分院数据的关联(如分院的病人缴费数据需要关联原始分院号码,之后以标准化后唯一ID号,进入本院系统)。
如病人缴费信息,因为缴费事实产生的位置不同,需要进行来源标注,分清本院及各分院,便于数据理解及之后的查询和统计。
在构建DW时的数据标准化处理流程上,可以考虑通过以下方式来完成。
在标准化处理之前,需要对DW表格结构进行一些处理,使得标准化过程易于实施,也保证标准化的结果更易于理解。
对于不同的表格上,所需新增的字段也不尽相同。下面分类进行说明:
维表
比如病人信息,科室信息,员工信息,设备信息等,新加字段如下:
|
字段名 |
类型 |
说明 |
备注 |
|
ID |
数字 |
代理键,主键 |
由序列生成,新的唯一ID号 |
|
HISTORY_IDLIST |
文本 |
曾经使用的编号列表 |
对应分院+分院ID号,以;分隔 |
|
START_DATE |
日期 |
记录生效时间 |
拉链使用,可选 |
|
END_DATE |
日期 |
记录失效时间 |
拉链使用,可选 |
事实表
如病人缴费,医生处方,手术记录等,新加字段如下:
|
字段名 |
类型 |
说明 |
备注 |
|
SOURCE_ID |
数字 |
数据来源,本院、分院 |
表示数据来源; 应新增本院/分院信息维表,记录source_id对应的分院名,地址,热线等信息 |
|
ARCHIVE_FLAG |
文本 |
记录是否可归档(Y/N) |
对于已处理完成的信息,如病人已出院,进行可归档标记; DW保留一段时间后,可考虑部分归档数据迁移到二级存储,减轻压力 |
|
START_TIME |
日期 |
记录生效时间 |
拉链使用,可选 |
|
END_DATE |
日期 |
记录失效时间 |
拉链使用,可选 |
在数据标准化的处理过程中,也应分为两步进行处理,先进行维表的代码(如ID号)标准化,然后将事实表中的记录以标准化后的代码配合原来的事实信息(如缴费)及数据来源标记(哪个分院)采集到DW标准事实表中。
维表标准化
注:在病人的原始信息记入history_idlist字段时,可选择同时将标准化的病人ID号和原始ID号写入一个代码转换表,便于之后分院事实表通过此代码转换表,根据原始ID号,找到新的标准化ID号。当然,分院事实表也可通过对标准化病人维表的history_idlist字段的全文搜索,找到对应的标准化ID号。实际实施中,以实施效率进行灵活调整即可。
事实表标准化
在实施标准化时,可分为标准化初始化-增量标准化来实施,标准化初始化处理数据量最大,之后增量标准化,只要采集增量数据到缓冲区即可。
标准化初始化
标准化初始化示意图如下:
初始化主要完成以下工作:
标准化增量
标准化增量示意图如下:
标准化增量主要完成以下工作:
之后每次增量时,重复标准化增量操作即可。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30416779/viewspace-1774287/ ,如需转载,请注明出处,否则将追究法律责任。