Introduction aux pipelines de données

Les pipelines de données automatisent bon nombre des étapes manuelles impliquées dans la transformation et l’optimisation de charges de données continues. Fréquemment, les données « brutes » sont d’abord chargées temporairement dans une table intermédiaire utilisée pour le stockage provisoire, puis transformées à l’aide d’une série d’instructions SQL avant d’être insérées dans des tables de génération de rapports de destination. Le flux de travail le plus efficace pour ce processus implique la transformation des seules données nouvelles ou modifiées.

Dans ce chapitre :

Fonctions incluses dans les pipelines de données en continu

Snowflake fournit les fonctionnalités suivantes pour activer les pipelines de données en continu :

Chargement continu des données

Les options de chargement continu des données sont les suivantes :

Changer le suivi des données

Un objet de flux enregistre le delta des informations de capture de données modifiées (CDC) d’une table (telle qu’une table intermédiaire), y compris les insertions et les autres modifications apportées au langage de manipulation des données (DML). Un flux permet d’interroger et de consommer un ensemble de modifications apportées à une table, au niveau des lignes, entre deux points de transaction.

Dans un pipeline de données en continu, les flux de table enregistrent lorsque des tables de zone de préparation et des tables en aval sont remplies avec des données provenant d’applications métiers utilisant le chargement continu des données et pouvant être traitées ultérieurement à l’aide des instructions SQL.

Pour plus d’informations, voir Suivi des modifications à l’aide de flux de table.

Tâches récurrentes

Un objet de tâche définit un programme périodique d’exécution d’une instruction SQL , y compris des instructions appelant des procédures stockées. Les tâches peuvent être chaînées pour une exécution successive afin de prendre en charge des traitements périodiques plus complexes.

Les tâches peuvent éventuellement utiliser des flux de table pour fournir un moyen pratique de traiter en continu des données nouvelles ou modifiées. Une tâche peut transformer de nouvelles lignes ou des lignes modifiées qu’un flux met en évidence. Chaque fois qu’une tâche est planifiée pour s’exécuter, elle peut vérifier si un flux contient les données de modification d’une table (à l’aide de SYSTEM$STREAM_HAS_DATA) et consommer les données de modification ou ignorer l’exécution en cours s’il n’existe aucune donnée de modification.

Les utilisateurs peuvent définir une simple structure arborescente de tâches exécutant des instructions SQL consécutives afin de traiter les données et de les déplacer vers différentes tables de destination.

Pour plus d’informations, voir Exécution d’instructions SQL sur une planification à l’aide de tâches.

Workflow

Le diagramme suivant illustre un flux de pipeline de données continu commun utilisant la fonctionnalité Snowflake :

Continuous data pipeline flow
  1. L’une des fonctionnalités suivantes de Snowflake ou un outil d’intégration de données tiers (non illustré) charge les données en continu dans une table intermédiaire :

    Snowpipe

    Snowpipe charge en continu des micro-lots de données provenant d’un emplacement de zone de préparation externe (à savoir Amazon S3, Google Cloud Storage ou Microsoft Azure) dans une table de mise en zone de préparation.

    Connecteur Snowflake pour Kafka

    Le connecteur Kafka charge en continu les enregistrements d’un ou plusieurs sujets Apache Kafka dans une zone de préparation interne (Snowflake) puis dans une table intermédiaire à l’aide de Snowpipe.

  2. Un ou plusieurs objets de flux de table capturent les données de modification et les rendent disponibles pour l’interrogation.

  3. Une ou plusieurs tâches exécutent des instructions SQL (pouvant appeler des procédures stockées) pour transformer les données de modification et déplacer les ensembles de données optimisés dans des tables de destination à des fins d’analyse. Chaque fois que ce processus de transformation s’exécute, il sélectionne les données de modification dans le flux pour effectuer des opérations DML sur les tables de destination, puis utilise les données de modification lorsque la transaction est validée.