CREATE WORKLOAD CLASSIFIER (Transact-SQL)

Berlaku untuk:yes analitik Azure Synapse

Membuat objek pengklasifikasi untuk digunakan dalam manajemen beban kerja. Pengklasifikasi menetapkan permintaan masuk ke grup beban kerja berdasarkan parameter yang ditentukan dalam definisi pernyataan pengklasifikasi. Pengklasifikasi dievaluasi dengan setiap permintaan yang diajukan. Jika permintaan tidak cocok dengan pengklasifikasi, permintaan ditetapkan ke grup beban kerja default. Grup beban kerja default adalah kelas sumber daya smallrc.

Catatan

Mengklasifikasikan perilaku identitas terkelola (MI) berbeda antara kumpulan SQL khusus di ruang kerja Azure Synapse dan kumpulan SQL khusus mandiri (sebelumnya SQL DW). Sementara MI kumpulan SQL khusus mandiri mempertahankan identitas yang ditetapkan, ruang kerja Azure Synapse menambahkan MI ke peran dbo. Tindakan ini tidak dapat diubah. Peran dbo, secara default, diklasifikasikan ke smallrc. Membuat pengklasifikasi untuk peran dbo memungkinkan untuk menetapkan permintaan ke grup beban kerja selain smallrc. Jika dbo saja terlalu umum untuk klasifikasi dan memiliki dampak yang lebih luas, pertimbangkan untuk menggunakan label, sesi, atau klasifikasi berbasis waktu dalam hubungannya dengan klasifikasi peran dbo.

Topic link iconKonvensi Sintaksis SQL Transact.

Sintaks

CREATE WORKLOAD CLASSIFIER classifier_name  
WITH  
    (   WORKLOAD_GROUP = 'name'  
    ,   MEMBERNAME = 'security_account' 
[ [ , ] WLM_LABEL = 'label' ]  
[ [ , ] WLM_CONTEXT = 'context' ]  
[ [ , ] START_TIME = 'HH:MM' ]  
[ [ , ] END_TIME = 'HH:MM' ]  
  
[ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }]) 
[;]

Catatan

Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.

Argumen

classifier_name
Menentukan nama tempat pengklasifikasi beban kerja diidentifikasi. classifier_name adalah sysname. Panjangnya bisa hingga 128 karakter dan harus unik dalam instans.

= WORKLOAD_GROUP 'name'
Ketika kondisi terpenuhi oleh aturan pengklasifikasi, nama memetakan permintaan ke grup beban kerja. nama adalah sysname. Panjangnya bisa hingga 128 karakter dan harus menjadi nama grup beban kerja yang valid pada saat pembuatan pengklasifikasi.

Grup beban kerja yang tersedia dapat ditemukan dalam tampilan katalog sys.workload_management_workload_groups .

NAMA = ANGGOTA 'security_account'
Akun keamanan yang digunakan untuk mengklasifikasikan. Security_account adalah sysname, tanpa default. Security_account bisa menjadi pengguna database, peran database, login Azure Active Directory, atau grup Azure Active Directory.

Catatan

user_name() Gunakan fungsi , ketika terhubung ke sistem, untuk memverifikasi nama anggota yang akan digunakan proses klasifikasi untuk mengklasifikasikan permintaan. Memverifikasi nama anggota dengan user_name() fungsi dapat membantu memecahkan masalah klasifikasi AAD atau perwakilan layanan. Jika user_name() mengembalikan "dbo" Anda dapat menggunakan "dbo" sebagai nama anggota untuk mengklasifikasikan permintaan. Perlu diingat semua anggota peran "dbo" akan diklasifikasikan. Parameter klasifikasi tambahan seperti WLM_LABEL atau WLM_CONTEXT juga dapat digunakan untuk secara khusus mengklasifikasikan permintaan dari beberapa pemetaan akun AAD ke peran "dbo".

WLM_LABEL
Menentukan nilai label yang dapat diklasifikasikan permintaannya. Label adalah parameter opsional jenis nvarchar(255). Gunakan OPTION (LABEL) dalam permintaan untuk mencocokkan konfigurasi pengklasifikasi.

Contoh:

CREATE WORKLOAD CLASSIFIER wcELTLoads WITH  
( WORKLOAD_GROUP = 'wgDataLoad'
 ,MEMBERNAME     = 'ELTRole'  
 ,WLM_LABEL      = 'dimension_loads' )

SELECT COUNT(*) 
  FROM DimCustomer
  OPTION (LABEL = 'dimension_loads')

WLM_CONTEXT
Menentukan nilai konteks sesi yang dapat diklasifikasikan oleh permintaan. konteks adalah parameter opsional jenis nvarchar(255). Gunakan sys.sp_set_session_context dengan nama variabel yang sama dengan wlm_context sebelum mengirimkan permintaan untuk mengatur konteks sesi.

