チュートリアル: AWS Glue Studio の開始方法 - AWS Glue Studio

チュートリアル: AWS Glue Studio の開始方法

AWS Glue Studio を使用して、データソースから構造化データまたは半構造化データを抽出し、そのデータの変換を実行して、結果セットをデータターゲットに保存するジョブを作成できます。

このチュートリアルでは、ソースおよびターゲットとして Amazon S3 を使用して、AWS Glue Studio でジョブを作成します。これらのステップを実践することにより、ビジュアルジョブエディタにおける、ビジュアルジョブの作成方法と、コンポーネントであるノードの編集方法について学ぶことができます。

次の方法について説明します。

  • データソースノードをデータソースに設定します。このチュートリアルでは、データソースを Amazon S3 に設定します。

  • 変換ノードを適用して編集します。このチュートリアルでは、ApplyMapping 変換をジョブに適用します。

  • データターゲットノードを設定します。このチュートリアルでは、データターゲットを Amazon S3 に設定します。

  • ジョブスクリプトを表示および編集します。

  • ジョブを実行し、ジョブの実行の詳細を表示します。

前提条件

このチュートリアルには、次のような前提条件があります。

  • アクティブな AWS アカウントがあります。

  • AWS Glue Studio にアクセスできます。

  • アカウントには、Amazon S3 データソースとデータターゲットのジョブを作成および実行するために必要なすべてのアクセス許可があります。詳細については、「AWS Glue Studio のセットアップ」を参照してください。

AWS CloudFormation スタックを起動する

AWS CloudFormation スタックには、このチュートリアルを完了するために必要なすべてのリソースが含まれています。

  1. AWS CloudFormation スタックを起動してこのチュートリアル用のリソースを作成するには、以下のボタンをクリックしてから、手順に従ってプロセスを完了します。

  2. 名前を挙げて。AWS CloudFormationスタックCreateJob チュートリアル

  3. 次に、[I acknowledge that AWS CloudFormation might create IAM resources with custom names] ( によってカスタム名がついた IAM リソースが作成される場合があることを承認します) オプションを選択します。

  4. [Create stack] を選択します。

このスタックを起動すると AWS リソースが作成されます。AWS CloudFormation 出力に示される以下のリソースは、次のステップで必要なものです。

  • Key - 説明

  • AWS Glue StudioRole - AWS Glue ジョブを実行する IAM ロール

  • AWS Glue StudioAmazon S3Bucket - ブログ関連のファイルを保存する Amazon S3 バケットの名前

  • AWS Glue StudioTicketsYYZDB – AWS Glue データカタログデータベース

  • AWS Glue StudioTableTickets - ソースとして使用するデータカタログテーブル

  • AWS Glue StudioTableTrials - ソースとして使用するデータカタログテーブル

  • AWS Glue StudioParkingTicketCount - 送信先として使用するデータカタログテーブル

ステップ 1: ジョブ作成プロセスを開始する

このタスクでは、テンプレートを使用してジョブ作成を開始することを選択します。

