各 Amazon S3 インクルードパスの単一のスキーマを作成する - AWS Glue

各 Amazon S3 インクルードパスの単一のスキーマを作成する

デフォルトでは、Amazon S3 に保存されたデータのテーブルをクローラーが定義するときに、データの互換性とスキーマの類似性の両方が考慮されます。考慮されるデータ互換性要因には、データが同じ形式 (JSON など) かどうか、同じ圧縮タイプ (GZIP など) かどうか、Amazon S3 パスの構造、他のデータ属性などです。スキーマの類似性は、別個の Amazon S3 オブジェクトのスキーマがどれくらい似ているかの尺度です。

このオプションを説明するため、インクルードパス s3://bucket/table1/ を使用してクローラーを定義するとします。クローラーが実行されると、次の特性を持つ 2 つの JSON ファイルが検索されます。

  • ファイル 1S3://bucket/table1/year=2017/data1.json

  • ファイルのコンテンツ{“A”: 1, “B”: 2}

  • スキーマA:int, B:int

  • ファイル 2S3://bucket/table1/year=2018/data2.json

  • ファイルのコンテンツ{“C”: 3, “D”: 4}

  • スキーマC: int, D: int

デフォルトでは、スキーマの類似性が十分ではないため、クローラーは year_2017 および year_2018 という 2 つのテーブルを作成します。ただし、オプション [Create a single schema for each S3 path (各 S3 パスの単一のスキーマを作成する)] を選択し、データに互換性がある場合、クローラーは 1 つのテーブルを作成します。テーブルにはスキーマ A:int,B:int,C:int,D:intpartitionKey year:string があります。

AWS Management Console
  1. AWS Management Consoleにサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/) を開きます。

  2. [Data Catalog][クローラー] を選択します。

  3. 新しいクローラーを設定するときは、[出力およびスケジューリング] で、[詳細オプション] の [各 S3 パスの単一のスキーマを作成する] オプションを選択します。

AWS CLI

可能な場合は、CombineCompatibleSchemas へのクローラーを共通テーブル定義に設定できます。このオプションを使用しても、クローラーはデータ互換性を考慮に入れますが、指定されたインクルードパスで Amazon S3 オブジェクトを評価するときに特定のスキーマの類似性を無視します。

AWS CLI を使用してクローラーを設定する場合は、以下の設定オプションを設定します。

aws glue update-crawler \ --name myCrawler \ --configuration '{"Version": 1.0, "Grouping": {"TableGroupingPolicy": "CombineCompatibleSchemas" }}'
API

API を使用してクローラーを設定する場合は、以下の設定オプションを設定します。

クローラー API で次の JSON オブジェクトの文字列表現を使用して Configuration フィールドを設定します。

{ "Version": 1.0, "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" } }