Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
funcargumentumot 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
spNamea 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, éssetOutputParameter.Igény szerint a(z)
filePathhaszná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ésconnectionString.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
setInputDataQueryegy 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,setInputDataQueryakkor 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
executeStoredProcedureegy 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.