Pipelines de données continus faciles avec GA de flux et de tâches

Pipelines de données continus faciles avec GA de flux et de tâches


L’analyse en temps quasi réel sur des volumes croissants de données peut fournir un avantage concurrentiel clé. Pour saisir cet avantage, il faut mettre les données à la disposition des décideurs et des applications sous une forme adaptée à la consommation. Snowflake Cloud Data Platform permet aux organisations d’être axées sur les données afin qu’elles puissent capturer un avantage concurrentiel, et les pipelines de données facilitent beaucoup la transformation efficace des données sous la forme la plus appropriée.

Snowflake fournit un bien connu entrepôt de données en nuage qui prend en charge des requêtes efficaces à grande échelle sur plusieurs clouds depuis de nombreuses années. Mais au cours des dernières années, Snowflake est devenu un large plate-forme de données en nuage pour le traitement des données et le support des applications. Les pipelines de données sont un élément clé de cette plate-forme. Les fonctionnalités Streams et Tasks vous permettent de créer des pipelines de données et de transformer Snowflake en un moteur de transformation de données agile en plus d’un puissant entrepôt de données.

Aujourd’hui, nous sommes ravis d’annoncer la disponibilité générale (GA) des flux et des tâches pour les pipelines de données sur toutes les plates-formes cloud prises en charge.

Les pipelines de données font partie intégrante de votre plateforme de données cloud

De nombreuses transformations peuvent bénéficier de la simplicité d’utilisation du même outil pour gérer les transactions et les requêtes. De nombreux pipelines commencent petit avec des transformations de base et deviennent organiquement plus riches au fil du temps. Un délai de mise en œuvre plus rapide et une intégration native avec le sous-système de transaction peuvent fournir une forte augmentation de la productivité. Flocon de neige pipelines de données utiliser deux abstractions indépendantes mais complémentaires de flux et de tâches pour implémenter des pipelines de données simples. Cela vous permet de démarrer plus rapidement et permet une meilleure intégration avec les moteurs de transformation externes et les planificateurs si nécessaire.

Le flux de table est une abstraction Change Data Capture (CDC) sur une table Snowflake avec une sémantique transactionnelle. Vous pouvez considérer un flux comme un signet sur une table qui est mis à jour lorsqu’il est utilisé dans une transaction afin que vous sachiez toujours les modifications qui ne sont pas encore traitées. Vous pouvez utiliser un flux pour les requêtes, tout comme une table ou une vue. Vous pouvez avoir autant de signets indépendants que vous le souhaitez et vous pouvez utiliser chacun d’eux dans un pipeline (ou ailleurs) pour vous assurer que toutes les nouvelles données sont traitées de manière transactionnelle.

Les tâches sont des unités d’exécution planifiables : une instruction SQL ou une procédure stockée avec une planification cron ou un intervalle d’exécution. Vous pouvez enchaîner des tâches dans une arborescence de dépendances pour créer votre pipeline, comme indiqué ci-dessous. Vous pouvez exécuter des tâches aussi fréquemment que toutes les minutes pour obtenir une exécution précise et suivre les données entrantes au fur et à mesure qu’elles arrivent. De plus, vous pouvez sélectionner un entrepôt de votre choix pour l’adapter à vos besoins de traitement, en suspendant l’entrepôt lorsqu’il n’est pas utilisé pour l’exécution de tâches. L’utilisation des flux et des tâches ne génère aucun coût supplémentaire. Des crédits vous sont facturés pour l’entrepôt que vous utilisez dans une tâche, comme vous le feriez pour l’exécution de requêtes en dehors des tâches.

Data Pipelines

Les flux et les tâches sont des abstractions complètement indépendantes, mais ils se rejoignent pour permettre un pipeline de transformations que Snowflake exécute selon un calendrier pour vous. Vous pouvez faire évoluer ce pipeline en fonction de l’afflux de données et de la complexité des transformations tout en garantissant que toutes les données sont transformées de manière transactionnelle, même si certaines exécutions peuvent échouer pour diverses raisons.

Données pour les masses

