Funzioni JSON - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Funzioni JSON

Nota

Per utilizzare JSON, consigliamo di utilizzare le funzioni seguenti:

Con JSON_PARSE devi solo convertire il testo JSON in un valore di tipo SUPER una volta al momento dell’importazione. Dopodiché puoi utilizzare i valori SUPER. Amazon Redshift analizza i valori SUPER in modo più efficiente rispetto a VARCHAR, che è l’output per le funzioni JSON basate su testo. Per ulteriori informazioni sull’utilizzo del tipo di dati SUPER, consulta Dati semistrutturati in Amazon Redshift.

Quando è necessario memorizzare un insieme relativamente piccolo di coppie chiave-valore, è possibile risparmiare spazio memorizzando i dati nel formato JSON. Poiché le stringhe JSON possono essere memorizzate in una singola colonna, l'utilizzo di JSON potrebbe essere più efficiente rispetto all'archiviazione dei dati in formato tabulare. Ad esempio, supponiamo di disporre di una tabella sparsa, in cui è necessario avere molte colonne per rappresentare a pieno tutti gli attributi possibili, ma la maggior parte dei valori delle colonne è NULL per ogni riga o colonna data. Usando JSON per l'archiviazione, si potrebbe essere in grado di memorizzare i dati per una riga in coppie chiave:valore in una singola stringa JSON ed eliminare le colonne della tabella scarsamente popolate.

Inoltre puoi modificare facilmente le stringhe JSON per memorizzare coppie chiavi:valore aggiuntive senza dover aggiungere colonne a una tabella.

È consigliabile usare un JSON con parsimonia. JSON non è una buona scelta per archiviare set di dati più grandi perché, archiviando dati disparati in una singola colonna, JSON non usa abitualmente l'architettura di archiviazione di colonne di Amazon Redshift. Sebbene Amazon Redshift supporti le funzioni JSON su colonne CHAR e VARCHAR, per l'elaborazione dei dati in formato di serializzazione JSON consigliamo di utilizzare SUPER. SUPER utilizza una rappresentazione senza schema post-analisi in grado di eseguire query in modo efficiente sui dati gerarchici. Per ulteriori informazioni sui tipi di dati SUPER, consultare Dati semistrutturati in Amazon Redshift.

JSON utilizza stringhe di testo con codifica UTF-8, pertanto le stringhe JSON possono essere memorizzate come tipi di dati CHAR o VARCHAR.

Le stringhe JSON devono essere formattate in modo corretto con JSON, in base alle seguenti regole:

  • Il JSON di livello radice può essere un oggetto JSON o un array JSON. Un oggetto JSON è un insieme non ordinato di coppie di chiave:valore separate da virgole racchiuse da parentesi graffe.

    Ad esempio, ., {"one":1, "two":2}

  • Un array JSON è un insieme ordinato di valori separati da virgola racchiusi tra parentesi.

    Un esempio è quanto segue: ["first", {"one":1}, "second", 3, null]

  • Gli array JSON utilizzano un indice basato su zero; il primo elemento di un array è in posizione 0. In una coppia chiave:valore JSON, la chiave è una stringa racchiusa tra virgolette doppie.

  • Un valore JSON può essere uno dei seguenti:

    • Oggetto JSON

    • array

    • string

      • Racchiuso tra virgolette doppie

    • number

      • Include numeri interi, numeri decimali e numeri a virgola mobile

    • booleano

    • null

  • Gli oggetti vuoti e gli array vuoti sono valori JSON validi.

  • I campi JSON fanno distinzione tra maiuscole e minuscole.

  • Lo spazio bianco tra gli elementi strutturali JSON (ad esempio { }, [ ]) viene ignorato.

Le funzioni JSON di Amazon Redshift e il comando COPY di Amazon Redshift usano gli stessi metodi per lavorare con i dati in formato JSON. Per ulteriori informazioni sull'utilizzo di JSON, consulta COPY dal formato JSON