【问题标题】:SQL creating new database from dirty data-setSQL从脏数据集创建新数据库
【发布时间】:2014-02-07 02:04:32
【问题描述】:

我有一个难题:我正在开发供内部使用的医疗设备制造商和型号的关系数据库。此数据的来源(来自 FDA 的转储)非常脏,并以 CSV 格式提供,因此它被导入到一个没有相关键开始的表中。
同时,我希望移动导入的数据输入

  1. 制造商表
  2. 型号表(相对于制造商)

...供我的应用程序使用

虽然通过唯一索引很容易匹配精确的制造商和型号名称,或去除特殊字符的制造商和型号名称字符串,但问题似乎是在很多情况下,名称存在后缀和变体,如:

  • 圣裘德
  • ST JUDES, INC
  • ST JUDES - 神经
  • ST JUDES INC 有氧运动
  • 圣裘德国际

理想情况下,所有这些都应该是 1 条制造商记录,一旦从 CSV 导入表移动到我正在开发供内部使用的表结构。

三个也将是每周一次的批处理作业,下载一个新的 CSV,导入 CSV 的表,并更新内部表结构。

我最初的想法是使用 soundex 值的唯一索引或干净的字符串,但鉴于上面的示例,这些都不起作用。

关于如何完成此任务的任何建议?我熟悉 Bash、SQL、PHP 和一点 Python。这是脏 CSV 的一个非常小的 sn-p。对于所有 CSV,大约有 3000 万条记录
http://www.accessdata.fda.gov/MAUDE/ftparea/foidev2013.zip

【问题讨论】:

    标签: php mysql regex database bash


    【解决方案1】:

    查看OpenRefine,它旨在执行此类数据规范化/清理。主页上的视频很好地介绍了它的功能。

    我上次使用它时,它不能完全批处理,但可以将规范化规则序列化为 JSON 字符串,并使用该字符串对新数据集重新应用相同的操作。

    【讨论】:

    • 这是一个很棒的工具,谢谢!这将毫无疑问地帮助我克服最初的障碍。您是否有建议的方法来处理与脏数据一样大的批量导入?
    • @c-griffin,我仍然认为即使对于小型数据集,这也是您最好的选择。使用 JSON 序列化重复导入。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 2010-10-13
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多