Passer au contenu principal

Question

Comment importer des tableaux JSON et comment interroger les objets qu’ils contiennent ?

Réponse

Enregistrez ce tableau JSON sur une seule ligne dans sample.json
Vérifiez les données :
Créez une table pour recevoir les données JSON :
Insérez les données :
Vérifiez comment l’inférence de données a fonctionné sur le type d’objet JSON :
Events est un Array de Tuple, chacun contenant un champ eventType String et un champ time String. Ce dernier type n’est pas idéal (on préférerait DateTime). Voyons les données :
Exécutons quelques requêtes : _id et channel des événements dont eventType a pour valeur close
Nous voulons interroger time, par exemple pour récupérer tous les événements sur un intervalle de temps donné, mais nous constatons qu’il a été importé en tant que String :
Donc, pour les traiter comme des dates, commençons par les convertir en DateTime. Pour convertir un tableau, on utilise la fonction map :
nous pouvons observer les différences en utilisant toTypeName sur les deux tableaux :
maintenant, récupérons l’id des lignes où time est compris dans un intervalle donné. nous utilisons arrayCount pour vérifier s’il existe un nombre d’éléments supérieur à 0 dans le tableau renvoyé par la fonction map qui correspondent à la condition x BETWEEN toDateTime('2021-06-18 11:46:00', 'Europe/Rome') AND toDateTime('2021-06-18 11:50:00', 'Europe/Rome')
⚠️ Veuillez noter qu’au moment de la rédaction de cet article, l’implémentation actuelle de JSON est expérimentale et ne convient pas à un environnement de production. Cet exemple montre comment importer rapidement du JSON et commencer à le requêter. Il illustre aussi le compromis en termes de facilité d’utilisation : nous importons ici les objets JSON avec le type JSON sans avoir à définir le schéma à l’avance. C’est pratique pour un test rapide ; en revanche, pour une utilisation à long terme des données, dans le cadre de cet exemple, nous préférerions stocker les données avec les types les plus adaptés. Ainsi, pour le champ time, il vaut mieux utiliser DateTime plutôt que String, afin d’éviter toute conversion après la phase d’ingestion, comme illustré ci-dessus. Veuillez consulter la documentation pour en savoir plus sur la gestion de JSON.
Dernière modification le 1 juillet 2026