Bagikan melalui


Menentukan jenis aplikasi untuk Azure Cosmos DB for PostgreSQL

BERLAKU UNTUK: Azure Cosmos DB for PostgreSQL (didukung oleh ekstensi database Citus ke PostgreSQL)

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.

Melihat sekilas

Aplikasi Multi-Penyewa Aplikasi Real Time
Kadang-kadang lusinan atau ratusan meja 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 per 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 dimensi alami untuk mendistribusikan data di seluruh node: hanya dipecah oleh 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 penggabungan informasi dari seluruh 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 Real-Time

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, seringkali berpusat di sekitar tabel besar peristiwa perangkat, situs atau pengguna dan membutuhkan volume serap tinggi dari sebagian besar data yang tidak dapat diubah. 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