建立資料表 - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立資料表

即使執行爬行者程式是清查資料存放區中資料的建議方法,您也可以將中繼資料表新增至 AWS Glue Data Catalog 手動。這種方法可讓您更好地控制中繼資料定義,並根據您的特定需求對其進行自訂。

您也可以使用以下方式手動將表格加入至「資料目錄」:

使用主控台或手動定義資料表時API,您可以指定資料表結構描述和分類欄位的值,該欄位指出資料來源中資料的類型和格式。如果是爬蟲程式來建立資料表,資料格式和結構描述就會由內建分類器或自訂分類器決定。如需使用建立資料表的詳細資訊 AWS Glue 控制台,請參閱使用控制台創建表

資料表分割區

同時 AWS Glue Amazon Simple Storage Service (Amazon S3) 資料夾的資料表定義可描述分區資料表。例如,為了改善查詢效能,分割的資料表可能使用月份名稱為金鑰,以將每月資料分隔成不同的檔案。In (入) AWS Glue,資料表定義包含資料表的分割索引鍵。當 AWS Glue 評估 Amazon S3 資料夾中的資料以對資料表進行分類,並決定是否新增個別資料表或分區資料表。

您可以在資料表上建立分割區索引來擷取分割區的子集,而不是載入資料表中的所有分割區。如需使用分割區索引的詳細資訊,請參閱建立分割區索引

以下所有條件必須為真 AWS Glue 若要為 Amazon S3 資料夾建立分區資料表:

  • 文件的模式是相似的,由 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 控制台。

Data Catalog 也可以包含資料庫資源連結。

如需有關資源連結的詳細訊,請參閱在 AWS Lake Formation 開發人員指南

使用控制台創建表

中的一個表 AWS Glue Data Catalog 是表示資料倉庫中資料的中繼資料定義。您可以在執行爬行者程式時建立表格,或者您可以在 AWS Glue 控制台。「表格」清單 AWS Glue 控制台顯示表的元數據的值。建立 ETL (擷取、轉換和載入) 工作時,您可以使用資料表定義來指定來源和目標。

注意

隨著最近的變化 AWS 管理主控台,您可能需要修改現有的IAM角色才能取SearchTables得權限。對於建立新角色,已將SearchTablesAPI權限新增為預設值。

若要開始使用,請登入 AWS Management Console 並打開 AWS Glue 控制台位於https://console.aws.amazon.com/glue/。選擇 Tables (資料表) 索引標籤,然後使用 Add tables (新增資料表) 按鈕來建立資料表 (藉由使用爬蟲程式或手動輸入屬性)。

在主控台上新增資料表

若要使用爬蟲程式來新增資料表,請依序選擇 Add tables (新增資料表)、Add tables using a crawler (使用爬蟲程式來新增資料表)。然後,依照 Add crawler (新增爬蟲程式) 精靈中的說明來進行操作。當爬行者程式執行時,表格會新增至 AWS Glue Data Catalog。 如需詳細資訊,請參閱使用編目器填入資料目錄

如果您知道在 Data Catalog 中建立 Amazon Simple Storage Service (Amazon S3) 資料表定義所需的屬性,則可以使用資料表精靈來建立。依序選擇 Add tables (新增資料表)、Add table manually (手動新增資料表),然後依照 Add table (新增資料表) 精靈中的說明來進行操作。

透過主控台來手動新增資料表時,請注意下列事項:

  • 如果您預計從 Amazon Athena 存取資料表,則應提供只有英數字元和底線字元的名稱。如需詳細資訊,請參閱 Athena 名稱

  • 您的來源資料的位置必須是 Amazon S3 路徑。

  • 資料的格式必須符合精靈中所列出的其中一種格式。系統會根據選擇的格式自動填入對應的分類 SerDe、和其他表格性質。您可以使用下列格式來定義資料表:

    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 表,或阿帕奇冰山格式的表。

資料目錄提供下列表格最佳化選項,以管理資料表儲存並改善 Iceberg 資料表的查詢效能。

  • 壓縮 — 將資料檔案合併並重寫,可移除過時的資料,並將片段化的資料合併為更大、更有效率的檔案。

  • 快照保留 — 快照是 Iceberg 資料表的時間戳記版本。快照保留組態可讓客戶強制執行快照保留多久,以及要保留多少快照。設定快照保留最佳化工具可移除較舊、不必要的快照及其相關的基礎檔案,以協助管理儲存額外負荷。

  • 刪除孤立檔案 — 孤立檔案是 Iceberg 表格中繼資料不再參考的檔案。這些檔案可能會隨著時間累積,尤其是在表格刪除或失敗ETL工作等作業之後。允許啟用孤立檔案刪除 AWS Glue 定期識別並刪除這些不必要的文件,釋放存儲空間。

如需詳細資訊,請參閱最佳化處理 Iceberg 資料表

優化配置

您可以使用預設設定或自訂啟用表格最佳化工具的設定。

IAM角色

若要執行資料表最佳化工具,服務會代表您擔任IAM角色。您可以使用下拉式清單選擇IAM角色。請確認角色具有啟用壓縮的必要權限。

若要深入瞭解IAM角色所需權限,請參閱 資料表最佳化先決條件

位置

指標,指向此資料表定義所代表資料存放區中資料的位置。

分類

建立資料表時所提供的分類值。這通常是在爬蟲程式執行時寫入,用來指定來源資料的格式。

