Mesure de la qualité de données : les Data Metric Functions sur Snowflake

Sybille 29 avril 2024

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.

 

Data Metric Fonctions

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 …

 

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 soi :

DROP TABLE region;

 

Nous espérons que vous allez user et abuser de ces fonctions très utiles 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

Découvrez aussi

IA
8 juin 2018
Cognitive Search : des recherches plus pertinentes grâce à l’IA

Le Cognitive Search révolutionne les moteurs de recherche en dépassant la simple logique de mots-clés grâce à l’IA et au machine learning. Les...

IA Événements
9 octobre 2025
Snowflake World Tour Paris 2025 : l’unification Data + IA au cœur des échanges

Le Snowflake World Tour Paris 2025 a une fois de plus rassemblé la communauté data autour d’un constat partagé : l’ère du Data + IA unifié est bien...

Data
12 août 2021
Data sharing : créer plus de valeur avec le partage de données

Qu’est-ce que le data sharing et quelles sont les bases du partage de données pour développer une stratégie qui bénéficie à la fois à l’entreprise et...