STEP 12:Amazon Redshift入門

🚀 STEP 12: Amazon Redshift入門

Redshiftクラスターを作成し、初めてのデータウェアハウスを構築しよう

📋 このステップで学ぶこと

  • Amazon Redshiftとは何か
  • クラスターの作成方法
  • テーブル設計の基本(DISTKEY・SORTKEY)
  • SQLクライアントでの接続
  • 実践演習:初めてのテーブル作成とデータロード

⚠️ 重要:Redshiftは有料サービスです

  • Redshiftには無料枠がありません
  • 最小構成(dc2.large × 2ノード)でも月額 約$360(約54,000円)
  • 使わない時は必ず一時停止または削除してください
  • 学習目的なら2時間以内に一時停止を推奨($1程度で済みます)

🎯 このステップのゴール

このステップを終えると、Redshiftクラスターを作成し、テーブルを設計・作成できるようになります。STEP 11で学んだDWHの概念を、実際に手を動かして体験しましょう。

🎯 1. Amazon Redshiftとは

Redshiftの基本

Amazon Redshiftは、AWSが提供するクラウド型データウェアハウスです。STEP 11で学んだMPPとカラムナーストレージを採用しており、大量のデータを高速に分析できます。

💡 例え話:Redshift = 巨大な計算工場

【従来のデータベース = 1人の職人】 ・1人で全部の作業をする ・データが増えると、作業時間も増える ・限界がある 【Redshift = 巨大な工場】 ・工場長(リーダーノード)が指示を出す ・複数の作業員(ワーカーノード)が分担して作業 ・データが増えても、作業員を増やせばOK ・並列で同時に処理するので超高速 例:100万件のデータを集計 ・1人の職人:10分かかる ・10人の作業員:1分で完了!(10倍速)

Redshiftの特徴

📝 Redshiftの5つの特徴

  • MPPアーキテクチャ:複数のノードで並列処理(STEP 11で学習)
  • カラムナーストレージ:列指向で高速・高圧縮(STEP 11で学習)
  • PostgreSQL互換:PostgreSQLのSQLがほぼそのまま使える
  • S3連携:S3から簡単にデータをロード(COPYコマンド)
  • スケーラブル:ノードを追加するだけで性能向上

Redshiftのユースケース

📊 ビジネス分析

売上分析、顧客分析など、大量データの集計とレポート作成。「今月の売上は?」「どの商品が人気?」

📈 ダッシュボード

Tableau、QuickSight、Power BIなどのBIツールと連携して可視化。経営層向けレポート作成。

🔍 ログ分析

Webアクセスログ、アプリログなどの大量ログを分析。「どのページがよく見られている?」

🤖 機械学習前処理

大量データの集計・加工を行い、ML用データセットを作成。特徴量エンジニアリング。

Redshiftのアーキテクチャ

🏗️ クラスター構成

【Redshiftクラスターの構成】 ┌─────────────────────────────────────────────────────┐ │ リーダーノード │ │ ・クエリを受け取る(窓口) │ │ ・実行計画を作成(司令塔) │ │ ・各ワーカーに指示を出す │ │ ・結果を集約してクライアントに返す │ └─────────────────────────────────────────────────────┘ ↓ ↓ ↓ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ ワーカー │ │ ワーカー │ │ ワーカー │ │ ノード1 │ │ ノード2 │ │ ノード3 │ │ ┌─────────┐│ │ ┌─────────┐│ │ ┌─────────┐│ │ │スライス1││ │ │スライス3││ │ │スライス5││ │ └─────────┘│ │ └─────────┘│ │ └─────────┘│ │ ┌─────────┐│ │ ┌─────────┐│ │ ┌─────────┐│ │ │スライス2││ │ │スライス4││ │ │スライス6││ │ └─────────┘│ │ └─────────┘│ │ └─────────┘│ └─────────────┘ └─────────────┘ └─────────────┘ ↓ ↓ ↓ データ1/3 データ2/3 データ3/3 【スライス】 ・各ノードは複数のスライスに分割される ・スライスごとに並列処理 ・データはスライス間で分散

🛠️ 2. クラスターの作成

クラスター作成の準備

⚠️ 作成前の確認事項

  • AWSアカウントが必要(STEP 3で作成済み)
  • IAMユーザーに適切な権限があること
  • リージョンを確認(東京リージョン推奨:ap-northeast-1)
  • コストを理解していること(上記参照)

クラスター作成手順(AWSコンソール)

