2016-05-12 6 views
2

私はインクリメンタルロード機能を備えたフラットファイルのデータソースを使用していますが、ロードの仕方によって異なるパフォーマンスが見られます。私は3つのデータセット{d1、d2、d3}をd1とd2が同じサイズであり、d3が3倍大きくなっています。私は16ギガバイトのメモリを持つマシン上で次のテストをしています:icCubeインクリメンタルとシングルロードのパフォーマンス

  1. ロードD1 - 時間:1m07s
  2. インクリメンタルD2ロード - 時間:2m53s
  3. インクリメンタルD3をロード - メモリ
  4. のうち実行を

一方、私がd1 + d2 + d3の単一の負荷を行うと、合計時間は5m29sであり、メモリの問題はありません。

これは、インクリメンタルロードとシングルロードのどちらを実行する場合でもメモリオーバーヘッドの問題か、パフォーマンスの管理を改善する必要がありますか?

答えて

2

リアルタイムをサポートするためにインクリメンタルロードが実装されており、通常のロードと同じロジックではありません。

追加データはメモリにあらかじめロードされているため、より多くのメモリが必要です。この事前ロードの間、スキーマはまだ使用可能です。新しいデータが完全にプリロードされ、最初の品質チェックが完了すると、スキーマは書き込みロックされ、実際のロードが実行されます。これにより、スキーマを数ミリ秒間ロックすることができます。

リアルタイムの「少量」の追加データにはインクリメンタルロードが適していますが、シナリオには適していません。

メモリが不足しているためではありません(多くのGC) ?

希望に役立ちます。

PS:追加のサポートが必要な場合は、サポートに直接お問い合わせください。

関連する問題