資料表、資料庫和資料欄的名稱 - Amazon Athena

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

資料表、資料庫和資料欄的名稱

使用這些秘訣來命名 Athena 中的資料庫物件。

資料庫、資料表和資料欄名稱需求

  • 中的資料庫名稱、表格名稱和欄名稱可接受的字元 AWS Glue 必須是 UTF-8 字串。字串長度不得小於 1 或超過 255 個位元組。超過此限制會產生錯誤,例如「name」的值無法滿足限制條件:成員的長度必須小於或等於 255。可以使用的字元包括空格,並由下列單行字串樣式定義:

    [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*
  • 目前, AWS Glue regex 模式允許將前導空格添加到名稱的開頭。由於這些前導空格很難偵測,而且在建立之後可能會造成可用性問題,因此請避免建立具有前導空格的物件名稱。

  • 如果您使用AWS::Glue::Database AWS CloudFormation 範本來建立資 AWS Glue 料庫,但未指定資料庫名稱,則會 AWS Glue 自動產生與 Athena 不相容的資料庫名稱 — random_string 格式的資料庫名稱。

  • 您可以使用「目 AWS Glue 錄管理員」更名欄,但無法更名表格名稱或資料庫名稱。若要解決此限制,您必須使用舊資料庫的定義,建立具有新名稱的資料庫。然後,您可以使用舊資料庫中資料表的定義,重新建立新資料庫中的資料表。若要這麼做,您可以使用 AWS CLI 或 AWS Glue SDK。如需這些步驟,請參閱 使用重新 AWS CLI 建立 AWS Glue 資料庫及其表格

對 Athena 中的資料表名稱和資料表資料欄名稱使用小寫

Athena 接受在 DDL 和 DML 查詢中混合使用大小寫,但是當其執行查詢時名稱須為小寫。出於這個原因,請避免對資料表或資料欄名稱混合使用大小寫,並且不要在 Athena 中僅依賴大小寫來區分這些名稱。例如,如果您使用 DDL 陳述式來建立名為 Castle 的資料欄,則建立的資料欄將會是小寫的 castle。如果您接著在 DML 查詢中將資料欄名稱指定為 CastleCASTLE,則 Athena 會將您要執行查詢的名稱變成小寫,但會使用您在查詢中選擇的大小寫來顯示資料欄標題。

資料庫、資料表和資料欄名稱必須小於或等於 255 個字元的長度。

以底線開頭的名稱

建立資料表時,使用反引號括住以底線開頭的資料表、檢視或資料欄名稱。例如:

CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`( `_id` string, `_index` string) LOCATION 's3://DOC-EXAMPLE-BUCKET/'

以數字開頭的資料表、檢視或資料行名稱

在執行 SELECTCTASVIEW 查詢時,在以數字開頭的識別碼 (例如資料表、檢視或資料欄名稱) 周圍加上引號。例如:

CREATE OR REPLACE VIEW "123view" AS SELECT "123columnone", "123columntwo" FROM "234table"

資料欄名稱和複雜類型

對於複雜類型,資料欄名稱中僅允許英數字元、底線 (_) 和句點 (.)。若要為具有限制字元的索引鍵建立資料表和映射,您可以使用自訂 DDL 陳述式。如需詳細資訊,請參閱AWS 大數據部落格中的使用 JSON 從巢狀 JSON 和對應SerDe在 Amazon Athena 建立資料表一文。

保留字

Athena 中的某些保留字必須逸出。若要逸出 DDL 陳述式中的預留關鍵字,請以反引號 (`) 括住它們。若要逸出檢視上的 SQL SELECT 陳述式和查詢中的預留關鍵字,請以雙引號 ('') 將其括住。

如需詳細資訊,請參閱 保留的關鍵字

其他資源

如需完整的資料庫和資料表建立語法,請參閱下列頁面。

如需中資料庫和表格的詳細資訊 AWS Glue,請參閱《AWS Glue 開發人員指南》中的 < 資料庫表格 >。