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à.
VARBYTEtipo
Usa una BINARY VARYING colonna VARBYTEVARBINARY, o per memorizzare un valore binario a lunghezza variabile con un limite fisso.
varbyte [ (n) ]
Il numero massimo di byte (n) può variare da 1 a 16.777.216. Il valore di default è 64.000.
Alcuni esempi in cui potresti voler utilizzare un tipo di VARBYTE dati sono i seguenti:
Unire tabelle su VARBYTE colonne.
Creazione di viste materializzate che contengono VARBYTE colonne. È supportato l'aggiornamento incrementale delle viste materializzate che contengono VARBYTE colonne. Tuttavia, le funzioni di aggregazione diverse da COUNTMIN, e MAX e GROUP BY sulle VARBYTE colonne non supportano l'aggiornamento incrementale.
Per garantire che tutti i byte siano caratteri stampabili, Amazon Redshift utilizza il formato esadecimale per stampare i valori. VARBYTE Ad esempio, quanto segue SQL converte la stringa esadecimale in un valore binario. 6162
Anche se il valore restituito è un valore binario, i risultati vengono stampati come esadecimale 6162
.
select from_hex('6162'); from_hex ---------- 6162
Amazon Redshift supporta il casting tra VARBYTE i seguenti tipi di dati:
CHAR
VARCHAR
SMALLINT
INTEGER
BIGINT
Quando si esegue il casting con CHAR e viene utilizzato VARCHAR il formato UTF -8. Per ulteriori informazioni sul formato UTF -8, vedereTO_VARBYTE. Durante la trasmissione da SMALLINTINTEGER, e BIGINT viene mantenuto il numero di byte del tipo di dati originale. Si tratta di due byte perSMALLINT, quattro byte per INTEGER e otto byte per. BIGINT
L'SQListruzione seguente inserisce una stringa in unVARCHAR. VARBYTE Anche se il valore restituito è un valore binario, i risultati vengono stampati come esadecimale 616263
.
select 'abc'::varbyte; varbyte --------- 616263
L'SQListruzione seguente trasmette un CHAR valore in una colonna a. VARBYTE Questo esempio crea una tabella con una colonna CHAR (10) (c), inserisce valori di caratteri 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
L'SQListruzione seguente inserisce una SMALLINT stringa 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
L'SQListruzione seguente trasmette un INTEGER a. 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
L'SQListruzione seguente trasmette a BIGINT a a. 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
Le funzionalità di Amazon Redshift che supportano il tipo di VARBYTE dati includono:
Limitazioni nell'utilizzo del tipo di VARBYTE dati con Amazon Redshift
Di seguito sono riportate le limitazioni relative all'utilizzo del tipo di VARBYTE dati con Amazon Redshift:
Amazon Redshift Spectrum supporta VARBYTE il tipo di dati solo per Parquet ORC e file.
L'editor di query Amazon Redshift e l'editor di query Amazon Redshift v2 non supportano ancora completamente i tipi di dati. VARBYTE Pertanto, usa un SQL client diverso quando lavori con le 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 VARBYTE dei valoriVARCHAR, ad esempio:
select to_varbyte('6162', 'hex')::varchar;
Non puoi usare VARBYTE i tipi di dati con le funzioni definite dall'utente Python o Lambda (). UDFs
Non è possibile creare una HLLSKETCH colonna da una VARBYTE colonna o utilizzarla APPROXIMATE COUNT DISTINCT su una colonna. VARBYTE
VARBYTEi valori superiori a 1 MB possono essere importati solo dai seguenti formati di file:
Parquet
Testo
valori separati da virgole () CSV