テーブルを Amazon RedShift から MySQL に移行したいのですが、「アンロード」を使用すると、MySQL に直接インポートするのが難しい複数のデータ ファイルが生成されます。
テーブルを単一の CSV ファイルにアンロードして、MySQL に直接インポートできるようにする方法はありますか?
テーブルを Amazon RedShift から MySQL に移行したいのですが、「アンロード」を使用すると、MySQL に直接インポートするのが難しい複数のデータ ファイルが生成されます。
テーブルを単一の CSV ファイルにアンロードして、MySQL に直接インポートできるようにする方法はありますか?
単一のファイルに送信するには、並列オフを使用します
unload ('select * from venue')
to 's3://mybucket/tickit/unload/venue_' credentials
'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>'
parallel off;
また、ダウンロード用にファイルをさらに小さくするために、Gzip を使用することをお勧めします。
unload ('select * from venue')
to 's3://mybucket/tickit/unload/venue_' credentials
'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>'
parallel off
gzip;
確かに、Redshift に出力ファイルを 1 つだけ生成させる方法はありません。
標準の UNLOAD では、システム スライスの数に相当する出力ファイルが作成されます。つまり、8 つのスライスを持つシステムでは、1 回のアンロード コマンドで 8 つのファイルが作成されます (これが最も高速なアンロード方法です)。
Unload コマンドに PARALLEL OFF 句を追加すると、出力は単一のファイルとして作成され、データ抽出のサイズが 6.25GB を超えない限り、Redshift は自動的にファイルを新しいチャンクに分割します。 .
圧縮された出力ファイルを生成する場合にも同じことが当てはまります (もちろん、ファイルにより多くのレコードを収容できることを考えると、単一の出力ファイルを生成する可能性が高くなります)。
いいえ。{マニフェストを使用して、Redshift にすべての出力を 1 つのファイルに送信するように指示できます。以前の回答は間違っていました。ロードにはマニフェストを使用しましたが、アンロードには使用しませんでした。
単一のファイルを取得するには、次の 2 つの方法が考えられます。
cat
ユーティリティを使用してファイルを結合します cat File1.txt File2.txt > union.txt
。これには、最初に S3 からファイルをダウンロードする必要があります。