Redshiftとは
AWSがPostgreSQLをベースに開発したDWHのマネージドサービス
- 数百ギガバイトのデータから開始して、ペタバイト以上まで拡張が可能
- 複数ノードをまとめたクラスター構成
- 単一AZで起動し、マルチAZ構成は不可
リーダーノード:クライアントの窓口となる単一のノード
コンピュートノード:集計・分析などの処理を行う複数のノード
インスタンスタイプ
利用するデータサイズと増加予測に応じて2つのインスタンスタイプから選択
1. RA3インスタンス
- コンピューティング性能とマネージドストレージのスケーリングと支払いを独立させることで、データウェアハウスを最適化する
- 最低2ノード必要
- データ量の増大が予想される場合に選択
2. DC2インスタンス
- 固定ローカルSSDストレージを使用したデータウェアハウス
- データのサイズ増加に対し、ノードを追加してクラスターのストレージ容量を増強
- 最低1ノード必要
- 未圧縮で1TB未満のデータセットでの利用に選択
列指向ストレージ
一般的なRDBMSのデータ格納方式は行指向であるのに対し、Redshiftでは列指向である
→ 集計・分析クエリに最適化されている
- 行データの追加処理は、行指向のデータベースに比べて遅くなる
- 書き込み回数が少なく、読み込みが複雑なクエリを頻繁に実行するようなユースケースに適する
超並列処理(MPP)
クライアントからクエリを受け付けたリーダーノードがクエリを解釈して各コンピュートノードに処理を指示し、各コンピュートノードがそれぞれ並列に処理を行い、結果を統合してクライアントに返す並列処理の仕組みのこと
※ シングルノード構成の場合はリーダーノードがコンピュートノードを兼任するため、MPPは行われない
Redshift Spectrum
S3バケットからRedshiftへデータをロードせずに、S3バケット内のデータに対して直接クエリを実行出来る機能
- RedshiftからRedshift Spectrumを外部表として読み込むため、コンピュートノードにデータをロードする必要がない
- 機能の利用には、S3バケットとRedshift Spectrumの間に、Amazon Athenaによって作成されたAWS Glueデータカタログか、Apache Hiveメタストアが必要となる