Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: ✅ Titik akhir analitik SQL dan Gudang Data di Microsoft Fabric
Kumpulan SQL kustom memberi administrator kontrol lebih besar tentang bagaimana sumber daya dialokasikan untuk menangani permintaan. Dalam panduan mulai cepat ini, Anda akan mengonfigurasi kumpulan SQL kustom dan mengamati nilai-nilai dari pengklasifikasi menggunakan Fabric REST API.
Administrator ruang kerja dapat menggunakan nama aplikasi (atau nama program) dari string koneksi untuk merutekan permintaan ke kumpulan komputasi yang berbeda. Administrator ruang kerja juga dapat mengontrol persentase sumber daya yang dapat diakses setiap kumpulan SQL komputasi, berdasarkan batas skala burst kapasitas ruang kerja.
Fabric REST API mendefinisikan titik akhir terpadu untuk operasi.
Prasyarat
- Akses ke item Gudang di ruang kerja. Anda harus menjadi anggota Administrator.
Mendapatkan konfigurasi saat ini
Gunakan API berikut untuk mendapatkan konfigurasi saat ini.
Contoh Buku Catatan Kain
Anda dapat menjalankan contoh kode Python berikut di notebook Fabric Spark.
- Kode mengirimkan
GETpermintaan ke API konfigurasi kumpulan SQL kustom dan mengembalikan konfigurasi kumpulan SQL kustom untuk ruang kerja. - Bidang
workspace_idmenggunakanmssparkutils.runtime.contextuntuk mendapatkan GUID ruang kerja di mana notebook dijalankan. Untuk mengonfigurasi kumpulan SQL kustom di ruang kerja yang berbeda, perbaruiworkspace_idke GUID ruang kerja tempat Anda ingin mengonfigurasi kumpulan SQL kustom.
import requests
import json
from notebookutils import mssparkutils
# This will get the workspace_id where this notebook is running.
# Update to the workspace_id (guid) if running this notebook outside of the workspace where the warehouse exists.
workspaceId = mssparkutils.runtime.context.get('currentWorkspaceId')
url = f'https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/warehouses/sqlPoolsConfiguration?beta=true'
response = requests.request(method='get', url=url, headers={'Authorization': f'Bearer {mssparkutils.credentials.getToken("pbi")}'})
if response.status_code == 200:
print(json.dumps(response.json(), indent=4))
else:
print(response.text)
Mengonfigurasi kumpulan SQL kustom
Contoh Python berikut mengaktifkan dan mengonfigurasi kumpulan SQL kustom. Anda dapat menjalankan kode Python ini di notebook Fabric Spark.
- Konfigurasi kumpulan SQL kustom hanya aktif saat
customSQLPoolsEnabledatribut diatur ke true. Anda dapat menentukan payload dalamcustomSQLPoolsdefinisi objek, tetapi jika Anda tidak mengatur customSQLPoolsEnabled ke true, payload diabaikan dan manajemen beban kerja otonom digunakan. - Kode mengonfigurasi dua kumpulan SQL kustom,
ContosoSQLPooldanAdhocPool.-
ContosoSQLPooldiatur untuk menerima 70% sumber daya yang tersedia. Pengklasifikasi Nama Aplikasi memiliki nilaiMyContosoApp. - Semua kueri SQL yang berasal dari string koneksi yang menentukan nama aplikasi
MyContosoAppdiklasifikasikan ke dalamContosoSQLPoolkumpulan SQL kustom dan memiliki akses ke 70% dari total kapasitas node yang bersifat burstable. - Semua kueri SQL yang tidak terdapat
MyContosoAppdalam nama aplikasi string koneksi dikirim keAdhockumpulan SQL kustom, yang didefinisikan sebagai kumpulan default. Permintaan ini mendapatkan akses ke 30% dari total node kapasitas yang dapat meledak.
-
- Semua konfigurasi kumpulan SQL kustom harus memiliki satu Kumpulan SQL default yang diidentifikasi dengan mengatur
isDefaultatribut ke true. - Jumlah semua
maxResourcePercentagenilai harus kurang dari atau sama dengan 100%. - Bidang
workspace_idmenggunakanmssparkutils.runtime.contextuntuk mendapatkan GUID ruang kerja di mana notebook dijalankan. Untuk mengonfigurasi kumpulan SQL kustom di ruang kerja yang berbeda, perbaruiworkspace_idke GUID ruang kerja tempat Anda ingin mengonfigurasi kumpulan SQL kustom.
import requests
import json
from notebookutils import mssparkutils
body = {
"customSQLPoolsEnabled": True,
"customSQLPools": [
{
"name": "ContosoSQLPool",
"isDefault": False,
"maxResourcePercentage": 70,
"optimizeForReads": False,
"classifier": {
"type": "Application Name",
"value": [
"MyContosoApp"
]
}
},
{
"name": "AdhocPool",
"isDefault": True,
"maxResourcePercentage": 30,
"optimizeForReads": True
}
]
}
# This will get the workspaceId where this notebook is running.
# Update to the workspace_id (guid) if running this notebook outside of the workspace where the warehouse exists.
workspace_id = mssparkutils.runtime.context.get('currentWorkspaceId')
url = f'https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/warehouses/sqlPoolsConfiguration?beta=true'
response = requests.request(method='patch', url=url, json=body, headers={'Authorization': f'Bearer {mssparkutils.credentials.getToken("pbi")}'})
if response.status_code == 200:
print("SQL Custom Pools configured successfully.")
else:
print(response.text)
Petunjuk / Saran
Gunakan nilai pengklasifikasi Nama Aplikasi (regex) yang bermanfaat ini untuk lalu lintas dari Fabric:
- Untuk mengklasifikasikan kueri dari alur Fabric, gunakan
^Data Integration-to[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$. - Untuk mengklasifikasikan kueri dari Power BI, gunakan
^(PowerBIPremium-DirectQuery|Mashup Engine(?: \(PowerBIPremium-Import\))?). - Untuk mengklasifikasikan kueri dari editor kueri SQL portal Fabric, gunakan
DMS_user.
Mengatur nama aplikasi di SQL Server Management Studio (SSMS)
Pengklasifikasi untuk kumpulan SQL kustom menggunakan nama aplikasi atau parameter nama program dari string koneksi umum.
Di SQL Server Management Studio (SSMS), tentukan nama server untuk gudang dan berikan autentikasi. Microsoft Entra MFA disarankan.
Pilih tombol Tingkat Lanjut .
Di halaman Properti Tingkat Lanjut , di bawah Konteks, ubah nilai Nama Aplikasi menjadi
MyContosoApp.Pilih OK.
Pilih Sambungkan.
Untuk menghasilkan beberapa aktivitas sampel, gunakan koneksi ini di SSMS untuk menjalankan kueri sederhana di gudang Anda, misalnya:
SELECT * FROM dbo.DimDate;
Amati wawasan kueri untuk pool SQL kustom
Tinjau tampilan manajemen dinamis
sys.dm_exec_sessionsuntuk melihat bahwaMyContosoAppsedang dikenali sebagai nama aplikasi yang diteruskan dari SSMS ke mesin SQL.SELECT session_id, program_name FROM sys.dm_exec_sessions WHERE program_name = 'MyContosoApp';Contohnya:
Karena cocok dengan
program_namenama aplikasi di kumpulanMyContosoAppSQL kustom, kueri ini menggunakan sumber daya dalam kumpulan tersebut. Untuk membuktikan kumpulan SQL kustom apa yang digunakan kueri, Anda bisa mengkueri tampilan sistem queryinsights.exec_requests_history . Tunggu 10-15 menit hingga wawasan kueri diisi, lalu eksekusi kueri berikut.SELECT distributed_statement_id, submit_time, program_name, sql_pool_name, start_time, end_time FROM queryinsights.exec_requests_history WHERE program_name = 'MyContosoApp';Anda juga dapat mengidentifikasi kumpulan kueri berdasarkan ID Pernyataannya. Di editor kueri SQL portal Fabric, jalankan kueri terhadap titik akhir analitik gudang atau SQL Anda.
SELECT * FROM dbo.DimDate;Pilih tab Pesan dan rekam ID Pernyataan untuk eksekusi kueri. Di editor kueri SQL,
program_nameadalahDMS_user, yang telah Anda konfigurasikan untuk menggunakan pool SQL kustomMyContosoAppsebelumnya.Tunggu 10-15 menit agar analisis kueri tersedia.
Ambil
sql_pool_namedan informasi lainnya untuk memverifikasi bahwa kumpulan SQL kustom yang tepat telah digunakan.SELECT distributed_statement_id, submit_time, program_name, sql_pool_name, start_time, end_time FROM queryinsights.exec_requests_history WHERE distributed_statement_id = '<Statement ID>';
Mengembalikan konfigurasi kumpulan SQL kustom
Untuk mengembalikan ruang kerja ke status asli, ubah properti menjadi customSQLPoolsEnabledFalse. Jika Anda ingin mempertahankan konfigurasi kumpulan SQL kustom, Anda perlu meneruskan setiap nama kumpulan yang ada dalam daftar customSQLPools.
Contoh kode Python ini menonaktifkan kumpulan SQL kustom dan mengembalikan ke konfigurasi manajemen beban kerja otonom SELECT dan non-kumpulan SELECT. Permintaan PATCH dipanggil dengan properti customSQLPoolsEnabled diatur menjadi False.
import requests
import json
from notebookutils import mssparkutils
body = {
"customSQLPoolsEnabled": False,
"customSQLPools": []
}
# This will get the workspaceId where this notebook is running.
# Update to the workspace_id (guid) if running this notebook outside of the workspace where the warehouse exists.
workspace_id = mssparkutils.runtime.context.get('currentWorkspaceId')
url = f'https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/warehouses/sqlPoolsConfiguration?beta=true'
response = requests.request(method='patch', url=url, json=body, headers={'Authorization': f'Bearer {mssparkutils.credentials.getToken("pbi")}'})
if response.status_code == 200:
print("SQL Custom Pools successfully disabled.")
else:
print(response.text)