2016-12-16 3 views
0

Ich muss die Daten der Zeitreihen speichern und habe spezielle Anforderungen. Nehmen wir an, ich möchte den Umsatz für mein Geschäft alle 5 Minuten speichern. Z. B eine ZeitreiheZeitseries-Datenbank mit gleichzeitiger Aktualisierung der historischen Daten

Store#1 
1/12–2016 10:00–10:05: 100$ 
1/12–2016 10:05–10:10: 50$ 
… 

Und ein anderer Zeitreihe

Store#2 
1/12–2016 10:00–10:05: 10$ 
1/12–2016 10:05–10:10: 30$ 
… 

erhalte ich eine Zufuhr von Daten zu sagen, wenn etwas verkauft wurde und in dem Laden. ZB

Store#1,10:02:40,5$ 

Für jedes solche Feed-Ereignis möchte ich die Datenbank aktualisieren. Für die Einspeisung Ereignis Beispiel oben würde es

db.series("Store#1").update(1/12–2016 10:00–10:05, add: 5$) 

sein ich diesen Feed-Ereignis bekommen können viel später dann 1/12-2016 10:05, so möchte ich in der Lage sein „historische Daten“ zu aktualisieren.

Es gibt viele TSDB's da draußen, aber es fällt mir schwer, eine zu finden, die meine Bedürfnisse erfüllt. Vor allem

  • In der Lage, historische Daten zu aktualisieren. Es scheint, als ob viele der TSDB sind sehr konzentriert auf neue Daten ist immer im Wesentlichen: jetzt, Endwert
  • In der Lage, atomar zu aktualisieren, oder mit einer Art von Sperren. Zwei Threads können ein Feed-Ereignis über einen Verkauf erhalten, der im gleichen 5-Minuten-Intervall gehört, und sie müssen in der Lage sein, den gespeicherten Wert hinzuzufügen, ohne zu riskieren, den anderen Thread zu überschreiben (abzubrechen).

Es wäre toll, wenn die TSDB von Java aus betrieben werden könnte.

Kann jemand auf eine TSDB hinweisen, die die Aktualisierung historischer Daten mit gleichzeitiger Steuerung unterstützt?

+0

Nicht etwas zu sehen hier, die nicht in einem Standard-RDBMS getan werden kann; SQL Server, Oracle, MySQL, Postgres; Treffen Sie Ihre Wahl. –

+0

Ich stimme zu, es kann mit einer allgemeinen Datenbank durchgeführt werden. Es gibt jedoch einen Grund, warum spezielle Datenbanken für Zeitreihendaten erstellt wurden. Sie sind (besser) besser in der Lage, diese Art von Daten zu verarbeiten - besser abzufragen, leichter zu wissen, die Struktur der Daten, Aggregation, einfache Integration mit UI-Tools (z. B. eine Grafik), usw. Aber wir werden definitiv darauf zurückgreifen Verwenden einer benutzerdefinierten Allzweckdatenbank, wenn keine TSDB vorhanden ist, die unseren Anforderungen entspricht. Ich erkunde einfach meine Möglichkeiten. –

Antwort

0

Die meisten Zeitreihen-Metrikdatenbanken sind wie Protokoll-orientiert und nicht für die Transaktionsnutzung gedacht. Die meisten bieten keine ACID-Konformität, für die es besser ist, MySQL und PostgreSQL-ähnliche Datenbanken zu verwenden.

Sidewinder nicht erfüllen Ihre Anforderung 2 heißt es Thread-sicher https://github.com/srotya/sidewinder

Verwandte Themen