本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:開始使用 S3 Tables
在本教學課程中,您會建立資料表儲存貯體,並將區域中的資料表儲存貯體與 AWS 分析服務整合。接下來,您將使用 AWS CLI 在資料表儲存貯體中建立第一個命名空間和資料表。然後,您可以使用 AWS Lake Formation 來授予資料表的許可,以便開始使用 Athena 查詢資料表。
提示
如果您要將表格式資料從一般用途儲存貯體遷移至資料表儲存貯體,則 AWS 解決方案程式庫有引導式解決方案可協助您。此解決方案會使用 Apache Iceberg和 Amazon EMR 搭配 ,自動將已註冊 AWS Glue Data Catalog 並存放在一般用途儲存貯體中的 Apache Hive AWS Step Functions 和 資料表移至資料表儲存貯體Apache Spark。如需詳細資訊,請參閱 解決方案程式庫中的 AWS 將表格式資料從 Amazon S3 遷移至 S3 資料表的指引
主題
步驟 1:建立資料表儲存貯體並將其與 AWS 分析服務整合
在此步驟中,您可以使用 Amazon S3 主控台來建立您的第一個資料表儲存貯體。如需建立資料表儲存貯體的其他方法,請參閱建立資料表儲存貯體。
注意
根據預設,Amazon S3 主控台會自動整合資料表儲存貯體與 Amazon SageMaker Lakehouse,讓 AWS 分析服務能夠自動探索和存取 S3 Tables 資料。如果您使用 AWS Command Line Interface (AWS CLI)、 AWS SDKs或 REST API,以程式設計方式建立第一個資料表儲存貯體,則必須手動完成 AWS 分析服務整合。如需詳細資訊,請參閱搭配使用 Amazon S3 Tables 與 AWS 分析服務。
登入 AWS Management Console 並開啟位於 Amazon S3 主控台,網址為 https://https:/https://console.aws.amazon.com/s3/
://https://www./www./www.microsoft.com。 在頁面頂端的導覽列中,選擇目前顯示的 名稱 AWS 區域。接著,選擇您要建立資料表儲存貯體的區域。
在左側導覽窗格中,選擇資料表儲存貯體。
選擇 建立資料表儲存貯體。
在一般組態下,輸入資料表儲存貯體的名稱。
資料表儲存貯體名稱必須;
在目前 區域中,對於您的 而言,在 AWS 帳戶 中是唯一的。
長度必須介於 3 與 63 個字元之間。
僅包含小寫字母、數字和連字號 (
-
)。開頭和結尾為字母或數字。
建立資料表儲存貯體之後,您無法變更其名稱。 AWS 帳戶 建立資料表儲存貯體的 擁有該儲存貯體。如需命名資料表儲存貯體的詳細資訊,請參閱 資料表儲存貯體命名規則。
-
在與 AWS 分析服務整合區段中,確定已選取啟用整合核取方塊。
如果使用主控台建立第一個資料表儲存貯體時選取啟用整合,Amazon S3 會嘗試整合資料表儲存貯體與 AWS 分析服務。此整合可讓您使用 AWS 分析服務來存取目前區域中的所有資料表。如需詳細資訊,請參閱搭配使用 Amazon S3 Tables 與 AWS 分析服務。
選擇建立儲存貯體。
步驟 2:建立資料表命名空間和資料表
在此步驟中,您會在資料表儲存貯體中建立命名空間,然後在該命名空間下建立新的資料表。您可以使用 主控台或 建立資料表命名空間和資料表 AWS CLI。
重要
建立資料表時,請確定您在資料表名稱和資料表定義中使用所有小寫字母。例如,請確定您的資料欄名稱都是小寫。如果您的資料表名稱或資料表定義包含大寫字母,則 AWS Lake Formation 或 不支援資料表 AWS Glue Data Catalog。在這種情況下,即使您的資料表儲存貯體與 AWS 分析服務整合,Amazon Athena 等 AWS 分析服務也看不到您的資料表。
如果您的資料表定義包含大寫字母,您在 Athena 中執行SELECT
查詢時會收到下列錯誤訊息:「GENERIC_INTERNAL_ERROR:取得資料表請求失敗:com.amazonaws.services.glue.model.ValidationException:不支援的聯合資源 - 無效的資料表或資料欄名稱。」
下列程序使用 Amazon S3 主控台建立命名空間和具有 Amazon Athena 的資料表。
建立資料表命名空間和資料表
登入 AWS Management Console ,並在 https://Amazon S3 主控台開啟 https://console.aws.amazon.com/s3/
S3 主控台。 -
在左側導覽窗格中,選擇資料表儲存貯體。
-
在資料表儲存貯體頁面上,選擇要建立資料表的資料表儲存貯體。
-
在資料表儲存貯體詳細資訊頁面上,選擇使用 Athena 建立資料表。
-
在使用 Athena 建立資料表對話方塊中,選擇建立命名空間,然後在命名空間名稱欄位中輸入名稱。命名空間名稱必須是 1 到 255 個字元,且在資料表儲存貯體中是唯一的。有效字元為 a–z、0–9 和底線 (
_
)。命名空間名稱開頭不允許底線。 -
選擇 Create namespace (建立命名空間)。
-
選擇使用 Athena 建立資料表。
-
Amazon Athena 主控台隨即開啟,並顯示 Athena 查詢編輯器。查詢編輯器會填入可用來建立資料表的範例查詢。修改查詢以指定您希望資料表擁有的資料表名稱和資料欄。
-
當您完成修改查詢時,請選擇執行以建立資料表。
如果您的資料表建立成功,新資料表的名稱會出現在 Athena 中的資料表清單中。當您導覽回 Amazon S3 主控台時,新資料表會在重新整理清單後出現在資料表儲存貯體詳細資訊頁面上的資料表清單中。
若要使用下列 AWS CLI 範例命令在資料表儲存貯體中建立命名空間,然後在該命名空間下建立一個具有結構描述的新資料表,請將
這些值取代為您自己的值。user input placeholder
先決條件
-
將
AmazonS3TablesFullAccess
政策連接至您的 IAM 身分。 -
安裝 AWS CLI 版本 2.23.10 或更新版本。如需詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的「安裝或更新最新版 AWS CLI」。
執行下列命令,在資料表儲存貯體中建立新的命名空間:
aws s3tables create-namespace \ --table-bucket-arn arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
\ --namespacemy_namespace
執行下列命令,確認您的命名空間已成功建立:
aws s3tables list-namespaces \ --table-bucket-arn arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
執行下列命令,以資料表結構描述建立新的資料表:
aws s3tables create-table --cli-input-json file://
mytabledefinition.json
對於
mytabledefinition.json
檔案,請使用下列範例資料表定義:{ "tableBucketARN": "arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
", "namespace": "my_namespace
", "name": "my_table
", "format": "ICEBERG", "metadata": { "iceberg": { "schema": { "fields": [{"name": "id", "type": "int","required": true}, {"name": "name", "type": "string"}, {"name": "value", "type": "int"}
] } } } }
(選用) 步驟 3:授予資料表上的 Lake Formation 許可
在此步驟中,您會將新資料表的 Lake Formation 許可授予其他 IAM 主體。這些許可允許您以外的主體使用 Athena 和其他 AWS 分析服務來存取資料表儲存貯體資源。如需詳細資訊,請參閱授予資料表或資料庫的許可。如果您是將存取資料表的唯一使用者,您可以略過此步驟。
-
在 開啟 AWS Lake Formation 主控台https://console.aws.amazon.com/lakeformation/
,並以資料湖管理員身分登入。如需如何建立資料湖管理員的詳細資訊,請參閱建立資料湖管理員。 在導覽窗格中,選擇資料許可,然後選擇授予。
在授予許可頁面的主體下,選擇 IAM 使用者和角色,然後選擇您要允許 在資料表上執行查詢的 IAM 使用者或角色。
在 LF-標籤或型錄資源下,選擇已命名的的資料型錄資源。
-
執行下列其中一項操作,取決於您是否要授予您帳戶中所有資料表的存取權,或是否只授予您建立之資料表儲存貯體內資源的存取權:
-
針對目錄,選擇您在整合資料表儲存貯體時建立的帳戶層級目錄。例如
。111122223333
:s3tablescatalog -
針對目錄,選擇資料表儲存貯體的子目錄。例如
。111122223333
:s3tablescatalog/amzn-s3-demo-table-bucket
-
-
(選用) 如果您為資料表儲存貯體選擇子目錄,請執行下列其中一項或兩項操作:
針對資料庫,選擇您建立的資料表儲存貯體命名空間。
針對資料表,選擇您在資料表儲存貯體中建立的資料表,或選擇所有資料表。
-
視您選擇目錄或子目錄而定,並根據您接著選擇資料庫或資料表,您可以在目錄、資料庫或資料表層級設定許可。如需 Lake Formation 許可的詳細資訊,請參閱《 AWS Lake Formation 開發人員指南》中的管理 Lake Formation 許可。
執行以下任意一項:
-
針對目錄許可,選擇超級以授予其他主體目錄上的所有許可,或選擇更精細的許可,例如描述。
-
對於資料庫許可,您無法選擇超級來授予其他主體資料庫上的所有許可。反之,請選擇更精細的許可,例如 Describe。
-
針對資料表許可,選擇超級以授予其他主體資料表上的所有許可,或選擇更精細的許可,例如選取或描述。
注意
當您將 Data Catalog 資源的 Lake Formation 許可授予外部帳戶或直接授予另一個帳戶中的 IAM 主體時,Lake Formation 會使用 AWS Resource Access Manager (AWS RAM) 服務來共用資源。如果承授者帳戶與承授者帳戶位於相同的組織中,則承授者可以立即使用共用資源。如果承授者帳戶不在同一個組織中, AWS RAM 會傳送邀請給承授者帳戶,以接受或拒絕資源授予。然後,若要讓共用資源可用,承授者帳戶中的資料湖管理員必須使用 AWS RAM 主控台或 AWS CLI 接受邀請。如需跨帳戶資料共用的詳細資訊,請參閱《 AWS Lake Formation 開發人員指南》中的 Lake Formation 中的跨帳戶資料共用。
-
-
選擇 Grant (授予)。
步驟 4:在 Athena 中使用 SQL 查詢資料
您可以在 Athena 中使用 SQL 查詢資料表。Athena 支援 S3 Tables 的資料定義語言 (DDL)、資料處理語言 (DML) 和資料查詢語言 (DQL) 查詢。
您可以從 Amazon S3 主控台或透過 Amazon Athena 主控台存取 Amazon Athena 查詢。
下列程序使用 Amazon S3 主控台來存取 Athena 查詢編輯器,讓您可以使用 Amazon Athena 查詢資料表。
查詢資料表
登入 AWS Management Console ,並在 https://Amazon S3 主控台開啟 https://console.aws.amazon.com/s3/
S3 主控台。 -
在左側導覽窗格中,選擇資料表儲存貯體。
-
在資料表儲存貯體頁面上,選擇包含您要查詢之資料表的資料表儲存貯體。
-
在資料表儲存貯體詳細資訊頁面上,選擇您要查詢之資料表名稱旁的選項按鈕。
-
選擇 Athena 的查詢資料表。
-
Amazon Athena 主控台隨即開啟,Athena 查詢編輯器隨即出現,並為您載入範例
SELECT
查詢。根據您的使用案例需要修改此查詢。 -
若要執行查詢,選擇 Run (執行)。
查詢資料表
前往 https://console.aws.amazon.com/athena/
開啟 Athena 主控台。 -
查詢您的資料表。以下是您可以修改的範例查詢。請務必以您的資訊取代
。user input placeholders
SELECT * FROM "s3tablescatalog/
amzn-s3-demo-table-bucket
"."my_namespace
"."my_table
" LIMIT 10 -
若要執行查詢,選擇 Run (執行)。