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がお薦め。
最新記事
- APIサービスをどう作るか
- C++による組込みプログラミング
- CUDAでGPUプログラミング
- BERTでチャットボット
- 脆弱性チェックツール
- Flutterでデスクトップアプリ
- MMPoseを使って姿勢推定(骨格検知)
- Laravel Livewire3を使ってみる
- Lineミニアプリ
- RustとPHPのパフォーマンス比較
- ボクシングをモーションキャプチャー
- Virtualbox上のUbuntuにDocker環境を作れ・・・
- AWSでのIPv6対応
- AWSのRDSでブルー/グリーンデプロイ
- 20年ぶりにCOBOL
- フィッシングメールのソースを見る
- GCPのVertex AIの注意点
- Azure AZ-900 に合格
- 数年ぶりにRubyを触る
- Godotはunityの代わりになるのか?