sqlrutils (R csomag SQL Server Machine Learning szolgáltatásokban)

A következőkre vonatkozik: SQL Server 2016 (13.x) és újabb verziók

a sqlrutils egy R csomag a Microsoft-tól, amely egy mechanizmust biztosít az R felhasználók számára, hogy R szkriptjeiket egy T-SQL tárolt eljárásba helyezzék, regisztrálják azt egy adatbázisban, és futtatják a tárolt eljárást egy R fejlesztői környezetből. A csomag az SQL Server Machine Learning Services és az SQL Server 2016 R Services részét képezi.

Ha az R-kódodat úgy alakítod át, hogy egyetlen tárolt eljáráson belül fusson, hatékonyabban használhatod az SQL Server R Services szolgáltatást, amely megköveteli, hogy az R-szkript paraméterként legyen beágyazva a sp_execute_external_script elembe. A sqlrutils csomag segít felépíteni ezt az R szkriptet és a kapcsolódó paramétereket megfelelően beállítani.

A sqlrutils csomag ezeket a feladatokat végzi:

  • A generált T-SQL-szkriptet karakterláncként menti egy R-adatszerkezetben.
  • Opcionálisan létrehozhatsz egy .sql fájlt a T-SQL szkripthez, amit szerkeszthetsz vagy futtathatsz tárolt eljáráshoz
  • Regisztrálja az újonnan létrehozott tárolt eljárást az SQL Server-példányban az R fejlesztői környezetből

A tárolt eljárást R környezetből is végrehajthatod, jól formált paraméterek átadásával és az eredmények feldolgozásával. Vagy használhatod az SQL Server tárolt eljárását gyakori adatbázis-integrációs helyzetekhez, mint az ETL, modellbetanítás és nagy volumenű pontozás.

Note

Ha a tárolt eljárást egy R környezetből akarod futtatni az executeStoredProcedure függvény hívásával, akkor ODBC 3.8 szolgáltatót kell használni, például az ODBC Driver 13 for SQL Server-t.

Teljes referenciadokumentáció

A sqlrutils csomag több Microsoft termékben is elérhető, de a használat ugyanaz, akár SQL Server-ben vagy más termékben kapod meg. Ha léteznek termékspecifikus viselkedések, az eltéréseket a függvény súgóoldalán fogjuk feljegyezni.

Funkciók listája

A következő szakasz áttekintést nyújt azokról a függvényekről, amelyeket a sqlrutils csomagból hívhatsz meg, hogy beágyazott R kódot tartalmazó tárolt eljárást fejlessz ki. Az egyes metódusok vagy függvények paramétereinek részleteiért lásd a csomag R segítségét: help(package="sqlrutils")

Funkció Description
executeStoredProcedure Hajtson végre egy SQL-tárolt eljárást.
getInputParameters Szerezz egy listát a tárolt eljárás bemeneti paramétereiről.
InputData Meghatározza az SQL Server-ben az R adatkeretben használt adatforrást. Megadod a data.frame nevét, amelyben tárolod a bemeneti adatokat, és egy lekérdezést az adat megszerzéséhez, vagy egy alapértelmezett értéket. Csak egyszerű SELECT lekérdezések támogatottak.
InputParameter Egyetlen bemeneti paramétert definiál, amely beágyazódik a T-SQL szkriptbe. Meg kell adnod a paraméter nevét és az R adattípusát.
OutputData Köztes adatobjektumot generál, amelyre szükség van, ha az R függvény egy listát ad vissza, amely data.frame-et tartalmaz. Az OutputData objektum egyetlen data.frame nevét tárolja, amely a listából származik.
OutputParameter Létrehoz egy köztes adatobjektumot, amelyre szükség van, ha az R függvény listát ad vissza. Az OutputParameter objektum tárolja a lista egyetlen tagjának nevét és adattípusát, feltételezve, hogy az adott tag nem adatkeret.
registerStoredProcedure Regisztráld a tárolt eljárást egy adatbázisban.
setInputDataQuery Rendelj egy lekérdezést a tárolt eljárás bemeneti adatparaméteréhez.
setInputParameterValue Rendelj értéket a tárolt eljárás bemeneti paraméteréhez.
StoredProcedure Egy tárolt eljárásobjektum.

Hogyan használjuk a sqlrutilokat

