Apa itu serpihan basis data?

Serpihan basis data adalah proses menyimpan basis data besar di beberapa mesin. Sebuah mesin tunggal, atau server basis data, hanya dapat menyimpan dan memproses data dalam jumlah terbatas. Serpihan basis data mengatasi keterbatasan ini dengan membagi data menjadi potongan yang lebih kecil, yang disebut serpihan, dan menyimpannya di beberapa server basis data. Semua server basis data biasanya memiliki teknologi dasar yang sama, dan mereka bekerja sama untuk menyimpan dan memproses data dalam volume besar.

Mengapa sharding basis data penting?

Seiring berkembangnya aplikasi, jumlah pengguna aplikasi dan jumlah data yang disimpan meningkat seiring waktu. Basis data menjadi hambatan jika volume data menjadi terlalu besar dan terlalu banyak pengguna mencoba menggunakan aplikasi untuk membaca atau menyimpan informasi secara bersamaan. Aplikasi melambat dan memengaruhi pengalaman pelanggan. Sharding basis data adalah salah satu metode untuk memecahkan masalah ini karena memungkinkan pemrosesan paralel set data yang lebih kecil di seluruh serpihan.

Apa saja manfaat dari sharding basis data?

Organisasi menggunakan sharding basis data untuk mendapatkan manfaat berikut:

Meningkatkan waktu respons

Pengambilan data membutuhkan waktu lebih lama pada basis data besar tunggal. Sistem manajemen basis data perlu mencari melalui banyak baris untuk mengambil data yang benar. Sebaliknya, serpihan data memiliki lebih sedikit baris daripada keseluruhan basis data. Oleh karena itu, dibutuhkan lebih sedikit waktu untuk mengambil informasi spesifik, atau menjalankan kueri, dari serpihan basis data. 

Menghindari pemadaman layanan total

Jika komputer yang melakukan hosting basis data gagal, aplikasi yang tergantung pada basis data akan gagal juga. Sharding basis data mencegah hal ini dengan mendistribusikan bagian-bagian dari basis data ke komputer yang berbeda. Kegagalan dari salah satu komputer tidak menutup aplikasi karena dapat beroperasi dengan serpihan fungsional lainnya. Sharding juga sering dilakukan dalam kombinasi dengan replikasi data di seluruh serpihan. Jadi, jika satu serpihan menjadi tidak tersedia, data dapat diakses dan dipulihkan dari serpihan alternatif.

Menskalakan secara efisien

Basis data yang meningkat mengonsumsi lebih banyak sumber daya komputasi dan akhirnya mencapai kapasitas penyimpanan. Organisasi dapat menggunakan sharding basis data untuk menambahkan lebih banyak sumber daya komputasi untuk mendukung penskalaan basis data. Mereka dapat menambahkan serpihan baru saat waktu aktif tanpa menutup aplikasi untuk pemeliharaan.

Bagaimana cara kerja sharding basis data?

Sebuah basis data menyimpan informasi dalam beberapa set data yang terdiri dari kolom dan baris. Sharding basis data membagi satu set data menjadi partisi atau serpihan. Setiap serpihan berisi barisan informasi unik yang dapat Anda simpan secara terpisah di beberapa komputer, yang disebut simpul. Semua serpihan berjalan pada simpul terpisah tetapi berbagi skema basis data asli atau desain. 

Misalnya, basis data tidak diserpihkan yang berisi set data untuk catatan pelanggan mungkin tampak seperti berikut.

ID Pelanggan

Nama

Negara Bagian

1

John

California

2

Jane

Washington

3

Paulo

Arizona

4

Wang

Georgia

Sharding melibatkan pemisahan deretan informasi yang berbeda dari tabel dan menyimpannya pada mesin yang berbeda, seperti yang ditunjukkan berikut ini.

Komputer A

ID Pelanggan

Nama

Negara Bagian

1

John

California

2

Jane

Washington

Komputer B

ID Pelanggan

Nama

Negara Bagian

3

Paulo

Arizona

4

Wang

Georgia

Shards

Potongan data yang dipartisi disebut serpihan logis. Mesin yang menyimpan serpihan logis disebut serpihan fisik atau simpul basis data. Serpihan fisik dapat berisi beberapa serpihan logis. 

Kunci serpihan

Developer perangkat lunak menggunakan kunci serpihan untuk menentukan cara mempartisi set data. Sebuah kolom dalam set data menentukan baris data yang dikelompokkan bersama-sama untuk membentuk serpihan. Desainer basis data memilih kunci serpihan dari kolom yang ada atau membuat yang baru.

Arsitektur shared-nothing

