Rawpixel.com - stock.adobe.com
DBaaS : Couchbase révise son architecture d’analytique en temps réel
Avec Capella Columnar Service, Couchbase revoit les fondamentaux de Couchbase Analytics en présentant un troisième moteur de stockage, cette fois-ci orienté colonnes. L’éditeur espère éliminer les jobs ETL et les latences des traitements pour (enfin) fournir un service d’analytique véritablement en temps réel.
En marge d’AWS re:Invent, Couchbase a dévoilé la préversion privée de Capella Columnar Service. Ce produit, pour l’instant uniquement disponible depuis AWS, est présenté comme un « service d’analytique en temps réel ».
Pour rappel, Couchbase est une base de données NoSQL en mémoire orientée documents, tandis que Capella est la plateforme DBaaS lancée par l’éditeur en 2020. Depuis lors, Couchbase développe son approche multimodèle.
L’éditeur propose depuis 2018 et la disponibilité de Couchbase Server 5.5 une fonction analytique. Il misait alors sur les traitements distribués, une indexation adaptée, un langage de requête proche du SQL standard (N1QL, ou SQL++) et sur le rapprochement des charges de travail analytiques (OLAP) et opérationnelles (OLTP).
Traditionnellement, cette séparation des charges opérationnelles et analytiques nécessite d’opérer des flux ETL pour extraire, charger et transformer d’un système à l’autre. Plusieurs éditeurs du monde relationnel, dont Oracle, SingleStore, et d’autres entendent proposer le traitement de ces charges sur une même plateforme.
L’analytique en temps réel, un défi continu pour Couchbase
Avec Couchbase Analytics et Capella Columstore service, la promesse est similaire : tenter de supprimer les flux ETL pour accélérer la visualisation et l’analyse des données en provenance de systèmes opérationnels.
Dans Analytics Couchbase a réuni sur un même cluster un « data service » pour traiter les données JSON des applications opérationnelles et un « analytics service » pour les charges de travail analytique, de data science et de BI.
Sous le capot, l’éditeur a historiquement mis en place une architecture shared-nothing massivement parallèle et un arbre B+ pour gérer le stockage des documents placés dans des sauts (vBucket) en mémoire ou sur disque.
Un seul cluster héberge des nœuds « data service » qui stockent des données opérationnelles et des nœuds analytiques. Un cluster peut être le dépôt d’une ou de plusieurs applications opérationnelles, tandis que les nœuds analytiques peuvent alimenter plusieurs systèmes : data warehouse, data lake, outils de data science, de BI. Les charges de travail sont isolées les unes des autres.
Par défaut, Couchbase assure une réplication des données intracluster à l’aide du protocole DCP (Database Change Protocol). Ce même mécanisme est utilisé pour mettre en place un système d’ingestion de données en continu.
Dans Couchbase Analytics, des « copies fantômes » des collections de données opérationnelles sont effectuées après avoir été créés et connectées aux nœuds Data Service. « Tout changement dans les données opérationnelles est reflété dans le service analytique en quasi-temps réel, en utilisant le protocole DCP. Cette ingestion continue de données permet aux requêtes opérationnelles et analytiques d’être exécutées simultanément sans s’influencer mutuellement », assure la documentation de l’éditeur.
Cela doit permettre d’atteindre le fameux précepte d’analytique en « presque temps réel ». Les clients de l’éditeur sont des banques et des industriels.
Pour autant, même avec Couchbase Analytics, ce n’est pas trivial et cela reste coûteux.
Depuis Couchbase Server 7, l’éditeur propose, en sus de son moteur de stockage CouchStore (le fameux gestionnaire de vBuckets), Magma. Ce moteur hybride (combinaison d’un arbre LSM et B-tree) est conçu pour gérer les collections de documents trop grandes pour tenir en mémoire. Au lieu de subdiviser les collections en lot de 100 Mo et de les stocker en mémoire, par défaut, Magma stocke les données par lot de 1 Go sur des SSD NVMe. L’éditeur a porté ce moteur sur sa DBaaS Capella.
Résultat, le système permet non plus de stocker au maximum 1,6 To de données par nœud, mais 16 To (5 To contre 3 To auparavant avec Couchbase Server) avec un ratio minimal entre la mémoire et les données de 1 %, contre 10 % auparavant. En clair, avec Magma, il est possible de stocker cinq téraoctets de données sur un nœud associé à 64 Go de mémoire vive.
Suivant le volume de données à traiter, avec Capella, il est possible de « mixer » des nœuds CouchStore et des nœuds Magma sur un même cluster.
Un troisième moteur de stockage, orienté colonnes
En lançant Capella Columnar Service, l’éditeur entend proposer un troisième moteur de stockage qui reprend l’architecture mixte de Magma combinant arbre LSM et B-tree, mais en adoptant une structure orientée colonnes. En clair, un magasin clé-valeur à deux dimensions.
De la sorte, l’éditeur entend gagner en performance d’écriture et en compression des données, mais surtout profiter du format en colonne, plus propice aux charges de travail analytique. Un moteur orienté colonnes « permet d’interroger uniquement les dimensions de données spécifiques souhaitées, plutôt que d’analyser chaque ligne et chaque colonne », rappelle Jeff Morris, vice-président marketing produit chez Couchbase. Ce nouveau moteur a d’abord été développé sur AWS et sépare le stockage des données dans S3, des calculs.
Là encore, l’éditeur combine nœuds Magma et nœuds Columnar sur un même cluster. L’éditeur ne précise pas s’il maintient son mécanisme de copies fantômes, il est fort probable que le protocole DCP assure la réplication des données des nœuds OLTP vers les nœuds OLAP.
Couchbase revoit également son moteur de calcul massivement parallèle. Dans son module Analytics, si les données sont ingérées en continu, les calculs de gros volumes de données peuvent prendre du temps et entraîner de la latence. Là, il promet des traitements en temps réel, « peu importe la taille du jeu de données ».
Pour connecter ce service DBaaS au monde extérieur, l’éditeur fournit un outil d’ingestion de données propulsé par Apache Kafka (Amazon MSK), qui permet, de surcroît, de transformer les données extraites au format JSON. Tout comme Oracle, Couchbase assure que l’unification au format JSON permet de réduire les coûts de possession des données.
Capella Columnar pourra aussi lire, importer et exporter des données stockées dans S3 au format JSON, Parquet, Avro et CSV. La prise en charge d’autres formats est prévue. Par exemple, ce module pourra permettre « l’analyse des données issues de Couchbase, S3, BSON, Cassandra, DynamoDB et MySQL dans la même instruction ».
Couchbase fournira des API (et un SDK) pour s’assurer l’enregistrement en continu des données opérationnelles et des connecteurs natifs pour Tableau et Power BI (ainsi que des options JDBC/ODBC).
Vague de l’IA générative oblige, Columnar Service doit être compatible avec Capella IQ, l’équivalent de GitHub Copilot pour générer des requêtes SQL++.
Une cible, MongoDB
En juin 2022, MongoDB avait présenté un index columnstore intégré dans sa DBaaS Atlas permettant, normalement, de mieux traiter les charges de travail analytiques depuis une base de données orientée documents.
Jeff MorrisVice-président marketing produit, Couchbase
Couchbase prétend que son approche est plus performante que celle de son concurrent. Selon Jeff Morris, MongoDB propose « une structure d’indexation dupliquée sur les données ». « Toutes les données sont toujours stockées dans WiredTiger, l’équivalent de Couchstore pour MongoDB. WiredTiger consomme 50 % de la mémoire disponible lorsqu’il est utilisé, ce qui est l’une des raisons pour lesquelles MongoDB ne monte pas à l’échelle aussi efficacement que Couchbase et Capella », vante-t-il.
En attendant, MongoDB est bien plus populaire commercialement que Couchbase. Au troisième trimestre fiscal 2024 terminé le 31 octobre, MongoDB revendique plus de 46 000 clients, dont plus de 29 500 sur Atlas, tandis que Couchbase évoque avoir conquis « plus de 30 % du Fortune 100 ». En clair, il se spécialise dans les charges de travail critiques quand MongoDB propulse un plus grand nombre d’applications.
Sur cette période, MongoDB a réalisé un chiffre d’affaires de 432,9 millions de dollars, en hausse de 30 % par rapport à l’année dernière, pour une perte nette de 29,3 millions de dollars. De son côté, Couchbase a engrangé un CA de 45,8 millions de dollars, en hausse de 19 % par rapport à l’année 2022, pour une perte nette de 16,2 millions de dollars. En revanche, les deux ennemis misent pleinement sur leur DBaaS. Si MongoDB profite déjà d’une base installée conséquente, Couchbase perçoit « des tendances de consommation robustes avec Capella ».