La com­mu­ni­ca­tion numérique donne lieu à des volumes de données toujours plus im­por­tants, comme en démontre le big data. Tra­vail­ler avec de telles données re­pré­sente une grande op­por­tu­nité pour les en­tre­prises. Mal­heu­reu­se­ment, plus une en­tre­prise dispose de données, plus elle aura des dif­fi­cul­tés à faire le tri dans les contextes, les schémas et les énoncés. Des solutions in­for­ma­tiques et des systèmes aidant les en­tre­prises à analyser ce flux d’in­for­ma­tions de­vien­nent alors in­dis­pen­sables. L’analyse des données avec des bases de données tra­di­tion­nelles ne suffit plus pour en­re­gis­trer, in­ter­ro­ger et fi­na­le­ment traiter des volumes im­por­tants de données. C’est lorsque les bases de données clas­siques at­teig­nent 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 col­lec­tions de données di­rec­te­ment dans la mémoire vive d’un ou plusieurs or­di­na­teur(s). L’uti­li­sa­tion 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 su­pé­rieure. Les données sont ainsi ra­pi­de­ment dis­po­nibles.

Remarque

La mémoire vive est également appelée RAM (Random Access Memory) et contient l’ensemble des pro­grammes et éléments de pro­grammes en cours d’exécution, ainsi que les données né­ces­saires. Lorsque vous éteignez votre or­di­na­teur, toutes les données stockées tem­po­rai­re­ment sont perdues.

Comment fonc­tion­nent les bases de données in memory ?

Les bases de données in memory (bases de données en mémoire) en­re­gistrent des volumes de données as­tro­no­miques et vous four­nis­sent un certain nombre de résultats d’analyse. Mais comment fonc­tionne exac­te­ment le stockage des mé­ga­don­nées et quelles tech­no­lo­gies per­met­tent d’en­re­gis­trer ces données ?

Voici comment vos données sont en­re­gis­trées

Dans le cadre de l’en­re­gis­tre­ment 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’en­re­gis­tre­ment 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 en­re­gis­trées, le clas­se­ment des données s’ef­fec­tue­rait 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 con­cer­nées sont at­tri­buées aux ca­té­go­ries cor­res­pon­dantes : 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 co­lumns­tore. En­re­gis­trer ensemble les données avec des valeurs iden­tiques permet de réduire le nombre de données exis­tantes. Il est ainsi possible de réduire l’espace de stockage et les délais de trans­mis­sion. La per­for­mance de l’analyse s’en trouve également améliorée puisque seules les colonnes né­ces­saires doivent être analysées. Cette forme d’analyse des données est appelée pro­jec­tion de colonne.

Les tech­no­lo­gies pour stocker des mé­ga­don­nées

Le concept de bases de données in memory n’est pas nouveau. Les prémices des tech­no­lo­gies de bases de données ont été posées dès le milieu des années 1980. Mais à cette époque, le faible niveau des in­fras­truc­tures in­for­ma­tiques ne per­met­tait pas de les im­plé­men­ter de façon efficace. Les ar­chi­tec­tures in­for­ma­tiques modernes telles que les data wa­re­houses, la tech­no­lo­gie 64 bits et les pro­ces­seurs mul­ti­cœurs ont fi­na­le­ment permis une mise en œuvre per­ti­nente de ce concept. La diffusion de cette tech­no­lo­gie a également été stimulée par des prix de plus en plus at­trac­tifs 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 col­lec­tent et com­pres­sent les données à partir de dif­fé­rentes sources, les sau­ve­gar­dent sur la durée et les préparent pour les analyses ;
  • La tech­no­lo­gie 64 bits a permis d’augmenter la mémoire vive jusqu’à une capacité de l’ordre du téraoctet. En con­sé­quence, les bases de données in memory se sont dé­ve­lop­pées pour contenir de grandes quantités de données.
  • Les pro­ces­seurs mul­ti­cœurs con­tien­nent quant à eux plusieurs cœurs dans une même puce, per­met­tant ainsi une meilleure per­for­mance de trai­te­ment ainsi qu’un débit de données plus important. Le débit de données indique la quantité nette de données trans­mises par unité de temps.

