Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Typ VARBYTE
Verwenden Sie eine VARBYTE-, VARBINARY- oder BINARY VARYING-Spalte, um einen Binärwert mit variabler Länge mit einem festen Grenzwert zu speichern.
varbyte [ (n) ]
Die maximale Anzahl von Bytes (n) kann zwischen 1 und 1 024 000 liegen. Der Standardwert ist 64 000.
Hier sind einige Beispiele, in denen es empfehlenswert sein kann, einen VARBYTE-Datentyp zu verwenden:
-
Verknüpfen von Tabellen in VARBYTE-Spalten.
-
Erstellen materialisierter Ansichten, die VARBYTE-Spalten enthalten. Die inkrementelle Aktualisierung materialisierter Ansichten, die VARBYTE-Spalten enthalten, wird unterstützt. Andere Aggregationsfunktionen als COUNT, MIN und MAX sowie GROUP BY bei VARBYTE-Spalten unterstützen jedoch keine inkrementelle Aktualisierung.
Um sicherzustellen, dass alle Byte druckbare Zeichen sind, AWS Clean Rooms verwendet das Hexadezimalformat zum Drucken von VARBYTE-Werten. Das folgende SQL konvertiert beispielsweise die Hexadezimalzeichenfolge 6162
in einen Binärwert. Der zurückgegebene Wert ist zwar ein Binärwert, aber die Ergebnisse werden als Hexadezimalzahl 6162
ausgedruckt.
select from_hex('6162'); from_hex ---------- 6162
AWS Clean Rooms unterstützt die Umwandlung zwischen VARBYTE und den folgenden Datentypen:
-
CHAR
-
VARCHAR
-
SMALLINT
-
INTEGER
-
BIGINT
Mit der folgenden SQL-Anweisung wird eine VARCHAR-Zeichenfolge in VARBYTE umgewandelt. Der zurückgegebene Wert ist zwar ein Binärwert, aber die Ergebnisse werden als Hexadezimalzahl 616263
ausgedruckt.
select 'abc'::varbyte; varbyte --------- 616263
Mit der folgenden SQL-Anweisung wird ein CHAR-Wert in einer Spalte in VARBYTE umgewandelt. In diesem Beispiel wird eine Tabelle mit einer CHAR(10)-Spalte (c) erstellt und es werden Zeichenwerte eingefügt, die kürzer als die Länge von 10 sind. Die resultierende Umwandlung füllt das Ergebnis mit Leerzeichen (hex'20') auf die definierte Spaltengröße auf. Der zurückgegebene Wert ist zwar ein Binärwert, aber die Ergebnisse werden als Hexadezimalzahl ausgedruckt.
create table t (c char(10)); insert into t values ('aa'), ('abc'); select c::varbyte from t; c ---------------------- 61612020202020202020 61626320202020202020
Mit der folgenden SQL-Anweisung wird eine SMALLINT-Zeichenfolge in VARBYTE umgewandelt. Der zurückgegebene Wert ist zwar ein Binärwert, aber die Ergebnisse werden als Hexadezimalzahl 0005
ausgedruckt, die zwei Bytes oder vier Hexadezimalzeichen entspricht.
select 5::smallint::varbyte; varbyte --------- 0005
Mit der folgenden SQL-Anweisung wird INTEGER in VARBYTE umgewandelt. Der zurückgegebene Wert ist zwar ein Binärwert, aber die Ergebnisse werden als Hexadezimalzahl 00000005
ausgedruckt, die vier Bytes oder acht Hexadezimalzeichen entspricht.
select 5::int::varbyte; varbyte ---------- 00000005
Mit der folgenden SQL-Anweisung wird BIGINT in VARBYTE umgewandelt. Der zurückgegebene Wert ist zwar ein Binärwert, aber die Ergebnisse werden als Hexadezimalzahl 0000000000000005
ausgedruckt, die acht Bytes oder 16 Hexadezimalzeichen entspricht.
select 5::bigint::varbyte; varbyte ------------------ 0000000000000005
Einschränkungen bei der Verwendung des VARBYTE-Datentyps mit AWS Clean Rooms
Im Folgenden finden Sie Einschränkungen bei der Verwendung des VARBYTE-Datentyps mit: AWS Clean Rooms
-
AWS Clean Rooms unterstützt den VARBYTE-Datentyp nur für Parquet- und ORC-Dateien.
-
AWS Clean Rooms Der Abfrageeditor unterstützt den VARBYTE-Datentyp noch nicht vollständig. Verwenden Sie deshalb einen anderen SQL-Client, wenn Sie mit VARBYTE-Ausdrücken arbeiten.
Wenn Sie dennoch den Abfrage-Editor verwenden möchten, gibt es einen Workaround: Sofern die Größe der Daten unter 64 KB liegt und der Inhalt gültiges UTF-8 ist, können Sie die VARBYTE-Werte beispielsweise in VARCHAR umwandeln:
select to_varbyte('6162', 'hex')::varchar;
-
Sie können VARBYTE-Datentypen nicht mit benutzerdefinierten Python- oder Lambda-Funktionen (UDFs) verwenden.
-
Sie können aus einer VARBYTE-Spalte keine HLLSKETCH-Spalte erstellen oder für eine VARBYTE-Spalte APPROXIMATE COUNT DISTINCT verwenden.