wydanie systemu zarządzania bazą danych , przeznaczona do przechowywania i przetwarzania danych w postaci szeregów czasowych (próbki wartości parametrów w określonych odstępach czasu, zapis tworzy czas oraz zbiór odpowiadających tym czasom wartości). Taki sposób przechowywania jest optymalny dla zastosowań takich jak systemy monitorowania, platformy handlowe, systemy zbierania metryk i stanów czujników. Oferowane są narzędzia do integracji z projektem i .
Projekt TimescaleDB został zrealizowany jako rozszerzenie do PostgreSQL i na licencji Apache 2.0. z rozszerzonymi możliwościami jest dostarczana na podstawie osobnej, zastrzeżonej licencji (TSL), która zabrania wprowadzania zmian, zabrania używania kodu w zewnętrznych produktach i nie zezwala na darmowe korzystanie z baz danych w chmurze (database-as-a-service).
Wśród zmian w TimescaleDB 1.7:
- Dodano wsparcie dla integracji z systemami zarządzania bazą danych . Wsparcie dla PostgreSQL 9.6.x oraz 10.x zostało uznane za przestarzałe (w Timescale 2.0 pozostanie wsparcie tylko dla PostgreSQL 11+).
- Zmieniło się zachowanie zapytań z ciągłymi funkcjami agregacyjnymi (agregowanie danych przychodzących w czasie rzeczywistym). Takie zapytania teraz łączą zmaterializowane widoki z nowo przychodzącymi danymi, które jeszcze nie są zmaterializowane (wcześniej agregowanie obejmowało tylko już zmaterializowane dane). Nowe zachowanie dotyczy nowo tworzonych ciągłych agregacji, dla istniejących widoków należy ustawić parametr „timescaledb.materialized_only=false” za pomocą „ALTER VIEW”.
- Niektóre zaawansowane narzędzia do zarządzania cyklem życia danych, w tym możliwości dotyczące reorganizacji danych oraz obsługi polityk usuwania przestarzałych danych (pozwalają na przechowywanie tylko aktualnych danych oraz automatyczne usuwanie, agregowanie lub archiwizowanie przestarzałych rekordów), zostały przeniesione z wersji komercyjnej do wersji Community.
Przypomnijmy, że system zarządzania bazą danych TimescaleDB umożliwia stosowanie pełnoprawnych zapytań SQL do analizy zgromadzonych danych, łącząc wygodę pracy charakterystyczną dla relacyjnych baz danych z możliwością skalowania i funkcjami typowymi dla wyspecjalizowanych systemów NoSQL. Struktura przechowywania jest zoptymalizowana, aby zapewnić wysoką prędkość dodawania danych. Obsługiwane jest masowe dodawanie zestawów danych, korzystanie z indeksów w pamięci podręcznej, ładowanie historycznych wycinków danych z przeszłości oraz stosowanie transakcji.
Kluczową cechą TimescaleDB jest wsparcie dla automatycznego sekcjonowania (partyjonowania) strumienia danych. Strumień danych jest automatycznie rozdzielany na sekcjonowane tabele. Sekcje są tworzone w zależności od czasu (w każdej sekcji są przechowywane dane za określony przedział czasowy) lub w odniesieniu do dowolnego klucza (np. identyfikatora urządzenia, lokalizacji itp.). Aby zoptymalizować wydajność, sekcjonowane tabele mogą być rozdzielane na różne dyski.
Dla zapytań sekcjonowana baza danych wygląda jak jedna duża tabela, nazywana hipertabelą. Hipertabela jest wirtualnym przedstawieniem wielu oddzielnych tabel, w których gromadzone są przychodzące dane. Hipertabela jest używana nie tylko do zapytań i dodawania danych, ale także do takich operacji jak tworzenie indeksów i zmiana struktury („ALTER TABLE”), ukrywając przed deweloperem niskopoziomową, segmentowaną strukturę bazy danych. Do hipertabeli można stosować wszelkie funkcje agregujące, podzapytania, operacje łączenia (JOIN) z normalnymi tabelami i funkcje okienne.
Źródło: opennet.ru
