-3
從10TB大小的文件中刪除重複記錄的最佳方法是什麼?從10TB大小的文件中刪除重複記錄的最佳方法是什麼?
具體我使用的是oracle 11g。每個記錄由20個varchar(255)(60)等字段組成,Date或Number。約10%的記錄是重複的,重複可以通過10位數的字段來識別。 順序並不重要,但我很感激,如果你可以提到我應該怎麼辦,如果訂購,我有一個core2dou CPU與4GB內存。
從10TB大小的文件中刪除重複記錄的最佳方法是什麼?從10TB大小的文件中刪除重複記錄的最佳方法是什麼?
具體我使用的是oracle 11g。每個記錄由20個varchar(255)(60)等字段組成,Date或Number。約10%的記錄是重複的,重複可以通過10位數的字段來識別。 順序並不重要,但我很感激,如果你可以提到我應該怎麼辦,如果訂購,我有一個core2dou CPU與4GB內存。
這是element distinctness Problem,可以通過這兩種方法來解決:
[0,a)
,並將所有獨特元素寫入新文件。然後重複範圍[a,b)
,[b,c)
,......。確保範圍足以包含該範圍內的所有元素。請注意,您可以遞歸做到這一點(即寫中間文件,哈希[x,y]
,並遞歸調用這個新的文件篩選重複。這使得這種方法需要O(nlogn)
磁盤訪問非常大的文件。的分佈式版本第二屆的方法是使用map-reduce:??
map(file):
emit(key,'1')
reduce(key,list):
emit(key)
在哪裏擺放那些TERA – romuleald
你需要什麼樣的文件和什麼樣的記錄,請再具體些 –
提供了更多的信息之前,這可能是 –