本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立資料表
雖然執行爬蟲程式是清查資料存放區中資料的建議方法,但您可以將中繼資料資料表 AWS Glue Data Catalog 手動新增至 。此方法可讓您更妥善地控制中繼資料定義,並根據特定需求加以自訂。
您也可以使用下列方式,手動將資料表新增至 Data Catalog:
-
使用 AWS Glue 主控台,在 AWS Glue Data Catalog中手動建立資料表。如需詳細資訊,請參閱使用主控台建立資料表。
-
在 AWS Glue API 中使用
CreateTable
操作,在 AWS Glue Data Catalog中建立資料表。如需詳細資訊,請參閱CreateTable 動作 (Python: create_table)。 -
使用 AWS CloudFormation 範本。如需詳細資訊,請參閱AWS CloudFormation 適用於 AWS Glue。
當您使用主控台或 API 手動定義資料表時,需指定資料表結構描述和分類欄位的值,以表示資料來源中的資料類型和格式。如果是爬蟲程式來建立資料表,資料格式和結構描述就會由內建分類器或自訂分類器決定。如需使用 AWS Glue 主控台建立資料表的詳細資訊,請參閱 使用主控台建立資料表。
資料表分割區
Amazon Simple Storage Service (Amazon S3) 資料夾的 AWS Glue 資料表定義可描述已分割的資料表。例如,為了改善查詢效能,分割的資料表可能使用月份名稱為金鑰,以將每月資料分隔成不同的檔案。在 AWS Glue 中,資料表定義包含資料表的分割金鑰。AWS Glue 在評估 Amazon S3 資料夾中的資料以編目資料表時,會決定要新增個別資料表或分割資料表。
您可以在資料表上建立分割區索引來擷取分割區的子集,而不是載入資料表中的所有分割區。如需使用分割區索引的詳細資訊,請參閱建立分割區索引 。
要讓 AWS Glue 為 Amazon S3 資料夾建立分割資料表,以下所有條件都必須為 true:
-
檔案的結構描述類似,由 AWS Glue 決定。
-
檔案的日期格式相同。
-
檔案的壓縮格式相同。
例如,您可能擁有一個名稱為 my-app-bucket
的 Amazon S3 儲存貯體,用於存放 iOS 和 Android 應用程式的銷售資料。資料按照年、月、日分割。iOS 和 Android 銷售的資料檔案有相同的結構描述、日期格式和壓縮格式。在 中 AWS Glue Data Catalog,AWS Glue爬蟲程式會建立一個資料表定義,其中包含年、月和日分割索引鍵。
以下的 Amazon S3 my-app-bucket
清單顯示了一些分割區。=
符號用於指派分割區金鑰值。
my-app-bucket/Sales/year=2010/month=feb/day=1/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=1/Android.csv my-app-bucket/Sales/year=2010/month=feb/day=2/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=2/Android.csv ... my-app-bucket/Sales/year=2017/month=feb/day=4/iOS.csv my-app-bucket/Sales/year=2017/month=feb/day=4/Android.csv
資料表資源連結
AWS Glue 主控台最近已更新。目前版本的主控台不支援資料表資源連結。 |
Data Catalog 也可以包含資料表的資源連結。資料表資源連結是本機或共用資料表的連結。您目前只可以在 AWS Lake Formation建立資源連結。建立資料表的資源連結後,您可以在任何使用資料表名稱的地方使用資源連結名稱。連同您擁有或與您共用的資料表,資料表資源連結會由 glue:GetTables()
傳回,並顯示為 AWS Glue 主控台中 Tables (資料表) 的項目。
Data Catalog 也可以包含資料庫資源連結。
如需資源連結的詳細資訊,請參閱 AWS Lake Formation 開發人員指南中的建立資源連結。
使用主控台建立資料表
中的資料表 AWS Glue Data Catalog 是中繼資料定義,代表資料存放區中的資料。您可在執行爬蟲程式時建立資料表,或者也可以在 AWS Glue 主控台中手動建立資料表。在 主控台中的 TablesAWS Glue (資料表) 清單,會顯示您資料表中繼資料的值。在建立 ETL (擷取、轉換和載入) 任務時,您可以使用資料表的定義來指定來源與目標。
注意
隨著 AWS 管理主控台的最新變更,您可能需要修改現有的 IAM 角色才能擁有 SearchTables
許可。針對新角色建立,SearchTables
API 許可已新增為預設值。
若要開始使用,請登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/glue/
在主控台上新增資料表
若要使用爬蟲程式來新增資料表,請依序選擇 Add tables (新增資料表)、Add tables using a crawler (使用爬蟲程式來新增資料表)。然後,依照 Add crawler (新增爬蟲程式) 精靈中的說明來進行操作。當爬蟲程式執行時,資料表就會新增至 AWS Glue Data Catalog。如需詳細資訊,請參閱使用爬蟲程式填入 Data Catalog 。
如果您知道在 Data Catalog 中建立 Amazon Simple Storage Service (Amazon S3) 資料表定義所需的屬性,則可以使用資料表精靈來建立。依序選擇 Add tables (新增資料表)、Add table manually (手動新增資料表),然後依照 Add table (新增資料表) 精靈中的說明來進行操作。
透過主控台來手動新增資料表時,請注意下列事項:
-
如果您預計從 Amazon Athena 存取資料表,則應提供只有英數字元和底線字元的名稱。如需詳細資訊,請參閱 Athena 名稱。
-
您的來源資料的位置必須是 Amazon S3 路徑。
-
資料的格式必須符合精靈中所列出的其中一種格式。對應的分類、SerDe 和其他資料表屬性,會根據所選的格式自動填入。您可以使用下列格式來定義資料表:
- Avro
-
Apache Avro JSON 二進位格式。
- CSV
-
字元分隔值。您也可以指定分隔符號 (逗號、管線、分號、Tab 或 Ctrl-A)。
- JSON
-
JavaScript 物件標記法。
- XML
-
可擴展標記語言的格式。指定 XML 標籤,以定義列的資料。欄會在列標籤中定義。
- Parquet
-
Apache Parquet 單欄式儲存。
- ORC
-
最佳化資料列單欄式 (ORC) 檔案格式。旨在高效存放 Hive 資料的格式。
-
您可以定義資料表的分區金鑰。
-
目前,透過主控台所建立的分區資料表,不能在 ETL 任務中使用。
資料表屬性
下列是一些重要的資料表屬性:
- 名稱
-
此名稱在資料表建立已決定,您無法變更。在許多的 AWS Glue 操作中,都會參照資料表的名稱。
- 資料庫
-
您的資料表所在的容器物件。此物件包含存在於 中的資料表組織, AWS Glue Data Catalog 可能與資料存放區中的組織不同。當您刪除資料庫,也會從 Data Catalog 刪除資料庫中內含的所有資料表。
- 描述
-
資料表的說明。您可以撰寫說明,來協助您了解資料表的內容。
- 資料表格式
-
指定建立標準 AWS Glue 資料表,或 Apache Iceberg 格式的資料表。
Data Catalog 提供下列資料表最佳化選項,以管理資料表儲存並改善 Iceberg 資料表的查詢效能。
-
壓縮 – 合併和重寫資料檔案會移除過時的資料,並將分段的資料合併成更大、更有效率的檔案。
快照保留 – 快照是 Iceberg 資料表的時間戳記版本。快照保留組態可讓客戶強制執行保留快照的時間長度,以及要保留的快照數量。設定快照保留最佳化工具可以移除較舊、不必要的快照及其相關聯的基礎檔案,以協助管理儲存開銷。
孤立檔案刪除 – 孤立檔案是 Iceberg 資料表中繼資料不再參考的檔案。這些檔案會隨著時間累積,特別是在資料表刪除或失敗的 ETL 任務等操作之後。啟用孤立檔案刪除 AWS Glue 可讓 定期識別和移除這些不必要的檔案,釋放儲存體。
如需詳細資訊,請參閱最佳化處理 Iceberg 資料表。
-
- 最佳化組態
您可以使用預設設定或自訂設定來啟用資料表最佳化工具。
- IAM 角色
若要執行資料表最佳化工具,服務會代表您擔任 IAM 角色。您可以使用下拉式選單選擇 IAM 角色。請確認角色具有啟用壓縮的必要權限。
若要進一步了解 IAM 角色的必要權限,請參閱 資料表最佳化先決條件 。
- 位置
-
指標,指向此資料表定義所代表資料存放區中資料的位置。
- 分類
-
建立資料表時所提供的分類值。這通常是在爬蟲程式執行時寫入,用來指定來源資料的格式。
- 上次更新
-
此資料表在 Data Catalog 中更新的時間和日期 (UTC)。
- 加入日期
-
此資料表新增至 Data Catalog 的時間和日期 (UTC)。
- 已棄用
-
如果 AWS Glue 發現 Data Catalog 中的資料表不再存在於其原始資料存放區,會在 Data Catalog 中將此資料表標記為已作廢。如果您執行的任務參照了已作廢的資料表,則任務可能會失敗。針對參照已作廢資料表的任務來進行編輯,將這些做為來源和目標的資料表移除。我們建議您刪除不再需要的已作廢資料表。
- 連線
-
如果 AWS Glue 需要連線至您的資料存放區,連線的名稱會與資料表相關。
檢視和管理資料表詳細資訊
若要檢視現有資料表的詳細資訊,請在清單中選擇資料表名稱,然後選擇 Action, View details (動作,檢視詳細資訊)。
資料表的詳細資訊包括資料表的屬性及其結構描述。此檢視會顯示資料表的結構描述,包括欄名稱 (依資料表定義的順序排列)、資料類型和分區金鑰欄位。如果欄為複雜的類型,您可以選擇 View properties (檢視屬性) 來顯示該欄位結構的詳細資訊,如下列範例所示:
{ "StorageDescriptor": { "cols": { "FieldSchema": [ { "name": "primary-1", "type": "CHAR", "comment": "" }, { "name": "second ", "type": "STRING", "comment": "" } ] }, "location": "s3://aws-logs-111122223333-us-east-1", "inputFormat": "", "outputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "compressed": "false", "numBuckets": "0", "SerDeInfo": { "name": "", "serializationLib": "org.apache.hadoop.hive.serde2.OpenCSVSerde", "parameters": { "separatorChar": "|" } }, "bucketCols": [], "sortCols": [], "parameters": {}, "SkewedInfo": {}, "storedAsSubDirectories": "false" }, "parameters": { "classification": "csv" } }
如需關於資料表的屬性 (例如 StorageDescriptor
) 的詳細資訊,請參閱 StorageDescriptor 結構。
若要變更資料表的結構描述,請選擇 Edit schema (編輯結構描述) 來新增和移除欄、變更欄名稱和變更資料類型。
若要比較資料表的不同版本 (包括其結構描述),請選擇 Compare versions (比較版本) 來檢視資料表兩種結構描述版本的並列比較。如需詳細資訊,請參閱 比較資料表結構描述版本 。
若要顯示 Amazon S3 分區中所包含的檔案,請選擇 View partition (檢視分割區)。對於 Amazon S3 資料表,Key (金鑰) 欄會顯示分區金鑰,用來將來源資料存放區中的資料表分區。分區 (Partitioning) 是一種方法,用來根據金鑰欄位的值 (例如日期、位置或部門),將資料表劃分為相關的部分。如需關於分區的詳細資訊,請搜尋網際網路,取得「Hive 分區」的相關資訊。
注意
若要取得檢視資料表詳細資訊的逐步指引,請參閱主控台中的 Explore table (了解資料表) 教學。
比較資料表結構描述版本
當您比較兩個版本的資料表結構定義時,您可以透過展開和折疊巢狀資料列、並排比較兩個版本的結構定義,以及並排檢視資料表屬性,來比較巢狀資料列變更。
比較版本
-
從 AWS Glue 主控台中,依序選擇資料表、動作和比較版本。
-
選擇版本下拉式選單,以選擇要比較的版本。比較結構描述時,「結構描述」索引標籤會以橙色反白顯示。
-
當您比較兩個版本之間的資料表時,資料表結構描述會顯示在畫面的左側和右側。這可讓您透過並排比較「資料欄名稱」、「資料類型」、「索引鍵」和「註解」欄位,以視覺化方式判斷變更。發生變更時,彩色圖示會顯示所做變更的類型。
-
已刪除 – 以紅色圖示顯示,指示資料欄已從舊版資料表結構描述中移除的位置。
-
已編輯或已移動 – 以藍色圖示顯示,指示資料欄在較新版資料表結構描述中修改或移動的位置。
-
已新增 – 以綠色圖示顯示,指示資料欄新增至較新版資料表結構描述的位置。
-
巢狀變更 – 以黃色圖示顯示,指示巢狀資料欄包含變更的位置。選擇要展開的資料欄,並檢視已刪除、已編輯、已移動或已新增的資料欄。
-
-
使用篩選欄位搜尋列,根據您在此輸入的字元顯示欄位。如果您在任一資料表版本中輸入資料欄名稱,則篩選的欄位會顯示在兩個資料表版本中,以顯示發生變更的位置。
-
若要比較屬性,請選擇屬性索引標籤。
-
若要停止比較版本,請選擇停止比較,以返回資料表清單。
使用爬蟲程式更新手動建立的資料目錄資料表
您可能想要手動建立 AWS Glue Data Catalog 資料表,然後使用AWS Glue爬蟲程式讓資料表保持更新狀態。按排程執行的爬蟲程式可以新增新的分割區,並更新含有任何結構描述變更的資料表。這也適用於從 Apache Hive 中繼存放區遷移來的資料表。
若要執行此作業,當您定義爬蟲程式時,請指定一或多個現有的 Data Catalog 資料表,而不是指定一或多個資料存放區做為抓取來源。爬蟲程式即會抓取目錄資料表指定的資料存放區。在這種情況下,系統就不會建立任何新的資料表,而會更新您手動建立的資料表。
以下是建議您手動建立目錄資料表,並指定目錄資料表做為爬蟲程式來源的其他原因:
-
您想選擇目錄資料表名稱,而不倚賴目錄資料表命名演算法。
-
在檔案格式可能會干擾分割區偵測,但資料來源路徑中誤存該檔案的情況下,您想防止建立新的資料表。
如需詳細資訊,請參閱步驟 2:選擇資料來源和分類器。
Data Catalog 資料表屬性
資料表屬性或參數,如 CLI AWS 中已知,是未經驗證的金鑰和值字串。您可以在資料表中設定自己的屬性,以支援在 AWS Glue外部使用 Data Catalog。使用 Data Catalog 的其他 服務也可以這樣做。在執行任務或爬蟲程式時 AWS Glue 設定一些資料表屬性。除非另有說明,否則這些屬性僅供內部使用,我們不支援其以當前形式繼續存在,也不支援手動變更這些屬性時的產品行為。
如需 AWS Glue 爬蟲程式所設定資料表屬性的詳細資訊,請參閱爬蟲程式在 Data Catalog 資料表上設定的參數。