Bonjour,
j'espère que ma question n'est pas hors de propos ici, j’aimerai pouvoir trouver des conseils car j'ai du mal à appréhender le problème du stockage de séries temporelles.
Je reçois quotidiennement des données sous forme de fichiers csv (7 colonnes et des dizaines de milliers de lignes). Les données contenues dans ces fichiers sont des relevés quotidiens de certains caractères de différents individus (ces individus sont identifiés par 2 ids et 5 variables sont relevés pour chaque individus).
Les données fluctuant chaque jour, je souhaiterai pouvoir conserver pour chaque date les valeurs de chaque variables afin de pouvoir analyser des séries temporelles.
Et c'est tout là mon problème, je n'ai pas la moindre idée de comment stocker efficacement des séries temporelles.
(Petite précision supplémentaire : Les individus observés d'un jour sur l'autre sont souvent les mêmes mais pas forcement, un individu X peut être observé le jour J sans ne jamais avoir été observé jusque là et sans être forcement observé les jours suivants. En plus d'une base observée assez régulièrement, de nouveaux individus apparaissent/disparaissent chaque jour.)
J'ai tout d'abord commencé par ce que je connais, une base de données relationnelle MySQL. J'ai essayé de normaliser mes données mais le schéma auquel j'ai abouti ne m'a pas vraiment convaincu, de plus le nombre élevé de jointures impactait fortement sur les performances.
Pour l'instant, vous bondirez peut être au plafond en me lisant, j'ai simplifié ma BD en créant une table pour chaque fichier, chaque table a pour nom la date des données. Cela me permet d’accéder aux données voulues (que je traite ensuite avec un logiciel de statistique) en requêtant les bonnes tables. En terme de "performance" ce n'est pas si mauvais sans pour autant que ce ne soit une bonne solution et j'ai l'impression de louper pas mal de choses notamment le NoSQL qui me fait un peu de l’œil.
Je souhaiterai donc explorer un peu cette piste. Pour l'instant j'ai déjà fait un bon nombre de lectures et j'en ai déduis que ce genre de solution pourrait être plus adaptée à mon problème qu'une BD relationnelle plus fortement structurée. J'ai plutôt bien compris les bases, néanmoins je n'ai pas suffisamment de connaissances pour pouvoir mieux cerner quel type de base de données NoSQL serait la plus adaptée. Il semble que la base orientée colonne, avec la possibilité de rajouter des colonnes dynamiquement (les nouvelles données quotidiennement par exemple) pourrait être une solution intéressante. Mais n'étant pas familier de cette technologie je n'arrive pas bien à y voir clair.
Avez vous déjà été confrontés à ce genre de problématique ? Avez des suggestions quant au type de BD NoSQL sur lequel je devrais me pencher pour mon problème ?
Merci d'avance !
Cordialement
Partager