チュートリアル: AWS Glue クローラの追加
この AWS Glue シナリオでは、主要な航空会社の到着データを分析して、各月の出発空港の人気度を計算するよう求められています。2016 年のフライトデータが CSV 形式で Amazon S3 に保存されています。データの変換と分析を行う前に、AWS Glue Data Catalog 内のそのメタデータをカタログ化します。
このチュートリアルでは、これらのフライトログからメタデータを推測し、データ Amazon S3 にテーブルを作成するクローラを追加します。
前提条件
このチュートリアルでは、 AWS アカウントを持ち、AWS Glue にアクセスできることを前提としています。
ステップ 1: クローラの追加
Amazon S3 に保存されている CSV ファイルからメタデータを抽出するクローラを設定および実行するには、以下の手順に従ってください。
Amazon S3 に保存されているファイルを読み込むクローラを作成するには
-
AWS Glue サービスコンソールの左側のメニューで、[Crawlers] (クローラー) を選択します。
-
クローラーページで、[Create crawler] を選択します。これにより、クローラの詳細に関する入力を求める一連のページが表示されます。
-
[クローラ名] フィールドに、「
Flights Data Crawler
」を入力して、 [Next] (次へ) を選択します。クローラは分類子を呼び出して、データのスキーマを推測します。このチュートリアルでは、デフォルトの CSV 用の組み込みの分類子を使用します。
-
[クローラソースタイプ] で、[Data stores] (データストア) を選択し、[Next] (次へ) を選択します。
-
それでは、クローラをデータに指定します。[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] を選択します。 -
単一のクローラで複数のデータストアをクロールできます。ただし、このチュートリアルでは 1 つのデータストアのみを使用しているため、[No] (なし) を選択して、次に [Next] (次へ) を選択します。
-
クローラーには、データストアにアクセスして AWS Glue Data Catalog でオブジェクトを作成するためのアクセス許可が必要です。これらのアクセス許可を設定するために、[Create an IAM role] (IAM ロールを作成する) を選択します。IAM ロール名は 「
AWSGlueServiceRole-
」で始まります。フィールドにロール名の後ろの部分を入力します。 「CrawlerTutorial
」と入力し、[Next] (次へ) を選択します。注記
IAM ロールを作成するには、AWS ユーザーは
CreateRole
、CreatePolicy
、およびAttachRolePolicy
アクセス許可が必要です。ウィザードが「
AWSGlueServiceRole-CrawlerTutorial
」という名前の IAM ロールを作成し、AWS 管理ポリシーAWSGlueServiceRole
をこのロールにアタッチし、Amazon S3 ロケーションs3://crawler-public-us-east-1/flight/2016/csv
への読み取りアクセスを許可するインラインポリシーを追加します。 -
クローラのスケジュールを作成します。[Frequency] (頻度) で、[Run on demand (オンデマンドで実行する) を選択してから、[Next] (次へ) を選択します。
-
クローラは Data Catalog 内にテーブルを作成します。テーブルは、Data Catalog 内のデータベースに格納されます。まず、Add database (データベースを追加する) を選択してデータベースを作成します。ポップアップウィンドウで、データベース名に 「
test-flights-db
」と入力し、[Create] (作成) を選択します。次に、[Prefix added to tables] (テーブルに追加されたプレフィックス) に「
flights
」を入力します。残りのフィールドにはデフォルト値を使用し、[Next] (次へ) を選択します。 -
選択した内容を確認するには、[Add crawler] (クローラの追加) ウィザードを使用します。誤りを見つけた場合は、Back (戻る) をクリックして前のページに戻り、修正します。
情報を確認したら、[Finish] (完了) をクリックしてクローラを作成します。
ステップ 2: クローラを実行する
クローラを作成した後、ウィザードがクローラビューページを表示します。オンデマンドのスケジュールでクローラを作成するため、クローラを実行するオプションを使用できます。
クローラを実行するには
-
このページの上部にあるバナーでは、クローラが作成されたことが表示され、それを実行するかどうかを尋ねられます。[Run it now?] (今すぐ実行しますか?) をクリックしてクローラを実行します。
バナーでは、クローラの「Attempting to run (実行しようとしています)」および「Running (実行中)」というメッセージの表示に変わります。クローラの実行を開始すると、バナーが消え、クローラの表示が更新され、クローラの [Starting] (起動) ステータスが表示されます。1 分後、[Refresh] (更新) アイコンをクリックして、テーブルに表示されるクローラのステータスを更新できます。
-
クローラが完了すると、クローラの変更を説明する新しいバナーが表示されます。test-flights-db リンクを選択して、Data Catalog オブジェクトを表示できます。
ステップ 3: AWS Glue Data Catalog オブジェクトを表示する
クローラがソースの場所からデータを読み込み、Data Catalog にテーブルを作成します。テーブルは、スキーマを含むデータを表すメタデータ定義です。Data Catalog のテーブルにはデータが含まれていません。代わりに、ジョブ定義のソースまたはターゲットとしてこれらのテーブルを使用します。
クローラが作成した Data Catalog オブジェクトを表示する方法
-
左側のナビゲーションペインの [Data catalog] (データカタログ) で、[Databases] (データベース) を選択します。ここでは、クローラーによって作成された
flights-db
データベースを表示できます。 -
左側のナビゲーションの [Data catalog] (データカタログ) で、 [Databases] (データベース) の下の Tables (テーブル) を選択します。ここでは、クローラーが作成した
flightscsv
テーブルを表示できます。テーブル名を選択すると、テーブルの設定、パラメータ、およびプロパティを表示できます。このビューで下にスクロールすると、スキーマを表示できます。スキーマとは、テーブルの列とデータ型に関する情報です。 -
テーブルビューページで [View partitions] (パーティションの表示) を選択すると、データ用に作成されたパーティションを表示できます。最初の列はパーティションキーです。