上次更新

此表格在「資料目錄」中更新的時間和日期 (UTC)。

加入日期

此表格加入至「資料目錄」的時間和日期 (UTC)。

已棄用

If AWS Glue 發現資料目錄中的表格不再存在於其原始資料倉庫中,並在資料目錄中將該表標記為已取代。如果您執行的任務參照了已作廢的資料表,則任務可能會失敗。針對參照已作廢資料表的任務來進行編輯,將這些做為來源和目標的資料表移除。我們建議您刪除不再需要的已作廢資料表。

連線

If 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 (編輯結構描述) 來新增和移除欄、變更欄名稱和變更資料類型。

若要比較不同版本的表格 (包括其綱要),請選擇 side-by-side 比較版本,查看表格之兩個結構描述版本的比較。如需詳細資訊,請參閱 比較表結構定義版本

若要顯示 Amazon S3 分區中所包含的檔案,請選擇 View partition (檢視分割區)。對於 Amazon S3 資料表,Key (金鑰) 欄會顯示分區金鑰,用來將來源資料存放區中的資料表分區。分區 (Partitioning) 是一種方法,用來根據金鑰欄位的值 (例如日期、位置或部門),將資料表劃分為相關的部分。如需關於分區的詳細資訊,請搜尋網際網路,取得「Hive 分區」的相關資訊。

注意

若要取得檢視表格詳細資料的 step-by-step 指引,請參閱主控台中的 Ex plore (Explore) 表格教學課程。

比較表結構定義版本

當您比較兩個版本的資料表結構定義時,您可以展開和收合巢狀資料列、比較兩個版本的結構定義,以及檢視資料表屬性 side-by-side side-by-side,來比較巢狀資料列變更。

比較版本

  1. 從 AWS Glue 主控台,選擇表格,然後選擇動作,然後選擇比較版本

    螢幕擷取畫面會顯示選取後的「動作」按鈕。下拉式功能表會顯示「比較版本」選項。
  2. 選擇版本下拉式選單,以選擇要比較的版本。比較結構描述時,「結構描述」索引標籤會以橙色反白顯示。

  3. 當您比較兩個版本之間的資料表時,資料表結構描述會顯示在畫面的左側和右側。這可讓您透過比較「欄名稱」、「資料類型」、「索引鍵」和「註解」欄位,以視覺方式判斷變更 side-by-side。發生變更時,彩色圖示會顯示所做變更的類型。

    • 已刪除 – 以紅色圖示顯示,指示資料欄已從舊版資料表結構描述中移除的位置。

    • 已編輯或已移動 – 以藍色圖示顯示,指示資料欄在較新版資料表結構描述中修改或移動的位置。

    • 已新增 – 以綠色圖示顯示,指示資料欄新增至較新版資料表結構描述的位置。

    • 巢狀變更 – 以黃色圖示顯示,指示巢狀資料欄包含變更的位置。選擇要展開的資料欄,並檢視已刪除、已編輯、已移動或已新增的資料欄。

    螢幕擷取畫面會顯示兩個版本之間的資料表結構描述比較 左側是較舊版本。右側是較新版本。刪除圖示位於從較舊版本移除且不再於較新版本提供的資料欄旁邊。
  4. 使用篩選欄位搜尋列,根據您在此輸入的字元顯示欄位。如果您在任一資料表版本中輸入資料欄名稱,則篩選的欄位會顯示在兩個資料表版本中,以顯示發生變更的位置。

  5. 若要比較屬性,請選擇屬性索引標籤

  6. 若要停止比較版本,請選擇停止比較,以返回資料表清單。

使用爬蟲程式更新手動建立的資料目錄資料表

您可能想要建立 AWS Glue Data Catalog 手動表格,然後保持更新 AWS Glue 爬蟲。按排程執行的爬蟲程式可以新增新的分割區,並更新含有任何結構描述變更的資料表。這也適用於從 Apache Hive 中繼存放區遷移來的資料表。

若要執行此作業,當您定義爬蟲程式時,請指定一或多個現有的 Data Catalog 資料表,而不是指定一或多個資料存放區做為抓取來源。爬蟲程式即會抓取目錄資料表指定的資料存放區。在這種情況下,系統就不會建立任何新的資料表,而會更新您手動建立的資料表。

以下是建議您手動建立目錄資料表,並指定目錄資料表做為爬蟲程式來源的其他原因:

  • 您想選擇目錄資料表名稱,而不倚賴目錄資料表命名演算法。

  • 在檔案格式可能會干擾分割區偵測,但資料來源路徑中誤存該檔案的情況下,您想防止建立新的資料表。

如需詳細資訊,請參閱步驟 2:選擇資料來源和分類器

Data Catalog 資料表屬性

表格屬性或參數 (如中所知) AWS CLI,是未驗證的索引鍵和值字串。您可以在表格上設定自己的性質,以支援資料目錄以外的使用 AWS Glue。 使用資料目錄的其他服務也可能會這樣做。 AWS Glue 在執行工作或爬行程式時設定一些表格屬性。除非另有說明,否則這些屬性僅供內部使用,我們不支援其以當前形式繼續存在,也不支援手動變更這些屬性時的產品行為。

如需有關表格性質設定的詳細資訊 AWS Glue 爬蟲,請參閱爬蟲程式在 Data Catalog 資料表上設定的參數