JSONfonctions - 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.

JSONfonctions

Note

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

Avec JSON _PARSE, vous ne devez convertir le JSON texte en valeur de SUPER type qu'une seule fois lors de l'ingestion, après quoi vous pouvez opérer sur les SUPER valeurs. Amazon Redshift analyse les SUPER valeurs plus efficacement que VARCHAR ce qui est le cas pour les fonctions basées sur du texte. JSON Pour plus d'informations sur l'utilisation du type de SUPER données, consultezDonnées semi-structurées dans Amazon Redshift.

Lorsque vous devez stocker un ensemble relativement restreint de paires clé-valeur, vous pouvez économiser de l'espace en stockant les données au JSON format. Comme JSON les chaînes peuvent être stockées dans une seule colonne, leur utilisation JSON peut s'avérer plus efficace que le stockage de vos données sous forme de tableau. Supposons, par exemple, que vous ayez une table éparse, dans laquelle vous devez disposer de nombreuses colonnes pour représenter pleinement tous les attributs possibles, mais où la plupart des valeurs de colonne concernent une ligne ou une colonne donnée. NULL En utilisant JSON for storage, vous pourrez peut-être stocker les données d'une ligne sous forme de paires clé:valeur dans une seule JSON chaîne et éliminer les colonnes de table peu peuplées.

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

Nous vous recommandons de l'utiliser avec JSON parcimonie. JSONn'est pas un bon choix pour stocker des ensembles de données plus volumineux car, en stockant des données disparates dans une seule colonne, JSON il n'utilise pas l'architecture du magasin de colonnes Amazon Redshift. Bien qu'Amazon Redshift prenne en charge les JSON fonctions sur CHAR les VARCHAR colonnes, nous vous recommandons de les utiliser SUPER pour le traitement des données au format de JSON sérialisation. SUPERutilise une représentation sans schéma post-analyse qui permet d'interroger efficacement les données hiérarchiques. Pour plus d'informations sur le type de SUPER données, consultezDonnées semi-structurées dans Amazon Redshift.

JSONutilise des chaînes de texte codées en UTF -8, de sorte que JSON les chaînes peuvent être stockées sous forme CHAR de types de VARCHAR données.

JSONles chaînes doivent être correctement formatéesJSON, conformément aux règles suivantes :

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

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

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

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

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

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

    • JSONobjet

    • 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 JSON valeurs valides.

  • JSONles champs distinguent majuscules et minuscules.

  • Les espaces blancs entre les éléments JSON structuraux (tels que{ }, [ ]) sont ignorés.

Les JSON fonctions Amazon Redshift et la commande Amazon COPY Redshift utilisent les mêmes méthodes pour traiter les données formatées. JSON Pour plus d'informations sur l'utilisationJSON, voir COPYà partir du JSON format