Konsumsi sumber daya Synapse SQL
Artikel ini menjelaskan model konsumsi sumber daya Synapse SQL.
Kumpulan SQL tanpa server
Kumpulan SQL tanpa server adalah layanan bayar per kueri yang tidak mengharuskan Anda untuk memilih ukuran yang tepat. Sistem secara otomatis melakukan penyesuaian berdasarkan kebutuhan Anda, sehingga Anda tidak perlu mengelola infrastruktur dan memilih ukuran yang tepat untuk solusi Anda.
Kumpulan SQL Khusus - Unit Gudang Data (DWUS) dan Unit Gudang Data komputasi (cDWUs)
Rekomendasi memilih jumlah unit gudang data (DWUs) yang ideal untuk mengoptimalkan harga dan performa, serta cara mengubah jumlah unit.
Unit Gudang Data
Kumpulan Synapse SQL 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 mengubah jumlah DWU yang tersedia untuk sistem. Perubahan ini kemudian akan menyesuaikan performa dan biaya 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 pergudangan data standar dapat memindai sejumlah besar baris lalu melakukan agregasi kompleks. Operasi ini memerlukan I/O dan CPU secara intensif.
- Seberapa cepat gudang data 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 bersamaan dan slot konkurensi.
Tujuan Tingkat Layanan
Tujuan Tingkat Layanan (SLO) adalah pengaturan skalabilitas yang menentukan tingkat biaya dan performa gudang data Anda. Tingkat layanan untuk Gen2 diukur dalam unit gudang data komputasi (cDWU), misalnya DW2000c. Tingkat layanan Gen1 diukur dalam DWU, misalnya DW2000.
Tujuan Tingkat Layanan (SLO) adalah pengaturan skalabilitas yang menentukan tingkat biaya dan performa gudang data Anda. Tingkat layanan untuk kumpulan SQL khusus Gen2 diukur dalam unit gudang data (DWU), misalnya DW2000c.
Catatan
Azure Synapse Analytics 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.
Di T-SQL, pengaturan SERVICE_OBJECTIVE menentukan tingkat layanan dan tingkat performa untuk kumpulan SQL khusus Anda.
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.
Saat Anda meningkatkan unit gudang data, Anda secara linier meningkatkan sumber daya komputasi. Gen2 memberikan performa kueri terbaik dan skala tertinggi. Sistem Gen2 juga mengoptimalkan penggunaan cache.
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.
Menilai jumlah unit gudang data yang Anda butuhkan
Jumlah unit gudang data yang ideal sangat bergantung pada beban kerja Anda dan jumlah data yang 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.
- 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 adalah sistem peluasan skala yang dapat memprovisikan sejumlah besar komputasi dan melakukan kueri 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 Microsoft Azure, kemudian buka database Anda, dan pilih Skalakan.
Pada Skala, pindahkan penggeser ke kiri atau kanan untuk mengubah pengaturan DWU.
Pilih Simpan. Pesan konfirmasi muncul. Pilih ya untuk mengonfirmasi atau tidak untuk membatalkan.
PowerShell
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. 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 mengetahui informasi selengkapnya, lihat cmdlet PowerShell untuk Azure Synapse Analytics
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 menetapkan 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": DW1000
}
}
Untuk contoh REST API lainnya, lihat REST API untuk Azure Synapse Analytics.
Memeriksa status perubahan DWU
Perubahan DWU mungkin memerlukan waktu beberapa menit. Jika Anda menskalakan secara otomatis, pertimbangkan untuk menerapkan logika untuk memastikan bahwa operasi tertentu telah selesai sebelum melanjutkan dengan tindakan lain.
Dengan memeriksa status database melalui berbagai titik akhir, Anda dapat mengimplementasikan otomatisasi dengan benar. Portal memberi pemberitahuan setelah penyelesaian operasi dan status database saat ini tetapi tidak memungkinkan pemeriksaan status terprogram.
Anda tidak dapat memeriksa status database untuk operasi peluasan skala dengan portal Microsoft 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.databases
;
- Kirimkan kueri berikut untuk memeriksa status operasi
SELECT *
FROM sys.dm_operation_status
WHERE resource_type_desc = 'Database'
AND major_resource_id = 'MySQLDW'
;
DMV ini mengembalikan informasi tentang berbagai operasi manajemen pada kumpulan SQL khusus Anda, seperti operasi dan status operasi baik 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.