Qu’est-ce que Delta Live Tables ?

Delta Live Tables est un framework déclaratif permettant de créer des pipelines de traitement de données fiables, gérables et testables. Vous définissez les transformations à effectuer sur vos données, tandis que Delta Live Tables gère l’orchestration des tâches, la gestion des clusters, la supervision, la qualité des données et la gestion des erreurs.

Remarque

Delta Live Tables nécessite le plan Premium. Contactez l'équipe de votre compte Databricks pour plus d'informations.

Au lieu de définir vos pipelines de données à l’aide d’une série de tâches Apache Spark distinctes, vous définissez des tables de diffusion en continu et des vues matérialisées que le système doit créer et tenir à jour. Delta Live Tables gère la façon dont vos données sont transformées en fonction de requêtes que vous définissez pour chaque étape de traitement. Vous pouvez également appliquer la qualité des données avec les attentes de Delta Live Tables, qui vous permettent de définir la qualité des données attendue et de spécifier la façon de gérer les enregistrements qui ne respectent pas ces attentes.

Pour en savoir plus sur les avantages de la création et de l’exécution de vos pipelines ETL avec Delta Live Tables, consultez la page du produit Delta Live Tables.

Que sont les jeux de données Delta Live Tables ?

Les jeux de données Delta Live Tables sont les tables de diffusion en continu, les vues matérialisées et les vues conservées en tant que résultats des requêtes déclaratives. Le tableau suivant décrit comment chaque jeu de données est traité :

Type de jeu de données Comment les enregistrements sont-ils traités via des requêtes définies ?
Table de diffusion en continu Chaque enregistrement est traité exactement une seule fois. Cela suppose une source avec ajout uniquement.
Vues matérialisées Les enregistrements sont traités en fonction des besoins pour retourner des résultats précis pour l’état actuel des données. Les vues matérialisées doivent être utilisées pour les sources de données avec des mises à jour, des suppressions ou des agrégations, et pour le traitement de la capture des changements de données(CDC).
Les vues Les enregistrements sont traités chaque fois que la vue est interrogée. Utilisez des vues pour les transformations intermédiaires et les contrôles de qualité des données qui ne doivent pas être publiés dans des jeux de données publics.

Les sections suivantes fournissent des descriptions plus détaillées de chaque type de jeu de données. Pour en savoir plus sur la sélection de types de jeux de données pour implémenter vos exigences de traitement des données, consultez Quand utiliser des vues, des vues matérialisées et des tables de diffusion en continu.

Table de diffusion en continu

Une table de diffusion en continu est une table Delta avec une prise en charge supplémentaire pour la diffusion en continu ou le traitement incrémentiel des données. Les tables de diffusion en continu vous permettent de traiter un jeu de données croissant, en ne gérant chaque ligne qu’une seule fois. Étant donné que la plupart des jeux de données croissent continuellement au fil du temps, les tables de diffusion en continu conviennent à la plupart des charges de travail d’ingestion. Les tables de diffusion en continu sont optimales pour les pipelines qui nécessitent une actualisation des données et une faible latence. Les tables de diffusion en continu peuvent également être utiles pour les transformations massives à l’échelle, car les résultats peuvent être calculés de manière incrémentielle à mesure que de nouvelles données arrivent, ce qui permet de maintenir les résultats à jour sans avoir à recalculer entièrement toutes les données sources à chaque mise à jour. Les tables de diffusion en continu sont conçues pour les sources de données en ajout uniquement.

Remarque

Bien que, par défaut, les tables de diffusion en continu nécessitent des sources de données en ajout uniquement, quand une source de diffusion en continu est une autre table de diffusion en continu qui nécessite des mises à jour ou des suppressions, vous pouvez remplacer ce comportement en utilisant l’indicateur skipChangeCommits.

Vue matérialisée

Une vue matérialisée (ou table dynamique) est une vue où les résultats ont été précalculés. Les vues matérialisées sont actualisées en fonction de la planification de mise à jour du pipeline dans lequel elles sont contenues. Les vues matérialisées sont puissantes, car elles peuvent gérer toutes les modifications apportées à l’entrée. Chaque fois que le pipeline est mis à jour, les résultats de la requête sont recalculés pour refléter les modifications apportées aux jeux de données en amont qui ont pu se produire pour des raisons de conformité, de correction, d’agrégations ou de capture des changements de données générale. Delta Live Tables implémente des vues matérialisées en tant que tables Delta, mais supprime les complexités associées à l’application efficace des mises à jour, ce qui permet aux utilisateurs de se concentrer sur l’écriture de requêtes.

