チュートリアル: AWS Glue クローラの追加 - AWS Glue

チュートリアル: AWS Glue クローラの追加

この AWS Glue シナリオでは、主要な航空会社の到着データを分析して、各月の出発空港の人気度を計算するよう求められています。2016 年のフライトデータが CSV 形式で Amazon S3 に保存されています。データの変換と分析を行う前に、AWS Glue Data Catalog 内のそのメタデータをカタログ化します。

このチュートリアルでは、これらのフライトログからメタデータを推測し、データ Amazon S3 にテーブルを作成するクローラを追加します。

前提条件

このチュートリアルでは、 AWS アカウントを持ち、AWS Glue にアクセスできることを前提としています。

ステップ 1: クローラの追加

Amazon S3 に保存されている CSV ファイルからメタデータを抽出するクローラを設定および実行するには、以下の手順に従ってください。

Amazon S3 に保存されているファイルを読み込むクローラを作成するには
  1. AWS Glue サービスコンソールの左側のメニューで、[Crawlers] (クローラー) を選択します。

  2. クローラーページで、[Create crawler] を選択します。これにより、クローラの詳細に関する入力を求める一連のページが表示されます。

    スクリーンショットは、クローラーページが表示されています。ここから、クローラーを作成できるほか、既存のクローラーの編集、複製、削除、表示を実行できます。
  3. [クローラ名] フィールドに、「Flights Data Crawler」を入力して、 [Next] (次へ) を選択します。

    クローラは分類子を呼び出して、データのスキーマを推測します。このチュートリアルでは、デフォルトの CSV 用の組み込みの分類子を使用します。

  4. [クローラソースタイプ] で、[Data stores] (データストア) を選択し、[Next] (次へ) を選択します。

  5. それでは、クローラをデータに指定します。[Add a data store] (データストアの追加) ページで、[Amazon S3 data store] (Amazon S3 データストア) を選択します。このチュートリアルでは接続を使用しないため、[Connection] (接続) フィールドが表示されている場合は、そのフィールドを空白のままにしてください。

    [Crawl data in] (クロールするデータの場所) で、[Specified path in another account] (別のアカウントで指定されたパス) を選択します。次に、[Include path] (インクルードパス) に、クローラがフライトデータ(s3://crawler-public-us-east-1/flight/2016/csv)に対するパスを入力します。パスを入力すると、このフィールドのタイトルが [Include path] (インクルードパス) に変わります。[Next] を選択します。

  6. 単一のクローラで複数のデータストアをクロールできます。ただし、このチュートリアルでは 1 つのデータストアのみを使用しているため、[No] (なし) を選択して、次に [Next] (次へ) を選択します。

  7. クローラーには、データストアにアクセスして AWS Glue Data Catalog でオブジェクトを作成するためのアクセス許可が必要です。これらのアクセス許可を設定するために、[Create an IAM role] (IAM ロールを作成する) を選択します。IAM ロール名は 「AWSGlueServiceRole-」で始まります。フィールドにロール名の後ろの部分を入力します。  「CrawlerTutorial」と入力し、[Next] (次へ) を選択します。

    注記

    IAM ロールを作成するには、AWS ユーザーは CreateRoleCreatePolicy、および AttachRolePolicy アクセス許可が必要です。

    ウィザードが「AWSGlueServiceRole-CrawlerTutorial」という名前の IAM ロールを作成し、AWS 管理ポリシー AWSGlueServiceRole をこのロールにアタッチし、Amazon S3 ロケーション s3://crawler-public-us-east-1/flight/2016/csv への読み取りアクセスを許可するインラインポリシーを追加します。

  8. クローラのスケジュールを作成します。[Frequency] (頻度) で、[Run on demand (オンデマンドで実行する) を選択してから、[Next] (次へ) を選択します。

  9. クローラは Data Catalog 内にテーブルを作成します。テーブルは、Data Catalog 内のデータベースに格納されます。まず、Add database (データベースを追加する) を選択してデータベースを作成します。ポップアップウィンドウで、データベース名に 「test-flights-db」と入力し、[Create] (作成) を選択します。

    次に、[Prefix added to tables] (テーブルに追加されたプレフィックス) に「flights」を入力します。残りのフィールドにはデフォルト値を使用し、[Next] (次へ) を選択します。

  10. 選択した内容を確認するには、[Add crawler] (クローラの追加) ウィザードを使用します。誤りを見つけた場合は、Back (戻る) をクリックして前のページに戻り、修正します。

    情報を確認したら、[Finish] (完了) をクリックしてクローラを作成します。

ステップ 2: クローラを実行する

クローラを作成した後、ウィザードがクローラビューページを表示します。オンデマンドのスケジュールでクローラを作成するため、クローラを実行するオプションを使用できます。

クローラを実行するには
  1. このページの上部にあるバナーでは、クローラが作成されたことが表示され、それを実行するかどうかを尋ねられます。[Run it now?] (今すぐ実行しますか?) をクリックしてクローラを実行します。

    バナーでは、クローラの「Attempting to run (実行しようとしています)」および「Running (実行中)」というメッセージの表示に変わります。クローラの実行を開始すると、バナーが消え、クローラの表示が更新され、クローラの [Starting] (起動) ステータスが表示されます。1 分後、[Refresh] (更新) アイコンをクリックして、テーブルに表示されるクローラのステータスを更新できます。

  2. クローラが完了すると、クローラの変更を説明する新しいバナーが表示されます。test-flights-db リンクを選択して、Data Catalog オブジェクトを表示できます。

ステップ 3: AWS Glue Data Catalog オブジェクトを表示する

クローラがソースの場所からデータを読み込み、Data Catalog にテーブルを作成します。テーブルは、スキーマを含むデータを表すメタデータ定義です。Data Catalog のテーブルにはデータが含まれていません。代わりに、ジョブ定義のソースまたはターゲットとしてこれらのテーブルを使用します。

クローラが作成した Data Catalog オブジェクトを表示する方法
  1. 左側のナビゲーションペインの [Data catalog] (データカタログ) で、[Databases] (データベース) を選択します。ここでは、クローラーによって作成された flights-db データベースを表示できます。

  2. 左側のナビゲーションの [Data catalog] (データカタログ) で、 [Databases] (データベース) の下の Tables (テーブル) を選択します。ここでは、クローラーが作成した flightscsv テーブルを表示できます。テーブル名を選択すると、テーブルの設定、パラメータ、およびプロパティを表示できます。このビューで下にスクロールすると、スキーマを表示できます。スキーマとは、テーブルの列とデータ型に関する情報です。

  3. テーブルビューページで [View partitions] (パーティションの表示) を選択すると、データ用に作成されたパーティションを表示できます。最初の列はパーティションキーです。