📝 ステップ1:Redshiftコンソールにアクセス

  1. AWSマネジメントコンソールにログイン
  2. サービス検索で「Redshift」と入力
  3. 「Amazon Redshift」を選択
  4. 左メニューから「クラスター」を選択
  5. 「クラスターを作成」ボタンをクリック

📝 ステップ2:クラスター設定

クラスター識別子 例:my-first-redshift
(小文字、ハイフン使用可)
クラスターのタイプ 「無料試用版」を選択
(2ヶ月間、750時間無料。ただしdc2.largeのみ)
ノードタイプ dc2.large(学習用、最安)
160GB SSD、2vCPU、15GB RAM
ノード数 2(最小構成)
1ノードだとMPPの効果が体験できない

📝 ステップ3:データベース設定

データベース名 mydb(デフォルトのまま or 任意)
マスターユーザー名 admin(任意)
マスターパスワード 強力なパスワードを設定
(8文字以上、大文字・小文字・数字を含む)

⚠️ パスワードは忘れないようにメモしておきましょう!

📝 ステップ4:ネットワーク設定(学習用)

  • VPC:デフォルトVPCを選択
  • VPCセキュリティグループ:デフォルトを選択
  • パブリックアクセス可能「はい」を選択
    (学習用。本番環境では「いいえ」推奨)

📝 ステップ5:作成と待機

  1. 「クラスターを作成」ボタンをクリック
  2. ステータスが「作成中」から「利用可能」になるまで待機
    (通常5〜10分程度)
  3. 「利用可能」になったら完了!
【ステータスの遷移】 作成中 → 変更中 → 利用可能 「利用可能」になるまでお待ちください。 コーヒーでも飲みながら待ちましょう ☕

セキュリティグループの設定

🔐 重要:ポート5439を開放する

Redshiftに外部から接続するには、セキュリティグループでポート5439を開放する必要があります。

  1. EC2コンソールを開く(サービス → EC2)
  2. 左メニューから「セキュリティグループ」を選択
  3. Redshiftで使用しているセキュリティグループを選択
    (名前に「redshift」が含まれているもの)
  4. 「インバウンドルール」タブ → 「インバウンドルールを編集」
  5. 「ルールを追加」をクリック
  6. 以下を入力:
    • タイプ:カスタムTCP
    • ポート範囲:5439
    • ソース:マイIP(自分のIPアドレスのみ許可)
  7. 「ルールを保存」

🗄️ 3. テーブル設計の基本

Redshiftのテーブル作成

RedshiftのテーブルはPostgreSQL互換ですが、Redshift固有の設定があります。これらを適切に設定することで、クエリが10倍以上高速になることもあります。

💡 例え話:本棚の整理

【DISTKEY = どの棚に置くか】 ・「著者別」に棚を分ける → 同じ著者の本は同じ棚 ・JOINで使う列を指定 → 関連データが同じノードに 【SORTKEY = 棚の中でどう並べるか】 ・「発売日順」に並べる → 新しい本がすぐ見つかる ・WHERE句で使う列を指定 → 検索が高速に 【効果】 整理されていない本棚:「2025年の村上春樹の新刊は?」→ 全部見る(遅い) 整理された本棚:著者の棚 → 発売日順 → すぐ見つかる(速い)

基本的なCREATE TABLE文

— 最もシンプルなテーブル作成 CREATE TABLE sales ( sale_id INT NOT NULL, sale_date DATE NOT NULL, product_id INT NOT NULL, customer_id INT NOT NULL, amount DECIMAL(10,2) NOT NULL, quantity INT NOT NULL ); — これでも動くが、性能は最適化されていない

💡 CREATE TABLE文の各行を詳しく解説

