Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Usługa Azure Cosmos DB for PostgreSQL nie jest już obsługiwana w przypadku nowych projektów. Nie używaj tej usługi dla nowych projektów. Zamiast tego użyj jednej z tych dwóch usług:
Użyj usługi Azure Cosmos DB for NoSQL dla rozproszonego rozwiązania bazy danych przeznaczonego dla scenariuszy o dużej skali z umową dotyczącą poziomu usług dostępności 99,999% (SLA), natychmiastowym skalowaniem automatycznym i automatycznym przejściem w tryb failover w wielu regionach.
Użyj funkcji Elastic Clusters usługi Azure Database for PostgreSQL na potrzeby fragmentowanej bazy danych PostgreSQL przy użyciu rozszerzenia Citus typu open source.
Wymagania wstępne
Aby wykonać czynności opisane w tym przewodniku Szybki start, najpierw musisz wykonać następujące czynności:
- Utwórz klaster w witrynie Azure Portal.
- Połącz się z klastrem za pomocą narzędzia psql, aby uruchomić polecenia SQL.
- Twórz i dystrybuuj tabele przy użyciu naszego przykładowego zestawu danych.
Zapytania rozproszone
Teraz nadszedł czas na zabawę w naszej serii "Szybki start" — uruchamianie zapytań.
Zacznijmy od prostego count (*) sprawdzenia, ile danych załadowaliśmy w poprzedniej sekcji.
-- count all rows (across shards)
SELECT count(*) FROM github_users;
count
--------
264308
(1 row)
Pamiętaj, że jest to tabela rozproszona, co oznacza, że github_users jej dane są podzielone między wiele fragmentów. Usługa Azure Cosmos DB for PostgreSQL automatycznie wykonuje zliczanie na wszystkich partycjach równolegle i łączy wyniki.
Przyjrzyjmy się kilku przykładom zapytań:
-- 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)
Bardziej skomplikowane zapytania
Oto przykład bardziej skomplikowanego zapytania, które pobiera statystyki godzinowe dla zdarzeń wypychania na GitHubie. Używa funkcji JSONB bazy danych PostgreSQL do obsługi częściowo ustrukturyzowanych danych.
-- 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)
Usługa Azure Cosmos DB for PostgreSQL łączy możliwości magazynów danych SQL i NoSQL ze ustrukturyzowanymi i częściowo ustrukturyzowanymi danymi.
Oprócz uruchamiania zapytań usługa Azure Cosmos DB for PostgreSQL stosuje również zmiany definicji danych w fragmentach tabeli rozproszonej:
-- DDL commands that are also parallelized
ALTER TABLE github_users ADD COLUMN dummy_column integer;
Następne kroki
Pomyślnie utworzono skalowalny klaster, utworzono tabele, rozproszono je, załadowano dane i uruchomiono zapytania rozproszone.
Teraz możesz dowiedzieć się, jak tworzyć aplikacje za pomocą usługi Azure Cosmos DB for PostgreSQL.