Quels sont les processus impliqués dans l’uti­li­sa­tion des bases de données in memory ?

En pratique, les bases de données in memory sont utilisées pour des processus ré­cur­rents et iden­tiques. Les bases de données in memory procèdent aux étapes suivantes pour sau­ve­gar­der 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’in­té­gra­lité de la base depuis le disque dur dans la mémoire vive. Par con­sé­quent, aucune donnée ne doit être chargée à nouveau pendant l’exécution de la base de données ;
  2. Re­cou­pe­ment des données modifiées : En cas de mo­di­fi­ca­tion des données, la base de données les compare à in­ter­valles réguliers ;
  3. Sau­ve­gardes des journaux de tran­sac­tions : Les mo­di­fi­ca­tions courantes sont con­sig­nées dans des journaux de tran­sac­tions. Si une erreur se produit, la base de données peut être restaurée à l’état avant l’ap­pa­ri­tion de l’erreur. Ce processus est nommé « roll­for­ward » ;
  4. Trai­te­ment des données : Le trai­te­ment des données est effectué de la même façon que pour une base de données tra­di­tion­nelle, selon le principe ACID (Atomicité, Cohérence, Isolation et Durabilité). Ce principe décrit les pro­prié­tés sou­hai­tées pour les processus dans les systèmes de gestion de base de données ;
  5. Du­pli­ca­tion de base de données : Pour la sau­ve­garde, le processus copie en per­ma­nence les données de la base de données sur un or­di­na­teur ou un serveur.

Avantages et in­con­vé­nients des bases de données in memory

Comme évoqué plus haut, les bases de données in memory per­met­tent d’atteindre une rapidité d’accès nettement su­pé­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 im­pos­sible de stocker du­ra­ble­ment des données sur la mémoire vive. Quels sont ses autres avantages et in­con­vé­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 su­pé­rieure due à l’uti­li­sa­tion de la mémoire vive. Ceci permet également d’analyser plus ra­pi­de­ment les données et de calculer de façon plus précise le délai d’in­ter­ro­ga­tion des données. Mais l’op­ti­mi­sa­tion de l’analyse des données ne repose pas uni­que­ment sur cette amé­lio­ra­tion de la vitesse. Les bases de données in memory per­met­tent l’analyse des données struc­tu­rées et non struc­tu­rées de n’importe quel système. Jusqu’à présent, les en­tre­prises et les solutions lo­gi­cielles devaient relever le défi de stocker et traiter d’im­por­tants volumes de données non struc­tu­rées, par exemple des textes, des images ou des fichiers audio ou vidéo.

En utilisant des in­fras­truc­tures dis­tri­buées, il est possible de stocker des données non struc­tu­rées dans une base de données in memory pendant que plusieurs unités de calcul (or­di­na­teurs, pro­ces­seurs, etc.) tra­vail­lent en parallèle à une tâche commune (pa­ral­lé­li­sa­tion) et la dis­tri­buent sur dif­fé­rentes grappes de serveurs. Il en résulte non seulement une plus grande capacité de stockage, mais aussi une plus grande vitesse de trai­te­ment et de trans­mis­sion des données non struc­tu­rées.

Bases de données in memory : les points faibles

L’uti­li­sa­tion de la mémoire vive permet, d’une part, d’augmenter la vitesse d’accès mais comporte, d’autre part, un in­con­vé­nient non né­gli­geable : le caractère tem­po­raire de l’en­re­gis­tre­ment des données. En cas de panne du système, toutes les données en­re­gis­trées de façon volatile seraient ainsi perdues. Les méthodes suivantes ont été dé­ve­lop­pées pour éviter cette perte de données :

  • Fichiers snapshot : La version actuelle de la base de données est en­re­gis­trée à certains moments, par exemple à in­ter­valles réguliers ou avant d’éteindre l’or­di­na­teur. Toutefois, cette mesure comporte un problème majeur puisque tous les fichiers ajoutés après le dernier snapshot effectué seront perdus ;
  • Sau­ve­garde des journaux de tran­sac­tions : L’en­re­gis­tre­ment des mo­di­fi­ca­tions dans des journaux de tran­sac­tions a été intégré comme méthode de sau­ve­garde au processus courant. Combiné à des snapshots réguliers, il est ainsi possible de retrouver le dernier état avant la panne ;
  • Du­pli­ca­tion : Pour la plupart d’entre elles, les bases de données in memory per­met­tent déjà de stocker une copie exacte de la base de données sur un disque dur tra­di­tion­nel. En cas de panne, il est ainsi possible de récupérer la base de données en­re­gis­tré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 à dis­po­si­tion pour con­sul­ta­tion, même après le re­dé­mar­rage du système.

