命名資料庫、資料表和資料行 - Amazon Athena

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

命名資料庫、資料表和資料行

請使用這些準則來命名 Athena 中的資料庫、資料表和資料行。

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

  • 中的資料庫名稱、資料表名稱和欄名稱可接受的字元 AWS Glue 必須為 UTF -8 字串,且必須為小寫。請注意,Athena 會在建立資料庫、資料表或資料欄時,自動降低DDL查詢中的任何大寫字母名稱。字串長度不得小於 1 或超過 255 個位元組。

  • 目前,名稱開頭可能有前導空格。由於這些前導空格很難偵測,而且在建立之後可能會造成可用性問題,因此請避免意外建立具有前導空格的物件名稱。

  • 如果您使用:AWS: Glue:: Database AWS CloudFormation 樣板來建立 AWS Glue 資料庫,但未指定資料庫名稱,則會 AWS Glue 自動產生格式的資料庫名稱 resource_name–random_string 這與 Athena 不兼容。

  • 您可以使用「目 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://amzn-s3-demo-bucket/'

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

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

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

資料欄名稱和複雜類型

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

保留字

Athena 中的某些保留字必須逸出。若要在DDL陳述式中逸出保留的關鍵字,請將它們括在反引號 (`) 中。若要在SQLSELECT陳述式和檢視的查詢中逸出保留的關鍵字,請將它們括在雙引號 (「) 中。

如需詳細資訊,請參閱在查詢中逸出保留關鍵字

其他資源

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

如需有關中的資料庫和表格的詳細資訊 AWS Glue,請參閱AWS Glue 開發人員指南中的資料庫表格