AWS Glue 類型系統
AWS Glue 使用多種類型的系統,針對資料系統提供多功能介面,能夠以非常不同的方式來存放資料。本文件釐清了 AWS Glue 類型系統和資料標準。
AWS Glue Data Catalog 類型
Data Catalog 是存放於各種資料系統 (中繼存放區) 的資料表和欄位登錄檔。當 AWS Glue 元件 (例如 AWS Glue 爬蟲程式和 AWS Glue with Spark 任務) 寫入 Data Catalog 時,其會使用內部類型系統來追蹤欄位類型。這些值會顯示在 AWS Glue 主控台中資料表結構描述的資料類型資料欄中。這種類型的系統是以 Apache Hive 的類型系統為基礎。如需有關 Apache Hive 類型系統的詳細資訊,請參閱 Apache Hive 維基中的類型
驗證、相容性和其他用途
Data Catalog 不會驗證寫入至類型欄位的類型。當 AWS Glue 元件讀取並寫入 Data Catalog 時,其會彼此相容。AWS此外,Glue 元件旨在保持與 Hive 類型的高度相容性。然而,AWS Glue 元件不保證與所有 Hive 類型的相容性。這可讓您在使用 Data Catalog 中的資料表時,實現與 Athena DDL 等工具互通性。
由於 Data Catalog 不會驗證類型,因此其他服務可能會使用 Data Catalog,透過與 Hive 類型系統或任何其他系統高度符合的系統來追蹤類型。
輸入 AWS Glue with Spark 指令碼
當 AWS Glue with Spark 指令碼解譯或轉換資料集時,我們會提供 DynamicFrame,這是資料集在指令碼中使用時採用的記憶體表示法。DynamicFrame 的目標與 Spark DataFrame 類似 – 其會為您的資料集建模,以便 Spark 可對您的資料排程和執行轉換。我們保證,DynamicFrame 的類型表示法可透過提供 toDF 和 fromDF 方法與 DataFrame 相互相容。
如果可推斷類型資訊或提供給 DataFrame,除非另有記錄,否則可進行推斷或提供給 DynamicFrame。當我們針對特定資料格式提供最佳化的讀取器或寫入器時,如果 Spark 可讀取或寫入您的資料,則我們提供的讀取器或寫入器將受到文件限制。如需有關讀取器或寫入器的詳細資訊,請參閱 AWS Glue for Spark 中的輸入與輸出的資料格式選項。
選項類型
DynamicFrames 提供一種機制,用於在資料集中進行欄位建模,該資料集的值可能在磁碟上具有不一致的資料列類型。例如,一個欄位可在某些資料列中保留做為字串存放的數字,而在其他資料列中則保留做為整數存放的數字。這種機制是一種稱為 Choice 的記憶體類型。我們提供諸如 ResolveChoice 方法之類的轉換,以將「選項」資料欄解析為具體類型。AWS在一般操作過程中,Glue ETL 不會將選項類型寫入 Data Catalog;選項類型僅存在於資料集的 DynamicFrame 記憶體模型內容中。如需選項類型用量的範例,請參閱 程式碼範例:使用 ResolveChoice、Lambda 和 ApplyMapping 的資料準備。
AWS Glue 爬蟲程式類型
爬蟲程式的目標是針對您的資料集產生一致且可用的結構描述,然後將其存放在 Data Catalog 中,以便用於其他 AWS Glue 元件和 Athena。爬蟲程式根據 Data Catalog 上一節內容 AWS Glue Data Catalog 類型 中所述來處理類型。若要在「選項」類型案例中產生可用的類型,其中一個資料欄包含兩個或多個類型的值,爬蟲程式將會建立 struct 類型來對潛在類型進行建模。