Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Azure Cosmos DB for PostgreSQL se už pro nové projekty nepodporuje. Tuto službu nepoužívejte pro nové projekty. Místo toho použijte jednu z těchto dvou služeb:
Azure Cosmos DB for NoSQL můžete použít pro distribuované databázové řešení navržené pro vysoce škálovatelné scénáře s 99,999% smlouvou o úrovni služeb (SLA), okamžitým automatickým škálováním a automatickým převzetím služeb při selhání napříč několika oblastmi.
Použijte funkci Elastic Clusters služby Azure Database for PostgreSQL pro horizontálně dělené PostgreSQL pomocí opensourcového rozšíření Citus.
Požadavky
Pokud chcete postupovat podle tohoto rychlého průvodce, nejprve budete muset:
- Vytvořte cluster na webu Azure Portal.
- Připojte se ke clusteru pomocí psql a spusťte příkazy SQL.
- Vytvořte a distribuujte tabulky s naší ukázkovou datovou sadou.
Distribuované dotazy
Teď je čas na zábavnou část v naší sérii rychlých startů – spouštění dotazů.
Začněme jednoduchým count (*) ověřením, kolik dat jsme načetli v předchozí části.
-- count all rows (across shards)
SELECT count(*) FROM github_users;
count
--------
264308
(1 row)
Vzpomeňte si, že github_users je distribuovaná tabulka, což znamená, že její data jsou rozdělená mezi několik shardů. Azure Cosmos DB for PostgreSQL automaticky provádí počítání na všech shardech paralelně a kombinuje výsledky.
Pojďme se dále podívat na několik dalších příkladů dotazů:
-- Find all events for a single user.
-- (A common transactional/operational query)
SELECT created_at, event_type, repo->>'name' AS repo_name
FROM github_events
WHERE user_id = 3861633;
created_at | event_type | repo_name
---------------------+--------------+--------------------------------------
2016-12-01 06:28:44 | PushEvent | sczhengyabin/Google-Image-Downloader
2016-12-01 06:29:27 | CreateEvent | sczhengyabin/Google-Image-Downloader
2016-12-01 06:36:47 | ReleaseEvent | sczhengyabin/Google-Image-Downloader
2016-12-01 06:42:35 | WatchEvent | sczhengyabin/Google-Image-Downloader
2016-12-01 07:45:58 | IssuesEvent | sczhengyabin/Google-Image-Downloader
(5 rows)
Složitější dotazy
Tady je příklad složitějšího dotazu, který načítá hodinové statistiky událostí na GitHubu. Používá funkci JSONB PostgreSQL ke zpracování částečně strukturovaných dat.
-- Querying JSONB type. Query is parallelized across nodes.
-- Find the number of commits on the default branch per hour
SELECT date_trunc('hour', created_at) AS hour,
sum((payload->>'distinct_size')::int) AS num_commits
FROM github_events
WHERE event_type = 'PushEvent' AND
payload @> '{"ref":"refs/heads/master"}'
GROUP BY hour
ORDER BY hour;
hour | num_commits
---------------------+-------------
2016-12-01 05:00:00 | 13051
2016-12-01 06:00:00 | 43480
2016-12-01 07:00:00 | 34254
2016-12-01 08:00:00 | 29307
(4 rows)
Azure Cosmos DB for PostgreSQL kombinuje výkon úložišť dat SQL a NoSQL se strukturovanými a částečně strukturovanými daty.
Kromě spouštění dotazů azure Cosmos DB for PostgreSQL také používá změny definic dat napříč horizontálními oddíly distribuované tabulky:
-- DDL commands that are also parallelized
ALTER TABLE github_users ADD COLUMN dummy_column integer;
Další kroky
Úspěšně jste vytvořili škálovatelný cluster, vytvořili tabulky, distribuovali je, načetli data a spustili distribuované dotazy.
Teď se můžete naučit vytvářet aplikace pomocí služby Azure Cosmos DB for PostgreSQL.