2016-08-31 3 views
1

Redshift unloadコマンドを実行していますが、私が望む名前が得られません。コマンドは次のとおりです。Redshift unloadのファイル名

UNLOAD ('select * from foo') 
       TO 's3://mybucket/foo' 
       CREDENTIALS 'xxxxxx' 
       GZIP 
       NULL AS 'NULL' 
       DELIMITER as '\t' 
       allowoverwrite 
       parallel off 

結果はmybucket/foo-000.gzです。 スライス番号をファイル名の末尾にしたくない場合は、ファイル名の末尾にというファイルの末尾にというファイル拡張子を追加します。 (

  • mybucket/fooの-000.txt.gz
  • mybucket/foo.txt.gz

これを行うにはどのような方法があります:私は、次のいずれかを見てみたいですラムダ後処理リネマスクリプトを書かずに)?

+0

「並列オフ」を試しましたか?また、最大ファイルサイズがあるので、データが大きすぎる場合でも、複数のファイルが作成されます。 –

答えて

6

TLは、DR

説明:
それはAmazon Redshift UNLOAD文書で言うように、あなたはそれがいくつかの部分に分割したくない場合は、あなたがPARALLEL FALSEを使用することができますが、それ有効にしておくことを強くお勧めします。 ([EXT]は、圧縮が有効になっているときにのみ存在する場合)、ファイルサイズに制限があるのでそれでも、ファイルは常に、000.[EXT]サフィックスが含まれますその赤方偏移を出力することができ、documentationに言うように:

デフォルトでは、UNLO​​ADは、クラスタ内のスライス数に応じて、複数のファイル と並列にデータを書き込みます。デフォルトのオプション はONまたはTRUEです。 PARALLELがOFFまたはFALSEの場合、UNLO​​ADは、ORDER BY 節が使用されている場合は、それを1つまたは個のデータファイルに順次書き込みます。データファイルの最大サイズは6.2 GBです。 たとえば、13.4 GBのデータをアンロードすると、UNLO​​ADは3つのファイルの後に を作成します。

s3://mybucket/key000 6.2 GB 
s3://mybucket/key001 6.2 GB 
s3://mybucket/key002 1.0 GB 

したがって、赤方偏移は、彼が最初の場所で出力しようとしているファイルのどのようなサイズを知らないので、それはなかれ、少なくともプレフィックス000が追加されますので、彼は場合、この接尾辞を追加しています出力は6.2GBのサイズになります。

あなたがPARALLEL FALSEの使用は推奨されない理由は、私はいくつかの点でそれを説明しようとするでしょう頼む場合:

  1. 最も重要な理由は、赤方偏移クラスタが設計された方法です。各クラスタには少なくとも2つのサーバーが含まれ、そのうちの1つがリーダーノードで残りがデータノードである場合。リーダーノードの目的は、データノードを制御することです。Redshift内のすべてのデータを読み書きするために必要な情報を保持します。
    フラグPARALLELTRUEのときにRedshiftからデータをアンロードすると、最初にRedshiftクラスタを構築するノードの数をXとすると、少なくともX個のファイルが作成されます。つまり、データノードからデータが直接書き込まれるということです。これは、データノードがパラレルで実行され、リーダーノードをスキップするため、非常に高速です。
    このフラグをオフにすると、出力する行の並べ替えを再構成し、必要に応じて圧縮する必要があるため、すべてのデータがすべてのデータノードから単一のノード、リーダーノードに集められます単一のストリーム。この操作により、データの書き込みがはるかに遅くなります。
  2. また、リーダーノードをすべて通過するため(リードクエリとライトクエリ)、リーダノードに過負荷がかかった場合、リーダーノードを経由するため、読み取りと書き込みの問題でRedshiftクラスタのパフォーマンスが大幅に低下します。パフォーマンス上の問題です。
    クエリCOPYUNLOADはデータノードと直接的に連動するため、PARALLEL TRUEを使用する場合とほぼ同じ動作をします。逆に、SELECT,UPDATE,DELETE、およびINSERTのようなクエリはリーダーノードによって処理されるため、リーダーノードが読み込まれることがあります。
+0

大きな説明をありがとう。私の輸出の消費者は1つのファイルをエクスポートとして要求しましたが、ファイルサイズの制限については考慮しなかったいくつかの問題を提起します。 – Todd

+0

喜んで助けてください... –

関連する問題