0Pricing
SQL Academy · Pelajaran

Citus dan Postgres Terdistribusi

Gunakan Citus untuk mengubah Postgres menjadi basis data terdistribusi, dengan tabel yang ditempatkan bersama dan tabel referensi

Citus dan Postgres Terdistribusi adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Apa Itu Citus?

Citus adalah ekstensi PostgreSQL yang mengubah klaster server PG menjadi basis data terdistribusi. Anda menjalankan SELECT/INSERT pada koordinator; Citus merutekannya ke pecahan pekerja yang tepat secara transparan.

Arsitektur

Dua peran:

  • Koordinator—menerima kueri, menyimpan metadata klaster, serta merutekan dan mengagregasi
  • Pekerja—menyimpan data pecahan dan menjalankan kueri yang sebenarnya

Penyiapan

Pasang ekstensi pada koordinator dan pekerja, lalu daftarkan para pekerja:

CREATE EXTENSION citus;

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

Tabel Terdistribusi

Tandai tabel sebagai tabel terdistribusi berdasarkan sebuah kolom:

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).

Tabel Referensi

Tabel kecil yang direplikasi ke setiap pekerja—JOIN berlangsung secara lokal:

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

Lokasi Bersama

Tabel dengan kolom distribusi yang sama ditempatkan bersama: baris untuk user_id tertentu selalu berada pada pekerja yang sama. JOIN berdasarkan user_id tetap berlangsung secara lokal:

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

Kueri Satu Penyewa

Citus merutekan kueri yang difilter berdasarkan user_id ke pekerja yang tepat—cepat:

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

Agregasi Terdistribusi

Citus menjalankan COUNT/SUM secara paralel pada para pekerja:

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

Penyeimbangan Ulang

Tambahkan pekerja, lalu seimbangkan kembali pecahan:

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

Keterbatasan

  • Transaksi pada tabel yang tidak ditempatkan bersama memiliki keterbatasan
  • Beberapa fitur Postgres tidak berlaku pada tabel terdistribusi
  • Perubahan skema disebarkan, tetapi memerlukan koordinasi

Citus Cloud / Azure

Citus diakuisisi oleh Microsoft—kini menjadi bagian dari Azure Database for PostgreSQL—Hyperscale (Citus). Citus juga masih bersifat sumber terbuka.

Alternatif

  • YugabyteDB—basis data terdistribusi yang kompatibel dengan PG
  • CockroachDB—basis data terdistribusi yang kompatibel dengan protokol Postgres
  • Pgvector / TimescaleDB—spesialisasi satu simpul

Saat Citus Unggul

SaaS multipenyewa dengan kueri setiap penyewa yang terisolasi. Deret waktu yang dipartisi berdasarkan penyewa + waktu. Analitik dengan agregasi paralel.

Ringkasan

Citus membuat Postgres menjadi terdistribusi.

  • Koordinator + pekerja
  • Didistribusikan berdasarkan kolom; ditempatkan bersama untuk JOIN lokal
  • Tabel referensi untuk dimensi bersama
  • Paling sesuai untuk: SaaS multipenyewa

Pemeriksaan Singkat

Apa manfaat "menempatkan bersama" dua tabel terdistribusi berdasarkan kunci yang sama di Citus?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Citus dan Postgres Terdistribusi” gratis?

Ya — teks lengkap “Citus dan Postgres Terdistribusi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Citus dan Postgres Terdistribusi”?

Gunakan Citus untuk mengubah Postgres menjadi basis data terdistribusi, dengan tabel yang ditempatkan bersama dan tabel referensi Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Citus dan Postgres Terdistribusi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Strategi Sharding: Rentang, Hash, Direktori
  2. Kueri Lintas Shard: Masalah yang Sulit
  3. Citus dan Postgres Terdistribusi
  4. Kapan TIDAK Melakukan Sharding
← Kembali ke SQL Academy