Cette rubrique décrit les problématiques métier que la solution d'entrepôt de données en quasi temps réel permet de résoudre, ainsi que ses principales caractéristiques architecturales.
Contexte
À mesure que les scénarios de traitement des données se complexifient, l'affichage des données mises à jour en quelques secondes ou les mises à jour au niveau des lignes ne sont pas requis dans de nombreux cas d'usage. En revanche, un traitement des données en quasi temps réel à l'échelle de la minute ou de l'heure, ainsi qu'un traitement par lots de grands volumes de données, s'avèrent nécessaires. MaxCompute propose des tables Delta pour répondre à vos besoins métier en matière de stockage et de traitement des données complètes et incrémentielles en quasi temps réel.
Analyse de la situation actuelle
Dans les scénarios métier où la fraîcheur des données est moins critique et qui nécessitent le traitement par lots de grands volumes de données, vous pouvez utiliser MaxCompute pour satisfaire vos exigences. Pour les scénarios exigeant une haute fraîcheur des données, avec un traitement en temps réel à l'échelle de la seconde ou un traitement en flux continu, il est nécessaire de recourir à un système de traitement des données en temps réel ou à un système de streaming. Dans les scénarios hybrides, combinant par exemple un traitement en quasi temps réel à l'échelle de la minute ou de l'heure et un traitement par lots de grands volumes de données, l'utilisation d'un moteur unique ou de plusieurs moteurs fédérés peut engendrer des problèmes spécifiques.

Comme illustré dans la figure précédente, l'utilisation exclusive de MaxCompute pour le traitement par lots dans certains scénarios peut poser problème. Par exemple, si vous utilisez MaxCompute dans des contextes où les données incrémentielles à la minute et les données complètes des utilisateurs doivent être fusionnées et stockées en continu, des coûts de calcul et de stockage supplémentaires sont générés. Si vous avez recours à MaxCompute pour convertir des chaînes de traitement de données complexes et une logique de traitement élaborée en traitements par lots sous T+1 jour, la complexité des chaînes de traitement s'accroît et la fraîcheur des données ne répond plus aux exigences métier. À l'inverse, l'utilisation exclusive d'un système de traitement des données en temps réel dans ces mêmes scénarios entraîne des coûts élevés en ressources, une faible efficacité économique et une instabilité du traitement par lots à grande échelle. L'architecture Lambda est souvent adoptée comme solution. Dans cette architecture, MaxCompute assure le traitement par lots des données complètes, tandis qu'un système de traitement des données en temps réel gère les données incrémentielles pour satisfaire les exigences de haute fraîcheur. Toutefois, l'architecture Lambda présente des inconvénients connus, tels que l'incohérence des données entre plusieurs ensembles de moteurs de traitement et de stockage, des coûts supplémentaires liés au stockage redondant et au calcul de multiples copies des données, une architecture complexe et un cycle de développement prolongé.
Pour remédier à ces problèmes, l'écosystème open source du big data a lancé diverses solutions ces dernières années. La solution la plus populaire repose sur l'intégration approfondie des moteurs de traitement des données open source Spark, Flink ou Presto avec les lacs de données open source Hudi, Delta Lake et Iceberg, afin de mettre en œuvre un moteur de calcul et un stockage de données unifiés. Cette approche permet de résoudre une série de problèmes induits par l'architecture Lambda. Une architecture de stockage et de traitement des données incrémentielles a été développée sur la base de l'architecture de MaxCompute. Elle offre une solution intégrée pour le traitement des données par lots et le traitement des données incrémentielles en quasi temps réel. Cette architecture préserve la rentabilité du traitement par lots tout en répondant aux exigences métier de lecture, d'écriture et de traitement des données incrémentielles à l'échelle de la minute. Elle propose également des fonctionnalités pratiques, telles que l'opération UPSERT et la fonctionnalité Time Travel, pour élargir les scénarios d'utilisation. Cela contribue à réduire les coûts de calcul, de stockage et de migration des données, tout en améliorant l'expérience utilisateur.
Architecture en quasi temps réel de MaxCompute

