2014-05-10 7 views
0

Je suis en train de concevoir le back-end d'une start-up à partir de zéro. Nous grattons des séries chronologiques sur Internet. Nous raclons une grande quantité d'entiers chaque minute et les stockons dans des lignes avec un horodatage dans les fichiers csv.Stockage optimisé pour les grandes séries entières

Nous n'avons pas commencé à exploiter correctement les données car nous en sommes encore à la phase de conception. Je me demandais, quel serait le stockage optimal pour plusieurs années de séries entières? Nous avons commencé à chercher à le charger dans Postgres, mais sql est-il adapté pour exploiter des séries chronologiques?

Je me attendais à trouver un logiciel miracle qui serait optimal pour traiter ce genre de jeux de données spécifiques, et je serais heureux d'entendre toute suggestion qui permettrait:

  • stockage persistant grand
  • calcul de la moyenne/regroupement calcul, peut-être d'autres fonctions R comme
  • gain en performance, la puissance ou la facilité d'utilisation par rapport au stockage de base de données SQL brute
+0

Stack Dépassement spécifique exclut les questions concernant les recommandations logicielles. Je vais interpréter cette question comme traitant spécifiquement des séries temporelles dans Postgres. En tant que tel, pouvez-vous donner un peu plus de contexte sur ce que signifie «un grand nombre d'entiers», si vous travaillez avec des séries chronologiques régulières ou irrégulières, et plus d'informations sur le type d'étalement que vous pourriez souhaiter. "R" est l'un des logiciels statistiques les plus puissants, et il en fait beaucoup. –

+0

* Principalement régulier, mais il ne peut pas être supposé qu'il y a des trous de données et nous pouvons avoir à rééchantillonner. Actuellement, l'un des exploits est de faire le niveau moyen heure par heure dans une semaine, par exemple. Je ne recherche pas de recommandation de logiciel spécifique, il s'agit plutôt de demander si elle existe ou non en opensource. –

+0

Il n'y a pas beaucoup d'informations sur les données elles-mêmes, car c'est vraiment stupide. Chaque minute, environ 8000 nombres entiers circulent, c'est tout ce qu'il y a à faire. –

Répondre

3

Chaque minute, 8 000 valeurs se traduisent par 11,5 millions de valeurs par jour ou 4 milliards de lignes par an. C'est une lourde charge. Juste la charge d'insertion (en utilisant la méthode ACID-compatible) est visible - plus de 100 inserts par seconde. Ceci est certainement gérable dans les systèmes de base de données modernes, mais ce n'est pas trivial.

Il est très probable que Postgres puisse gérer cette charge, avec des index et des schémas de partitionnement appropriés. La nature exacte de cette solution dépend des requêtes que vous devez exécuter, mais Postgres possède les outils sous-jacents pour la prendre en charge.

Cependant, vos besoins sont (à mon avis) plus grands que Stack Overflow peut fournir. Si vous concevez un tel système, vous devriez demander l'aide d'un DBA Postgres professionnel. J'ajouterais que vous pourriez envisager d'examiner des solutions basées sur le cloud telles qu'Amazon Redshift ou Microsoft Azure, car celles-ci vous permettent d'adapter facilement le système «simplement» en payant plus d'argent.

+0

Nous n'avons pas d'exigences en temps réel sur la sortie, c'est pourquoi la tâche est actuellement traitée en chargeant tout dans une bête, en attendant un moment, obtenir des résultats. Mais il est clair que ce n'est pas une manière très professionnelle de travailler, et la charge d'insertion est un problème que nous connaissons –

Questions connexes