Les vues

Toutes les vues dans Azure Databricks calculent les résultats à partir de jeux de données sources au fur et à mesure qu’ils sont interrogés, en tirant parti des optimisations de la mise en cache lorsqu’elles sont disponibles. Delta Live Tables ne publie pas les vues dans le catalogue. Les vues peuvent donc être référencées uniquement dans le pipeline dans lequel elles sont définies. Les vues sont utiles en tant que requêtes intermédiaires qui ne doivent pas être exposées aux utilisateurs finaux ou aux systèmes. Databricks recommande d’utiliser des vues pour appliquer des contraintes de qualité des données ou transformer et enrichir des jeux de données qui alimentent plusieurs requêtes en aval.

Déclarer vos premiers jeux de données dans Delta Live Tables

Delta Live Tables introduit une nouvelle syntaxe pour Python et SQL. Pour commencer à utiliser la syntaxe Delta Live Tables, utilisez l’un des tutoriels suivants :

Remarque

Delta Live Tables sépare les définitions des jeux de données du traitement des mises à jour, et les notebooks Delta Live Tables ne sont pas destinés à une exécution interactive. Consultez Qu’est-ce qu’un pipeline Delta Live Tables ?.

Qu’est-ce qu’un pipeline Delta Live Tables ?

Un pipeline est l’unité principale utilisée pour configurer et exécuter des flux de travail de traitement des données avec Delta Live Tables.

Un pipeline contient des vues matérialisées et des tables de diffusion en continu déclarées dans des fichiers sources Python ou SQL. Delta Live Tables infère les dépendances entre ces tables, garantissant que les mises à jour se produisent dans l’ordre correct. Pour chaque jeu de données, Delta Live Tables compare l’état actuel à l’état souhaité et procède à la création ou à la mise à jour des jeux de données à l’aide de méthodes de traitement efficaces.

Les paramètres des pipelines Delta Live Tables se répartissent en deux grandes catégories :

  1. Configurations qui définissent une collection de notebooks ou de fichiers (appelés code source ou bibliothèques) qui utilisent la syntaxe Delta Live Tables pour déclarer des jeux de données.
  2. Configurations qui contrôlent l’infrastructure de pipeline, le traitement des mises à jour et l’enregistrement des tables dans l’espace de travail.

La plupart des configurations sont facultatives, mais certaines nécessitent une attention particulière, en particulier lors de la configuration des pipelines de production. Ces options en question sont les suivantes :

  • Pour rendre les données disponibles en dehors du pipeline, vous devez déclarer un schéma cible pour publier dans le metastore Hive ou un catalogue cible et un schéma cible pour publier dans Unity Catalog.
  • Les autorisations d’accès aux données sont configurées via le cluster utilisé pour l’exécution. Vérifiez que votre cluster dispose des autorisations appropriées configurées pour les sources de données et l’emplacement de stockage cible, le cas échéant.

Pour plus d’informations sur l’utilisation de Python et SQL pour écrire du code source pour les pipelines, consultez Informations de référence sur le langage SQL dans Delta Live Tables et Informations de référence sur le langage Python dans Delta Live Tables.

Pour plus d’informations sur les paramètres et les configurations de pipeline, consultez Configurer les paramètres de pipeline pour Delta Live Tables.

Déployer votre premier pipeline et déclencher des mises à jour

Avant de traiter des données avec Delta Live Tables, vous devez configurer un pipeline. Une fois qu’un pipeline est configuré, vous pouvez déclencher une mise à jour pour calculer les résultats de chaque jeu de données de votre pipeline. Pour commencer à utiliser les pipelines Delta Live Tables, consultez le Tutoriel : Exécuter votre premier pipeline Delta Live Tables.

Qu’est-ce qu’une mise à jour de pipeline ?

Les pipelines déploient l’infrastructure et recalculent l’état des données lorsque vous démarrez une mise à jour. Une mise à jour effectue les actions suivantes :

  • démarre un cluster avec la bonne configuration ;
  • découvre toutes les tables et vues définies et vérifie les éventuelles erreurs d’analyse telles que les noms de colonnes non valides, les dépendances manquantes et les erreurs de syntaxe.
  • crée ou met à jour les tables et vues avec les données disponibles les plus récentes.

