2017-01-25 50 views
1

我正在處理這個新任務,其中我的輸入csv文件有大約200到300萬條記錄,我的要求是對傳入數據進行排序執行查找的鍵值並插入到目標表中。其中一個建議是編寫一個java插件,將數據分類並存儲在多個臨時文件中(比如說每百萬個文件)並從那裏檢索。我正在考慮在pentaho中使用排序步驟並設置開始的份數。但我不確定什麼是最好的方法。任何人都可以建議如何去做這件事。謝謝。在Pentaho中排序200-300萬條記錄的最佳方法?

回答

2

我已經使用PDI來排序這麼多行。 Sort步驟工作正常,它可以finicky。我將我的「可用內存閾值(%)」設置爲〜50。該步驟將在「排序目錄」中生成臨時文件的gobs;如果作業崩潰(通常是由於內存不足),您將不得不手動刪除臨時文件。

如果我不得不再次這樣做,我可能會設置「壓縮TMP文件?」選項,因爲多個故障使我的磁盤空間不足。祝你好運!

Java中的自定義排序可能會使您獲得更好的性能,但開發時間會很長。如果你要每天/每週對這些行進行排序,無論如何,這可能是值得的。如果沒有,只需堅持PDI的Sort

+0

我嘗試了一些測試與pentaho排序步驟,它工作正常,當我使用行生成器的步驟,但凍結或崩潰時,我使用的CVS輸入。不知道爲什麼。 – DUnkn0wn1

+0

可能是因爲你的數據集的大小。確保「延遲轉換」已關閉。嘗試調整可用內存閾值設置。 –

+0

謝謝。這有幫助。減少緩衝區大小也有幫助。 – DUnkn0wn1

相關問題