

# Tipos de dados no Amazon Athena
<a name="data-types"></a>

Ao executar `CREATE TABLE`, você especifica os nomes de coluna e o tipo de dados que cada coluna pode conter. As tabelas que você cria são armazenadas no AWS Glue Data Catalog. 

Para facilitar a interoperabilidade com outros mecanismos de consulta, o Athena usa nomes de tipos de dados do [Apache Hive](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types) para instruções DDL, como `CREATE TABLE`. Para consultas DML como `SELECT`, `CTAS` e `INSERT INTO`, o Athena usa nomes de tipo de dados [Trino](https://trino.io/docs/current/language/types.html). A tabela a seguir mostra os tipos de dados compatíveis com o Athena. Quando os tipos DDL e DML forem diferentes em termos de nome, disponibilidade ou sintaxe, eles serão apresentados em colunas separadas.


****  

<table>
<thead>
  <tr><th>DDL</th><th>DML</th><th>Descrição</th></tr>
</thead>
<tbody>
  <tr><td colspan="2">BOOLEAN</td><td>Os valores são true e false.</td></tr>
  <tr><td colspan="2">TINYINT</td><td>Um número inteiro de 8 bits com sinal no formato de complemento de 2, com um valor mínimo de -27 e um valor máximo de 27-1.</td></tr>
  <tr><td colspan="2">SMALLINT</td><td>Um número inteiro de 16 bits com sinal no formato de complemento de 2, com um valor mínimo de -215 e um valor máximo de 215-1.</td></tr>
  <tr><td colspan="2">INT, INTEGER</td><td>Um valor de 32 bits com sinal no formato de complemento de 2, com um valor mínimo de -231 e um valor máximo de 231-1.</td></tr>
  <tr><td colspan="2">BIGINT</td><td> Um número inteiro de 64 bits com sinal no formato de complemento de 2, com um valor mínimo de -263 e um valor máximo de 263-1.</td></tr>
  <tr><td>FLOAT</td><td>REAL</td><td>Um número de 32 bits com sinal de ponto flutuante de precisão única. O intervalo é de 1,40129846432481707e-45 a 3,40282346638528860e\+38, positivo ou negativo. Segue o padrão IEEE para aritmética de ponto flutuante (IEEE 754).</td></tr>
  <tr><td colspan="2">DOUBLE</td><td>Um número de 64 bits com sinal de ponto flutuante de precisão dupla. O intervalo é de 4,94065645841246544e-324d a 1,79769313486231570e\+308d, positivo ou negativo. Segue o padrão IEEE para aritmética de ponto flutuante (IEEE 754).</td></tr>
  <tr><td colspan="2">DECIMAL({{precisão}}, {{escala}})</td><td>{{precision}} é o número total de dígitos. {{scale}} (opcional) é o número de dígitos na parte da fração com um padrão de 0. Por exemplo, use estas definições de tipo: decimal(11,5), decimal(15). O valor máximo para {{precisão}} é 38 e o valor máximo para {{escala}} é 38.</td></tr>
  <tr><td colspan="2">CHAR, CHAR({{comprimento}})</td><td>Dados de caractere de comprimento fixo, com um comprimento especificado entre 1 e 255, p. ex., char(10). Se o {{comprimento}} for especificado, as strings serão truncadas no comprimento especificado quando lidas. Se a string de dados subjacente for mais longa, a string de dados subjacente permanecerá inalterada.<br />Para obter mais informações, consulte [CHAR Hive data type](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-char) (Tipo de dado CHAR do Hive).</td></tr>
  <tr><td>STRING</td><td>VARCHAR</td><td>Dados de caracteres de comprimento variável.</td></tr>
  <tr><td colspan="2">VARCHAR({{comprimento}})</td><td>Dados de caracteres de comprimento variável com um comprimento máximo de leitura. As strings serão truncadas no comprimento especificado quando lidas. Se a string de dados subjacente for mais longa, a string de dados subjacente permanecerá inalterada.</td></tr>
  <tr><td>BINARY</td><td>VARBINARY</td><td>Dados binários de comprimento variável.</td></tr>
  <tr><td>Indisponível</td><td>TIME</td><td>Uma hora do dia com precisão de milissegundos.</td></tr>
  <tr><td>Indisponível</td><td>TIME({{precisão}})</td><td>Uma hora do dia com uma precisão específica. TIME(3) é equivalente a TIME.</td></tr>
  <tr><td>Indisponível</td><td>TIME WITH TIME ZONE</td><td>Uma hora do dia em um fuso horário. Os fusos horários devem ser especificados como desvios em relação ao horário UTC.</td></tr>
  <tr><td colspan="2">DATE</td><td>Uma data do calendário com o ano, o mês e o dia.</td></tr>
  <tr><td>TIMESTAMP</td><td>TIMESTAMP, TIMESTAMP WITHOUT TIME ZONE</td><td>Uma data do calendário e hora do dia com precisão de milissegundos.</td></tr>
  <tr><td>Indisponível</td><td>TIMESTAMP({{precisão}}), TIMESTAMP({{precisão}}) WITHOUT TIME ZONE</td><td>Uma data do calendário e hora do dia com uma precisão específica. TIMESTAMP(3) é equivalente a TIMESTAMP.</td></tr>
  <tr><td>Indisponível</td><td>TIMESTAMP WITH TIME ZONE</td><td>Uma data do calendário e hora do dia em um fuso horário. É possível especificar os fusos horários como desvios em relação ao horário UTC, como nomes de fuso horário IANA ou usando UTC, UT, Z ou GMT.</td></tr>
  <tr><td>Indisponível</td><td>TIMESTAMP({{precisão}}) WITH TIME ZONE</td><td>Uma data do calendário e hora do dia com uma precisão específica, em um fuso horário.</td></tr>
  <tr><td>Indisponível</td><td>INTERVALO ENTRE UM ANO E UM MÊS</td><td>Um intervalo de um ou mais meses inteiros</td></tr>
  <tr><td>Indisponível</td><td>INTERVALO ENTRE UM DIA E UM SEGUNDO</td><td>Um intervalo de um ou mais segundos, minutos, horas ou dias</td></tr>
  <tr><td>ARRAY<{{tipo\_elemento}}></td><td>ARRAY[{{tipo\_elemento}}]</td><td>Uma matriz de valores. Todos os valores devem ser do mesmo tipo de dados.</td></tr>
  <tr><td>MAP<{{tipo\_chave}}, {{tipo\_valor}}></td><td>MAP({{tipo\_chave}}, {{tipo\_valor}})</td><td>Um mapa no qual é possível consultar os valores por chave. Todas as chaves e todos os valores devem ser do mesmo tipo de dados. Por exemplo, map<string, integer>.</td></tr>
  <tr><td>STRUCT<{{nome\_campo\_1}}:{{tipo\_campo\_1}}, {{nome\_campo\_2}}:{{tipo\_campo\_2}}, …></td><td>ROW({{nome\_campo\_1}}:{{tipo\_campo\_1}}, {{nome\_campo\_2}}:{{tipo\_campo\_2}}, …)</td><td>Uma estrutura de dados com campos nomeados e seus valores.</td></tr>
  <tr><td>Indisponível</td><td>JSON</td><td>Tipo de valor JSON, que pode ser um objeto JSON, uma matriz JSON, um número JSON, uma string JSON, true, false ou null.</td></tr>
  <tr><td>Indisponível</td><td>UUID</td><td>Um UUID (identificador exclusivo universal).</td></tr>
  <tr><td>Indisponível</td><td>IPADDRESS</td><td>Endereço IPv4 ou IPv6.</td></tr>
  <tr><td rowspan="5">Indisponível</td><td>[Log de HyperLogLog](https://trino.io/docs/current/language/types.html#hyperloglog-type)</td><td rowspan="5">Esses tipos de dados são compatíveis com mecanismos internos de funções aproximadas. Para obter mais informações sobre cada tipo, acesse o link da entrada correspondente na documentação do Trino.</td></tr>
  <tr><td>[P4HyperLogLog](https://trino.io/docs/current/language/types.html#p4hyperloglog)</td></tr>
  <tr><td>[SetDigest](https://trino.io/docs/current/language/types.html#setdigest)</td></tr>
  <tr><td>[QDigest](https://trino.io/docs/current/language/types.html#quantile-digest)</td></tr>
  <tr><td>[TDigest](https://trino.io/docs/current/language/types.html#t-digest)</td></tr>
</tbody>
</table>


**Topics**
+ [Exemplos de tipo de dados](data-types-examples.md)
+ [Considerações sobre tipos de dados](data-types-considerations.md)
+ [Trabalhar com dados de timestamp](data-types-timestamps.md)