La réduction de la quantité de RAM dis­po­nible pour l’or­di­na­teur constitue un autre in­con­vé­nient lié à l’uti­li­sa­tion d’une mémoire vive. L’uti­li­sa­tion d’une grille in­for­ma­tique en réseau peut toutefois permettre de con­tour­ner cette limite. Une grille in­for­ma­tique connecte ensemble de nombreux or­di­na­teurs et nécessite l’ins­tal­la­tion d’un logiciel spé­ci­fique sur l’or­di­na­teur. La mise en commun des capacités inu­ti­li­sées crée un or­di­na­teur virtuel hautement per­for­mant.

Base de données in memory vs. base de données tra­di­tion­nelle

De façon générale, on entend par base de données une col­lec­tion d’in­for­ma­tions qui est gé­né­ra­le­ment dis­po­nible élec­tro­ni­que­ment. Les bases de données tra­di­tion­nelles stockent uni­que­ment des données struc­tu­rées. On parle de données struc­tu­rées lorsqu’on organise des champs de données clai­re­ment 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 re­pré­sente un attribut différent et est nommé en con­sé­quence. Le mouvement du big data a poussé le modèle jusque dans ses re­tran­che­ments, puisqu’il a montré ses limites lorsqu’il s’agit d’en­re­gis­trer et de traiter de gros volumes de données. L’absence d’adap­ta­bi­lité de la base de données re­pré­sente un autre défi. Les données non struc­tu­ré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 tra­di­tion­nelle
Ca­rac­té­ris­tiques struc­tu­rées et non-struc­tu­rées struc­tu­rées
Vitesse d’accès en temps réel lente
Sécurité des données non sau­ve­gar­dées sau­ve­gar­dées

Quand une base de données in memory devient-elle per­ti­nente pour mon en­tre­prise ?

Main­te­nant que nous avons listé les avantages et les in­con­vé­nients des bases de données in memory et que nous les avons comparés di­rec­te­ment aux bases de données tra­di­tion­nelles, vous devez estimer quel système de gestion de base de données (DBMS) est adapté à votre en­tre­prise. Si vous tra­vail­lez 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 si­tua­tions.

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 ra­pi­de­ment et fré­quem­ment à vos données ;
  • vos systèmes ou serveurs de gestion de base de données existants sont sur­char­gés ;
  • la du­ra­bi­lité de vos données n’est pas votre prin­ci­pale priorité ;
  • vous êtes en mesure d’accepter une éven­tuelle 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’en­tre­prise doté de multiples fonc­tion­na­li­tés, les solutions de SAP et Oracle sont les plus courantes. Ces deux systèmes de gestion de base de données per­met­tent d’atteindre la meilleure per­for­mance possible. En quoi se dis­tin­guent-ils et comment sont-ils utilisés en pratique au sein d’une en­tre­prise ?

SAP HANA (High Per­for­mance Analytic Appliance)

La base de données in memory SAP HANA (High Per­for­mance Analytic Appliance) constitue un mélange entre solution ma­té­rielle et lo­gi­cielle. Le logiciel a été développé spé­cia­le­ment par SAP, mais l’équi­pe­ment matériel (serveur) provient de 10 fa­bri­cants dif­fé­rents. Con­trai­re­ment aux autres bases de données in memory, SAP HANA ne stocke pas les données de façon tem­po­raire, mais du­ra­ble­ment sur la mémoire vive et les sau­ve­garde à l’aide de journaux de tran­sac­tions.

Le trai­te­ment des tran­sac­tions et des analyses dans une base de données commune permet d’éditer les in­for­ma­tions en temps réel. SAP HANA peut aussi bien être utilisé sur le serveur de l’en­tre­prise que sur un Cloud, diminuant ainsi les exigences en matière d’in­fras­truc­tures in­for­ma­tiques dans l’en­tre­prise. Par ailleurs, les coûts pour les anciennes méthodes de gestion des données sont réduits et les décideurs disposent de pro­nos­tics actuels et précis.

