[Sy] Redshiftのパフォーマンス実例(対1億レコード)
2015/06/26
仕事でRedshiftまわりで試した時のパフォーマンス実例をメモ。約1億レコードを別テーブルへinsertしたり、S3へアンロードしてみたりしてます。
1レコードのサイズによって変わってくるかとは思いますが、参考までに。
テーブルAの全件をテーブルBにinsert
SQLはこんな感じ。(column_n
のn
はtable_a
のカラム数)
insert into
table_a
select
/* table_aのレイアウトに合わせてカラム数を調整 */
column_1,
column_2,
.
.
.
column_n
from
table_b;
カラム数が10、レコード数が約1.3億のテーブルのデータを、別テーブルへ全件insertするのにかかった時間は約3分程度。
ただ、index再生成のためか insert後にそのテーブルの操作が結構重くなった ので注意です。
テーブルの全レコードをS3にアンロード
SQLはこんな感じ。
unload
('select * from table_name')
to
's3://path/to/unload/'
credentials
'aws_access_key_id=YOURACCESSKEYEXAMPLE;
aws_secret_access_key=-----YOUR-SECRET-ACCESS-KEY-EXAMPLE-----';
これも約1.3億件に対してやってみたら、15分程度で終了。
できあがったS3上のファイルは、その時は4ファイルに分割されて各ファイルが2GBくらい(合計8GBくらい)でした。