Meilleures pratiques pour une excellence opérationnelle
Cet article décrit les meilleures pratiques en matière d’excellence opérationnelle, organisées selon les principes architecturaux listés dans les sections suivantes.
1. Optimiser les processus de build et de mise en production
Créer une équipe des opérations dédiée au lakehouse
Une meilleure pratique consiste à constituer une équipe des opérations de plateforme pour permettre aux équipes de données de travailler sur une ou plusieurs plateformes de données. Cette équipe est chargée de mettre au point les blueprints et les meilleures pratiques en interne. Elle fournit des outils (pour l’automatisation de l’infrastructure et l’accès en libre-service, par exemple) et garantit que les besoins en matière de sécurité et de conformité sont satisfaits. De cette façon, la sécurisation des données de la plateforme incombe à une équipe centrale, afin que les équipes distribuées puissent se concentrer sur l’utilisation des données et la production de nouveaux insights.
Utiliser la gestion du code source (SCM) d’entreprise
La gestion du code source (SCM) aide les développeurs à travailler plus efficacement et permet d’accélérer la mise en circulation tout en réduisant les coûts de développement. Utiliser un outil permettant de suivre les modifications, de gérer l’intégrité du code, de détecter les bugs et de restaurer de précédentes versions s’inscrit comme un composant essentiel de l’architecture globale de la solution.
Les dossiers Databricks Git permettent aux utilisateurs de stocker des notebooks ou d’autres fichiers dans un référentiel Git, avec des fonctionnalités comme le clonage d’un référentiel, le committing et l’envoi (push), le tirage (pull), la gestion des branches et l’affichage des différences de fichier. Utilisez des dossiers Git pour améliorer la visibilité et le suivi du code.
Normaliser les processus DevOps (CI/CD)
L’intégration continue et la livraison continue (CI/CD) font référence au développement et au déploiement de logiciels dans des cycles courts et fréquents grâce à l’utilisation de pipelines automatisés. Bien qu’il ne s’agisse pas d’un nouveau processus (puisqu’il est omniprésent dans le génie logiciel traditionnel depuis des décennies), il devient de plus en plus nécessaire aux équipes d’engineering données et de science des données. Pour que les produits de données aient de la valeur, ils doivent être livrés en temps voulu. De plus, les consommateurs doivent avoir confiance dans la validité des résultats de ces produits. En automatisant le processus de génération, de test et de déploiement du code, les équipes de développement sont en mesure de livrer des versions plus fréquemment et de manière plus fiable qu’avec les processus manuels qui prédominent encore dans de nombreuses équipes d’engineering données et de science des données. Consultez Qu’est-ce que le CI/CD sur Azure Databricks ?.
Pour plus d’informations sur les meilleures pratiques en matière de développement de code avec des dossiers Databricks Git, consultez Techniques de CI/CD avec les dossiers Git et Databricks Git (Repos). Associé à l’API REST Databricks, ceci vous permet de créer des processus de déploiement automatisés avec des GitHub Actions, des pipelines Azure DevOps ou des travaux Jenkins.
Normaliser les processus MLOps
Les processus MLOps assurent la reproductibilité des pipelines de ML. Cela permet une collaboration plus étroite des équipes de données, ce qui réduit les conflits avec les groupes DevOps/informatiques et accélère la mise en circulation. De nombreux modèles sont utilisés pour prendre des décisions métier clés : la normalisation des processus MLOps garantit que les modèles sont développés, testés et déployés de manière cohérente et fiable.
La création et le déploiement de modèles ML sont complexes. Il existe de nombreuses options pour y parvenir, mais peu de normes bien définies. Par conséquent, au cours des dernières années, nous avons vu l’émergence des opérations de Machine Learning (MLOps). MLOps est un ensemble de processus et d’automatisation permettant de gérer les modèles, les données et le code afin d’améliorer la stabilité des performances et l’efficacité à long terme dans les systèmes ML. Il couvre la préparation des données, l’analyse exploratoire des données (EDA), l’ingénierie de caractéristiques, l’entraînement des modèles, la validation des modèles, le déploiement et la surveillance.
MLOps sur la plateforme Databricks vous aide à optimiser les performances et l’efficacité à long terme de vos systèmes d’apprentissage automatique (ML) :
- Gardez toujours les objectifs de votre entreprise à l’esprit : tout comme l’objectif principal du ML dans une entreprise est de permettre des décisions et des produits basés sur les données, l’objectif principal de MLOps est de s’assurer que ces applications pilotées par les données restent stables, sont tenues à jour et continuent d’avoir des impacts positifs sur l’entreprise. Lorsque vous hiérarchisez le travail technique sur MLOps, tenez compte de l’impact sur l’entreprise : permet-il de nouveaux cas d’usage métier ? Améliore-t-il la productivité des équipes de données ? Réduit-il les coûts d’exploitation ou les risques ?
- Gérer les modèles de ML avec un outil spécialisé, mais ouvert : vous pouvez utiliser MLflow (conçu pour le cycle de vie des modèles de ML) pour suivre et gérer les modèles de ML. Consultez Gestion de cycle de vie ML en utilisant MLflow.
- Implémentez MLOps de manière modulaire : comme pour toute application logicielle, la qualité du code est primordiale pour une application ML. Le code modulaire permet de tester des composants individuels et d’atténuer les difficultés liées à la refactorisation future du code. Définissez des étapes claires (comme la formation, l’évaluation ou le déploiement), des super étapes (comme le pipeline d’entraînement à déploiement) et des responsabilités pour clarifier la structure modulaire de votre application ML.
Ce processus est décrit en détail dans le livre électronique Databricks The Big Book of MLOps.
Définir la stratégie d’isolation de l’environnement
Lorsqu’une organisation utilise une plateforme de données comme Databricks, il est souvent nécessaire d’avoir des limites d’isolation des données entre les environnements (tels que le développement et la production) ou entre les unités opérationnelles de l’organisation.
Les normes d’isolation peuvent varier selon votre organisation, mais elles incluent généralement les attentes suivantes :
- Les utilisateurs peuvent uniquement accéder aux données en fonction de règles d’accès spécifiées.
- Les données peuvent être gérées uniquement par des personnes ou des équipes désignées.
- Les données sont physiquement séparées dans le stockage.
- Les données sont accessibles uniquement dans des environnements désignés.
Dans Databricks, l’espace de travail est l’environnement de traitement de données principal. Il existe plusieurs scénarios dans lesquels l’utilisation d’espaces de travail distincts améliore la configuration globale, par exemple :
- Isolez les différentes unités commerciales avec leurs propres espaces de travail. Vous évitez ainsi de partager l’administrateur de l’espace de travail et vous assurez qu’aucune ressource dans Databricks n’est involontairement partagée entre les unités commerciales.
- Isolez les environnements de cycle de vie du développement logiciel (tels que le développement, la gestion intermédiaire et la production). Par exemple, un espace de travail de production distinct vous permet de tester les nouveaux paramètres de l’espace de travail avant de les appliquer à la production. Sinon, l’environnement de production peut nécessiter des paramètres d’espace de travail plus stricts que l’environnement de développement. Si vous devez déployer des environnements de développement, de gestion intermédiaire et de production sur différents réseaux virtuels, vous avez également besoin d’espaces de travail différents pour les trois environnements.
- Fractionnez les espaces de travail pour surmonter les limitations de ressources : les comptes/abonnements cloud ont des limitations de ressources. Le fractionnement des espaces de travail en différents abonnements/comptes permet de s’assurer que suffisamment de ressources sont disponibles pour chaque espace de travail. En outre, les espaces de travail Databricks ont également des limitations de ressources. Le fractionnement des espaces de travail garantit que les charges de travail de chaque espace de travail ont toujours accès à l’ensemble complet de ressources.
Toutefois, les espaces de travail partagés présentent certains inconvénients à prendre en compte :
La collaboration de notebooks ne fonctionne pas entre les espaces de travail.
Avec plusieurs espaces de travail, la configuration et la maintenance doivent être entièrement automatisées (par Terraform, ARM, l’API REST ou d’autres moyens). Cela est particulièrement important à des fins de migration.
Si chaque espace de travail doit être sécurisé au niveau de la couche réseau (pour se protéger contre l’extraction de données, par exemple), l’infrastructure réseau requise peut être très coûteuse, en particulier avec un grand nombre d’espaces de travail.
Il est important de trouver l’équilibre entre les besoins d’isolation et de collaboration et l’effort nécessaire à leur gestion.
Définir une stratégie de catalogue pour votre entreprise
En plus d’une stratégie d’isolation environnementale, les organisations doivent avoir une stratégie visant à structurer et séparer les métadonnées et les données. Les données (y compris les informations d’identification personnelle, de paiement ou de santé) présentent un risque potentiel élevé. Avec la hausse des menaces de violation de données, il est important de séparer et de protéger les données sensibles, quelle que soit la stratégie organisationnelle choisie. Séparez les données sensibles des données non sensibles, sur les plans logiques et physiques.
Une organisation peut exiger que les données d’un type donné soient stockées dans des comptes ou compartiments spécifiques dans leur locataire cloud. Le metastore Unity Catalog permet de structurer les métadonnées grâce à son espace de noms catalog > schema > tables/views/volumes
à trois niveaux, avec des emplacements de stockage configurés au niveau du metastore, du catalogue ou du schéma pour répondre à ces exigences.
Les exigences organisationnelles et de conformité préconisent souvent de conserver certaines données, accessibles uniquement dans certains environnements. Vous pouvez également conserver les données de production isolées des environnements de développement ou vous assurer que certains jeux de données et domaines ne sont jamais fusionnés. Dans Databricks, l’espace de travail est l’environnement de calcul principal. Les catalogues constituent le domaine de données principal. L’utilisation d’Unity Catalog permet aux administrateurs de metastore et aux propriétaires de catalogue de lier des catalogues à des espaces de travail spécifiques. Avec ces liaisons prenant en charge l’environnement, vous êtes assuré que seuls certains catalogues sont disponibles dans un espace de travail, quelles que soient les autorisations spécifiques sur les objets de données accordés à un utilisateur.
Pour une présentation complète de ces rubriques, consultez Meilleures pratiques Unity Catalog
2. Automatiser les déploiements et les charges de travail
Utiliser l’infrastructure en tant que code (IaC) pour les déploiements et la maintenance
L’infrastructure en tant que code (IaC) permet aux développeurs et aux équipes d’opérations de gérer, superviser et provisionner automatiquement des ressources (au lieu de configurer manuellement des appareils matériels, des systèmes d’exploitation, des applications et des services).
HashiCorp Terraform est un outil open source populaire permettant de créer une infrastructure cloud sécurisée et prévisible sur plusieurs fournisseurs cloud. Le fournisseur Databricks Terraform gère les espaces de travail Azure Databricks et l’infrastructure cloud associée à l’aide d’un outil flexible et puissant. Le fournisseur Databricks Terraform a pour objectif de prendre en charge toutes les API REST Azure Databricks, en supportant l’automatisation des aspects les plus complexes du déploiement et de la gestion de vos plateformes de données. Le fournisseur Databricks Terraform est l’outil recommandé pour déployer et gérer des clusters et des travaux, approvisionner des espaces de travail Azure Databricks et configurer l’accès aux données de manière fiable.
Normaliser les configurations de calcul
La normalisation des environnements de calcul garantit que les logiciels, bibliothèques et configurations utilisés sont les mêmes dans tous les environnements. Cette cohérence simplifie la reproduction des résultats, la résolution des problèmes et la maintenance des systèmes dans les environnements. Grâce aux environnements normalisés, les équipes peuvent économiser du temps et des ressources en éliminant les besoins de configuration et de déploiement des environnements à partir de rien. Ils réduisent également le risque d’erreurs et d’incohérences pouvant survenir pendant la configuration manuelle. La normalisation permet aussi d’implémenter des stratégies et des pratiques de sécurité cohérentes dans tous les environnements. Ainsi, les organisations peuvent mieux gérer les risques et se conformer aux exigences réglementaires. Enfin, la normalisation aide les organisations à mieux gérer leurs coûts en réduisant le gaspillage et en optimisant l’utilisation des ressources.
La normalisation couvre à la fois la configuration de l’environnement et la gestion continue des ressources. Pour une configuration cohérente, Databricks recommande d’utiliser l’infrastructure en tant que code. Pour vous assurer que les ressources de calcul lancées au fil du temps sont configurées de manière cohérente, utilisez les stratégies de calcul. Les administrateurs de l’espace de travail Databricks peuvent limiter les privilèges de création de calcul d’un utilisateur ou d’un groupe en fonction d’un ensemble de règles de stratégie. Ils peuvent appliquer les paramètres de configuration Spark, ainsi que les installations de bibliothèques étendues au cluster. Vous pouvez aussi utiliser les stratégies de calcul pour définir des clusters de taille de t-shirt (S, M ou L) pour les projets en tant qu’environnement de travail normalisé.
Utiliser des workflows automatisés pour les travaux
La configuration de workflows automatisés pour les travaux permet de réduire les tâches manuelles inutiles et d’améliorer la productivité via le processus DevOps de création et de déploiement de travaux. La plateforme Data Intelligence propose deux façons de procéder :
Travaux Databricks :
Travaux Databricks orchestre le traitement des données, l’apprentissage automatique et les pipelines d’analytique sur la plateforme de Data Intelligence Databricks. Il s’agit d’un service d’orchestration complètement managé intégré à la plateforme Databricks :
- Les travaux Databricks permettent d’exécuter vos applications de traitement de données et d’analytique dans un espace de travail Databricks. Votre travail peut être constitué d’une seule tâche ou former un grand workflow multitâche avec des dépendances complexes. Databricks gère l’orchestration des tâches, la gestion des clusters, la supervision et les rapports d’erreurs pour tous vos travaux.
- 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.
Orchestrateurs externes :
L’API REST Azure Databricks complète est utilisée par des orchestrateurs externes pour orchestrer les ressources, les notebooks et les travaux Databricks. Consultez l'article :
Nous recommandons d’utiliser Travaux Databricks pour toutes les dépendances de tâches dans Databricks et, si nécessaire, d’intégrer ces workflows encapsulés dans l’orchestrateur externe.
Utiliser l’ingestion de fichiers automatisée et pilotée par les événements
L’ingestion de fichiers pilotée par les événements (vs la planification) présente plusieurs avantages, notamment l’efficacité, le caractère actuel des données et l’ingestion de données en temps réel. Limiter l’exécution d’un travail à la réalisation d’un événement garantit que vous ne gaspillez aucune ressource et permet d’économiser de l’argent.
Auto Loader traite de façon incrémentielle et efficace les nouveaux fichiers de données à mesure qu’ils arrivent dans le stockage cloud. Il peut ingérer de nombreux formats de fichiers comme JSON, CSV, PARQUET, AVRO, ORC, TEXT et BINARYFILE. Avec un dossier d’entrée sur le stockage cloud, Auto Loader traite automatiquement les nouveaux fichiers à mesure qu’ils arrivent.
Pour les ingestions ponctuelles, envisagez plutôt d’utiliser la commande COPY INTO
.
Utiliser des frameworks ETL pour les pipelines de données
Bien qu’il soit possible d’exécuter manuellement des tâches ETL, l’utilisation d’une infrastructure présente de nombreux avantages. Une infrastructure apporte cohérence et répétabilité au processus ETL. Grâce aux fonctions et aux outils prédéfinis qu’elle fournit, une infrastructure peut automatiser les tâches courantes, faisant économiser du temps et des ressources. Les infrastructures ETL peuvent gérer de grands volumes de données et sont facilement mises à l’échelle en fonction des besoins. Cela facilite la gestion des ressources et la réponse à l’évolution des besoins métiers. De nombreuses infrastructures intègrent des fonctionnalités de gestion et de journalisation des erreurs, ce qui facilite l’identification et la résolution des problèmes. Elles incluent souvent des vérifications et des validations de la qualité des données visant à garantir que les données répondent à certaines normes avant leur importation dans l’entrepôt de données ou le lac de données.
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 à apporter aux 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.
Avec Delta Live Tables, vous pouvez facilement définir des pipelines de données de bout en bout dans SQL ou Python : spécifiez la source de données, la logique de transformation et l’état cible des données. Delta Live Tables conserve les dépendances et détermine automatiquement l’infrastructure sur laquelle exécuter le travail.
Pour gérer la qualité des données, Delta Live Tables supervise les tendances de qualité des données au fil du temps, empêchant les données incorrectes de pénétrer dans les tables par le biais de vérifications de validation et d’intégrité avec des stratégies d’erreur prédéfinies. Consultez l’article Qu’est-ce que Delta Live Tables ?.
Suivez l’approche de déploiement de code pour les charges de travail ML
Le code et les modèles progressent souvent de façon asynchrone au fil des phases de développement logiciel. Il existe deux moyens de parvenir à cet objectif :
- Déployer le code : un projet de ML est codé dans l’environnement de développement, et ce code est ensuite déplacé vers l’environnement intermédiaire, où il est testé. Après un test réussi, le code du projet est déployé dans l’environnement de production, où il est exécuté.
- Déployer le modèle : l’entraînement du modèle est exécuté dans l’environnement de développement. L’artefact de modèle produit est ensuite déplacé vers l’environnement intermédiaire pour les vérifications de validation de modèle, avant de déployer le modèle dans l’environnement de production.
Consultez Modèles de déploiement de modèles.
Databricks recommande une approche de déploiement de code pour la majorité des cas d’utilisation. Voici les principaux avantages de ce modèle :
- Il s’adapte aux workflows d’ingénierie logicielle traditionnels, à l’aide d’outils familiers tels que les systèmes Git et CI/CD.
- Il prend en charge le réentraînement automatisé dans un environnement verrouillé.
- Il exige seulement que l’environnement de production ait accès en lecture aux données d’entraînement de production.
- Il fournit un contrôle total de l’environnement d’entraînement, ce qui permet de simplifier la reproductibilité.
- Il permet à l’équipe de science des données d’utiliser du code modulaire et des tests itératifs, pour aider à la coordination et au développement de projets plus grands.
Ce processus est décrit en détail dans le livre électronique Databricks The Big Book of MLOps.
Utiliser un registre de modèles pour dissocier le code et le cycle de vie du modèle
Les cycles de vie des modèles ne correspondent pas à un schéma de code individuel : Unity Catalog permet de gérer le cycle de vie complet des modèles de ML dans sa version hébergée du registre de modèles MLflow. Les modèles d’Unity Catalog étendent les avantages d’Unity Catalog aux modèles de ML, notamment le contrôle d’accès centralisé, l’audit, la traçabilité et la découverte de modèles dans les espaces de travail. Les modèles d’Unity Catalog sont compatibles avec le client Python MLflow open source.
Automatiser le suivi des expériences de ML
Le suivi des expériences de ML désigne le processus d’enregistrement des métadonnées applicables à chaque expérience et d’organisation des expériences. Ces métadonnées incluent les entrées/sorties d’expérience, les paramètres, les modèles et d’autres artefacts. L’objectif du suivi des expériences est de créer des résultats reproductibles à chaque étape du processus de développement du modèle de ML. Automatiser ce processus simplifie la mise à l’échelle du nombre d’expériences et garantit la cohérence des métadonnées capturées dans toutes les expériences.
Databricks Autologging est une solution sans code qui étend la journalisation automatique MLflow pour assurer le suivi automatique des expériences pour les sessions de formation d'apprentissage automatique sur Azure Databricks. Databricks Autologging capture automatiquement les paramètres du modèle, les mesures, les fichiers et les informations de traçabilité lorsque vous entraînez des modèles avec des exécutions d’entraînement enregistrées en tant qu’exécutions de suivi MLflow.
Réutiliser la même infrastructure pour gérer les pipelines ML
Les données utilisées pour les pipelines de ML proviennent généralement des mêmes sources que les données utilisées pour d’autres pipelines de données. Les pipelines de ML et de données sont similaires, car ils préparent les données pour l’analyse des utilisateurs professionnels ou l’entraînement des modèles. Ils doivent tous deux être évolutifs, sécurisés et correctement supervisés. Dans les deux cas, l’infrastructure utilisée doit prendre en charge ces activités.
Utilisez le fournisseur Databricks Terraform pour automatiser le déploiement d’environnements de ML. ML nécessite le déploiement d’infrastructures telles que les travaux d’inférence, les points de terminaison de service et les travaux de caractérisation. Tous les pipelines ML peuvent être automatisés en tant que travaux, et de nombreux pipelines ML centrés sur les données peuvent utiliser le chargeur automatique, plus spécialisé, pour ingérer des images et d’autres données, et Delta Live Tables pour calculer des caractéristiques ou surveiller des métriques.
Veillez à utiliser la mise en service des modèles pour le déploiement des modèles de ML de qualité professionnelle.
Utiliser la gestion déclarative pour les données complexes et les projets de ML
Dans MLOps, les infrastructures déclaratives permettent aux équipes de définir les résultats souhaités en termes généraux et de laisser le système gérer les détails de l’exécution. Cela simplifie le déploiement et la mise à l’échelle des modèles de ML. Ces infrastructures prennent en charge l’intégration continue et le déploiement continu, automatisent la gestion du test et de l’infrastructure, et garantissent la gouvernance et la conformité des modèles. Cela accélère la commercialisation et augmente la productivité tout au long du cycle de vie de ML.
Databricks Asset Bundles (DABs) est un outil qui permet de simplifier le développement de projets de données, d’analytique et de ML complexes pour la plateforme Databricks. Les packs simplifient la gestion des projets complexes pendant le développement actif en fournissant des capacités de CI/CD dans votre workflow de développement logiciel avec une syntaxe YAML concise et déclarative unique. En utilisant le regroupement pour automatiser le test, le déploiement et la gestion de la configuration du projet, vous pouvez réduire les erreurs tout en favorisant les meilleures pratiques logicielles au sein de votre organisation en tant que projets modèles.
3. Gérer la capacité et les quotas
Gérer les limites et quotas du service
La gestion des limites et des quotas de service est importante pour maintenir une infrastructure fonctionnelle et empêcher les coûts inattendus. Chaque service lancé sur un cloud doit tenir compte des limites (comme les limites de débit d’accès, le nombre d’instances, le nombre d’utilisateurs et les besoins en mémoire). Pour votre fournisseur de cloud, vérifiez les limites du cloud. Avant de concevoir une solution, ces limites doivent être comprises.
Plus précisément, pour la plateforme Databricks, il existe différents types de limites :
Limites de la plateforme Databricks : il s’agit de limites spécifiques pour les ressources Azure Databricks. Les limites de la plateforme globale sont documentées dans Limites des ressources.
Limites Unity Catalog : Quotas de ressources Unity Catalog
Quotas d’abonnement/compte : Azure Databricks tire parti des ressources cloud pour son service. Par exemple, les charges de travail sur Azure Databricks s’exécutent sur des clusters, pour lesquels la plateforme Databricks démarre les machines virtuelles du fournisseur de cloud. Les fournisseurs de cloud définissent des quotas par défaut sur le nombre de machines virtuelles pouvant être démarrées en même temps. En fonction des besoins, ces quotas peuvent nécessiter un ajustement.
Pour plus d’informations, consultez Augmenter les quotas de processeurs virtuels de la famille de machines virtuelles.
De même, le stockage, le réseau et d’autres services cloud ont des limitations qui doivent être bien comprises et prises en compte.
Investir dans la planification de la capacité
La planification des capacités implique de gérer les ressources cloud (comme le stockage, le calcul et la mise en réseau) pour maintenir les performances tout en optimisant les coûts. Planifiez les variations de charge attendues qui peuvent survenir pour diverses raisons (y compris les changements professionnels soudains ou même les événements mondiaux). Testez les variations de charge, y compris les variations inattendues, pour vous assurer de pouvoir mettre à l’échelle vos charges de travail. Assurez-vous de pouvoir mettre à l’échelle toutes les régions de sorte à prendre en charge la charge totale en cas d’échec d’une région. Prenez le cas :
- Limites liées à la technologie et au service, ainsi que des limitations du cloud. Consultez Gérer la capacité et les quotas.
- SLA pour déterminer les services à utiliser dans la conception.
- L’analyse des coûts pour déterminer les améliorations à apporter à l’application en cas d’augmentation des coûts. Évaluez si l’investissement en vaut la peine.
Il est important de comprendre et de planifier les événements de haute priorité (volume). Si les ressources cloud approvisionnées ne sont pas suffisantes et que les charges de travail ne peuvent pas être mises à l’échelle, ces augmentations de volume peuvent entraîner une défaillance.
4. Configurer la supervision, l’alerte et la journalisation
Définir les processus de supervision
La définition des processus de supervision pour une plateforme de données est essentielle pour plusieurs raisons. Les processus de supervision permettent de détecter rapidement les problèmes (comme les problèmes de qualité des données, les goulots d’étranglement des performances et les défaillances système), ce qui peut aider à prévenir les temps d’arrêt et les pertes de données. Ils peuvent aider à identifier les inefficacités de la plateforme de données et à optimiser les coûts en réduisant le gaspillage et en optimisant l’utilisation des ressources. En outre, les processus de supervision peuvent aider à garantir la conformité aux exigences réglementaires et fournir des pistes d’audit en matière d’accès aux données et d’utilisation.
Utiliser des outils natifs et externes pour superviser la plateforme
La plateforme Databricks Data Intelligence propose des solutions de supervision intégrées et inclut des systèmes de supervision externes :
Supervision de plateforme à l’aide de solutions de supervision Azure
La supervision étant un élément primordial de toute solution de niveau production, Azure Databricks offre des fonctionnalités solides pour superviser les métriques d’application personnalisées, le streaming des événements de requête et les messages de journal d’application. Azure Databricks peut envoyer ces données de supervision à différents services de journalisation. Les articles suivants expliquent comment envoyer des données de supervision depuis Azure Databricks vers Azure Monitor, qui est la plateforme de données de supervision pour Azure.
Databricks Lakehouse Monitoring
Databricks Lakehouse Monitoring vous permet d’analyser les propriétés statistiques et la qualité des données dans toutes les tables de votre compte. La supervision de la qualité des données fournit des mesures quantitatives permettant de suivre et de valider la cohérence des données au fil du temps. Elle permet d’identifier les modifications apportées à la distribution des données et aux performances des modèles, et d’en avertir les utilisateurs. Vous pouvez aussi suivre les performances des modèles d’apprentissage automatique en supervisant les tables d’inférence qui contiennent les entrées et les prévisions des modèles.
Pour comprendre le coût de la supervision Lakehouse, consultez Afficher les dépenses associées à Lakehouse Monitoring.
Supervision de l’entrepôt SQL
La surveillance de l’entrepôt SQL est essentielle pour comprendre le profil de charge au fil du temps et pour gérer efficacement l’entrepôt SQL. Avec la supervision de l’entrepôt SQL, vous pouvez afficher des informations, telles que le nombre de requêtes gérées par l’entrepôt ou le nombre de clusters alloués à l’entrepôt.
Alertes Databricks SQL
Les alertes Databricks SQL exécutent régulièrement des requêtes, évaluent des conditions définies et envoient des notifications si une condition est remplie. Vous pouvez configurer des alertes pour monitorer votre activité et envoyer des notifications lorsque des données signalées dépassent des limites attendues.
En outre, vous pouvez créer une alerte Databricks SQL basée sur une mesure d’une table de mesures de supervision. Cela vous permet, par exemple, d’être averti lorsqu’une statistique sort d’une certaine plage ou lorsque les données s’écartent de la table de référence.
Supervision Auto Loader
Auto Loader fournit une API SQL pour inspecter l’état d’un flux. À l’aide des fonctions SQL, vous pouvez obtenir des métadonnées sur les fichiers qui ont été découverts par un flux Auto Loader. Consultez Surveillance d’Auto Loader.
Avec l’interface de l’écouteur de requête de streaming Apache Spark, les flux Auto Loader peuvent être surveillés plus en détail.
Supervision des travaux
La supervision des travaux permet d’identifier et de résoudre les problèmes liés aux travaux Databricks (comme les échecs, les retards ou les goulots d’étranglement des performances). La supervision des travaux fournit des insights sur les performances des travaux. Vous pouvez ainsi optimiser l’utilisation des ressources, réduire le gaspillage et améliorer l’efficacité globale.
Supervision Delta Live Tables
Un journal des événements est créé et maintenu pour chaque pipeline Delta Live Tables. Le journal des événements contient toutes les informations ayant trait au pipeline, y compris les journaux d’audit, les vérifications de la qualité des données, la progression du pipeline et la traçabilité des données. Vous pouvez utiliser le journal des événements pour suivre, comprendre et superviser l’état de vos pipelines de données.
Supervision en continu
Le streaming est l’une des techniques de traitement des données les plus importantes pour l’ingestion et l’analyse. Il fournit aux utilisateurs et aux développeurs des fonctionnalités de traitement des données en temps réel et à faible latence pour l’analytique et le déclenchement d’actions. La plateforme Databricks Data Intelligence vous permet de superviser facilement les requêtes en Structured Streaming.
Supervision par ML et IA
Le monitoring des performances des modèles dans des workflows de production est un aspect important du cycle de vie de modèles ML et IA. Les tables d’inférence simplifient la supervision et le diagnostic des modèles en journalisant continuellement les entrées des requêtes de mise en service et les réponses (prédictions) à partir des points de terminaison de service de modèle Mosaic AI, puis en les enregistrant dans une table Delta dans Unity Catalog. Vous pouvez ensuite utiliser toutes les fonctionnalités de la plateforme Databricks, comme les requêtes DBSQL, les notebooks et Lakehouse Monitoring pour surveiller, déboguer et optimiser vos modèles.
Pour plus d’informations sur la mise en service des modèles de supervision, consultez Superviser la qualité du modèle et l’intégrité du point de terminaison.
Supervision de la sécurité
Consultez Sécurité, conformité et confidentialité – Supervision de la sécurité.
Supervision des coûts
Consultez Optimisation des coûts – Superviser et contrôler les coûts.