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”.

Tipo VARBYTE

Modo de foco
Tipo VARBYTE - Amazon Redshift

Use uma coluna VARBYTE, VARBINARY ou BINARY VARYING para armazenar valores binários de tamanho variável com limite fixo.

varbyte [ (n) ]

O número máximo de bytes (n) pode variar de 1 a 16.777.216. O padrão é 64.000.

Estes são alguns exemplos em que convém usar um tipo de dados VARBYTE:

  • Unir tabelas em colunas VARBYTE.

  • Criar visões materializadas que contenham colunas VARBYTE. Há suporte para a atualização incremental de visões materializadas que contêm colunas VARBYTE. Porém, funções agregadas que não sejam COUNT, MIN e MAX e GROUP BY nas colunas VARBYTE não são compatíveis com atualização incremental.

Para garantir que todos os bytes sejam caracteres imprimíveis, o Amazon Redshift usa o formato hexadecimal para imprimir valores VARBYTE. Por exemplo, o seguinte SQL converte a cadeia de caracteres hexadecimal 6162 em um valor binário. Mesmo que o valor retornado seja um valor binário, os resultados são impressos como hexadecimais 6162.

select from_hex('6162'); from_hex ---------- 6162

O Amazon Redshift é compatível com a conversão entre VARBYTE e os seguintes tipos de dados:

  • CHAR

  • VARCHAR

  • SMALLINT

  • INTEGER

  • BIGINT

Ao converter CHAR e VARCHAR, utiliza-se o formato UTF-8. Para obter mais informações sobre o formato do UTF-8, consulte TO_VARBYTE. Ao converter SMALLINT, INTEGER e BIGINT, mantém-se o número de bytes do tipo de dados original. São dois bytes para SMALLINT, quatro bytes para INTEGER e oito bytes para BIGINT.

A instrução SQL a seguir converte uma cadeia de caracteres VARCHAR para VARBYTE. Mesmo que o valor retornado seja um valor binário, os resultados são impressos como hexadecimais 616263.

select 'abc'::varbyte; varbyte --------- 616263

A instrução SQL a seguir converte um valor CHAR em uma coluna para VARBYTE. Este exemplo cria uma tabela com uma coluna (c) CHAR(10), insere valores de caracteres menores que o comprimento de 10. A conversão resultante insere o resultado com caracteres de espaço (hex'20') para o tamanho de coluna definido. Mesmo que o valor retornado seja um valor binário, os resultados são impressos como hexadecimais.

create table t (c char(10)); insert into t values ('aa'), ('abc'); select c::varbyte from t; c ---------------------- 61612020202020202020 61626320202020202020

A instrução SQL a seguir converte uma cadeia de caracteres SMALLINT para VARBYTE. Mesmo que o valor retornado seja um valor binário, os resultados são impressos como hexadecimais 0005, que são caracteres hexadecimais de dois ou quatro bytes.

select 5::smallint::varbyte; varbyte --------- 0005

A instrução SQL a seguir converte um INTEGER para VARBYTE. Mesmo que o valor retornado seja um valor binário, os resultados são impressos como hexadecimais 00000005, que são caracteres hexadecimais de quatro ou oito bytes.

select 5::int::varbyte; varbyte ---------- 00000005

A instrução SQL a seguir converte um BIGINT para VARBYTE. Mesmo que o valor retornado seja um valor binário, os resultados são impressos como hexadecimais 0000000000000005, que são caracteres hexadecimais de oito ou 16 bytes.

select 5::bigint::varbyte; varbyte ------------------ 0000000000000005

Os recursos do Amazon Redshift compatíveis com o tipo de dados VARBYTE incluem:

Limitações ao usar dados do tipo VARBYTE com o Amazon Redshift

Estas são as limitações ao usar dados do tipo VARBYTE com o Amazon Redshift:

  • O Amazon Redshift Spectrum é compatível com o tipo de dado VARBYTE somente para arquivos Parquet e ORC.

  • O editor de consultas do Amazon Redshift e o editor de consultas do Amazon Redshift v2 ainda não são totalmente compatíveis com o tipo de dados VARBYTE. Portanto, use um cliente SQL diferente ao trabalhar com expressões VARBYTE.

    Como uma solução alternativa para usar o editor de consultas, se o comprimento dos dados estiver abaixo de 64 KB e o conteúdo for caracteres UTF-8 válidos, você poderá converter os valores VARBYTE para VARCHAR, por exemplo:

    select to_varbyte('6162', 'hex')::varchar;
  • Não é possível usar tipos de dados VARBYTE com funções definidas pelo usuário (UDFs) em Python ou Lambda.

  • Não é possível criar uma coluna HLLSKETCH a partir de uma coluna VARBYTE ou usar APPROXIMATE COUNT DISTINCT em uma coluna VARBYTE.

  • Valores de VARBYTE maiores que 1 MB só podem ser ingeridos nos seguintes formatos de arquivo:

    • Parquet

    • Texto

    • Valores separados por vírgula (CSV)

Nesta página

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