Powiązanie danych
Powiązanie danych to most między bazą danych projektu a widżetami na panelach IoT. Niemal każdą konfigurowalną właściwość widżetu — jego tytuł, wartości, kolory, serie wykresu, zakresy wskaźników — można dynamicznie zasilać danymi na żywo z TimescaleDB Twojego projektu. Ta strona wyjaśnia, jak podłączyć kolumny tabel do właściwości widżetów i jak dopracować dane za pomocą filtrów.
Szersze spojrzenie na to, jak dane docierają do bazy danych projektu, znajdziesz w przeglądzie obsługi danych.
Dwa sposoby powiązania danych
IronFlock Board Studio obsługuje dwa podstawowe tryby powiązania:
- Referencje wartości — wiążą pojedynczą wartość skalarną (najnowszy rekord z kolumny) z właściwością widżetu.
- Referencje tabel — wiążą cały zestaw wyników (wiele wierszy) z właściwością widżetu, która oczekuje tablicy.
Oba tryby obsługują filtrowanie i zapewniają aktualizacje w czasie rzeczywistym: gdy tylko nowe wiersze trafią do bazy danych projektu, powiązane właściwości widżetu aktualizują się automatycznie, bez odpytywania.
Referencje wartości
Większość pól konfiguracyjnych widżetu oczekuje pojedynczej wartości — tytułu, wyświetlanej liczby, koloru, etykiety statusu itp. W edytorze widżetów pod tymi polami znajduje się mały przełącznik wiązania danych.
Gdy włączysz przełącznik i klikniesz pole, otworzy się menu rozwijane z wszystkimi dostępnymi danymi w Twojej bazie danych projektu. Możesz:
- wybrać tabelę z bazy danych projektu;
- wybrać kolumnę w tej tabeli do powiązania z właściwością.
Przykład: możesz powiązać pole Tytuł widżetu wskaźnika z kolumną name w tabeli machine lub pole Wartość widżetu liczbowego z najnowszą wartością temperature w tabeli sensor_data.
Najnowsza wartość
Referencja wartości zawsze zapewnia najnowszą pojedynczą wartość z wybranej kolumny. “Najnowsza” jest określana przez obowiązkową kolumnę tsp — każda tabela w bazie danych projektu ma kolumnę znacznika czasu tsp, a wygrywa wiersz z największym tsp.
Ikona filtra
Gdy powiążesz kolumnę z właściwością widżetu, obok przełącznika danych pod polem pojawia się mała ikona filtra. Kliknięcie jej otwiera okno dialogowe, w którym można skonfigurować filtry, aby zawęzić, które wiersze są uwzględniane podczas wyodrębniania wartości. Zobacz Konfiguracja filtra poniżej.
Referencje tabel
Niektóre widżety oczekują tablicy wartości, a nie wartości skalarnej. Na przykład widżet wykresu potrzebuje wielu punktów (x, y) do narysowania linii, a widżet tabeli potrzebuje wielu wierszy.
W takich miejscach edytor widżetu wyświetla zarówno przycisk Dodaj obok etykiety pola (do ręcznego dodawania elementów tablicy), jak i przełącznik wiązania danych.
- Tryb ręczny: klikaj Dodaj, aby dodać elementy jeden po drugim, z wartościami statycznymi.
- Tryb wiązania danych: przełącz przełącznik, aby powiązać tablicę z tabelą. Po wybraniu tabeli każdy wiersz pasujący do Twoich kryteriów staje się jednym elementem w tablicy.
Ikona filtra obok przełącznika danych pozwala zawęzić, które wiersze są zwracane, aby pasowały do Twoich wymagań — zobacz Konfiguracja filtra.
Mapowanie kolumn na pola elementów tablicy
Gdy wiązanie referencji tabeli jest aktywne, konfigurujesz szablon pojedynczego elementu tablicy, używając wartości z podłączonej tabeli. W przypadku wykresu liniowego element potrzebuje wartości x i y — obie mogą być zasilane danymi, wybierając, która kolumna z powiązanej tabeli zasila każdą oś. Każdy wiersz w przefiltrowanym zestawie wyników jest renderowany na wykresie przy użyciu tego mapowania.
Ten sam wzorzec dotyczy każdego widżetu, który przyjmuje tablicę: wykresy słupkowe, tabele, listy, mapy cieplne itd.
Konfiguracja filtra
Filtry zawężają, które wiersze są używane do referencji wartości lub tabeli. Sekcje okna dialogowego działają w kolejności, w jakiej są wyświetlane — a jest to również kolejność, w jakiej stosuje je baza danych projektu:
1. Ruchome okno czasowe
Skonfiguruj, jak rekordy są filtrowane według czasu:
- Okno przewijane — pokazuj tylko wiersze z ostatnich N minut, godzin, dni itd., w stosunku do teraz.
- Niestandardowe okno czasowe — podaj nazwy parametru początkowego i parametru końcowego. Te nazwy parametrów są zasilane w czasie wykonywania przez widżet kalendarza, pozwalając użytkownikom końcowym wybrać zakres czasu na panelu.
2. Dowolne filtry kolumn
Dodaj dowolną liczbę filtrów na poziomie kolumny, używając jednego z następujących źródeł wartości:
- Wartości stałe — zakodowana na stałe wartość (np.
status = 'active'). - Parametry filtra — wartości zasilane przez URL z widżetów filtra.
- Segmenty ścieżki routingu — wartości wyodrębnione z URL bieżącej strony za pośrednictwem widżetów nawigacyjnych.
3. Agregacja
Domyślnie powiązanie zwraca surowe wiersze. Przełącz je na Agregowane w czasie, a baza danych projektu pogrupuje wybrane rekordy w przedziały czasowe — albo w kategorie — i zwróci jedną obliczoną wartość na grupę: średnie godzinowe, rekordy na maszynę, sumę dzisiejszego dnia.
Ponieważ filtry działają przed tym krokiem, to one decydują, które rekordy trafią do którego przedziału. Agregacja jest w całości opisana na osobnej stronie: zobacz Agregacja i downsampling.
4. Limit wierszy
Ustaw górny limit liczby wierszy zwracanych dla widżetu. Limit nie może przekraczać 3000 — ten pułap chroni zarówno przeglądarkę, jak i bazę danych projektu przed nadmiernie dużymi zestawami wyników.
W przypadku powiązania zagregowanego liczba zwracanych przedziałów wynika z czegoś innego (z szerokości widżetu albo z wybranego przez Ciebie interwału), a limit wierszy działa już tylko jako zabezpieczenie awaryjne.
Wszystkie sekcje łączą się: okno czasowe zawęża zakres czasu, filtry kolumn dalej dopracowują wiersze, agregacja redukuje je do jednej wartości na przedział, a limit wierszy ogranicza ostateczny wynik.
Wybieranie pól z kolumn JSON
Baza danych projektu obsługuje kolumny JSON dla danych niestrukturyzowanych lub półstrukturyzowanych — ładunki telemetryczne urządzeń, blobs konfiguracyjne, rekordy zagnieżdżone.
Gdy wiążesz kolumnę JSON z właściwością widżetu, pojawia się dodatkowe pole wejściowe umożliwiające określenie ścieżki do pola liścia w strukturze JSON. Ścieżka używa standardowej notacji obiektów JavaScript:
sensor.temperature
payload.items.0.value
metadata.location.cityWidżet wyodrębnia wartość pod tą ścieżką z każdego rekordu. Działa to zarówno dla referencji wartości (liść z najnowszego rekordu JSON), jak i dla referencji tabel (liść z każdego wiersza).
Podsumowanie
- Używaj referencji wartości dla właściwości skalarnych (tytuły, wartości, kolory) — otrzymasz najnowszą wartość według
tsp. - Używaj referencji tabel dla właściwości tablicowych (serie wykresów, tabele, listy) — mapując kolumny na pola elementów tablicy.
- Używaj okna dialogowego filtra, aby dopracować wiersze według okna czasowego, filtrów kolumn i limitu wierszy (maks. 3000).
- Przełącz powiązanie na zagregowane, gdy zamiast rekordów potrzebujesz obliczonych wartości — zobacz Agregacja i downsampling.
- Używaj notacji ścieżki JSON, aby zagłębić się w niestrukturyzowane kolumny JSON.