Fonctions JSON - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fonctions JSON

Note

Nous vous recommandons d'utiliser les fonctions suivantes pour travailler avec JSON :

Avec JSON_PARSE, il suffit de convertir le texte JSON en valeur de type SUPER une seule fois lors de l'ingestion, après quoi vous pouvez opérer sur les valeurs SUPER. Amazon Redshift analyse les valeurs SUPER plus efficacement que VARCHAR, qui est la sortie des fonctions JSON basées sur du texte. Pour plus d'informations sur l'utilisation du type de données SUPER, consultezIngestion et interrogation de données semi-structurées dans Amazon Redshift.

Lorsque vous avez besoin de stocker un ensemble relativement petit de paires clé-valeur, vous pouvez économiser de l’espace en stockant les données au format JSON. Étant donné que les chaînes au format JSON peuvent être stockées dans une seule colonne, l’utilisation de JSON peut être plus efficace que de stocker vos données sous forme de table. Par exemple, supposons que vous ayez une table partiellement remplie, dans laquelle vous avez besoin de nombreuses colonnes pour représenter entièrement tous les attributs possibles, mais que la plupart des valeurs de colonnes ont une valeur NULL pour n’importe quelle ligne ou colonne donnée. En utilisant JSON pour le stockage, vous pourriez stocker les données pour une ligne des paires clé:valeur dans une seule chaîne JSON et éliminer les colonnes de la table partiellement renseignées.

En outre, vous pouvez facilement modifier les chaînes JSON pour stocker des paires clé:valeur supplémentaires lorsque votre schéma JSON change sans avoir à ajouter de colonnes à une table.

Nous vous conseillons d’utiliser JSON avec modération. JSON n’est pas le bon choix pour stocker des ensembles de données plus volumineux parce que, en stockant des données disparates dans une seule colonne, JSON n’exploite pas l’architecture de stockage de colonnes d’Amazon Redshift. Bien qu’Amazon Redshift prenne en charge les fonctions JSON sur les colonnes CHAR et VARCHAR, nous vous recommandons d’utiliser SUPER pour le traitement des données au format de sérialisation JSON. SUPER utilise une représentation sans schéma post-analyse qui peut interroger efficacement les données hiérarchiques. Pour plus d’informations sur le type de données SUPER, consultez Ingestion et interrogation de données semi-structurées dans Amazon Redshift.

JSON utilise des chaînes de texte codées UTF-8, les chaînes JSON peuvent donc être stockées sous forme de types de données CHAR ou VARCHAR.

Les chaînes JSON doivent être au bon format JSON, selon les règles suivantes :

  • Le JSON de niveau racine peut être un objet JSON ou un tableau JSON. Un objet JSON est un ensemble non trié de paires clé:valeur séparées par des virgules délimitées par des accolades.

    Par exemple, {"one":1, "two":2}

  • Un tableau JSON est un ensemble ordonné de valeurs séparées par des virgules délimitées par des crochets.

    Voici un exemple : ["first", {"one":1}, "second", 3, null] .

  • Les tableaux JSON utilisent un index de base zéro ; le premier élément d’un tableau se trouve à la position 0. Dans une paire clé:valeur JSON, la clé est une chaîne entre guillemets doubles.

  • Une valeur JSON peut être l’une des suivantes :

    • Objet JSON

    • array

    • chaîne

      • Représenté par des guillemets

    • nombre

      • Inclut les nombres entiers, les décimaux et les nombres flottants

    • un booléen

    • null

  • Les objets vides et les tableaux vides sont des valeurs JSON valides.

  • Les champs JSON sont sensibles à la casse.

  • Les espace vides entre les éléments structurels JSON (tel que { }, [ ]) sont ignorés.

Les fonctions JSON Amazon Redshift et la commande COPY Amazon Redshift utilisent les mêmes méthodes pour utiliser des données au format JSON. Pour plus d’informations sur l’utilisation de JSON, consultez Exécution de la commande COPY à partir du format JSON.