Contoh:

CREATE WORKLOAD CLASSIFIER wcDataLoad WITH  
( WORKLOAD_GROUP = 'wgDataLoad'
 ,MEMBERNAME     = 'ELTRole'
 ,WLM_CONTEXT    = 'dim_load' )
 
--set session context
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = 'dim_load'

--run multiple statements using the wlm_context setting
SELECT COUNT(*) FROM stg.daily_customer_load
SELECT COUNT(*) FROM stg.daily_sales_load

--turn off the wlm_context session setting
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = null

START_TIME dan END_TIME
Menentukan start_time dan end_time yang dapat diklasifikasikan oleh permintaan. Baik start_time maupun end_time berformat HH:MM dalam zona waktu UTC. Start_time dan end_time harus ditentukan bersama-sama.

Contoh:

CREATE WORKLOAD CLASSIFIER wcELTLoads WITH  
( WORKLOAD_GROUP = 'wgDataLoads'
 ,MEMBERNAME     = 'ELTRole'  
 ,START_TIME     = '22:00'
 ,END_TIME       = '02:00' )

KEPENTINGAN = { | RENDAH BELOW_NORMAL | | NORMAL ABOVE_NORMAL | TINGGI }
Menentukan kepentingan relatif permintaan. Kepentingan adalah salah satu hal berikut ini:

  • RENDAH
  • BELOW_NORMAL
  • NORMAL (default)
  • ABOVE_NORMAL
  • TINGGI

Jika kepentingan tidak ditentukan, pengaturan kepentingan grup beban kerja digunakan. Kepentingan grup beban kerja default adalah normal. Kepentingan memengaruhi urutan permintaan mana yang dijadwalkan, sehingga memberikan akses pertama ke sumber daya dan kunci.

Pembobotan parameter klasifikasi

Permintaan dapat cocok dengan beberapa pengklasifikasi. Ada pembobotan untuk parameter pengklasifikasi. Pengklasifikasi pencocokan tertimbang yang lebih tinggi digunakan untuk menetapkan grup beban kerja dan kepentingan. Pembobotan berjalan sebagai berikut:

Parameter Penggolong Berat
USER 64
PERAN 32
WLM_LABEL 16
WLM_CONTEXT 8
START_TIME/END_TIME 4

Pertimbangkan konfigurasi pengklasifikasi berikut.

CREATE WORKLOAD CLASSIFIER classifierA WITH  
( WORKLOAD_GROUP = 'wgDashboards'  
 ,MEMBERNAME     = 'userloginA'
 ,IMPORTANCE     = HIGH
 ,WLM_LABEL      = 'salereport' )

CREATE WORKLOAD CLASSIFIER classifierB WITH  
( WORKLOAD_GROUP = 'wgUserQueries'  
 ,MEMBERNAME     = 'userloginA'
 ,IMPORTANCE     = LOW
 ,START_TIME     = '18:00'
 ,END_TIME       = '07:00' )

Pengguna userloginA dikonfigurasi untuk kedua pengklasifikasi. Jika userloginA menjalankan kueri dengan label yang sama dengan salesreport antara pukul 18.00 dan 07.00 UTC, permintaan akan diklasifikasikan ke grup beban kerja wgDashboards dengan kepentingan TINGGI. Harapannya mungkin untuk mengklasifikasikan permintaan ke wgUserQueries dengan kepentingan RENDAH untuk pelaporan di luar jam kerja, tetapi pembobotan WLM_LABEL lebih tinggi dari START_TIME/END_TIME. Pembobotan pengklasifikasiA adalah 80 (64 untuk pengguna, ditambah 16 untuk WLM_LABEL). Pembobotan pengklasifikasiB adalah 68 (64 untuk pengguna, 4 untuk START_TIME/END_TIME). Dalam hal ini, Anda dapat menambahkan WLM_LABEL ke pengklasifikasiB.

Untuk informasi selengkapnya lihat, pembobotan beban kerja.

Izin

Memerlukan izin DATABASE KONTROL.

Contoh

Contoh berikut menunjukkan cara membuat pengklasifikasi beban kerja bernama wgcELTRole. Ini menggunakan grup beban kerja staticrc20, pengguna ELTRole, dan mengatur kepentingan ke above_normal.

CREATE WORKLOAD CLASSIFIER wgcELTRole
  WITH (WORKLOAD_GROUP = 'staticrc20'
       ,MEMBERNAME = 'ELTRole'
      ,IMPORTANCE = above_normal);

Lihat juga

Azure Synapse Analytics Classification
DROP WORKLOAD CLASSIFIER (Transact-SQL)
sys.workload_management_workload_classifiers sys.workload_management_workload_classifier_details