AWSのRedshiftで1億レコード

2020.03.05

AWSのRedhshiftを使って大量レコードで遊んでみる。

■目的
大量データでの検索パフォーマンス、環境の作りやすさの調査。
ローカル環境にてCassandraで1億レコード環境を作ってみたが、色々問題点が目に付いたので、結局Redshiftに戻ってくる。
1億超のレコードは扱ったことがなかったので試す。

■準備
・テストテーブルの作成、テストデータの作成(100万件、1000万件、1億件のCSVファイル)
・CSVファイルをS3にアップロード
・IAMにて、Redshift用のロールを作成しておく
・Redshiftにてクラスタを作成。最小構成($0.314/h)で、1ノードで試す。
・テスト用のEC2にpostgresql92をインストールし、RedshiftのDBに接続する。

■結果
・COPYコマンドにて、S3からデータのロード。
100万件・・3秒程度でロード完了
1000万件・・25秒程度でロード完了
1億件・・5分程度でロード完了

・各種検索
avg、sum、group by などを使った集計用の検索処理をいくつか実行。
どれも数秒で結果が返ってくる。

■感想
・Redshift環境は簡単に作成できる。

・データのインポートが想像よりはるかに早い。1億レコード5分は驚異的。

・最小構成でも集計用SQLは数秒で返ってくる。
より上位の構成にしたり、ノード数を増やせばさらにパフォーマンス向上が見込まれるが、これは予算との兼ね合いで。
最小構成であれば、月額3万円以内で収まる。

・オンプレで頑張って分散環境作るより、Redshiftがお薦め。

最新記事

過去の記事一覧