As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Tipo VARBYTE
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 1.024.000. 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 visualizações materializadas que contenham colunas VARBYTE. Há suporte para a atualização incremental de visualizaçõ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, AWS Clean Rooms 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
AWS Clean Rooms suporta conversão entre VARBYTE e os seguintes tipos de dados:
-
CHAR
-
VARCHAR
-
SMALLINT
-
INTEGER
-
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
Limitações ao usar o tipo de dados VARBYTE com AWS Clean Rooms
A seguir estão as limitações ao usar o tipo de dados VARBYTE com: AWS Clean Rooms
-
AWS Clean Rooms suporta o tipo de dados VARBYTE somente para arquivos Parquet e ORC.
-
AWS Clean Rooms o editor de consultas ainda não oferece suporte total ao 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.