Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Azure Cosmos DB for PostgreSQL tidak lagi didukung untuk proyek baru. Jangan gunakan layanan ini untuk proyek baru. Sebagai gantinya, gunakan salah satu dari dua layanan ini:
Gunakan Azure Cosmos DB for NoSQL untuk solusi database terdistribusi yang dirancang untuk skenario skala tinggi dengan perjanjian tingkat layanan ketersediaan (SLA) 99,999%, skala otomatis instan, dan failover otomatis di beberapa wilayah.
Gunakan fitur Elastic Clusters dari Azure Database For PostgreSQL untuk PostgreSQL yang dipecah menggunakan ekstensi Citus sumber terbuka.
Menjalankan kueri yang efisien pada kluster mengharuskan tabel didistribusikan dengan benar di seluruh server. Distribusi yang direkomendasikan bervariasi menurut jenis aplikasi dan pola kuerinya.
Ada dua jenis aplikasi yang bekerja dengan baik di Azure Cosmos DB for PostgreSQL. Langkah pertama dalam pemodelan data adalah mengidentifikasi mana yang lebih mirip dengan aplikasi Anda.
Sekilas Pandang
| Aplikasi Multi-Tenant | Aplikasi Real Time |
|---|---|
| Kadang-kadang lusinan atau ratusan tabel dalam skema | Sejumlah kecil tabel |
| Kueri yang berkaitan dengan satu penyewa (perusahaan/toko) pada satu waktu | Kueri analitik yang relatif sederhana dengan agregasi |
| Beban kerja OLTP untuk melayani klien web | Volume penyerapan tinggi dari sebagian data yang tidak dapat diubah |
| Beban kerja OLAP yang melayani kueri analitik untuk masing-masing penyewa | Sering berpusat di sekitar tabel peristiwa besar |
Contoh dan Karakteristik
Aplikasi Multi-Tenant
Aplikasi ini biasanya merupakan aplikasi SaaS yang melayani perusahaan, akun, atau organisasi lain. Sebagian besar aplikasi SaaS bersifat relasional secara inheren. Aplikasi SaaS memiliki cara yang alami untuk mendistribusikan data di seluruh node: cukup dipecah berdasarkan tenant_id.
Azure Cosmos DB for PostgreSQL memungkinkan Anda untuk menskalakan database Anda ke jutaan penyewa tanpa harus merancang ulang aplikasi Anda. Anda dapat menyimpan semantik relasional yang Anda butuhkan, seperti gabungan, kendala kunci asing, transaksi, ACID, dan konsistensi.
- Contoh: Situs web yang menghosting store-front untuk bisnis lain, seperti solusi pemasaran digital, atau alat otomatisasi penjualan.
- Karakteristik: Kueri yang berkaitan dengan penyewa tunggal daripada menggabungkan informasi dari beberapa penyewa. Ini mencakup beban kerja OLTP untuk melayani klien web, dan beban kerja OLAP yang melayani kueri analitik per penyewa. Memiliki lusinan atau ratusan tabel dalam skema database Anda juga merupakan indikator untuk model data multi-penyewa.
Penskalaan aplikasi multi-penyewa dengan Azure Cosmos DB for PostgreSQL juga memerlukan perubahan minimal pada kode aplikasi. Kami memiliki dukungan untuk kerangka kerja populer seperti Ruby on Rails dan Django.
Analitik Waktu Nyata
Aplikasi membutuhkan paralelisme besar-besaran, mengoordinasikan ratusan inti untuk hasil yang cepat untuk kueri numerik, statistik, atau penghitungan. Dengan memecah dan menyejajarkan kueri SQL di beberapa simpul, Azure Cosmos DB for PostgreSQL memungkinkan untuk melakukan kueri real-time di miliaran rekaman dalam waktu kurang dari satu detik.
Tabel dalam model data analitik real time biasanya didistribusikan oleh kolom seperti user_id, host_id, atau device_id.
- Contoh: Dasbor analitik yang berhadapan dengan pelanggan memerlukan waktu respons sub-detik.
- Karakteristik: Beberapa tabel, sering kali berpusat pada tabel besar peristiwa perangkat, situs, atau pengguna dan membutuhkan volume penyerapan yang tinggi dari data yang sebagian besar tidak berubah. Kueri analitik yang relatif sederhana (tetapi intensif secara komputasi) melibatkan beberapa agregasi dan GROUP BYs.
Jika situasi Anda mirip dengan salah satu kasus di atas, maka langkah selanjutnya adalah memutuskan cara memecah data Anda di kluster. Pilihan kolom distribusi administrator database harus sesuai dengan pola akses kueri umum untuk memastikan performa.
Langkah berikutnya
- Pilih kolom distribusi untuk tabel di aplikasi Anda untuk mendistribusikan data secara efisien