Aller au contenu principal

Bonnes pratiques pour l'excellence opérationnelle

Ces bonnes pratiques vous aident à opérer, gérer et superviser Databricks efficacement, organisées selon les principes architecturaux des sections suivantes.

1. Optimisez les processus de création et de déploiement

Créez une équipe dédiée aux opérations Databricks

Une bonne pratique courante consiste à disposer d'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 créer des plans directeurs et les meilleures pratiques en interne. Elle fournit des outils — par exemple, pour l'automatisation de l'infrastructure et l'accès en libre-service — et s'assure que les exigences de sécurité et de conformité sont respectées. Cela confie la charge de la sécurisation des données de la plateforme à une équipe centrale, permettant aux équipes distribuées de se concentrer sur le travail avec les données et la génération de nouveaux insights.

Utiliser la gestion du code source d'entreprise (SCM)

La gestion du code source (GCS) aide les développeurs à travailler plus efficacement, ce qui peut entraîner une accélération des mises en production et une réduction des coûts de développement. Disposer d'un outil qui aide à suivre les modifications, à maintenir l'intégrité du code, à détecter les bugs et à revenir aux versions précédentes est un composant important de votre architecture de Solutions globale.

Les Dossiers Git Databricks permettent aux utilisateurs de stocker des Notebooks ou d'autres fichiers dans un repository Git, offrant des fonctionnalités telles que le clonage d'un repository, le commit et le push, le pull, la gestion des Branches et la visualisation des différences de fichiers. Utilisez les Dossiers Git pour une meilleure visibilité et un meilleur suivi du code.

Standardiser les processus DevOps (CI/CD)

Les fonctionnalités d’intégration et de livraison continues (CI/CD) désignent le développement et le déploiement de logiciels dans des cycles courts et fréquents à l'aide de pipelines automatisés. Bien que ce ne soit pas un nouveau processus, ayant été omniprésent dans l'ingénierie logicielle traditionnelle pendant des décennies, il devient un processus de plus en plus nécessaire pour les équipes de data engineering et de data science. Pour que les produits de données soient précieux, ils doivent être livrés en temps opportun. De plus, les consommateurs doivent avoir confiance dans la validité des résultats au sein de ces produits. En automatisant le processus de création, de test et de déploiement de code, les équipes de développement peuvent livrer des versions plus fréquemment et de manière plus fiable que les processus manuels qui dominent encore de nombreuses équipes de data engineering et de data science. Voir CI/CD sur Databricks.

Pour plus d'information sur les bonnes pratiques de développement de code avec Databricks, consultez les bonnes pratiques de développement sur Databricks. Avec les Declarative Automation Bundles, vous pouvez créer des processus de déploiement automatisés à l'aide des GitHub Actions, des pipelines Azure DevOps ou des Jobs Jenkins.

Standardiser les processus MLOps

Les processus MLOps assurent la reproductibilité des pipelines de ML, permettant une collaboration plus étroite entre les équipes de données, réduisant les conflits avec les DevOps et l'IT, et accélérant la vitesse de publication. Étant donné que de nombreux modèles sont utilisés pour éclairer les décisions commerciales clés, la standardisation 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 de ML sont complexes. De nombreuses options sont disponibles pour y parvenir, mais peu de normes sont bien définies. En conséquence, au cours des dernières années, nous avons assisté à l'émergence des opérations de Machine Learning (MLOps). Le MLOps est un ensemble de processus et d'automatisations pour la gestion des modèles, des données et du code afin d'améliorer la stabilité des performances et l'efficacité à long terme dans les systèmes de ML. Il couvre la préparation des données, l'analyse exploratoire des données (EDA), l'ingénierie des fonctionnalités, la formation des modèles, la validation des modèles, le déploiement et le monitoring.

