Czy istnieje potężny system baz danych dla danych szeregów czasowych? [zamknięte]

W wielu projektach musimy przechowywać, agregować, Oceniać proste wartości pomiarowe. Jeden wiersz typowo składa się ze znacznika czasu, wartości i niektórych atrybutów do wartości. W niektórych aplikacjach chcielibyśmy zapisać 1000 wartości na sekundę i więcej. Wartości te muszą być nie tylko wstawiane, ale także usuwane w tym samym tempie, ponieważ żywotność wartości jest ograniczona do około roku (w różnych etapach agregacji nie przechowujemy 1000 / s przez cały rok).

Do tej pory mamy opracowano różne rozwiązania. Jeden oparty na Firebird, jeden na Oracle i jeden na jakimś własnym mechanizmie pamięci masowej. Ale żadne z tych rozwiązań nie jest bardzo satysfakcjonujące.

Oba rozwiązania RDBMS nie mogą obsłużyć żądanego przepływu danych. Poza tym aplikacje dostarczające wartości (np. sterowniki urządzeń) nie mogą być łatwo dołączane do baz danych, instrukcje insert są uciążliwe. I wreszcie, chociaż posiadanie interfejsu SQL do danych jest bardzo pożądane, typowe oceny są trudne do formułować w SQL i powoli w wykonaniu. Np. znajdź maksymalną wartość ze znacznikiem czasu na 15 minut dla wszystkich pomiarów w ostatnim miesiącu.

Samodzielne rozwiązanie może obsługiwać szybkość wstawiania i ma przyjazne dla klienta API do tego, ale nie ma to jak język zapytań i nie może być używane przez inne aplikacje za pośrednictwem jakiegoś standardowego interfejsu, np. do raportowania.

Najlepszym rozwiązaniem w moich snach byłby system baz danych, który:

  • posiada API dla bardzo szybkie wstawianie
  • jest w stanie usunąć / obciąć wartości z tą samą prędkością
  • zapewnia standardowy interfejs SQL ze szczególnym wsparciem dla typowych danych szeregów czasowych

Czy znasz jakąś bazę danych, która zbliża się do tych wymagań, czy podchodzisz do problemu w inny sposób?

Author: Tshepang, 2012-01-11

6 answers

Większość innych odpowiedzi wydaje się wspominać baz danych opartych na SQL. Bazy danych oparte na NoSQL są o wiele lepsze w tego typu sprawach.

Niektóre otwarte bazy szeregów czasowych:

Oparte na chmurze:

 37
Author: Joakim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-22 11:27:20

Influxdb:: open-source rozproszona baza danych szeregów czasowych bez zewnętrznych zależności.

 8
Author: A.N.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-12 20:18:15

Rozważmy IBM InformixDynamiczny serwer z TimeSeries DataBlade.

Jest to jednak ekstremalna szybkość transmisji danych, z którą pracujesz. (Nie całkiem do fizyki subatomowej w CERN, ale zmierza w tym ogólnym kierunku.)


Fair disclosure: pracuję dla IBM na Informix DBMS, choć nie na TimeSeries DataBlade per se.

 2
Author: Jonathan Leffler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-15 07:52:52
 1
Author: Mitch Wheat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-11 08:48:49

Możesz wypróbować HDF5 dla danych szeregów czasowych. Jest niezwykle szybki dla takich aplikacji.

 1
Author: shoonya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-02 13:54:20

Jak powiedział Jonathan Leffler, powinieneś wypróbować funkcję Informix Timeseries. Jest on zawarty we wszystkich wydaniach Informix bez dodatkowych opłat. Możesz spojrzeć na funkcje TimeSeries, które obsługuje:

IBM Informix Time series SQL routines

Możesz uzyskać dostęp do danych poprzez funkcje sql lub Interfejsy Wirtualnego widoku, możesz nawet wstawić do widoku.

 0
Author: GeorgeStone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-16 23:57:18