Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tipo VARBYTE
Usa una colonna VARBYTE, VARBINARY o BINARY VARYING per memorizzare il valore binario di lunghezza variabile con un limite fisso.
varbyte [ (n) ]
Il numero massimo di byte (n) può variare da 1 a 1.024.000. Il valore di default è 64.000.
Alcuni esempi in cui è possibile utilizzare un tipo di dati VARBYTE sono i seguenti:
-
Unire le tabelle sulle colonne VARBYTE.
-
Creazione di viste materializzate che contengono colonne VARBYTE. È supportato l'aggiornamento incrementale delle viste materializzate che contengono colonne VARBYTE. Tuttavia, le funzioni aggregate diverse da COUNT, MIN e MAX e GROUP BY sulle colonne VARBYTE non supportano l'aggiornamento incrementale.
Per garantire che tutti i byte siano caratteri stampabili, AWS Clean Rooms utilizza il formato esadecimale per stampare i valori VARBYTE. Ad esempio, il seguente SQL converte la stringa esadecimale 6162
in un valore binario. Anche se il valore restituito è un valore binario, i risultati vengono stampati come esadecimale 6162
.
select from_hex('6162'); from_hex ---------- 6162
AWS Clean Rooms supporta il casting tra VARBYTE e i seguenti tipi di dati:
-
CHAR
-
VARCHAR
-
SMALLINT
-
INTEGER
-
BIGINT
La seguente istruzione SQL lancia una stringa VARCHAR in un VARBYTE. Anche se il valore restituito è un valore binario, i risultati vengono stampati come esadecimale 616263
.
select 'abc'::varbyte; varbyte --------- 616263
L'istruzione SQL seguente lancia un valore CHAR in una colonna in un VARBYTE. In questo esempio viene creata una tabella con una colonna CHAR (10) (c), inserisce valori di carattere più brevi della lunghezza di 10. Il cast risultante associa il risultato con caratteri spaziali (hex'20') alla dimensione della colonna definita. Anche se il valore restituito è un valore binario, i risultati vengono stampati come esadecimale.
create table t (c char(10)); insert into t values ('aa'), ('abc'); select c::varbyte from t; c ---------------------- 61612020202020202020 61626320202020202020
La seguente istruzione SQL lancia una stringa SMALLINT in un VARBYTE. Anche se il valore restituito è un valore binario, i risultati vengono stampati come esadecimale 0005
, ovvero due byte o quattro caratteri esadecimali.
select 5::smallint::varbyte; varbyte --------- 0005
La seguente istruzione SQL lancia un INTEGER in un VARBYTE. Anche se il valore restituito è un valore binario, i risultati vengono stampati come esadecimale 00000005
, ovvero quattro byte o otto caratteri esadecimali.
select 5::int::varbyte; varbyte ---------- 00000005
La seguente istruzione SQL lancia un BIGINT in un VARBYTE. Anche se il valore restituito è un valore binario, i risultati vengono stampati come esadecimale 0000000000000005
, ovvero otto byte o 16 caratteri esadecimali.
select 5::bigint::varbyte; varbyte ------------------ 0000000000000005
Limitazioni nell'utilizzo del tipo di dati VARBYTE con AWS Clean Rooms
Di seguito sono riportate le limitazioni relative all'utilizzo del tipo di dati VARBYTE con: AWS Clean Rooms
-
AWS Clean Rooms supporta il tipo di dati VARBYTE solo per i file Parquet e ORC.
-
AWS Clean Rooms l'editor di query non supporta ancora completamente il tipo di dati VARBYTE. Pertanto, utilizzare un client SQL diverso quando si lavora con espressioni VARBYTE.
Come soluzione alternativa per utilizzare l'editor di query, se la lunghezza dei dati è inferiore a 64 KB e il contenuto è valido UTF-8, è possibile eseguire il cast dei valori VARBYTE su VARCHAR, ad esempio:
select to_varbyte('6162', 'hex')::varchar;
-
Non è possibile utilizzare i tipi di dati VARBYTE con le funzioni definite dall'utente (UDF) Python o Lambda.
-
Non è possibile creare una colonna HLLSKETCH da una colonna VARBYTE o utilizzare APPROSSIMATE COUNT DISTINCT su una colonna VARBYTE.