Fermer

mai 6, 2024

Maîtriser l’ingestion de données en temps réel / Blogs / Perficient

Maîtriser l’ingestion de données en temps réel / Blogs / Perficient


Dans cet article de blog, nous aborderons deux fonctionnalités puissantes de Snowflake : Snowpipe et Streams. Snowpipe et Streams sont des composants cruciaux pour le traitement et l’analyse des données en temps réel dans Snowflake. Nous explorerons ce que chaque fonctionnalité implique et comment elles peuvent être exploitées ensemble pour rationaliser les flux de travail d’ingestion et d’analyse de données, en exploitant la puissance de Snowpipe et Streams de Snowflake.

Pipe à neige

Puissance du Snowpipe et des ruisseaux de Snowflake

Snowpipe est une fonctionnalité essentielle de Snowflake qui automatise le processus de chargement des données dès que de nouveaux fichiers apparaissent dans un emplacement désigné, tel qu’un compartiment de stockage cloud. Cela élimine le besoin d’intervention manuelle et garantit que de nouvelles données sont facilement disponibles pour analyse sans délai. Snowpipe fonctionne comme une fonction sans serveur, gérée par Snowflake lui-même, allégeant ainsi le fardeau de la gestion des entrepôts virtuels.

Ruisseaux en flocon de neige

Puissance du Snowpipe et des Streams de Snowflake1

Les flux dans Snowflake fournissent un flux continu et ordonné de modifications apportées à une table. Chaque fois qu’une opération DML (Data Manipulation Language) est effectuée sur une table, telle que INSERT, UPDATE ou DELETE, les données de modification correspondantes sont capturées et mises à disposition via le flux. Les flux sont inestimables pour capturer les modifications apportées aux données en temps réel, permettant ainsi un traitement et des analyses en aval en temps quasi réel.

Configuration de Snowpipe et de Streams

Création du tableau

-- Create table to store employee data
CREATE OR REPLACE TABLE SNOW_DB.PUBLIC.employees (
id INT,
first_name STRING,
last_name STRING,
email STRING,
location STRING,
department STRING
);

Créer un flux

Avant de configurer Snowpipe, nous devons créer un flux sur la table cible pour capturer les modifications.

-- Create a stream on the target table
CREATE OR REPLACE STREAM my_stream ON TABLE SNOW_DB.PUBLIC.employees;

Configuration de Snowpipe

Maintenant, configurons Snowpipe pour charger automatiquement les données d’une scène externe dans notre table cible chaque fois que de nouveaux fichiers sont ajoutés.

-- Create a stage object
CREATE OR REPLACE STAGE DATABASE.external_stages.csv_folder
URL = 's3://snowflakebucket/csv/snowpipe'
STORAGE_INTEGRATION = s3_int
FILE_FORMAT = DATABASE.file_formats.csv_fileformat;

-- Create a pipe to load data from the stage
CREATE OR REPLACE PIPE DATABASE.pipes.my_pipe
AS
COPY INTO SNOW_DB.PUBLIC.employees
FROM @DATABASE.external_stages.csv_folder;

Exemple de scénario

Imaginez que nous ayons un flux de transactions clients ingéré en permanence dans notre base de données Snowflake. Avec Snowpipe et Streams configurés, nous pouvons capturer ces transactions en toute transparence en temps réel et les analyser pour obtenir des informations ou déclencher d’autres actions, telles que la détection de fraude ou des campagnes marketing personnalisées.

Sortie du flux

Le flux « my_stream » capture les modifications apportées à la table « employés ». Nous pouvons interroger le flux pour voir les données modifiées à l’aide de l’instruction SELECT :

-- Query the stream for change data
SELECT * FROM my_stream;

Cette requête renverra les données de modification capturées par le flux, y compris le type d’opération (INSERT, UPDATE, DELETE) et les modifications de données correspondantes.

Exemple de sortie

Supposons qu’il y ait eu des opérations d’insertion sur la table « employés ». La requête sur le flux peut renvoyer quelque chose comme ceci :

| MÉTADONNÉES$ACTION | MÉTADONNÉES$ISUPDATE | METADATA$ROW_ID | ID | FIRST_NAME | LAST_NAME | COURRIEL | EMPLACEMENT | DÉPARTEMENT |

|—————–|——————-|—————–|—–|————|———–|————————|————– |————|

| INSÉRER | faux | 1 | 101 | Jean | Biche | john.doe@example.com | New York | Ventes |

| INSÉRER | faux | 2 | 102 | Jeanne | Forgeron | jane.smith@example.com | Los Angeles | Commercialisation |

| INSÉRER | faux | 3 | 103 | Bob | Johnson | bob.johnson@example.com| Chicago | Ingénierie|

Dans cet exemple, chaque ligne représente une opération d’insertion sur la table « employés ». La colonne « METADATA$ACTION » indique l’action effectuée (dans ce cas, INSERT), tandis que les colonnes « ID », « FIRST_NAME », « LAST_NAME », « EMAIL », « LOCATION » et « DEPARTMENT » contiennent les employés insérés. ‘ données.

Ce flux de sortie donne un aperçu des modifications apportées au tableau « employés », permettant un suivi en temps réel des opérations.

Cas d’utilisation supplémentaires

Surveillance en temps réel des transactions financières

Les institutions financières peuvent utiliser Snowpipe et Streams pour surveiller les transactions financières en temps réel. En configurant Streams sur des tables pertinentes, ils peuvent capturer et analyser les modifications des données de transaction, ce qui leur permet de détecter rapidement les activités frauduleuses potentielles ou les risques financiers. Par exemple, ils peuvent configurer des alertes automatisées pour identifier les modèles de transactions suspectes et prendre immédiatement des mesures correctives.

Analyse du comportement des utilisateurs dans les applications Web et mobiles

Les entreprises technologiques peuvent exploiter Snowpipe et Streams pour analyser le comportement des utilisateurs dans leurs applications Web et mobiles. En capturant les événements des utilisateurs tels que les clics, les interactions et les achats en temps réel via Streams, ils peuvent obtenir des informations précieuses sur l’expérience utilisateur, identifier les domaines à améliorer et personnaliser dynamiquement les expériences utilisateur. Cela leur permet de proposer des recommandations personnalisées, des campagnes marketing ciblées et des fonctionnalités adaptées aux besoins individuels des utilisateurs.

Conclusion

En exploitant la puissance de Snowpipe et Streams dans Snowflake, les organisations peuvent réaliser une ingestion et une analyse efficaces des données en temps réel, permettant une prise de décision rapide et libérant des informations précieuses à partir de sources de données en streaming.

Cet article de blog fournit un aperçu de Snowpipe et de Streams, suivi d’un guide étape par étape sur leur configuration et d’un exemple de scénario illustrant leur utilisation combinée.






Source link