This is the Trace Id: b49b01c833b9180055bc59cf5e92bc2b
Lompati ke konten utama
Azure

Apa itu pemecahan database?

Sharding database adalah metode penskalaan horizontal yang meningkatkan kinerja solusi dan ketersediaan di seluruh sistem terdistribusi global.

Definisi sharding database

Sharding database mengacu pada proses membagi database besar menjadi segmen yang lebih kecil dan mudah dikelola yang dikenal sebagai shard. Metode ini mendukung penskalaan horizontal sehingga aplikasi dan sistem dapat menangani pertumbuhan data dan volume pengguna tanpa memengaruhi kinerja atau ketersediaan. Organisasi menggunakan strategi sharding untuk mengatasi batasan penyimpanan dan tantangan lain yang terkait dengan penskalaan database di lingkungan cloud modern.

  • Sharding database didefinisikan sebagai metode penskalaan horizontal yang membagi database menjadi shard independen yang berjalan di arsitektur tanpa berbagi (SNA).
  • Data dibagi di antara shard menggunakan kunci shard, yang memungkinkan aplikasi mengarahkan permintaan ke shard yang sesuai.
  • Data biasanya dibagi di antara shard menggunakan nilai numerik, algoritme hash, direktori pencarian, atau lokasi geografis.
  • Keuntungan sharding database mencakup peningkatan kinerja kueri, dukungan untuk skalabilitas horizontal, dan toleransi kegagalan yang lebih tinggi.
  • Kasus penggunaan sharding meliputi platform perbankan, e-niaga, dan media sosial, yang sering kali harus menangani pertumbuhan cepat atau lonjakan data atau pengguna.

Bagaimana cara kerja sharding database?

Sharding database adalah teknik yang digunakan untuk menskalakan database besar secara horizontal dengan membaginya menjadi bagian yang lebih kecil dan independen yang disebut shard. Setiap shard beroperasi sebagai database terpisah yang berisi subset berbeda dari keseluruhan data, tetapi mempertahankan skema yang sama. Hal ini memungkinkan shard secara kolektif membentuk database logis tunggal meskipun berjalan di server terpisah.

Sharding database mengikuti arsitektur tanpa berbagi (SNA), model komputasi terdistribusi tempat setiap shard beroperasi sendiri tanpa berbagi sumber daya pemrosesan, memori, atau penyimpanan dengan shard lain.

Kunci shard—bidang atau kombinasi bidang tertentu dalam data—menentukan data yang akan disimpan di setiap shard. Ketika aplikasi perlu membaca atau menulis data, aplikasi menggunakan kunci shard untuk merutekan permintaan ke shard yang sesuai.

Strategi sharding

Organisasi mengelola data yang didistribusikan di beberapa shard dengan berbagai cara. Berikut adalah beberapa strategi umum:

  • Sharding berbasis rentang atau sharding dinamis: Data dibagi berdasarkan rentang nilai dalam kunci shard. Misalnya, satu shard dalam database e-niaga dapat diberikan nomor ID pelanggan 1–1.000.000, sementara shard lain dapat diberikan nomor ID pelanggan 1.000.001–2.000.000. Metode ini efisien untuk kueri rentang, tetapi dapat mengakibatkan distribusi yang tidak merata jika rentang tertentu lebih sering diakses.
  • Sharding berbasis hash:Data didistribusikan secara merata di seluruh shard dengan menerapkan rumus matematika yang disebut algoritme hash untuk setiap kunci shard. Pendekatan ini membantu mencegah kelebihan beban, tetapi dapat menyebarkan data terkait ke beberapa shard, sehingga kueri rentang menjadi kurang efisien.
  • Sharding berbasis direktori atau berbasis pencarian: Peta shard menunjukkan kunci shard mana yang sesuai dengan data tertentu. Strategi ini menawarkan fleksibilitas untuk menambahkan lebih banyak kunci shard dengan cepat sesuai kebutuhan, tetapi menambah kompleksitas dan potensi overhead.
  • Sharding geografis: Data dipartisi berdasarkan lokasi geografis, sehingga mengurangi latensi untuk pengguna di berbagai wilayah dan mendukung persyaratan residensi data. Banyak platform memadukan sharding geografis dengan replikasi database untuk ketahanan yang lebih besar.

Pelajari selengkapnya tentang database.

Apa manfaat utama sharding database?

Sharding database memerlukan pemilihan kunci shard dan strategi sharding yang cermat serta pengoptimalan perutean kueri. Berikut adalah beberapa keuntungan utama dari sharding database:

  • Meningkatkan kinerja kueri:Dengan mendistribusikan data di beberapa shard, database dapat lebih cepat mengambil himpunan data yang diperlukan untuk menjalankan setiap kueri. Hal ini menghasilkan waktu respons yang lebih cepat.
  • Mendukung skalabilitas horizontal: Alih-alih meningkatkan kapasitas sumber daya di satu server, organisasi dapat mengakomodasi volume data dan beban kerja yang berkembang dengan menskalakan dan menambahkan lebih banyak shard (dan server). Pelajari selengkapnya tentang peningkatan skala vs. peluasan skala.
  • Memperkuat toleransi kegagalan: Karena pecahan menggunakan pendekatan SNA, setiap shard terisolasi dari yang lain. Masalah apa pun yang memengaruhi satu shard tidak memengaruhi yang lain, sehingga sistem lebih andal. Replikasi data di seluruh shard semakin melindungi ketersediaan sistem.
  • Mendorong efisiensi biaya:Shard data memiliki persyaratan perangkat keras dan perangkat lunak yang lebih sedikit daripada database besar, yang sering kali memerlukan server kelas atas yang memakan biaya.

