Partager via


Utiliser Azure Synapse Analytics pour le traitement des données lakehouse en quasi temps réel

Azure AI Search
Azure Cosmos DB
Azure Data Lake
Azure Event Hubs
Azure Synapse Analytics

Les entreprises pilotées par les données doivent assurer la synchronisation en quasi-temps réel de leurs systèmes de back-end et d’analytique avec les applications orientées clients. Les effets des transactions, des mises à jour et des modifications doivent refléter avec précision les processus de bout en bout, les applications associées et les systèmes OLTP (Online Transaction Processing). La latence tolérable pour les modifications apportées aux applications OLTP afin de refléter les systèmes en aval qui utilisent les données ne peut être que quelques minutes.

Cet article décrit une solution de bout en bout de traitement de données en quasi-temps réel pour synchroniser des données lakehouse. La solution utilise Azure Event Hubs, Azure Synapse Analytics et Azure Data Lake Storage pour le traitement et l’analytique des données.

Note

Vous pouvez implémenter une architecture similaire à l’aide de Microsoft Fabric, qui fournit une plateforme SaaS unifiée pour l’ingestion, la transformation, le stockage et l’analytique des données. Dans ce cas, Fabric remplace les composants Azure Synapse Analytics de l’architecture et fournit des fonctionnalités intégrées pour le traitement et l’analyse des données en temps réel. Pour plus d’informations, consultez Fabric Real-Time Intelligence.

Apache et Apache ® Spark sont des marques déposées ou des marques de la Fondation Apache Software aux États-Unis et/ou dans d’autres pays. L’utilisation de ces marques n’implique aucune approbation de l’Apache Software Foundation.

Architecture

Diagramme montrant le flux de données pour la solution de traitement des données de bout en bout.

Téléchargez un fichier Visio de cette architecture.

Flux de données

  1. La capture de données modifiées (CDC) est un prérequis pour que les systèmes sources écoutent les modifications. Les connecteurs Debezium peuvent se connecter à différents systèmes sources et tirer parti des modifications à mesure qu’ils se produisent. Les connecteurs peuvent capturer les changements et produire des événements à partir de divers systèmes de gestion de bases de données relationnelles (SGBDR). L’installation d’un connecteur Debezium nécessite un système Kafka Connect.

  2. Les connecteurs extraient les données modifiées et envoient les événements capturés à Event Hubs. Event Hubs peut recevoir de grandes quantités de données provenant de plusieurs sources.

  3. Event Hubs diffuse directement les données vers des pools Spark Azure Synapse Analytics ou envoie les données à une zone d’atterrissage Data Lake Storage au format brut.

  4. D’autres sources de données batch peuvent utiliser des pipelines Azure Synapse Analytics pour copier des données vers Data Lake Storage et les rendre disponibles pour le traitement. Un flux de travail d’extraction, de transformation et de chargement (ETL) de bout en bout peut avoir besoin de chaîner différentes étapes ou d’ajouter des dépendances entre les étapes. Les pipelines Azure Synapse Analytics peuvent orchestrer les dépendances de flux de travail dans l’infrastructure de traitement globale.

  5. Les pools Spark Azure Synapse Analytics utilisent des API de diffusion structurée Apache Spark entièrement prises en charge pour traiter les données dans l’infrastructure Spark Streaming. L’étape de traitement de données incorpore des contrôles de qualité des données et des validations de règles métier d’ordre général.

  6. Data Lake Storage stocke les données validées au format Delta Lake ouvert. Delta Lake fournit une sémantique et des transactions ACID (atomicité, cohérence, isolation et durabilité), une gestion scalable des métadonnées ainsi que des processus unifiés de streaming et de traitement de données par lots pour les lacs de données existants.

    L’utilisation d’index pour l’accélération des requêtes améliore les performances de Delta Lake. Les données de la zone validée Data Lake Storage peuvent également servir de source pour des opérations d’analytique et de machine learning plus avancées.

  7. Les données de la zone validée Data Lake Storage, transformées et enrichies avec plus de règles dans son état de traitement final, sont chargées dans un pool SQL dédié pour exécuter des requêtes analytiques à grande échelle.

  8. Power BI utilise les données exposées via le pool SQL dédié pour créer des tableaux de bord et des rapports de niveau entreprise.

  9. Vous pouvez également utiliser des données brutes capturées dans Data Lake Store et les données validées au format Delta pour les tâches suivantes :

    • Analyse non planifiée et exploratoire via des pools SQL serverless Azure Synapse Analytics

    • Formation et déploiement du modèle Machine Learning via Azure Machine Learning

  10. Pour certaines interfaces à faible latence, les données doivent être dénormalisées pour les latences de serveur à un chiffre. Ce cas d’usage est principalement destiné aux réponses d’API. Ce scénario interroge des documents dans un magasin de données NoSQL comme Azure Cosmos DB pour obtenir des temps de réponse inférieurs à dix millisecondes.

  11. La stratégie de partitionnement Azure Cosmos DB peut ne pas prendre en charge efficacement tous les modèles de requête. Si c’est le cas, vous pouvez augmenter la solution en indexant les données auxquelles les API doivent accéder avec Recherche IA Azure. La recherche Azure Cosmos DB et AI peut répondre à la plupart des scénarios qui nécessitent des réponses de requête à faible latence. Par exemple, une application de vente au détail stocke les données du catalogue de produits dans Azure Cosmos DB, mais a besoin de fonctionnalités de recherche en texte intégral et d’indexation flexibles. La recherche IA peut indexer les données et fournir des fonctionnalités de recherche avancées telles que la saisie semi-automatique, les synonymes et le classement sémantique. Ces fonctionnalités sont utiles lorsque les limitations d’indexation d’Azure Cosmos DB limitent les scénarios de recherche complexes.

