Memantau skrip Python dan R dengan peristiwa yang diperluas di SQL Server Machine Learning Services
Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru Azure SQL Managed Instance
Pelajari cara menggunakan peristiwa yang diperluas untuk memantau dan memecahkan masalah operasi yang terkait dengan SQL Server Machine Learning Services, SQL Server Launchpad, dan skrip eksternal pekerjaan Python atau R.
Acara yang diperluas untuk SQL Server Machine Learning Services
Untuk menampilkan daftar peristiwa yang terkait dengan SQL Server Machine Learning Services, jalankan kueri berikut dari Azure Data Studio atau SQL Server Management Studio.
SELECT o.name AS event_name, o.description
FROM sys.dm_xe_objects o
JOIN sys.dm_xe_packages p
ON o.package_guid = p.guid
WHERE o.object_type = 'event'
AND p.name = 'SQLSatellite';
Untuk informasi selengkapnya tentang cara menggunakan peristiwa yang diperluas, lihat Alat Peristiwa yang Diperluas.
Peristiwa tambahan khusus untuk Layanan Pembelajaran Mesin
Peristiwa tambahan yang diperluas tersedia untuk komponen yang terkait dengan dan digunakan oleh SQL Server Machine Learning Services, seperti SQL Server Launchpad, dan BXLServer, dan proses satelit yang memulai runtime Python atau R. Peristiwa tambahan yang diperluas ini diaktifkan dari proses eksternal; oleh karena itu, mereka harus ditangkap menggunakan utilitas eksternal.
Untuk informasi selengkapnya tentang cara melakukannya, lihat bagian Mengumpulkan peristiwa dari proses eksternal.
Tabel peristiwa yang diperluas
Kejadian | Deskripsi | Catatan |
---|---|---|
connection_accept | Terjadi ketika koneksi baru diterima. Kejadian ini berfungsi untuk mencatat semua upaya koneksi. | |
failed_launching | Peluncuran gagal. | Menunjukkan kesalahan. |
satellite_abort_connection | Membatalkan rekaman koneksi | |
satellite_abort_received | Kebakaran ketika pesan pembatatan diterima melalui koneksi satelit. | |
satellite_abort_sent | Menembak ketika pesan pembatakan dikirim melalui koneksi satelit. | |
satellite_authentication_completion | Diaktifkan saat autentikasi selesai untuk koneksi melalui TCP atau pipa Bernama. | |
satellite_authorization_completion | Diaktifkan saat otorisasi selesai untuk koneksi melalui TCP atau pipa Bernama. | |
satellite_cleanup | Kebakaran ketika satelit memanggil pembersihan. | Diaktifkan hanya dari proses eksternal. Lihat instruksi tentang mengumpulkan peristiwa dari proses eksternal. |
satellite_data_chunk_sent | Kebakaran ketika koneksi satelit selesai mengirim satu gugus data. | Peristiwa melaporkan jumlah baris yang dikirim, jumlah kolom, jumlah paket SNI yang digunakan dan waktu yang berlalu dalam milidetik saat mengirim potongan. Informasi ini dapat membantu Anda memahami berapa banyak waktu yang dihabiskan untuk melewati berbagai jenis data, dan berapa banyak paket yang digunakan. |
satellite_data_receive_completion | Diaktifkan ketika semua data yang diperlukan oleh kueri diterima melalui koneksi satelit. | Diaktifkan hanya dari proses eksternal. Lihat instruksi tentang mengumpulkan peristiwa dari proses eksternal. |
satellite_data_send_completion | Kebakaran ketika semua data yang diperlukan untuk sesi dikirim melalui koneksi satelit. | |
satellite_data_send_start | Diaktifkan saat transmisi data dimulai. | Transmisi data dimulai tepat sebelum potongan data pertama dikirim. |
satellite_error | Digunakan untuk melacak kesalahan satelit sql | |
satellite_invalid_sized_message | Ukuran pesan tidak valid | |
satellite_message_coalesced | Digunakan untuk melacak koales pesan di lapisan jaringan | |
satellite_message_ring_buffer_record | rekaman buffer cincin pesan | |
satellite_message_summary | informasi ringkasan tentang olahpesan | |
satellite_message_version_mismatch | Bidang versi pesan tidak cocok | |
satellite_messaging | Digunakan untuk melacak peristiwa olahpesan (ikat, batalkan ikatan, dll.) | |
satellite_partial_message | Digunakan untuk melacak pesan parsial di lapisan jaringan | |
satellite_schema_received | Aktif ketika pesan skema diterima dan dibaca oleh SQL. | |
satellite_schema_sent | Kebakaran ketika pesan skema dikirim oleh satelit. | Diaktifkan hanya dari proses eksternal. Lihat instruksi tentang mengumpulkan peristiwa dari proses eksternal. |
satellite_service_start_posted | Diaktifkan saat pesan mulai layanan diposting ke launchpad. | Ini memberi tahu Launchpad untuk memulai proses eksternal, dan berisi ID untuk sesi baru. |
satellite_unexpected_message_received | Aktif ketika pesan tak terduga diterima. | Menunjukkan kesalahan. |
stack_trace | Terjadi ketika cadangan memori proses diminta. | Menunjukkan kesalahan. |
trace_event | Digunakan untuk tujuan pelacakan | Peristiwa ini dapat berisi SQL Server, Launchpad, dan pesan pelacakan proses eksternal. Ini termasuk output ke stdout dan stderr dari R. |
launchpad_launch_start | Kebakaran ketika launchpad mulai meluncurkan satelit. | Diaktifkan hanya dari Launchpad. Lihat instruksi tentang mengumpulkan peristiwa dari launchpad.exe. |
launchpad_resume_sent | Kebakaran ketika launchpad telah meluncurkan satelit dan mengirim pesan resume ke SQL Server. | Diaktifkan hanya dari Launchpad. Lihat instruksi tentang mengumpulkan peristiwa dari launchpad.exe. |
satellite_data_chunk_sent | Kebakaran ketika koneksi satelit selesai mengirim satu gugus data. | Berisi informasi tentang jumlah kolom, jumlah baris, jumlah paket, dan waktu yang berlalu saat mengirim gugus. |
satellite_sessionId_mismatch | ID sesi pesan tidak diharapkan |
Mengumpulkan peristiwa dari proses eksternal
SQL Server Machine Learning Services memulai beberapa layanan yang berjalan di luar proses SQL Server. Untuk mengambil peristiwa yang terkait dengan proses eksternal ini, Anda harus membuat file konfigurasi pelacakan peristiwa dan menempatkan file di direktori yang sama dengan yang dapat dieksekusi untuk proses tersebut.
Penting
Dari SQL Server 2019, mekanisme isolasi telah berubah. Oleh karena itu, Anda perlu memberikan izin yang sesuai ke direktori tempat file konfigurasi pelacakan peristiwa disimpan. Untuk informasi selengkapnya tentang cara mengatur izin ini, lihat bagian Izin file di SQL Server 2019 di Windows: Perubahan isolasi untuk Layanan Pembelajaran Mesin.
Launchpad SQL Server
Untuk mengambil peristiwa yang terkait dengan Launchpad, tempatkan file .xml di direktori Binn untuk instans SQL Server. Dalam penginstalan default, ini adalah:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\MSSQL\Binn
.BXLServer adalah proses satelit yang mendukung ekstensibilitas SQL dengan bahasa skrip eksternal, seperti R atau Python. Instans terpisah BxlServer diluncurkan untuk setiap instans bahasa eksternal.
Untuk mengambil peristiwa yang terkait dengan BXLServer, tempatkan file .xml di direktori penginstalan R atau Python. Dalam penginstalan default, ini adalah:
R:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\R_SERVICES\library\RevoScaleR\rxLibs\x64
.Python:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\PYTHON_SERVICES\Lib\site-packages\revoscalepy\rxLibs
.
File konfigurasi harus dinamai sama dengan executable, menggunakan format "[name].xevents.xml". Dengan kata lain, file harus diberi nama sebagai berikut:
Launchpad.xevents.xml
bxlserver.xevents.xml
File konfigurasi itu sendiri memiliki format berikut:
<?xml version="1.0" encoding="utf-8"?>
<event_sessions>
<event_session name="[session name]" maxMemory="1" dispatchLatency="1" MaxDispatchLatency="2 SECONDS">
<description owner="you">Xevent for launchpad or bxl server.</description>
<event package="SQLSatellite" name="[XEvent Name 1]" />
<event package="SQLSatellite" name="[XEvent Name 2]" />
<target package="package0" name="event_file">
<parameter name="filename" value="[SessionName].xel" />
<parameter name="max_file_size" value="10" />
<parameter name="max_rollover_files" value="10" />
</target>
</event_session>
</event_sessions>
- Untuk mengonfigurasi jejak, edit tempat penampung nama sesi , tempat penampung untuk nama file (
[SessionName].xel
), dan nama peristiwa yang ingin Anda ambil, Misalnya,[XEvent Name 1]
,[XEvent Name 1]
). - Sejumlah tag paket peristiwa mungkin muncul, dan akan dikumpulkan selama atribut nama sudah benar.
Contoh: Menangkap peristiwa Launchpad
Contoh berikut menunjukkan definisi jejak peristiwa untuk layanan Launchpad:
<?xml version="1.0" encoding="utf-8"?>
<event_sessions>
<event_session name="sqlsatelliteut" maxMemory="1" dispatchLatency="1" MaxDispatchLatency="2 SECONDS">
<description owner="hay">Xevent for sql tdd runner.</description>
<event package="SQLSatellite" name="launchpad_launch_start" />
<event package="SQLSatellite" name="launchpad_resume_sent" />
<target package="package0" name="event_file">
<parameter name="filename" value="launchpad_session.xel" />
<parameter name="max_file_size" value="10" />
<parameter name="max_rollover_files" value="10" />
</target>
</event_session>
</event_sessions>
- Tempatkan file .xml di direktori Binn untuk instans SQL Server.
- File ini harus diberi nama
Launchpad.xevents.xml
.
Contoh: Menangkap peristiwa BXLServer
Contoh berikut menunjukkan definisi jejak peristiwa untuk BXLServer yang dapat dieksekusi.
<?xml version="1.0" encoding="utf-8"?>
<event_sessions>
<event_session name="sqlsatelliteut" maxMemory="1" dispatchLatency="1" MaxDispatchLatency="2 SECONDS">
<description owner="hay">Xevent for sql tdd runner.</description>
<event package="SQLSatellite" name="satellite_abort_received" />
<event package="SQLSatellite" name="satellite_authentication_completion" />
<event package="SQLSatellite" name="satellite_cleanup" />
<event package="SQLSatellite" name="satellite_data_receive_completion" />
<event package="SQLSatellite" name="satellite_data_send_completion" />
<event package="SQLSatellite" name="satellite_data_send_start" />
<event package="SQLSatellite" name="satellite_schema_sent" />
<event package="SQLSatellite" name="satellite_unexpected_message_received" />
<event package="SQLSatellite" name="satellite_data_chunk_sent" />
<target package="package0" name="event_file">
<parameter name="filename" value="satellite_session.xel" />
<parameter name="max_file_size" value="10" />
<parameter name="max_rollover_files" value="10" />
</target>
</event_session>
</event_sessions>
- Tempatkan file .xml di direktori yang sama dengan BXLServer yang dapat dieksekusi.
- File ini harus diberi nama
bxlserver.xevents.xml
.