Rychlý Start: Vytvoření skupiny serverů Citus () v Azure Portal
Azure Database for PostgreSQL je spravovaná služba, pomocí které spouštíte, spravujete a škálujete vysoce dostupné databáze PostgreSQL v cloudu. V tomto rychlém startu se dozvíte, jak pomocí Azure Portal vytvořit skupinu serverů Azure Database for PostgreSQL-Citus (škálovatelný škálování). Budete zkoumat distribuovaná data: horizontálního dělení tabulky napříč uzly, ingestování ukázkových dat a spouštění dotazů, které se spouštějí na více uzlech.
Vytvoření skupiny serverů Hyperscale (Citus)
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Přihlášení k webu Azure Portal
Přihlaste se k webu Azure Portal.
Server Azure Database for PostgreSQL vytvoříte pomocí tohoto postupu:
Klikněte na Vytvořit prostředek v levém horním rohu Azure Portal.
Na stránce Nový vyberte Databáze a na stránce Databáze vyberte Azure Database for PostgreSQL.
U možnosti nasazení klikněte na tlačítko Vytvořit v části Hyperscale (Citus) serveru.
Do formuláře podrobností o novém serveru zadejte následující informace:
- Skupina prostředků: Klikněte na odkaz Vytvořit nový pod textovým polem pro toto pole. Zadejte název, například myresourcegroup.
- Název skupiny serverů: Zadejte jedinečný název nové skupiny serverů, který se použije také pro subdoménu serveru.
- Uživatelské jméno správce: V současné době musí být hodnota citus a nelze ji změnit.
- Heslo: Musí mít alespoň osm znaků a musí obsahovat znaky ze tří z následujících kategorií – velká písmena anglické abecedy, malá písmena anglické abecedy, číslice (0–9) a jiné než alfanumerické znaky (!, $, #, % atd.).
- Umístění: Použijte umístění, které je vašim uživatelům nejblíže, a podejte jim nejrychlejší přístup k datům.
Důležité
Heslo správce serveru, které tady zadáte, se vyžaduje pro přihlášení k serveru a jeho databázím. Tyto informace si zapamatujte nebo poznamenejte pro pozdější použití.
Klikněte na Konfigurovat skupinu serverů. Nastavení v této části ponechte beze změny a klikněte na Uložit.
Klikněte na Další: > v dolní části obrazovky.
Na kartě Sítě vyberte Povolit veřejný přístup ze služeb a prostředků Azure k této skupině serverů. Pak vyberte + Přidat aktuální IP adresu klienta.

Poznámka
Server Azure PostgreSQL komunikuje přes port 5432. Pokud se pokoušíte připojit z podnikové sítě, nemusí být odchozí provoz přes port 5432 bránou firewall vaší sítě povolený. Pokud ano, nemůžete se připojit ke svému clusteru Hyperscale (Citus), dokud vaše IT oddělení otevře port 5432.
Klikněte na Zkontrolovat a vytvořit a pak na Vytvořit, aby se server zř vytvořil. Zřizování trvá několik minut.
Stránka se přesměruje na monitorování nasazení. Když se živý stav změní z Vaše nasazení probíhá na Vaše nasazení je dokončeno, klikněte na položku nabídky Výstupy na levé straně stránky.
Stránka výstupů bude obsahovat název hostitele koordinátora s tlačítkem vedle něj pro zkopírování hodnoty do schránky. Tyto informace si zaznamenate pro pozdější použití.
Připojení k databázi pomocí nástroje psql
Při vytváření vašeho Azure Database for PostgreSQL se vytvoří výchozí databáze s názvem citus. Pro připojení k databázovému serveru potřebujete připojovací řetězec a heslo správce.
Získejte připojovací řetězec. Na stránce skupiny serverů klikněte na položku nabídky Připojovací řetězce. (Je pod Nastavení.) Vyhledejte řetězec označený jako psql. Bude ve tvaru :
psql "host=hostname.postgres.database.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require"Zkopírujte řetězec . {vaše heslo} budete muset nahradit heslem správce, _ které jste zvolili dříve. Systém neukládá heslo ve formátu prostého textu, takže ho za vás nemůže zobrazit v připojovacím řetězci.
Otevřete okno terminálu na místním počítači.
Po zobrazení výzvy se připojte k Azure Database for PostgreSQL serveru pomocí nástroje psql. Předejte připojovací řetězec do uvozovek a ujistěte se, že obsahuje vaše heslo:
psql "host=..."Například následující příkaz se připojí k koordinátorovi uzlu skupiny serverů mydemoserver:
psql "host=mydemoserver-c.postgres.database.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require"
Vytváření a distribuce tabulek
Po připojení k uzlu koordinátora s jednoduchým škálováním pomocí psql můžete provést některé základní úlohy.
V rámci serverů Citus () Existují tři typy tabulek:
- Distribuované nebo horizontálně dělené tabulky (rozprostření za účelem zvýšení kapacity pro výkon a paralelní zpracování)
- Referenční tabulky (zachované více kopií)
- Místní tabulky (často používané pro interní tabulky správců)
V tomto rychlém startu se primárně zaměřujeme na distribuované tabulky a seznámíte se s nimi.
Datový model, se kterým budeme pracovat, je jednoduchý: data o uživatelích a událostech z GitHub. Události zahrnují vytváření větví, potvrzení Git souvisejících s organizací a další.
Jakmile se připojíte přes psql, pojďme vytvořit tabulky. V konzole psql spusťte:
CREATE TABLE github_events
(
event_id bigint,
event_type text,
event_public boolean,
repo_id bigint,
payload jsonb,
repo jsonb,
user_id bigint,
org jsonb,
created_at timestamp
);
CREATE TABLE github_users
(
user_id bigint,
url text,
login text,
avatar_url text,
gravatar_id text,
display_login text
);
payloadPole github_events má datový typ JSONB. JSONB je datový typ JSON v binárním formátu v Postgres. Datový typ usnadňuje ukládání flexibilního schématu do jednoho sloupce.
Postgres může GIN pro tento typ vytvořit index, který bude indexovat každý klíč a hodnotu v rámci něj. S indexem se dá rychle a snadno dotazovat datovou část s různými podmínkami. Pojďme dopředu a vytvořit několik indexů, než načteme naše data. V psql:
CREATE INDEX event_type_index ON github_events (event_type);
CREATE INDEX payload_index ON github_events USING GIN (payload jsonb_path_ops);
V dalším kroku převezmeme tyto tabulky Postgres v uzlu koordinátora a oznámíme tak škálování (Citus), aby se na ně horizontálních oddílůi napříč zaměstnanci. Uděláte to tak, že spustíte dotaz pro každou tabulku, která určuje klíč, na který se má horizontálních oddílů. V aktuálním příkladu horizontálních oddílů události a uživatele v tabulce user_id :
SELECT create_distributed_table('github_events', 'user_id');
SELECT create_distributed_table('github_users', 'user_id');
Důležité
Distribuce tabulek je nutná k využití funkcí výkonu technologie škálovatelného výkonu. Pokud tabulky nedistribuujete, nemůžou pracovní uzly povolovat spouštění dotazů týkajících se těchto tabulek.
Teď jsme připraveni načíst data. V psql pořád pro stažení souborů prostředí.
\! curl -O https://examples.citusdata.com/users.csv
\! curl -O https://examples.citusdata.com/events.csv
Pak načtěte data ze souborů do distribuovaných tabulek:
SET CLIENT_ENCODING TO 'utf8';
\copy github_events from 'events.csv' WITH CSV
\copy github_users from 'users.csv' WITH CSV
Spouštění dotazů
Teď je čas na zábavu, ve kterém jsou ve skutečnosti spuštěné nějaké dotazy. Pojďme začít jednoduchým count (*) způsobem a zjistit, kolik dat jsme načetli:
SELECT count(*) from github_events;
Ty, které byly k dispracovanému. Vrátíme se k tomuto uspořádání agregace, ale teď se podíváme na několik dalších dotazů. Ve sloupci JSONB payload je dobrým bitem dat, ale liší se v závislosti na typu události. PushEvent události obsahují velikost, která zahrnuje počet jedinečných potvrzení pro vložení. Dá se použít k vyhledání celkového počtu potvrzení za hodinu:
SELECT date_trunc('hour', created_at) AS hour,
sum((payload->>'distinct_size')::int) AS num_commits
FROM github_events
WHERE event_type = 'PushEvent'
GROUP BY hour
ORDER BY hour;
Doposud dotazy zahrnovaly jenom události GitHubu _ , ale tyto informace můžeme kombinovat s uživateli GitHubu _ . Vzhledem k tomu, že jsme horizontálně dělené uživatele i události na stejný identifikátor ( user_id ), řádky obou tabulek s ID odpovídajícího uživatele budou společně umístěny na stejných uzlech databáze a lze je snadno připojit.
Pokud se připojíme k user_id Citus, může se spuštění spojení do horizontálních oddílů spustit souběžně na pracovních uzlech. Pojďme například najít uživatele, kteří vytvořili největší počet úložišť:
SELECT gu.login, count(*)
FROM github_events ge
JOIN github_users gu
ON ge.user_id = gu.user_id
WHERE ge.event_type = 'CreateEvent'
AND ge.payload @> '{"ref_type": "repository"}'
GROUP BY gu.login
ORDER BY count(*) DESC;
Vyčištění prostředků
V předchozích krocích jste vytvořili prostředky Azure ve skupině serverů. Pokud neočekáváte, že tyto prostředky budete potřebovat v budoucnu, odstraňte skupinu serverů. Stiskněte tlačítko Odstranit na stránce Přehled pro skupinu serverů. Po zobrazení výzvy na místní stránce potvrďte název skupiny serverů a klikněte na tlačítko poslední Odstranit .
Další kroky
V tomto rychlém startu jste se dozvěděli, jak zřídit skupinu serverů (Citus). K němu jste se připojili pomocí psql, vytvořili schéma a distribuovaná data.
- Postupujte podle kurzu pro vytváření škálovatelných víceklientské aplikací .
- Určení nejlepší počáteční velikosti pro skupinu serverů