Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Découvrez ce que sont les Lakeflow Spark Declarative Pipelines (SDP), les concepts fondamentaux (tels que les pipelines, les tables de streaming et les vues matérialisées) qui les définissent, les relations entre ces concepts et les avantages de leur utilisation dans vos flux de travail de traitement des données.
Note
Les pipelines déclaratifs Spark Lakeflow nécessitent le plan Premium. Pour plus d’informations, contactez votre équipe de compte Databricks.
Qu’est-ce que SDP ?
Lakeflow Spark Declarative Pipelines est une infrastructure déclarative pour le développement et l’exécution de pipelines de données par lots et de diffusion en continu dans SQL et Python. Lakeflow SDP se déploie et est interopérable avec les pipelines déclaratifs Apache Spark, tout en s’exécutant sur le runtime Databricks optimisé pour la performance, et l’API Pipelines déclaratifs flows Lakeflow Spark utilise la même API DataFrame que Apache Spark et Structured Streaming. Les cas d’usage courants pour SDP incluent l’ingestion de données incrémentielles à partir de sources telles que le stockage cloud (notamment Amazon S3, Azure ADLS Gen2 et Google Cloud Storage) et les bus de messages (comme Apache Kafka, Amazon Clusters, Google Pub/Sub, Azure EventHub et Apache Pulsar), les transformations incrémentielles de traitement par lots et de diffusion en continu avec des opérateurs sans état et un traitement de flux en temps réel entre les magasins transactionnels tels que les bus de messages et les bases de données.
Pour plus d’informations sur le traitement déclaratif des données, consultez Procédures et traitement déclaratif des données dans Databricks.
Quels sont les avantages de SDP ?
La nature déclarative de SDP offre les avantages suivants par rapport au développement de processus de données avec les API Apache Spark et Spark Structured Streaming et à les exécuter avec Databricks Runtime à l’aide de l’orchestration manuelle via Lakeflow Jobs.
- Orchestration automatique : SDP orchestre automatiquement les étapes de traitement (appelées « flux ») pour garantir l’ordre d’exécution correct et le niveau maximal de parallélisme pour des performances optimales. En outre, les pipelines réessayent automatiquement et efficacement les opérations après des échecs temporaires. Le processus de nouvelle tentative commence par l’unité la plus granulaire et la plus rentable : la tâche Spark. Si la nouvelle tentative au niveau de la tâche échoue, SDP effectue une nouvelle tentative de flux, puis enfin l’intégralité du pipeline si nécessaire.
- Traitement déclaratif : SDP fournit des fonctions déclaratives qui peuvent réduire des centaines ou même des milliers de lignes de code Spark et Structured Streaming manuels à quelques lignes seulement. L’API SDP AUTO CDC simplifie le traitement des événements de capture de données modifiées (CDC) avec prise en charge de SCD Type 1 et SCD Type 2. Il élimine la nécessité d'un codage manuel pour gérer les événements hors ordre, et il ne nécessite pas de compréhension de la sémantique du streaming ou des concepts tels que les filigranes.
- Traitement incrémentiel : SDP fournit un moteur de traitement incrémentiel pour les vues matérialisées. Pour l’utiliser, vous écrivez votre logique de transformation avec la sémantique de traitement par lots, et le moteur traite uniquement les nouvelles données et les modifications apportées aux sources de données dans la mesure du possible. Le traitement incrémentiel réduit le retraitement inefficace lorsque de nouvelles données ou modifications se produisent dans les sources et élimine la nécessité d’un code manuel pour gérer le traitement incrémentiel.
Concepts clés
Le diagramme ci-dessous illustre les concepts les plus importants des pipelines déclaratifs Spark Lakeflow.
Flows
Un flux est le concept de traitement des données de base dans SDP qui prend en charge la sémantique de streaming et de traitement par lots. Un flux lit les données d’une source, applique une logique de traitement définie par l’utilisateur et écrit le résultat dans une cible. SDP partage le même type de flux de streaming (Append, Update, Complete) que Spark Structured Streaming. (Actuellement, seul le flux d’ajout est exposé.) Pour plus d’informations, consultez les modes de sortie dans Structured Streaming.
Les pipelines déclaratifs Spark Lakeflow fournissent également des types de flux supplémentaires :
- AUTO CDC est un flux de streaming unique dans Lakeflow SDP qui gère les événements CDC hors ordre et prend en charge à la fois les SCD Type 1 et SCD Type 2. Les CDC automatiques ne sont pas disponibles dans les pipelines Apache Spark déclaratifs.
- La vue matérialisée est un flux de lots dans SDP qui traite uniquement les nouvelles données et les modifications apportées aux tables sources dans la mesure du possible.
Pour plus d’informations, consultez :
Tables de streaming
Une table de diffusion en continu est une forme de table managée du catalogue Unity qui est également une cible de diffusion en continu pour Lakeflow SDP. Une table de diffusion en continu peut avoir un ou plusieurs flux de streaming (Append, AUTO CDC) écrits dans celui-ci. AUTO CDC est un flux de streaming unique disponible exclusivement pour les tables de streaming dans Databricks. Vous pouvez définir des flux de streaming explicitement et séparément de leur table de streaming cible. Vous pouvez également définir implicitement des flux de diffusion en continu dans le cadre d'une définition de table de diffusion en continu.
Pour plus d’informations, consultez :
Vues matérialisées
Une vue matérialisée est également une forme de table gérée du catalogue Unity et constitue une cible de traitement par lots. Une vue matérialisée peut avoir un ou plusieurs flux de vue matérialisés écrits dans celui-ci. Les vues matérialisées diffèrent des tables de diffusion en continu dans lesquelles vous définissez toujours les flux implicitement dans le cadre de la définition de vue matérialisée.
Pour plus d’informations, consultez :
Sinks
Un puits est un objectif de streaming pour un pipeline et prend en charge les tables Delta, les sujets Apache Kafka, les sujets Azure EventHubs et les sources de données Python personnalisées. Un récepteur peut avoir un ou plusieurs flux de streaming (Append) écrits dans celui-ci.
Pour plus d’informations, consultez :
Pipelines
Les pipelines sont l’unité de développement et d’exécution dans les pipelines déclaratifs Spark Lakeflow. Un pipeline peut contenir un ou plusieurs flux, des tables en temps réel, des vues matérialisées et des récepteurs. Vous utilisez SDP en définissant des flux, des tables de streaming, des vues matérialisées et des récepteurs dans votre code source de pipeline, puis en exécutant le pipeline. Pendant que votre pipeline s’exécute, il analyse les dépendances de vos flux définis, les tables de streaming, les vues matérialisées et les récepteurs, et orchestre automatiquement leur ordre d’exécution et de parallélisation.
Pour plus d’informations, consultez :
Pipelines Databricks SQL
Les tables de diffusion en continu et les vues matérialisées sont deux fonctionnalités fondamentales dans Databricks SQL. Vous pouvez utiliser SQL standard pour créer et actualiser des tables de streaming et des vues matérialisées dans Databricks SQL. Les tables de streaming et les vues matérialisées dans Databricks SQL s’exécutent sur la même infrastructure Azure Databricks et ont la même sémantique de traitement que dans les pipelines déclaratifs Spark Lakeflow. Lorsque vous utilisez des tables de diffusion en continu et des vues matérialisées dans Databricks SQL, les flux sont définis implicitement dans le cadre des tables de diffusion en continu et de la définition de vues matérialisées.
Pour plus d’informations, consultez :