本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為每個 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
。