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 dibundel 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 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 node 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 node 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:

  1. Mulailah dengan memilih DWU yang lebih kecil.
  2. Pantau performa aplikasi Anda saat menguji pemuatan data ke dalam sistem, dengan mengamati jumlah DWU terpilih dibandingkan dengan performa yang Anda amati.
  3. 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 node 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:

  1. Buka SQL Server Object Explorer di Visual Studio.
  2. Sambungkan ke database master yang terkait dengan server SQL logis.
  3. Pilih dari tampilan manajemen dinamis sys.database_service_objectives. Ini contohnya:
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 Microsoft Azure

Untuk mengubah DWU:

  1. Buka portal Microsoft Azure, kemudian buka database Anda, dan pilih Skalakan.

  2. Pada Skala, pindahkan penggeser ke kiri atau kanan untuk mengubah pengaturan DWU.

  3. Pilih Simpan. Pesan konfirmasi akan muncul. Pilih ya untuk mengonfirmasi atau tidak untuk membatalkan.

PowerShell

Catatan

Kami menyarankan agar 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 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:

  1. Sambungkan ke database master yang terkait dengan server Anda.
  2. 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:

  1. Sambungkan ke database master yang terkait dengan server Anda.
  2. Kirimkan kueri berikut untuk memeriksa status database.
SELECT    *
FROM      sys.databases
;
  1. 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 node komputasi, memprovisikan node komputasi tambahan, lalu memasang kembali ke lapisan penyimpanan.
  • Untuk operasi penurunan skala, sistem mencopot semua node komputasi, lalu hanya melacak kembali node yang diperlukan ke lapisan penyimpanan.

Langkah berikutnya

Untuk mempelajari cara mengelola kinerja selengkapnya, lihat Kelas sumber daya untuk manajemen beban kerja dan batas memori dan konkurensi.