Einschränkungen - 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.

Einschränkungen

Beachten Sie bei der Verwendung des Datentyps SUPER die folgenden Einschränkungen:

  • Sie können SUPER-Spalten weder als Verteilungs- noch als Sortierschlüssel definieren.

  • Ein einzelnes SUPER-Objekt kann bis zu 16 MB an Daten enthalten.

  • Ein einzelner Wert innerhalb eines SUPER-Objekts ist auf die maximale Länge des entsprechenden Amazon-Redshift-Typs begrenzt. Beispielsweise ist ein einzelner, in SUPER geladener Zeichenfolgenwert auf die maximale VARCHAR-Länge von 65 535 Bytes beschränkt.

  • Sie können keine Teilaktualisierungs- oder Transformationsvorgänge für SUPER-Spalten durchführen.

  • Sie können den SUPER-Datentyp und seinen Alias nicht in Right Joins oder Full Outer Joins verwenden.

  • Der SUPER Datentyp unterstützt XML nicht als eingehendes oder ausgehendes Serialisierungsformat.

  • In der FROM-Klausel einer Unterabfrage (die korreliert ist oder nicht), die eine Tabellenvariable zum Aufheben der Verschachtelung referenziert, kann die Abfrage nur auf ihre übergeordnete Tabelle und nicht auf andere Tabellen verweisen.

  • Einschränkungen für die Umwandlung

    SUPER-Werte können in andere Datentypen umgewandelt werden und umgekehrt, mit folgenden Ausnahmen:

    • Amazon Redshift unterscheidet keine Ganzzahlen und Dezimalstellen der Skala 0.

    • Wenn die Skalierung nicht Null ist, hat der SUPER-Datentyp dasselbe Verhalten wie andere Amazon-Redshift-Datentypen, mit der Ausnahme, dass Amazon Redshift Super-bezogene Fehler in null konvertiert, wie im folgenden Beispiel gezeigt.

      SELECT 5::bool; bool ------- True (1 row) SELECT 5::decimal::bool; ERROR: cannot cast type numeric to boolean SELECT 5::super::bool; bool ------- True (1 row) SELECT 5.0::bool; ERROR: cannot cast type numeric to boolean SELECT 5.0::super::bool; bool ------- (1 row)
    • Amazon Redshift wandelt die Datums- und Uhrzeittypen nicht in den SUPER-Datentyp um. Amazon Redshift kann nur Datums- und Uhrzeitdatentypen vom SUPER-Datentyp übertragen, wie im folgenden Beispiel gezeigt.

      SELECT o.o_orderdate FROM customer_orders_lineitem c,c.c_orders o; order_date ------------------ "2001-09-08" (1 row) SELECT JSON_TYPEOF(o.o_orderdate) FROM customer_orders_lineitem c,c.c_orders o; json_typeof ----------------- string (1 row) SELECT o.o_orderdate::date FROM customer_orders_lineitem c,c.c_orders o; order_date ---------------- 2001-09-08 (1 row) --date/time cannot be cast to super SELECT '2019-09-09'::date::super; ERROR: cannot cast type date to super
    • Die Umwandlung von nicht-skalaren Werten (Objekt und Array) in eine Zeichenfolge gibt NULL zurück. Um diese nicht skalaren Werte korrekt zu serialisieren, sollten Sie sie nicht umwandeln. Verwenden Sie stattdessen json_serialize, um nicht-skalare Werte umzuwandeln. Die json_serialize-Funktion gibt einen varchar zurück. Normalerweise müssen Sie nicht skalare Werte in varchar umwandeln, da Amazon Redshift implizit serialisiert, wie im folgenden ersten Beispiel gezeigt.

      SELECT r_nations FROM region_nations WHERE r_regionkey=300; r_nations ---------------- [1,"abc",null] (1 row) SELECT r_nations::varchar FROM region_nations WHERE r_regionkey=300; r_nations ------------- (1 row) SELECT JSON_SERIALIZE(r_nations) FROM region_nations WHERE r_regionkey=300; json_serialize ----------------- [1,"abc",null] (1 row)
    • Bei Datenbanken ohne Berücksichtigung der Groß- und Kleinschreibung unterstützt Amazon Redshift den SUPER-Datentyp nicht. Bei Spalten ohne Berücksichtigung der Groß- und Kleinschreibung werden sie von Amazon Redshift nicht in den SUPER-Typ umgewandelt. Daher unterstützt Amazon Redshift keine SUPER-Spalten, die mit Spalten ohne Berücksichtigung der Groß- und Kleinschreibung interagieren, die die Umwandlung auslösen.

  • Amazon Redshift unterstützt keine flüchtigen Funktionen wie RANDOM ( ) oder TIMEOFDAY ( ) in Unterabfragen, die die Verschachtelung einer äußeren Tabelle oder linken Seite (LHS) von IN-Funktionen mit solchen Unterabfragen aufheben.