Megosztás:


Python- és R-szkriptek monitorozása kiterjesztett eseményekkel az SQL Server Machine Learning Servicesben

A következőkre vonatkozik: Sql Server 2016 (13.x) és újabb verziók felügyelt Azure SQL-példány

Megtudhatja, hogyan használhat kiterjesztett eseményeket az SQL Server Machine Learning Services, az SQL Server Launchpad és a Python- vagy R-feladatok külső szkriptjeihez kapcsolódó műveletek monitorozására és hibaelhárítására.

Bővített események az SQL Server Machine Learning Serviceshez

Az SQL Server Machine Learning Serviceshez kapcsolódó események listájának megtekintéséhez futtassa az alábbi lekérdezést az SQL Server Management Studióban (SSMS), a Visual Studio Code MSSQL-bővítményében, az sqlcmdben vagy a kedvenc T-SQL-lekérdezési eszközben.

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';

A kiterjesztett események használatáról további információt a Bővített események eszközei című témakörben talál.

A Machine Learning Servicesre vonatkozó további események

További kiterjesztett események érhetők el az SQL Server Machine Learning Serviceshez kapcsolódó és használt összetevőkhöz, például az SQL Server Launchpadhez és a BXLServerhez, valamint a Python- vagy R-futtatókörnyezetet elindító műholdas folyamathoz. Ezeket a további kiterjesztett eseményeket a külső folyamatok aktiválják; ezért külső segédprogrammal kell rögzíteni őket.

Ennek módjáról további információt az Események gyűjtése külső folyamatokból című szakaszban talál.

Bővített események táblázata

Event Description Jegyzetek
kapcsolat_elfogad Új kapcsolat elfogadásakor fordul elő. Ez az esemény az összes kapcsolati kísérlet naplózására szolgál.
sikertelen_indítás Az indítás sikertelen volt. Hibát jelez.
műhold_kapcsolat_megszakítás Kapcsolati rekord megszakítása
műhold_szakítás_érkezett Akkor aktiválódik, amikor egy megszakítás üzenet műholdas kapcsolaton keresztül vételre kerül.
műhold_abort_küldve Triggerelődik akkor, amikor abort üzenetet küldenek műholdas kapcsolaton keresztül.
műhold-hitelesítés befejezése Akkor aktiválódik, amikor a hitelesítés befejeződik a TCP vagy a Named pipe kapcsolaton keresztül.
műhold_engedélyezés_befejezése Akkor aktiválódik, ha az engedélyezés befejeződik a TCP-kapcsolat vagy a Nevesített cső használatával.
műhold_tisztítás Akkor aktiválódik, amikor a műhold hívja a karbantartást. Csak külső folyamatból aktiválva. Tekintse meg az események külső folyamatokból történő gyűjtésére vonatkozó utasításokat.
satellite_data_chunk_sent Akkor aktiválódik, amikor a műholdas kapcsolat befejezi egyetlen adattömb küldését. Az esemény az elküldött sorok számát, az oszlopok számát, a használt SNI-csomagok számát és az adattömb elküldése során eltelt időt jelenti ezredmásodpercben. Az információk segítenek megérteni, hogy mennyi időt tölt a különböző típusú adatok átadásával, és hogy hány csomagot használnak fel.
műhold_adatok_fogadásának_befejezése Akkor aktiválódik, ha egy lekérdezés minden szükséges adata a műholdas kapcsolaton keresztül érkezik. Csak külső folyamatból aktiválva. Tekintse meg az események külső folyamatokból történő gyűjtésére vonatkozó utasításokat.
műhold_adat_küldés_befejezés Akkor aktiválódik, ha a munkamenethez szükséges összes adat a műholdas kapcsolaton keresztül lesz elküldve.
műhold_adat_küldés_kezdés Az adatátvitel indításakor aktiválódik. Az adatátvitel az első adattömb elküldése előtt kezdődik.
műholdhiba Sql-műholdhibák nyomon követésére szolgál
szatellit_érvénytelen_méretű_üzenet Az üzenet mérete érvénytelen
műhold_üzenet_összevont Üzenetösszevonás nyomon követésére szolgál a hálózati rétegben
műholdüzenet körpuffer rekord üzenetgyűrű pufferrekordja
műhold_üzenet_összefoglaló összefoglaló információk az üzenetkezelésről
műhold_üzenet_verzió_eltérés Az üzenet verziómezője nem egyezik
műholdas üzenetküldés Üzenetküldő esemény nyomon követésére szolgál (kötés, kötés megszüntetése stb.)
műhold részleges üzenet Részleges üzenet nyomon követésére szolgál a hálózati rétegben
műhold_séma_fogadva Akkor aktiválódik, ha az SQL sémaüzenetet fogad és olvas be.
műhold_séma_elküldve Akkor aktiválódik, ha a műhold sémaüzenetet küld. Csak külső folyamatból aktiválva. Tekintse meg az események külső folyamatokból történő gyűjtésére vonatkozó utasításokat.
műholdszolgáltatás_indítás_elküldve Aktiválódik, amikor a szolgáltatásindítási üzenet a launchpadre kerül. Ez arra utasítja a Launchpadet, hogy indítsa el a külső folyamatot, és tartalmazza az új munkamenet azonosítóját.
satellite_váratlan_üzenet_érkezett Váratlan üzenet érkezésekor aktiválódik. Hibát jelez.
stack_trace A folyamat memóriaképének kérésekor fordul elő. Hibát jelez.
nyomkövetési esemény Nyomkövetési célokra használva Ezek az események SQL Server, Launchpad és külső folyamatkövetési üzeneteket tartalmazhatnak. Ez magában foglalja az R stdout és stderr kimenetét is.
launchpad_launch_start Aktiválódik, amikor a kilövőpad elindít egy műholdat. Csak a Launchpadről indították. Tekintse meg az launchpad.exeesemények gyűjtésére vonatkozó utasításokat.
indítópult_folytatás_elküldve Aktiválódik, ha a kilövőpad elindította a műholdat, és egy önéletrajzi üzenetet küldött az SQL Servernek. Csak a Launchpadről indították. Tekintse meg az launchpad.exeesemények gyűjtésére vonatkozó utasításokat.
satellite_data_chunk_sent Akkor aktiválódik, amikor a műholdas kapcsolat befejezi egyetlen adattömb küldését. Az oszlopok számával, a sorok számával, a csomagok számával és az adattömb elküldésével eltelt időről tartalmaz információkat.
satellite_sessionId_mismatch Az üzenet munkamenet-azonosítója nem várható

