Snowflake

Réaliser un flux ELT avec Snowflake

Introduction

Comme nous l’avons évoqué dans notre précédent article intégrer Snowflake dans une chaine décisionnelle, Snowflake est un éditeur d’une solution d’infrastructure de données dans le cloud qui permet de centraliser les données afin de pouvoir les réutiliser pour de la Business Intelligence par exemple.

Snowflake permet de répondre à de nombreux besoins et peut facilement s’intégrer de différentes manières dans une chaine décisionnelle. Nous verrons ici comment créer un Data Warehouse dans Snowflake en partant d’un ODS (Operational Data Store qui regroupe les données des différentes sources dans un format unifié) également réalisé dans Snowflake.

Chaine décisionnelle avec ODS Snowflake

Préparation de la base de données

Dans un premier temps, il faut préparer le Data Warehouse qui stockera nos données une fois transformées. On crée donc une base de données :

Préparation Data Warehouse Snowflake

On y insère un schéma :

Intégration Schema Snowflake

Puis on crée les tables en utilisant le langage SQL.

Transferts des données

Nous pouvons commencer par transférer des données en exécutant une simple requête INSERT INTO. Par exemple, ici nous transférons les données de la table « Vols » de la base de données « Raw » (Base ODS) vers la table « Vols » de notre base de données « Prod » (Data Warehouse) en effectuant quelques transformations.

Transfert de données Snowflake
Restons connectés !

Inscrivez-vous à la newsletter DeciVision !

Soyez notifiés de nos derniers articles de blog, de nos prochains webinars et nos actualités !

Automatisation

Maintenant qu’on arrive à transférer les données transformées, on va chercher à automatiser cette requête.

Imaginons qu’on souhaite effectuer cette requête toutes les heures qui traite la totalité de la table « Vols », nous allons insérer à maintes reprises les mêmes données ce qui va poser des problèmes d’intégrité des données ainsi qu’un surcoût puisque nous paierons l’exécution de toute la requête.

Pour éviter ces problèmes, nous allons créer un Stream.

Création d’un Stream

Un Stream est un objet Data Snowflake qui permet de détecter et capturer tous les changements de données d’une table pour pouvoir ensuite les exploiter. Ce type de technologie est communément appelée « Change Capture ».

Pour créer un Stream, on se place dans le schéma souhaité et on clique sur créer un Stream :

Création d'un stream Snowflake

Ce Stream va nous permettre de recueillir les données nouvellement insérées que nous souhaitons transformer puis transférer régulièrement dans notre Data Warehouse.

Création d’une Task

Maintenant que nous avons notre requête à automatiser et les données concernées, nous pouvons créer une Task. Pour cela il suffit de prendre votre requête et :

  • Ajouter la ligne de code suivante au-dessus : « create or replace task prod_task as ».
  • Pour utiliser le Stream on le place dans le FROM
  • Pour exécuter la Task uniquement quand le Stream a des valeurs on utilise la commande STREAM_HAS_DATA
  • Pour sélectionner uniquement les données insérées dans la table on peut rajouter « metadata$action = ‘INSERT’ » dans la clause WHERE.
Création d'une tâche Snowflake

Connexion à DigDash

Enfin, une fois le Data Warehouse crée, on va chercher à le connecter à DigDash.

Pour cela on va créer une nouvelle connexion dans le Web Studio. On choisi une connexion de type Snowflake

Connexion Digdash Snowflake

Nous devons également renseigner un Warehouse qui sera utilisé pour l’exécution des requêtes (pas obligatoire si vous avez un Warehouse défini par défaut sur votre utilisateur Snowflake).

Warehouse Execution Requetes

Une fois la connexion créée, nous pouvons réaliser notre tableau de bord avec Digdash.

CONCLUSION DE L’EXPERT

Snowflake met en place différents outils pour créer des flux ELT et permet de communiquer facilement entre 2 bases de données Snowflake.

Les Tasks nous permettent de planifier des requêtes et sont donc idéales pour réaliser des flux ELT. Combinées avec un Stream, on obtient alors un outil inégalable économiquement et en termes de performances.

Un projet ? Une question ?

Laissez-nous vos coordonnées et nous vous recontactons dans les plus brefs délais !

Articles récents
Évènements à venir
Newsletter DeciVision

Soyez notifiés de nos derniers articles de blog, de nos prochains webinars et nos actualités !