VARBYTETyp - Amazon Redshift

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.

VARBYTETyp

Verwenden Sie eineVARBYTE, oder BINARY VARYING -SpalteVARBINARY, um einen Binärwert variabler Länge mit einem festen Grenzwert zu speichern.

varbyte [ (n) ]

Die maximale Anzahl von Byte (n) kann zwischen 1 und 16.777.216 liegen. Der Standardwert ist 64 000.

Nachfolgend finden Sie einige Beispiele, in denen Sie möglicherweise einen VARBYTE Datentyp verwenden möchten:

  • Verknüpfen von Tabellen in VARBYTE Spalten.

  • Materialisierte Ansichten erstellen, die VARBYTE Spalten enthalten. Die inkrementelle Aktualisierung von materialisierten Ansichten, die VARBYTE Spalten enthalten, wird unterstützt. Andere Aggregatfunktionen als COUNTMIN, und MAX und GROUP BY für VARBYTE Spalten unterstützen jedoch keine inkrementelle Aktualisierung.

Um sicherzustellen, dass es sich bei allen Bytes um druckbare Zeichen handelt, verwendet Amazon Redshift das Hex-Format zum Drucken von VARBYTE Werten. Im Folgenden SQL wird beispielsweise die hexadezimale Zeichenfolge 6162 in einen Binärwert umgewandelt. Der zurückgegebene Wert ist zwar ein Binärwert, aber die Ergebnisse werden als Hexadezimalzahl 6162 ausgedruckt.

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

Amazon Redshift unterstützt das Casting zwischen VARBYTE und den folgenden Datentypen:

  • CHAR

  • VARCHAR

  • SMALLINT

  • INTEGER

  • BIGINT

Beim Casting mit CHAR und wird VARCHAR das Format UTF -8 verwendet. Weitere Hinweise zum UTF -8-Format finden Sie unter. TO_VARBYTE Bei der Umwandlung von SMALLINTINTEGER, und BIGINT wird die Anzahl der Byte des ursprünglichen Datentyps beibehalten. Das sind zwei Byte fürSMALLINT, vier Byte für INTEGER und acht Byte fürBIGINT.

Die folgende SQL Anweisung wandelt eine VARCHAR Zeichenfolge in eine umVARBYTE. Der zurückgegebene Wert ist zwar ein Binärwert, aber die Ergebnisse werden als Hexadezimalzahl 616263 ausgedruckt.

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

Die folgende SQL Anweisung wandelt einen CHAR Wert in einer Spalte in a umVARBYTE. In diesem Beispiel wird eine Tabelle mit einer Spalte CHAR (c) (10) erstellt und 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

Die folgende SQL Anweisung wandelt eine SMALLINT Zeichenfolge in eine umVARBYTE. 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

Die folgende SQL Anweisung wandelt eine INTEGER in eine umVARBYTE. 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

Die folgende SQL Anweisung wandelt a BIGINT in a umVARBYTE. 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

Zu den Funktionen von Amazon Redshift, die den VARBYTE Datentyp unterstützen, gehören:

Einschränkungen bei der Verwendung des VARBYTE Datentyps mit Amazon Redshift

Bei der Verwendung des VARBYTE Datentyps mit Amazon Redshift gelten die folgenden Einschränkungen:

  • Amazon Redshift Spectrum unterstützt den VARBYTE Datentyp nur für Parquet und ORC Dateien.

  • Amazon Redshift Query Editor und Amazon Redshift Query Editor v2 unterstützen den VARBYTE Datentyp noch nicht vollständig. Verwenden Sie daher einen anderen SQL Client, wenn Sie mit VARBYTE Ausdrücken arbeiten.

    Als Behelfslösung für die Verwendung des Abfrage-Editors können Sie die VARBYTE Werte umwandeln, wenn die Länge Ihrer Daten unter 64 KB liegt und der Inhalt gültig UTF -8 istVARCHAR, z. B. in:

    select to_varbyte('6162', 'hex')::varchar;
  • Sie können keine VARBYTE Datentypen mit benutzerdefinierten Python- oder Lambda-Funktionen () UDFs verwenden.

  • Sie können keine HLLSKETCH Spalte aus einer Spalte erstellen oder für eine VARBYTE Spalte verwenden APPROXIMATE COUNTDISTINCT. VARBYTE

  • VARBYTEWerte, die größer als 1 MB sind, können nur aus den folgenden Dateiformaten aufgenommen werden:

    • Parquet

    • Text

    • Durch Kommas getrennte Werte () CSV