Composants

Cette solution utilise les services Azure suivants :

  • Event Hubs est un service d’ingestion distribué géré qui peut être mis à l’échelle pour ingérer de grandes quantités de données. En utilisant le mécanisme d’abonné de l’éditeur Event Hubs, différentes applications peuvent envoyer des messages à des rubriques Event Hubs, et les consommateurs en aval peuvent se connecter à ces messages et les traiter. La fonctionnalité de capture Event Hubs peut écrire des messages dans Data Lake Storage au format Avro à mesure qu’ils arrivent. Cela facilite le traitement par micro-lots et les scénarios de conservation à long terme. Event Hubs fournit également une API compatible Kafka et prend en charge le registre de schémas. Dans cette architecture, Event Hubs reçoit des événements CDC de plusieurs sources et les distribue aux consommateurs en aval.

  • Data Lake Storage est une solution de lac de données évolutive et sécurisée. Il forme le sous-système de stockage qui stocke toutes les données dans des formats bruts et validés. Dans cette architecture, Data Lake Storage gère les transactions à grande échelle et prend en charge différents formats et tailles de fichiers. Les espaces de noms hiérarchiques permettent d’organiser les données dans une structure de dossiers familière et de prendre en charge les autorisations d’interface de système d’exploitation portable pour Unix (POSIX). Le pilote ABFS (Blob Filesystem) Azure fournit une API compatible Hadoop.

  • Azure Synapse Analytics est un service d’analytique sans limite qui combine l’intégration des données, l’entreposage de données d’entreprise et l’analytique Big Data. Cette solution utilise les fonctionnalités suivantes de l’écosystème Azure Synapse Analytics :

    • Les pools Spark Azure Synapse Analytics sont des clusters qui fournissent un runtime Spark à la demande qui ajoute des améliorations de performances intégrées à Spark open source. Dans cette architecture, les clients peuvent configurer des paramètres de mise à l’échelle automatique flexibles, envoyer des travaux à distance via le point de terminaison Apache Livy et utiliser l’interface de notebook Synapse Studio pour des expériences interactives.

    • Les pools SQL serverless Azure Synapse Analytics sont une fonctionnalité de requête à la demande qui fournit une interface permettant d’interroger des données lakehouse à l’aide de la syntaxe T-SQL familière. Il n’existe aucune infrastructure à configurer, et le déploiement de l’espace de travail Azure Synapse Analytics crée automatiquement le point de terminaison. Dans cette architecture, les pools SQL serverless Azure Synapse Analytics permettent la découverte et l’exploration de base des données en place pour l’analyse des requêtes non planifiées.

    • Les pools SQL dédiés Azure Synapse Analytics sont des ressources d’entreposage de données approvisionnées. Ils stockent des données dans des tables relationnelles à l’aide du stockage en colonnes. Dans cette architecture, les pools SQL dédiés utilisent une architecture de scale-out pour distribuer le traitement des données sur plusieurs nœuds. Les requêtes PolyBase amènent les données dans les tables de pools SQL. Les tables peuvent se connecter à Power BI à des fins d’analyse et de création de rapports.

  • Power BI est un service d’analytique métier qui fournit une interface visuelle pour créer et accéder aux rapports et tableaux de bord. Power BI Desktop peut se connecter à diverses sources de données, combiner les sources dans un modèle de données et créer des rapports ou des tableaux de bord. Dans cette architecture, vous pouvez utiliser Power BI pour transformer des données en fonction des exigences métier et partager des visuels et des rapports avec les clients.

  • Azure Cosmos DB est un service de base de données NoSQL distribué à l’échelle mondiale. Cette solution utilise Azure Cosmos DB pour les applications qui nécessitent des temps de réponse inférieurs à dix millisecondes et une haute disponibilité. Azure Cosmos DB fournit des écritures à plusieurs régions dans toutes les régions Azure.

  • Ai Search est une plateforme basée sur l’IA en tant que service (PaaS) qui permet aux développeurs de créer des expériences de recherche enrichies pour leurs applications et sites web. Utilisez la recherche IA dans cette solution lorsque le modèle d’indexation Azure Cosmos DB est trop rigide pour les scénarios de recherche avancés. La recherche IA permet une interrogation flexible avec des fonctionnalités telles que la tolérance de faute de frappe, la saisie semi-automatique, le classement sémantique et la correspondance de synonymes. Vous pouvez interroger des données indexées à l’aide d’une API REST ou du Kit de développement logiciel (SDK) .NET. Si vous devez récupérer des données à partir de plusieurs index, vous pouvez les consolider dans un seul index ou utiliser des types de données complexes pour modéliser des structures imbriquées.

