Hello,
Je suis actuellement entrain de tester un serveur MongoDB en Dev pour le travail. C'est la premiere fois que j'utilise ce type de BDD (necessaire pour l'instant, bien que dans quelques mois/1 ou 2 ans on basculera sur KDB je pense)
Voici mon jeu de données: chaque jour pendant dix ans, j'ai telecharge sous forme de dataframe (3 Dataframe par jour) les trades sur certains contrats de type future puis je les ai aggrege par intervale de cinq seconde.
La structure de mon dataframe est donc
Identifiant / Intervalle en question (ex 8:00:00-8:00:05) / Prix a l'ouverture de l'intervalle, Prix a la fermeture de l'intervalle, Volume, Nombre de Trades
Chaque jour j'ai donc 3 Dataframe d'environ 10 000 lignes. Pour repprésenter ca dans une base Mongo, j'ai procede de la maniere suivante : pour chaque future j'ai mis dans une meme table, un document ayant la structure suivante
{_id: genere automatiquement,Date,Nom_future,Timeseries[{Intervalle1, Prix ouv1, Prix Ferm1, Vol1,Trade1},{Intervalle2, Prix ouv2, Prix Ferm2, Vol2,Trade2},...,{Intervalle10000, Prix ouv10000, Prix Ferm10000, Vol10000,Trade10000}}
En premier lieu, pensez-vous que ma structure soit efficace/recommandée, ou quelles seraient les améliorations possibles ?
En deuxieme lieu, j'ai testé via le shell de mon client (robomong) db.getCollection('data').find({'date':2016-08-17'}) qui me retourne bien 3 documents (1 par future) parmis mes 75000 (2 5000 jours ouvrés et 3 contrats d'expiration differente par jour).. Seulement voila, pour me retourner les documents en question, la requette met 5 secondes ce qui me semble une eternite (je ping le serveur en 41ms)
Avez-vous une idee de la performance que je devrais avoir ? Y-a-t-il une grosse difference entre un serveur dev et un serveur prod en terme de performance? Je ne connais pas la structure exacte du serveur n'etant pas en IT et n'y ai pas acces physiquement
Merci d'avance pour votre aide, votre lecture,
Gnarlock