填入及管理交易資料表 - AWS Glue

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

填入及管理交易資料表

阿帕奇冰山阿帕奇胡迪和 Linux 基金會三角洲湖是專為處理 Apache Spark 中的大規模資料分析和資料湖工作負載而設計的開放原始碼資料表格式。

您可以 AWS Glue Data Catalog 使用下列方法在中填入「冰山」、「胡迪湖」和「三角洲湖」表格:

  • AWS Glue 編目程式; — AWS Glue 編目程式 s 可以在數據目錄中自動發現和填充冰山,Hudi 和 Delta 湖表中繼資料。如需詳細資訊,請參閱 使用編目器填入資料目錄

  • AWS Glue ETL 工作 — 您可以建立 ETL 任務,將資料寫入冰山、Hudi 和三角洲湖資料表,並在資料目錄中填入其中繼資料。如需詳細資訊,請參閱搭配 AWS Glue ETL 工作使用資料湖架構

  • AWS Glue 主控台、 AWS Lake Formation 主控台 AWS CLI 或 API — 您可以使用 AWS Glue 主控台、Lake Formation 主控台或 API 在「資料目錄」中建立和管理 Iceberg 表格定義。

創建阿帕奇冰山表

您可以創建使用 Apache 鑲木地板數據格式 AWS Glue Data Catalog 與駐留在 Amazon S3 的數據格式阿帕奇冰山表。「資料目錄」中的表格是表示資料倉庫中資料的中繼資料定義。默認情況下, AWS Glue 創建冰山 v2 表。有關 v1 和 v2 資料表之間的區別,請參閱 Apache Iceberg 文件中的格式版本變更

Apache Iceberg 是開放式的資料表格式,專用於非常大型的分析資料集。Iceberg 允許輕鬆更改模式,也稱為模式演進,這意味著用戶可以在不中斷基礎數據的情況下從數據表中添加,重命名或刪除列。Iceberg 還為數據版本控制提供支持,允許用戶跟踪數據超時的更改。這會啟用時間行程功能,讓使用者能夠存取和查詢資料的歷史版本,並分析更新和刪除之間的資料變更。

您可以使用 AWS Glue 或 Lake Formation 控制台或 AWS Glue API 中的CreateTable操作在「數據目錄」中創建冰山表。如需詳細資訊,請參閱CreateTable 動作 (Python: 建立表格)。

在資料目錄中建立 Iceberg 表格時,必須在 Amazon S3 中指定表格式和中繼資料檔案路徑,才能執行讀取和寫入。

當您向 Amazon S3 資料位置註冊時,您可以使用 Lake Formation 使用精細的存取控制許可來保護您的 Iceberg 資料表。 AWS Lake Formation對於 Amazon S3 中的來源資料和未向 Lake Formation 註冊的中繼資料,存取權由 Amazon S3 的 IAM 許可政策和 AWS Glue 動作決定。如需詳細資訊,請參閱管理權限

注意

資料目錄不支援建立磁碟分割和新增 Iceberg 資料表屬性。

必要條件

若要在資料目錄中建立 Iceberg 表格,並設定 Lake Formation 資料存取權限,您需要完成下列需求:

  1. 創建冰山表所需的權限,而無需在 Lake Formation 註冊的數據。

    除了在「資料目錄」中建立資料表所需的權限外,資料表建立者還需要下列權限:

    • s3:PutObject在資源陣列上:aw:s3::: {儲存 bucketName}

    • s3:GetObject在資源陣列上:aw:s3::: {儲存 bucketName}

    • s3:DeleteObject在資源陣列上:aw:s3::: {儲存 bucketName}

  2. 使用 Lake Formation 註冊的數據創建冰山表所需的權限:

    若要使用 Lake Formation 管理和保護資料湖中的資料,請使用 Lake Formation 註冊具有表格資料的 Amazon S3 位置。這樣一來,Lake Formation 可以將憑據 AWS 分析服務(例如 Athena,Redshift 頻譜和 Amazon EMR)出售以訪問數據。如需註冊 Amazon S3 位置的詳細資訊,請參閱將 Amazon S3 位置新增至資料湖

    讀取和寫入在 Lake Formation 註冊的基礎資料的主體需要下列權限:

    • lakeformation:GetDataAccess

    • DATA_LOCATION_ACCESS

      對某個位置具有資料位置權限的主參與者也具有所有子位置的位置權限。

      有關資料位置權限的詳細資訊,請參閱基礎資料存取控制 ulink。

若要啟用壓縮,服務必須採用具有更新資料目錄中資料表之權限的 IAM 角色。如需詳細資訊,請參閱 資料表最佳化先決條件

創建一個冰山表

您可以使用 AWS Glue 或 Lake Formation 控制台或 AWS Command Line Interface 如本頁所述創建冰山 v1 和 v2 表。您也可以使用建立冰山表格。 AWS Glue 編目程式如需詳細資訊,請參閱 AWS Glue 開發人員指南中的資料目錄和檢索器

若要建立冰山表

Console
  1. 請登入 AWS Management Console 並開啟 AWS Glue 主控台,網址為 https://console.aws.amazon.com/glue/

  2. 在「資料目錄」下,選擇「表格」,然後使用「建立表格」按鈕指定下列屬性:

    • 表格名稱 — 輸入表格的名稱。如果您使用 Athena 存取表格,請參閱 Amazon Athena 使用者指南中的這些命名提示

    • 資料庫 — 選擇現有資料庫或建立新資料庫。

    • 描述」— 表格的描述。您可以撰寫說明,來協助您了解資料表的內容。

    • 表格格式 — 對於表格格式,請選擇 Apache 冰山。

    • 啟用壓縮 — 選擇「啟用壓縮」,將表格中的小型 Amazon S3 物件壓縮為更大的物件。

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

      若要進一步瞭解所需權限,請參閱 資料表最佳化先決條件

    • 位置 — 指定 Amazon S3 中存放中繼資料表的資料夾路徑。Iceberg 需要資料目錄中的中繼資料檔案和位置,才能執行讀取和寫入。

    • 結構描述 — 選擇新增資料欄以新增資料欄的資料欄和資料類型。您可以選擇建立空白資料表並稍後更新結構定義。數據目錄支持蜂巢數據類型。如需詳細資訊,請參閱 Hive 資料類型

      Iceberg 允許您在創建表後進化模式和分區。您可以使用 Athena 查詢來更新資料表結構描述和 Spark 查詢以更新分割區。

AWS CLI
aws glue create-table \ --database-name iceberg-db \ --region us-west-2 \ --open-table-format-input '{ "IcebergInput": { "MetadataOperation": "CREATE", "Version": "2" } }' \ --table-input '{"Name":"test-iceberg-input-demo", "TableType": "EXTERNAL_TABLE", "StorageDescriptor":{ "Columns":[ {"Name":"col1", "Type":"int"}, {"Name":"col2", "Type":"int"}, {"Name":"col3", "Type":"string"} ], "Location":"s3://DOC_EXAMPLE_BUCKET_ICEBERG/" } }'
主題