TimescaleDB ist ein kostenloses, leistungsstarkes Open-Source-Datenbanksystem, das von PostgreSQL unterstützt wird. Es ist eine Erweiterung von PostgreSQL und wurde speziell entwickelt, um Zeitreihendaten mit PostgreSQL zu analysieren. TimescaleDB ist PostgreSQL sehr ähnlich, aber es ist auf Geschwindigkeit und Skalierbarkeit optimiert. Im Allgemeinen werden relationale Datenbanken hauptsächlich zum Speichern von Daten verwendet und können die großen Mengen an Zeitreihendaten nicht verarbeiten. Hier zeichnet sich TimescaleDB aus; Es kombiniert die Geschwindigkeit von NoSQL-Datenbanken und die Benutzerfreundlichkeit relationaler Datenbanken.
In diesem Tutorial zeigen wir Ihnen, wie Sie TimescaleDB unter Ubuntu 20.04 installieren und verwenden.
Voraussetzungen
- Ein frischer Ubuntu 20.04 VPS auf der Atlantic.Net Cloud Platform
- Ein auf Ihrem Server konfiguriertes Root-Passwort
Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 20.04 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 20.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
Schritt 2 – PostgreSQL-Datenbank installieren
Zuerst müssen Sie einen PostgreSQL-Server auf Ihrem Server installieren. Standardmäßig ist es im Ubuntu-Standard-Repository verfügbar. Sie können es einfach mit dem folgenden Befehl installieren:
apt-get install postgresql postgresql-contrib -y
Melden Sie sich nach Abschluss der Installation bei PostgreSQL an und legen Sie das Postgres-Passwort fest:
su - postgres psql -c "alter user postgres with password 'password'"
Verlassen Sie als Nächstes die PostgreSQL-Shell mit dem folgenden Befehl:
exit
Schritt 3 – TimescaleDB installieren
Installieren Sie zuerst alle erforderlichen Abhängigkeiten mit dem folgenden Befehl:
apt-get install gnupg2 software-properties-common curl git unzip -y
Sobald alle Abhängigkeiten installiert sind, fügen Sie das TimescaleDB-Repository mit dem folgenden Befehl hinzu:
add-apt-repository ppa:timescale/timescaledb-ppa -y
Installieren Sie als Nächstes TimescaleDB, indem Sie den folgenden Befehl ausführen:
apt-get install timescaledb-postgresql-12 -y
Sobald die TimescaleDB installiert ist, wird empfohlen, einige gewünschte Konfigurationen zu optimieren. Sie können dies mit dem folgenden Befehl tun:
timescaledb-tune --quiet --yes
Sie sollten die folgende Ausgabe erhalten:
Starten Sie als Nächstes den PostgreSQL-Dienst neu, um die Konfigurationsänderungen zu übernehmen:
systemctl restart postgresql
Schritt 4 – Erstellen Sie eine neue Datenbank und aktivieren Sie TimescaleDB
In diesem Abschnitt erstellen wir eine neue Datenbank, aktivieren TimescaleDB und verbinden die Datenbank damit.
Melden Sie sich zunächst bei der PostgreSQL-Shell an und erstellen Sie mit dem folgenden Befehl eine neue Datenbank namens testdb:
su - postgres psql CREATE DATABASE testdb;
Ändern Sie als Nächstes die Datenbank in testdb und verbinden Sie sie mit dem folgenden Befehl mit der TimescaleDB:
\c testdb CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
Sie sollten die folgende Ausgabe erhalten:
Die Zeitreihendaten sind Hypertabellen, die aus vielen einzelnen Tabellen bestehen. Wir erstellen eine reguläre SQL-Tabelle und wandeln sie dann über die Funktion create_hypertable.
in eine Hypertabelle umErstellen Sie zunächst eine Tabelle zum Speichern von Temperatur- und Feuchtigkeitsinformationen.
CREATE TABLE conditions ( time TIMESTAMP WITH TIME ZONE NOT NULL, device_id TEXT, temperature NUMERIC, humidity NUMERIC );
Als nächstes wandeln Sie Ihre Tabelle mit dem folgenden Befehl in eine Hypertabelle um:
SELECT create_hypertable('conditions', 'time');
Als nächstes fügen Sie mit dem folgenden Befehl einige Daten in die Hypertabelle ein:
INSERT INTO conditions(time, device_id, temperature, humidity) VALUES (NOW(), 'weather-pro-000000', 84.1, 84.1);
Fügen Sie als Nächstes mehrere Datenzeilen mit dem folgenden Befehl ein:
INSERT INTO conditions VALUES (NOW(), 'weather-pro-000002', 71.0, 51.0), (NOW(), 'weather-pro-000003', 70.5, 50.5), (NOW(), 'weather-pro-000004', 70.0, 50.2);
Sie können nun Ihre eingegebenen Daten mit folgendem Befehl überprüfen:
INSERT INTO conditions VALUES (NOW(), 'weather-pro-000002', 70.1, 50.1) RETURNING *;
Sie sollten die folgende Ausgabe erhalten:
time | device_id | temperature | humidity -------------------------------+--------------------+-------------+---------- 2020-12-03 15:48:24.329461+00 | weather-pro-000002 | 70.1 | 50.1 (1 row) INSERT 0 1
Sie können Daten auch mit dem folgenden Befehl aus der Hypertabelle löschen:
DELETE FROM conditions WHERE temperature > 80;
Sobald die Daten gelöscht sind, können Sie den VACUUM-Befehl ausführen, um Speicherplatz zurückzugewinnen, der noch von gelöschten Daten verwendet wird.
VACUUM conditions;
Schlussfolgerung
Herzliche Glückwünsche! Sie haben TimescaleDB erfolgreich auf Ubuntu 20.04 installiert und konfiguriert. Sie können jetzt TimescaleDB zum Speichern von Zeitreihendaten verwenden und diese Daten zum Erstellen von Diagrammen verwenden. Beginnen Sie mit TimescaleDB auf VPS-Hosting von Atlantic.Net!