Baca dalam bahasa Inggris

Bagikan melalui


Menggabungkan partisi di Azure Cosmos DB (pratinjau)

BERLAKU UNTUK: NoSQL MongoDB

Menggabungkan partisi di Azure Cosmos DB (pratinjau) memungkinkan Anda mengurangi jumlah partisi fisik yang digunakan untuk kontainer Anda. Dengan penggabungan, kontainer yang terfragmentasi dalam throughput (memiliki RU/dtk rendah per partisi) atau penyimpanan (memiliki penyimpanan rendah per partisi) dapat membuat partisi fisiknya dikerjakan ulang. Jika throughput kontainer telah ditingkatkan dan perlu diperkecil, penggabungan dapat membantu menyelesaikan masalah fragmentasi throughput. Untuk jumlah yang sama dari RU/detik yang ditentukan, memiliki lebih sedikit partisi fisik berarti setiap partisi fisik mendapatkan lebih banyak dari keseluruhan RU/detik. Meminimalkan partisi mengurangi kemungkinan pembatasan kecepatan jika sejumlah besar data dihapus dari kontainer. dan RU/dtk per partisi rendah. Penggabungan dapat membantu membersihkan partisi yang tidak digunakan atau kosong, menyelesaikan masalah fragmentasi penyimpanan secara efektif.

Memulai

Untuk mulai menggunakan gabungan partisi, navigasikan ke halaman Fitur di akun Azure Cosmos DB Anda. Pilih dan aktifkan fitur Penggabungan Partisi (pratinjau).

Sebelum mengaktifkan fitur, verifikasi bahwa akun Azure Cosmos DB Anda memenuhi semua kriteria kelayakan pratinjau. Setelah Anda mengaktifkan fitur ini, diperlukan waktu 15-20 menit untuk diterapkan.

Perhatian

Saat penggabungan diaktifkan pada akun, hanya permintaan dari versi >.NET SDK = 3.27.0 atau Java SDK >= 4.42.0 atau konektor >Azure Cosmos DB Spark = 4.18.0 akan diizinkan di akun, terlepas dari apakah penggabungan sedang berlangsung atau tidak. Permintaan dari SDK lain (.NET SDK yang lebih lama, Java SDK yang lebih lama, SDK JavaScript apa pun, SDK Python apa pun, SDK Go apa pun) atau konektor yang tidak didukung (Azure Data Factory, Azure Search, Azure Functionsextension <= 3.x, Azure Stream Analytics, dan lainnya) akan diblokir dan gagal. Pastikan Anda telah meningkatkannya ke versi SDK yang didukung sebelum mengaktifkan fitur tersebut. Setelah fitur diaktifkan atau dinonaktifkan, mungkin perlu waktu 15-20 menit untuk sepenuhnya disebarluaskan ke akun. Jika Anda berencana untuk menonaktifkan fitur setelah selesai menggunakannya, mungkin perlu waktu 15-20 menit sebelum permintaan dari SDK dan konektor yang tidak didukung untuk penggabungan diizinkan.

Cuplikan layar panel Fitur dan fitur penggabungan Partisi.

Untuk memeriksa apakah akun Azure Cosmos DB memenuhi syarat untuk pratinjau, Anda dapat menggunakan pemeriksa kelayakan bawaan di portal Azure. Dari halaman gambaran umum akun Azure Cosmos DB Anda di portal Azure, navigasikan ke Diagnosis dan selesaikan masalah ->Throughput dan Penskalaan ->Penggabungan Partisi. Jalankan diagnostik Periksa kelayakan untuk pratinjau penggabungan partisi.

Cuplikan layar konten Throughput dan Penskalaan di halaman Mendiagnosis dan memecahkan masalah.

Cuplikan layar pemeriksaan kelayakan penggabungan dengan tabel semua kriteria kelayakan pratinjau.

Cara mengidentifikasi kontainer untuk digabungkan

