Hızlı başlangıç: Azure portal hiper ölçek (Citus) sunucu grubu oluşturma
PostgreSQL için Azure Veritabanı, bulutta son derece kullanılabilir olan PostgreSQL veritabanlarını çalıştırmak, yönetmek ve ölçeklendirmek için kullandığınız, yönetilen bir hizmettir. Bu hızlı başlangıçta, Azure portal kullanarak bir PostgreSQL için Azure veritabanı-hiper ölçek (Citus) sunucu grubu oluşturma gösterilmektedir. Dağıtılmış verileri keşfedeceğiz: düğümler arasında parça tabloları, örnek verileri geri almak ve birden çok düğümde yürütülen sorguları çalıştırmak isteyeceksiniz.
Hiper Ölçek (Citus) (Citus) sunucu grubu oluşturma
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Azure portalında oturum açın
Azure Portal oturum açın.
PostgreSQL için Azure veritabanı sunucusu oluşturmak üzere şu adımları uygulayın:
Uygulamanın sol üst köşesindeki Kaynak oluştur'a Azure portal.
Yeni sayfasından Veritabanları’nı seçin ve Veritabanları sayfasından PostgreSQL için Azure Veritabanı’nı seçin.
Dağıtım seçeneği için, Sunucu grubu altındaki Oluştur Hiper Ölçek (Citus) tıklayın.
Yeni sunucu ayrıntıları formunu aşağıdaki bilgilerle doldurun:
- Kaynak grubu: Bu alanın metin kutusunun altındaki Yeni oluştur bağlantısına tıklayın. myresourcegroup gibi bir ad girin.
- Sunucu grubu adı: Yeni sunucu grubu için bir sunucu alt etki alanı için de kullanılacak benzersiz bir ad girin.
- Yönetici kullanıcı adı: şu anda citus değeri olması gerekir ve değiştirilemez.
- Parola: En az sekiz karakter uzunluğunda olmalı ve şu kategorilerin üçünden karakterler içermelidir: İngilizce büyük harfler, İngilizce küçük harfler, sayılar (0-9) ve alfasayısal olmayan karakterler (!, $, #, %, gibi).)
- Konum: Verilere en hızlı erişimi vermek için kullanıcılarınıza en yakın konumu kullanın.
Önemli
Burada belirttiğiniz sunucu yöneticisi parolası, sunucuda ve veritabanlarında oturum açmak için gereklidir. Bu bilgileri daha sonra kullanmak üzere aklınızda tutun veya kaydedin.
Sunucu grubunu yapılandır'a tıklayın. Bu bölümdeki ayarları değiştirmeden bırakın ve Kaydet'e tıklayın.
Ekranın altındaki Sonraki: > Ağ İletişimi'ne tıklayın.
Ağ sekmesinde Azure içindeki Azure hizmetlerinden ve kaynaklarından bu sunucu grubuna genel erişime izin ver'i seçin. Ardından + Geçerli istemci IP adresini ekle'yi seçin.

Not
Azure PostgreSQL sunucusu, 5432 bağlantı noktası üzerinden iletişim kurar. Kurumsal ağ içinden bağlanmaya çalışıyorsanız, ağınızın güvenlik duvarı tarafından 5432 numaralı bağlantı noktası üzerinden giden trafiğe izin verilmiyor olabilir. Bu şekilde, IT departmanınız 5432 Hiper Ölçek (Citus) açmadıkça küme kümenize bağlanamazsiniz.
Gözden geçir + oluştur'a ve ardından Oluştur'a tıklar ve sunucuyu sağlar. Sağlama işlemi birkaç dakika sürer.
Sayfa, dağıtımı izlemek için yeniden yönlendirecek. Dağıtımınız sırasındaki canlı durum Dağıtımınız tamamlandı olarak değişirse, sayfanın sol tarafından Çıkışlar menü öğesini tıklatın.
Çıkışlar sayfasında, değeri panoya kopyalamak için yanında bir düğme bulunan bir koordinatör ana bilgisayar adı yer ayacaktır. Bu bilgileri daha sonra kullanmak üzere kaydedebilirsiniz.
Bağlan psql kullanarak veritabanına
Bir sunucuyu PostgreSQL için Azure Veritabanı citus adlı varsayılan bir veritabanı oluşturulur. Veritabanı sunucunuza bağlanmak için bir bağlantı dizesi ve yönetici parolası gerekir.
Bağlantı dizesini alın. Sunucu grubu sayfasında Bağlantı dizeleri menü öğesini tıklatın. (Bu, Ayarlar.) psql olarak işaretlenmiş dizeyi bulun. Şu şekilde olur:
psql "host=hostname.postgres.database.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require"Dizeyi kopyalayın. "{your password}" ifadesini daha önce _ seçtiğiniz yönetici parolasıyla değiştirmeniz gerekir. Sistem düz metin parolanızı depolamaz ve bu nedenle bağlantı dizesinde sizin için gösteresiniz.
Yerel bilgisayarınızda bir terminal penceresi açın.
İstendiğinde psql yardımcı PostgreSQL için Azure Veritabanı sunucunuza bağlanabilirsiniz. Bağlantı dizenizi tırnak içine alın ve parolanızı içerdiğine emin olun:
psql "host=..."Örneğin, aşağıdaki komut mydemoserver sunucu grubunun koordinatör düğümüne bağlanır:
psql "host=mydemoserver-c.postgres.database.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require"
Tablo oluşturma ve dağıtma
Psql kullanarak hiper ölçek düzenleyici düğümüne bağlandıktan sonra bazı temel görevleri tamamlayabilirsiniz.
Hiper ölçek (Citus) sunucuları içinde üç tür tablo vardır:
- Dağıtılmış veya parçalı tablolar (performans ve paralelleştirme için ölçeklendirilmesine yardımcı olmak için yayılmış)
- Başvuru tabloları (birden fazla kopya korunur)
- Yerel tablolar (genellikle dahili yönetici tabloları için kullanılır)
Bu hızlı başlangıçta, öncelikle dağıtılmış tablolara odaklanacağız ve bunlarla ilgili bilgi edineceğiz.
Çalışacağız veri modeli basittir: GitHub Kullanıcı ve olay verileri. Olaylar çatal oluşturma, bir kuruluşla ilgili git işlemeleri ve daha fazlasını içerir.
Psql ile bağlandıktan sonra tablolarımızı oluşturalım. Psql konsolunda şunu çalıştırın:
CREATE TABLE github_events
(
event_id bigint,
event_type text,
event_public boolean,
repo_id bigint,
payload jsonb,
repo jsonb,
user_id bigint,
org jsonb,
created_at timestamp
);
CREATE TABLE github_users
(
user_id bigint,
url text,
login text,
avatar_url text,
gravatar_id text,
display_login text
);
payloadAlanının github_events BIR jsonb veri türü vardır. JSONB, Postgres 'de ikili biçimdeki JSON veri türüdür. Veri türü, esnek bir şemayı tek bir sütunda depolamayı kolaylaştırır.
Postgres GIN Bu türde bir dizin oluşturabilir ve bu, içindeki her anahtar ve değeri dizine alır. Bir dizin ile yükü çeşitli koşullarla sorgulamak hızlı ve kolay hale gelir. Biz de verilerimizi yüklemeden önce birkaç dizin oluşturalım. Psql 'de:
CREATE INDEX event_type_index ON github_events (event_type);
CREATE INDEX payload_index ON github_events USING GIN (payload jsonb_path_ops);
Ardından, düzenleyici düğümünde bu Postgres tablolarını alacak ve şirket genelinde bunları parçalara ayırmaları için hiper ölçeğe (Citus) söyleriz. Bunu yapmak için, üzerine gelecek anahtarı belirten her tablo için bir sorgu çalıştıracağız. Geçerli örnekte, hem olaylar hem de Kullanıcı tablosu ' nu parçalara parçalarız user_id :
SELECT create_distributed_table('github_events', 'user_id');
SELECT create_distributed_table('github_users', 'user_id');
Önemli
Hiper ölçek performans özelliklerinden yararlanmak için tabloları dağıtma gereklidir. Tabloları dağıtmazsanız, çalışan düğümleri bu tabloları içeren sorguların çalıştırılmasına yardımcı olamaz.
Verileri yüklemeye hazırız. Hala psql 'de, dosyaları indirmek için Shell Out:
\! curl -O https://examples.citusdata.com/users.csv
\! curl -O https://examples.citusdata.com/events.csv
Sonra, verileri dosyaları dağıtılmış tablolara yükleyin:
SET CLIENT_ENCODING TO 'utf8';
\copy github_events from 'events.csv' WITH CSV
\copy github_users from 'users.csv' WITH CSV
Sorgu çalıştırma
Şimdi eğlenceli parçanın süresi, aslında bazı sorgular çalıştırıyor. count (*)Ne kadar veri yüklediğimiz hakkında daha basit bir başlangıç yapın:
SELECT count(*) from github_events;
Bu, işe yaramakta. Bu toplama sıralamasına bir bit içinde geri döneceğiz, ancak şimdilik diğer birkaç sorguya göz atalım. JSONB sütununun içinde payload iyi bir veri bulunur, ancak olay türüne göre farklılık gösterir. PushEvent olaylar, gönderim için ayrı yürütmelerin sayısını içeren bir boyut içerir. Saat başına toplam işleme sayısını bulmak için kullanabiliriz:
SELECT date_trunc('hour', created_at) AS hour,
sum((payload->>'distinct_size')::int) AS num_commits
FROM github_events
WHERE event_type = 'PushEvent'
GROUP BY hour
ORDER BY hour;
Şimdiye kadar sorgular GitHub _ olaylarını özel olarak katıldı, ancak bu bilgileri GitHub kullanıcılarıyla birleştirebiliriz _ . Aynı tanımlayıcı () üzerinde hem Kullanıcı hem de olay paylaşdığımız için user_id , eşleşen Kullanıcı kimliklerine sahip her iki tablonun satırları aynı veritabanı düğümlerine dahil edilir ve kolayca eklenebilir.
Katılıyoruz user_id , hiper ölçek (Citus), çalışan düğümlerinde paralel olarak yürütülmesi için birleştirmeyi parçalara ayırır. Örneğin, en fazla sayıda depo oluşturan kullanıcıları bulalım:
SELECT gu.login, count(*)
FROM github_events ge
JOIN github_users gu
ON ge.user_id = gu.user_id
WHERE ge.event_type = 'CreateEvent'
AND ge.payload @> '{"ref_type": "repository"}'
GROUP BY gu.login
ORDER BY count(*) DESC;
Kaynakları temizleme
Yukarıdaki adımlarda, bir sunucu grubunda Azure kaynakları oluşturdunuz. Gelecekte bu kaynaklara ihtiyaç duymazsanız, sunucu grubunu silin. Sunucu grubunuzun genel bakış sayfasında Sil düğmesine basın. Bir açılır sayfada istendiğinde, sunucu grubunun adını onaylayın ve son Sil düğmesine tıklayın.
Sonraki adımlar
Bu hızlı başlangıçta, bir hiper ölçek (Citus) sunucu grubu sağlamayı öğrendiniz. Bu ağa psql ile bağlanırsınız, bir şema oluşturdunuz ve dağıtılmış veriler.
- Ölçeklenebilir çok kiracılı uygulamalar oluşturmak için öğreticiyi izleyin
- Sunucu grubunuz için en iyi ilk boyutu belirleme