AWS Glue
# AWS Glue
https://d1.awsstatic.com/webinars/jp/pdf/services/20190806_AWS-BlackBelt_Glue.pdf
## データ分析
- プロセス
- 収集
- 保存
- 過去では、データ収集の際にETL処理を行い、分析しやすい状態にしていた
- 現在では、データレイクに生データをそのまま保存し、分析する前に前処理を実施している
- 分析
- 活用
- AWS Glueとは
- 様々なデータソースのメタデータを管理する、フルマネージドでサーバーレスなETLサービス
- 特徴
- 構成要素
- データカタログ
- Apache Hive メタストア互換のメタデータリポジトリ
- 実データとは別に表の定義だけ格納する仕組み
- 実データはHDFSやS3などに保存する
- 複数のデータソース
- メタデータをRedshift, Athena, EMR と連携可能
- クローラー
- スキーマ管理
- 接続管理
- データをクロールする際のアクセス方法
- S3
- DynamoDB
- JDBC
- サーバレスエンジン
- ジョブ
- Worker Type
- Glue 内のSpark ジョブに割り当てるワーカーのタイプを変更可能に
- DPU という単位(4vCPU, 16GB)
- DynamocFrame
- SparkSQL DataFrame と似たGlue特有の抽象化の概念
- ETLに特化している
- DynamicFrame はデータ全体を表し、DynamicRecord はデータ一行を表す
- DataFrame と DynamicFrame 間でそれぞれ変換することができる
- Choice 型
- ブックマーク機能
- ジョブの実行状態を保持する機能
- サーバーレスETL処理の使い分け
- 独自ライブラリの利用
- スケジューリング
- ワークフロー作成機能
## 開発
- ETLジョブのコードを開発・実行する環境
- SageMaker Notebook
## ネットワーク・セキュリティ・監視
- Glue からVPC Endpoint 経由で他のサービスにアクセス
- Glue からVPC Endpoint 経由でVPC Peering を通して他のVPCリソースへアクセス
- セキュリティグループ
- Glue 内のアクセス許可
- Glue 内で管理するアクセスポリシー
- データカタログリソースへのアクセス制御
- データカタログに対するクロスアカウント・クロスリージョンのアクセス制御
- 暗号化
- データカタログ、接続パスワードのKMSを利用した暗号化
- モニタリング
## ユースケース
- データカタログを用いたメタデータ管理
- EMR/Athena/Redshift Spectrum を利用する際のメタデータ管理に利用
- ジョブによるSQLの定期実行
- トリガー・Python Shell を用いてRedshift に定期クエリを実行し、データの加工を行う
- WorkFlow 機能を用いたETLパイプライン
- WorkFlow 機能を用いて単一ジョブではなく、複数ジョブを組み合わせて実行する
- サーバーレスアナリティクス
- Glueのデータカタログを利用する
- SparkSQL を用いて標準SQLでSageMaker Notebook を用いて分析を行う
- データレイクを用いたログ分析基盤
- スピードレイヤ・バッチレイヤを活用したログ分析基盤
- アーキテクチャ
- Glue とSageMaker を用いた機械学習基盤
- Glue WorkFlow を利用したETL・機械学習のワークフロー
## まとめ
## 雑感
機械学習や分析をする際にデータレイクのデータはそのままでは利用できない。それを可能にするためにデータカタログを作成する必要がある。Glue はETL処理を行い、他のAWSサービスが分析をできるようにするサービス。
ただ、これだと部分的にしかできずに他のサービスのセットアップも必要になる。そこでAWS LakeFormation がある。
課金はETL処理をするためのリソースと各種サービスの料金がかかる。