Citus dan Postgres Teragih
Gunakan Citus untuk menjadikan Postgres pangkalan data teragih, dengan jadual ditempatkan bersama dan jadual rujukan.
Citus dan Postgres Teragih ialah pelajaran SQL Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran SQL Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus SQL Academy merangkumi sejumlah 4 pelajaran.
Apakah Itu Citus?
Citus ialah sambungan PostgreSQL yang menukarkan kelompok pelayan PG kepada pangkalan data teragih. Anda menggunakan SELECT/INSERT pada penyelaras; Citus menghalakan operasi secara telus kepada pecahan pekerja yang betul.
Seni Bina
Dua peranan:
- Penyelaras — menerima query, menyimpan metadata kelompok, serta menghala dan mengagregatkan hasil
- Pekerja — menyimpan data pecahan dan melaksanakan query sebenar
Persediaan
Pasang sambungan pada penyelaras dan pekerja, kemudian daftarkan pekerja:
CREATE EXTENSION citus;
-- On the coordinator, add worker nodes:
SELECT * FROM master_add_node('worker1', 5432);
SELECT * FROM master_add_node('worker2', 5432);Jadual Teragih
Tandakan jadual sebagai teragih berdasarkan lajur:
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).Jadual Rujukan
Jadual kecil yang direplikasi kepada setiap pekerja — JOIN kekal setempat:
CREATE TABLE countries (id INT, name TEXT);
SELECT create_reference_table('countries');
-- Every worker has a full copy of countries.Penempatan Bersama
Jadual dengan lajur pengagihan yang sama ditempatkan bersama: baris bagi user_id tertentu sentiasa berada pada pekerja yang sama. JOIN pada user_id kekal setempat:
SELECT create_distributed_table('orders', 'user_id');
SELECT create_distributed_table('events', 'user_id', colocate_with => 'orders');Query Penyewa Tunggal
Citus menghalakan query yang ditapis berdasarkan user_id kepada pekerja yang betul — pantas:
SELECT * FROM orders WHERE user_id = 42;
-- Goes to one worker shard, returns in milliseconds.Pengagregatan Teragih
Citus memproses COUNT/SUM secara selari merentas pekerja:
SELECT user_id, SUM(total) FROM orders GROUP BY user_id;
-- Each worker computes locally; coordinator concatenates.Pengimbangan Semula
Tambah pekerja dan imbangkan semula pecahan:
SELECT * FROM citus_add_node('worker3', 5432);
SELECT * FROM rebalance_table_shards('orders');
-- Citus moves some shards onto the new worker.Had
- Transaksi merentas jadual yang tidak ditempatkan bersama adalah terhad
- Sesetengah ciri Postgres tidak terpakai pada jadual teragih
- Perubahan skema disebarkan, tetapi memerlukan penyelarasan
Citus Cloud / Azure
Citus telah diambil alih oleh Microsoft — kini sebahagian daripada Azure Database for PostgreSQL — Hyperscale (Citus). Ia juga masih merupakan perisian sumber terbuka.
Alternatif
- YugabyteDB — PG teragih yang serasi
- CockroachDB — teragih dan serasi dengan protokol PostgreSQL
- Pgvector / TimescaleDB — pengkhususan nod tunggal
Bila Citus Menjadi Pilihan
SaaS berbilang penyewa apabila query setiap penyewa diasingkan. Siri masa apabila anda membuat pembahagian berdasarkan penyewa + masa. Analitik dengan pengagregatan selari.
Ringkasan
Citus menjadikan Postgres teragih.
- Penyelaras + pekerja
- Teragih berdasarkan lajur; ditempatkan bersama untuk JOIN setempat
- Jadual rujukan untuk dimensi yang dikongsi
- Paling sesuai: SaaS berbilang penyewa
Semakan Pantas
Apakah manfaat "menempatkan bersama" dua jadual teragih berdasarkan kunci yang sama dalam Citus?
Pelajari SQL dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 46
- Pelajaran
- 183
Soalan Lazim
Adakah pelajaran “Citus dan Postgres Teragih” percuma?
Ya — teks penuh “Citus dan Postgres Teragih” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus SQL Academy, tingkat taraf kepada CoddyKit PRO. Kursus SQL Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Citus dan Postgres Teragih”?
Gunakan Citus untuk menjadikan Postgres pangkalan data teragih, dengan jadual ditempatkan bersama dan jadual rujukan. Anda berlatih SQL Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan SQL Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran SQL Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Citus dan Postgres Teragih” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Strategi Pembahagian: Julat, Hash, Direktori
- Pertanyaan Merentas Bahagian: Masalah Sukar
- Citus dan Postgres Teragih
- Bila TIDAK Perlu Membahagi