Détails du scénario

Le workflow de bout en bout pour traiter les changements en quasi-temps réel nécessite :

  • Une technologie CDC. Les applications OLTP peuvent avoir différents magasins de données principaux, comme SQL Server, MySQL et Oracle. La première étape consiste à écouter les changements à mesure qu’ils se produisent et à les propager vers l’avant.

  • Une mémoire tampon d’ingestion pour publier les événements de changement à grande échelle. Ce service doit pouvoir gérer de grandes quantités de données à mesure que les messages arrivent. Les abonnés individuels peuvent se connecter à ce système et traiter les données.

  • Un stockage distribué et scalable pour les données telles quelles dans un format brut.

  • Un système de traitement de streams distribué et efficace qui permet aux utilisateurs de redémarrer et de gérer l’état.

  • Un système analytique qui s’exécute à grande échelle pour éclairer les décisions commerciales.

  • Une interface d’analytique en libre-service.

  • Pour les réponses d’API à faible latence, une base de données NoSQL pour stocker des représentations dénormalisées des données.

  • Dans certains cas, un système pour indexer les données, actualiser l’index à intervalles réguliers et rendre les dernières données disponibles en vue d’une consommation en aval.

Toutes les technologies précédentes doivent utiliser des constructions de sécurité pertinentes pour la sécurité de périmètre, l’authentification, l’autorisation et le chiffrement des données.

Cas d’usage potentiels

Cette solution convient aux cas d’usage suivants :

  • Industries devant propager les changements de l’OLTP vers le traitement analytique en ligne (OLAP).

  • Applications nécessitant une transformation ou un enrichissement des données.

Le scénario de traitement de données en temps réel est particulièrement important dans le secteur des services financiers. Par exemple, si le titulaire d’une assurance, d’une carte de crédit ou d’un compte bancaire effectue un paiement, puis contacte aussitôt le service client, l’agent du support client doit disposer des dernières informations.

