2016-08-16 8 views
0

私はRedshift Cluster内のテーブルにmy S3バケットのCOPYログファイルにAWSを使用しています。各ファイルのサイズは約100MBで、まだ'gziped'はありませんでした。私は600の論文ファイルを今も持っており、まだ成長しています。私のクラスタには2つのdc1.large計算ノードと1つのリーダーノードがあります。s3からredshiftにファイルをコピーしようとしています

問題は、COPYの動作時間が大きすぎます。少なくとも40分です。それをスピードアップする最良の方法は何ですか?

1)ノードのためのより良いマシンとより良いマシンを手に入れようか?

2)ファイルをgzipすれば、実際にはCOPY稼働時間の点で重要ですか?

3)ここで役立つデザインパターンは何ですか?

答えて

3

ロドリゴ、ここで

は答えます:

1 - あなたのハードウェアの設定を変更する前に、あなたが行うことができますいくつかの最適化は、おそらくあります。確かにテストしなければならないでしょうが、すべての最適化が完了したことを確認した後も、より良いパフォーマンスが必要な場合は、より多くのノードを使用することをお勧めします。

2 - Gzippedファイルは、パフォーマンスを向上させる可能性があります。しかし、私はあなたが最初にやる必要がある他の最適化があると思う。赤方偏移のドキュメントにこの勧告を参照してください。http://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-compress-data-files.html

3 - ここでは、重要度の順に見なければならないものです。

  1. 分散キーは - あなたの分散キーは、複数のスライス間での素敵な分布を提供していますか?あなたが "悪い"配布キーを持っているなら、それはあなたが見ている問題を説明するでしょう。
  2. エンコード - エンコードが最適であることを確認します。 ANALYZE COMPRESSIONコマンドを使用します。
  3. 並べ替えキー - この テーブルに適した並べ替えキーを選択しましたか。良いソートキーを持つことは、 圧縮に劇的な影響を与える可能性があり、その結果、読み取りと書き込みの時間に影響します。
  4. 掃除 - この表で複数のテストを行っている場合は、テストの間に掃除をしましたか? Redshiftは、削除または更新後のデータを削除しません(更新は、インプレース更新の代わりに削除および挿入として処理されます)。
  5. 複数のファイル - 多数のファイルが必要です。あなたはすでにこれを行っていますが、これはRedshiftにデータをロードしようとしている人のための一般的なアドバイスです。
  6. マニフェストファイル - マニフェストファイルを使用して、Redshiftで負荷を並列化できるようにします。

2ノードクラスタであっても、見たよりも60GBの読み込み速度が速くなると思います。これらの6つの項目をチェックし、私たちに知らせてください。

おかげ

+0

感謝を@BigDataKid、私が試してみて、その結果で戻ってくるだろう。 –

+0

4つのノードとgzipedファイルで20分を費やしました。 –

関連する問題