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

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...

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 ?...