【行ごとの解説】 CREATE TABLE sales ( ├── CREATE TABLE = 新しいテーブルを作成する命令 └── sales = テーブル名(任意の名前を付ける) sale_id INT NOT NULL, ├── sale_id = カラム名(任意の名前) ├── INT = データ型(整数、-21億〜21億) └── NOT NULL = 空欄禁止(必ず値が入る) sale_date DATE NOT NULL, └── DATE = 日付型(YYYY-MM-DD形式) amount DECIMAL(10,2) NOT NULL, └── DECIMAL(10,2) = 固定小数点数 ├── 10 = 全体の桁数(整数部+小数部) └── 2 = 小数点以下の桁数 例:12345678.99 まで格納可能 ※金額にはDECIMALを使う(FLOATは誤差が出る) quantity INT NOT NULL └── 最後のカラムにはカンマ(,)を付けない ); └── セミコロン(;)でSQL文を終了 【Redshift固有のデータ型】 ┌────────────────┬───────────────────────────────────┐ │ データ型 │ 説明 │ ├────────────────┼───────────────────────────────────┤ │ SMALLINT │ 小さい整数(-32768〜32767) │ │ INT / INTEGER │ 整数(-21億〜21億) │ │ BIGINT │ 大きい整数(-922京〜922京) │ │ DECIMAL(p,s) │ 高精度数値(金額向け) │ │ FLOAT / REAL │ 浮動小数点(科学計算向け) │ │ VARCHAR(n) │ 可変長文字列(最大65535文字) │ │ CHAR(n) │ 固定長文字列 │ │ DATE │ 日付(YYYY-MM-DD) │ │ TIMESTAMP │ 日時(YYYY-MM-DD HH:MM:SS) │ │ BOOLEAN │ 真偽値(TRUE/FALSE) │ └────────────────┴───────────────────────────────────┘

📝 よくある間違いと修正例

【間違い①】最後のカラムにカンマを付けてしまう ❌ quantity INT NOT NULL, ← 余分なカンマ ); ✅ quantity INT NOT NULL ← カンマなし ); 【間違い②】金額にFLOATを使ってしまう ❌ amount FLOAT NOT NULL → 1000.99 + 0.01 = 1001.0000001 になることがある ✅ amount DECIMAL(10,2) NOT NULL → 1000.99 + 0.01 = 1001.00 正確に計算 【間違い③】VARCHARのサイズを忘れる ❌ product_name VARCHAR NOT NULL → PostgreSQLではOKだが、Redshiftではエラー ✅ product_name VARCHAR(255) NOT NULL → 最大255文字まで格納可能 【間違い④】日付文字列をVARCHARで保存 ❌ sale_date VARCHAR(10) NOT NULL → ‘2025-01-15’ 文字列だと集計しにくい ✅ sale_date DATE NOT NULL → 日付関数が使えて集計が簡単

DISTKEY(ディストリビューションキー)

1️⃣ DISTKEYとは

データをどのようにノード間で分散するかを指定します。

— customer_idでデータを分散 CREATE TABLE sales ( sale_id INT NOT NULL, customer_id INT NOT NULL, amount DECIMAL(10,2) NOT NULL ) DISTKEY(customer_id); — 同じcustomer_idのデータは同じノードに保存される — → customersテーブルとJOINする時に高速

DISTKEYの選び方:

  • JOINでよく使うカラムを指定
  • 値が均等に分散するカラム(偏りが少ない)
  • 例:customer_id、order_id、user_id
  • ❌ 避けるべき:日付(偏りやすい)、フラグ(値が少ない)

💡 DISTKEYの効果

【DISTKEYなし(ラウンドロビン分散)】 salesテーブル: ノード1、ノード2、ノード3にランダム分散 customersテーブル: ノード1、ノード2、ノード3にランダム分散 JOIN時:全ノード間でデータを転送(ネットワーク負荷大) 【DISTKEY(customer_id)あり】 salesテーブル: customer_id=1はノード1、customer_id=2はノード2… customersテーブル: customer_id=1はノード1、customer_id=2はノード2… JOIN時:同じノード内でJOIN(ネットワーク転送なし) → 10倍以上高速になることも!

SORTKEY(ソートキー)

2️⃣ SORTKEYとは

データをどの順番で保存するかを指定します。

— sale_date順でデータを保存 CREATE TABLE sales ( sale_id INT NOT NULL, sale_date DATE NOT NULL, amount DECIMAL(10,2) NOT NULL ) SORTKEY(sale_date); — sale_date順でソートされて保存される — → 日付範囲での検索が高速になる

SORTKEYの選び方:

  • WHERE句でよく使うカラムを指定
  • 範囲検索するカラム(日付、数値)
  • 例:sale_date、created_at、order_date、timestamp

💡 SORTKEYの効果

【クエリ例】 SELECT * FROM sales WHERE sale_date BETWEEN ‘2025-01-01’ AND ‘2025-01-31’; 【SORTKEYなし】 ・全データをスキャン(100万件) ・その中から条件に合うものを抽出 ・時間:10秒 【SORTKEY(sale_date)あり】 ・日付順にソートされているので、該当範囲だけスキャン(3万件) ・時間:0.3秒 → 30倍以上高速!

