■ はじめに
https://dk521123.hatenablog.com/entry/2020/04/07/124519
https://dk521123.hatenablog.com/entry/2020/02/22/002139
の続き。 QWIK Labs にある講座「Introduction to Amazon Redshift (日本語版)」 が無料でハンズオンラボを受けられるので、こちらをやりながら勉強してみる
https://amazon.qwiklabs.com/?locale=ja
目次
【0】今回、体験すること 【1】Redshift クラスタを作成する 【2】Redshift クラスタにデータをロードする 【3】Redshift クラスタに対して、クエリを発行する 【4】おまけ:テーブルのリネーム 【Z】やってみた感想
【0】今回、体験すること
1)Redshiftクラスタを構築 2)S3内のファイルをCOPYコマンドによりデータをロード 3)SQLコマンドにより、データを取得する
構成図
S3 = COPY command => Redshift <= SQL = User
【1】Redshift クラスタを作成する
Redshift クラスタを作成して、起動する。
メモ
「クラスターを作成する」ボタン押下し、 ラボに従って行えれば、特にはまらずにできる。 (必要なIAMやVPCの設定は既に用意してあるので楽だが 実際に自分で構築した場合は、この辺が大変そう)
【2】Redshift クラスタにデータをロードする
Redshift クエリ エディタ(っという名のRedshift のWebクライアント)を 起動し、以下を行う。 ⇒ 左ペインの「エディタ」ってのがどこか分からかった。 1)CREATEテーブル発行 2)COPY発行 * COPYコマンドに関する詳細は、以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2021/07/21/214248
CREATE TABLEの一部
CREATE TABLE users (userid INTEGER NOT NULL, username CHAR(8), firstname VARCHAR(30), lastname VARCHAR(30), ... 略 ... likeopera BOOLEAN, likerock BOOLEAN, likevegas BOOLEAN, likebroadway BOOLEAN, likemusicals BOOLEAN );
COPYコマンド例
COPY users FROM 's3://your-backet/xxxx/allusers_pipe.txt' CREDENTIALS 'aws_iam_role=arn:aws:iam::XXXXXXXXXXXXX:role/XXXXX-Role' DELIMITER '|';
【3】Redshift クラスタに対して、クエリを発行する
【2】のSQL文発行の流れでSELECT文を実行すればいいだけ。
【4】おまけ:テーブルのリネーム
ALTER TABLE db_name.hello_world RENAME TO hello_world_backup; -- RENAME TO db_name.hello_world_backup; -- で、DB名を指定するとエラーになった。
【Z】やってみた感想
Redshift を無料で体験できるのは嬉しいが 今回やった内容だけでは、RDS(PostgreSQL)でも できるようなことなので、Redshiftならではな体験をしたかった。 この辺は、有料だが「Working with Amazon Redshift(日本語版)」で体験できそう。
関連記事
Amazon Redshift ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/04/07/124519
Amazon Redshift ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/22/002139
Amazon Redshift ~ COPY コマンド ~
https://dk521123.hatenablog.com/entry/2021/07/21/214248
Amazon Redshift ~ SHOW TABLE コマンド ~
https://dk521123.hatenablog.com/entry/2023/03/07/152123
Amazon Redshift ~ システムビュー ~
https://dk521123.hatenablog.com/entry/2023/03/06/184928
Hiveテーブルデータ を Redshift に移行するには
https://dk521123.hatenablog.com/entry/2021/09/01/200818
Glue/Python から Redshift に接続することを考える
https://dk521123.hatenablog.com/entry/2020/08/26/193237
Glue/Spark から Redshift にデータ追加することを考える
https://dk521123.hatenablog.com/entry/2020/09/23/111741
EXPLAINステートメント
https://dk521123.hatenablog.com/entry/2020/08/30/000000