我有一个难题:我正在开发一个内部使用的医疗设备制造商和型号的关系数据库。这些数据的来源(来自FDA的转储)非常脏,并以CSV格式提供,因此它被导入到单个表中,没有相关的密钥开始。
同时,我希望移动将数据导入
......由我的应用程序使用
虽然很容易匹配确切的制造商和型号名称,或通过唯一索引去除特殊字符的制造商和型号名称的字符串,但问题似乎是有很多情况下有名称的后缀和变体,如:
理想情况下,所有这些都应该是1个制造商记录,一旦从CSV导入表移动到我正在开发供内部使用的表结构。
三个也是每周批处理作业,下载新CSV,导入CSV表格,并更新内部表格结构。
我最初的想法是使用soundex值的唯一索引或清理字符串,但是根据上面的例子,这些都不会起作用。
关于如何实现这一目标的任何建议?我熟悉Bash,SQL,PHP和一些Python。这是脏CSV的一小部分。对于所有CSV,它大约是30M记录
http://www.accessdata.fda.gov/MAUDE/ftparea/foidev2013.zip
答案 0 :(得分:1)
查看OpenRefine,它旨在进行此类数据规范化/清理。主页上的视频很好地介绍了它的功能。
我上次使用它时,它不是完全可批处理的,但可以将规范化规则序列化为JSON字符串,并使用该字符串在新数据集上重新应用相同的操作。