本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为每个 Amazon S3 包含路径创建一个架构
默认情况下,当爬网程序为 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/
定义了一个爬网程序。当爬虫运行时,它会发现两个具有以下特征的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
的表,因为架构不够相似。但是,如果选项 Create a single schema for each S3 path (为每个 S3 路径创建单个架构) 处于选中状态,并且数据是兼容的,则爬网程序会创建一个表。该表具有架构 A:int,B:int,C:int,D:int
和 partitionKey
year:string
。