Des scénarios similaires s’appliquent aux secteurs de la vente au détail, du commerce et des soins de santé. L’activation de ces scénarios simplifie les opérations et conduit à une plus grande productivité organisationnelle et une satisfaction accrue des clients.

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework, un ensemble de principes directeurs que vous pouvez utiliser pour améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Well-Architected Framework.

Fiabilité

La fiabilité permet de s’assurer que votre application peut respecter les engagements que vous prenez à vos clients. Pour plus d’informations, consultez la liste de vérification de la révision de conception pour la fiabilité.

  • Event Hubs fournit une rétention de données de 90 jours sur les niveaux Premium et dédiés. Pour les scénarios de basculement, vous pouvez configurer un espace de noms secondaire dans la région jumelée et l’activer pendant le basculement. Activez la redondance de zone pour garantir la résilience contre les défaillances du centre de données. Vous pouvez utiliser la fonctionnalité de capture Event Hubs pour conserver les données dans Data Lake Storage pour les scénarios de relecture et de récupération.

  • Les travaux de pool Spark Azure Synapse Analytics sont recyclés tous les sept jours, car les nœuds sont retirés pour la maintenance. Considérez cette activité au fur et à mesure que vous travaillez dans les contrats de niveau de service (SLA) liés au système. Cette limitation n’est pas un problème pour de nombreux scénarios où l’objectif de temps de récupération (RTO) est d’environ 15 minutes. Vérifiez que la mise à l’échelle automatique est configurée pour gérer les pics de charge et les échecs de nœud.

  • Utilisez des pools SQL dédiés qui disposent d’une géo-sauvegarde et d’un stockage redondant interzone (ZRS) pour vous protéger contre les pannes régionales et zonales.

Optimisation des coûts

L’optimisation des coûts se concentre sur les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez la liste de contrôle de révision de conception pour l’optimisation des coûts.

  • Vous avez le choix entre différents niveaux Event Hubs en fonction des caractéristiques de la charge de travail. Event Hubs facture le stockage séparément en fonction de la quantité de données stockées sur Data Lake Storage.

  • Envisagez la gestion du cycle de vie des objets via des niveaux sur Data Lake Storage. À mesure que les données vieillissent, vous pouvez déplacer des données d’un niveau chaud, où vous devez accéder aux données récentes pour l’analytique, vers un niveau de stockage froid qui coûte moins cher. Le niveau de stockage froid est une option rentable pour la conservation à long terme.

  • Vous pouvez suspendre le pool SQL dédié quand vous ne vous en servez pas dans vos environnements de développement ou de test. Vous pouvez planifier un script pour suspendre le pool en fonction des besoins, ou vous pouvez suspendre manuellement le pool par le biais du portail.

  • Pour les pools Spark Azure Synapse Analytics, utilisez la mise à l’échelle automatique pour allouer dynamiquement des ressources en fonction de la demande de charge de travail et pour éviter le surprovisionnement. Choisissez la plus petite taille de pool qui répond aux besoins de performances et utilisez les paramètres d’arrêt automatique pour arrêter rapidement les pools inactifs. Optimisez les travaux Spark en réduisant les opérations aléatoires, en mettant en cache les résultats intermédiaires et en réglant les tailles de partition pour réduire le temps d’exécution et la consommation des ressources. Surveillez l’utilisation à l’aide des outils de surveillance Azure Synapse Analytics et ajustez les configurations en fonction des tendances des performances des travaux et des coûts.

  • Pour optimiser l’efficacité des coûts dans Azure Cosmos DB, personnalisez vos stratégies d’indexation pour inclure uniquement les chemins nécessaires, ce qui réduit la consommation d’unités de stockage et de requête (RU). Choisissez l’API et le niveau de cohérence appropriés pour répondre aux besoins de la charge de travail sans surprovisionner. Utilisez le débit de mise à l’échelle automatique pour ajuster dynamiquement les unités de requête en fonction de la demande et consolider les charges de travail dans moins de conteneurs lorsque cela est possible pour réduire la surcharge. Surveillez régulièrement l’utilisation à l’aide de Microsoft Cost Management et définissez des alertes pour éviter les frais inattendus.

  • Utilisez la calculatrice de prix Azure pour estimer la tarification.

Efficacité des performances

