Quel SGBD In-Memory répond le mieux aux besoins de votre entreprise ?

Après avoir passé en revue les critères à prendre en compte, la rédaction revient sur les principales offres de SGBD In-Memory pour vous aider à déterminer laquelle convient le mieux à votre entreprise.

Après avoir passé en revue les critères à prendre en compte pour évaluer un SGBD In-Memory, la rédaction revient sur les principales offres pour vous aider à déterminer laquelle convient le mieux à votre entreprise.

Les systèmes de gestion de base de données (SGBD) de type In-Memory ont de plus en plus de succès et le choix proposé est vaste.

La principale caractéristique d'un SGBD In-Memory est sa capacité à stocker des structures entières de bases de données dans la mémoire. La présence des données en mémoire permet d'éviter les opérations d'E/S sur disque longues à traiter, ce qui entraîne une amélioration des performances et une réduction des temps de réponse.

On trouve des SGBD In-Memory de toutes sortes : des relationnels aux NoSQL, des technologies anciennes aux plus récentes, des fonctionnalités In-Memory ajoutées sur des systèmes relationnels (SGBDR) existants aux offres In-Memory entièrement nouvelles, et des systèmes complètement In-Memory aux combinaisons hybrides de stockage In-Memory et sur disque.

Les différents offres de SGBD In-Memory

L'un des SGBD relationnels connaissant la croissance la plus rapide sur le marché est SAP HANA, une plateforme applicative de gestion des données en mémoire qui combine traitements transactionnel et analytique en un seul système avec une seule copie des données.

A l'origine, le nom HANA était l'acronyme de High-performance ANalytic Appliance. SAP HANA s'exécute sur SUSE Linux et Red Hat Enterprise Linux. SAP commercialise HANA comme une appliance de base de données, équipée en matériel IBM ou Hewlett-Packard.

Elle est également commercialisée comme une offre de Cloud par des fournisseurs tels qu'Amazon et Microsoft Azure.

SAP HANA se décline en quatre éditions :

  • Edition de base - qui fournit les principaux services de base de données ;
  • Edition plateforme - qui offre en plus des moteurs prédictifs et de représentation graphique ;
  • Edition entreprise - qui comporte des fonctionnalités supplémentaires de « data provisioning » ;
  • Edition d'exécution - destinée à être utilisée avec les applications SAP.

Bien sûr, SAP cible ses clients déjà équipés d'applications SAP pour qu'ils adoptent HANA à la place du SGBD relationnel existant (généralement Oracle, DB2 ou SQL Server).

HANA permet aux applications SAP de s'exécuter avec une seule base de données en mémoire, utilisée à la fois pour les traitements transactionnel et analytique. Toutefois, SAP ne propose pas HANA seulement pour les applications SAP, mais comme un système destiné à remplacer entièrement les bases de données relationnelles classiques.

SAP HANA prend en charge l'analytique en temps réel à grande échelle et sur des données très diverses. Il combine des fonctionnalités de base de données, de traitement des données et de serveur d'applications, qui s'exécutent toutes dans la mémoire, sur un seul jeu de données et une seule plateforme.

SAP HANA vous permet de réduire l'encombrement des données et de simplifier leur traitement et les opérations. Il prend en charge la mutualisation, donne la possibilité de stocker les données actives (« warm », ou « tièdes ») sur disque et offre un choix de modèles et partenaires de déploiement.

Vous pouvez déployer SAP HANA sur site, dans le Cloud, ou les deux dans une configuration hybride.

Si vous voulez créer et prendre en charge des applications d'entreprise opérationnelles nécessitant un accès rapide aux données, SAP HANA est un bon SGBD relationnel actuel. Il vaut la peine que l'on s'y intéresse pour les mises en œuvre ERP, ainsi que pour les nouvelles applications maison.

Il existe un autre SGBD In-Memory relationnel appelé TimesTen, qui a été racheté par Oracle en juin 2005.

