Nomear bancos de dados, tabelas e colunas - Amazon Athena

Nomear bancos de dados, tabelas e colunas

Use estas diretrizes para nomear bancos de dados, tabelas e colunas no Athena.

Requisitos para nome de bancos de dados, tabelas e colunas

  • Os caracteres aceitáveis para nomes de bancos de dados, nomes de tabelas e nomes de colunas no AWS Glue devem ser strings em UTF-8 e em minúsculas. Observe que o Athena reduz automaticamente muda para minúsculas todos os nomes em maiúsculas nas consultas DDL ao criar bancos de dados, tabelas ou colunas. A string não pode ter menos do que 1 ou mais de 255 bytes de comprimento.

  • Atualmente, é possível ter espaços iniciais no início dos nomes. Como pode ser difícil detectar esses espaços iniciais e eles podem causar problemas de usabilidade após a criação, evite inadvertidamente criar nomes de objetos que contenham espaços iniciais.

  • Se você usar um modelo AWS::Glue::Database do AWS CloudFormation para criar um banco de dados do AWS Glue e não especificar um nome de banco de dados, o AWS Glue gera automaticamente um nome de banco de dados no formato resource_name—random_string que não é compatível com o Athena.

  • Você pode usar o Gerenciador de Catálogos do AWS Glue para renomear colunas, mas não nomes de tabelas ou nomes de banco de dados. Para resolver essa limitação, é necessário usar uma definição do banco de dados antigo para criar um banco de dados com o novo nome. Em seguida, use as definições das tabelas do banco de dados antigo para recriar as tabelas no novo banco de dados. Para isso, você pode usar a AWS CLI ou o SDK do AWS Glue. Para obter as etapas, consulte Usar a AWS CLI para recriar um banco de dados do AWS Glue e suas tabelas.

Usar letras minúsculas nos nomes de tabela e de coluna da tabela no Athena

O Athena aceita maiúsculas e minúsculas nas consultas DDL e DML, mas usa letras minúsculas nos nomes quando executa a consulta. Por essa razão, evite usar maiúsculas e minúsculas em nomes de tabelas ou colunas, e não confie no uso de letras maiúsculas e minúsculas do Athena para distinguir esses nomes. Por exemplo, se você usar uma instrução DDL para criar uma coluna chamada Castle, a coluna criada será mudada para letras minúsculas castle. Se você especificar o nome da coluna em uma consulta DML como Castle ou CASTLE, o Athena mudará o nome para letras minúsculas para você executar a consulta, mas exibirá o cabeçalho da coluna da forma como você escolheu na consulta.

Os nomes de bancos de dados, tabelas e colunas ter, no máximo, 255 caracteres.

Nomes que começam com um sublinhado

Ao criar tabelas, coloque entre acentos graves os nomes de tabelas, visualizações ou colunas que começam com sublinhado. Por exemplo:

CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`( `_id` string, `_index` string) LOCATION 's3://amzn-s3-demo-bucket/'

Nomes de tabelas, visualizações ou colunas que começam com números

Ao executar consultas SELECT, CTAS ou VIEW, coloque entre aspas os identificadores, como nomes de tabelas, visualizações ou colunas, que começam com um dígito. Por exemplo:

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

Nomes de colunas e tipos complexos

Para tipos complexos, apenas caracteres alfanuméricos, sublinhado (_) e ponto final (.) são permitidos nos nomes de colunas. Para criar uma tabela e mapeamentos para chaves que têm caracteres restritos, você pode usar uma instrução DDL personalizada. Para obter mais informações, consulte o artigo Create tables in Amazon Athena from nested JSON and mappings using JSONSerDe (Criar tabelas no Amazon Athena de JSON e mapeamentos aninhados usando JSONSerDe) no blog sobre big data da AWS.

Palavras reservadas

Algumas palavras reservadas no Athena devem ser escapadas. Para inserir um caractere de escape em palavras-chave reservadas em instruções DDL, coloque-as entre acentos graves (`). Para usar escape em palavras-chave reservadas em instruções SQL SELECT e em consultas em visualizações, coloque-as entre aspas duplas (").

Para ter mais informações, consulte Escapar palavras-chave reservadas em consultas.

Recursos adicionais

Para obter a sintaxe completa de criação de bancos de dados e tabelas, consulte as páginas a seguir.

Para obter mais informações sobre bancos de dados e tabelas no AWS Glue, consulte Bancos de dados e Tabelas no Guia do desenvolvedor do AWS Glue.