L’année dernière, Snowflake a publié un aperçu public de la fonctionnalité Streams and Tasks. Nous sommes ravis que nos clients en avant-première nous aient fait confiance, mettant en œuvre des pipelines sophistiqués et en temps quasi réel exécutant plus de 1,5 million de tâches chaque jour pendant de nombreux mois. Rien qu’au cours des 30 derniers jours, les clients ont créé plus de 200 000 flux pour traiter les données nouvelles et modifiées. Cette confiance nous a donné la confiance nécessaire pour aller de l’avant avec cette annonce GA.

« Au lieu d’exécuter des tâches horaires par lots dans Airflow qui traitent chacune des dizaines ou des centaines de milliers de lignes, à l’aide de Snowflake Tasks, nous sommes désormais en mesure de planifier plus de 5 000 tâches de micro-lots par heure qui ne traitent qu’une poignée de nouvelles lignes à chaque fois qu’elles exécuter. Le plus grand avantage pour nous est la latence réduite dans notre pipeline ELT. Les données qui prenaient auparavant une à deux heures pour être importées et transformées sont désormais disponibles en cinq minutes », déclare Adrian Kreuziger, développeur logiciel senior chez Convoy.

Exemple simple

Voici un exemple de base montrant comment un flux et une tâche peuvent être utilisés pour fusionner des données d’une table intermédiaire dans une table de dimension.

  1. Les données sont chargées dans la table intermédiaire product_stage utilisant COPIE, Snowpipe, Connecteur Kafka flocon de neige, ou un autre outil. Les données chargées doivent être fusionnées dans la table de dimension produit_dimension utilisant insérer pour les nouveaux produits et mettre à jour pour de nouvelles informations sur les produits existants. Les deux entrent comme insérers dans la table de scène mais doivent être transformés en bouleversers (fusionner) dans le tableau des dimensions.
  2. La flux product_stage_delta fournit les modifications, dans ce cas toutes les insertions.
  3. La tâche product_merger exécute périodiquement une instruction de fusion sur les modifications fournies par le flux. Cela permet de séparer l’opération de fusion de l’ingestion, et cela peut être fait de manière asynchrone tout en obtenant une sémantique transactionnelle pour toutes les données ingérées. Vous pouvez ajouter une logique métier complexe en utilisant une procédure stockée comme corps de tâche au lieu de l’instruction de fusion.
// Data lands here from files/ Kafka
create table product_stage (
 id int,
 info variant);
 
// This is the target table for merge
create table product_dimension (
 id int,
 info variant);
 
// CDC on staging table 
// Interested only in inserts; so using append_only optimization
create stream product_stage_delta on table product_stage append_only = true;
 
// Periodic merge from staging using CDC. Covers updates & inserts
create task product_merger
 warehouse = product_warehouse
 schedule="5 minutes"
 as
  merge into product_dimension pd
  using product_stage_delta delta
  on pd.id = delta.id
  when matched then
  update set pd.info = delta.info
  when not matched then
  insert (id, info)
   values (delta.id, delta.info);

Vous pouvez améliorer la tâche ci-dessus pour exécuter une logique métier plus complexe, schématiser la colonne de variante ou conserver la cohérence de plusieurs tables de dimension. La mise à jour des tables de dimensions est un cas d’utilisation classique de l’entrepôt de données. Au cours de la préversion, les clients ont également utilisé des flux et des tâches pour transformer les données IoT pour les tableaux de bord et les rapports, effectuer une matérialisation périodique pour les vues matérialisées complexes, nettoyer et préparer les données pour la formation et la prédiction de l’apprentissage automatique, effectuer le masquage des données et la prévention des pertes de données, et surveiller la sécurité en continu. .

Créez des pipelines de données dans Snowflake dès aujourd’hui

Beaucoup de nos clients ont déjà construit des pipelines impressionnants. Désormais, d’autres personnes qui recherchaient GA ou qui n’ont tout simplement pas eu l’occasion d’essayer ces fonctionnalités peuvent également voir à quelle vitesse ils peuvent créer leurs pipelines. Vous pouvez trouver la documentation et les informations sur la façon de commencer ici.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.