TimescaleDB je bezplatný, open-source, výkonný databázový systém poháněný PostgreSQL. Jedná se o rozšíření PostgreSQL a je speciálně navrženo pro analýzu dat časových řad pomocí PostgreSQL. TimescaleDB je velmi podobný PostgreSQL, ale je optimalizován pro rychlost a rozsah. Obecně se relační databáze používají hlavně k ukládání dat a nemohou zpracovat velké objemy dat časových řad. V tom TimescaleDB exceluje; kombinuje rychlost NoSQL databází a snadnost použití relačních databází.
V tomto tutoriálu vám ukážeme, jak nainstalovat a používat TimescaleDB na Ubuntu 20.04.
Předpoklady
- Nové Ubuntu 20.04 VPS na cloudové platformě Atlantic.Net
- Heslo uživatele root nakonfigurované na vašem serveru
Krok 1 – Vytvoření cloudového serveru Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 20.04 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte ke svému serveru Ubuntu 20.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Krok 2 – Instalace databáze PostgreSQL
Nejprve budete muset nainstalovat server PostgreSQL na váš server. Ve výchozím nastavení je k dispozici ve standardním úložišti Ubuntu. Můžete jej snadno nainstalovat pomocí následujícího příkazu:
apt-get install postgresql postgresql-contrib -y
Po dokončení instalace se přihlaste do PostgreSQL a nastavte heslo postgres:
su - postgres psql -c "alter user postgres with password 'password'"
Dále ukončete prostředí PostgreSQL pomocí následujícího příkazu:
exit
Krok 3 – Instalace TimescaleDB
Nejprve nainstalujte všechny požadované závislosti pomocí následujícího příkazu:
apt-get install gnupg2 software-properties-common curl git unzip -y
Jakmile jsou všechny závislosti nainstalovány, přidejte úložiště TimescaleDB pomocí následujícího příkazu:
add-apt-repository ppa:timescale/timescaledb-ppa -y
Dále nainstalujte TimescaleDB spuštěním následujícího příkazu:
apt-get install timescaledb-postgresql-12 -y
Po instalaci TimescaleDB se doporučuje vyladit některé požadované konfigurace. Můžete to udělat pomocí následujícího příkazu:
timescaledb-tune --quiet --yes
Měli byste získat následující výstup:
Poté restartujte službu PostgreSQL, abyste použili změny konfigurace:
systemctl restart postgresql
Krok 4 – Vytvořte novou databázi a povolte TimescaleDB
V této sekci vytvoříme novou databázi, povolíme TimescaleDB a připojíme k ní databázi.
Nejprve se přihlaste do prostředí PostgreSQL a vytvořte novou databázi s názvem testdb pomocí následujícího příkazu:
su - postgres psql CREATE DATABASE testdb;
Dále změňte databázi na testdb a připojte ji k TimescaleDB pomocí následujícího příkazu:
\c testdb CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
Měli byste získat následující výstup:
Data časové řady jsou hypertabulky, které se skládají z mnoha jednotlivých tabulek. Vytvoříme běžnou SQL tabulku a poté ji převedeme na hypertabulku pomocí funkce create_hypertable.
Nejprve vytvořte tabulku pro ukládání informací o teplotě a vlhkosti.
CREATE TABLE conditions ( time TIMESTAMP WITH TIME ZONE NOT NULL, device_id TEXT, temperature NUMERIC, humidity NUMERIC );
Dále transformujte svou tabulku na hypertabulku pomocí následujícího příkazu:
SELECT create_hypertable('conditions', 'time');
Dále vložte některá data do hypertabulky pomocí následujícího příkazu:
INSERT INTO conditions(time, device_id, temperature, humidity) VALUES (NOW(), 'weather-pro-000000', 84.1, 84.1);
Dále vložte více řádků dat pomocí následujícího příkazu:
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);
Nyní můžete ověřit vložená data pomocí následujícího příkazu:
INSERT INTO conditions VALUES (NOW(), 'weather-pro-000002', 70.1, 50.1) RETURNING *;
Měli byste získat následující výstup:
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
Data z hypertabulky můžete také odstranit pomocí následujícího příkazu:
DELETE FROM conditions WHERE temperature > 80;
Jakmile jsou data smazána, můžete spustit příkaz VACUUM a získat tak místo, které je stále využívané daty, která byla smazána.
VACUUM conditions;
Závěr
Gratulujeme! Úspěšně jste nainstalovali a nakonfigurovali TimescaleDB na Ubuntu 20.04. Nyní můžete TimescaleDB používat k ukládání dat časových řad a používat tato data k vytváření grafů. Začněte s TimescaleDB na hostování VPS od Atlantic.Net!