本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資料表、資料庫和資料欄的名稱
使用這些秘訣來命名 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 查詢中將資料欄名稱指定為 Castle
或 CASTLE
,則 Athena 會將您要執行查詢的名稱變成小寫,但會使用您在查詢中選擇的大小寫來顯示資料欄標題。
資料庫、資料表和資料欄名稱必須小於或等於 255 個字元的長度。
以底線開頭的名稱
建立資料表時,使用反引號括住以底線開頭的資料表、檢視或資料欄名稱。例如:
CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`( `_id` string, `_index` string) LOCATION 's3://DOC-EXAMPLE-BUCKET/'
以數字開頭的資料表、檢視或資料行名稱
在執行 SELECT
、CTAS
或 VIEW
查詢時,在以數字開頭的識別碼 (例如資料表、檢視或資料欄名稱) 周圍加上引號。例如:
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 開發人員指南》中的 < 資料庫和表格 >。