Bagikan melalui


Model aplikasi transaksional throughput tinggi di Azure Cosmos DB for PostgreSQL

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

Filter umum sebagai kunci shard

Untuk memilih kunci shard untuk aplikasi transaksional throughput tinggi, ikuti panduan berikut:

  • Pilih kolom yang digunakan untuk pencarian titik dan ada di sebagian besar operasi buat, baca, perbarui, dan hapus.
  • Pilih kolom yang merupakan dimensi alami dalam data, atau bagian utama dari aplikasi. Misalnya:
    • Dalam beban kerja IOT, device_id adalah kolom distribusi yang baik.

Pilihan kunci shard yang baik membantu mengoptimalkan hop jaringan, sambil memanfaatkan memori dan komputasi untuk mencapai latensi milidetik.

Model data optimal untuk aplikasi throughput tinggi

Di bawah ini adalah contoh model data sampel untuk aplikasi IoT yang mengambil telemetri (data deret waktu) dari perangkat. Ada dua tabel untuk menangkap telemetri: devices dan events. Mungkin ada tabel lain, tetapi tidak tercakup dalam contoh ini.

Diagram tabel peristiwa dan perangkat, serta partisi peristiwa.

Saat membangun aplikasi dengan throughput tinggi, ingatlah beberapa pengoptimalan.

  • Distribusikan tabel besar pada kolom umum yang merupakan bagian utama aplikasi, dan kolom yang sebagian besar dikueri aplikasi Anda. Dalam contoh aplikasi IoT di atas, device_id adalah kolom tersebut, dan kolom tersebut menempatkan bersama tabel kejadian dan perangkat.
  • Tabel kecil lainnya dapat menjadi tabel referensi.
  • Karena aplikasi IOT memiliki dimensi waktu, partisi tabel terdistribusi Anda berdasarkan waktu. Anda dapat menggunakan kemampuan rangkaian waktu Azure Cosmos DB for PostgreSQL asli untuk membuat dan memelihara partisi.
    • Partisi membantu memfilter data secara efisien untuk kueri dengan filter waktu.
    • Data lama yang kedaluwarsa juga cepat, menggunakan perintah DROP vs DELETE.
    • Tabel kejadian dalam contoh kami dipartisi berdasarkan bulan.
  • Gunakan jenis data JSONB untuk menyimpan data semi terstruktur. Data telemetri perangkat biasanya tidak terstruktur, setiap perangkat memiliki metriknya sendiri.
    • Dalam contoh kami, tabel kejadian memiliki kolom detail, yaitu JSONB.
  • Jika aplikasi IoT Anda memerlukan fitur geospasial, Anda dapat menggunakan ekstensi PostGIS, yang didukung Oleh Azure Cosmos DB for PostgreSQL secara asli.

Langkah berikutnya

Sekarang kita telah selesai mempelajari pemodelan data untuk aplikasi yang dapat diskalakan. Langkah selanjutnya adalah menyambungkan dan mengkueri database dengan bahasa pemrograman pilihan Anda.