2014-02-07 37 views
1

我有一個難題:我正在開發一個製造商和醫療設備模型的內部使用關係數據庫。這些數據的來源(來自FDA的轉儲)非常髒,並且以CSV格式提供,因此將其導入到單個表格中,並且沒有相關的鍵入口。
同時,我期待將導入的數據移動到SQL從髒數據集創建新數據庫

  1. 表的生產廠家
  2. 表的模型(相對於製造商)

...通過我的應用程序

使用

雖然很容易匹配確切的製造商和型號名稱,或通過獨特索引剝離特殊字符的製造商和型號名稱的字符串,但問題似乎是有許多情況下存在後綴和變體名稱,如:

  • ST JUDES
  • ST JUDES,INC
  • ST JUDES神經 -
  • ST JUDES INC CARDIO
  • SAINT JUDES國際

理想的情況下,所有的這些應該是1製造商記錄,一旦從CSV導入表移動到我正在爲內部使用而開發的表結構。

三個也將是一個每週批量工作下載一個新的CSV,導入CSV的表,並更新內部表結構。

我最初的想法是使用soundex值或乾淨的字符串的唯一索引,但這些都不會工作上面的例子。

有關我如何完成此任務的任何建議?我熟悉Bash,SQL,PHP和一些Python。這是髒CSV中的一小部分。對於所有的CSV,它是30M左右的記錄
http://www.accessdata.fda.gov/MAUDE/ftparea/foidev2013.zip

回答

1

退房OpenRefine,這是專門做這種數據標準化/清洗。主頁上的視頻在介紹其功能方面做得很好。

上次我使用它時,它並不是完全可批處理的,但可以將規範化規則序列化爲JSON字符串,並使用該字符串在新數據集上重新應用相同的操作。

+0

這是一個很棒的工具,謝謝!這將有力地幫助我克服最初的障礙。你有沒有建議的方法來處理批量導入同樣髒的數據,只是沒有那麼大? –

+0

@ c-griffin,即使是小數據集,我仍然認爲這是最好的選擇。使用JSON序列化重複導入。祝你好運! – Chris