Php SQL从脏数据集创建新数据库

Php SQL从脏数据集创建新数据库,php,mysql,regex,database,bash,Php,Mysql,Regex,Database,Bash,我有一个难题:我正在开发一个用于内部使用的医疗设备制造商和模型的关系数据库。此数据的来源(来自FDA的转储)非常脏,并且以CSV形式提供,因此它被导入到一个表中,没有相关的键开始。同时,我希望将导入的数据移动到 制造商一览表 型号表(相对于制造商) 。。。供我的应用程序使用 虽然很容易通过唯一索引匹配精确的制造商和型号名称,或去除特殊字符的制造商和型号名称字符串,但问题似乎是,在许多情况下,名称都有后缀和变体,例如: 圣犹大 圣犹大公司 圣朱迪斯-神经 圣朱迪斯心脏病公司 圣犹大国际 理想情

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

  • 制造商一览表
  • 型号表(相对于制造商)
  • 。。。供我的应用程序使用

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

    • 圣犹大
    • 圣犹大公司
    • 圣朱迪斯-神经
    • 圣朱迪斯心脏病公司
    • 圣犹大国际
    理想情况下,一旦从CSV导入表移动到我正在开发的供内部使用的表结构中,所有这些都应该是1个制造商记录

    三个任务还包括每周批量作业,下载新的CSV,导入CSV的表,以及更新内部表结构

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

    对我如何做到这一点有什么建议吗?我熟悉Bash、SQL、PHP和一些Python。这是脏CSV的一个非常小的片段。在所有CSV中,大约有3000万条记录

    签出,其设计用于执行此类数据规范化/清理。主页上的视频很好地介绍了它的功能


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

    这是一个很棒的工具,谢谢!这将帮助我克服最初的障碍。你有没有一个建议的方法来处理批量导入的脏数据一样多,只是没有那么大?@c-griffin,我仍然认为这是你最好的选择,即使是对于一个小数据集。使用JSON序列化进行重复导入。祝你好运