AWS Glue でのブループリントの概要 - AWS Glue

AWS Glue でのブループリントの概要

AWS Glue ブループリントにより、AWS Glue ワークフローを作成ならびに共有する手段が提供されます。複雑な ETL プロセスで、使用できるユースケースが類似している場合には、ユースケースごとに AWS Glue ワークフローを作成する代わりにブループリントを 1 つ作成します。

設計図では、ワークフローに含めるジョブとクローラを指定し、ワークフローを作成するために設計図が実行される際にワークフローのユーザーから提供すべきパラメータも指定します。パラメータを使用することで、単一のブループリントにより、類似したさまざまなユースケースのワークフローを生成できるようになります。ワークフローの詳細については、「AWS Glue のワークフローの概要」を参照してください。

設計図に関するユースケースの例を次に示します。

  • 既存のデータセットを分割する場合。Amazon Simple Storage Service (Amazon S3) のソースならびにターゲットへのパス、およびパーティション列のリストが、設計図への入力パラメータとなります。

  • Amazon DynamoDB テーブルのスナップショットを、Amazon Redshift のような SQL データストア内に作成する場合。ブループリントへの入力パラメータは、DynamoDB テーブル名と AWS Glue 接続となります。このパラメータにより、Amazon Redshift クラスターと送信先データベースを指定します。

  • 複数の Amazon S3 パスの CSV データを Parquet に変換する場合。AWS Glue ワークフローに、パスごとの個別のクローラとジョブを含める必要があります。AWS Glue データカタログ内の送信先データベースと、Amazon S3 パスのコンマ区切りのリストが入力パラメータとなります。この場合、ワークフローが作成するクローラおよびジョブの数は可変であることに注意してください。

設計図のコンポーネント

設計図は、以下のコンポーネントを含む ZIP アーカイブです。

  • Python レイアウトジェネレータスクリプト

    ワークフローのレイアウト (ワークフロー用に作成するジョブとクローラ、ジョブとクローラのプロパティ、およびジョブとクローラの依存関係) を指定する関数が含まれています。この関数はブループリントのパラメータを受け取り、AWS Glue がワークフロー生成のために使用するワークフロー構造 (JSON オブジェクト) を返します。ワークフローの生成には Python スクリプトを使用するので、ユースケースに適した独自のロジックを追加できます。

  • 設定ファイル

    ワークフローのレイアウトを生成する Python 関数の完全な修飾名を指定します。スクリプトで使用されるすべての設計図パラメータの名前、データタイプ、およびその他のプロパティも指定します。

  • (オプション) ETL スクリプトとサポートファイル

    高度なユースケースとして、ジョブで使用する ETL スクリプトの場所をパラメータ化できます。ZIP アーカイブにジョブスクリプトファイルを含め、スクリプトのコピー先となる Amazon S3 ロケーションを設計図パラメータとして指定できます。レイアウトジェネレータスクリプトは、指定された場所に ETL スクリプトをコピーし、そのコピー先をジョブスクリプトの場所プロパティとして指定します。スクリプトで処理するための、ライブラリやその他のサポートファイルを含めることもできます。


   [Blueprint] (設計図) のラベルが付いたボックスには、[Python Script] (Python スクリプト) というラベルが付いたボックスと、[Config File] (設定ファイル) というラベルが付いた、類似のボックスが 2 つ含まれます。

設計図の実行

ブループリントからワークフローを作成する際には、AWS Glue がそのブループリントを実行します。ブループリントにより、ワークフローを作成するため、ならびに、そのワークフローがカプセル化するジョブ、クローラ、トリガーを作成するための、非同期プロセスが開始されます。AWS Glue は、ブループリントの実行を使用して、ワークフローとそのコンポーネントの作成をオーケストレートします。設計図の実行ステータスを表示すると、作成プロセスのステータスを知ることができます。設計図の実行では、設計図パラメータに指定した値の保存も行われます。


   [Blueprint run] (設計図実行) というラベルの付いたボックスに、[Workflow ] (ワークフロー) および [Parameter Value] (パラメータ値) のラベルが付いたアイコンが表示されます。

ブループリントの実行は、AWS Glue コンソールまたは AWS Command Line Interface (AWS CLI) を使用して表示できます。ワークフローを表示またはトラブルシューティングする場合には、いつでも設計図の実行に戻り、ワークフローの作成に使用された設計図のパラメータ値を確認できます。

設計図のライフサイクル

ブループリントは、AWS Glue により開発、テスト、登録が行われ、これを実行することでワークフローが作成されます。設計図のライフサイクルには、通常 3 つのペルソナが関与します。

ペルソナ タスク
AWS Glueデベロッパー
  • ワークフローレイアウトのスクリプトを記述し、設定ファイルを作成します。

  • AWS Glue によって提供されるライブラリを使用して、ブループリントをローカルでテストします。

  • スクリプト、設定ファイル、およびサポートファイルを含む ZIP アーカイブを作成し、Amazon S3 内のロケーションでそのアーカイブを公開します。

  • バケットオブジェクトに対する読み取り許可を、AWS Glue 管理者の AWS アカウントに付与するバケットポリシーを、Amazon S3 バケットに追加します。

  • Amazon S3 にある ZIP アーカイブに対する、読み取りのための IAM 許可を、AWS Glue 管理者に付与します。

AWS Glue 管理者
  • AWS Glue とのブループリントを登録します。AWS Glue は、ZIP アーカイブのコピーを予約された Amazon S3 の場所に作成します。

  • 設計図に対する IAM アクセス許可をデータアナリストに付与します。

データアナリスト
  • 設計図を実行したワークフローの作成と、設計図パラメータ値の指定を行います。設計図の実行ステータスをチェックして、ワークフローとワークフローコンポーネントが正常に生成されたことを確認します。

  • ワークフローを実行し、トラブルシューティングします。ワークフローを実行する前に、ワークフローのデザイングラフを AWS Glue コンソールに表示し、そのワークフローを検証します。