本ページは、AWS に関する個人の勉強および勉強会で使用することを目的に、AWS ドキュメントなどを参照し作成しておりますが、記載の誤り等が含まれる場合がございます。

最新の情報については、AWS 公式ドキュメントをご参照ください。

抽出、変換、ロード (ETL) プロセスの検出、準備、統合、近代化(モダナイゼーション)を容易にするサーバーレスデータ統合サービスです。

近代化(モダナイゼーション)とは、単にツールを新しくするだけでなく、データ統合のプロセス全体をよりスケーラブルで、管理しやすく、コスト効率の良いものに変革することを意味し、AWS Glueは、これらの「近代化」を実現するためのマネージドサービスです。

glue-concept

(引用元:AWS Glue の概念

1.1. 公式ドキュメント

AWS Glueを理解する公式ドキュメントは次のとおりです。

AWS Glue の開始方法

getting-started

AWS Glue サービス概要

AWS Glue ドキュメント

AWS Glue よくある質問

AWS Glue の料金

1.2. 学習リソース

【AWS Black Belt Online Seminar】AWS Glue(YouTube)(0:55:30)

glue-1

AWS Glue【AWS Black Belt】(0:41:53)

glue-2

[AWS Black Belt Online Seminar]猫でもわかる、AWS Glue ETLパフォーマンス・チューニング 基礎知識編(0:34:22)

glue-3

[AWS Black Belt Online Seminar]猫でもわかる、AWS Glue ETLパフォーマンス・チューニング 後編(0:34:47)

glue-4

【AWS Black Belt Online Seminar】AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-(0:57:13)

glue-5

【AWS Black Belt Online Seminar】AWS Glue DataBrew(0:56:49)

glue-6

1.3. ワークショップ

1.4. Glue導入のメリット

AWS Glueを導入する主なメリットは以下の3つです。

  1. サーバーレス
    • インフラ構築・管理が不要
    • 必要な時に分析環境を使用可能
    • スケーラブルな処理基盤
  2. 運用負荷の軽減
  1. ビジネス価値への集中

1.4. 主なユースケース

Glueの主要な機能は次のとおりです。

2.1. データカタログ

データの場所やスキーマといったメタデータ管理する機能です。

データカタログは、データベースとテーブルというオブジェクトから構成されます。データベースは、データカタログを論理的にグループ化したものと言えます。 例えば、次のようなグループ化の方法があります。

  1. データ環境別のグループ化
    • raw_database: 生データ
    • staging_database: 加工途中のデータ
    • analytics_database: 分析用に整形済み
  2. ビジネス部門別のグループ化
    • sales_database: 営業部門のデータ
    • marketing_database: マーケティング部門のデータ
    • finance_database: 経理部門のデータ

テーブルは、データの場所やスキーマの情報が格納されています。 実際に格納されている情報はマネジメントコンソールで確認できます。 CloudTrailが出力したログのテーブルは次のようになっています。

data-catalog-sample-00data-catalog-sample-01data-catalog-sample-02

テーブルはバージョン管理されていて、過去のバージョンとの比較もできます。

data-catalog-sample-03

コンソールでのバージョン比較はこのように確認できます。

data-catalog-compare-01

データカタログを利用できるAWSサービスは次のようなものがあります。

データカタログの利用イメージ(引用:Blackbelt)

catalog

2.2. クローラー

メタデータをデータカタログに登録・更新する機能です。 定期的に実行することで、スキーマの自動更新が可能になります。

スケジュールは、オンデマンドで実行するか、定期的に実行するかを選択できます。 Hourlyなど簡単な設定方法や、cron形式で詳細な実行スケジュールを作成することもできます。

crawler-schedule

クローラーを定期的に実行させることで、新しいデータやスキーマの変更を検知できます。

クローラーが取得可能なデータソースは、ドキュメントによると次のようなものがあります。

crawler-datasource

標準でサポートしていないデータソースは、AWS Marketpkaceから取得するか、独自でカスタムコネクタを作成することができます。

2.3. ETLジョブ

ジョブとは、データソースに接続してデータターゲットに出力する処理を実行するものです。

ジョブの種類は以下のとおりです。

※15分以内に処理が完了でき、小規模な処理であればAWS Lambdaの利用も検討する。

2.3.1. DPU とワーカー

ジョブには、DPU とワーカーというものがあります。

2.4. Glue Studio

Glue Studioを使えば、GUIベースでETLジョブを構築することや、ジョブの実行、監視設定を行うことが可能です。

studio

2.5. ワークフロー

ETLジョブ、クローラーを自動化し、データカタログ出力までの一連の処理をGUIで管理する機能です。

glue-workflow

AWSには、ワークフロー系のサービスはほかにもあります。

3.1. ブックマーク機能

ETLジョブを実行する場合、処理済みデータを記録し、差分抽出を可能にする機能です。 job.init()でブックマークの情報を取得し、job.commit()が呼び出されたときに状態を記録します。 そのため、ジョブスクリプトからjob.commit()が呼び出されていないと、ブックマーク機能を正常に利用できないことになります。

参考:エラー : ジョブのブックマークが有効なときにジョブがデータを再処理しています

3.2. Glue Streaming

Glueはもともとバッチ処理に特化したETLサービスという特徴があります。ただ、Glue Streamingを使うことで、準リアルタイム処理が可能になります。

具体的なユースケースは次のとおりです。詳細については、ドキュメントをご参照ください

例えば、Amazon Kinesis Data StreamsとAWS Glue Streamingを連携することで準リアルタイムのデータ処理が実現できます。 Kinesis Data Streamsがデータソースとできるサービスと組み合わせることで、さまざまなユースケースに対応することができます。

3.3. Glue DataBrew

データのクリーニング、正規化、変換のためのフルマネージド型のビジュアルデータ準備サービスです。 null の削除、欠損値の置き換え、スキーマの不整合の修正、関数に基づく列の作成などが実施できます。

DataBrewは、S3に保存された以下のデータフォーマットをサポートしています。

3.4. ゼロETL統合

ETLのジョブやワークフローは大きな運用負荷が伴います。このようなものを極力抑えるようにできるのが、ゼロETL統合です。 ETLの要件によっては、完全になくすことができる可能性があります。

GlueのゼロETLのデータソースとして、主に次のようなものがあります。 参考:ゼロ ETL 統合

GlueのゼロETLのデータターゲットとして、主に次のようなものがあります。

3.5. Glue Data Quality

データレイクのデータに対して、ユーザーが定義したルールに従って品質を自動的に測定し、統計などを表示してくれるマネージドサービスです。 これによって、データの変化を監視し、予想外の値が入ってくることを検知できます。

dataquality

AWS Glue Data Quality サービス概要

データ品質定義言語 (DQDL) を用いてカスタムルールを定義することによって、データの品質をチェックすることができます。

具体的には次のような記述を行うことでデータをチェックできます。詳細は、データ品質定義言語 (DQDL) リファレンスを参照してください。

Rules = [
   IsComplete "order-id",
   IsUnique "order-id"
]

以下の動画では、AWS Glue Data Qualityがどのようにデータ品質を管理するかについての基本的な説明や主要な機能について説明されています。 Measure and Monitor Data Quality of your Datasets in AWS Glue Data Catalog(YouTube) | Amazon Web Services

data-quality

4.1. AWS Lake Formationとの連携

glue-lake-formation

Lake Formationを利用すると、Glueが作成したデータカタログに対して詳細なアクセスコントロールを行うことができます。

具体的には、以下のアクセス管理を行うことができます。

アクセス管理の方法は、次の2つの方法があります。

詳細については、Lake Formation 許可の管理を参照してください。

4.2. コスト管理

コスト最適化については、スキャンするデータ量を最小限にすることと、処理時間に見合うサービス選択を意識することが重要であると考えます。 具体的には、以下のようなポイントを考慮します。

また、コスト最適化については以下のAWSブログ記事をご参照ください

AWS Glue for Apache Spark のコストのモニタリングと最適化

4.3. モニタリング

AWS Glue のモニタリングは、以下のツールを利用することで実現できます。

4.4. セキュリティ

AWS Glueは、モダンなデータ統合基盤として、以下の特徴を提供します。

これらの機能により、より価値の高いデータ分析に注力できる環境を実現できます。

詳しい内容については、AWS公式ドキュメントやAWS Black Belt Online Seminarをご参照ください。