BigQuery vs Snowflake : pour le parsing de JSON
Introduction
Pour les besoins d’un client nous avons effectué un comparatif de performance entre BigQuery et Snowflake. Nous avons pu constater que les temps de traitement étaient similaires sauf dans le cas de ce que nous allons vous présenter ci-dessous.
Qu’est-ce que le parsing
Tout d’abord, définissons ce qu’est le parsing. Le parsing c’est la découpe en petit morceaux d’une chaîne de caractère normée pour avoir une table relationnelle. Pour ce faire on utilise des fonctions SQL spécifique en fonction de la base de données.
Qu’est-ce que JSON ?
{ « client »:[ { « id »:15, « name »: »Martin », « roles »: »Martin-ROLE_E4″, « description »: »Access to all reports in category ‘General’, ‘Finance’ and ‘Forecast' », « entrepriseid »:5, « isObsolete »:0, « radio »:0 } } |
Le format JSON (JavaScript Object Notation) est un langage léger d’échange de données textuelles totalement indépendant de tout langage.
Comparaison de l’utilisation de JSON sur BigQuery et sur Snowflake
Nous allons maintenant découvrir ce qui différencie ces 2 SGBD dans le traitement des JSON.
Pour réaliser ces traitements, les fonctions utilisées sont :
Snowflake : fonction JSON_EXTRACT_PATH_TEXT
BigQuery : fonction JSON_VALUE
Traitement 1 :
Nombre de ligne dans la table source contenant uniquement un champ JSON : 125 000 lignes
Nombre de colonne parsées dans la table cible en 120 colonnes
Volume de la table source 200 Mo
Temps BigQuery : 11 min
Temps Snowflake : 25 sec
Traitement 2 :
Nombre de ligne dans la table source contenant uniquement un champ JSON : 700 000 lignes
Nombre de colonne parsées dans la table cible en 20 colonnes
Volume de la table source 90 Mo
Temps BigQuery : 40 sec
Temps Snowflake : 20 sec
Traitement 3 :
Nombre de ligne dans la table source contenant uniquement un champ JSON : 1 300 000 lignes
Nombre de colonne parsées dans la table cible en 60 colonnes
Volume de la table source 450 Mo
Temps BigQuery : 1 min 30 sec
Temps Snowflake : 40 sec
Nous pouvons constater que dans BigQuery, plus on découpe des champs plus le temps est important.
Conclusion
En conclusion, nous avons constaté que pour Snowflake, le temps de traitement est plutôt performant comme nous pouvons le voir dans les 3 exemples. Le parsing de JSON est toujours plus rapide sur Snowflake que sur BigQuery.