A sqlrutils csomagfüggvényeknek olyan számítógépen kell futnia, amely SQL Server Machine Learning R-vel. Ha kliens munkaállomáson dolgozol, állíts be egy távoli számítási kontextust, hogy a végrehajtást az SQL Server-re helyezze át. A csomag használatának munkafolyamata a következő lépéseket tartalmazza:

  • Definiálja a tárolt eljárásparamétereket (bemenetek, kimenetek vagy mindkettő)
  • Hozza létre és regisztrálja a tárolt eljárást
  • A tárolt eljárás végrehajtása

Egy R-munkamenetben a sqlrutils csomagot a parancssorban a library(sqlrutils) beírásával töltheti be.

Note

Ezt a csomagot olyan számítógépen töltheted be, amelyiknél nincs SQL Server (például egy R Client instance-on), ha a számítási kontextust SQL Server-re változtatod, és abban futtatod a kódot.

Definiálni tárolt eljárásparamétereket és bemeneteket

StoredProcedure ez a fő konstruktor, amelyet a tárolt eljárás felépítéséhez használnak. Ez a konstruktor generál egy SQL Server Stored Procedure objektumot, és opcionálisan létrehoz egy szövegfájlt, amely lekérdezést tartalmaz, amellyel a tárolt eljárást T-SQL parancs segítségével generálhatjuk.

Opcionálisan a StoredProcedure függvény regisztrálhatja a tárolt eljárást a megadott példányban és adatbázisban is.

  • Használd az func argumentumot egy érvényes R függvény megadásához. Az összes változót, amelyet a függvény használ, vagy a függvényen belül definiálni, vagy bemeneti paraméterként kell megadni. Ezek a paraméterek legfeljebb egy adatkeretet tartalmazhatnak.

  • Az R függvénynek vagy adatkeretet, elnevezett listát vagy NULL-t kell visszaadnia. Ha a függvény listát ad vissza, a lista legfeljebb egy data.frame tartalmazhat.

  • Használd az argumentumot spName a tárolt eljárás nevének megadására, amit létre akarsz hozni.

  • Opcionális bemeneti és kimeneti paramétereket is beadhatsz az alábbi segítő függvények által létrehozott objektumokkal: setInputData, setInputParameter, és setOutputParameter.

  • Igény szerint a(z) filePath használatával megadhatja a létrehozandó .sql-fájl elérési útját és nevét. Ezt a fájlt futtathatod az SQL Server példányon, hogy a tárolt eljárást T-SQL segítségével generálhassd.

  • A szerver és adatbázis meghatározásához a tárolt eljárás mentésére használja az argumentumokat dbName és connectionString.

  • Az InputData és InputParameter objektumok listájának megszerzéséhez, amelyeket egy adott StoredProcedure objektum létrehozásához használtak, hívjuk getInputParameters.

  • A tárolt eljárás regisztrálásához a megadott adatbázisban használjuk registerStoredProcedure.

A tárolt eljárás objektumhoz általában nincs hozzá tartozó adat vagy érték, kivéve, ha alapértelmezett értéket jelöltek meg. Az adatokat csak akkor kérik vissza, ha a tárolt eljárást végrehajtják.

Határozd meg a bemeneteket és hajtsd végre

  • Használd setInputDataQuery egy lekérdezés hozzárendelésére egy InputParameter objektumhoz. Például, ha létrehoztál egy tárolt eljárásobjektumot az R-ben, setInputDataQuery akkor argumentumokat továbbíthatsz a StoredProcedure függvénynek, hogy a tárolt eljárást a kívánt bemenetekkel teljesítsd.

  • Használható setInputValue , hogy specifikus értékeket rendeljen egy paraméterhez, amelyet InputParameter objektumként tárolnak. Ezután átadod a paraméterobjektumot és annak értékkiosztását a StoredProcedure függvénynek, hogy végrehajtsd a tárolt eljárást a halmazértékekkel.

  • Használd executeStoredProcedure egy tárolt eljárás végrehajtására, amelyet StoredProcedure objektumként definiálnak. Ezt a függvényt csak akkor hívjuk meg, amikor R kódból tárolt eljárást futtatunk. Ne használja a tárolt eljárás T-SQL-lel történő futtatásakor SQL Serverből.

Note

A executeStoredProcedure funkcióhoz ODBC 3.8 szolgáltató szükséges, például az ODBC Driver 13 az SQL Server számára.