Bagikan melalui


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.

Langkah berikutnya