各 Amazon S3 インクルードパスの単一のスキーマを作成する
デフォルトでは、Amazon S3 に保存されたデータのテーブルをクローラーが定義するときに、データの互換性とスキーマの類似性の両方が考慮されます。考慮されるデータ互換性要因には、データが同じ形式 (JSON など) かどうか、同じ圧縮タイプ (GZIP など) かどうか、Amazon S3 パスの構造、他のデータ属性などです。スキーマの類似性は、別個の Amazon S3 オブジェクトのスキーマがどれくらい似ているかの尺度です。
このオプションを説明するため、インクルードパス s3://bucket/table1/
を使用してクローラーを定義するとします。クローラーが実行されると、次の特性を持つ 2 つの JSON ファイルが検索されます。
-
ファイル 1 –
S3://bucket/table1/year=2017/data1.json
-
ファイルのコンテンツ –
{“A”: 1, “B”: 2}
-
スキーマ –
A:int, B:int
-
ファイル 2 –
S3://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:int
と partitionKey
year:string
があります。