DISTSTYLE(ディストリビューションスタイル)

3️⃣ DISTSTYLEの種類

スタイル 説明 使用場面
KEY 指定したDISTKEYで分散 大きいテーブル、JOINが多い
EVEN 全ノードに均等に分散(ラウンドロビン) JOINしないテーブル
ALL 全ノードに全データをコピー 小さいテーブル(マスタ)

最適化されたテーブル作成例

— ============================================= — 売上テーブル(大きいテーブル、数百万件) — ============================================= CREATE TABLE sales ( sale_id INT NOT NULL, sale_date DATE NOT NULL, product_id INT NOT NULL, customer_id INT NOT NULL, amount DECIMAL(10,2) NOT NULL, quantity INT NOT NULL ) DISTKEY(customer_id) — customersとJOINするので SORTKEY(sale_date); — 日付で絞り込むことが多いので — ============================================= — 商品マスタ(小さいテーブル、数千件) — ============================================= CREATE TABLE products ( product_id INT NOT NULL, product_name VARCHAR(200), category VARCHAR(100), price DECIMAL(10,2) ) DISTSTYLE ALL; — 小さいので全ノードにコピー — どのノードでもJOIN可能 — ============================================= — 顧客マスタ(中規模テーブル、数万件) — ============================================= CREATE TABLE customers ( customer_id INT NOT NULL, customer_name VARCHAR(200), email VARCHAR(200), city VARCHAR(100) ) DISTKEY(customer_id) — salesとJOINするので SORTKEY(customer_id); — プライマリキー順

🔌 4. SQLクライアントでの接続

接続情報の確認

📋 クラスターのエンドポイントを確認

  1. Redshiftコンソールを開く
  2. 作成したクラスターをクリック
  3. 「プロパティ」タブを開く
  4. 「エンドポイント」をコピー
【エンドポイント例】 my-first-redshift.xxxxxxxxxxxx.ap-northeast-1.redshift.amazonaws.com:5439/mydb 【接続情報まとめ】 ・ホスト: my-first-redshift.xxxxxxxxxxxx.ap-northeast-1.redshift.amazonaws.com ・ポート: 5439 ・データベース: mydb ・ユーザー: admin ・パスワード: 作成時に設定したもの

接続方法

1️⃣ クエリエディタv2(推奨:初心者向け)

ブラウザで使える公式のSQLエディタ。一番簡単です。

  1. Redshiftコンソールを開く
  2. 左メニューから「クエリエディタv2」を選択
  3. クラスターを選択して接続
  4. SQLを入力して実行

2️⃣ DBeaver(GUI、無料)

無料のデータベース管理ツール。

  1. dbeaver.ioからダウンロード
  2. 新しい接続 → Amazon Redshift
  3. 接続情報を入力
  4. 接続テスト → OK

3️⃣ psql(コマンドライン)

PostgreSQLのコマンドラインツール。ターミナルから使えます。

# psqlのインストール(Mac) brew install postgresql # psqlのインストール(Ubuntu) sudo apt-get install postgresql-client # Redshiftに接続 psql -h my-first-redshift.xxxxxxxxxxxx.ap-northeast-1.redshift.amazonaws.com \ -p 5439 \ -U admin \ -d mydb # パスワードを入力 Password for user admin: ******** # 接続成功! mydb=> SELECT version(); # 切断 mydb=> \q

4️⃣ Python(プログラム)

# psycopg2をインストール pip install psycopg2-binary –break-system-packages # Pythonコード import psycopg2 # 接続情報 conn = psycopg2.connect( host=’my-first-redshift.xxxxxxxxxxxx.ap-northeast-1.redshift.amazonaws.com’, port=5439, database=’mydb’, user=’admin’, password=’your-password’ # 実際のパスワードに置き換え ) # カーソル作成 cur = conn.cursor() # SQLを実行 cur.execute(“SELECT version();”) result = cur.fetchone() print(f”Redshiftバージョン: {result[0]}”) # テーブル一覧を取得 cur.execute(“”” SELECT tablename FROM pg_tables WHERE schemaname = ‘public’ “””) tables = cur.fetchall() print(f”テーブル一覧: {tables}”) # 接続を閉じる cur.close() conn.close()

💪 5. 実践演習:初めてのテーブル作成

演習1:売上データのテーブルを作成

演習 1 基礎

Redshiftで売上テーブルを作成し、サンプルデータを挿入してみましょう