Oracle TimesTen

La base de données d’Oracle a de nombreux points communs avec celle de SAP. Le trai­te­ment des données est lui aussi effectué en temps réel et l’uti­li­sa­tion peut avoir lieu à l’aide d’un serveur ou sous forme de service cloud. Con­trai­re­ment à la base de données de SAP, les parties ma­té­rielles et lo­gi­cielles d’Oracle TimesTen viennent di­rec­te­ment d’Oracle.

Il s’agit donc d’une ap­pli­ca­tion Oracle à part entière. L’avantage qui en résulte pour l’uti­li­sa­teur est qu’en cas d’erreur, il est possible d’agir en interne et l’en­tre­prise n’est pas dé­pen­dante de fa­bri­cants dif­fé­rents pour la partie ma­té­rielle et la partie lo­gi­cielle. Oracle ne stocke pas ex­clu­si­ve­ment les données col­lec­tées dans la mémoire vive : les données né­ces­si­tant une per­for­mance moindre peuvent être stockées sur le disque dur ou sur une clé USB

Com­pa­ra­tif des bases de données in memory : SAP HANA et Oracle TimesTen

Les fonc­tion­na­li­tés de SAP HANA et d’Oracle TimesTen sont en grande partie iden­tiques. Les prin­ci­paux avantages que ces deux bases de données offrent à votre en­tre­prise sont donc également iden­tiques :

  • un trai­te­ment des données accéléré ;
  • une nouvelle orien­ta­tion pour votre en­tre­prise grâce à des ap­pli­ca­tions no­va­trices ;
  • une plus grande agilité sous la forme d’une flexi­bi­lité, d’une activité et d’une adap­ta­bi­lité.

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

  Oracle TimesTen SAP HANA
Sau­ve­garde des données Stockage des données sur mémoire vive, disque dur et clé USB En­re­gis­tre­ment 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 dif­fé­rents fa­bri­cants
Ins­tal­la­tion Ma­té­rielle et service cloud Ma­té­rielle et service cloud
Base de données Base de données orientée colonne Base de données orientée colonne
En­ter­prise In­for­ma­tion Ma­na­ge­ment (EIM) Op­ti­mi­sa­tion des processus com­mer­ciaux à travers dif­fé­rentes fonc­tion­na­li­tés de gestion des données Op­ti­mi­sa­tion des processus com­mer­ciaux à travers dif­fé­rentes fonc­tion­na­li­tés de gestion des données
Big data Dé­ve­lop­pée pour le big data Dé­ve­lop­pée pour le big data
Trai­te­ment des données En temps réel En temps réel
Analyse de données Di­rec­te­ment dans la base de données Di­rec­te­ment dans la base de données

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

Avec l’avancée de la nu­mé­ri­sa­tion, les amas de données déjà colossaux con­ti­nue­ront d’augmenter. Par con­sé­quent, les dé­ve­lop­peurs de bases de données in memory doivent cons­tam­ment améliorer les systèmes actuels. Les tâches suivantes doivent être ac­com­plies :

  • collecter les données depuis un nombre croissant de sources ;
  • sim­pli­fier encore les in­fras­truc­tures in­for­ma­tiques et réduire les délais de réponse et d’analyse ;
  • obtenir d’autres in­for­ma­tions à partir de l’analyse des données et assister les en­tre­prises dans leur prise de décisions ;
  • dé­ve­lop­per des ap­pli­ca­tions toujours plus axées sur les défis de la trans­for­ma­tion numérique.

En résumé

Les bases de données in memory ont su s’imposer comme une tech­no­lo­gie efficace pour en­re­gis­trer et traiter des données dans la mémoire vive. Elles per­met­tent aux en­tre­prises 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 ef­fi­ca­ce­ment que si l’em­pla­ce­ment de stockage des données n’est pas ex­clu­si­ve­ment une base de données in memory et si des systèmes stan­dar­di­sés sont intégrés dans les processus pour assurer la sau­ve­garde.

Aller au menu principal