Megosztás a következőn keresztül:


Lekérdezések futtatása az Azure Cosmos DB for PostgreSQL-ben

Fontos

Az Azure Cosmos DB for PostgreSQL már nem támogatott új projektek esetén. Ne használja ezt a szolgáltatást új projektekhez. Ehelyett használja az alábbi két szolgáltatás egyikét:

  • Az Azure Cosmos DB for NoSQL használata nagy léptékű forgatókönyvekhez tervezett elosztott adatbázis-megoldáshoz 99,999% rendelkezésre állási szolgáltatásiszint-szerződéssel (SLA), azonnali automatikus skálázással és automatikus feladatátvétellel több régióban.

  • Használja az Azure Database For PostgreSQL Rugalmas fürtök funkcióját a megosztott PostgreSQL-hez a nyílt forráskódú Citus-bővítmény használatával.

Előfeltételek

A rövid útmutató követéséhez először a következőket kell elvégeznie:

  1. Hozzon létre egy fürtöt az Azure Portalon.
  2. Csatlakozzon a fürthöz a psql használatával SQL-parancsok futtatásához.
  3. Táblák létrehozása és terjesztése példaadatkészletünkkel.

Elosztott lekérdezések

Most itt az ideje a szórakoztató résznek a gyorsindítási sorozatunkban: a lekérdezések futtatása. Kezdjük egy egyszerű count (*) ellenőrzéssel, hogy mennyi adatot töltöttünk be az előző szakaszban.

-- count all rows (across shards)

SELECT count(*) FROM github_users;
 count
--------
 264308
(1 row)

Ne feledje, hogy github_users ez egy elosztott tábla, ami azt jelenti, hogy az adatok több szegmens között vannak elosztva. Az Azure Cosmos DB for PostgreSQL automatikusan futtatja az összes szegmens számát párhuzamosan, és egyesíti az eredményeket.

Tekintsünk tovább néhány további lekérdezési példát:

-- 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)

Bonyolultabb lekérdezések

Íme egy példa egy bonyolultabb lekérdezésre, amely a GitHubon található push események óránkénti statisztikáit lekéri. A PostgreSQL JSONB-funkcióját használja a félig strukturált adatok kezelésére.

-- 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)

Az Azure Cosmos DB for PostgreSQL egyesíti az SQL és a NoSQL-adattárak erejét strukturált és félig strukturált adatokkal.

A lekérdezések futtatása mellett az Azure Cosmos DB for PostgreSQL adatdefiníciós módosításokat is alkalmaz az elosztott tábla szegmenseiben:

-- DDL commands that are also parallelized

ALTER TABLE github_users ADD COLUMN dummy_column integer;

Következő lépések

Sikeresen létrehozott egy méretezhető fürtöt, táblákat hozott létre, elosztotta őket, betöltötte az adatokat, és elosztott lekérdezéseket futtatott.

Most már készen áll arra, hogy megtanuljon alkalmazásokat készíteni az Azure Cosmos DB for PostgreSQL-hez.