Description
Dans ce format, toutes les données sont représentées dans un unique objet JSON, chaque ligne correspondant à un champ distinct de cet objet, à l’instar du formatJSONEachRow.
Exemple d’utilisation
Exemple simple
Soit le JSON suivant :format_json_object_each_row_column_for_object_name.
La valeur de ce paramètre correspond au nom d’une colonne, utilisée comme clé JSON pour une ligne dans l’objet résultant.
Sortie
Supposons que nous ayons la tabletest avec deux colonnes :
JSONObjectEachRow et utilisons le paramètre format_json_object_each_row_column_for_object_name :
Query
Response
Entrée
Supposons que nous ayons enregistré le résultat de l’exemple précédent dans un fichier nommédata.json :
Query
Response
Query
Response
Insertion de données
Query
- N’importe quel ordre pour les paires clé-valeur dans l’objet.
- L’omission de certaines valeurs.
Traitement des valeurs omises
ClickHouse remplace les valeurs omises par les valeurs par défaut des types de données correspondants. SiDEFAULT expr est spécifié, ClickHouse applique des règles de substitution différentes selon le paramètre input_format_defaults_for_omitted_fields.
Considérez le tableau suivant :
Query
- Si
input_format_defaults_for_omitted_fields = 0, la valeur par défaut dexet deaest0(qui est la valeur par défaut du type de donnéesUInt32). - Si
input_format_defaults_for_omitted_fields = 1, la valeur par défaut dexest0, mais celle deaestx * 2.
Lors de l’insertion de données avec
input_format_defaults_for_omitted_fields = 1, ClickHouse consomme plus de ressources de calcul qu’avec une insertion utilisant input_format_defaults_for_omitted_fields = 0.Sélection de données
Prenons la tableUserActivity comme exemple :
SELECT * FROM UserActivity FORMAT JSONEachRow renvoie :
JSON.
N’importe quelle séquence d’octets peut être renvoyée dans les chaînes. Utilisez le format
JSONEachRow si vous êtes certain que les données de la table peuvent être formatées en JSON sans perte d’information.Utilisation des structures Nested
Si vous avez une table avec des colonnes du type de donnéesNested, vous pouvez insérer des données JSON ayant la même structure. Activez cette fonctionnalité avec le paramètre input_format_import_nested_json.
Par exemple, prenons la table suivante :
Query
Nested, ClickHouse traite chaque composant de la structure imbriquée comme une colonne distincte (n.s et n.i dans notre table). Vous pouvez insérer les données de la manière suivante :
Query
input_format_import_nested_json=1.
Query
Response
Query
Response
Query
Response