Események gyűjtése külső folyamatokból

Az SQL Server Machine Learning Services elindít néhány olyan szolgáltatást, amely az SQL Server-folyamaton kívül fut. A külső folyamatokhoz kapcsolódó események rögzítéséhez létre kell hoznia egy eseménykövetési konfigurációs fájlt, és a fájlt ugyanabba a könyvtárba kell helyeznie, mint a folyamat végrehajtható fájlját.

Fontos

Az SQL Server 2019-től az elkülönítési mechanizmus megváltozott. Ezért megfelelő engedélyeket kell adnia ahhoz a könyvtárhoz, amelyben az események nyomkövetési konfigurációs fájlja található. Az engedélyek beállításáról további információt a Windows SQL Server 2019 Fájlengedélyek szakaszában talál: A Machine Learning Services elkülönítési változásai.

  • SQL Server Launchpad

    A Launchpadhez kapcsolódó események rögzítéséhez helyezze a .xml fájlt az SQL Server-példány Binn könyvtárába. Alapértelmezett telepítés esetén ez a következő:

    C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\MSSQL\Binn.

  • A BXLServer egy olyan műholdas folyamat, amely támogatja az SQL bővíthetőségét külső szkriptnyelvekkel, például R vagy Python használatával. Minden külső nyelvi példányhoz külön BxlServer-példány indul el.

    A BXLServerhez kapcsolódó események rögzítéséhez helyezze a .xml fájlt az R vagy Python telepítési könyvtárba. Alapértelmezett telepítés esetén ez a következő:

    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.

A konfigurációs fájlt ugyanúgy kell elnevezni, mint a végrehajtható fájlt, a következő formátumban: "[name].xevents.xml". Más szóval a fájlokat a következőképpen kell elneveznünk:

  • Launchpad.xevents.xml
  • bxlserver.xevents.xml

Maga a konfigurációs fájl formátuma a következő:

<?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>  
  • A nyomkövetés konfigurálásához szerkessze a munkamenetnév helyőrzőt, a fájlnév ([SessionName].xel) helyőrzőt és a rögzíteni kívánt események nevét, például [XEvent Name 1]: , [XEvent Name 1]).
  • Tetszőleges számú eseménycsomagcímke jelenhet meg, és a rendszer mindaddig gyűjti, amíg a névattribútum helyes.

Példa: Launchpad-események rögzítése

Az alábbi példa a Launchpad szolgáltatás eseménykövetésének definícióját mutatja be:

<?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>  
  • Helyezze a .xml fájlt az SQL Server-példány Binn könyvtárába.
  • Ezt a fájlt el kell nevezni Launchpad.xevents.xml.

Példa: BXLServer-események rögzítése

Az alábbi példa a végrehajtható BXLServer eseménykövetésének definícióját mutatja be.

<?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>  
  • Helyezze a .xml fájlt ugyanabba a könyvtárba, mint a végrehajtható BXLServer.
  • Ezt a fájlt el kell nevezni bxlserver.xevents.xml.

Következő lépések