Downsampling szeregów czasowych zmniejsza rozmiar długoterminowych danych inteligentnego domu, zastępując gęste próbki historyczne mniejszą liczbą podsumowań o celowo niższej rozdzielczości czasowej.
Serwer domowy może przez lata gromadzić co kilka sekund dane o temperaturze, wilgotności, poborze energii, baterii, ruchu, jakości powietrza i parametrach urządzeń. Najnowsze surowe punkty są cenne podczas diagnozowania krótkiego cyklu pracy HVAC lub chwilowej utraty danych z urządzenia, ale starsza historia jest zwykle odpytywana w celu analizy trendów, porównań sezonowych i zakresów pracy. Downsampling zmienia przechowywane informacje, dzięki czemu pytania dotyczące długich okresów wymagają mniejszej liczby wierszy, mniej miejsca i mniejszej liczby operacji skanowania — bez udawania, że każde pierwotne zdarzenie nadal można odtworzyć.
Downsampling usuwa szczegóły historyczne, a nie tylko je kompresuje
Kompresja próbuje przedstawić te same obserwacje za pomocą mniejszej liczby bajtów, natomiast downsampling celowo zastępuje wiele obserwacji mniejszym zbiorem punktów pochodnych. Strumień próbek co pięć sekund może zostać przekształcony w przedziały jednominutowe lub piętnastominutowe, a każdy przedział może przechowywać statystyki takie jak średnia, minimum, maksimum, liczba próbek lub percentyl zamiast każdej pierwotnej próbki.
Krótko przechowywane surowe dane o wysokiej rozdzielczości i dłużej utrzymywane podsumowania o niższej precyzji to popularny wzorzec cyklu życia szeregów czasowych. Zmniejszenie zajętości pamięci wynika ze zmniejszenia liczby punktów, które pozostają w systemie, a nie ze znalezienia wydajniejszego kodowania niezmienionego zbioru danych.
To rozróżnienie ma znaczenie, gdy domownicy chcą wrócić do krótkiego zdarzenia po kilku miesiącach. Gdy odczyty co dziesięć sekund zostaną zredukowane do średniej godzinowej, żaden dekompresor nie odtworzy dokładnej sekwencji, która doprowadziła do uzyskania tej średniej.
Dlatego dobry projekt przechowywania danych powinien określać, jakie informacje są poświęcane. Jeśli surowe dane stanowią warstwę dochodzeniową, a dane po downsamplingu — warstwę trendów, użytkownicy wiedzą, na jakie pytania nadal można odpowiedzieć po wygaśnięciu okresu przechowywania danych o wysokiej rozdzielczości.
Szerokość przedziału określa najkrótsze zdarzenie, które może rozpoznać warstwa historyczna
Szerokość każdego okna agregacji określa, ile struktury czasowej zostanie zachowane. Przedział jednominutowy może nadal pokazywać krótkie cykle pracy urządzenia, które zniknęłyby w przedziale godzinowym, podczas gdy seria godzinowa jest znacznie mniejsza i często wystarcza do analizy rocznego zużycia energii lub trendów temperatury w pomieszczeniu.
Agregaty ciągłe materializują wartości w przedziałach czasowych, przez co granica przedziału staje się częścią modelu danych, a nie tylko kosmetycznym ustawieniem wykresu. Zmiana przedziału z jednominutowego na godzinowy zmienia to, które wahania mogą nadal pojawiać się jako oddzielne obserwacje historyczne.
Rozdzielczość należy dobrać do najkrótszego zdarzenia, które nadal będzie istotne po zakończeniu okresu przechowywania surowych danych. Otwieranie drzwi może wymagać wysokiej rozdzielczości tylko przez kilka dni, podczas gdy miesięczne planowanie zużycia energii może przez lata korzystać z podsumowań piętnastominutowych lub godzinowych.
Funkcja agregująca decyduje, który sygnał przetrwa w każdym oknie
Dwie serie po downsamplingu mogą korzystać z identycznej szerokości przedziałów, a mimo to zachowywać zupełnie inne informacje, ponieważ podsumowania w postaci średniej, maksimum, minimum, liczby próbek i ostatniej wartości odpowiadają na różne pytania. Uśrednianie temperatury w pomieszczeniu jest przydatne do analizy trendów komfortu, ale uśrednienie binarnego alarmu zalania może zamienić krytyczne zdarzenie trwające minutę w niewielką wartość ułamkową bez oczywistego znaczenia.
Wstępne obliczanie często używanych wyrażeń jako przechowywanych serii agregatów pokazuje, dlaczego samo podsumowanie musi odpowiadać późniejszemu zapytaniu. Gospodarstwo domowe monitorujące pracę HVAC może przechowywać średnią temperaturę, maksymalną temperaturę, liczbę cykli pracy i współczynnik wypełnienia zamiast ufać jednej średniej, która miałaby reprezentować każdy tryb działania.
Pary wartości minimalnej i maksymalnej zachowują odchylenia, które ukrywa średnia, liczby próbek zachowują częstotliwość zdarzeń, a podsumowania oparte na ostatniej wartości mogą zachować powoli zmieniający się stan. Właściwa kombinacja zależy od tego, czy przyszłe pytanie będzie dotyczyć poziomu, ekstremów, czasu trwania, zmian stanu czy występowania zdarzeń.
W tym miejscu może również powstać mylący pulpit nawigacyjny. Analiza ZimaSpace dotycząca tego, jak krótkie skoki znikają w średnich, ma bezpośrednie zastosowanie do telemetrii inteligentnego domu: pozornie spokojna średnia długoterminowa może współistnieć z krótkimi szczytami, które miały znaczenie operacyjne.
Drabina przechowywania zapewnia dużą gęstość najnowszych danych i niski koszt starszej historii
Downsampling jest najbardziej użyteczny, gdy łączy się go z warstwami przechowywania zamiast stosować jednolicie podczas przyjmowania danych. Bieżąca warstwa może przechowywać surowe punkty na potrzeby diagnostyki, warstwa pośrednia może przechowywać podsumowania minutowe do niedawnych porównań, a warstwa długoterminowa może zachowywać bardziej zgrubne statystyki do analiz sezonowych lub wieloletnich.
InfluxDB może przechowywać niezmodyfikowane dane o wysokiej rozdzielczości w zasobniku o krótkim czasie przechowywania oraz dane po downsamplingu w zasobniku o dłuższym czasie przechowywania. Rozdzielenie tych warstw zapobiega bezterminowemu przechowywaniu wszystkich surowych punktów tylko dlatego, że część historycznego trendu nadal jest wartościowa.
Warstwy ułatwiają również wyjaśnienie zasad usuwania danych. Wygaśnięcie surowych danych oznacza celową utratę rozdzielczości potrzebnej do analizy zdarzeń, natomiast zachowanie serii pochodnej chroni konkretne statystyki długoterminowe, które gospodarstwo domowe wybrało wcześniej.
Spóźnione dane i ponowne przetwarzanie wyznaczają granicę bezpieczeństwa
Agregacja nie zawsze jest operacją jednorazową, ponieważ czujniki mogą połączyć się ponownie po awarii, bramy sieciowe mogą późno przesłać buforowane próbki, a skorygowane metadane mogą zmienić przypisanie punktu do pomieszczenia lub urządzenia. Przedział po downsamplingu, który nigdy nie jest ponownie przeliczany po zamknięciu, może więc nie zgadzać się z surową historią, która ostatecznie napłynęła.
Systemy szeregów czasowych mogą odświeżać zmaterializowane przedziały czasowe, aby agregaty uwzględniały dane lub poprawki, które pojawiły się po pierwszym obliczeniu. Horyzont odświeżania powinien odpowiadać opóźnieniom realistycznie możliwym w lokalnym systemie, zamiast wymuszać ciągłe ponowne obliczanie wieloletniej, stabilnej historii.
Ponowne przetwarzanie nadal nie może przywrócić surowych punktów, które zostały już usunięte, chyba że istnieje ich inna kopia. Dlatego kolejność ma znaczenie: oblicz i zweryfikuj podsumowanie, uwzględnij okno opóźnień, a dopiero potem usuń dane o wysokiej rozdzielczości zgodnie z wybraną zasadą przechowywania.
Praktyczna granica ma charakter informacyjny, a nie wyłącznie techniczny. Downsampling jest skuteczny, gdy mniejszy zbiór historyczny nadal odpowiada na długoterminowe pytania gospodarstwa domowego; jest zbyt agresywny, gdy pierwsze przydatne pytanie po zakończeniu okresu przechowywania wymaga szczegółów, które archiwum celowo odrzuciło.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Czym jest stan Plexa i które jego elementy muszą być zachowane?
Trwały stan Plex to informacje, które zachowują konfigurację serwera po ponownym uruchomieniu i odbudowie; multimedia oraz tymczasowe dane transkodowania pełnią odrębne funkcje.

Jak Plex obsługuje uwierzytelnianie w sesjach lokalnych i zdalnych?
Uwierzytelnianie w Plex rozpoczyna się od tożsamości serwera i konta, a następnie lokalne lub zdalne ścieżki sieciowe określają dostępność oraz sposób nawiązywania bezpiecznego połączenia.

Dlaczego wyszukiwanie w Plex może zwalniać wraz ze wzrostem ilości danych biblioteki?
Sam wzrost biblioteki nie jest diagnozą. Zanim obwinisz rozmiar bazy danych, przetestuj kształt zapytań, indeksy, stan pamięci podręcznej, opóźnienia pamięci masowej i aktywność zapisu.