ジョブを作成するには、テンプレートから開始
  1. AWS Management Console にサインインして、AWS Glue Studio コンソール (https://console.aws.amazon.com/gluestudio/) を開きます。

  2. AWS Glue Studio ランディングページで、[Create and manage jobs] (ジョブの作成と管理 ) の見出しの下にある [View jobs] (ジョブの表示) を選択します。

    
            スクリーンショットは、[Create and manage jobs] (ジョブの作成と管理) セクションが強調表示された AWS Glue Studio のランディングページを示しています。
  3. [Jobs] (ジョブ) ページの見出し [Create job] (ジョブの作成) の下で、次のオプションがデフォルトで選択されます。

    • ソースとターゲットを示すビジュアル

    • ソース: Amazon Simple Storage Service

    • ターゲット: Amazon Simple Storage Service

  4. [ Create] (作成) を選択して、ジョブ作成プロセスを開始します。

ジョブ編集ページが開き、単純な 3 ノードのジョブ図が表示されます。   


        スクリーンショットは、さまざまなコンポーネントを含むジョブ編集ページを示しています。
  • A - ビジュアルジョブエディタのキャンバスです。ここでは、ノードを追加してジョブを作成できます。

  • B - ビジュアルジョブは、キャンバス上のノードで表されます。ノードを選択すると、青い線でハイライト表示されます。

  • C - ノードパネルには、ノードプロパティ、出力スキーマ、データプレビューという複数のタブが含まれています。ノードを選択すると、ノードパネルが表示され、ノード固有の新しいタブが追加設定用に表示されます。詳細については、「ジョブエディタの機能」を参照してください。

  • D - ジョブエディタのタブのリボンです。デフォルトでは、[Visual] (ビジュアル) が選択されています。[Script] (スクリプト)、[Job details] (ジョブの詳細)、[Runs] (実行)、[Schedules] (スケジュール) を選択することもできます。[Runs] (実行) および [Schedules] (スケジュール) は、ジョブの実行後に利用できます。詳細については、「AWS Glue Studio での ETL ジョブの編集」を参照してください。

  • E - ノードツールバーでは、ソースノード/変換ノード/ターゲットノードの追加、アクションの取り消しとやり直し、ノードの削除、ジョブ編集キャンバスのズームイン/ズームアウトという各種アクションを利用できます。詳細については、「AWS Glue Studio での ETL ジョブの編集」を参照してください。

  • F - デフォルトでは、ジョブの名前は「Untitled job」(無題のジョブ) です。テキストボックスをクリックして、ジョブ名を一意の名前に変更します。

  • G - ジョブエディタのアクションメニューで、ジョブを保存、実行、削除できます。[Actions] (アクション) ドロップダウンメニューには、ジョブの実行時に追加のオプションも表示されます。

ステップ 2: ジョブ図でデータソースノードを編集する

[Data source - S3 bucket] (データソース - S3 バケット) ノードを選択して、データソースプロパティを編集します。

データソースノードを編集するには
  1. デフォルトでは、[Data source properties - Amazon S3] (データソースのプロパティ - Amazon S3) タブが表示されます。

    
              スクリーンショットは、[Data source properties - Amazon S3] (データソースのプロパティ - Amazon S3) タブとフィールドを示しています。
  2. デフォルトでは、Amazon S3 ソースタイプの [Data Catalog table] (データカタログテーブル) オプションが選択されています。これは、ソースタイプが [Node properties] (ノードのプロパティ) タブの [Node type] (ノードタイプ) によって決定されるためです。デフォルトでは、Amazon S3 が「ノードタイプ」です。

  3. [Database] (データベース) で、AWS Glue Data Catalog で使用可能なデータベースのリストから yyz-tickets データベースを選択します。このデータベースは、このチュートリアルの前半で AWS CloudFormation スタックを起動したときに作成されたものです。

  4. [Table] (テーブル) で、ドロップダウンメニューをクリックし、AWS Glue Data Catalog の tickets テーブルを選択します。このテーブルは、このチュートリアルの前半で AWS CloudFormation スタックを起動したときに作成されたものです。

    データソースノードに必要な情報を入力すると、ジョブ図のノードに緑色のチェックマークが表示されます。

  5. (オプション) ノード詳細パネルの[Output schema] (出力スキーマ) タブを選択して、データスキーマを表示します。

  6. (オプション) ノードの詳細ペインの [Node properties] (ノードのプロパティ) で、[Name] (名前) にこのジョブ固有の名前を入力します。

    
            スクリーンショットは、[Node properties] (ノードのプロパティ) タブを示しています。

    入力した値は、ジョブ図のデータソースノードのラベルとして使用されます。ジョブ内のノードに一意の名前を使用する場合、ジョブ図内の各ノードを識別し、親ノードを選択する方が簡単です。

    ノードタイプを設定することもできます。ノードタイプを変更すると、[Data source properties] (データソースのプロパティ) タブのフィールドが変更されます。

ステップ 3: ジョブの変換ノードを編集する

変換ノードでは、データを元の形式から変更する方法を指定します。ApplyMapping 変換フォームを使用すると、データプロパティキーの名前を変更したり、データ型を変更したり、データセットから列を削除したりできます。

Transform - ApplyMapping ノードを編集すると、データの元のスキーマがノードの詳細パネルの [Source key] (ソースキー) 列に表示されます。これは、ソースデータから取得され、AWS Glue Data Catalog テーブルに格納されるデータプロパティキー名(列名)です。

[Target key] (ターゲットキー) 列には、データターゲットに表示されるキー名が表示されます。このフィールドを使用して、出力のデータプロパティのキー名を変更できます。[Data type] (データ型) 列には、キーのデータ型が表示され、ターゲットの別のデータ型に変更できます。[Drop] (ドロップ) 列には、チェックボックスが含まれています。このボックスでは、ターゲットスキーマからドロップするフィールドを選択できます。

変換ノードを編集するには
  1. [Transform-ApplyMapping] ノードを選択して、データ変換プロパティを編集します。

  2. ノードの詳細パネルの[Node properties] (ノードのプロパティ) タブで、情報を確認します。

    ノードの名前を「Ticket_Mapping」に変更します。

  3. ノードの詳細パネルで [Transform] (変換) タブを選択します。

    
            スクリーンショットは、[Apply mapping transform] (マッピング変換の適用) タブとフィールドを示しています。
  4. 各キーの [Drop] (ドロップ) 列のチェックボックスをオンにして、キーをドロップするようにします。

    • location1

    • location2

    • location3

    • location4

    • province

  5. ソースキー officer[Target key] (ターゲットキー) の値を officer_name に変更します。

    ticket_number および set_fine_amount キーのデータ型を [float] (浮動小数点) に変更します。データ型を変更するときは、そのデータ型がターゲットでサポートされていることを確認してください。

  6. (オプション)ノード詳細パネルの[Output schema] (出力スキーマ) タブを選択して、変更されたスキーマを表示します。

ジョブダイアグラムの [Transform - Apply Mapping] ノードに緑色のチェックマークが付いていることに注意してください。これは、ノードが編集され、必要なすべての情報が含まれていることを示します。

ステップ 4: ジョブのデータターゲットノードを編集する

データターゲットノードで変換された出力の送信先が決定されます。送信先は、Amazon S3 バケット、Data Catalog テーブル、またはコネクタと接続です。Data Catalog テーブルを選択すると、そのテーブルに関連付けられた場所にデータが書き込まれます。例えば、クローラを使用して JDBC ターゲットの Data Catalog にテーブルを作成すると、データはその JDBC テーブルに書き込まれます。

データターゲットノードを編集するには
  1. [Data target - S3 bucket] (データターゲット-S3 バケット) ノードを選択して、データターゲットプロパティを編集します。

  2. 右側のノード詳細パネルに [Node properties] (ノードプロパティ) タブにあります。[Name] (名前) に、ノードの一意の名前を入力します。

  3. [Data target properties - S3] (データターゲットのプロパティ - S3) タブを選択します。

    
            スクリーンショットは、[Data target properties - Amazon S3] (データターゲットのプロパティ - Amazon S3) タブと使用可能なフィールドを示しています。
  4. 各フィールドで、次のとおりに選択します。

    利用できるすべてのオプションについての詳細は、「データターゲットでのオプションの概要」を参照してください。

    • 形式: Parquet

    • 圧縮タイプ: GZIP

    • S3 ターゲットロケーション: [Browse S3] (S3 をブラウズ) ボタンを選択して、アクセス可能な Amazon S3 バケットを表示します。ターゲット送信先として Amazon S3 バケットを選択します。

    • データカタログの更新オプション: データカタログの更新は行わないでください。

ステップ 5: ジョブの詳細を指定し、ジョブを保存する

抽出、変換、ロード (ETL) ジョブを保存して実行する前に、ジョブ自体に関する追加情報を入力する必要があります。

ジョブの詳細を指定し、保存するには
  1. [Job details] (ジョブの詳細) タブを選択します。

  2. ジョブの名前を入力します。UTF-8 文字を 255 文字以内で入力します。

    (オプション) ジョブの説明を入力します。説明の長さは、最大 2048 文字です。

  3. [IAM role] (IAMロール) の場合、使用可能なロールのリストから [AWS Glue StudioRole] を選択します。

    注記

    AWS Identity and Access Management (IAM) ロールは、ジョブの実行に使用されるリソースへのアクセスを認証するために使用されます。アカウントにすでに存在するロールのみ選択できます。選択するロールには、Amazon S3 ソース、ターゲット、一時ディレクトリ、スクリプト、およびジョブで使用されるすべてのライブラリにアクセスするためのアクセス許可と、AWS Glue サービスリソースへのアクセス許可が必要です。

    IAM ロールを作成する手順については、AWS Glue デベロッパーガイドの「Create an IAM Role for AWS Glue」を参照してください。

    ターゲット Amazon S3 バケットへのアクセスをこのロールに追加する必要がある場合があります。

    選択するロールが多数ある場合は、ロール名の一部を [IAM role] (IAM ロール) 検索フィールドをクリックすると、一致するテキスト文字列を含むロールが表示されます。例えば、検索フィールドに「tutorial」と入力すると、名前に「tutorial」(大文字と小文字を区別しない) が含まれるすべてのロールを検索できます。

  4. 残りのフィールドは、デフォルト値のままにします。

  5. ページの右上にある [Save] (保存) をクリックします。

    ページの上部に、ジョブが正常に保存されたことを示す通知が表示されます。

    
            スクリーンショットは、[Save] (保存) ボタンをクリックしたときに処理が正常に実行されたことを通知する確認メッセージを示しています。
注記

ジョブが正常に保存されたという通知が表示されない場合は、ジョブの保存を妨げる情報が不足している可能性があります。

  • ビジュアルエディターでジョブを確認し、緑色のチェックマークが付いていないノードを選択します。

  • ビジュアルエディタペインのいずれかのタブにコールアウトがある場合は、そのタブを選択し、赤で強調表示されているフィールドを探します。

ステップ 6: ジョブを実行する

これでジョブが保存されたので、ジョブを実行できます。

  1. ページ上部の [Run] (実行) ボタンを選択します。ジョブが正常に開始されたという通知が表示されます。[Runs] (実行) タブを選択し、[Run jobs] (ジョブを実行) を選択することもできます。

    
            スクリーンショットは、[Run] (実行) ボタンをクリックしたときに処理が正常に実行されたことを通知する確認メッセージを示しています。
  2. ジョブの実行の詳細を表示するには、[Run Details] (実行の詳細) の通知でリンクをクリックするか、[Runs] (実行) タブを選択して、ジョブの実行ステータスを表示します。

  3. [Runs] (実行) タブでジョブの実行の詳細を表示するには、最近のジョブの実行に関するジョブの実行の詳細カードを表示します。ジョブの実行情報の詳細については、「最近のジョブの実行の情報を表示する」(最近のジョブの実行の情報を表示する) を参照してください。

以上でこのチュートリアルは完了です。ビジュアルジョブの作成、ノードの編集、ジョブスクリプトの検査、ジョブの保存と実行、実行の詳細の表示を行う方法について説明しました。

次のステップ

ジョブの実行を開始した後、次のタスクのいくつかを試してみるといいでしょう。