Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Tipos compatíveis para projeção de partições

Modo de foco
Tipos compatíveis para projeção de partições - Amazon Athena

Uma tabela pode ter qualquer combinação dos tipos enum, integer, date, ou injected de coluna de partição.

Tipo enum

Use o tipo enum para colunas de partição cujos valores são membros de um conjunto enumerado (por exemplo, códigos de aeroporto ou Regiões da AWS).

Defina as propriedades da partição na tabela da seguinte forma:

Nome da propriedade Exemplos de valores Descrição
projection.columnName.type

enum

Obrigatório. O tipo de projeção a ser usado para a coluna columnName. O valor deve ser enum (sem diferenciar maiúsculas e minúsculas) para sinalizar o uso do tipo de enumeração. Espaços em branco iniciais e finais são permitidos.
projection.columnName.values

A,B,C,D,E,F,G,Unknown

Obrigatório. Uma lista separada por vírgulas de valores de partição enumerados para a coluna columnName. Qualquer espaço em branco é considerado parte de um valor de enumeração.
nota

Como prática recomendada, limite o uso de projeções de partições com base em enum a no máximo algumas dúzias. Embora não haja um limite específico para projeções enum, o tamanho total dos metadados da sua tabela não pode exceder o limite do AWS Glue de cerca de 1 MB quando compactado com gzip. Esse limite é compartilhado entre as partes principais da tabela, como nomes de colunas, local, formato de armazenamento etc. Se você usar mais de algumas dúzias de IDs exclusivos em sua projeção enum, considere uma abordagem alternativa, como criar buckets de um número menor de valores exclusivos em um campo substituto. Ao compensar a cardinalidade, você pode controlar o número de valores exclusivos no campo enum.

Tipo integer

Use o tipo integer para colunas de partição cujos valores possíveis são interpretáveis como inteiros dentro de um intervalo definido. As colunas integer projetadas estão atualmente limitadas ao intervalo de um Java assinado longo (-263 a 263-1, ambos incluídos).

Nome da propriedade Exemplos de valores Descrição
projection.columnName.type

integer

Obrigatório. O tipo de projeção a ser usado para a coluna columnName. O valor deve ser integer (sem diferenciar maiúsculas e minúsculas) para sinalizar o uso do tipo de inteiro. Espaços em branco iniciais e finais são permitidos.
projection.columnName.range

0,10

-1,8675309

0001,9999

Obrigatório. Uma lista separada por vírgulas de dois elementos que fornece os valores de intervalo mínimo e máximo a serem retornados por consultas na coluna columnName. Observe que os valores devem ser separados por uma vírgula, não por um hífen. Esses valores são inclusivos, podem ser negativos e podem ter zeros à esquerda. Espaços em branco iniciais e finais são permitidos.
projection.columnName.interval

1

5

Opcional. Um inteiro positivo que especifica o intervalo entre valores de partição sucessivos para a coluna columnName. Por exemplo, um valor range de “1,3" com um valor interval de “1" produz os valores 1, 2 e 3. O mesmo valor range com um valor interval de “2" produz os valores 1 e 3, ignorando 2. Espaços em branco iniciais e finais são permitidos. O padrão é um.
projection.columnName.digits

1

5

Opcional. Um inteiro positivo que especifica o número de dígitos a serem incluídos na representação final do valor da partição para a coluna columnName. Por exemplo, um valor range de “1,3" que tem um valor digits de “1" produz os valores 1, 2 e 3. O mesmo valor range com um valor digits de “2" produz os valores 01, 02 e 03. Espaços em branco iniciais e finais são permitidos. O padrão é nenhum número estático de dígitos e nenhum zero à esquerda.

Tipo date

Use o tipo date para colunas de partição cujos valores são interpretáveis como datas (com horas opcionais) dentro de um intervalo definido.

Importante

As colunas date projetadas são geradas no Horário Universal Coordenado (UTC) no tempo de execução da consulta.

Nome da propriedade Exemplos de valores Descrição
projection.columnName.type

date

Obrigatório. O tipo de projeção a ser usado para a coluna columnName. O valor deve ser date (sem diferenciar maiúsculas e minúsculas) para sinalizar o uso do tipo de data. Espaços em branco iniciais e finais são permitidos.
projection.columnName.range