Sharding basis data beroperasi pada arsitektur shared-nothing. Setiap serpihan fisik beroperasi secara independen dan tidak mengetahui serpihan lainnya. Hanya serpihan fisik yang berisi data yang Anda minta akan memproses data secara paralel untuk Anda. 

Lapisan perangkat lunak mengoordinasikan penyimpanan data dan akses dari beberapa serpihan ini. Misalnya, beberapa tipe teknologi basis data memiliki fitur sharding otomatis bawaan. Developer perangkat lunak juga dapat menulis kode sharding dalam aplikasi mereka untuk menyimpan atau mengambil informasi dari satu serpihan atau beberapa serpihan yang benar. 

Apa saja metode sharding basis data?

Metode sharding basis data menerapkan aturan yang berbeda untuk kunci serpihan untuk menentukan simpul yang benar untuk baris data tertentu. Berikut ini adalah arsitektur sharding umum.

Sharding berbasis rentang

Sharding berbasis rentang, atau sharding dinamis, membagi baris basis data berdasarkan rentang nilai. Lalu desainer basis data memberikan kunci serpihan ke masing-masing rentang. Misalnya, desainer basis data mempartisi data menurut alfabet pertama pada nama pelanggan sebagai berikut. 

 

Nama

Kunci serpihan

Dimulai dengan A hingga I

A

Dimulai dengan J hingga S

B

Dimulai dengan T hingga Z

C

 

Ketika menuliskan catatan pelanggan ke basis data, aplikasi menentukan kunci serpihan yang benar dengan memeriksa nama pelanggan. Lalu aplikasi mencocokkan kunci ke simpul fisik dan menyimpan baris pada mesin tersebut. Demikian pula, aplikasi melakukan pencocokan terbalik saat mencari catatan tertentu.

Pro dan kontra

Tergantung pada nilai data, sharding berbasis rentang dapat mengakibatkan kelebihan muatan data pada simpul fisik tunggal. Dalam contoh kita, serpihan A (berisi nama yang dimulai dengan huruf A hingga I) mungkin berisi jumlah baris data yang jauh lebih besar daripada serpihan C (berisi nama yang dimulai dengan huruf T hingga Z). Namun, ini lebih mudah untuk diimplementasikan.

Sharding berbasis hash

Sharding berbasis hash memberikan kunci serpihan untuk setiap baris basis data dengan menggunakan rumus matematika yang disebut fungsi hash. Fungsi hash mengambil informasi dari baris dan menghasilkan nilai hash. Aplikasi ini menggunakan nilai hash sebagai kunci serpihan dan menyimpan informasi dalam serpihan fisik yang sesuai.

Developer perangkat lunak menggunakan sharding berbasis hash untuk mendistribusikan informasi secara merata dalam basis data di antara beberapa serpihan. Misalnya, perangkat lunak membagi catatan pelanggan menjadi dua serpihan dengan nilai hash alternatif 1 dan 2. 

Nama

Nilai hash

John

1

Jane

2

Paulo

1

Wang

2

Pro dan kontra

Meskipun sharding berbasis hash menghasilkan distribusi data yang merata di antara serpihan fisik, ini tidak membagi basis data berdasarkan arti informasi. Oleh karena itu, developer perangkat lunak mungkin menghadapi kesulitan menetapkan kembali nilai hash saat menambahkan lebih banyak serpihan fisik ke lingkungan komputasi. 

Sharding direktori

Sharding direktori menggunakan tabel pencarian untuk mencocokkan informasi basis data dengan serpihan fisik yang sesuai. Tabel pencarian seperti tabel pada spreadsheet yang menghubungkan kolom basis data ke kunci serpihan. Misalnya, diagram berikut menunjukkan tabel pencarian untuk warna pakaian.

Warna

Kunci serpihan

Biru

A

Merah

B

Kuning 

C

Hitam

D

Ketika sebuah aplikasi menyimpan informasi pakaian di dalam basis data, maka akan mengacu pada tabel pencarian. Jika sebuah gaun berwarna biru, aplikasi menyimpan informasi di serpihan yang sesuai. 

Pro dan kontra

Developer perangkat lunak menggunakan sharding direktori karena bersifat fleksibel. Setiap serpihan adalah representasi yang bermakna dari basis data dan tidak dibatasi oleh rentang. Namun, sharding direktori gagal jika tabel pencarian berisi informasi yang salah. 

Geo sharding

Geo sharding membagi dan menyimpan informasi basis data sesuai dengan lokasi geografis. Misalnya, sebuah situs web layanan kencan menggunakan basis data untuk menyimpan informasi pelanggan dari berbagai kota sebagai berikut. 

Nama

Kunci serpihan

John

California

Jane

Washington

