Jelaskan Azure Cosmos DB

Selesai

Tim pengembangan Anda memiliki pengalaman bekerja dengan penyimpanan data nonrelasional. Anda ingin menggunakan pengalaman ini untuk memperluas fungsionalitas solusi cloud-native untuk menyertakan pemrosesan dan penyimpanan telemetri IoT yang dihasilkan oleh appliance pintar. Setelah menjelajahi penawaran NoSQL yang dikelola Azure, Anda memutuskan untuk menggunakan Azure Cosmos DB. Informasi berikut dapat membantu Anda mengonfirmasi kesesuaiannya sebagai penyimpanan data persisten untuk data telemetri.

Apa itu Cosmos DB?

Azure Cosmos DB adalah database NoSQL berbasis cloud yang dikelola secara penuh. Cosmos DB adalah salah satu layanan dasar Azure, yang berarti tersedia di setiap wilayah Azure.

Sebagai layanan terkelola, Azure Cosmos DB menghilangkan sebagian besar tugas administratif database tradisional, seperti pembaruan atau patching mesin database dasar. Cosmos DB menawarkan skalabilitas otomatis dan instan, dengan jaminan yang didukung Perjanjian Tingkat Layanan (SLA) terkait performa dan responsivitasnya. Cosmos DB juga menyediakan serangkaian fitur ketahanan yang membedakannya dari database relasional. Fitur-fitur ini termasuk replika yang didistribusikan secara global dengan tulisan multi-wilayah dan kemampuan untuk menerapkan lima model konsistensi yang berbeda, mulai dari kuat hingga akhirnya terjadi.

Karakteristik unik lain dari Azure Cosmos DB adalah dukungan untuk beberapa API database. Saat menyediakan Azure Cosmos DB, Anda dapat memilih platform pengembangan pilihan Anda dari antara API Core (NoSQL) asli, API untuk MongoDB, Cassandra API, Gremlin API, dan Table API. Dengan Azure Cosmos DB for NoSQL API, Anda memiliki fleksibilitas untuk memilih platform pengembangan pilihan Anda, seperti .NET SDK, Java SDK, Node.js, atau Python.

Apa keuntungan Cosmos DB daripada database relasional?

Salah satu karakteristik umum dari sistem database relasional adalah penggunaan penguncian, yang menjamin perilaku transaksional mereka. Jaminan ini membantu memastikan konsistensi data yang kuat dalam setiap database. Meskipun konsistensi tersebut diinginkan dalam banyak skenario, konsistensi tersebut memiliki efek negatif pada konkurensi, latensi, dan ketersediaan. Mengurangi implikasi negatif ini dapat dilakukan dengan membagi database menjadi beberapa pecahan, tetapi pendekatan ini kompleks untuk diterapkan dan dikelola.

Azure Cosmos DB membahas kelemahan ini melalui kombinasi dukungannya untuk berbagai model konsistensi, replikasi bawaan, dan penulisan beberapa wilayah dengan mekanisme penyelesaian konflik yang dapat dikonfigurasi. Dukungan ini memberikan manfaat performa dan ketahanan yang signifikan dalam skenario di mana konsistensi yang kuat bukanlah persyaratan. Pada saat yang sama, Cosmos DB juga mendukung transaksi sisi server, jika konsistensi tersebut diperlukan.

Apa itu model sumber daya Cosmos DB?

Untuk menerapkan Azure Cosmos DB, Anda harus terlebih dahulu membuat akun Azure Cosmos DB di langganan Azure Anda. Akun tersebut berfungsi sebagai unit distribusi dan ketersediaan yang tinggi. Anda memiliki opsi untuk mengonfigurasi akun untuk direplikasi di beberapa wilayah dan membuat masing-masing replika ini dapat ditulis. Anda juga dapat mengonfigurasi tingkat konsistensi default untuk akun.

Saat Anda menggunakan SQL API, API untuk MongoDB, atau Gremlin API, akun dapat berisi satu atau beberapa database, dengan masing-masing menghosting satu atau beberapa kontainer. Kontainer adalah unit skalabilitas, memungkinkan Anda untuk menunjuk sumber daya komputasi dan penyimpanan untuk memproses kontennya. Konten tersebut, jika ada API SQL atau API untuk MongoDB, mengambil format dokumen berformat JSON yang disebut sebagai item, tanpa batasan spesifik yang ditentukan skema. Secara default, Azure Cosmos DB secara otomatis mengindeks semua item dalam kontainer tanpa memerlukan indeks eksplisit atau manajemen skema, tetapi memberi Anda opsi untuk menyesuaikan perilaku pengindeksan.

