Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
PostgreSQL için Azure Cosmos DB artık yeni projeler için desteklenmemektedir. Bu hizmeti yeni projeler için kullanmayın. Bunun yerine, şu iki hizmetlerden birini kullanın:
99,999% kullanılabilirlik hizmet düzeyi sözleşmesi (SLA), anında otomatik ölçeklendirme ve birden çok bölgede otomatik yük devretme ile yüksek ölçekli senaryolar için tasarlanmış dağıtılmış bir veritabanı çözümü için NoSQL için Azure Cosmos DB kullanın.
Açık kaynak Citus uzantısını kullanarak bölümlenmiş Azure Veritabanı'nın PostgreSQL için Elastik Kümeler özelliğini kullanın.
Önkoşullar
Bu hızlı başlangıcı izlemek için önce şunları yapmanız gerekir:
- Azure portalında bir küme oluşturun.
- SQL komutlarını çalıştırmak için psql ile kümeye bağlanın.
- Örnek veri kümemizle tablo oluşturma ve dağıtma.
Dağıtılmış sorgular
Şimdi hızlı başlangıç serimizin eğlenceli kısmının zamanı geldi: sorgu çalıştırma.
Önceki bölümde ne kadar veri yüklediğimizi doğrulamak için basit count (*) bir başlangıç yapalım.
-- count all rows (across shards)
SELECT count(*) FROM github_users;
count
--------
264308
(1 row)
github_users Bunun dağıtılmış bir tablo olduğunu, yani verilerinin birden çok parçaya ayrıldığını hatırlayın. PostgreSQL için Azure Cosmos DB, tüm parçalardaki sayıyı otomatik olarak paralel olarak çalıştırır ve sonuçları birleştirir.
Şimdi birkaç sorgu örneğine daha bakalım:
-- 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)
Daha karmaşık sorgular
GitHub'da anında iletme olaylarının saatlik istatistiklerini alan daha karmaşık bir sorgu örneği aşağıda verilmiştir. Yarı yapılandırılmış verileri işlemek için PostgreSQL'in JSONB özelliğini kullanır.
-- 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)
PostgreSQL için Azure Cosmos DB, SQL ve NoSQL veri depolarının gücünü yapılandırılmış ve yarı yapılandırılmış verilerle birleştirir.
PostgreSQL için Azure Cosmos DB, sorgu çalıştırmaya ek olarak, veri tanımı değişikliklerini dağıtılmış tablonun parçalarına da uygular:
-- DDL commands that are also parallelized
ALTER TABLE github_users ADD COLUMN dummy_column integer;
Sonraki adımlar
Ölçeklenebilir bir kümeyi başarıyla oluşturdunuz, tablolar oluşturdunuz, dağıttınız, verileri yüklediniz ve dağıtılmış sorgular çalıştırdunuz.
Artık PostgreSQL için Azure Cosmos DB ile uygulama oluşturmayı öğrenmeye hazırsınız.