Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Redshiftハンズオン:SpectrumでS3分析/Athenaとの使い分け

Avatar for maijun maijun
September 04, 2025

Amazon Redshiftハンズオン:SpectrumでS3分析/Athenaとの使い分け

Amazon Redshiftの基礎と実践をハンズオン形式で整理。SpectrumでS3を読み込みます。またAthenaとの使い分けの考え方もまとめています。

なおXやYoutubeでライブ配信した際の資料となります。
https://x.com/i/broadcasts/1yNGabzleegJj

Avatar for maijun

maijun

September 04, 2025
Tweet

More Decks by maijun

Other Decks in Education

Transcript

  1. 自己紹介 トレノケート株式会社 所属 2000-2022 年まで那覇にある専門学校で働いてました! 現在は、AWS やOCI のインストラクターしてます 主戦場はTwitter (あえてX

    とは言わない) 最近の推しは # びっくえんじぇる です # 好きなラーメンは二郎系 久保玉井純 くぼたまいじゅん @maijun2 2
  2. Agenda Amazon Redshift とは? Amazon Redshift のハンズオン Redshift Spectrum で

    S3 にあるデータを読み込む Amazon Redshift と Amazon Athena の違い アドホックとは? なぜ Redshift Spectrum を使うのか? まとめ 3
  3. Amazon Redshift とは? AWS が提供する フルマネージド型データウェアハウス 大規模データを高速に分析できるよう最適化 SQL ベースで操作でき、既存のBI ツールとも統合可能

    特徴 スケーラブル(ペタバイト級データに対応) カラム型ストレージ & 圧縮でコスト効率的 S3, Aurora, DynamoDB などと連携可能 4
  4. Amazon Redshift のハンズオン Redshift Spectrum で S3 にあるデータを読み込む 1. 環境変数設定

    2. Redshift に接続 3. DB としてスキーマ登録 4. S3 のデータを読み込みテーブル登録 5. テーブル内容をSQL で確認する 5
  5. 1. 環境変数設定 接続する Redshift のエンドポイントや S3 データを読み込む際の権 限でIAM ロールを見せたくない export

    PGHOST='接続するRedshiftのエンドポイントを指定' export REDSHIFT_ROLE_ARN="Redshift が S3接続する際に利用する IAM ロール" 後工程の接続時に上記環境変数指定しちゃえばよい! 6
  6. 2.Redshift に接続 設定した環境変数使って、Redshift に psql で接続する psql -U dbadmin -h

    $PGHOST -d lab -p 5439 -v iamrole="$REDSHIFT_ROLE_ARN" -v iamrole の部分が psql コマンド実行する際に使える。 つまり環境変数の内容が SQL 文に引き渡される 7
  7. 3.DB としてスキーマ登録 外部情報としてDB 登録する。登録されていたら削除して再登録する DROP SCHEMA IF EXISTS spectrum CASCADE;

    CREATE EXTERNAL SCHEMA spectrum FROM DATA CATALOG DATABASE 'データベース名' IAM_ROLE :'iamrole' CREATE EXTERNAL DATABASE IF NOT EXISTS; 登録されたか確認 SELECT * FROM svv_external_schemas; 8
  8. 4. S3 のデータを読み込みテーブル登録 S3 のデータを登録。登録されていたら削除して再登録する DROP TABLE IF EXISTS データベース名.テーブル名;

    CREATE EXTERNAL TABLE データベース名.テーブル名( ここでカラム情報を設定する。例えば・・・ Trade_Date VARCHAR(15) ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION 's3://データの置き場所を指定/'; 9
  9. 5. テーブル内容をSQL で確認する 登録されたか確認するために各種 SQL 文を実行してみる # 外部DB内にテーブルあるか確認 SELECT schemaname,

    tablename, location FROM svv_external_tables; # テーブルに何件データあるかカウントする SELECT count(*) as count_lows FROM データベース名.テーブル名; # テーブル内のデータを条件指定で抽出してみる SELECT * FROM データベース名.テーブル名 WHERE 抽出条件 ORDER BY 並べ替え指定; 10
  10. Redshift と Athena の違い 特徴 Amazon Redshift Amazon Athena 形態

    データウェアハウス サーバーレスな クエリサービス 保存場所 Redshift クラスタ内 S3 上のデータ ユースケース 大規模・継続的な分析処理 アドホック分析、ログ解析 パフォーマンス 高速・安定(専用クラスタ) データ形式・サイズに依存 コストモデル クラスタ稼働時間ベース クエリ実行ごとに課金 11
  11. Redshift Spectrum を使う意義 1 つのRedshift クラスターで統合分析 クラスタ内データ(DWH )と S3 のデータを同じSQL

    で結合可 結果をそのままRedshift テーブルに連携可能 ETL やBI との親和性 Tableau / QuickSight / BI ツールで Redshift を「統合窓口」として利用しやすい Redshift を中心に据えてDWH 基盤を構築するなら   Spectrum が有効 14