Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Azure Cosmos DB for PostgreSQL non è più supportato per i nuovi progetti. Non usare questo servizio per i nuovi progetti. Usare invece uno dei due servizi seguenti:
Usare Azure Cosmos DB for NoSQL per una soluzione di database distribuito progettata per scenari su larga scala con un contratto di servizio di disponibilità di 99,999%, scalabilità automatica immediata e failover automatico in più aree.
Usare la funzionalità Cluster elastici di Database di Azure per PostgreSQL per PostgreSQL partizionato usando l'estensione Citus open source.
Prerequisiti
Per seguire questa guida di avvio rapido, è prima necessario:
- Creare un cluster nel portale di Azure.
- Connettersi al cluster con psql per eseguire i comandi SQL.
- Creare e distribuire tabelle con il set di dati di esempio.
Query distribuite
Ora è il momento della parte divertente della nostra serie di avvio rapido: l'esecuzione delle query.
Si inizierà con una semplice count (*) per verificare la quantità di dati caricati nella sezione precedente.
-- count all rows (across shards)
SELECT count(*) FROM github_users;
count
--------
264308
(1 row)
Tenere presente che github_users è una tabella distribuita, ovvero i relativi dati sono divisi tra più partizioni. Azure Cosmos DB for PostgreSQL esegue automaticamente il conteggio su tutte le partizioni in parallelo e combina i risultati.
Continuiamo a esaminare alcuni altri esempi di query:
-- 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)
Query più complesse
Di seguito è riportato un esempio di query più complessa, che recupera statistiche orarie per gli eventi push in GitHub. Usa la funzionalità JSONB di PostgreSQL per gestire dati semistrutturati.
-- 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 combina la potenza degli archivi dati SQL e NoSQL con dati strutturati e semistrutturati.
Oltre all'esecuzione di query, Azure Cosmos DB for PostgreSQL applica anche le modifiche alle definizioni dei dati nelle partizioni di una tabella distribuita:
-- DDL commands that are also parallelized
ALTER TABLE github_users ADD COLUMN dummy_column integer;
Passaggi successivi
È stato creato un cluster scalabile, sono state create tabelle, distribuite, caricati i dati e sono state eseguite query distribuite.
Ora si è pronti per imparare a creare applicazioni con Azure Cosmos DB for PostgreSQL.