La figure précédente illustre la nouvelle architecture permettant à MaxCompute de prendre efficacement en charge les scénarios métier hybrides mentionnés précédemment. Dans cette nouvelle architecture, MaxCompute prend en charge diverses sources de données, vous permettant d'importer facilement les données incrémentielles et complètes vers un système de stockage unifié à l'aide d'outils d'accès personnalisés. Le service de gestion des données en arrière-plan optimise automatiquement la structure de stockage des données. Un moteur de calcul unifié prend en charge le traitement des données incrémentielles en quasi temps réel et le traitement par lots de données à grande échelle. Un service de métadonnées unifié assure la gestion des transactions et la gestion des métadonnées de fichiers. Cette nouvelle architecture offre plusieurs avantages : elle résout les problèmes liés à l'utilisation exclusive d'un système de traitement par lots, tels que le calcul et le stockage redondants ainsi qu'une faible fraîcheur des données ; elle évite la consommation élevée de ressources des systèmes de traitement des données en temps réel ou de streaming ; elle élimine l'incohérence des données entre plusieurs ensembles de systèmes dans l'architecture Lambda ; et elle réduit le coût de stockage redondant des multiples copies de données ainsi que le coût de migration des données entre les systèmes.
L'architecture intégrée de bout en bout répond aux exigences métier en matière d'optimisation du calcul et du stockage pour le traitement des données incrémentielles et une fraîcheur à l'échelle de la minute, garantit l'efficacité globale du traitement par lots et réduit efficacement les coûts en ressources.
Fonctionnalités principales
L'entrepôt de données en quasi temps réel de MaxCompute propose principalement trois fonctionnalités clés : MC Delta Table, qui prend en charge l'importation de données à l'échelle de la minute ; des capacités de calcul incrémentiel qui équilibrent mieux la latence et le débit ; et MCQA2,0, récemment amélioré, qui permet des réponses aux requêtes à l'échelle de la seconde.

Les trois fonctionnalités principales sont les suivantes :
Format Delta Table : Prend en charge l'importation de données à l'échelle de la minute. Ce format de table utilise AliORC comme format de fichier sous-jacent, prend en charge la sémantique UPSERT et fournit des méthodes CDC (Change Data Capture) standard pour la lecture et l'écriture de données incrémentielles. Il s'appuie sur le service de stockage MaxCompute et le service de métadonnées global pour la gestion automatique des données.
Calcul incrémentiel : Sur la base du format Delta Table, MaxCompute a ajouté une série de capacités de calcul incrémentiel, telles que les vues matérialisées incrémentielles, Time Travel et Stream Table. De plus, les vues matérialisées incrémentielles et les tâches planifiées périodiquement offrent différentes fréquences de déclenchement, donnant aux utilisateurs plus d'options pour équilibrer la latence et le débit.
Accélération des requêtes MCQA2,0 : Il s'agit d'une mise à niveau complète de l'accélération des requêtes MaxCompute. Elle améliore la stabilité des performances grâce à un environnement fortement isolé et étend la prise en charge de MCQA 1.0, limitée aux requêtes DQL SELECT, à l'ensemble des fonctionnalités SQL, y compris DDL et DML. Les performances sont encore améliorées grâce à un cache de bout en bout et à des méthodes d'optimisation telles que le traitement asynchrone de plusieurs étapes dans le pipeline de soumission des jobs.
Plus important encore, ces nouvelles capacités sont construites et implémentées sur la base du moteur SQL original de MaxCompute. Les utilisateurs de MaxCompute peuvent analyser des volumes massifs de données avec une meilleure rentabilité sans modifier leurs habitudes de développement.
Avantages
Pour prendre en charge les scénarios métier et la migration des lacs de données open source Hudi et Iceberg, la nouvelle architecture propose certaines fonctionnalités communes. L'architecture nouvelle génération, développée en interne, offre également les avantages suivants en termes de fonctionnalités, de performances, de stabilité et d'intégration :
Propose une conception unifiée pour le stockage, les métadonnées et les moteurs de calcul afin de réaliser une intégration approfondie et efficace des moteurs. La nouvelle architecture offre les avantages suivants : faibles coûts de stockage, gestion efficace des fichiers de données et haute efficacité des requêtes. De plus, un grand nombre de règles d'optimisation pour les requêtes par lots de MaxCompute peuvent être réutilisées par Time Travel et les requêtes incrémentielles.
Fournit un ensemble complet de syntaxe SQL unifiée pour prendre en charge toutes les fonctionnalités de la nouvelle architecture. Cela facilite les opérations pour les utilisateurs.
Met à disposition des outils d'importation de données personnalisés et optimisés en profondeur pour prendre en charge divers scénarios métier complexes.
S'intègre de manière transparente aux scénarios métier existants de MaxCompute pour réduire les coûts de migration, de stockage et de calcul.
Prend en charge la gestion automatique des fichiers de données pour garantir une meilleure stabilité en lecture et en écriture, et permet l'optimisation automatique de l'efficacité du stockage et des coûts.
Est entièrement géré sur MaxCompute. Vous pouvez utiliser la nouvelle architecture dès sa mise à disposition, sans coûts d'accès supplémentaires. Il vous suffit de créer une table Delta pour utiliser les fonctionnalités de la nouvelle architecture.
Est une architecture développée en interne. Vous pouvez gérer le développement des données selon vos exigences métier sur la base de la nouvelle architecture.