Unity Catalog, Lakehouse bien architecturé et efficacité des performances / Blogs / Perficient

J’ai écrit sur l’importance de migration vers Unity Catalog comme élément essentiel de votre Plateforme de gestion de données. Tout exercice de migration implique le passage d’un état actuel à un état futur. Une migration de Hive Metastore vers Unity Catalog nécessitera une planification autour des espaces de travail, des catalogues et de l’accès des utilisateurs. C’est également l’occasion de réaligner certaines de vos pratiques actuelles qui peuvent être moins qu’optimales avec des pratiques plus récentes et meilleures. En fait, certaines de ces améliorations pourraient être plus faciles à financer qu’un simple jeu de gouvernance. Un modèle complet à utiliser à titre indicatif est le Framework Lakehouse bien architecturé Databricks. J’ai discuté des sept piliers du cadre bien architecturé de Lakehouse en général et je veux maintenant me concentrer sur efficacité des performances.
Efficacité des performances
J’ai déjà écrit sur l’optimisation des coûts et l’efficacité des performances comme un levier clé pour piloter la gestion des coûts. Améliorer l’efficacité des performances dans Databricks implique autant un état d’esprit que des choix technologiques. L’architecture sans serveur peut améliorer l’efficacité dans une certaine mesure. Cependant, une culture de développement qui englobe les tests et la surveillance des performances ira plus loin que la simple migration vers le sans serveur. Cela a également été constaté dans le monde du développement cloud. J’espère donc que cette idée n’est pas totalement nouvelle pour votre organisation.
La plupart des organisations comprennent, voire adhèrent pleinement, l’idée selon laquelle la qualité des données doit être intégrée au cycle de vie d’un pipeline d’ingénierie des données. Une mesure tout aussi importante devrait également être la performance, et la performance est généralement une propriété émergente de l’efficacité. Concevoir délibérément l’ensemble de la chaîne pour maximiser l’efficacité des lectures, des écritures et des transformations aboutira à un pipeline performant.
Concepts clés de l’informatique distribuée
L’avenir du Big Data
Avec quelques conseils, vous pouvez créer une plateforme de données adaptée aux besoins de votre organisation et tirer le meilleur parti de votre capital de données.
Comprendre la mise à l’échelle verticale, horizontale et linéaire est probablement les concepts les plus fondamentaux de l’informatique distribuée. La mise à l’échelle verticale signifie utiliser une ressource plus importante. Ce n’est généralement pas le meilleur moyen d’augmenter les performances de la plupart des flux de travail distribués, mais cela a certainement sa place. Les gens font généralement référence à la mise à l’échelle horizontale, ou à l’ajout et à la suppression de nœuds du cluster, comme les meilleurs mécanismes pour augmenter les performances. Techniquement, c’est ce que fait Spark. Cependant, le travail lui-même doit être capable d’une évolutivité linéaire pour tirer parti de l’évolutivité horizontale. En d’autres termes, les tâches doivent pouvoir être exécutées en parallèle si elles veulent bénéficier d’une évolutivité horizontale plutôt que verticale. Les petites tâches s’exécuteront plus lentement sur un système distribué que sur un système à nœud unique. J’avais mentionné la différence entre les tâches qui s’exécutent sur le pilote (nœud unique) et celles qui peuvent s’exécuter sur les exécuteurs dans un nœud travailleur (nœuds multiples). Vous ne pouvez pas simplement lancer des nœuds sur une tâche et être performant. Il faut d’abord être efficace.
La mise en cache peut être très performante mais peut également être difficile à comprendre et à mettre en œuvre correctement. Les caches disque stockent des copies de données distantes sur des disques locaux pour accélérer certains types de requêtes, mais pas tous. La mise en cache des résultats des requêtes tire parti des requêtes déterministes exécutées sur les tables Delta pour permettre à SQL Warehouses de renvoyer les résultats directement à partir du cache. On pourrait penser que la mise en cache Spark serait une bonne idée, mais en utilisant persist()
et unpersist()
fera probablement plus de mal que de bien.
Si ces concepts semblent difficiles, laissez Databricks vous aider. Utiliser Streaming structuré pour distribuer les tâches par lots et en streaming sur le cluster. Laisser Tableaux en direct Delta gérer la planification de l’exécution, la configuration de l’infrastructure, l’exécution des tâches et la surveillance de manière performante pour vous. Faites utiliser vos data scientists API Pandas sur Spark au lieu de simplement la bibliothèque pandas standard. Si vous n’utilisez pas le calcul sans serveur, assurez-vous de bien comprendre les performances et les caractéristiques de charge des clusters plus grands et des différentes machines virtuelles cloud.
Le concept le plus important de l’informatique distribuée est peut-être qu’il est préférable que Databricks se soucie des détails pour vous et se concentre sur la réalisation des cas d’utilisation.
Améliorations des performances des Databricks
J’ai recommandé d’utiliser les derniers environnements d’exécution Databricks afin de profiter des dernières optimisations de coûts dans le dernier article. Il en va de même pour les optimisations de performances. L’utilisation de Delta Lake peut améliorer la vitesse de lecture des requêtes en réglage automatique de la taille du fichier. Assurez-vous d’activer Clustering liquide pour toutes les nouvelles tables Delta. N’oubliez pas d’utiliser optimisation prédictive sur toutes vos tables gérées Unity Catalog après la migration. En fait, le catalogue Unity offre des avantages en termes de performances en plus des avantages en matière de gouvernance. Profitez de Pools de Databricks capacité à préchauffer les grappes.
Surveiller les performances
Databricks dispose de différentes capacités de surveillance intégrées pour différents types de tâches et de flux de travail. C’est pourquoi la surveillance doit être intégrée à votre ADN de développement. Surveiller entièrement Entrepôts SQL. Obtenez plus de précision avec le profileur de requêtes pour identifier les goulots d’étranglement dans différentes tâches de requête. Il existe une surveillance distincte pour Streaming structuré. Vous pouvez également surveillez vos travaux pour les échecs et les goulots d’étranglement. Vous pouvez même utiliser des minuteries dans votre code python et scala. Quelle que soit la manière dont vous le faites, assurez-vous de surveiller et de vous assurer que ces mesures sont exploitables.
Source link