Oracle TimesTen In-Memory Database est un SGBDR complet qui s'exécute dans la couche applicative, en stockant toutes les données dans la mémoire principale. Il prend en charge la sémantique complète des transactions SQL et comprend des fonctionnalités OCI, Pro*C et PL/SQL pour la compatibilité avec Oracle Database.

Oracle TimesTen In-Memory Database est intégré à Oracle Exalytics In-Memory Machine, ce qui permet aux utilisateurs d'Oracle Business Intelligence Standard Edition d'exécuter rapidement des requêtes analytiques complexes.

Outre la version autonome de TimesTen, des fonctionnalités In-Memory (présentées un peu plus loin dans cet article) sont offertes dans Oracle Database 12c.

VoltDB est un autre SGBD relationnel In-Memory, développé par une équipe que dirige Michael Stonebraker, l'un des pionniers des systèmes relationnels et l'un des fondateurs d'Ingres.

VoltDB est un système open source qui propose une version communautaire et une licence commerciale. Cette dernière offre des fonctionnalités de haute disponibilité et de reprise après désastre, ainsi qu'un support technique.

Les données sont conservées en mémoire pour les calculs et l'analyse, mais toutes les transactions sont stockées de manière durable sur disque. VoltDB est compatible avec le concept ACID (atomicité, cohérence, isolation, durabilité) et assure une réplication à tolérance de panne en répliquant les partitions sur plusieurs serveurs ; ainsi, en cas de panne d'un serveur, les données sont toujours présentes dans une autre partition.

Les développeurs des applications VoltDB utilisent Java, PHP ou C# dans SQL, et les procédures stockées dans Java sont également prises en charge. Les transferts de données vers VoltDB sont simples, grâce aux outils d'importation et aux connecteurs prêts à l'emploi fournis pour faciliter l'ingestion et l'exportation des données.

Mais les SGBD In-Memory ne sont pas tous relationnels. Ainsi, Aerospike est un système open source de gestion de base de données NoSQL et In-Memory. Ce magasin de données clé-valeur permet aux développeurs de créer des expériences utilisateur personnalisées et des applications axées sur les données qui montent en puissance pour traiter des millions de transactions par seconde avec des temps de réponse inférieurs à la milliseconde.

Aerospike s'exécute sur Linux et permet la prise en charge d'un grand nombre de distributions Linux différentes, notamment les binaires précompilés pour Red Hat, Ubuntu, CentOS et Debian.

Aerospike est disponible en open source, mais une licence commerciale est également proposée. Cette édition commerciale offre en plus des fonctionnalités telles que la réplication entre datacenters (pour la synchronisation de plusieurs clusters), un redémarrage rapide et une sécurité renforcée.

L'une des fonctionnalités les plus marquantes d'Aerospike est qu'il simplifie le travail des programmeurs pour créer et faire fonctionner de nouvelles applications à grande échelle. En effet, les tâches d'administration préalables sont réduites au minimum.

Les autres cas d'utilisation d'Aerospike sont la mise en cache des données (par exemple pour stocker les informations sur les sessions ou les profils des utilisateurs) et la personnalisation de l'expérience utilisateur sur les portails Web et dans les applications mobiles.

Prise en charge des fonctionnalités In-Memory par les systèmes relationnels

Vous n'avez pas besoin d'installer un SGBD dernier cri pour bénéficier du traitement des bases de données In-Memory. Les trois principaux fournisseurs de systèmes relationnels, à savoir Oracle, IBM et Microsoft, offrent tous des fonctionnalités In-Memory dans les versions les plus récentes de leurs SGBD.

Ainsi, Oracle Database 12c comprend une nouvelle technologie de base de données optimisée en mémoire qui accélère le traitement analytique. Oracle Database In-Memory est un format de données In-Memory en colonnes conçu pour traiter le code SQL rapidement sans perte de fonctionnalité.