Les pipelines peuvent être exécutés en continu ou selon une planification en fonction des exigences de coût et de latence de votre cas d’usage. Consultez Exécuter une mise à jour sur un pipeline Delta Live Tables.

Ingérer des données avec Delta Live Tables

Delta Live Tables prend en charge toutes les sources de données disponibles dans Azure Databricks.

Databricks recommande d’utiliser des tables de diffusion en continu pour la plupart des cas d’usage d’ingestion. Pour les fichiers arrivant dans le stockage d’objets cloud, Databricks recommande Auto Loader. Vous pouvez ingérer directement des données avec Delta Live Tables à partir de la plupart des bus de messages.

Pour plus d’informations sur la configuration de l’accès au stockage cloud, consultez Configuration du stockage cloud.

Pour les formats non pris en charge par Auto Loader, vous pouvez utiliser Python ou SQL pour interroger n’importe quel format pris en charge par Apache Spark. Consultez Charger des données avec Delta Live Tables.

Surveiller et appliquer la qualité des données

Vous pouvez utiliser des attentes pour spécifier les contrôles de qualité des données sur le contenu d’un jeu de données. Contrairement à une contrainte CHECK dans une base de données traditionnelle qui empêche l’ajout d’enregistrements qui ne respectent pas la contrainte, les attentes offrent une certaine flexibilité lors du traitement des données qui ne répondent pas aux exigences de qualité des données. Cette flexibilité vous permet de traiter et de stocker les données dont vous vous attendez à ce qu’elles soient désordonnées et celles qui doivent respecter des exigences strictes en matière de qualité. Consultez Gérer la qualité des données avec Delta Live Tables.

Delta Live Tables étend les fonctionnalités de Delta Lake. Étant donné que les tables créées et gérées par Delta Live Tables sont des tables Delta, elles ont les mêmes garanties et fonctionnalités fournies par Delta Lake. Consultez Présentation de Delta Lake.

Delta Live Tables ajoute plusieurs propriétés de table en plus des nombreuses propriétés de table qui peuvent être définies dans Delta Lake. Consultez Informations de référence sur les propriétés Delta Live Tables et Informations de référence sur les propriétés de table Delta.

Comment les tables sont créées et gérées par Delta Live Tables

Azure Databricks gère automatiquement les tables créées avec Delta Live Tables, en déterminant comment les mises à jour doivent être traitées pour calculer correctement l’état actuel d’une table et effectuer un certain nombre de tâches de maintenance et d’optimisation.

Pour la plupart des opérations, vous devez autoriser Delta Live Tables à traiter toutes les mises à jour, insertions et suppressions dans une table cible. Pour plus d’informations et connaître les limitations, consultez Conserver les suppressions ou mises à jour manuelles.

Tâches de maintenance effectuées par Delta Live Tables

Delta Live Tables effectue des tâches de maintenance dans les 24 heures suivant la mise à jour d’une table. La maintenance peut améliorer les performances de requête et réduire les coûts en supprimant les anciennes versions des tables. Par défaut, le système effectue une opération d'OPTIMISATION complète, suivie d’un NETTOYAGE. Vous pouvez désactiver l’opération OPTIMISATION pour une table en définissant pipelines.autoOptimize.managed = false dans les propriétés de table de la table concernée. Les tâches de maintenance sont effectuées uniquement si une mise à jour de pipeline s’est exécutée dans les 24  heures précédant la planification des tâches de maintenance.

Limites

Les limites suivantes s'appliquent :

  • Toutes les tables créées et mises à jour par Delta Live Tables sont des tables Delta.
  • Les tables Delta Live Tables ne peuvent être définies qu’une seule fois, ce qui signifie qu’elles ne peuvent être la cible d’une seule opération dans tous les pipelines Delta Live Tables.
  • Les colonnes d’identité ne sont pas prises en charge avec les tables qui sont la cible de APPLY CHANGES INTO et peuvent être recalculées lors des mises à jour pour les vues matérialisées. Pour cette raison, Databricks recommande d’utiliser uniquement des colonnes d’identité avec des tables de diffusion en continu dans Delta Live Tables. Consultez Utiliser des colonnes d’identité dans Delta Lake.
  • Un espace de travail Azure Databricks est limité à 100 mises à jour de pipeline simultanées.

Ressources supplémentaires