翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3 インクルードパスごとに 1 つのスキーマを作成する
デフォルトでは、Amazon S3 に保存されたデータのテーブルをクローラーが定義するときに、データの互換性とスキーマの類似性の両方が考慮されます。考慮すべきデータ互換性の要因には、データが同じ形式 ( などJSON)、同じ圧縮タイプ ( などGZIP)、Amazon S3 パスの構造、およびその他のデータ属性であるかどうかが含まれます。スキーマの類似性は、別個の Amazon S3 オブジェクトのスキーマがどれくらい似ているかの尺度です。
可能な場合は、CombineCompatibleSchemas
へのクローラーを共通テーブル定義に設定できます。このオプションを使用しても、クローラーはデータ互換性を考慮に入れますが、指定されたインクルードパスで Amazon S3 オブジェクトを評価するときに特定のスキーマの類似性を無視します。
コンソールでクローラーを設定する場合、スキーマを組み合わせるには、クローラーオプション [Create a single schema for each S3 path (各 S3 パスの単一のスキーマを作成する)] を選択します。
を使用してクローラーを設定する場合はAPI、次の設定オプションを設定します。
クローラー 内の次のJSONオブジェクトの文字列表現を使用して
Configuration
フィールドを設定しますAPI。例:{ "Version": 1.0, "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" } }
このオプションを説明するため、インクルードパス 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
があります。