2017-01-25 22 views
1

私の入力csvファイルには約200〜3億のレコードがあります。私の要件は受信データをソートしてルックアップのキー値を取得してターゲットテーブルに挿入することです。 1つの提案は、複数の一時ファイルにデータをソートして保存するJavaプラグインを作成してそこから取得することでした。私はpentahoでソート・ステップを使用し、コピー数を設定することを考えていました。しかし、私は最良のアプローチが何であるか分かりません。誰もこれについてどうやって行くのかを提案することはできますか?ありがとう。Pentahoで2億〜3億のレコードをソートする最良の方法は?

答えて

2

私はこの多くの行をソートするためにPDIを使用しています。 Sortの手順はうまくいきます、それは厄介なことがあります。私は "Free memory threshold(%in)"を〜50に設定しました。この手順では、「ソートディレクトリ」に一時ファイルのゴブが生成されます。ジョブがクラッシュした場合(通常はメモリが不足しているため)、手動で一時ファイルを削除する必要があります。

もし私がもう一度やり直さなければならなかったら、おそらく "TMPファイルを圧縮する"を設定するでしょう。複数の失敗が私をディスク領域から駆逐したためです。がんばろう!

Javaでカスタムソートを行うとパフォーマンスが向上する可能性がありますが、開発時間が大幅に短縮されます。あなたが毎日/毎週このような多くの行を並べ替えるなら、それはおそらくそれの価値があるでしょう。そうでない場合は、PDIのSortを貼ってください。

+0

私は行生成器のステップを使用するときにうまく動作しますが、cvs入力を使用するとフリーズまたはクラッシュするpentahoソートステップを使用したテストはほとんど試行しませんでした。理由は分かりません。 – DUnkn0wn1

+0

おそらくあなたのデータセットのサイズのためです。 「レイジー変換」がオフになっていることを確認してください。空きメモリのしきい値の設定を調整してみてください。 –

+0

ありがとうございます。それが助けになりました。バッファーサイズを小さくすることも役に立ちます。 – DUnkn0wn1

関連する問題