Unit Gudang Data (DWU) untuk kumpulan SQL khusus (sebelumnya SQL DW) di Azure Synapse Analytics
Dokumen ini berisi rekomendasi tentang pemilihan jumlah unit gudang data (DWU) yang ideal untuk kumpulan SQL khusus (sebelumnya SQL DW) untuk mengoptimalkan harga dan kinerja, serta cara mengubah jumlah unit.
Apa itu Unit Gudang Data
Kumpulan SQL khusus (sebelumnya SQL DW) mewakili kumpulan sumber daya analitik yang sedang diprovisikan. Sumber daya analitik didefinisikan sebagai kombinasi CPU, memori, dan IO.
Ketiga sumber daya ini digabung menjadi satuan skala komputasi yang disebut Unit Gudang Data (DWU). DWU mewakili ukuran sumber daya komputasi dan performa yang abstrak dan dinormalisasi.
Perubahan pada tingkat layanan Anda akan mengubah jumlah DWU yang tersedia untuk sistem, yang pada gilirannya akan menyesuaikan performa dan biaya untuk sistem Anda.
Untuk performa yang lebih tinggi, Anda dapat meningkatkan jumlah unit gudang data. Untuk performa yang lebih sedikit, kurangi unit gudang data. Biaya penyimpanan dan komputasi ditagih secara terpisah, sehingga perubahan unit gudang data tidak memengaruhi biaya penyimpanan.
Performa unit gudang data didasarkan pada metrik beban kerja gudang data ini:
- Seberapa cepat kueri kumpulan SQL khusus standar (sebelumnya SQL DW) dapat memindai sejumlah besar baris lalu melakukan agregasi kompleks. Operasi ini memerlukan I/O dan CPU secara intensif.
- Seberapa cepat kumpulan SQL khusus (sebelumnya SQL DW) dapat menyerap data dari Azure Storage Blobs atau Azure Data Lake. Operasi ini memerlukan I/O dan CPU secara intensif.
- Seberapa cepat perintah T-SQL
CREATE TABLE AS SELECT
dapat menyalin tabel. Operasi ini melibatkan pembacaan data dari penyimpanan, mendistribusikannya di seluruh simpul alat dan menulisnya ke penyimpanan lagi. Operasi ini memerlukan CPU, IO, dan jaringan secara intensif.
Meningkatkan DWU:
- Secara linear mengubah performa sistem untuk pemindaian, agregasi, dan pernyataan CTAS
- Meningkatkan jumlah pembaca dan penulis untuk operasi beban PolyBase
- Meningkatkan jumlah maksimum kueri serentak dan slot konkurensi
Tujuan Tingkat Layanan
Tujuan Tingkat Layanan (SLO) adalah pengaturan skalabilitas yang menentukan tingkat biaya dan performa kumpulan SQL khusus Anda (sebelumnya SQL DW). Tingkat layanan untuk kumpulan SQL khusus (sebelumnya SQL DW) gen2 diukur dalam unit gudang data (DWU), misalnya DW2000c.
Catatan
Kumpulan SQL khusus (sebelumnya SQL DW) Gen2 baru-baru ini menambahkan kemampuan skala tambahan untuk mendukung tingkat komputasi serendah 100 cDWU. Gudang data yang saat ini berada di Gen1 yang memerlukan tingkat komputasi yang lebih rendah sekarang dapat melakukan peningkatan ke Gen2 di wilayah yang tersedia saat ini tanpa biaya tambahan. Jika wilayah Anda belum didukung, Anda masih bisa melakukan peningkatan ke wilayah yang didukung. Untuk mengetahui informasi selengkapnya, lihat Peningkatan ke Gen2.
Dalam T-SQL, pengaturan SERVICE_OBJECTIVE menentukan tingkat layanan dan tingkat performa untuk kumpulan SQL khusus Anda (sebelumnya SQL DW).
CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
,SERVICE_OBJECTIVE = 'DW1000c'
)
;
Tingkat Performa dan Unit Gudang Data
Setiap tingkat performa menggunakan satuan pengukuran yang sedikit berbeda untuk unit gudang data mereka. Perbedaan ini tercermin pada faktur karena unit skala langsung diterjemahkan ke penagihan.
- Gudang data Gen1 diukur dalam Unit Gudang Data (DWU).
- Gudang data Gen2 diukur dalam Unit Gudang Data komputasi (cDWU).
DWU dan cDWU mendukung penskalaan komputasi meningkat dan menurun, serta menjeda komputasi saat Anda tidak perlu menggunakan gudang data. Semua operasi ini sesuai permintaan. Gen2 menggunakan cache berbasis disk lokal pada simpul komputasi untuk meningkatkan performa. Ketika Anda menskalakan atau menjeda sistem, cache menjadi tidak valid, sehingga periode pemanasan cache diperlukan sebelum performa optimal tercapai.
Batas kapasitas
Setiap server SQL (misalnya, myserver.database.windows.net) memiliki kuota Database Transaction Unit (DTU) yang mengizinkan sejumlah unit gudang data tertentu. Untuk mengetahui informasi selengkapnya, lihat batas kapasitas manajemen beban kerja.
Berapa banyak unit gudang data yang saya butuhkan
Jumlah unit gudang data yang ideal sangat bergantung pada beban kerja Anda dan jumlah data yang telah Anda masukkan ke dalam sistem.
Langkah-langkah untuk menemukan DWU terbaik untuk beban kerja Anda:
Mulailah dengan memilih DWU yang lebih kecil.
Pantau performa aplikasi Anda saat menguji pemuatan data ke dalam sistem, dengan mengamati jumlah DWU terpilih dibandingkan dengan performa yang Anda amati. Verifikasi dengan memantau pemanfaatan sumber daya.
Identifikasi setiap persyaratan tambahan untuk periode berkala aktivitas puncak. Beban kerja yang menunjukkan puncak dan palung yang signifikan dalam aktivitas mungkin perlu sering diskalakan.
Kumpulan SQL khusus (sebelumnya SQL DW) adalah sistem perluasan skala yang dapat memprovisikan sejumlah besar komputasi dan mengkueri jumlah data yang cukup besar.
Untuk melihat kemampuan penskalaan yang sebenarnya, terutama pada DWU yang lebih besar, kami sarankan untuk menskalakan himpunan data saat Anda melakukan penskalaan untuk memastikan bahwa Anda memiliki cukup data untuk memberi umpan CPU. Untuk pengujian skala, sebaiknya gunakan setidaknya 1 TB.
Catatan
Performa kueri hanya meningkat seiring bertambahnya paralelisasi jika pekerjaan dapat dipisahkan di antara simpul komputasi. Jika Anda menemukan bahwa penskalaan tidak mengubah performa, Anda mungkin perlu menyetel desain tabel dan/atau kueri Anda. Untuk panduan penyetelan kueri, lihat Mengelola kueri pengguna.
Izin
Mengubah unit gudang data memerlukan izin yang dijelaskan dalam ALTER DATABASE.
Peran bawaan Azure seperti SQL DB Contributor dan SQL Server Contributor dapat mengubah pengaturan DWU.
Lihat pengaturan DWU saat ini
Untuk melihat pengaturan DWU saat ini:
- Buka SQL Server Object Explorer di Visual Studio.
- Sambungkan ke database master yang terkait dengan server SQL logis.
- Pilih dari tampilan manajemen dinamis sys.database_service_objectives. Berikut adalah contoh:
SELECT db.name [Database]
, ds.edition [Edition]
, ds.service_objective [Service Objective]
FROM sys.database_service_objectives AS ds
JOIN sys.databases AS db ON ds.database_id = db.database_id
;
Mengubah unit gudang data
Portal Azure
Untuk mengubah DWU:
Buka portal Azure, buka database Anda, lalu klik Skalakan.
Pada Skala, pindahkan penggeser ke kiri atau kanan untuk mengubah pengaturan DWU.
Klik Simpan. Pesan konfirmasi muncul. Klik ya untuk mengonfirmasi atau tidak untuk membatalkan.
PowerShell
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Untuk mengubah DWU, gunakan cmdlet PowerShell Set-AzSqlDatabase. Contoh berikut menetapkan tujuan tingkat layanan ke DW1000 untuk database MySQLDW yang dihosting di server MyServer.
Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"
Untuk informasi selengkapnya, lihat cmdlet PowerShell untuk kumpulan SQL khusus (sebelumnya SQL DW)
T-SQL
Dengan T-SQL, Anda dapat melihat DWUsettings saat ini, mengubah pengaturan, dan memeriksa progres.
Untuk mengubah DWU:
- Sambungkan ke database master yang terkait dengan server Anda.
- Gunakan pernyataan TSQL DATABASE ALTER. Contoh berikut menetapkan tujuan tingkat layanan ke DW1000c untuk database MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;
REST API
Untuk mengubah DWU, gunakan REST API Buat atau Perbarui Database. Contoh berikut mengatur tujuan tingkat layanan ke DW1000c untuk database MySQLDW
, yang dihosting di server MyServer. Server berada dalam grup sumber daya Azure bernama ResourceGroup1.
PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8
{
"properties": {
"requestedServiceObjectiveName": "DW1000c"
}
}
Untuk contoh REST API lainnya, lihat REST API untuk kumpulan SQL khusus (sebelumnya SQL DW).
Memeriksa status perubahan DWU
Perubahan DWU mungkin memerlukan waktu beberapa menit. Jika Anda menskalakan secara otomatis, pertimbangkan untuk menerapkan logika untuk memastikan operasi tertentu telah selesai sebelum melanjutkan dengan tindakan lain.
Dengan memeriksa status database melalui berbagai titik akhir, Anda dapat mengimplementasikan otomatisasi dengan benar. Portal menyediakan pemberitahuan setelah menyelesaikan operasi dan status database saat ini, tetapi tidak memungkinkan untuk pemeriksaan status terprogram.
Anda tidak dapat memeriksa status database untuk operasi peluasan skala dengan portal Azure.
Untuk memeriksa status perubahan DWU:
Sambungkan ke database master yang terkait dengan server Anda.
Kirimkan kueri berikut untuk memeriksa status database.
SELECT * FROM sys.dm_operation_status WHERE resource_type_desc = 'Database' AND major_resource_id = 'MySQLDW' ;
DMV ini menampilkan informasi tentang berbagai operasi manajemen pada kumpulan SQL khusus (sebelumnya SQL DW) seperti operasi dan status operasi, yang bisa beruap IN_PROGRESS atau COMPLETED.
Alur kerja penskalaan
Ketika Anda memulai operasi penskalaan, sistem terlebih dahulu menghentikan semua sesi terbuka, menggulirkan kembali setiap transaksi terbuka untuk memastikan status yang konsisten. Untuk operasi skala, penskalaan hanya terjadi setelah pembatalan transaksional ini selesai.
- Untuk operasi penambahan skala, sistem mencopot semua simpul komputasi, memprovisikan simpul komputasi tambahan, lalu memasang kembali ke lapisan penyimpanan.
- Untuk operasi penurunan skala, sistem mencopot semua simpul komputasi, lalu hanya melacak kembali simpul yang diperlukan ke lapisan penyimpanan.
Langkah berikutnya
Untuk mempelajari selengkapnya tentang cara mengelola performa, lihat Kelas sumber daya untuk manajemen beban kerja dan batas memori dan konkurensi.