Einschränkungen für verschachtelte Daten - Amazon Redshift

Einschränkungen für verschachtelte Daten

Die folgenden Einschränkungen gelten für verschachtelte Daten:

  • Ein Array darf nur Skalare oder struct-Typen enthalten. Array-Typen dürfen keine array- oder map-Typen enthalten.

  • Redshift Spectrum unterstützt komplexe Datentypen nur als externe Tabellen.

  • Ergebnisspalten von Abfragen und Unterabfragen müssen skalar sein.

  • Wenn sich ein OUTER JOIN-Ausdruck auf eine verschachtelte Tabelle bezieht, darf er sich nur auf die betreffende Tabelle und ihre verschachtelten Arrays (und Zuordnungen) beziehen. Wenn sich ein OUTER JOIN-Ausdruck nicht auf eine verschachtelte Tabelle bezieht, kann er sich auf eine beliebige Anzahl nicht verschachtelter Tabellen beziehen.

  • Wenn sich eine FROM-Klausel in einer Unterabfrage auf eine verschachtelte Tabelle bezieht, darf sie sich auf keine andere Tabelle beziehen.

  • Wenn eine Unterabfrage von einer verschachtelten Tabelle abhängig ist, die sich auf eine übergeordnete Tabelle bezieht, dürfen Sie die übergeordnete Tabelle nur in der FROM-Klausel verwenden. Sie dürfen die Abfrage in keiner anderen Klausel, wie z. B. einer SELECT- oder WHERE-Klausel, verwenden. Die folgende Abfrage wird beispielweise nicht ausgeführt.

    SELECT c.name.given FROM spectrum.customers c WHERE (SELECT COUNT(c.id) FROM c.phones p WHERE p LIKE '858%') > 1

    Die folgende Abfrage funktioniert, da die übergeordnete Tabelle c nur in der FROM-Klausel der Unterabfrage verwendet wird.

    SELECT c.name.given FROM spectrum.customers c WHERE (SELECT COUNT(*) FROM c.phones p WHERE p LIKE '858%') > 1
  • Eine Unterabfrage, die an anderer Stelle als die FROM-Klausel auf verschachtelte Daten zugreift, muss einen einzelnen Wert zurückgeben. Die einzigen Ausnahmen sind (NOT) EXISTS-Operatoren in einer WHERE-Klausel.

  • (NOT) IN wird nicht unterstützt.

  • Die maximale Verschachtelungstiefe aller verschachtelter Typen ist 100. Diese Einschränkung gilt für alle Dateiformate (Parquet, ORC, Ion und JSON).

  • Aggregations-Unterabfragen, die auf verschachtelte Daten zugreifen, dürfen nur auf arrays und maps in ihrer FROM-Klausel verweisen, nicht auf eine externe Tabelle.

  • Das Abfragen der Pseudospalten verschachtelter Daten in einer Redshift-Spectrum-Tabelle wird nicht unterstützt. Weitere Informationen finden Sie unter Pseudospalten.