[AWS]はじめてのAmazon Redshift(アマゾン・レッドシフト)
やりたいこと
- 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