Paulo

Arizona

Developer perangkat lunak menggunakan kota sebagai kunci serpihan. Mereka menyimpan informasi setiap pelanggan dalam serpihan fisik yang secara geografis terletak di kota masing-masing. 

Pro dan kontra

Geo sharding memungkinkan aplikasi untuk mengambil informasi lebih cepat karena jarak yang lebih pendek antara serpihan dan pelanggan yang membuat permintaan. Jika pola akses data sebagian besar didasarkan pada geografi, maka ini bekerja dengan baik. Namun, geo sharding juga dapat menghasilkan distribusi data yang tidak merata. 

Cara mengoptimalkan sharding basis data untuk distribusi data yang merata

Ketika kelebihan data terjadi pada serpihan fisik tertentu meskipun yang lain tetap memiliki beban kurang, hal itu menghasilkan hotspot basis data. Hotspot memperlambat proses pengambilan pada basis data, menyisihkan tujuan sharding data. 

Pemilihan kunci serpihan yang baik dapat mendistribusikan data secara merata di beberapa serpihan. Saat memilih kunci serpihan, desainer basis data harus mempertimbangkan faktor-faktor berikut. 

Kardinalitas

Kardinalitas menggambarkan nilai yang mungkin dari kunci serpihan. Ini menentukan jumlah maksimum serpihan yang mungkin pada basis data yang berorientasi pada kolom terpisah. Misalnya, jika desainer basis data memilih bidang data ya/tidak sebagai kunci serpihan, jumlah serpihan dibatasi menjadi dua.

Frekuensi

Frekuensi adalah probabilitas menyimpan informasi spesifik dalam serpihan tertentu. Misalnya, desainer basis data memilih usia sebagai kunci serpihan untuk situs web kebugaran. Sebagian besar catatan mungkin masuk ke simpul untuk pelanggan berusia 30-45 dan menghasilkan hotspot basis data. 

Perubahan monotonik

Perubahan monotonik adalah laju perubahan kunci serpihan. Kunci serpihan yang meningkat atau menurun secara monoton menghasilkan serpihan yang tidak seimbang. Misalnya, basis data umpan balik dibagi menjadi tiga serpihan fisik yang berbeda sebagai berikut:

  • Serpihan A menyimpan umpan balik dari pelanggan yang telah melakukan 0-10 pembelian.
  • Serpihan B menyimpan umpan balik dari pelanggan yang telah melakukan 11-20 pembelian.
  • Serpihan C menyimpan umpan balik dari pelanggan yang telah melakukan 21 pembelian atau lebih.

Seiring pertumbuhan bisnis, pelanggan akan melakukan lebih dari 21 pembelian atau lebih. Aplikasi ini menyimpan umpan balik mereka di dalam Serpihan C. Ini menghasilkan serpihan yang tidak seimbang karena Serpihan C berisi lebih banyak catatan umpan balik dari serpihan lainnya.

Apa saja alternatif untuk sharding basis data?

Sharding basis data adalah strategi penskalaan horizontal yang mengalokasikan simpul atau komputer tambahan untuk berbagi beban kerja aplikasi. Organisasi mendapat manfaat dari penskalaan horizontal karena arsitekturnya yang toleran terhadap kesalahan. Ketika satu komputer gagal, komputer yang lain tetap beroperasi tanpa terganggu. Desainer basis data mengurangi waktu henti dengan menyebarkan serpihan logis di beberapa server. 

Namun, sharding adalah salah satu di antara beberapa strategi penskalaan basis data lainnya. Jelajahi beberapa teknik lain dan pahami perbedaannya.

Penskalaan vertikal

Penskalaan vertikal meningkatkan daya komputasi suatu mesin. Misalnya, tim IT menambahkan CPU, RAM, dan hard disk ke server basis data untuk menangani peningkatan lalu lintas. 

Perbandingan sharding basis data dan penskalaan vertikal

Penskalaan vertikal lebih terjangkau, tetapi ada batasan sumber daya komputasi yang dapat Anda skalakan secara vertikal. Sementara itu, sharding, strategi penskalaan horizontal, lebih mudah diiimplementasikan. Misalnya, tim IT menginstal beberapa komputer alih-alih memutakhirkan perangkat keras komputer lama.

Replikasi

Replikasi adalah teknik yang membuat salinan yang tepat dari basis data dan menyimpannya di komputer yang berbeda. Desainer basis data menggunakan replikasi untuk merancang sistem manajemen basis data relasionalyang toleran terhadap kesalahan. Ketika salah satu komputer yang melakukan hosting basis data gagal, replika lain tetap beroperasi. Replikasi adalah praktik umum dalam sistem komputasi terdistribusi.

