Le blog Big Data

Big Data : comment modéliser ses données pour pouvoir distribuer les traitements ? (3/3)

Logo Polytech' ToursA travers ce dernier billet du dossier « Modélisation & Big Data » nous allons aborder la notion de Row-key permettant la distribution des traitements. Vous pouvez également retrouver les précédents articles portant sur la modélisation avec Hbase et sur la dénormalisation.

La notion de Row-Key

Peut-être le plus grand bénéfice d’une base Clé–Valeur (Key-Value)  est que les enregistrements peuvent être partitionnés sur plusieurs serveurs.
Mais faut-il encore que la modélisation de la clé des enregistrements soit bien pensée. On parle de hachage de la clé pertinente

En effet, chaque enregistrement dans une base Hbase (Htable) est identifié par une RowKey, Clé d’enregistrement en français.

Suivant la façon dont on implémente cette RowKey on peut voir un fonctionnement se dégrader voir même être moins performant qu’un système SGBDR classique.

En effet, les identifiants des enregistrements d’une base mode colonne sont stockés dans l’ordre lexical. Ce qui veut dire que le système va stocker les informations dans l’ordre. La problématique est qu’il va remplir l’espace d’un serveur de façon contiguë pour ensuite basculer sur un autre et ainsi de suite. On aura donc un point chaud sur notre Système si on recherche un grand nombre d’enregistrements avec les mêmes débuts de Clé. Les clés proches les unes des autres seront toutes sur le même serveur. Si dans notre clé nous avons l’année et le mois en première position pour une table facture, on va être confronté à solliciter un seul serveur si on requête sur le dernier mois en cours. Il faut donc penser la clé de façon distribuée afin que le stockage se fasse de façon discontinue.

Il est donc primordial de savoir quelles recherches l’on va faire avant de modéliser cette fameuse RowKey.
Plusieurs techniques existent afin de modéliser tel ou tel type de besoin.

  • Stockage de la clé en Géo-hashing > Modélisation de base géographique
  • Stockage dans des tables d’indexes
  • Agrégation dans les clés composites
  • Chemins matérialisés (stockage du niveau de l’arbre à chaque feuille)

Ainsi, il n’y a pas de bonnes ou de mauvaise techniques, il faut réfléchir d’abord à quelles sont les informations que l’on va vouloir récupérer.
La modélisation doit être intimement liée à la recherche que l’on fera par la suite.

Exemple  : « je recherche tous les emails du mois dernier » ou « je recherche tous les emails de M. Dupond » feront l’objet d’une modélisation de tables différentes.

En conclusion, la modélisation Big Data doit être guidée avant tout par  une très bonne analyse des informations à traiter de la base.
La modélisation sur une  base mode colonne comme Hbase/Hadoop  doit être corrélée avec le besoin d’analyse des données lui-même. Ceci va s’en doute révolutionner le mode de collaboration entre les concepteurs, les Dba et les représentants métiers des entreprises. On devra partir de ce que l’on souhaite analyser avant de stocker les données.

La révolution technique est en marche, la révolution culturelle devra suivre le mouvement pour tirer la quintessence de cette technologie très prometteuse. Les services Marketing l’on d’ailleurs  bien comprit et sont à la pointe sur le sujet. D’autres secteurs devront certainement s’y intéresser prochainement comme l’analyse de risques, les traiders et autres organismes qui traitent un grand volume de données.

Christophe Cerqueira

Christophe Cerqueira

      Laisser un commentaire