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.

Langkah berikutnya