Oracle Database In-Memory se déploie facilement avec n'importe quelle application compatible Oracle Database sans nécessiter aucune modification de l'application. Cette fonctionnalité est totalement intégrée aux technologies scale-up, scale-out, de hiérarchisation du stockage, de disponibilité et de sécurité d'Oracle Database, associant les avantages des systèmes relationnels à la vitesse des SGBD In-Memory.

IBM DB2 10.5 avec BLU Acceleration combine également une série d'innovations mises au point par les laboratoires de recherche et développement d'IBM, dont des fonctionnalités In-Memory. En accélérant le traitement des requêtes portant sur les données opérationnelles et historiques, BLU Acceleration permet d'améliorer le processus de collecte analytique.

IBM DB2 avec BLU Acceleration offre plus que des fonctionnalités In-Memory, avec notamment une fonctionnalité relationnelle de stockage en colonnes qui accélère le traitement analytique et une fonction de compression exploitable qui permet d'utiliser jusqu'à dix fois moins d'espace de stockage.

Ce produit met également en oeuvre le modèle SIMD (Single Instruction Multiple Data) et une technologie appelée « data-skipping » qui améliore les performances des requêtes.

Microsoft SQL Server 2014 offre aussi des fonctionnalités In-Memory, en fournissant un moteur de base de données optimisé en mémoire et intégré au moteur SQL Server principal.

Pour un traitement OLTP In-Memory, les tables doivent être définies comme étant optimisées en mémoire. Ces tables sont entièrement conformes au concept ACID et le système y accède en utilisant Transact-SQL de la même manière que pour les tables sur disque.

Requêtes et transactions peuvent ainsi référencer et mettre à jour les données à la fois dans les tables optimisées en mémoire et les tables sur disque. Le moteur OLTP In-Memory de SQL Server est conçu pour prendre en charge de très nombreux accès simultanés.

Tous les fournisseurs de SGBD relationnels revendiquent des gains de performances importants grâce à l'utilisation des fonctionnalités In-Memory de leurs systèmes, ces améliorations allant de quelques points de pourcentage à une multiplication par 20 et plus. Bien sûr, les performances obtenues varient selon la mise en oeuvre, l'utilisation et d'autres critères.

SGBD NewSQL

Outre les SGBD In-Memory, il existe des systèmes de base de données NewSQL qui prennent en charge les architectures les plus récentes et combinent fonctionnalités In-Memory, gestion des bases de données dans le Cloud et/ou distribution hautement évolutive.

Si la définition d'un SGBD NewSQL ne répond pas à des règles absolues, on peut ranger dans cette catégorie NuoDB.

NuoDB est un SGBD distribué à l'échelle du Web qui offre une mise en oeuvre SQL complète et de véritables transactions ACID. Il est conçu pour les datacenters actuels, mais peut également être utilisé comme base de données scale-out dans le Cloud.

Les SGBD NewSQL sont conçus sans toutes les opérations de gestion et les fonctionnalités intégrées aux SGBD plus anciens développés dans les années 1970. L'avantage de ces nouveaux SGBDR élaborés au 21e siècle est qu'ils n'ont pas à s'embarrasser d'un code et d'une architecture hérités.

Faire le bon choix

Les bases de données In-Memory sont de plus en plus adoptées pour améliorer l'efficacité du traitement analytique.

Dans de nombreux cas, les mêmes SGBD In-Memory qui permettent d'accélérer les requêtes analytiques peuvent aussi améliorer la rapidité des transactions opérationnelles.

Mais force est de constater qu'un grand nombre de variables et d'options entrent en jeu lors du choix d'un SGBD In-Memory. Pour les applications qui exigent des performances élevées, les SGBD In-Memory constituent le meilleur choix car ils offrent des temps de réponse rapides.

Cependant, n'oubliez pas de calculer les coûts supplémentaires, pas seulement en termes de matériel, mais par exemple les frais liés à la prise en charge d'un nouveau SGBD ainsi que tous les coûts associés.

 

Pour approfondir sur Base de données