Kontainer yang memenuhi kedua kondisi ini kemungkinan akan mendapat manfaat dari penggabungan partisi:

  • Kondisi 1: RU/dtk saat ini per partisi fisik adalah <3000 RU/dtk
  • Kondisi 2: Penyimpanan rata-rata saat ini dalam GB per partisi fisik adalah <20 GB

Kondisi 1 sering terjadi ketika Anda sebelumnya telah meningkatkan skala RU/dtk (sering kali untuk penyerapan data) dan sekarang ingin menurunkan skala dalam keadaan stabil. Kondisi 2 sering terjadi ketika Anda menghapus/TTL data dalam volume besar, meninggalkan partisi yang tidak digunakan.

Kondisi 1

Untuk menentukan RU/dtk saat ini per partisi fisik, dari akun Cosmos Anda, buka Metrik. Pilih metrik Throughput Partisi Fisik dan filter ke database dan kontainer Anda. Terapkan pemisahan dengan PhysicalPartitionId.

Untuk kontainer yang menggunakan skala otomatis, metrik ini menunjukkan RU/dtk maks yang saat ini disediakan pada setiap partisi fisik. Untuk kontainer yang menggunakan throughput manual, metrik ini menunjukkan RU/dtk manual pada setiap partisi fisik.

Dalam contoh di bawah ini, kami memiliki kontainer skala otomatis yang disediakan dengan 5000 RU/dtk (skala antara 500 - 5000 RU/dtk). Ini memiliki lima partisi fisik dan setiap partisi fisik memiliki 1000 RU/dtk.

Cuplikan layar Throughput Partisi Fisik metrik Azure Monitor di portal Azure.

Kondisi 2

Untuk menentukan penyimpanan rata-rata saat ini per partisi fisik, pertama-tama temukan penyimpanan keseluruhan (data + indeks) kontainer.

Navigasikan ke Data Penyimpanan>Wawasan>& Penggunaan Indeks. Total penyimpanan adalah jumlah penggunaan data dan indeks. Dalam contoh di bawah ini, kontainer memiliki total penyimpanan 74 GB.

Cuplikan layar metrik penyimpanan Azure Monitor(data + indeks) untuk kontainer di portal Azure.

Selanjutnya, temukan jumlah total partisi fisik. Metrik ini adalah jumlah PhysicalPartitionIds yang berbeda dalam bagan PhysicalPartitionThroughput yang kita lihat dalam Kondisi 1. Dalam contoh kami, kami memiliki lima partisi fisik.

Terakhir, hitung: Total penyimpanan dalam GB/jumlah partisi fisik. Dalam contoh kami, kami memiliki rata-rata (74 GB / lima partisi fisik) = 14,8 GB per partisi fisik.

Berdasarkan kondisi 1 dan 2, kontainer kami berpotensi mendapat manfaat dari penggabungan partisi.

Menggabungkan partisi fisik

Di PowerShell, saat bendera -WhatIf diteruskan, Azure Cosmos DB menjalankan simulasi dan mengembalikan hasil yang diharapkan dari penggabungan. Hasil ini dikembalikan meskipun penggabungan itu sendiri tidak berjalan. Saat bendera tidak diteruskan, penggabungan dijalankan terhadap sumber daya. Setelah selesai, perintah menghasilkan jumlah penyimpanan saat ini dalam KB per partisi fisik pasca-penggabungan.

Tip

Sebelum menjalankan penggabungan, sebaiknya atur RU/detik (baik RU/detik manual atau RU/detik maks skala otomatis) sedekat mungkin dengan RU/detik status stabil yang Anda inginkan pasca-penggabungan, untuk membantu memastikan sistem menghitung tata letak partisi yang efisien.

Gunakan Install-Module untuk menginstal modul Az.CosmosDB dengan fitur prarilis diaktifkan.

$parameters = @{
    Name = "Az.CosmosDB"
    AllowPrerelease = $true
    Force = $true
}
Install-Module @parameters