201701,201812

01-01-2010,12-31-2018

NOW-3YEARS,NOW

201801,NOW+1MONTH

Obrigatório. Uma lista separada por vírgulas de dois elementos que fornece os valores range mínimo e máximo para a coluna columnName. Esses valores são inclusivos e podem usar qualquer formato compatível com os tipos de data java.time.* em Java. Os valores mínimo e máximo devem usar o mesmo formato. O formato especificado na propriedade .format deve ser o formato usado para esses valores.

Essa coluna também pode conter strings de data relativas, formatadas neste padrão de expressão regular:

\s*NOW\s*(([\+\-])\s*([0-9]+)\s*(YEARS?|MONTHS?|WEEKS?|DAYS?|HOURS?|MINUTES?|SECONDS?)\s*)?

Espaços em branco são permitidos. No entanto, em literais de data, eles são considerados parte das strings de data em si.

projection.columnName.format

yyyyMM

dd-MM-yyyy

dd-MM-yyyy-HH-mm-ss

Obrigatório. Uma string de formato de data baseada no formato de data Java DateTimeFormatter. Pode ser qualquer tipo Java.time.* compatível.
projection.columnName.interval

1

5

Um inteiro positivo que especifica o intervalo entre valores de partição sucessivos para a coluna columnName. Por exemplo, um valor range de 2017-01,2018-12 com um valor interval de 1 e um valor interval.unit de MONTHS produz os valores 2017-01, 2017-02, 2017-03 e assim por diante. O mesmo valor range com um valor interval de 2 e um valor interval.unit de MONTHS produz os valores 2017-01, 2017-03, 2017-05 e assim por diante. Espaços em branco iniciais e finais são permitidos.

Quando as datas fornecidas são com precisão de um dia ou um mês, o interval é opcional e o padrão é 1 dia ou 1 mês, respectivamente. Caso contrário, o interval será obrigatório.

projection.columnName.interval.unit

YEARS

MONTHS

WEEKS

DAYS

HOURS

MINUTES

SECONDS

MILLIS

Uma palavra de unidade de tempo que representa a forma serializada de uma ChronoUnit. Os valores possíveis são YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS ou MILLIS. Esses valores diferenciam maiúsculas de minúsculas.

Quando as datas fornecidas são com precisão de um dia ou um mês, o interval.unit é opcional e o padrão é 1 dia ou 1 mês, respectivamente. Caso contrário, interval.unit será obrigatório.

exemplo - Particionamento por mês

O exemplo de configuração da tabela a seguir particiona os dados por mês, de 2015 até o presente.

'projection.month.type'='date', 'projection.month.format'='yyyy-MM', 'projection.month.interval'='1', 'projection.month.interval.unit'='MONTHS', 'projection.month.range'='2015-01,NOW', ...

Tipo injected

Use o tipo injetado para colunas de partição com valores possíveis que não podem ser gerados processualmente dentro de algum intervalo lógico, mas que são fornecidos na cláusula WHERE de uma consulta como um único valor.

É importante ter em mente os seguintes pontos:

  • Consultas em colunas injetadas falharão se uma expressão de filtro não for fornecida para cada coluna injetada.

  • Consultas com vários valores para uma expressão de filtro em uma coluna injetada só terão êxito se os valores forem disjuntos.

  • Somente colunas do tipo string são permitidas.

  • Quando você usa a cláusula WHERE IN com uma coluna de partição injetada, há um limite de 1.000 valores que podem ser especificados na lista IN. Para consultar um conjunto de dados com mais de 1.000 partições para uma coluna injetada, divida a consulta em várias consultas menores, cada uma com até 1.000 valores na cláusula WHERE IN, e, em seguida, agregue os resultados.

Nome da propriedade Valor Descrição
projection.columnName.type

injected

Obrigatório. O tipo de projeção a ser usado para a coluna columnName. Somente o tipo string é permitido. O valor especificado deve ser injected (sem diferenciação de maiúsculas e minúsculas). Espaços em branco iniciais e finais são permitidos.

Para ter mais informações, consulte Quando usar o tipo de projeção injected.

Nesta página

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.