MLOps sur la plateforme Databricks peut vous aider à optimiser les performances et l'efficacité à long terme de votre système de Machine Learning (ML) :

  • Gardez toujours vos objectifs commerciaux à l'esprit : tout comme l'objectif principal du ML dans une entreprise est de permettre des décisions et des produits data-driven, l'objectif principal de MLOps est de garantir que ces applications data-driven restent stables, sont tenues à jour et continuent d'avoir des impacts positifs sur l'entreprise. Lorsque vous priorisez le travail technique sur MLOps, considérez l'impact commercial : permet-il de nouveaux cas d'utilisation commerciaux ? Améliore-t-il la productivité des équipes de données ? Réduit-il les coûts ou les risques opérationnels ?
  • Gérez les applications d'IA et les modèles de ML avec un outil spécialisé, mais open source : Vous pouvez utiliser MLflow (la plus grande plateforme d'ingénierie d'IA open source pour les agents, les LLM et les modèles de ML) pour déboguer, évaluer, surveiller et optimiser vos applications d'IA tout en contrôlant les coûts et en gérant l'accès aux modèles et aux données. Consultez MLflow sur Databricks.
  • Implémentez MLOps de manière modulaire : comme pour toute application logicielle, la qualité du code est primordiale pour une application ML. Le code modularisé permet de tester les composants individuels et atténue les difficultés liées au refactoring futur du code. Définissez des étapes claires (telles que la formation, l'évaluation ou le déploiement), des super-étapes (comme un pipeline de formation au déploiement) et des responsabilités pour clarifier la structure modulaire de votre application ML.

Ceci est décrit en détail dans l'ebook Databricks Le Grand Livre des 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 pour votre organisation, mais elles incluent généralement les attentes suivantes :

  • Les utilisateurs peuvent uniquement accéder aux données en fonction des règles d'accès spécifiées.
  • Les données ne peuvent être gérées que par des personnes ou des équipes désignées.
  • Les données sont physiquement séparées dans le stockage.
  • Les données ne sont accessibles que dans des environnements désignés.

Dans Databricks, le workspace est l'environnement principal de traitement des données et il existe plusieurs scénarios où des workspaces séparés améliorent la configuration globale, par exemple :

  • Isolez différentes unités commerciales avec leurs propres Workspaces afin d'éviter de partager l'administrateur du Workspace et de garantir qu'aucun asset dans Databricks n'est partagé involontairement entre les unités commerciales.
  • Isolez les environnements du cycle de vie du développement de logiciel (tels que le développement, la préproduction et la production). Par exemple, un workspace de production distinct vous permet de tester de nouveaux paramètres de workspace avant de les appliquer à la production. Ou l'environnement de production pourrait exiger des paramètres de workspace plus stricts que l'environnement de développement. Si vous devez déployer des environnements de développement, de préproduction et de production sur différents réseaux virtuels, vous avez également besoin de workspaces différents pour les trois environnements.
  • Divisez les workspaces pour surmonter les limitations de ressources : les comptes/abonnements cloud ont des limitations de ressources. La division des workspaces en différents abonnements/comptes est un moyen de garantir que suffisamment de ressources sont disponibles pour chaque workspace. De plus, les workspaces Databricks ont également des limitations de ressources. La division des Workspaces garantit que les charges de travail de chaque Workspace ont toujours accès à l'ensemble complet des ressources.

Cependant, les Workspace partagés présentent également certains inconvénients à prendre en compte :

  • La collaboration entre notebooks ne fonctionne pas entre les Workspace.

  • Si vous souhaitez séparer les workspaces pour le développement, la mise en scène et la production et séparer les unités commerciales par workspaces, tenez compte de la limite du nombre de workspaces.

  • Pour plusieurs Workspaces, la configuration et la maintenance doivent être entièrement automatisées (par Terraform, ARM, REST API ou d'autres moyens). Ceci est particulièrement important pour les objectifs de migration.

  • Si chaque Workspace doit être sécurisé au niveau de la couche réseau (par exemple, pour protéger contre l'exfiltration de données), l'infrastructure réseau requise peut être très coûteuse, surtout pour un grand nombre de Workspaces.

Il est important de trouver un équilibre entre le besoin d'isolement et le besoin de collaboration ainsi que l'effort nécessaire pour le maintenir.

Définir une stratégie de catalogue pour votre entreprise

Outre une stratégie d'isolement environnemental, les organisations ont besoin d'une stratégie pour structurer et séparer les métadonnées et les données. Les données, y compris les informations personnellement identifiables, les informations de paiement ou de santé, comportent un risque potentiel élevé, et avec la menace toujours croissante de violations de données, il est important de séparer et de protéger les données sensibles, quelle que soit la stratégie organisationnelle que vous choisissez. Séparez vos données sensibles des données non sensibles, à la fois logiquement et physiquement.

Une organisation peut exiger que certains types de données soient stockés dans des comptes ou des compartiments spécifiques de son tenant cloud. Le métastore Unity Catalog permet de structurer les métadonnées par son espace de noms catalog > schema > tables/views/volumes à trois niveaux, avec des emplacements de stockage configurés au niveau du métastore, du catalogue ou du schéma pour répondre à ces exigences.

Les exigences organisationnelles et de conformité dictent souvent que vous ne conserviez certaines données que dans certains environnements. Vous pouvez également souhaiter 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 Merge. Dans Databricks, le workspace est l'environnement de calcul principal et les catalogues sont le domaine de données principal. En utilisant le métastore Unity Catalog, les administrateurs et les propriétaires de catalogues peuvent lier des catalogues à des workspaces spécifiques. Ces liaisons sensibles à l'environnement vous aident à garantir que seuls certains catalogues sont disponibles dans un workspace, quelle que soit la spécificité des autorisations d'objet de données accordées à un utilisateur.

Pour une discussion complète de ces sujets, consultez les bonnes pratiques d'Unity Catalog.

2. Automatisez les déploiements et les charges de travail

Utilisez 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, surveiller et provisionnement automatiquement les ressources, au lieu de configurer manuellement les périphériques matériels, les systèmes d'exploitation, les applications et les services.

HashiCorp Terraform est un outil open source populaire pour créer une infrastructure cloud sécurisée et prévisible sur plusieurs fournisseurs de services cloud. Le fournisseur Terraform de Databricks gère les workspaces Databricks et l'infrastructure cloud associée à l'aide d'un outil flexible et puissant. L’objectif du fournisseur Terraform de Databricks est de prendre en charge toutes les API REST de Databricks, en assurant 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 le déploiement et la gestion fiables des clusters et des Jobs, le provisionnement des workspaces Databricks et la configuration de l’accès aux données.

Standardiser les configurations de compute

La normalisation des environnements informatiques garantit que les mêmes logiciels, bibliothèques et configurations sont utilisés dans tous les environnements. Cette cohérence facilite la reproduction des résultats, le débogage des problèmes et la maintenance des systèmes dans tous les environnements. Avec des environnements standardisés, les équipes peuvent économiser du temps et des Ressources en éliminant le besoin de configurer et de mettre en place des environnements à partir de zéro. Cela réduit également le risque d'erreurs et d'incohérences qui peuvent survenir lors de la configuration manuelle. La normalisation permet également la mise en œuvre de politiques et de pratiques de sécurité cohérentes dans tous les environnements. Cela peut aider les organisations à mieux gérer les risques et à se conformer aux exigences réglementaires. Enfin, la normalisation peut aider les organisations à mieux gérer les coûts en réduisant les déchets 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 garantir que les ressources de compute lancées au fil du temps sont configurées de manière cohérente, utilisez les stratégies de compute. Les administrateurs de Workspace Databricks peuvent limiter les privilèges de création de compute 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 et appliquer les installations de bibliothèque à l’échelle du cluster. Vous pouvez également utiliser des politiques de compute pour définir des clusters de taille T-shirt (S, M, L) pour les projets comme environnement de travail standard.

Utiliser les tables gérées par Unity Catalog

Les tables dans Unity Catalog peuvent être créées en tant que tables gérées ou tables externes. Pour créer des tables externes, vous devez spécifier l'emplacement de stockage d'objets, et vous êtes responsable de la maintenance et de l'optimisation de ces tables. Pour les tables gérées, Databricks gère l'ensemble du cycle de vie des données, l'emplacement de stockage et la Layout des fichiers, et permet l'optimisation prédictive. Ceci élimine le besoin de maintenance manuelle ou de configuration de jobs de maintenance et garantit que les tables sont automatiquement optimisées pour les performances en fonction des modèles de query réels.

Il est recommandé d'utiliser les tables gérées par Unity Catalog pour toutes les données tabulaires gérées dans Databricks.

Utilisez des workflows automatisés pour les Jobs

La mise en place de workflows automatisés pour les jobs peut aider à réduire les tâches manuelles inutiles et à améliorer la productivité grâce au processus DevOps de création et de déploiement de jobs. La plateforme Data Intelligence propose deux façons de procéder :

  • Lakeflow Jobs:

    Lakeflow Jobs orchestre les pipelines de traitement de données, de Machine Learning et d'analytique sur la Databricks Data Intelligence Platform. C'est un service d'orchestration entièrement managé intégré à la plateforme Databricks :

    • Lakeflow Jobs sont un moyen d'exécuter vos applications de traitement de données et d'analytique dans un Workspace Databricks. Votre Job peut être une seule tâche ou comporter de nombreuses tâches avec des dépendances complexes. Databricks gère l’orchestration des tâches, la gestion des clusters, le monitoring et le rapport d’erreurs pour tous vos jobs.
    • Lakeflow pipelines étendent Apache Spark™ Declarative Pipelines (SDP), un cadre déclaratif pour la création de pipelines de traitement de données fiables, maintenables et testables. Vous définissez les Transformations que vous souhaitez effectuer sur vos données, et LakeFlow Pipelines gèrent automatiquement l’orchestration des tâches, la gestion des clusters, le monitoring, la qualité des données et la gestion des erreurs.
  • Orchestrateurs externes :

    L'API REST complète de Databricks est utilisée par les moteurs de workflow externes pour orchestrer les assets, les Notebooks et les Jobs Databricks. Voir par exemple Apache Airflow.

Nous vous recommandons d'utiliser Lakeflow Jobs pour toutes les dépendances de tâche dans Databricks et - si nécessaire - d'intégrer ces workflows encapsulés dans l'orchestrateur externe.

Utilisez l'ingestion de fichiers automatisée et événementielle

Basé sur les événements (vs. pilotée par un calendrier) présente plusieurs avantages, notamment l'efficacité, une meilleure actualisation des données et l'ingestion de données en temps réel. L'exécution d'un Job uniquement lorsqu'un événement se produit vous assure de ne pas gaspiller de ressources, ce qui vous permet d'économiser de l'argent.

Auto Loader traite de manière 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 fichier 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 au fur et à mesure de leur arrivée.

Pour les ingestions ponctuelles, envisagez d'utiliser la commande COPY INTO à la place.

Utiliser les cadres ETL pour les pipelines de données

Bien qu’il soit possible d’effectuer des tâches ETL manuellement, l’utilisation d’un framework présente de nombreux avantages. Un framework apporte de la cohérence et de la reproductibilité au processus ETL. En fournissant des fonctions et des outils intégrés, un framework peut automatiser les tâches courantes, économisant du temps et des ressources. Les frameworks ETL peuvent gérer de grands volumes de données et peuvent être facilement adaptés à la hausse ou à la baisse selon les besoins. Cela facilite la gestion des ressources et la réponse aux besoins évolutifs de l'entreprise. De nombreux frameworks incluent des fonctionnalités de gestion des erreurs et de journalisation intégrées, facilitant l'identification et la résolution des problèmes. Et ils incluent souvent des contrôles et des validations de la qualité des données pour s’assurer que les données répondent à certaines normes avant d’être chargées dans le data warehouse ou le data lake.

LakeFlow Pipelines étendent les pipelines déclaratifs Apache Spark™ (SDP), un cadre déclaratif pour la construction de pipelines de traitement de données fiables, maintenables et testables. Vous définissez les Transformations que vous souhaitez effectuer sur vos données, et LakeFlow Pipelines gèrent l’orchestration des tâches, la gestion des clusters, le monitoring, la qualité des données et la gestion des erreurs.

Avec les LakeFlow pipelines, vous pouvez définir des pipelines de données de bout en bout en SQL ou en Python : spécifiez la source de données, la logique de transformation et l'état cible des données. LakeFlow Pipelines maintiennent les dépendances et déterminent automatiquement l'infrastructure sur laquelle exécuter le job.

Pour gérer la qualité des données, Lakeflow pipelines surveillent les tendances de qualité des données au fil du temps et empêchent les mauvaises données d'entrer dans les tables grâce à des contrôles de validation et d'intégrité avec des politiques d'erreur prédéfinies. See Spark Declarative Pipelines.

Suivez l’approche de déploiement de code pour les charges de travail ML

Le code et les modèles progressent souvent de manière asynchrone à travers les étapes de développement du logiciel. Il existe deux façons d'y parvenir :

  • déployer du code : Un projet ML est codé dans l'environnement de développement, et ce code est ensuite déplacé vers l'environnement de préproduction, où il est testé. Après des tests réussis, 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 de staging pour des vérifications de validation du modèle, avant le déploiement du modèle dans l'environnement de production.

Voir Modèles de déploiement de modèles.

Databricks recommande une approche de déploiement de code pour la majorité des cas d'usage. Les principaux avantages de ce modèle sont :

  • Cela correspond aux workflows d'ingénierie logicielle traditionnels, en utilisant des outils familiers comme Git et les systèmes CI/CD.
  • Il prend en charge le réentraînement automatisé dans un environnement verrouillé.
  • Il ne nécessite que l'environnement de production pour avoir un accès en lecture aux données d'entraînement de production.
  • Il offre un contrôle total sur l'environnement de formation, ce qui contribue à simplifier la reproductibilité.
  • Cela permet à l'équipe Data Science d'utiliser un code modulaire et des tests itératifs, ce qui facilite la coordination et le développement dans les projets de grande envergure.

Ceci est décrit en détail dans l'ebook Databricks Le Grand Livre des MLOps.

Utilisez un registre de modèles pour dissocier le code et le cycle de vie du modèle

Étant donné que les cycles de vie des modèles ne correspondent pas un à un aux cycles de vie du code, Unity Catalog permet de gérer le cycle de vie complet des modèles ML dans sa version hébergée du MLflow Model Registry. Les modèles dans Unity Catalog étendent les avantages de Unity Catalog aux modèles ML, y compris le contrôle d'accès centralisé, l'audit, la traçabilité et la découverte de modèles entre les workspaces. Les modèles dans Unity Catalog sont compatibles avec le client Python MLflow open source.

Automatiser le suivi des expérimentations ML

Le suivi des expérimentations ML consiste à enregistrer les métadonnées pertinentes pour chaque expérimentation et à organiser les expérimentations. Ces métadonnées incluent les entrées/sorties d'Experimentation, les paramètres, les modèles et d'autres artefacts. L'objectif du suivi des expérimentations est de créer des résultats reproductibles à chaque étape du processus de développement du modèle ML. L'automatisation de ce processus facilite la mise à l'échelle du nombre d'expérimentations et assure la cohérence des métadonnées capturées sur toutes les expérimentations.

Databricks Autologging est une solution sans code qui étend la journalisation automatique de MLflow pour offrir un suivi automatique de l'expérimentation pour les sessions d'entraînement de Machine Learning sur Databricks. Databricks Autologging capture automatiquement les parameters, les métriques, les fichiers et les information de lignage lorsque vous entraînez des modèles avec des exécutions d'entraînement enregistrées comme des exécutions de suivi MLflow.

Réutiliser la même infrastructure pour gérer les pipelines de 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. Le ML et les pipelines de données sont similaires en ce qu'ils préparent tous deux les données pour l'analyse des utilisateurs professionnels ou l'entraînement de modèles. Les deux doivent également être évolutifs, sécurisés et correctement surveillés. Dans les deux cas, l'infrastructure utilisée doit prendre en charge ces activités.

Utilisez le fournisseur Databricks Terraform pour automatiser les déploiements des environnements ML. Le ML requiert le déploiement d'infrastructures telles que des jobs d'inférence, des endpoints de service et des jobs de featurisation. Tous les pipelines de ML peuvent être automatisés en tant que Jobs, et de nombreux pipelines de ML centrés sur les données peuvent utiliser l'Auto Loader plus spécialisé pour ingérer des images et d'autres données et les LakeFlow Pipelines pour calculer des fonctionnalités ou surveiller des métriques.

Assurez-vous d’utiliser Model Serving pour le déploiement de niveau entreprise des modèles ML.

Utilisez la gestion déclarative pour les projets de données complexes et de ML

Les frameworks déclaratifs au sein des MLOps permettent aux équipes de définir les résultats souhaités en termes de haut niveau et laissent le système gérer les détails de l'exécution, simplifiant le déploiement et la mise à l'échelle des modèles de ML. Ces frameworks prennent en charge l'intégration et le déploiement continus, automatisent les tests et la gestion de l'infrastructure, et garantissent la gouvernance et la conformité des modèles, accélérant finalement le temps de mise sur le marché et augmentant la productivité tout au long du cycle de vie du ML.

Les Bundles d'automatisation déclarative sont un outil pour rationaliser le développement de projets complexes de données, d'analytique et de ML pour la plateforme Databricks. Les bundles facilitent la gestion de projets complexes pendant le développement actif en fournissant des capacités CI/CD dans votre workflow de développement logiciel à l'aide d'une syntaxe YAML unique, concise et déclarative. En utilisant des bundles pour automatiser les tests, le déploiement et la gestion de la configuration de votre projet, vous pouvez réduire les erreurs tout en promouvant les bonnes pratiques logicielles au sein de votre organisation sous forme de projets modèles.

3. Gérer la capacité et les quotas

Gérer les limites de service et les quotas

La gestion des limites de service et des quotas est importante pour maintenir une infrastructure fonctionnelle et prévenir les coûts imprévus. Chaque service lancé sur un cloud doit prendre en compte des limites, telles que les limites de taux d'accès, le nombre d'instances, le nombre d'utilisateurs et les exigences de mémoire. Pour votre fournisseur de services cloud, consultez 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 : Ce sont des limites spécifiques pour les ressources Databricks. Les limites de la plateforme globale sont documentées dans Limites des ressources.

Limites d'Unity Catalog : Quotas de ressources Unity Catalog

Quotas d'abonnement/de compte : Databricks utilise les ressources cloud pour son service. Par exemple, les charges de travail sur Databricks s'exécutent sur des clusters, pour lesquels la plateforme Databricks start les machines virtuelles (VM) du fournisseur cloud. Les fournisseurs cloud définissent des quotas default sur le nombre de machines virtuelles (VM) pouvant être start en même temps. Selon les besoins, ces quotas pourraient devoir être ajustés.

Pour plus de détails, consultez les quotas de service Amazon EC2.

De même, le stockage, le réseau et d’autres services cloud ont des limites qui doivent être comprises et prises en compte.

Investir dans la planification de la capacité

La planification des capacités implique la gestion des ressources cloud telles que le stockage, le compute et la mise en réseau pour maintenir les performances tout en optimisant les coûts. Prévoyez des variations de charge, qui peuvent survenir pour diverses raisons, notamment des changements commerciaux soudains ou même des événements mondiaux. Testez les variations de charge, y compris les variations inattendues, pour vous assurer que vos charges de travail peuvent monter en charge. Assurez-vous que toutes les régions peuvent monter en charge suffisamment pour supporter la charge totale si une région tombe en panne. Considérer :

  • Limitations de la technologie et des services et contraintes cloud. Voir Gérer la capacité et les quotas.
  • SLA pour déterminer les services à utiliser dans la conception.
  • Analyse des coûts pour déterminer l'amélioration de l'application réalisée si le coût est augmenté. Évaluez si le prix en vaut l’investissement.

Il est important de comprendre et de planifier les événements à haute priorité (volume). Si les ressources de cloud provisionnées ne sont pas suffisantes et que les charges de travail ne peuvent pas monter en charge, de telles augmentations de volume peuvent entraîner une panne.

4. Configurez le monitoring, les alertes et la journalisation

Établir des processus de monitoring

L'établissement de processus de monitoring pour une plateforme de données est essentiel pour plusieurs raisons. Les processus de monitoring permettent une détection précoce des problèmes tels que les problèmes de qualité des données, les goulots d'étranglement de performance et les défaillances du système, ce qui peut aider à prévenir les temps d'arrêt et la perte de données. Ils peuvent aider à identifier les inefficacités dans la plateforme de données et à optimiser les coûts en réduisant le gaspillage et en améliorant l'utilisation des ressources. De plus, les processus de monitoring peuvent aider à assurer la conformité aux exigences réglementaires et à fournir des pistes d'audit d'accès et d'utilisation des données.

Utiliser des outils natifs et externes pour le monitoring de la plateforme

La Databricks Data Intelligence Platform dispose de solutions de monitoring intégrées et intègre des systèmes de monitoring externes :

  • monitoring de la plateforme à l'aide de CloudWatch

    L'intégration de Databricks à CloudWatch permet de générer des métriques à partir des logs et des alertes. CloudWatch Application Insights vous aide à découvrir automatiquement les champs contenus dans les Logs, et CloudWatch Logs Insights fournit un langage de query spécialement conçu pour un debugging et une analyse plus rapides. Consultez Comment surveiller Databricks avec Amazon CloudWatch.

  • Databricks Monitoring de la qualité des données

    Databricks Data Quality Monitoring vous permet de surveiller la qualité des données de toutes les tables de votre compte. Il suit automatiquement les métriques pertinentes, détecte les anomalies et s’exécute à la même fréquence que les mises à jour des tables. Basé sur la data intelligence platform, le système apprend des tendances historiques et des métadonnées de votre organisation pour fournir un monitoring et une résolution plus intelligents et plus évolutifs. Tous les résultats sont journalisés dans des tables système, ce qui vous permet de configurer des alertes basées sur les anomalies détectées et leur gravité à l'aide de la traçabilité en aval. En plus de ses capacités intelligentes, vous pouvez également configurer le profilage des données pour des tables individuelles, ce qui vous permet de suivre les propriétés statistiques et les distributions de données de vos tables les plus importantes au fil du temps.

  • Tables système pour le monitoring

    Les tables système offrent une observabilité de l'utilisation, des performances et des coûts de Databricks sur votre compte. Activez les tables système pour accéder à des données complètes de facturation, de compute, de workflow et d'audit pour le monitoring et l'optimisation des coûts. Les tables système incluent les données de facturation et d'utilisation, les événements de cluster et de warehouse, l'historique des exécutions de job et de tâche, les événements de pipeline et les logs d'audit. Interrogez les tables système pour créer des tableaux de bord personnalisés, configurer des alertes pour les échecs ou les anomalies de coût, et analyser la lignée et les modèles d'accès.

    Pour des conseils de déploiement, consultez Conception de la stratégie de tables système.

  • Monitoring de SQL Warehouse

    Le monitoring du SQL Warehouse est essentiel pour comprendre le profil de charge au fil du temps et pour gérer le SQL Warehouse efficacement. Avec le monitoring du SQL Warehouse, vous pouvez afficher des informations, telles que le nombre de requêtes traitées par le warehouse ou le nombre de clusters alloués au warehouse.

  • Alertes Databricks SQL

    Les alertes Databricks SQL exécutent périodiquement des requêtes, évaluent les conditions définies et envoient des notifications si une condition est remplie. Vous pouvez configurer des alertes pour surveiller votre activité et envoyer des notifications lorsque les données signalées dépassent les limites prévues.

    De plus, vous pouvez créer une alerte Databricks SQL basée sur une métrique d'une table de métriques de monitoring, par exemple, pour être averti lorsqu'une statistique sort d'une certaine plage ou si les données ont subi une drift par rapport à la table de référence.

  • monitoring d'Auto Loader

    Auto Loader fournit une API SQL pour inspecter l'état d'un Stream. Avec les fonctions SQL, vous pouvez trouver des métadonnées sur les fichiers qui ont été découverts par un Stream Auto Loader. Voir Monitoring Auto Loader.

    Avec l'interface Apache Spark Streaming Query Listener, les flux Auto Loader peuvent être surveillés plus en détail.

  • Job monitoring

    Le monitoring des Jobs vous aide à identifier et à résoudre les problèmes dans vos Lakeflow Jobs, tels que les échecs, les retards ou les goulots d'étranglement de performance. Le monitoring des Jobs fournit des insights sur les performances des Jobs, vous permettant d'optimiser l'utilisation des Ressources, de réduire le gaspillage et d'améliorer l'efficacité globale.

    Configurez les alertes de Job pour envoyer des notifications en cas d'échecs, de retards ou de succès. Utilisez les webhooks pour vous intégrer à des systèmes de gestion des incidents comme PagerDuty ou Opsgenie. Query les tables système system.workflow.job_runs et system.workflow.task_runs pour analyser les tendances de performance des Jobs, identifier les échecs récurrents et surveiller la conformité SLA.

    Pour obtenir des conseils de déploiement sur la configuration du monitoring des Jobs, consultez la Phase 9 : Conception de la stratégie d'observabilité.

  • monitoring des Lakeflow pipelines

    Un journal des événements est créé et tenu à jour pour chaque pipeline. Le journal des événements contient toutes les informations liées au pipeline, y compris les logs d’audit, les contrôles de qualité des données, la progression du pipeline et le data lineage. Vous pouvez utiliser le journal des événements pour suivre, comprendre et surveiller l'état de vos pipelines de données.

  • monitoring du streaming

    Le Streaming est l'une des techniques de traitement de données les plus importantes pour l'ingestion et l'analyse. Il fournit aux utilisateurs et aux développeurs des capacités de traitement de données à faible latence et en temps réel pour l'analytique et le Trigger d'actions. La Databricks Data Intelligence Platform vous permet de surveiller les query Structured Streaming.

  • Spark monitoring

    Surveillez les performances des Jobs Apache Spark et l'utilisation des ressources afin d'identifier les goulets d'étranglement, d'optimiser l'exécution des query et d'améliorer l'efficacité du clustering. Activez la livraison des logs de cluster pour persister les logs d'événements Spark vers le stockage cloud à des fins d'analyse historique. Utilisez la Spark UI pour inspecter les étapes de job, les tâches, le stockage et les exécuteurs pendant l'exécution du job. Analysez les logs d'événements Spark pour identifier les étapes longues, les distorsions de données, les opérations de shuffle et la pression mémoire. Configurez les métriques Spark à exporter vers des systèmes de monitoring externes pour une observabilité centralisée.

    Pour des conseils de déploiement sur la configuration du monitoring Spark, consultez Phase 9 : Conception de la stratégie d'observabilité.

  • monitoring ML et IA

    Le monitoring de la performance des modèles dans les workflows de production est un aspect important du cycle de vie des modèles d'IA et de ML. Les tables d'inférence simplifient le monitoring et les diagnostics des modèles en enregistrant en continu les entrées et les réponses (prédictions) des requêtes de service provenant des Endpoint de Model Serving et en les sauvegardant dans une table Delta dans Unity Catalog. Vous pouvez ensuite utiliser toutes les capacités de la plateforme Databricks, telles que les requêtes DBSQL, les notebooks et le profilage des données pour surveiller, déboguer et optimiser vos modèles.

    Pour plus de détails sur le monitoring du service de modèles, consultez Surveiller la qualité des modèles et l'état des Endpoint.

  • Monitoring de la sécurité.

    Voir Sécurité, conformité et confidentialité – monitoring de la sécurité.

  • monitoring des coûts

    Consultez Optimisation des coûts - Surveiller et contrôler les coûts.

Ressources supplémentaires

Pour des conseils de déploiement étape par étape sur la mise en œuvre de pratiques d'excellence opérationnelle, voir :