Untuk kontainer throughput yang disediakan, gunakan Invoke-AzCosmosDBSqlContainerMerge dengan -WhatIf parameter untuk mempratinjau penggabungan tanpa benar-benar melakukan operasi.

$parameters = @{
    ResourceGroupName = "<resource-group-name>"
    AccountName = "<cosmos-account-name>"
    DatabaseName = "<cosmos-database-name>"
    Name = "<cosmos-container-name>"
    WhatIf = $true
}
Invoke-AzCosmosDBSqlContainerMerge @parameters

Mulai penggabungan dengan menjalankan perintah yang sama tanpa -WhatIf parameter .

$parameters = @{
    ResourceGroupName = "<resource-group-name>"
    AccountName = "<cosmos-account-name>"
    DatabaseName = "<cosmos-database-name>"
    Name = "<cosmos-container-name>"
}
Invoke-AzCosmosDBSqlContainerMerge @parameters

Untuk database throughput bersama, mulai penggabungan dengan menggunakan az cosmosdb mongodb database merge.

az cosmosdb mongodb database merge \
	--account-name '<cosmos-account-name>'                               
	--name '<cosmos-database-name>'                                
	--resource-group '<resource-group-name>'

Memantau operasi penggabungan

Penggabungan partisi adalah operasi jangka panjang dan tidak ada SLA tentang berapa waktu yang diperlukan untuk menyelesaikannya. Waktu tersebut tergantung pada jumlah data dalam kontainer dan jumlah partisi fisik. Disarankan untuk memungkinkan setidaknya 5-6 jam sampai penggabungan selesai.

Saat penggabungan partisi berjalan pada kontainer Anda, jika Anda mengubah pengaturan kontainer (TTL, kebijakan pengindeksan, kunci unik, dll.), operasi penggabungan yang sedang berlangsung akan dibatalkan. Jika Anda meningkatkan RU saat penggabungan berjalan, operasi penggabungan yang sedang berlangsung akan dibatalkan dan RU/s kontainer Anda akan diperbarui dengan nilai baru Anda. Tergantung pada RU yang diminta, peningkatan skala Anda mungkin instan atau memakan waktu lebih lama. Jika Anda mengurangi RU/dtk saat penggabungan berjalan, RU/dtk akan langsung diperbarui ke RU/dtk baru. Penggabungan yang sedang berlangsung akan berlanjut, dengan jumlah partisi target yang sama berdasarkan RU/s yang ditetapkan pada saat penggabungan dipicu. Sebagai praktik terbaik, disarankan untuk menunggu hingga operasi penggabungan selesai sebelum mengubah pengaturan kontainer atau throughput Anda.

Anda dapat melacak apakah penggabungan masih berlangsung dengan memeriksa Log Aktivitas dan memfilter peristiwa Menggabungkan partisi fisik koleksi MongoDB atau Menggabungkan partisi fisik kontainer SQL.

Batasan

Berikut ini adalah batasan fitur penggabungan saat ini.

Kriteria kelayakan pratinjau

