Memantau skrip Python dan R dengan peristiwa yang diperluas di SQL Server Pembelajaran Mesin Services
Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Managed Instance yang lebih baru
Pelajari cara menggunakan peristiwa yang diperluas untuk memantau dan memecahkan masalah operasi yang terkait dengan SQL Server Pembelajaran Mesin Services, SQL Server Launchpad, dan skrip eksternal pekerjaan Python atau R.
Kejadian yang diperluas untuk SQL Server Pembelajaran Mesin Services
Untuk melihat daftar peristiwa yang terkait dengan SQL Server Pembelajaran Mesin 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 Pembelajaran Mesin Services, seperti SQL Server Launchpad, dan BXLServer, dan proses satelit yang memulai runtime bahasa umum 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 pembatakan diterima melalui koneksi satelit. | |
satellite_abort_sent | Kebakaran saat 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 saat 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 potongan data tunggal. | 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 | Kebakaran 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 coalescing pesan di lapisan jaringan | |
satellite_message_ring_buffer_record | catatan buffer cincin pesan | |
satellite_message_summary | ringkasan informasi tentang olahpesan | |
satellite_message_version_mismatch | Bidang versi pesan tidak cocok | |
satellite_messaging | Digunakan untuk melacak peristiwa olahpesan (ikatan, unbind, dll.) | |
satellite_partial_message | Digunakan untuk melacak pesan parsial di lapisan jaringan | |
satellite_schema_received | Diaktifkan saat 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 pesan pelacakan SQL Server, Launchpad, dan proses eksternal. Ini termasuk output ke stdout dan stderr dari R. |
launchpad_launch_start | Kebakaran saat 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 potongan data tunggal. | 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 Pembelajaran Mesin 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.
SQL Server Launchpad
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 diberi nama yang sama dengan yang dapat dieksekusi, 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 pelacakan 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
.