Redshift
AWS のペタバイト規模のデータウェアハウスサービスで、大量データの分析クエリを高速に実行する
AWSデータ分析
Redshift とは
Amazon Redshift は、ペタバイト規模のデータウェアハウス (DWH) サービスで、列指向ストレージと大規模並列処理 (MPP) により、大量データの分析クエリを高速に実行する。PostgreSQL 互換の SQL で操作できる。
列指向 vs 行指向
行指向 (RDS, DynamoDB):
Row 1: [id=1, name="Alice", age=30, city="Tokyo"]
Row 2: [id=2, name="Bob", age=25, city="Osaka"]
→ 1 行の全カラムを取得するのが高速
列指向 (Redshift):
id: [1, 2, 3, ...]
name: ["Alice", "Bob", ...]
age: [30, 25, ...]
→ 特定カラムの集計 (SUM, AVG) が高速、圧縮効率が高い
| 観点 | 行指向 (RDS) | 列指向 (Redshift) |
|---|---|---|
| 得意 | CRUD、トランザクション | 集計、分析クエリ |
| 苦手 | 大量データの集計 | 単一行の取得・更新 |
| 用途 | OLTP (業務処理) | OLAP (分析) |
Athena との比較
| 観点 | Redshift | Athena |
|---|---|---|
| データの場所 | Redshift クラスター内 | S3 上のファイル |
| 課金 | ノード時間課金 | スキャンデータ量課金 |
| パフォーマンス | 高い (データがローカル) | 中程度 (S3 スキャン) |
| 管理 | クラスター管理が必要 | サーバーレス |
| 適するケース | 定常的な分析ワークロード | アドホッククエリ |
少量・低頻度のクエリなら Athena、大量・高頻度のクエリなら Redshift。
Redshift Serverless
クラスターの管理が不要なサーバーレスモード。RPU (Redshift Processing Units) 単位で課金される。
データパイプライン
[DynamoDB] → [DynamoDB Streams] → [Kinesis Data Firehose] → [S3] → [Redshift COPY]
DynamoDB のトランザクションデータを Redshift に集約し、BI ツール (QuickSight) で可視化する。
よくある用途
| 用途 | クエリ例 |
|---|---|
| 売上分析 | 月別・商品別の売上集計 |
| ユーザー行動分析 | ファネル分析、コホート分析 |
| ログ分析 | 大量のアクセスログの集計 |
実務での活用方法は関連書籍にも詳しい。