🍊

[AWS]はじめてのAmazon Redshift(アマゾン・レッドシフト)

2021/01/13に公開

やりたいこと

  • AWSのAmazon Redshift(アマゾン・レッドシフト)の概要を理解したい。
  • 簡単な環境を作って触ってみたい。

前提

  • AWSはEC2とかS3などは触ったこと(使ったこと)がある。
  • データウェアハウスやデータレイクが何のために必要なのかをざっくり理解している。
  • SQLとかCSVとかデータの処理や分析に必要な基礎は知っている。

対象

  • Web系のエンジニアで、MySQLとか(RDB)は経験済みだが、Amazon Redshiftが未経験の人。
  • データの集計や分析(アナリスト、サイエンティスト)の業務領域に関わることになった、または興味がある人。
  • AWSのアカウント(個人/会社を問わず)を所有しており、コンソールから各種サービスを起動できる権限がある人。

作業の流れ

  • Amazon Redshift のクラスターを作成する。
  • クエリエディタでデータベースに接続する。
  • SQLでテーブルを作成する。
  • SQLでテーブルにデータをインサートする。
  • SQLでテーブルのデータを表示する。

AWSにおける Amazon Redshift の位置づけ

Amazon Redshift は「分析」に位置づけられる。

Amazon Redshift のダッシュボード

クラスターの作成

画面右上の「クラスターを作成」ボタンを押す。
この時点で「クラスターとは何か?」が分かっていなくても大丈夫です。
触っているうちに分かってきます。

クラスターの作成

クラスター識別子

自分が分かりやすい任意の名前で付ける。ここでは redshift-cluster-yamato210113a とした。

無料トライアル

今回はお試し練習なので「無料トライアル」を選択。

計算された設定の概要

デフォルトのまま特に変更不要。

データベース設定

今回はお試しで触ってみるだけなので、デフォルトのまま特に追加設定や変更をせず進めてみる。

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

今回はお試しで触ってみるだけなので、デフォルトのまま特に追加設定や変更をせず進めてみる。

追加設定

「デフォルトを使用」のまま、特に追加設定や変更をせず進めてみる。

マスターユーザーのパスワード

自分で任意のパスワードを決めて入力してください。

作成実行

画面右下の「クラスターを作成」ボタンを押す。

クラスターの確認

「クラスターを作成」ボタン押下後、クラスターが確認できる。

作成直後は、状態が「作成中」になっている。

5分ぐらい待つと、状態が「Available」になる。

クエリエディタ

クエリエディタでは、SQLを実行できる。
MySQLと同じように、テーブルを作ったり、テーブルにデータをインサートしたり、
そういった操作がSQLで実行できる。

クエリエディタの起動は、画面左側の「エディタ」を押す。
すると「データベースに接続」画面が表示される。

「データーベースに接続」画面にて、先ほど「クラスター作成」で入力した各値を設定して「データベースに接続」ボタンを押す。

  • 接続:新しい接続の作成
  • クラスター:redshift-cluster-yamato210113a
  • データベース名:dev
  • データベースユーザー:awsuser
  • データベースパスワード:先ほど自分で決めたパスワード

すると「クエリエディタ」画面が表示される。

テーブル作成

試しにSQLでテーブルを作成してみる。
Select schema は「public」を選択する。
下記のSQLを入力して「実行」を押す。

  • テーブル名はusers
  • カラムは名前(name)と、メールアドレス(mail)で、いずれも文字列型。
create table users(name varchar(10),mail varchar(10));

実行が完了すると、usersテーブルが作成される。

データのインサート

作成した users テーブルに、データをインサートする。
例として、大和さん、田中さん、二人のレコードをインサートする。

ちなみに、今回はテーブル作成時にカラムを varchar(10) で作成したので、10文字以上は入りません。名前もメールアドレスも10文字以下なら入ります。

insert into users values 
('yamato', 'ymt@aaa.jp'),
('tanaka', 'tnk@bbb.jp');

クエリを実行して問題無ければ Completed が表示されます。

データの表示(セレクト)

usersテーブルの中身を表示する。

select * from users;

SQLを実行すると、下記のように表示される。

まとめ

MySQLなどRDBの経験者なら「Amazon Redshift でもテーブルを作ったりインサートしたりセレクトしたり、同じことができる」というイメージはつかめたと思います。
ただ、これだけならMySQLと同じなので「Amazon Redshiftを使うメリットが分からない」と感じると思います。
今回は基本操作の説明でしたので、ここまでにしますが、
今後、Amazon Redshiftならではのメリットや便利な使い方、MySQLでは出来ないけど、Amazon Redshiftなら出来る、などの深堀も続けていきます。

Discussion