CREATE WORKLOAD CLASSIFIER (Transact-SQL)

Berlaku untuk:Azure Synapse Analytics

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 smallrc kelas sumber daya.

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. Hal ini tidak bisa 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 klasifikasi label, sesi, atau berbasis waktu bersama dengan klasifikasi peran dbo .

Konvensi sintaks transact-SQL

Sintaksis

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. Parameter ini dapat memiliki panjang 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. Parameter ini dapat memiliki panjang 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 .

MEMBERNAME = 'security_account'

Akun keamanan yang digunakan untuk mengklasifikasikan. security_account adalah sysname, tanpa default. security_account bisa menjadi pengguna database, peran database, login Microsoft Entra, atau grup Microsoft Entra.

Catatan

user_name() Gunakan fungsi , ketika terhubung ke sistem, untuk memverifikasi MEMBERNAME bahwa proses klasifikasi akan digunakan untuk mengklasifikasikan permintaan. Memverifikasi MEMBERNAME dengan user_name() fungsi dapat membantu memecahkan masalah ID Microsoft Entra atau klasifikasi perwakilan layanan. Jika user_name() mengembalikan dbo, Anda dapat menggunakan dbo sebagai MEMBERNAME untuk mengklasifikasikan permintaan. 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 Microsoft Entra 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.

Misalnya:

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 permintaannya. WLM_CONTEXT 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.

Misalnya:

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 waktu mulai dan waktu akhir yang dapat diklasifikasikan permintaan. Keduanya START_TIME dan END_TIME berformat HH:mm dalam zona waktu UTC. START_TIME dan END_TIME harus ditentukan bersama-sama.

Misalnya:

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 dari permintaan. IMPORTANCE adalah satu opsi berikut ini:

  • LOW
  • BELOW_NORMAL
  • NORMAL (default)
  • ABOVE_NORMAL
  • HIGH

Jika IMPORTANCE tidak ditentukan, pengaturan penting 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.

Keterangan

Jumlah maksimum pengklasifikasi yang ditentukan pengguna adalah 100. Konfigurasi tambahan di luar batas ini tidak didukung. Kami menyarankan agar Anda mengelompokkan pengklasifikasi di bawah kategori umum untuk aplikasi yang efisien dari satu pengaturan, di beberapa beban kerja atau pengguna.

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 pengklasifikasi Beban
USER 64
ROLE 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 salesreport dengan antara pukul 18.00 dan 07.00 UTC, permintaan diklasifikasikan ke wgDashboards grup beban kerja dengan HIGH kepentingan. Harapannya mungkin untuk mengklasifikasikan permintaan dengan LOW kepentingan untuk pelaporan di luar jam kerja, tetapi bobotnya WLM_LABEL lebih tinggi dariEND_TIMESTART_TIME/ .wgUserQueries Pembobotan classifierA adalah 80 (64 untuk pengguna, ditambah 16 untuk WLM_LABEL). Pembobotan classifierB adalah 68 (64 untuk pengguna, 4 untuk START_TIME/END_TIME). Dalam hal ini, Anda dapat menambahkan WLM_LABEL ke classifierB.

Untuk informasi selengkapnya, lihat pembobotan beban kerja.

Izin

Memerlukan CONTROL DATABASE izin.

Contoh

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

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