Peluasan skala dengan Azure SQL Database

Berlaku untuk:Azure SQL Database

Anda dapat dengan mudah meluaskan skala database di Azure SQL Database menggunakan alat Elastic Database. Alat dan fitur ini memungkinkan Anda menggunakan sumber daya database Azure SQL Database untuk membuat solusi untuk beban kerja transaksional, terutama aplikasi Software as a Service (SaaS). Fitur Elastic Database terdiri dari:

  • Pustaka klien Elastic Database: Pustaka klien adalah fitur yang memungkinkan Anda membuat dan mempertahankan database yang dipecah. Lihat Memulai dengan alat Elastic Database.
  • Alat pisah-gabung Elastic Database: memindahkan data di antara database yang dipecah. Alat ini berguna untuk memindahkan data dari database multi-penyewa ke database penyewa tunggal (atau sebaliknya). Lihat Tutorial alat Split-Merge database elastis.
  • Pekerjaan Elastic Database (pratinjau): Gunakan pekerjaan untuk mengelola database dalam jumlah besar di Azure SQL Database. Melakukan operasi administratif dengan mudah seperti perubahan skema, manajemen informasi masuk, pembaruan data referensi, pengumpulan data performa, atau pengumpulan telemetri penyewa (pelanggan) menggunakan pekerjaan.
  • Kueri Elastic Database (pratinjau): Memungkinkan Anda untuk menjalankan kueri T-SQL yang menjangkau beberapa database. Ini mengaktifkan koneksi ke alat pelaporan seperti Excel, Power BI, Tableau, dll.
  • Transaksi elastis: Fitur ini memungkinkan Anda untuk menjalankan transaksi yang menjangkau beberapa database. Transaksi database elastis tersedia untuk aplikasi .NET menggunakan ADO .NET dan diintegrasikan dengan pengalaman pemrograman yang tak asing lagi menggunakan kelas System.Transaction.

Grafik berikut ini memperlihatkan arsitektur yang menyertakan fitur Elastic Database dalam kaitannya dengan kumpulan database.

Dalam grafik ini, warna database mewakili skema. Database dengan warna yang sama berbagi skema yang sama.

  1. Satu set database SQL dihosting di Azure menggunakan arsitektur pemecahan.
  2. Pustaka klien Elastic Database digunakan untuk mengelola set pecahan.
  3. Subset database dimasukkan ke dalam kumpulan elastis. (Lihat Apa yang dimaksud dengan kumpulan?).
  4. Pekerjaan Elastic Database menjalankan skrip T-SQL terjadwal atau ad hoc terhadap semua database.
  5. Alat pisah-gabung digunakan untuk memindahkan data dari satu pecahan ke pecahan lainnya.
  6. Kueri Elastic Database memungkinkan Anda menulis kueri yang menjangkau semua database dalam set pecahan.
  7. Transaksi elastis memungkinkan Anda untuk menjalankan transaksi yang menjangkau beberapa database.

Elastic Database tools

Mengapa menggunakan alat?

Mencapai elastisitas dan skala untuk aplikasi cloud cukup mudah untuk komputer virtual dan penyimpanan blob - cukup tambahkan atau kurangi unit, atau tingkatkan daya. Tetapi tetap menjadi tantangan bagi pemrosesan data stateful dalam database hubungan. Tantangan muncul dalam skenario ini:

  • Menumbuhkan dan menyusutkan kapasitas untuk bagian database hubungan dari beban kerja Anda.
  • Mengelola hotspot yang mungkin timbul memengaruhi subset data tertentu - seperti pelanggan akhir (penyewa) yang sibuk.

Secara tradisional, skenario seperti ini telah diatasi dengan berinvestasi di server berskala besar untuk mendukung aplikasi. Namun, opsi ini terbatas di cloud yang semua pemrosesannya terjadi pada perangkat keras komoditas yang telah ditentukan. Sebagai gantinya, mendistribusikan data dan pemrosesan di banyak database terstruktur identik (pola peluasan data yang dikenal sebagai "pemecahan") memberikan alternatif untuk pendekatan peningkatan skala tradisional baik dalam hal biaya dan elastisitas.

Penskalaan horizontal dan vertikal

Gambar berikut menunjukkan dimensi penyekalaan horizontal dan vertikal, yang merupakan cara dasar database elastis dapat diskalakan.

Horizontal versus vertical scale-out

Penyekalaan horizontal mengacu pada penambahan atau penghapusan database untuk menyesuaikan kapasitas atau performa keseluruhan, juga disebut "peluasan skala". Pemecahan, di mana data dipartisi di seluruh koleksi database yang terstruktur identik, adalah cara umum untuk mengimplementasikan penyekalaan horizontal.

Penyekalaan vertikal mengacu pada peningkatan atau penurunan ukuran komputasi database individu, juga dikenal sebagai "peningkatan skala."

Sebagian besar aplikasi database skala cloud menggunakan kombinasi dari dua strategi ini. Misalnya, aplikasi SaaS dapat menggunakan penyekalaan horizontal untuk provisikan pelanggan akhir baru dan penyekalaan vertikal untuk memungkinkan setiap database pelanggan akhir untuk menumbuhkan atau menyusutkan sumber daya sesuai kebutuhan beban kerja.

  • Penyekalaan horizontal dikelola menggunakan pustaka klien Elastic Database.
  • Penyekalaan vertikal dilakukan menggunakan cmdlet Azure PowerShell untuk mengubah tingkat layanan, atau dengan menempatkan database di kumpulan elastis.

