- Place de l'IT - https://placedelit.com -

Les Data Pipelines de Snowflake automatisent ingestion et raffinage des données

Raffiner le pétrole numérique ne suffit pas. Encore faut-il automatiser les tâches répétitives ou sans valeur ajoutée pour gagner en efficacité et en productivité!
Les bases de données et diverses informations étant éclatées (et souvent dans différents silos), il s’avère complexe de brancher correctement tous les tuyaux pour aspirer la bonne information dans un datawarehouse, même sur le cloud.
Lors de son événement utilisateur annuel organisé à San Francisco le mois dernier, Snowflake a annoncé plusieurs évolutions majeures de son offre dont les Data Pipelines, un connecteur pour Apache Kafka, Database Replication et Database Failover.

Une avalanche de nouveautés pour tout automatiser
Une avalanche de nouveautés pour tout automatiser

Snowflake: par ici les bons tuyaux

Les données ingérées dans Snowflake (depuis les applications, le Web, l’IOT, les smartphones…) peuvent y être simplement copiées puis synchronisées périodiquement, ou synchronisées en continu. Depuis le 20 décembre 2018, les Snowpipes permettent de synchroniser les données en continu depuis une source externe.
Parce que les entreprises ne souhaitent pas forcément tout réaliser dans Snowflake, l’éditeur permet ensuite de décharger les données vers une autre infrastructure de stockage comme AWS S3, les blobs Microsoft Azure (pour stocker toutes sortes de fichiers dans un cadre de stockage chaud, froid et d’archive) ou Google Cloud Storage.
«Il est primordial de vous laisser le choix avec le maximum de simplicité,» explique Christian Kleinerman, vice-président Produits chez Snowflake. «Pour pouvoir traiter ces données sur une infrastructure haute performance ou dans des formats propres à votre secteur d’activité. Même si, bien entendu, nous nous efforçons de vous apporter un maximum de valeur ajoutée pour que vous ne déplaciez pas vos données ailleurs.»

Gestion évoluée de la sécurité des pipelines de données
Gestion évoluée de la sécurité des pipelines de données

L’éditeur a donc amélioré ses technologies d’ingestion via les Snowflakes Data Pipelines, plus automatisés et plus flexibles. Les évolutions et améliorations sur ces traitements concernent aussi bien l’ingestion que la transformation des données.
En premier lieu, la notion de Credential Less Stages permet de simplifier la gestion de la sécurité.
Aujourd’hui, lors de l’ingestion avec stockage temporaire dans Snowflake, deux éléments sont générés: l’objet qui prend en charge le chargement des données et la configuration de sécurité du traitement (y compris avec les couches basses de l’infrastructure de stockage source). Cette partie de sécurité sur l’infrastructure externe a été séparée sous la forme d’un objet appelé Storage Integration.
Pour chaque traitement d’ingestion (chargement ou rafraîchissement), les informations de sécurité sont connues via cet objet qui gère ces aspects. Une façon de séparer la sécurité liée au stockage externe et celle de Snowflake pour agir différemment selon les situations.

Des innovations pour automatiser le processus de bout en bout
Des innovations pour automatiser le processus de bout en bout

Automatisation à tous les ‘stages’

La fonction Auto Ingest utilise un mécanisme de file d’attente (queuing) pour notifier des modifications afin de les ingérer et les transformer automatiquement dans Snowflake, afin de mettre à jour les requêtes concernées.
Apache Kafka est très utilisé par les entreprises pour automatiser les flux de données. Avec le Snowflake Connector for Kafka (gratuit via le repository Maven -licence Apache 2.0), l’éditeur élargit encore les possibilités d’automatisation. Kafka devient une source de données directe pour l’ingestion, sans avoir à passer par les Snowpipes. Une fois installé sur un cluster Kafka Connect, le connecteur est instancié via une configuration Json ou via le Confluent Control Center. Ensuite tout est automatisé: pipelines, étapes, fichiers…
Après l’ingestion de données dans Snowflake dans des tables temporaires, elles subissent généralement des traitements de transformation pour être stockées dans des tables de destination (et sont éventuellement transmises à une infrastructure tierce).
Afin d’automatiser et de planifier ces traitements, Snowflake propose deux nouvelles fonctions sur sa plateforme: le Stream détecte ce qui a changé dans une table dans le but de lui appliquer un traitement transactionnel (incremental processing), alors intervient la Task qui regroupe des instructions SQL (y compris une procédure stockée) et un mécanisme de planification/programmation.
Ces traitements peuvent être conditionnels, et plusieurs Tasks peuvent s’enchaîner. Toutes ces nouvelles fonctions, favorisant une forte automatisation de bout en bout, sont disponibles en “Public Preview”.

Une réplication qui se joue des lieux et des clouds
Une réplication qui se joue des lieux et des clouds

“Datawarehouse as a Service” global à très haute disponibilité

Dans un monde informatique distribué, les contraintes techniques et/ou réglementaires obligent les entreprises à disposer des données à proximité géographique. Par ailleurs, elles souhaitent pouvoir gérer l’ensemble de leurs données à partir d’une console unique.
Pour les entreprises disposant de plusieurs comptes Snowflake, l’éditeur propose Snowflake Organisations pour gérer des usages cohérents et des politiques globales à travers une même console.
Afin d’assurer une haute disponibilité des données et leur mise à disposition en plusieurs lieux, mais aussi pour que ses clients puissent répondre aux obligations réglementaires de plans de sauvegarde, Snowflake Database Replication permet de répliquer et maintenir des bases de données synchronisées en temps réel d’un compte Snowflake vers un autre, où qu’il soit situé dans le monde (cross-region) et indépendamment de la plateforme cloud sous-jacente (cross-cloud). Au-delà de la sauvegarde, ce type d’opération (au niveau des bases de données) permet de préserver aussi la consistance des transactions.
Combiné à Snowflake Database Replication, Snowflake Database Failover apporte la haute disponibilité via la reprise immédiate sur incident. Une bascule automatique permet d’assurer immédiatement une continuité de l’activité (sans aucune interruption) et sans avoir à recopier de données. Et bien entendu, ce module assure également le failback (rétablissement du compte primaire après basculement des opérations).
Les modalités et les intervalles de temps des réplications peuvent être paramétrés par l’utilisateur, qui peut également forcer une éventuelle bascule entre environnements répliqués depuis sa console.

Automatisé, global et à haute disponibilité… Snowflake, dont la création remonte seulement à 2012, avance très vite!