Untuk mendaftar dalam pratinjau, akun Azure Cosmos DB Anda harus memenuhi semua kriteria berikut:

  • Akun Azure Cosmos DB Anda menggunakan API untuk NoSQL atau MongoDB dengan versi >=3.6.
  • Akun Azure Cosmos DB menggunakan throughput yang disediakan (manual atau skala otomatis). Penggabungan tidak berlaku untuk akun tanpa server.
  • Akun Azure Cosmos DB Anda adalah akun wilayah tulis tunggal (penggabungan saat ini tidak didukung untuk akun tulis multi-wilayah).
  • Akun Azure Cosmos DB Anda tidak menggunakan salah satu fitur berikut:
  • Jika Anda menggunakan API untuk NoSQL, aplikasi Anda harus menggunakan Azure Cosmos DB .NET v3 SDK (versi 3.27.0 atau lebih tinggi) atau Java v4 SDK (versi 4.42.0 atau yang lebih tinggi). Saat pratinjau penggabungan diaktifkan di akun Anda, akun tidak menerima permintaan yang dikirim dari SDK non .NET/Java atau versi .NET/Java SDK yang lebih lama.
    • Tidak ada persyaratan SDK atau driver untuk menggunakan fitur dengan API untuk MongoDB.
  • Akun Azure Cosmos DB Anda tidak menggunakan konektor yang saat ini tidak didukung:
    • Azure Data Factory
    • Azure Stream Analytics
    • Logic Apps
    • Ekstensi <Azure Functions = 3.x (ekstensi Azure Functions 4.0 dan yang lebih tinggi didukung)
    • Pencarian Azure
    • Konektor < Azure Cosmos DB Spark 4.18.0
    • Pustaka atau alat pihak ketiga apa pun yang memiliki dependensi pada Azure Cosmos DB SDK yang bukan .NET v3 SDK >= v3.27.0 atau Java v4 SDK >= 4.42.0

Konfigurasi dan sumber daya akun

  • Penggabungan hanya tersedia untuk API untuk akun NoSQL dan MongoDB. Untuk API untuk akun MongoDB, versi akun MongoDB harus 3.6 atau lebih tinggi.
  • Penggabungan hanya tersedia untuk akun tulis wilayah tunggal. Dukungan akun tulis multi-wilayah tidak tersedia.
  • Akun yang menggunakan fungsi penggabungan juga tidak dapat menggunakan fitur-fitur ini (jika fitur ini ditambahkan ke akun yang diaktifkan penggabungan, akun tidak dapat menggabungkan sumber daya):
  • Setelah kontainer digabungkan, tidak dimungkinkan untuk membaca umpan perubahan dengan waktu mulai. Dukungan untuk fitur ini direncanakan untuk masa depan.

Persyaratan SDK (HANYA API untuk NoSQL)

Akun dengan fitur penggabungan diaktifkan hanya didukung saat Anda menggunakan versi terbaru .NET v3 SDK atau Java v4 SDK. Saat fitur tersebut diaktifkan di akun Anda (terlepas dari apakah Anda menjalankan penggabungan), Anda hanya boleh menggunakan SDK yang didukung menggunakan akun tersebut. Permintaan yang dikirim dari SDK lain atau versi yang lebih lama tidak diterima. Selama Anda menggunakan SDK yang didukung, aplikasi Anda dapat terus berjalan saat penggabungan sedang berlangsung.

Temukan versi terbaru SDK yang didukung:

SDK Versi yang didukung Link manajer paket
.NET SDK v3 >= 3.27.0 https://www.nuget.org/packages/Microsoft.Azure.Cosmos
Java SDK v4 >= 4.42.0 https://mvnrepository.com/artifact/com.azure/azure-cosmos

Dukungan untuk SDK lain direncanakan untuk masa depan.

Tip

Pastikan aplikasi Anda telah diperbarui untuk menggunakan versi SDK yang kompatibel sebelum mendaftar dalam pratinjau. Jika Anda menggunakan SDK warisan, ikuti panduan migrasi yang sesuai:

Konektor yang tidak didukung

Jika Anda mendaftar dalam pratinjau, konektor berikut gagal.

  • Azure Data Factory ¹
  • Azure Stream Analytics ¹
  • Logic Apps ¹
  • Ekstensi <Azure Functions = 3.x (ekstensi Azure Functions 4.0 dan yang lebih tinggi didukung) ¹
  • Azure Search ¹
  • Konektor < Azure Cosmos DB Spark 4.18.0
  • Pustaka atau alat pihak ketiga apa pun yang memiliki dependensi pada Azure Cosmos DB SDK yang bukan .NET v3 SDK >= v3.27.0 atau Java v4 SDK >= 4.42.0

¹ Dukungan untuk konektor ini direncanakan untuk masa depan.

Langkah berikutnya