Sharding

Pemecahan adalah teknik untuk mendistribusikan sejumlah besar data terstruktur identik di sejumlah database independen. Ini sangat populer di kalangan pengembang cloud yang membuat penawaran Software as a Service (SAAS) untuk pelanggan akhir atau bisnis. Pelanggan akhir ini sering disebut sebagai "penyewa". Pemecahan mungkin diperlukan untuk sejumlah alasan:

  • Jumlah total data terlalu besar untuk muat dalam batasan database individu
  • Throughput transaksi dari keseluruhan beban kerja melebihi kemampuan database individu
  • Penyewa mungkin memerlukan isolasi fisik satu sama lain, sehingga database terpisah diperlukan untuk setiap penyewa
  • Bagian database yang berbeda mungkin perlu berada di berbagai wilayah untuk alasan kepatuhan, performa, atau geopolitik.

Dalam skenario lain, seperti konsumsi data dari perangkat terdistribusi, pemecahan dapat digunakan untuk mengisi set database yang diatur secara temporal. Misalnya, database terpisah dapat didedikasikan untuk setiap hari atau minggu. Dalam kasus ini, kunci pemecahan dapat menjadi bilangan bulat yang mewakili tanggal (ada di semua baris tabel yang dipecah) dan kueri yang mengambil informasi untuk rentang tanggal harus dirutekan oleh aplikasi ke subset database yang mencakup rentang yang dimaksud.

Pemecahan berfungsi paling baik ketika setiap transaksi dalam aplikasi dapat dibatasi untuk satu nilai kunci pemecahan. Itu memastikan bahwa semua transaksinya lokal untuk database tertentu.

Multi-penyewa dan penyewa tunggal

Beberapa aplikasi menggunakan pendekatan paling sederhana untuk membuat database terpisah untuk setiap penyewa. Pendekatan ini adalah pola pemecahan penyewa tunggal yang menyediakan isolasi, kemampuan pencadangan/pemulihan, dan penyekalaan sumber daya pada granularitas penyewa. Dengan pemecahan penyewa tunggal, setiap database dikaitkan dengan nilai ID penyewa tertentu (atau nilai kunci pelanggan), tetapi kunci itu tidak selalu perlu ada dalam data itu sendiri. Adalah tanggung jawab aplikasi untuk merutekan setiap permintaan ke database yang sesuai - dan pustaka klien dapat menyederhanakan ini.

Single tenant versus multi-tenant

Skenario lain membuat paket beberapa penyewa bersama-sama ke dalam database, daripada mengisolasinya ke dalam database terpisah. Pola ini adalah pola pemecahan multi-penyewa yang khas - dan mungkin didorong oleh fakta bahwa aplikasi mengelola sejumlah besar penyewa kecil. Dalam pemecahan multi-penyewa, baris dalam tabel database semuanya didesain untuk membawa kunci yang mengidentifikasi ID penyewa atau kunci pemecahan. Sekali lagi, tingkat aplikasi bertanggung jawab untuk merutekan permintaan penyewa ke database yang sesuai, dan ini dapat didukung oleh pustaka klien database elastis. Selain itu, keamanan tingkat baris dapat digunakan untuk memfilter baris mana yang dapat diakses setiap penyewa - untuk detailnya, lihat Aplikasi multi-penyewa dengan alat database elastis dan keamanan tingkat baris. Mendistribusikan ulang data di antara database mungkin diperlukan dengan pola pemecahan multi-penyewa, dan difasilitasi oleh alat pisah-gabung database elastis. Untuk mempelajari selengkapnya tentang pola desain untuk aplikasi SaaS menggunakan kumpulan elastis, lihat Pola Desain untuk Aplikasi SaaS Multi-penyewa dengan Azure SQL Database.

Memindahkan data dari beberapa ke database penyewaan tunggal

Saat membuat aplikasi SaaS, calon pelanggan biasanya ditawarkan versi percobaan perangkat lunak. Dalam kasus ini, hal tersebut menghemat biaya untuk menggunakan database multi-penyewa untuk data. Namun, ketika prospek menjadi pelanggan, database penyewa tunggal lebih baik karena memberikan performa yang lebih baik. Jika pelanggan telah membuat data selama periode percobaan, gunakan alat pisah-gabung untuk memindahkan data dari multi-penyewa ke database penyewa tunggal baru.

Catatan

Memulihkan dari database multi-penyewa ke penyewa tunggal tidak dimungkinkan.

Langkah berikutnya

Untuk sampel aplikasi yang menunjukkan pustaka klien, lihat Memulai dengan alat Elastic Database.

Untuk mengonversi database yang sudah ada untuk menggunakan alat tersebut, lihat Melakukan migrasi database yang sudah ada untuk meluaskan skala.

Untuk melihat secara spesifik kumpulan elastis, lihat Pertimbangan harga dan performa untuk kumpulan elastis, atau buat kumpulan baru dengan kumpulan elastis.

Sumber daya tambahan

Belum menggunakan alat database elastis? Lihat Panduan Memulai kami. Jika memiliki pertanyaan, hubungi kami di halaman pertanyaan Tanya Jawab Microsoft untuk SQL Database dan untuk permintaan fitur, tambahkan ide-ide baru atau ambil suara terbanyak untuk ide yang sudah ada di forum umpan balik SQL Database.