0Pricing
SQL Academy · Ders

Citus ve Dağıtık Postgres

Birlikte konumlandırılmış tablolar ve başvuru tablolarıyla Postgres'i dağıtık bir veritabanına dönüştürmek için Citus kullanın.

Citus ve Dağıtık Postgres, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

Citus Nedir?

Citus, bir PG sunucuları kümesini dağıtık bir veritabanına dönüştüren bir PostgreSQL eklentisidir. Koordinatöre SELECT/INSERT gönderirsiniz; Citus bunları doğru çalışan parçalarına şeffaf biçimde yönlendirir.

Mimari

İki rol vardır:

  • Koordinatör — sorguları alır, kümenin üst verilerini tutar, yönlendirme ve toplama yapar
  • Çalışanlar — parça verilerini tutar ve gerçek sorguları yürütür

Kurulum

Eklentiyi koordinatöre ve çalışanlara yükleyin, ardından çalışanları kaydedin:

CREATE EXTENSION citus;

-- On the coordinator, add worker nodes:
SELECT * FROM master_add_node('worker1', 5432);
SELECT * FROM master_add_node('worker2', 5432);

Dağıtık Tablolar

Bir tabloyu bir sütuna göre dağıtık olarak işaretleyin:

CREATE TABLE orders (
  id BIGSERIAL,
  user_id BIGINT NOT NULL,
  total NUMERIC(10,2),
  ...
);

SELECT create_distributed_table('orders', 'user_id');
-- Citus splits orders into shards by hash(user_id).

Başvuru Tabloları

Her çalışana çoğaltılan küçük tablolar — JOIN işlemleri parça içinde kalır:

CREATE TABLE countries (id INT, name TEXT);
SELECT create_reference_table('countries');
-- Every worker has a full copy of countries.

Birlikte Konumlandırma

Aynı dağıtım sütununa sahip tablolar birlikte konumlandırılır: belirli bir user_id için satırlar her zaman aynı çalışanda bulunur. user_id üzerindeki JOIN işlemleri parça içinde kalır:

SELECT create_distributed_table('orders', 'user_id');
SELECT create_distributed_table('events', 'user_id', colocate_with => 'orders');

Tek Kiracılı Sorgular

Citus, user_id filtresi içeren sorguları doğru çalışana yönlendirir — hızlıdır:

SELECT * FROM orders WHERE user_id = 42;
-- Goes to one worker shard, returns in milliseconds.

Dağıtık Toplulaştırmalar

Citus, COUNT/SUM işlemlerini çalışanlar arasında paralel hâle getirir:

SELECT user_id, SUM(total) FROM orders GROUP BY user_id;
-- Each worker computes locally; coordinator concatenates.

Yeniden Dengeleme

Bir çalışan ekleyin ve parçaları yeniden dengeleyin:

SELECT * FROM citus_add_node('worker3', 5432);
SELECT * FROM rebalance_table_shards('orders');
-- Citus moves some shards onto the new worker.

Sınırlamalar

  • Birlikte konumlandırılmamış tablolar arasındaki işlemler sınırlıdır
  • Bazı PostgreSQL özellikleri dağıtık tablolar için geçerli değildir
  • Şema değişiklikleri yayılır, ancak koordinasyon gerektirir

Citus Cloud / Azure

Citus, Microsoft tarafından satın alındı — artık Azure Database for PostgreSQL — Hyperscale (Citus) hizmetinin bir parçası. Ayrıca hâlâ açık kaynaklıdır.

Alternatifler

  • YugabyteDB — dağıtık ve PG uyumlu
  • CockroachDB — Postgres iletişim protokolüyle uyumlu dağıtık veritabanı
  • Pgvector / TimescaleDB — tek düğümlü uzmanlaşmış çözümler

Citus Ne Zaman Öne Çıkar

Her kiracının sorgularının yalıtıldığı çok kiracılı SaaS uygulamalarında. Kiracı + zamana göre bölümlediğiniz zaman serilerinde. Paralel toplulaştırma kullanan analitik iş yüklerinde.

Özet

Citus, Postgres'i dağıtık hâle getirir.

  • Koordinatör + çalışanlar
  • Sütuna göre dağıtım; yerel JOIN işlemleri için birlikte konumlandırma
  • Paylaşılan boyutlar için başvuru tabloları
  • En uygun kullanım: çok kiracılı SaaS

Hızlı Kontrol

Citus'ta iki dağıtık tabloyu aynı anahtar üzerinde "birlikte konumlandırmanın" yararı nedir?

Sıkça Sorulan Sorular

“Citus ve Dağıtık Postgres” dersi ücretsiz mi?

Evet — “Citus ve Dağıtık Postgres” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“Citus ve Dağıtık Postgres” dersinde ne öğreneceğim?

Birlikte konumlandırılmış tablolar ve başvuru tablolarıyla Postgres'i dağıtık bir veritabanına dönüştürmek için Citus kullanın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Citus ve Dağıtık Postgres” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Parçalama Stratejileri: Aralık, Hash, Dizin
  2. Parçalar Arası Sorgular: Zor Problem
  3. Citus ve Dağıtık Postgres
  4. Ne Zaman Parçalamamalı
← SQL Academy Sayfasına Dön