

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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)
<a name="nested-data-restrictions"></a>

In questo argomento vengono illustrate le limitazioni per la lettura di dati annidati con Redshift Spectrum. I dati annidati sono dati che contengono campi annidati. I campi annidati sono campi di cui è stato effettuato il join come un’unica entità, quali array, strutture oppure oggetti. 

**Nota**  
Le limitazioni contrassegnate con (anteprima) nell’elenco seguente si applicano solo ai cluster 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](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#cluster-preview) nella *Guida alla gestione di Amazon Redshift*. 

Le seguenti limitazioni si applicano ai dati nidificati:
+ Un tipo `array` o `map` può contenere altri tipi `array` o `map`, purché le query su `arrays` o `maps` annidati non restituiscano valori `scalar` (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'espressione `OUTER 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 tipo `SELECT` o `WHERE`. Ad esempio, la seguente query non viene eseguita perché la clausola `SELECT` della query secondaria si riferisce alla tabella padre `c`. 

  ```
  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 clausola `FROM` 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 clausola `WHERE`.
+ `(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` e `maps` nella loro clausola `FROM`, 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](c-spectrum-external-tables.md#c-spectrum-external-tables-pseudocolumns). 
+ 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 sono `scalar`. Ad esempio, le seguenti query tentano entrambe di eseguire `SELECT` per gli elementi dall'interno di una matrice. La query che seleziona `arr.a` riesce perché `arr.a` è un valore `scalar`. La seconda query non riesce perché `array` è una matrice estratta da `s3.nested table` nella clausola `FROM` (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'istruzione `SELECT`.