要件:

  • テーブル名:sales
  • カラム:sale_id、sale_date、product_name、amount、quantity
  • SORTKEYを適切に設定
  • 3件のサンプルデータを挿入

【解答例】

1. テーブル作成

— salesテーブル作成 CREATE TABLE sales ( sale_id INT NOT NULL, sale_date DATE NOT NULL, product_name VARCHAR(200), amount DECIMAL(10,2) NOT NULL, quantity INT NOT NULL ) SORTKEY(sale_date); — テーブル確認 SELECT * FROM pg_tables WHERE tablename = ‘sales’;

2. データ挿入

— サンプルデータ挿入 INSERT INTO sales VALUES (1, ‘2025-01-19’, ‘ノートPC’, 80000.00, 1), (2, ‘2025-01-19’, ‘マウス’, 2000.00, 2), (3, ‘2025-01-20’, ‘キーボード’, 15000.00, 1); — 確認 SELECT * FROM sales; — 実行結果 sale_id | sale_date | product_name | amount | quantity ———|————|————–|———-|———- 1 | 2025-01-19 | ノートPC | 80000.00 | 1 2 | 2025-01-19 | マウス | 2000.00 | 2 3 | 2025-01-20 | キーボード | 15000.00 | 1

3. 集計クエリを実行

— 日付別の売上合計 SELECT sale_date, SUM(amount) as total_sales, SUM(quantity) as total_quantity FROM sales GROUP BY sale_date ORDER BY sale_date; — 実行結果 sale_date | total_sales | total_quantity ————|————-|—————- 2025-01-19 | 84000.00 | 3 2025-01-20 | 15000.00 | 1

演習2:S3からデータをロード(COPY)

演習 2 中級

S3に保存したCSVファイルをRedshiftにロードしてみましょう

要件:

  • S3にCSVファイルをアップロード
  • COPYコマンドでRedshiftにロード
  • ロード後のデータを確認

【解答例】

1. CSVファイルを作成(ローカル)

# sales_data.csvファイルの内容(ヘッダーなし) 1,2025-01-19,ノートPC,80000.00,1 2,2025-01-19,マウス,2000.00,2 3,2025-01-20,キーボード,15000.00,1 4,2025-01-20,モニター,30000.00,1 5,2025-01-21,スピーカー,5000.00,2

2. S3にアップロード

# AWS CLIでアップロード aws s3 cp sales_data.csv s3://my-bucket/redshift/sales_data.csv # または、AWSコンソール → S3 → バケット → アップロード

3. IAMロールの設定(初回のみ)

【IAMロールの作成】 1. IAMコンソール → ロール → ロールを作成 2. 信頼されたエンティティ:AWS サービス → Redshift → Redshift – Customizable 3. ポリシー:AmazonS3ReadOnlyAccess を選択 4. ロール名:RedshiftS3Role 5. ロールを作成 【Redshiftにアタッチ】 1. Redshiftコンソール → クラスター → 選択 2. アクション → IAMロールを管理 3. 作成したロールを追加

4. Redshiftにテーブル作成

— テーブル作成 CREATE TABLE sales_from_s3 ( sale_id INT, sale_date DATE, product_name VARCHAR(200), amount DECIMAL(10,2), quantity INT ) SORTKEY(sale_date);

5. COPYコマンドでロード

— COPYコマンド実行 COPY sales_from_s3 FROM ‘s3://my-bucket/redshift/sales_data.csv’ IAM_ROLE ‘arn:aws:iam::123456789012:role/RedshiftS3Role’ CSV DELIMITER ‘,’ REGION ‘ap-northeast-1’; — ロード結果を確認 SELECT * FROM sales_from_s3; — 件数確認 SELECT COUNT(*) FROM sales_from_s3; — 結果: 5

ポイント:

  • COPYコマンドはINSERT文より100倍以上速い
  • IAM Roleが必要(S3へのアクセス権限)
  • REGIONを指定(S3バケットのリージョン)

⏰ 演習終了後は必ずクラスターを一時停止!

  1. Redshiftコンソールを開く
  2. クラスターを選択
  3. 「アクション」「クラスターを一時停止」
  4. 確認して実行

一時停止中は計算リソースの課金が止まります。再開したい時は「クラスターを再開」。

📝 STEP 12 のまとめ

