AWS エバンジェリストシリーズ AWSの基礎を学ぼう
座学パート
Amazon Redshift
https://aws.amazon.com/jp/redshift/
- カラムナ型データベース
- JDBCでの接続も可能
- 魔改造されたPostgreSQLのような印象で取り扱う
- 独自のカスタマイズを加えている
詳しく知りたい方 ▶ フューチャー技術ブログ - Amazon Redshiftの仕様を調べてみた
AWS Glue
https://aws.amazon.com/jp/glue/
- サーバレスETL(Exact, Transform, Load)
- 取り出し
- 加工
- 転送(取り込み、保存)
- 以前の課題
- ウォームアップインスタンスからインスタンスを取り出して10分程度時間を要していたが現在は1分程度になった
- Pythonの知識が必要だったが、Glue StudioやAWS Glue DataBrewでGUIでの操作が可能になった
- データカタログ
- ETL処理を行う際に、srcがデータベース以外の非構造データ(S3 objectなど)をテーブルとして見せる必要がある
Amazon Athena
https://aws.amazon.com/jp/athena/
- SQLで確認が可能 Amazon Athena の SQL リファレンス
- 内部で稼働しているエンジンは Presto
- 以前はS3が中心だったが、Amazon Athena Federated QueryによりJDBC、ODBCで対応するデータソースも利用可能になった
Amazon S3 Select
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/selecting-content-from-objects.html
- S3上でObjectを直接参照(Parquet、CSV、JSON...)
ハンズオンパート
- https://github.com/harunobukameda/Amazon-Redshift-Spectrum-AWS-Glue-Amazon-Athena-Amazon-S3-Select
(もしこのブログを見て実施される方で、GitHubアカウントをお持ちの方は上記のリポジトリからForkしてください)- 実施環境(Region)はN.Virginia, Tokyoを推奨
まとめ
本日はRedShiftの復習(更新に追いつけていない)のため、参加を目的としていました。
「あれ、こんな設定あったけな?」が復習できたのでよかったです。
Glue、Athenaについては個人的に過去ハマったときにいろいろと学びました。
当時、AWS ClientVPNで接続してきたユーザがDirectConnectで接続しているオンプレミスの環境へアクセスした際に、
どういう通信を行っているのかを調査する必要が出てきたので、VPC Flowlogsを設定しました。
しかし、数日経ってデータが溜まっているであろう状態で見たところ、Athenaで参照できないことが分かり調査したところ、
VPC Flowlogsを設定した際に自動で作るCLoudFormationの定義が足りておらず、
Amazon Athena でのパーティション射影を使って、
同一テーブル上、Athenaでパーティションを自動生成していくことでスキャン効率を上げる方法を取りました。
参考
他、ワークショップはこちら。
GlueもGlue StudioやGlue DataBrewが出てきたことで楽になっています。
近々別イベントも予定されています。