Perbandingan sharding basis data dan replikasi

Sharding basis data tidak membuat salinan dari informasi yang sama. Sebaliknya, sharding membagi satu basis data ke dalam beberapa bagian dan menyimpannya di komputer yang berbeda. Tidak seperti replikasi, sharding basis data tidak menghasilkan ketersediaan tinggiSharding dapat digunakan dalam kombinasi dengan replikasi untuk mencapai skala dan ketersediaan tinggi.

Dalam beberapa kasus, sharding basis data mungkin terdiri dari replikasi set data tertentu. Misalnya, toko ritel yang menjual produk ke pelanggan AS dan Eropa mungkin menyimpan replika tabel konversi ukuran pada serpihan yang berbeda untuk kedua wilayah. Aplikasi ini dapat menggunakan salinan duplikat dari tabel konversi untuk mengonversi ukuran tanpa mengakses server basis data lainnya. 

Partisi

Partisi adalah proses pemisahan tabel basis data menjadi beberapa kelompok. Partisi diklasifikasikan menjadi dua tipe: 

  • Partisi horizontal membagi basis data berdasarkan baris.
  • Partisi vertikal menciptakan partisi yang berbeda dari kolom basis data. 

Perbandingan sharding basis data dan partisi

Sharding basis data seperti partisi horizontal. Kedua proses membagi basis data ke dalam beberapa kelompok baris yang unik. Partisi menyimpan semua kelompok data di komputer yang sama, tetapi sharding basis data menyebarkannya di komputer yang berbeda.

Apa tantangan sharding basis data?

Organisasi mungkin menghadapi tantangan ini ketika menerapkan sharding basis data.

Hotspot data

Beberapa serpihan menjadi tidak seimbang karena distribusi data yang tidak merata. Misalnya, serpihan fisik tunggal yang berisi nama pelanggan yang dimulai dengan huruf A menerima lebih banyak data daripada yang lain. Serpihan fisik ini akan menggunakan lebih banyak sumber daya komputasi daripada yang lain.

Solusi

Anda dapat mendistribusikan data secara merata dengan menggunakan kunci serpihan yang optimal. Beberapa set data lebih cocok untuk sharding daripada yang lain.

Kompleksitas operasional

Sharding basis data menciptakan kompleksitas operasional. Alih-alih mengelola basis data tunggal, developer harus mengelola beberapa simpul basis data. Ketika mereka mengambil informasi, developer harus mengueri beberapa serpihan dan menggabungkan potongan-potongan informasi bersama-sama. Operasi pengambilan ini dapat mempersulit analitik.

Solusi

Dalam portofolio basis data AWS, penyiapan dan operasi basis data telah diotomatisasi untuk sebagian besar. Hal ini membuat bekerja dengan arsitektur basis data yang diserpihkan menjadi tugas yang lebih sederhana.

Biaya infrastruktur

Organisasi membayar lebih untuk biaya infrastruktur ketika mereka menambahkan lebih banyak komputer sebagai serpihan fisik. Biaya pemeliharaan dapat bertambah jika Anda menambah jumlah mesin di pusat data on-premise Anda.

Solusi

Developer menggunakan Amazon Elastic Compute Cloud (Amazon EC2) untuk melakukan hosting dan menskalakan serpihan di cloud. Anda dapat menghemat uang dengan menggunakan infrastruktur virtual yang dikelola AWS sepenuhnya.

Kompleksitas aplikasi

Sebagian besar sistem manajemen basis data tidak memiliki fitur sharding bawaan. Ini berarti bahwa desainer basis data dan developer perangkat lunak harus secara manual membagi, mendistribusikan, dan mengelola basis data.

Solusi

Anda dapat memigrasi data Anda ke basis data yang dibuat khusus AWS, yang memiliki beberapa fitur bawaan yang mendukung penskalaan horizontal.

Bagaimana AWS dapat membantu sharding basis data?

AWS adalah platform manajemen data global yang dapat Anda gunakan untuk membangun strategi data modern. Dengan AWS, Anda dapat memilih basis data yang dibuat khusus, mencapai performa dalam skala besar, menjalankan basis data yang dikelola sepenuhnya, dan mengandalkan ketersediaan dan keamanan yang tinggi.

Mulai manajemen data di AWS dengan membuat akun AWS sekarang juga.

Langkah berikutnya di AWS

Lihat sumber daya tambahan terkait produk
Pelajari lebih lanjut tentang Layanan Basis Data 
Daftar untuk akun gratis

Lihat Layanan Basis Data Gratis.

Daftar 
Mulai membangun di konsol

Mulai membangun di Konsol Manajemen AWS.

Masuk