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 está numa fase de reforma e já não é recomendado para novos projetos. Em vez disso, use um destes dois serviços:
Para cargas de trabalho PostgreSQL: utilize a funcionalidade Elastic Clusters da Azure Base de Dados para PostgreSQL para utilizar as funcionalidades de escalonamento horizontal e distribuição do PostgreSQL contidas na extensão open source Citus. Para orientação sobre migração, veja migrar para Base de Dados do Azure para PostgreSQL com Elastic Cluster.
Para cargas de trabalho NoSQL , utilize o Azure Cosmos DB para NoSQL como solução de base de dados distribuída que inclui um acordo de nível de serviço (SLA) de disponibilidade de 99,999%, escalabilidade automática instantânea e failover automático em múltiplas regiões.
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;
Passos seguintes
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.