Amazon Redshift
データベース開発者ガイド (API バージョン 2012年12月1日)

ネストデータの制限

ネストデータには以下の制限が適用されます。

  • 配列に含めることができるのは、スカラー型または struct 型のみです。Array 型に、array 型または map 型を含めることはできません。

  • Redshift Spectrum では、外部データとしてのみ複合データがサポートされています。

  • クエリおよびサブクエリの結果列は、スカラー型である必要があります。

  • OUTER JOIN 式によって、ネスト化されたテーブルが参照される場合は、テーブルとそのネスト化された配列 (およびマップ) でのみ参照されます。OUTER JOIN 式でネスト化されたテーブルを参照しない場合は、任意の数のネスト化されていないテーブルを参照することができます。

  • サブクエリの FROM 句でネスト化されたテーブルが参照されている場合は、その他のテーブルを参照することはできません。

  • サブクエリが、親を参照するネスト化されたテーブルに依存する場合、親は FROM 句でのみ使用できます。SELECT 句や WHERE 句など、他の句でクエリを使用することはできません。たとえば、次のクエリは実行されません。

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

    次のクエリは、親である c は、サブクエリの FROM 句でのみ使用されるため、問題なく動作します。

    SELECT c.name.given FROM spectrum.customers c WHERE (SELECT COUNT(*) FROM c.phones p WHERE p LIKE '858%') > 1
  • FROM 句以外の場所にあるネストされたデータにアクセスするサブクエリは、単一の値を返す必要があります。

  • (NOT) IN(NOT) EXISTS はサポートされていません。

  • ネストされたすべてのタイプの最大ネスト深度は 100 です。この制限は、すべてのファイル形式 (Parquet、ORC、Ion、JSON) に適用されます。