2011-08-19 18 views
0

我的根本問題是我只能讀取大型數據集。這個數據集有大約300,000條記錄。其中一些記錄 包含從拼寫錯誤到缺失數據塊的錯誤。不幸的是, 無法在源代碼中修復,也無法創建固定本地克隆版本 。當發現這些錯誤時,它們相對容易修復,通常可以通過幾行代碼完成。問題 我正在努力的是一個理智和可擴展的系統,使這些錯誤成爲 記錄和修復。系統修復數據集中的已知錯誤

有一堆if(primaryKey == 245664) {fix here}作品的方法,但 是一個可怕的解決方案。

我正在用Java編寫,已經看了ServiceLoader機制,但這些感覺 有點重量級爲我的目的。任何建議將不勝感激。

+0

根據您的級別和訪問方法...考慮爲JPA映射實體編寫某種驗證器方法,該方法由'@ PostLoad'方法調用。 –

+0

我看着這個解決方案。問題是每個「修復」都是獨一無二的。所以任何PostLoad方法仍然必須確定我正在修復哪個原始記錄。正如我之前所說的,我真的不想要一大堆if語句的方法。 – Chesrae

+1

你可以在'HashMap'中存儲某種'DataFix'實體,鍵入到PK中(注意:如果你的問題對於這個級別來說真的是獨一無二的,那麼你只是簡單地修理你的數據) 。你可以嘗試以這種方式提供某種可配置的修復......但實際上,你應該得到某種固定設置(本地或從原來的)。允許數據庫錯誤持續存在,乞求麻煩... –

回答

0

我知道你的痛苦。

這可能不是您想要的,但我建議您看看Google Refine。我更喜歡教程的截屏,但這些都是相當不錯:

http://code.google.com/p/google-refine/wiki/Screencasts

這是一個真正的超級工具,用於處理數據,並可能會爲您節省大量的編程工作。 我不知道它是否有助於自動化修復或清理數據的過程,但我最好的猜測是他們想到了類似的東西。

+0

我正在挖掘這個。不知道這是否是答案,但無論如何,它是我以前不知道的一個非常酷的工具。 – Chesrae