Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
O Azure Cosmos DB para PostgreSQL não tem mais suporte para novos projetos. Não use este serviço para novos projetos. Em vez disso, use um destes dois serviços:
Use o Azure Cosmos DB para NoSQL para obter uma solução de banco de dados distribuído projetada para cenários de alta escala com um SLA (contrato de nível de serviço) de disponibilidade de 99.999%, dimensionamento automático instantâneo e failover automático em várias regiões.
Use a funcionalidade de Clusters Elásticos do Azure para PostgreSQL para PostgreSQL fragmentado, utilizando a extensão Citus de código aberto.
Pré-requisitos
Para seguir este guia de início rápido, primeiro você precisará:
- Crie um cluster no portal do Azure.
- Conecte-se ao cluster com psql para executar comandos SQL.
- Crie e distribua tabelas com nosso conjunto de dados de exemplo.
Consultas distribuídas
Agora é hora da parte divertida em nossa série de início rápido: executar consultas.
Vamos começar com um simples count (*) para verificar a quantidade de dados que carregamos na seção anterior.
-- count all rows (across shards)
SELECT count(*) FROM github_users;
count
--------
264308
(1 row)
Lembre-se de que é uma tabela distribuída, o que significa que github_users seus dados são divididos entre vários fragmentos. O Azure Cosmos DB para PostgreSQL executa automaticamente a contagem em todos os fragmentos em paralelo e combina os resultados.
Vamos continuar examinando mais alguns exemplos de consulta:
-- 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)
Consultas mais complicadas
Aqui está um exemplo de uma consulta mais complicada, que recupera estatísticas horárias para eventos de push no GitHub. Ele usa o recurso JSONB do PostgreSQL para lidar com dados semiestruturados.
-- 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)
O Azure Cosmos DB para PostgreSQL combina o poder dos armazenamentos de dados SQL e NoSQL com dados estruturados e semiestruturados.
Além de executar consultas, o Azure Cosmos DB para PostgreSQL também aplica alterações de definição de dados nos fragmentos de uma tabela distribuída:
-- DDL commands that are also parallelized
ALTER TABLE github_users ADD COLUMN dummy_column integer;
Próximos passos
Você criou com êxito um cluster escalável, criou tabelas, distribuiu-as, carregou dados e executou consultas distribuídas.
Agora você está pronto para aprender a criar aplicativos com o Azure Cosmos DB para PostgreSQL.