DEA(AWS Certified Data Engineer - Associate 認定)の勉強を兼ね Redshift を触ろうと、そのメモです。
4つ目のAssociate認定試験として、2024年から新設されましたね。
個人的には、 AWS Certified Database – Specialty は残っても良かったと思うけど、
Redshiftって?
フルマネージドのペタバイト級データウェアハウスサービスです。
準備
とりあえず何かしらデータをということで、ChagGPTにお願いしました。
このcsvファイルをS3にアップロードしておきます。
クラスタの作成
以下以外はデフォルトのまま作成しました。
データベース設定
「管理者パスワードを手動で追加する」にて、設定
IAMロール
S3に対してアクセスが必要
しばらく待ちます。
待つ
5分くらい待ちました。Availableになります。
クエリエディタ起動
クエリエディタv2を使ってS3からデータを集計してみます。
こんな感じのエディタが起動します。
左にあるクラスターを選択するとクラスターへの接続を聞かれますので、ユーザー名とパスワードで接続します。
接続されると以下のようにディレクトリが表示されます。
S3からデータをロード
Data Source を設定
「Load data」を押し、Data sourceを設定します。
File Formatで選択できるものは
フォーマット
オプション
圧縮方法
参考までに
Load from local fileを選択した場合は以下の画面になります。
Table options を設定
今回は新たにテーブルをロードするので、Load new table を選択します。
すると、S3にあるcsvファイルがロード、テーブルスキーマが解析され、以下の通りカラム情報が取得されます。
IAM roleとSchmea Tableを設定し、テーブルを作成します。
作成に成功したらデータをロードします。
クラスタにもテーブルがロードされているのがわかります。
実際にクエリを実行してみる
データのロードに成功したら、元の画面に戻るのでクエリを実行してみます。
全件取得
SELECT * from "everything-its-you";
リリース日指定
SELECT * from "everything-its-you"
WHERE "リリース日" = '1997-02-05';
Everything取得
SELECT * from "everything-its-you"
WHERE "タイトル" LIKE '%Everything%';
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/6965d37b-1a00-af0b-b40b-868cce8d70c6.png)
ミリオンセール??
SELECT * from "everything-its-you"
WHERE "総売上" >= 1000000;
おやっと・・。よく見たらスキーマが間違えていましたね。「初週売上」と「総売上」が文字列扱いされてしまってます。
スキーマを変更して正しく集計されるように
続く