Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Limitazioni relative ai dati annidati (anteprima)
Nota
Le limitazioni contrassegnate con "(anteprima)" nell'elenco seguente si applicano solo ai cluster di anteprima e ai gruppi di lavoro di anteprima creati nelle seguenti regioni.
Stati Uniti orientali (Ohio) (us-east-2)
Stati Uniti orientali (Virginia settentrionale) (us-east-1)
Stati Uniti occidentali (California settentrionale) (us-west-1)
Asia Pacifico (Tokyo) (ap-northeast-1)
Europa (Irlanda) (eu-west-1)
Europa (Stoccolma) (eu-north-1)
Per informazioni sulla configurazione di cluster di anteprima, consulta Creazione di un cluster di anteprima nella Guida alla gestione di Amazon Redshift. Per informazioni sulla configurazione dei gruppi di lavoro di anteprima, consulta Creazione di un gruppo di lavoro di anteprima nella Guida alla gestione di Amazon Redshift.
Le seguenti limitazioni si applicano ai dati nidificati:
-
Un tipo
array
omap
può contenere altri tipiarray
omap
, purché le query suarrays
omaps
annidati non restituiscano valoriscalar
(anteprima). -
Amazon Redshift Spectrum supporta i tipi di dati complessi solo come tabelle esterne.
-
Le colonne dei risultati delle query secondarie devono essere di primo livello (anteprima).
-
Se un'espressione
OUTER JOIN
si riferisce a una tabella nidificata, può fare riferimento solo a quella tabella e alle relative matrici (e mappe) nidificate. Se un'espressioneOUTER JOIN
non si riferisce a una tabella nidificata, può fare riferimento a qualsiasi numero di tabelle non nidificate. -
Se una clausola
FROM
in una query secondaria si riferisce a una tabella nidificata, non può fare riferimento a nessun'altra tabella. -
Se una query secondaria dipende da una tabella nidificata che si riferisce a una tabella padre, la query secondaria può utilizzare la tabella padre solo nella clausola
FROM
. Non puoi utilizzare l'elemento padre in un'altra clausola, ad esempio una di tipoSELECT
oWHERE
. Ad esempio, la seguente query non viene eseguita perché la clausolaSELECT
della query secondaria si riferisce alla tabella padrec
.SELECT c.name.given FROM spectrum.customers c WHERE (SELECT COUNT(c.id) FROM c.phones p WHERE p LIKE '858%') > 1;
La query riportata sotto viene eseguita perché l'elemento
c
è utilizzato solo nella clausolaFROM
della query secondaria.SELECT c.name.given FROM spectrum.customers c WHERE (SELECT COUNT(*) FROM c.phones p WHERE p LIKE '858%') > 1;
-
Una query secondaria che accede ai dati nidificati non dalla clausola
FROM
deve restituire un unico valore. Fanno eccezione solo gli operatori(NOT) EXISTS
in una clausolaWHERE
. -
(NOT) IN
non è supportato. -
La profondità di nidificazione massima per tutti i tipi nidificati è 100. Questa restrizione si applica a tutti i formati di file (Parquet, ORC, Ion e JSON).
-
Le query secondarie di aggregazione che accedono a dati nidificati possono fare riferimento solo ad
arrays
emaps
nella loro clausolaFROM
, non a una tabella esterna. -
L'esecuzione di query sulle pseudocolonne di dati nidificati in una tabella di Redshift Spectrum non è supportata. Per ulteriori informazioni, consulta Pseudocolonne.
-
Quando si estraggono i dati da colonne di matrici o mappe specificate in una clausola
FROM
, è possibile selezionare i valori dalle colonne solo se i valori sonoscalar
. Ad esempio, le seguenti query tentano entrambe di eseguireSELECT
per gli elementi dall'interno di una matrice. La query che selezionaarr.a
riesce perchéarr.a
è un valorescalar
. La seconda query non riesce perchéarray
è una matrice estratta das3.nested table
nella clausolaFROM
(anteprima).SELECT array_column FROM s3.nested_table;
array_column ----------------- [{"a":1},{"b":2}]
SELECT arr.a FROM s3.nested_table t, t.array_column arr;arr.a ----- 1
--This query fails to run. SELECT array FROM s3.nested_table tab, tab.array_column array;Non è possibile utilizzare una matrice o una mappa nella clausola
FROM
che a sua volta proviene da un'altra matrice o mappa. Per selezionare matrici o altre strutture complesse annidate all'interno di altre matrici, prendi in considerazione di usare gli indici nell'istruzioneSELECT
.