Jumlah sumber daya yang tersedia untuk memproses data dalam database atau koleksi individualnya tergantung pada jumlah Unit Permintaan (RU) yang tersedia. Jumlah RU didasarkan pada database atau konfigurasi kontainer yang Anda tentukan. Cosmos DB menawarkan tiga mode yang menentukan alokasi RU, tergantung pada preferensi Anda.

  • Mode throughput yang disediakan. Dalam mode ini, Anda menunjuk sejumlah RU tertentu untuk menggambarkan pola penggunaan yang diharapkan. Pendekatan ini menawarkan kejelasan paling tinggi tentang performa dan biaya yang dihasilkan.
  • Mode penyesuain sumber daya. Dalam mode ini, Anda menetapkan jumlah RU terlebih dahulu yang Anda anggap cukup untuk memenuhi persyaratan dasar Anda, tetapi memungkinkan peningkatan otomatis jika ada permintaan akses data yang lebih tinggi. Mode ini paling cocok untuk beban kerja penugasan-kritis dengan pola penggunaan variabel atau tidak dapat diprediksi.
  • Mode tanpa server. Dalam mode ini, Anda tidak perlu melakukan penetapan RU terlebih dahulu. Sebaliknya, Anda mengandalkan kemampuan penyesuaian sumber daya Azure Cosmos DB untuk meningkatkan atau mengurangi jumlah sumber daya pemrosesan. Mode ini mungkin bermanfaat dari sudut biaya, jika beban kerja Anda dapat mentolerir latensi sementara setelah periode tidak aktifnya database.

Apa manfaat dan kasus penggunaan Cosmos DB dalam skenario Azure IoT?

Azure Cosmos DB menawarkan banyak kemampuan yang membuatnya cocok untuk skenario IoT, termasuk:

  • Partisi. Azure Cosmos DB secara otomatis mempartisi kontainer dengan menggunakan kunci partisi logis yang Anda tentukan. Partisi adalah mekanisme inti di balik skalabilitas dan ketahanan Azure Cosmos DB. Dengan memilih kunci partisi, Anda dapat mengakomodasi skenario IoT yang memerlukan penyimpanan dan pemrosesan volume perangkat yang besar dan data telemetri.

    Catatan

    Partisi logika tidak boleh melebihi ukuran 20 GB.

  • Waktu Hidup (TTL). Dengan TTL, Azure Cosmos DB dapat secara otomatis menghapus item setelah periode yang Anda tentukan. Otomatisasi ini menyederhanakan manajemen siklus hidup data dan menurunkan biaya, karena penghapusan berbasis TTL tidak dihitung dalam penggunaan RU.

  • Umpan perubahan. Azure Cosmos DB menggunakan umpan perubahan untuk memicu tindakan secara otomatis setelah perubahan pada item koleksi. Pemicu otomatis ini menyederhanakan penerapan pola desain IoT umum, yang bergantung pada perubahan data untuk memicu tindakan yang sesuai.

  • Perjanjian Tingkat Layanan (SLA) untuk performa dan ketahanan. Di skenario IoT yang melibatkan data streaming dalam volume besar, pelanggan dapat mengandalkan keterlambatan kurang dari 10-ms untuk persentil ke-99 dari bacaan dan tulisan, dan ketersediaan 99,999% untuk penulisan beberapa wilayah.

  • Database tanpa skema. Azure Cosmos DB mengakomodasi penyimpanan berbagai jenis telemetri yang dihasilkan oleh model perangkat yang berbeda dalam koleksi yang sama, dengan menghilangkan batasan berbasis skema.

  • Pengindeksan otomatis. Dukungan pengindeksan Azure Cosmos DB berkontribusi pada pencarian yang cepat dan fleksibel di seluruh data dalam volume besar yang berisi inventaris perangkat terdaftar dan telemetrinya.

Azure Cosmos DB mengakomodasi dua kasus penggunaan IoT utama:

  • Ini menyimpan telemetri perangkat, yang memfasilitasi akses cepat ke data telemetri untuk visualisasi, pasca-pemrosesan, dan analitik.
  • Ini menyimpan katalog perangkat, yang mengakomodasi pemodelan perangkat IoT, entitas, dan topologinya, dengan setiap perangkat diwakili oleh item.