✅ このステップで学んだこと

  • RedshiftはAWSのクラウド型データウェアハウス
  • クラスターはリーダーノードワーカーノードで構成
  • DISTKEY:JOINでよく使うカラムを指定(データ分散)
  • SORTKEY:WHERE句でよく使うカラムを指定(ソート)
  • 様々な方法で接続可能(クエリエディタ、psql、DBeaver、Python)
  • COPYコマンドでS3から高速にデータをロード

💡 重要ポイント

  • Redshiftは有料サービス。使わない時は一時停止を忘れずに
  • DISTKEYはJOINでよく使うカラム、SORTKEYはWHEREでよく使うカラム
  • 大量データのロードはCOPYコマンドを使う(INSERT文は遅い)
  • 本番環境ではセキュリティ設定を適切に行う(パブリックアクセスOFF)

🎯 次のステップの準備

次のSTEP 13では、「Redshiftへのデータロード」を詳しく学びます。
S3からの効率的なデータロード方法、エラーハンドリングをマスターしましょう!

📝 理解度チェック

問題 1 基礎

Redshiftのリーダーノードとワーカーノードの役割をそれぞれ説明してください。

【解答】

  • リーダーノード
    • クエリを受け取る(窓口)
    • 実行計画を作成(司令塔)
    • ワーカーノードに処理を分配
    • 各ノードの結果を集約
    • 最終結果をクライアントに返す
  • ワーカーノード
    • データを保存
    • 実際のクエリ処理を実行
    • 各ノードが一部のデータを担当
    • 並列で同時に処理
問題 2 基礎

DISTKEYとSORTKEYの違いを説明し、それぞれどのような場合に使うか述べてください。

【解答】

DISTKEY(ディストリビューションキー):

  • 役割:データをノード間でどう分散するかを決定
  • 使う場合:JOINでよく使うカラム
  • :customer_id、order_id、user_id

SORTKEY(ソートキー):

  • 役割:データをどの順番で保存するかを決定
  • 使う場合:WHERE句で範囲検索するカラム
  • :sale_date、created_at、timestamp
問題 3 応用

100万件のデータをRedshiftにロードする場合、INSERT文とCOPYコマンドのどちらを使うべきですか?理由も説明してください。

【解答】

推奨:COPYコマンドを使用

理由:

  • 圧倒的に速い:COPYコマンドはINSERT文の100倍以上速い
  • 並列ロード:複数のワーカーノードで並列処理
  • 効率的:S3から直接ロード、圧縮ファイル対応

パフォーマンス比較:

  • INSERT文(100万件):30分〜1時間
  • COPYコマンド(100万件):1〜3分

❓ よくある質問

Q1: Redshiftの料金はいくらですか?
ノードタイプと台数によります。

dc2.large(学習用):$0.25/時間
dc2.8xlarge(本番用):$4.80/時間
ra3.xlplus(最新):$1.086/時間

最小構成(dc2.large × 2ノード)だと:
$0.25 × 2 × 24時間 × 30日 = 約$360/月(約54,000円)

使わない時は一時停止すれば課金されません。
Q2: Redshiftを一時停止するにはどうすればいいですか?
AWSコンソールから簡単に停止できます。
1. Redshiftコンソールを開く
2. クラスターを選択
3. 「アクション」→「クラスターを一時停止」
4. 確認して実行

一時停止中は計算リソースの料金は発生しませんが、ストレージ料金($0.024/GB/月)はかかります。
Q3: DISTKEYとSORTKEYは必須ですか?
必須ではありませんが、強く推奨されます。

指定しない場合:
・DISTKEY:自動でラウンドロビン分散(EVEN)
・SORTKEY:ソートされない

小規模データ(数千件)なら問題ありませんが、大規模データ(数百万件以上)では性能が大幅に低下します。
Q4: COPYコマンドで「Access Denied」エラーが出ます
IAM Roleの権限が不足しています。以下を確認:

1. IAM Roleが設定されているか:Redshiftクラスターにアタッチされているか確認
2. S3へのアクセス権限:IAM RoleにAmazonS3ReadOnlyAccessポリシーがあるか
3. S3バケットのリージョン:REGIONパラメータを正しく指定しているか
Q5: RedshiftとAthenaの違いは何ですか?
Redshiftはクラスター型、Athenaはサーバーレスです。

Redshift:クラスターを作成、時間課金、高速、頻繁にクエリする場合に最適
Athena:サーバーレス、クエリ課金、やや遅い、たまにクエリする場合に最適

頻繁に分析するならRedshift、たまに分析するならAthenaがおすすめです。
📝

学習メモ

クラウドデータ基盤(AWS・GCP) - Step 12

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE