表、数据库和列的名称
使用这些技巧在 Athena 中命名数据库对象。
数据库、表和列名的长度必须小于或等于 255 个字符
数据库、表和列名的长度必须少于或等于 255 个字符。超过此限制会生成错误,例如“名称”处的值无法满足约束条件:成员的长度必须小于或等于 255 个字符
。
Athena 中的表名称和表列名称使用小写
Athena 在 DDL 和 DML 查询中接受混合大小写,但在执行查询时使用小写名称。因此,请避免使用混合大小写表或列名称,并且不要单独依赖 Athena 中的大小写来区分这些名称。例如,如果您使用 DDL 语句创建名为 Castle
的列,则创建的列将被转换成小写,castle
。如果您随后将 DML 查询中的列名指定为 Castle
或者 CASTLE
,Athena 会将名称转换为小写以为您运行查询,但使用您在查询中选择的大小写显示列标题。
数据库、表和列名的长度必须小于或等于 255 个字符。
特殊字符
不支持特殊字符,下划线 (_) 除外。有关更多信息,请参阅 Apache Hive LanguageManual DDL
重要
尽管通过将下划线以外的特殊字符包含在反引号 (`) 字符中可以成功创建表、视图、数据库或列名称,但引用它们的后续 DDL 或 DML 查询可能会失败。
以下划线开头的名称
创建表时,使用反引号将以下划线开头的表、视图或列名称括起来。例如:
CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`( `_id` string, `_index` string) LOCATION 's3://my-athena-data/'
以数字开头的表、视图或列名称
在运行 SELECT
、CTAS
或 VIEW
查询中,用引号将以数字开头的表、视图或列名称等标识符括起来。例如:
CREATE OR REPLACE VIEW "123view" AS SELECT "123columnone", "123columntwo" FROM "234table"
列名和复杂类型
对于复杂类型,只有字母数字字符、下划线 (_
) 和句号 (.
) 允许在列名称中使用。要为包含受限字符的键创建表和映射,可以使用自定义 DDL 语句。有关更多信息,请参阅 Amazon 大数据博客文章:使用 JSONSerDe 在 Amazon Athena 中通过嵌套 JSON 和映射来创建表
保留字
必须对 Athena 中的某些预留字进行转义。要对 DDL 语句中的保留关键字进行转义,请使用反引号 (`) 将其括起来。要对 SQL SELECT
语句以及视图的查询中的保留关键字进行转义,请使用双引号 ('') 将其括起来。
有关更多信息,请参阅保留关键字。
另请参阅
有关完整的数据库和表创建语法,请参阅以下页面。