Longue vie aux Data Metric Functions !

Arnaud Col 29 avril 2024

Data Metric Fonctions

Un nouvel objet arrive dans snowflake… la Data Metric Function !

Vous pouvez utiliser des fonctions standards ou créer vos propres fonctions pour mesurer la qualité de vos données.

 

Quoi de mieux qu’un exemple pour découvrir cette nouvelle fonctionnalité ?

Partons sur le besoin basique mais récurrent de détection automatique des doublons.

 

Avec Snowflake, on commence souvent par attribuer des rôles :

use role accountadmin;
grant database role SNOWFLAKE.DATA_METRIC_USER to role sysadmin;
grant execute data metric function on account to role sysadmin;
grant application role snowflake.data_quality_monitoring_viewer to role sysadmin;

 

Allons dans notre contexte de travail :

USE ROLE SYSADMIN ;
USE DATABASE demo_db;
USE SCHEMA public;

 

Créons ensuite une table avec 1 doublon :

CREATE OR REPLACE TABLE region
AS
SELECT * FROM snowflake_sample_data.tpch_sf1.region
UNION ALL
(SELECT * FROM snowflake_sample_data.tpch_sf1.region limit 1)
;

 

Invoquons manuellement la fonction système de détection de doublons :

select snowflake.core.duplicate_count(select r_name from region);

 

Voici le résultat :

SNOWFLAKE.CORE.DUPLICATE_COUNT(SELECT R_NAME FROM PUBLIC.REGION)
1

 

Nous retrouvons bien 1 doublon.

 

Ajoutons un déclencheur sur notre table pour que les contrôles qualité s’exécutent lorsque les données changent :

ALTER TABLE region SET
DATA_METRIC_SCHEDULE = 'TRIGGER_ON_CHANGES';

 

Enfin, ajoutons la fonction détection des doublons sur notre table :

ALTER TABLE region
ADD DATA METRIC FUNCTION snowflake.core.duplicate_count
ON (r_name);

 

Il ne nous reste plus qu’à injecter de nouveaux doublons :

INSERT OVERWRITE INTO region
SELECT * FROM snowflake_sample_data.tpch_sf1.region
UNION ALL
(SELECT * FROM snowflake_sample_data.tpch_sf1.region limit 3);

 

Tips 🎁 : Le mot clé OVERWRITE permet de faire un truncate avant de faire un insert.

Il faut attendre quelques minutes avant de pouvoir invoquer le résultat.

 

Autre tips 🎁 : il s’agit du mot clé TABLE qui évite d’écrire SELECT * FROM …

Trop pratique ♥️

 

Récupérons donc le résultat de notre contrôle :

TABLE snowflake.local.data_quality_monitoring_results;

Cette table contient beaucoup de colonnes.

 

On va garder celles qui nous intéressent :

select measurement_time,
metric_database,
table_schema,
table_name,
metric_schema,
metric_name,
value
from snowflake.local.data_quality_monitoring_results;

 

Et on retrouve bien nos 3 doublons :

MEASUREMENT_TIME METRIC_DATABASE TABLE_SCHEMA TABLE_NAME METRIC_SCHEMA METRIC_NAME VALUE
20240409 10:35:22.290 -0400 SNOWFLAKE PUBLIC REGION CORE DUPLICATE_COUNT 3

 

Bien sûr, on pourra se créer des alertes ou des dashboards à partir de ces données.

On pouvait déjà faire tout cela programmatiquement. C’est juste devenu plus facile ! 🎉

 

On n’oublie pas de faire le ménage derrière soit :

DROP TABLE region;

 

J’espère que vous allez user et abuser de ces fonctions bien pratiques pour surveiller la qualité des donnés.

 

Pour en savoir plus sur les DMF… RTFM 😁
https://docs.snowflake.com/en/user-guide/data-quality-working

Partagez cet article

Nos Actus

A la Une
29 avril 2024
L’état de l’art de la Gouvernance Snowflake

Le contexte Imaginez que vous êtes le nouveau DSI d’un groupe international.

29 avril 2024
Qu'est-ce qu'un Data Superhero ?

Un Data Superhero est un terme inventé par Snowflake et qui représente une distinction accordée à des experts démontrant une expertise exceptionnelle...

Actualité Business Intelligence
16 mars 2018
Êtes-vous prêt pour le RGPD ?

A partir du 25 mai 2018, le Règlement Général sur la Protection des Données (RGPD) entrera en vigueur au sein de l’union européenne. Le but ?...