web-dev-qa-db-fra.com

Comment devrais-je stocker des séries chronologiques à mongodb

Je dois créer une base de données de séries chronologiques et effectuer les tâches suivantes:

  • créer de nouvelles séries chronologiques
  • mettre à jour la série temporelle existante
  • querez une ou plusieurs séries chronologiques à la fois (par exemple toutes les séries chronologiques pour la même date, etc.)

Mongo est-il adapté à cela et si oui, comment dois-je structurer la base de données? (une série de la série = un document? Ou un document = une entrée de la série TIME, et tous ces documents forment la collection qui est la série de temps entière?)

Je suis un peu perdu ici et je trouve difficile de trouver des informations comme généralement Mongo est présentée comme très flexible afin que l'utilisateur ait le choix dans l'infrastructure.

Tout lien vers le tutoriel qui explique spécifiquement comment gérer les séries chronologiques à Mongo est très bienvenue.

Merci!

11
RockScience

Oui définitivement, la base de données NOSQL est une solution de meilleure qualité stockant les données de l'horaire que les SGDB traditionnels.

Oui MongoDB est exceptionnellement adapté à ce cas d'utilisation.

-Comment si vous structurez la base de données? Un document = une série de série TIME vs plusieurs séries chronologiques.

La réponse est de stocker dans un document plusieurs fois à plusieurs fois. Avoir moins de documents aidera la performance avec moins de lecture. Un tour est de préparer votre document avec les valeurs prédéfinies. Cela optimisera la mise à jour du document en évitant record de remplissage .

Voici un exemple de schéma sur la façon de stocker de manière optimale une heure de temps d'arrivée avec un intervalle d'une minute:

{
  timestamp_hour: ISODate("2015-07-02T23:00:00.000Z"),
  type: “memory_used”,
  values: {
    0: 999999,
    1: 1000000, 
    …,
    58: 0,
    59: 0
  }
}

Vous l'initiez avec 0 valeurs, puis les mises à jour seront optimisées. Les lectures sont optimisées car un document est lu au lieu de 60. Si vous avez besoin de stocker une journée de données ou un mois, vous procédez à la même technique, vous obtenez l'idée.

Voici le lien vers un didacticiel qui explique spécifiquement comment gérer des séries chronologiques à MongoDB du blog officiel de MongoDB: http://blog.mongodb.org/post/65517193370/schema-design-for-ft-Time-Series- Data-in-MongoDB

2
Naim Zard

J'ai trouvé cette question sur SO (- https://stackoverflow.com/questions/4814167/questions-time-series-data-relation-or-non ) où la puissance demande Comment stocker une série chronologique. Bien que sa question soit davantage basée sur l'utilisation d'une base de données NOSQL ou d'une SGBDM, vous semblez assez défini sur l'utilisation d'un DB NOSQL.

A également trouvé cet article sur " la fonction de base de données unique des données de la série temporelle " qui pourrait être utile.

J'espère que cela t'aides.

2
Aaron