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がお薦め。