Membantu mengoptimalkan beban kerja AI: Database monolitik yang kompleks dapat memperlambat kemampuan AI untuk mengakses data, membuat prediksi, dan belajar seiring waktu. Sharding mendukung pembuatan lingkungan yang terdistribusi dan kaya data sehingga AI dapat berfungsi lebih efektif.

Contoh shard database berdasarkan industri

Sharding database sangat berguna khususnya untuk solusi berbasis cloud yang mengalami pertumbuhan cepat atau lonjakan tidak terduga dalam lalu lintas data atau pengguna. Kasus penggunaan berikut menunjukkan cara agar sharding dapat diterapkan di seluruh industri:

  • E-niaga: Platform ritel membagi data pelanggan dan pesanan di seluruh shard, sehingga memastikan pencarian produk yang cepat dan pengalaman checkout yang lancar selama periode belanja puncak.
  • Jasa keuangan: Catatan transaksi perbankan dan keuangan lainnya dipisahkan menurut tanggal atau nomor rekening, sehingga mendukung kueri yang efisien serta penyimpanan aman dan dapat diskalakan.
  • Gaming online: Data pemain atau sesi dibagi berdasarkan ID kawasan dan pengguna, sehingga menyeimbangkan beban di seluruh shard dan meminimalkan latensi (waktu yang diperlukan data untuk melakukan perjalanan ke tujuannya) bagi audiens global.
  • Media sosial: Platform media sosial membagi data profil pengguna dan umpan aktivitas berdasarkan ID pengguna atau rentang waktu. Pendekatan ini memungkinkan platform mengkueri postingan terbaru dengan cepat dan mendukung jutaan pengguna bersamaan.
  • Perangkat lunak sebagai layanan (SaaS): Aplikasi SaaS yang memiliki beberapa penyewa biasanya membagi data berdasarkan ID penyewa, yang mengisolasi data pelanggan dan menyederhanakan manajemen seiring bertambahnya basis pengguna. Aplikasi juga dapat membaginya berdasarkan beban kerja penyewa atau lokasi geografis.

Pelajari selengkapnya tentang cara analitik big data bekerja.

Masa depan sharding database

Dengan mendistribusikan data di beberapa server independen, shard mengurangi beban pada server tunggal, meminimalkan hambatan, serta meningkatkan ketersediaan dan respons sistem. Keuntungan menggunakan sharding database di lingkungan cloud modern akan semakin meningkat seiring berkembangnya AI dan teknologi terkait lainnya.

Tren yang perlu diperhatikan meliputi:

Alur kerja sharding yang dibantu AI

Fitur cerdas, seperti pemilihan kunci shard otomatis, penyeimbangan ulang beban kerja, dan perutean kueri, akan menjadi lebih utama.

Keuntungan: Operasi yang disederhanakan dan dioptimalkan serta skalabilitas yang belum pernah terjadi sebelumnya

Resharding tanpa waktu henti

Platform data modern akan semakin mendukung perubahan kunci shard tanpa memerlukan waktu henti data atau migrasi data kompleks.

Keuntungan: Fleksibilitas yang lebih besar untuk memperbarui strategi sharding seiring perkembangan beban kerja

Sharding dikombinasikan dengan database tanpa server

Database tanpa server menyediakan dan mengelola server secara independen untuk setiap shard. Database juga menskalakan kapasitas naik atau turun sesuai permintaan berdasarkan kueri yang dipicu oleh peristiwa.

Keuntungan: Pengurangan overhead operasional

Sharding geografis yang adaptif dan berbasis kebijakan

Alur kerja sharding otomatis secara otomatis merutekan data di seluruh shard geografis berdasarkan aturan kebijakan geo khusus yang disematkan dalam kode. Keuntungan: Kepatuhan lebih cepat terhadap perubahan persyaratan regulasi dan privasi

Pelajari selengkapnya tentang komputasi cloud.

Tanya jawab umum

  • Sharding database adalah proses penskalaan database besar secara horizontal di beberapa server, masing-masing meng-hosting shard dengan subset data yang berbeda dari keseluruhan data. Sharding digunakan untuk menangani volume data dan lalu lintas pengguna yang berkembang secara efisien dengan menyebarkan kueri dan penyimpanan di seluruh komputer, alih-alih mengandalkan satu server besar.
  • Sharding dan partisi sama-sama mengoptimalkan operasi database dengan memecah database besar menjadi subset yang lebih kecil. Akan tetapi, sementara partisi membagi data di server yang sama, sharding mendistribusikan data ke beberapa server. Replikasi berarti mempertahankan beberapa salinan himpunan data yang sama di server berbeda sebagai redundansi. 
  • Ya, sharding database meningkatkan kinerja dan skalabilitas aplikasi. Dengan mendistribusikan data dan beban kerja di seluruh shard, sharding mengurangi waktu respons kueri dan meningkatkan toleransi kegagalan. Organisasi juga dapat menskalakan aplikasi secara horizontal. Pemilihan kunci shard dan strategi shard sangat penting untuk mengoptimalkan pecahan data.
  • Ya, Azure dan platform cloud lainnya menawarkan dukungan bawaan untuk sharding database. Misalnya, Azure SQL Database menyediakan beberapa alat untuk mengoptimalkan penskalaan database, termasuk pustaka klien yang menyederhanakan pembuatan dan manajemen sharding.