InfluxDB: Pierwsze kroki
Jak zacząć z InfluxDB
👋 Witamy w dokumentacji Stackhero!
Stackhero oferuje gotowe do użycia rozwiązanie InfluxDB cloud, które zapewnia wiele korzyści, w tym:
- Nieograniczone zapisy, zapytania, pulpity, zadania i kubełki.
- Nieograniczony czas przechowywania danych.
- Nieograniczone transfery sieciowe i dyskowe.
- Bezproblemowe aktualizacje za pomocą jednego kliknięcia.
- Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.
Oszczędzaj czas i upraszczaj sobie życie: wystarczy 5 minut, aby wypróbować rozwiązanie InfluxDB cloud hosting Stackhero!
Zarządzanie użytkownikami InfluxDB
InfluxDB nie oferuje możliwości tworzenia i zarządzania użytkownikami bezpośrednio przez interfejs webowy. Na szczęście można do tych zadań użyć InfluxDB CLI.
Korzystanie z InfluxDB CLI
Możesz uzyskać dostęp do InfluxDB CLI za pomocą Dockera. Na przykład, uruchom następujące polecenie:
docker run -it -u 0 bitnami/influxdb:2.7.11 /bin/bash
Nie zapomnij zastąpić
2.7.11swoją wersją InfluxDB.
Po uruchomieniu kontenera, utwórz konfigurację. Pamiętaj, aby zastąpić <XXXXXX>.stackhero-network.com swoją rzeczywistą domeną InfluxDB:
influx config create \
--config-name adminConfig \
--active \
--username-password admin \
--org admin \
--host-url https://<XXXXXX>.stackhero-network.com
Po tym kroku będziesz mógł używać InfluxDB CLI. Na przykład, aby utworzyć nowego użytkownika, uruchom:
influx user create --name <user> --password <password>
Unikanie nasycenia przestrzeni dyskowej
InfluxDB jest zaprojektowany jako baza danych szeregów czasowych i często obsługuje dużą liczbę metryk. Ponieważ te bazy danych zazwyczaj nie usuwają danych automatycznie, Twoja baza danych może rosnąć w nieskończoność i zużywać całą dostępną przestrzeń dyskową.
Aby zapobiec nasyceniu przestrzeni dyskowej, InfluxDB oferuje dwa rozwiązania:
- Polityki retencji: Usuwanie danych starszych niż określona data. Na przykład, możesz zdecydować się na usunięcie danych starszych niż 365 dni.
- Redukcja danych: Zmniejszanie rozdzielczości danych w czasie. Na przykład, jeśli rejestrujesz temperaturę co sekundę, możesz chcieć:
- Przechowywać dane temperatury z rozdzielczością jednej sekundy przez ostatnie 5 minut.
- Utrzymywać maksymalne, minimalne i średnie temperatury z rozdzielczością jednej minuty przez ostatnie 24 godziny.
- Przechowywać maksymalne, minimalne i średnie temperatury z rozdzielczością jednej godziny dla starszych danych.
Korzystanie z polityk retencji pozwala przechowywać dane historyczne przez dłuższe okresy bez potrzeby terabajtów przestrzeni dyskowej. Więcej informacji o redukcji danych znajdziesz w oficjalnej dokumentacji.
Zarządzanie retencją danych InfluxDB
Domyślnie InfluxDB przechowuje dane bezterminowo. Chociaż takie zachowanie jest typowe dla tradycyjnych baz danych, nie jest idealne dla baz danych szeregów czasowych, które powinny usuwać przestarzałe dane, aby zapobiec niekontrolowanemu wzrostowi.
Na przykład, jeśli przechowujesz dane o napięciu baterii, mogą być one istotne tylko przez kilka dni, a nie lat. Aby uniknąć zapełnienia dysku, kluczowe jest ustawienie okresu retencji dla każdego z Twoich bucketów.
Aby skonfigurować retencję danych:
- Otwórz swój interfejs webowy InfluxDB.
- Kliknij „Data”, a następnie „Buckets”.
- Kliknij „Settings” obok bucketa, który chcesz skonfigurować.
- Wybierz „Delete data older than” i wybierz pożądany okres retencji.
Nie zapomnij, że dane starsze niż wybrany okres retencji zostaną trwale usunięte!
Pamiętaj, że dane w InfluxDB są zorganizowane w shardach. Shardy zawierające tylko przestarzałe dane są usuwane automatycznie, ale jeśli shard zawiera mieszankę przestarzałych i aktualnych danych, nie zostanie usunięty. Domyślnie, bez zdefiniowanej polityki retencji, shardy przechowują 7 dni danych. Oznacza to, że gdy ustawisz politykę retencji, prawie 7 dni przestarzałych danych może być nadal przechowywane wraz z Twoimi aktualnymi danymi. Więcej informacji o shardach znajdziesz w oficjalnej dokumentacji.
Wysyłanie danych z Node.js do InfluxDB
Znajdziesz przykłady, jak wysyłać dane z Node.js do usługi InfluxDB w tym repozytorium: https://github.com/stackhero-io/influxdbGettingStarted