Amazon Redshiftのチュートリアルをやってみた!

2020.04.16

最近Redshiftを触る機会があり、こちらのチュートリアルをやってみました。

以前 AWS Certified Big Data Specialty を取得する際に勉強しましたが、だいぶ忘れていたので備忘録も兼ねてブログ化したいと思います。

※個人的にわかりやすい手順にまとめているので、実際のステップと異なる部分がありますが、ご了承ください。

IAM Roleを作成する

まずRedshiftがS3からソースデータをコピーしてくるために必要なロールを作成します。

AWSコンソールのIAM Roleの作成ページで以下を選択します。

  • ユースケースを選択
    • Redshift - カスタマイズ可能
  • アクセス許可ポリシーのアタッチ
    • AmazonS3ReadOnlyAccess
  • ロール名
    • 任意(本ブログではmyRedshiftRoleと入力)

Redshift クラスターを作成する

Redshiftのクラスターを作成していきます。

Redshiftのページで「クラスターの作成」を選択します。

  • クラスター設定

  • データベース設定

  • ネットワークとセキュリティ

今回はローカルのアプリケーションから直接Redshiftに繋ぐので、パブリックアクセスを有効化します。

※クイック起動では、デフォルトVPCが使用されます。​デフォルトVPCがない場合は、作成できるのでこちらを参考にすると良いかと思います。

  • クラスターのアクセス許可(オプション)

先ほど作成したIAM Roleをここで追加します。RedshiftがS3のデータをロードするために必要です。

Redshift クラスターへのアクセスの許可

デフォルトではRedshiftへのアクセス許可がされてないので設定します。

  • セキュリティグループのインバウンドルールを追加

クライアントアプリケーションをインストール

今回はSQL Workbench/Jを介してクラスターに接続します。

SQL Workbench/Jのインストールはこちらを参考にしてください。

Amazon Redshift JDBCドライバーのダウンロードはこちらを参考にしてください。

JDBCドライバーは、

SQL クライアントツールまたはアプリケーションで使用されている JDBC API のバージョンに応じて、次のいずれかをダウンロードします。不明な場合は、JDBC 4.2 API ドライバーの最新バージョンをダウンロードします。

とのことなので、とりあえず最新のJDBC 4.2 API ドライバーをダウンロードします。

ダウンロード後は、~/sqlworkbench配下にドライバーを移します。

Redshift クラスターに接続

SQL Workbench/Jを立ち上げ、実際にRedshiftへの接続を試します。

  • Manage Driverで先ほどのドライバーを読み込む

  • Create New Connectionで新しく接続プロファイルを作成

注意点として、Autocommitは忘れず有効化しておきましょう。

OKボタンを押してエラーにならなければ接続完了です。

S3にサンプルデータを保存

チュートリアルで使うサンプルデータをS3に保存します。

こちらからデータをダウンロードし、S3バケットに保存します。

サンプルデータをRedshiftにロード

S3のサンプルデータをRedshiftにロードして、クエリを発行してみます。

SQLの詳細などは、公式ドキュメントのステップ6を参考にしてください。

  • Redshiftにテーブル作成

  • Copyコマンドを実行

  • SQLを実行

あとは自由にクエリを発行して、いろいろ試してみるのが良いと思います。

また、クエリの実行結果の詳細はナビゲーションメニューでの「クエリ」→「クエリとロード」から確認することがでます。

クエリの実行結果を分析するにはこちらの機能が役立つと思います。

環境のリセット

最後は忘れずにゴミ掃除しましょう。

スナップショットは残しておくと課金が発生するので、不要な場合はチェックボックスを外しましょう。

まとめ

いかがだったでしょうか。

今更感がありますが、Redshift初心者の方の参考になればと思います。

Amazon Athenaでもそうでしたが、SQL Workbench/Jは便利でとても重宝します。

以上、おつかれさまでした。