L’efficacité des performances fait référence à la capacité de votre charge de travail à mettre à l’échelle pour répondre efficacement aux demandes des utilisateurs. Pour plus d’informations, consultez la liste de vérification de la révision de conception pour l’efficacité des performances.

  • Vous pouvez mettre à l’échelle Event Hubs via le partitionnement, qui distribue les événements entre plusieurs journaux parallèles (partitions) pour augmenter le débit. Pour conserver l’ordre des événements associés, tels que les événements du même client ou appareil, utilisez une clé de partition cohérente lorsque vous publiez des événements. Cette pratique garantit que tous les événements associés sont routés vers la même partition, où Event Hubs conserve leur ordre. Paramétrez les unités de débit en fonction du volume d’événements attendu. Utilisez la fonctionnalité de capture pour écrire directement dans Data Lake Storage au format Avro ou Parquet pour un traitement en aval efficace.

  • Vous pouvez configurer des pools Spark Azure Synapse Analytics avec des références SKU de machine virtuelle de petite, moyenne ou grande taille en fonction de la charge de travail. Vous pouvez également configurer la mise à l’échelle automatique sur des pools Spark Azure Synapse Analytics pour tenir compte des pics d’activité dans les charges de travail. Si vous avez besoin de ressources de calcul supplémentaires, les clusters sont automatiquement mis à l’échelle pour répondre à la demande et effectuer un scale-down une fois le traitement terminé.

  • Delta Lake joue un rôle central dans la garantie d’un traitement de données hautes performances, fiable et évolutif dans cette architecture :

    • Activez les fonctionnalités d’optimisation automatique et de compactage automatique dans Delta Lake pour gérer automatiquement les petits fichiers et optimiser la disposition des données pendant les opérations d’écriture. Ces fonctionnalités sont idéales pour la diffusion en continu ou les scénarios d’ingestion de micro-lots fréquents, car elles réduisent la nécessité d’une intervention manuelle.

    • Permet OPTIMIZE de compacter manuellement les petits fichiers en fichiers plus volumineux. Cette pratique est particulièrement utile lorsque vous souhaitez améliorer l’efficacité de la lecture et réduire la surcharge des métadonnées après l’ingestion de streaming crée de nombreux petits fichiers.

    • Utilisez-les OPTIMIZE avec ZORDER BY des colonnes fréquemment interrogées, telles que des horodatages ou des ID client, pour colocaliser les données associées. Cette requête améliore les performances des requêtes en réduisant la quantité de données analysées pendant les lectures.

  • Pour optimiser les performances dans les pools SQL dédiés pour l’analytique en temps quasi réel, effectuez les tâches suivantes :

    • Utilisez des méthodes de distribution appropriées, telles que le hachage, le tourniquet, les méthodes répliquées.
    • Partitionnez des tables volumineuses par heure ou région pour améliorer la taille des requêtes.
    • Utilisez des vues matérialisées et la mise en cache du jeu de résultats pour les données fréquemment sollicitées.
    • Conservez up-tostatistiques et index de date pour exécuter efficacement des requêtes.
    • Affectez des classes de ressources pour gérer la mémoire et la concurrence.
    • Surveillez les performances à l’aide d’outils intégrés tels que SQL Insights et vues de gestion dynamique (DMV).

    Ces pratiques permettent de garantir des performances à faible latence et à débit élevé dans les charges de travail analytiques à grande échelle.

  • Pour optimiser Azure Cosmos DB pour les performances dans les scénarios d’analytique en temps réel, configurez les stratégies d’indexation appropriées pour réduire la latence des requêtes et la surcharge de stockage, puis choisissez le niveau de cohérence approprié pour équilibrer les performances avec la précision des données. Utilisez le partitionnement efficacement pour distribuer uniformément les charges de travail et éviter les partitions chaudes. Activez les écritures à plusieurs régions pour un accès global à faible latence et surveillez le débit à l’aide d’unités de requête pour effectuer une mise à l’échelle dynamique en fonction de la demande. Ces pratiques permettent de garantir des performances réactives et évolutives pour les charges de travail à faible latence et à haute ingestion.

Contributeurs

Microsoft gère cet article. Les contributeurs suivants ont écrit cet article.

Auteur principal :

Autre contributeur :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes