Bases de données in memory : enregistrer des mégadonnées

La communication numérique donne lieu à des volumes de données toujours plus importants, comme en démontre le big data. Travailler avec de telles données représente une grande opportunité pour les entreprises. Malheureusement, plus une entreprise dispose de données, plus elle aura des difficultés à faire le tri dans les contextes, les schémas et les énoncés. Des solutions informatiques et des systèmes aidant les entreprises à analyser ce flux d’informations deviennent alors indispensables. L’analyse des données avec des bases de données traditionnelles ne suffit plus pour enregistrer, interroger et finalement traiter des volumes importants de données. C’est lorsque les bases de données classiques atteignent leurs limites que les bases de données in memory entrent en jeu.

Qu’est-ce qu'une base de données in memory ?

Une base de données in memory (IMDB, base de données en mémoire) repose sur un système de gestion de base de données qui stocke ses collections de données directement dans la mémoire vive d’un ou plusieurs ordinateur(s). L’utilisation de la mémoire vive apporte un avantage décisif en offrant aux bases de données in memory une rapidité d’accès nettement supérieure. Les données sont ainsi rapidement disponibles.

Remarque

La mémoire vive est également appelée RAM (Random Access Memory) et contient l’ensemble des programmes et éléments de programmes en cours d’exécution, ainsi que les données nécessaires. Lorsque vous éteignez votre ordinateur, toutes les données stockées temporairement sont perdues.

Comment fonctionnent les bases de données in memory ?

Les bases de données in memory (bases de données en mémoire) enregistrent des volumes de données astronomiques et vous fournissent un certain nombre de résultats d’analyse. Mais comment fonctionne exactement le stockage des mégadonnées et quelles technologies permettent d’enregistrer ces données ?

Voici comment vos données sont enregistrées

Dans le cadre de l’enregistrement des données avec une base de données in memory, on distingue la gestion des données orientée colonne et la gestion des données orientée ligne, sachant que certains systèmes de base de données ont recours aux deux variantes d’enregistrement des données. Les bases de données orientées ligne classent les ensembles de données collectés de façon globale sur une ligne. Par exemple, si les valeurs « nom », « ville » et « pays » sont enregistrées, le classement des données s’effectuerait comme suit : Nom 1, Ville 1, Pays 1, Nom 2, Ville 2, Pays 2. Dans le cas d’un stockage orienté colonne, les données concernées sont attribuées aux catégories correspondantes : Nom 1, Nom 2, Ville 1, Ville 2, Pays 1, Pays 2.

Le format de stockage de la gestion des données orientée colonne s’appelle un format columnstore. Enregistrer ensemble les données avec des valeurs identiques permet de réduire le nombre de données existantes. Il est ainsi possible de réduire l’espace de stockage et les délais de transmission. La performance de l’analyse s’en trouve également améliorée puisque seules les colonnes nécessaires doivent être analysées. Cette forme d’analyse des données est appelée projection de colonne.

Les technologies pour stocker des mégadonnées

Le concept de bases de données in memory n’est pas nouveau. Les prémices des technologies de bases de données ont été posées dès le milieu des années 1980. Mais à cette époque, le faible niveau des infrastructures informatiques ne permettait pas de les implémenter de façon efficace. Les architectures informatiques modernes telles que les data warehouses, la technologie 64 bits et les processeurs multicœurs ont finalement permis une mise en œuvre pertinente de ce concept. La diffusion de cette technologie a également été stimulée par des prix de plus en plus attractifs pour la mémoire vive.

  • Dans la plupart des cas, les bases de données in memory disposent d’un data warehouse. Ces systèmes de base de données collectent et compressent les données à partir de différentes sources, les sauvegardent sur la durée et les préparent pour les analyses ;
  • La technologie 64 bits a permis d’augmenter la mémoire vive jusqu’à une capacité de l’ordre du téraoctet. En conséquence, les bases de données in memory se sont développées pour contenir de grandes quantités de données.
  • Les processeurs multicœurs contiennent quant à eux plusieurs cœurs dans une même puce, permettant ainsi une meilleure performance de traitement ainsi qu’un débit de données plus important. Le débit de données indique la quantité nette de données transmises par unité de temps.

Quels sont les processus impliqués dans l’utilisation des bases de données in memory ?

En pratique, les bases de données in memory sont utilisées pour des processus récurrents et identiques. Les bases de données in memory procèdent aux étapes suivantes pour sauvegarder les données :

  1. Démarrage de la base de données : Au démarrage de la base de données, le système charge l’intégralité de la base depuis le disque dur dans la mémoire vive. Par conséquent, aucune donnée ne doit être chargée à nouveau pendant l’exécution de la base de données ;
  2. Recoupement des données modifiées : En cas de modification des données, la base de données les compare à intervalles réguliers ;
  3. Sauvegardes des journaux de transactions : Les modifications courantes sont consignées dans des journaux de transactions. Si une erreur se produit, la base de données peut être restaurée à l’état avant l’apparition de l’erreur. Ce processus est nommé « rollforward » ;
  4. Traitement des données : Le traitement des données est effectué de la même façon que pour une base de données traditionnelle, selon le principe ACID (Atomicité, Cohérence, Isolation et Durabilité). Ce principe décrit les propriétés souhaitées pour les processus dans les systèmes de gestion de base de données ;
  5. Duplication de base de données : Pour la sauvegarde, le processus copie en permanence les données de la base de données sur un ordinateur ou un serveur.

Avantages et inconvénients des bases de données in memory

Comme évoqué plus haut, les bases de données in memory permettent d’atteindre une rapidité d’accès nettement supérieure grâce au stockage des données dans la mémoire vive. Le principal atout des bases de données in memory est également à l’origine de son principal défaut, puisqu’il est impossible de stocker durablement des données sur la mémoire vive. Quels sont ses autres avantages et inconvénients ?

Bases de données in memory : les points forts

Le principal avantage des bases de données in memory réside dans leur rapidité d’accès nettement supérieure due à l’utilisation de la mémoire vive. Ceci permet également d’analyser plus rapidement les données et de calculer de façon plus précise le délai d’interrogation des données. Mais l’optimisation de l’analyse des données ne repose pas uniquement sur cette amélioration de la vitesse. Les bases de données in memory permettent l’analyse des données structurées et non structurées de n’importe quel système. Jusqu’à présent, les entreprises et les solutions logicielles devaient relever le défi de stocker et traiter d’importants volumes de données non structurées, par exemple des textes, des images ou des fichiers audio ou vidéo.

En utilisant des infrastructures distribuées, il est possible de stocker des données non structurées dans une base de données in memory pendant que plusieurs unités de calcul (ordinateurs, processeurs, etc.) travaillent en parallèle à une tâche commune (parallélisation) et la distribuent sur différentes grappes de serveurs. Il en résulte non seulement une plus grande capacité de stockage, mais aussi une plus grande vitesse de traitement et de transmission des données non structurées.

Bases de données in memory : les points faibles

L’utilisation de la mémoire vive permet, d’une part, d’augmenter la vitesse d’accès mais comporte, d’autre part, un inconvénient non négligeable : le caractère temporaire de l’enregistrement des données. En cas de panne du système, toutes les données enregistrées de façon volatile seraient ainsi perdues. Les méthodes suivantes ont été développées pour éviter cette perte de données :

  • Fichiers snapshot : La version actuelle de la base de données est enregistrée à certains moments, par exemple à intervalles réguliers ou avant d’éteindre l’ordinateur. Toutefois, cette mesure comporte un problème majeur puisque tous les fichiers ajoutés après le dernier snapshot effectué seront perdus ;
  • Sauvegarde des journaux de transactions : L’enregistrement des modifications dans des journaux de transactions a été intégré comme méthode de sauvegarde au processus courant. Combiné à des snapshots réguliers, il est ainsi possible de retrouver le dernier état avant la panne ;
  • Duplication : Pour la plupart d’entre elles, les bases de données in memory permettent déjà de stocker une copie exacte de la base de données sur un disque dur traditionnel. En cas de panne, il est ainsi possible de récupérer la base de données enregistrée ;
  • Mémoire RAM non volatile : Lorsqu’une mémoire RAM est associée à une réserve d’énergie, elle est en mesure de mettre les données à disposition pour consultation, même après le redémarrage du système.

La réduction de la quantité de RAM disponible pour l’ordinateur constitue un autre inconvénient lié à l’utilisation d’une mémoire vive. L’utilisation d’une grille informatique en réseau peut toutefois permettre de contourner cette limite. Une grille informatique connecte ensemble de nombreux ordinateurs et nécessite l’installation d’un logiciel spécifique sur l’ordinateur. La mise en commun des capacités inutilisées crée un ordinateur virtuel hautement performant.

Base de données in memory vs. base de données traditionnelle

De façon générale, on entend par base de données une collection d’informations qui est généralement disponible électroniquement. Les bases de données traditionnelles stockent uniquement des données structurées. On parle de données structurées lorsqu’on organise des champs de données clairement définis en ensembles de données concrets. Les ensembles de données sont classés dans des tableaux où chaque champ de données représente un attribut différent et est nommé en conséquence. Le mouvement du big data a poussé le modèle jusque dans ses retranchements, puisqu’il a montré ses limites lorsqu’il s’agit d’enregistrer et de traiter de gros volumes de données. L’absence d’adaptabilité de la base de données représente un autre défi. Les données non structurées comme les images et les documents en langage naturel ne peuvent pas être stockées et analysées.

Base de données in memory

Base de données traditionnelle

Caractéristiques

structurées et non-structurées

structurées

Vitesse d’accès

en temps réel

lente

Sécurité des données

non sauvegardées

sauvegardées

Quand une base de données in memory devient-elle pertinente pour mon entreprise ?

Maintenant que nous avons listé les avantages et les inconvénients des bases de données in memory et que nous les avons comparés directement aux bases de données traditionnelles, vous devez estimer quel système de gestion de base de données (DBMS) est adapté à votre entreprise. Si vous travaillez avec le big data, il n’y a pas à hésiter : optez pour une base de données in memory. Mais une base de données utilisant la mémoire vive peut s’avérer un choix judicieux dans d’autres situations.

Une base de données in memory est un bon DBMS pour vos données si :

  • vous disposez d’un volume important de données ;
  • vous avez besoin d’accéder rapidement et fréquemment à vos données ;
  • vos systèmes ou serveurs de gestion de base de données existants sont surchargés ;
  • la durabilité de vos données n’est pas votre principale priorité ;
  • vous êtes en mesure d’accepter une éventuelle perte de vos données.

Exemples de bases de données in memory

SAP HANA et Oracle TimesTen font partie des bases de données in memory les plus connues. Si vous êtes à la recherche d’un logiciel d’entreprise doté de multiples fonctionnalités, les solutions de SAP et Oracle sont les plus courantes. Ces deux systèmes de gestion de base de données permettent d’atteindre la meilleure performance possible. En quoi se distinguent-ils et comment sont-ils utilisés en pratique au sein d’une entreprise ?

SAP HANA (High Performance Analytic Appliance)

La base de données in memory SAP HANA (High Performance Analytic Appliance) constitue un mélange entre solution matérielle et logicielle. Le logiciel a été développé spécialement par SAP, mais l’équipement matériel (serveur) provient de 10 fabricants différents. Contrairement aux autres bases de données in memory, SAP HANA ne stocke pas les données de façon temporaire, mais durablement sur la mémoire vive et les sauvegarde à l’aide de journaux de transactions.

Le traitement des transactions et des analyses dans une base de données commune permet d’éditer les informations en temps réel. SAP HANA peut aussi bien être utilisé sur le serveur de l’entreprise que sur un Cloud, diminuant ainsi les exigences en matière d’infrastructures informatiques dans l’entreprise. Par ailleurs, les coûts pour les anciennes méthodes de gestion des données sont réduits et les décideurs disposent de pronostics actuels et précis.

Oracle TimesTen

La base de données d’Oracle a de nombreux points communs avec celle de SAP. Le traitement des données est lui aussi effectué en temps réel et l’utilisation peut avoir lieu à l’aide d’un serveur ou sous forme de service cloud. Contrairement à la base de données de SAP, les parties matérielles et logicielles d’Oracle TimesTen viennent directement d’Oracle.

Il s’agit donc d’une application Oracle à part entière. L’avantage qui en résulte pour l’utilisateur est qu’en cas d’erreur, il est possible d’agir en interne et l’entreprise n’est pas dépendante de fabricants différents pour la partie matérielle et la partie logicielle. Oracle ne stocke pas exclusivement les données collectées dans la mémoire vive : les données nécessitant une performance moindre peuvent être stockées sur le disque dur ou sur une clé USB

Comparatif des bases de données in memory : SAP HANA et Oracle TimesTen

Les fonctionnalités de SAP HANA et d’Oracle TimesTen sont en grande partie identiques. Les principaux avantages que ces deux bases de données offrent à votre entreprise sont donc également identiques :

  • un traitement des données accéléré ;
  • une nouvelle orientation pour votre entreprise grâce à des applications novatrices ;
  • une plus grande agilité sous la forme d’une flexibilité, d’une activité et d’une adaptabilité.

Le tableau suivant résume les divergences et les points communs entre ces deux bases de données in memory :

Oracle TimesTen

SAP HANA

Sauvegarde des données

Stockage des données sur mémoire vive, disque dur et clé USB

Enregistrement durable des données dans la mémoire vive

Matériel et logiciel

Matériel et logiciel d’Oracle

Logiciel de SAP, matériel de différents fabricants

Installation

Matérielle et service cloud

Matérielle et service cloud

Base de données

Base de données orientée colonne

Base de données orientée colonne

Enterprise Information Management (EIM)

Optimisation des processus commerciaux à travers différentes fonctionnalités de gestion des données

Optimisation des processus commerciaux à travers différentes fonctionnalités de gestion des données

Big data

Développée pour le big data

Développée pour le big data

Traitement des données

En temps réel

En temps réel

Analyse de données

Directement dans la base de données

Directement dans la base de données

Défis avec les bases de données in memory

Avec l’avancée de la numérisation, les amas de données déjà colossaux continueront d’augmenter. Par conséquent, les développeurs de bases de données in memory doivent constamment améliorer les systèmes actuels. Les tâches suivantes doivent être accomplies :

  • collecter les données depuis un nombre croissant de sources ;
  • simplifier encore les infrastructures informatiques et réduire les délais de réponse et d’analyse ;
  • obtenir d’autres informations à partir de l’analyse des données et assister les entreprises dans leur prise de décisions ;
  • développer des applications toujours plus axées sur les défis de la transformation numérique.

En résumé

Les bases de données in memory ont su s’imposer comme une technologie efficace pour enregistrer et traiter des données dans la mémoire vive. Elles permettent aux entreprises devant gérer de gros volumes de données d’analyser le big data de façon aussi rapide que possible et d’y accéder à tout moment. Les bases de données in memory ne peuvent toutefois être utilisées efficacement que si l’emplacement de stockage des données n’est pas exclusivement une base de données in memory et si des systèmes standardisés sont intégrés dans les processus pour assurer la sauvegarde.