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
      }
}
Exemple

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.