Azure Cosmos DB for PostgreSQL terdistribusi SQL API
BERLAKU UNTUK: Azure Cosmos DB for PostgreSQL (didukung oleh ekstensi database Citus ke PostgreSQL)
Azure Cosmos DB untuk PostgreSQL menyertakan fitur di luar PostgreSQL standar. Berikut ini referensi fungsi dan opsi konfigurasi yang dikategorikan untuk:
- Paralelisasi eksekusi kueri di seluruh pecahan
- Mengelola data yang dipecah antara beberapa server
- Mengompresi data dengan penyimpanan kolumn
- Mengotomatiskan pemartisian rangkaian waktu
Fungsi SQL
Sharding
Nama | Deskripsi |
---|---|
alter_distributed_table | Mengubah kolom distribusi, jumlah pecahan, atau properti kolokasi tabel terdistribusi |
citus_copy_shard_placement | Memperbaiki penempatan pecahan yang tidak aktif menggunakan data dari penempatan sehat |
citus_schema_distribute | Mengubah skema PostgreSQL menjadi skema terdistribusi |
citus_schema_undistribute | Urungkan tindakan citus_schema_distribute |
create_distributed_table | Mengubah tabel PostgreSQL menjadi tabel terdistribusi (dipecah) |
create_reference_table | Mempertahankan salinan lengkap tabel secara sinkron di semua node |
citus_add_local_table_to_metadata | Menambahkan tabel lokal ke metadata untuk mengaktifkan kueri dari simpul apa pun |
isolate_tenant_to_new_shard | Membuat pecahan baru untuk menyimpan baris dengan nilai tunggal tertentu di kolom distribusi |
truncate_local_data_after_distributing_table | Memotong semua baris lokal setelah mendistribusikan tabel |
undistribute_table | Membatalkan tindakan create_distributed_table atau create_reference_table |
Penyeimbangan ulang pecahan
Nama | Deskripsi |
---|---|
citus_add_rebalance_strategy | Menambahkan baris ke pg_dist_rebalance_strategy |
citus_move_shard_placement | Biasanya digunakan secara tidak langsung selama penyeimbangan ulang pecahan, dan tidak dipanggil langsung oleh administrator database |
citus_set_default_rebalance_strategy | Mengubah strategi yang dinamai dengan argumennya menjadi default yang dipilih saat menyeimbangkan ulang pecahan |
get_rebalance_progress | Memantau pemindahan yang direncanakan dan dieksekusi oleh rebalance_table_shards |
get_rebalance_table_shards_plan | Menghasilkan pemindahan pecahan yang direncanakan dari rebalance_table_shards tanpa melakukannya |
rebalance_table_shards | Memindahkan pecahan tabel tertentu agar terdistribusi secara merata di antara pekerja |
Kolokasi
Nama | Deskripsi |
---|---|
create_distributed_function | Membuat fungsi berjalan pada pekerja di dekat pecahan kolokasi |
update_distributed_table_colocation | Memperbarui atau memecah kolokasi tabel terdistribusi |
Penyimpanan kolom
Nama | Deskripsi |
---|---|
alter_columnar_table_set | Mengubah pengaturan pada tabel kolom |
alter_table_set_access_method | Mengonversi tabel antara penyimpanan tumpukan atau kolom |
Pemartisian rangkaian waktu
Nama | Deskripsi |
---|---|
alter_old_partitions_set_access_method | Mengubah metode partisi penyimpanan |
create_time_partitions | Membuat partisi interval tertentu untuk mencakup rentang waktu tertentu |
drop_old_time_partitions | Menghapus semua partisi yang intervalnya jatuh sebelum stempel waktu tertentu |
Informasi
Nama | Deskripsi |
---|---|
citus_get_active_worker_nodes | Mendapatkan nomor port dan nama host pekerja aktif |
citus_relation_size | Mendapatkan ruang disk yang digunakan oleh semua pecahan tabel terdistribusi yang ditentukan |
citus_remote_connection_stats | Menampilkan jumlah koneksi aktif ke setiap node jarak jauh |
citus_stat_statements_reset | Menghapus semua baris dari citus_stat_statements |
citus_table_size | Mendapatkan ruang disk yang digunakan oleh semua pecahan tabel terdistribusi yang ditentukan, tidak termasuk indeks |
citus_total_relation_size | Mendapatkan total ruang disk yang digunakan oleh semua pecahan tabel terdistribusi yang ditentukan, termasuk semua indeks dan data TOAST |
column_to_column_name | Menerjemahkan partkey kolom pg_dist_partition ke dalam nama kolom tekstual |
get_shard_id_for_distribution_column | Menemukan ID pecahan yang terkait dengan nilai kolom distribusi |
Parameter server
Eksekusi kueri
Nama | Deskripsi |
---|---|
citus.all_modifications_commutative | Mengizinkan semua perintah untuk mengklaim kunci bersama |
citus.count_distinct_error_rate | Menyetel tingkat kesalahan penghitungan perkiraan postgresql-hll |
citus.enable_repartition_joins | Mengizinkan JOIN Yang dibuat pada kolom non-distribusi |
citus.enable_repartitioned_insert_select | Mengizinkan partisi ulang baris dari pernyataan SELECT dan mentransfernya di antara pekerja untuk disisipkan |
citus.limit_clause_row_fetch_count | Jumlah baris yang diambil per tugas untuk pengoptimalan klausa batas |
citus.local_table_join_policy | Tempat data bergerak saat melakukan gabungan antara tabel lokal dan terdistribusi |
citus.multi_shard_commit_protocol | Protokol penerapan yang akan digunakan saat melakukan COPY pada tabel terdistribusi hash |
citus.propagate_set_commands | Perintah SET mana yang disebarkan dari koordinator ke pekerja |
citus.create_object_propagation | Perilaku pernyataan CREATE dalam transaksi untuk objek yang didukung |
citus.use_citus_managed_tables | Perbolehkan tabel lokal diakses dalam kueri node pekerja |
Informasi
Nama | Deskripsi |
---|---|
citus.explain_all_tasks | Membuat output EXPLAIN menampilkan semua tugas |
citus.explain_analyze_sort_method | Mengurutkan metode tugas dalam output EXPLAIN ANALYZE |
citus.log_remote_commands | Kueri log yang dikirim koordinator ke node pekerja |
citus.multi_task_query_log_level | Tingkat log untuk setiap kueri yang menghasilkan lebih dari satu tugas |
citus.stat_statements_max | Jumlah baris maksimal yang disimpan di citus_stat_statements |
citus.stat_statements_purge_interval | Frekuensi di mana daemon pemeliharaan menghapus catatan dari citus_stat_statements yang tidak cocok di pg_stat_statements |
citus.stat_statements_track | Mengaktifkan/menonaktifkan pelacakan pernyataan |
citus.show_shards_for_app_name_prefixes | Memungkinkan pecahan ditampilkan untuk klien terpilih yang ingin melihatnya |
citus.override_table_visibility | Mengaktifkan/menonaktifkan persembunyian shard |
Manajemen koneksi antar-node
Nama | Deskripsi |
---|---|
citus.executor_slow_start_interval | Waktu tunggu dalam milidetik antara membuka koneksi ke node pekerja yang sama |
citus.force_max_query_parallelization | Membuka koneksi sebanyak mungkin |
citus.max_adaptive_executor_pool_size | Koneksi pekerja maks per sesi |
citus.max_cached_conns_per_worker | Jumlah koneksi yang tetap terbuka untuk mempercepat perintah berikutnya |
citus.node_connection_timeout | Durasi maksimum (dalam milidetik) untuk menunggu pembentukan koneksi |
Transfer data
Nama | Deskripsi |
---|---|
citus.enable_binary_protocol | Menggunakan format serialisasi biner PostgreSQL (jika berlaku) untuk mentransfer data dengan pekerja |
citus.max_intermediate_result_size | Ukuran dalam KB hasil menengah untuk CTE dan subkueri yang tidak dapat didorong ke bawah |
Kebuntuan
Nama | Deskripsi |
---|---|
citus.distributed_deadlock_detection_factor | Waktu tunggu sebelum memeriksa kebuntuan terdistribusi |
citus.log_distributed_deadlock_detection | Apakah akan mencatat pemrosesan terkait deteksi kebuntuan terdistribusi di log server |
Tabel sistem
Simpul koordinator berisi tabel metadata dan tampilan untuk membantu Anda melihat properti data dan aktivitas kueri di seluruh kluster.
Nama | Deskripsi |
---|---|
citus_dist_stat_activity | Kueri terdistribusi yang dijalankan di semua node |
citus_lock_waits | Kueri diblokir di seluruh kluster |
citus_shards | Lokasi setiap pecahan, jenis tabel yang dimilikinya, dan ukurannya |
citus_stat_statements | Statistik tentang eksekusi kueri, dan untuk siapa |
citus_tables | Ringkasan semua tabel terdistribusi dan referensi |
citus_worker_stat_activity | Kueri tentang pekerja, termasuk tugas pada pecahan individu |
pg_dist_colocation | Pecahan tabel mana yang harus disatukan |
pg_dist_node | Informasi tentang simpul pekerja di kluster |
pg_dist_object | Objek seperti jenis dan fungsi yang telah dibuat pada node koordinator dan disebarkan ke node pekerja |
pg_dist_placement | Lokasi replika pecahan di node pekerja |
pg_dist_rebalance_strategy | Strategi yang dapat digunakan rebalance_table_shards untuk menentukan tempat memindahkan pecahan |
pg_dist_shard | Tabel, kolom distribusi, dan rentang nilai untuk setiap pecahan |
time_partitions | Informasi tentang setiap partisi yang dikelola oleh fungsi-fungsi seperti create_time_partitions dan drop_old_time_partitions |
Langkah berikutnya
- Pelajari beberapa kueri diagnostik yang berguna
- Tinjau daftar parameter konfigurasi dalam database PostgreSQL yang mendasarinya.