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
Ez a cikk a külső Python-szkriptek SQL Server Machine Learning Services és SQL Server 2016 R Services használatával történő futtatásához használható R-bővítményt ismerteti. A bővítmény a következőt adja hozzá:
- R végrehajtási környezet
- Alap R-disztribúció standard kódtárakkal és eszközökkel
- Microsoft R-kódtárak:
- RevoScaleR a nagy léptékű elemzéshez
- MicrosoftML gépi tanulási algoritmusokhoz. Csak az SQL Server 2016-ra, az SQL Server 2017-re és az SQL Server 2019-re vonatkozik.
- Egyéb kódtárak adatok vagy R-kód sql serveren való eléréséhez
R-összetevők
Az SQL Server nyílt forráskódú és védett csomagokat is tartalmaz. Az alap R-kódtárak a Microsoft nyílt forráskódú R: Microsoft R Open (MRO) disztribúcióján keresztül vannak telepítve. Az R jelenlegi felhasználóinak képesnek kell lenniük az R-kód portálására és külső folyamatként való végrehajtására az SQL Serveren, kevés módosítással vagy módosítás nélkül. Az MRO az SQL-eszközöktől függetlenül van telepítve, és az alapvető motorfolyamatokon kívül, a bővíthetőségi keretrendszerben fut. A telepítés során hozzá kell járulnia a nyílt forráskódú licenc feltételeihez. Ezt követően további módosítás nélkül futtathat standard R-csomagokat, ugyanúgy, mint az R bármely más nyílt forráskódú terjesztésében.
Az SQL Server 2016 (13.x), az SQL Server 2017 (14.x) és az SQL Server 2019 (15.x) esetében az SQL Server nem módosítja az alap R-végrehajtható fájlokat, de a telepítő által telepített R-verziót kell használnia, mert a védett csomagok erre a verzióra épülnek és tesztelhetők. Ha többet szeretne megtudni arról, hogy az MRO miben különbözik a CRAN-tól kapott R-alapú disztribúciótól, tekintse meg az R nyelvvel és a Microsoft R-termékekkel és -funkciókkal való együttműködésről szóló témakört.
A telepítő által telepített R alapcsomag-eloszlás a példányhoz társított mappában található. Ha például az R Servicest egy alapértelmezett SQL Server-példányra telepítette, az R-kódtárak alapértelmezés szerint ebben a mappában találhatók: C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library. Hasonlóképpen, az alapértelmezett példányhoz társított R-eszközök alapértelmezés szerint ebben a mappában találhatók: C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin.
A Microsoft által a párhuzamos és elosztott számítási feladatokhoz hozzáadott R-csomagok a következő kódtárakat tartalmazzák.
| Könyvtár | Description |
|---|---|
| RevoScaleR | Támogatja az adatforrás-objektumokat és az adatfeltárást, a manipulációt, az átalakítást és a vizualizációt. Támogatja a távoli számítási környezetek létrehozását, valamint számos skálázható gépi tanulási modellt, például az rxLinModot. Az API-kat úgy optimalizálták, hogy elemezzék azokat az adatkészleteket, amelyek túl nagyok ahhoz, hogy elférjenek a memóriában, és több magon vagy processzoron elosztott számításokat hajtsanak végre. A RevoScaleR-csomag az XDF fájlformátumot is támogatja az elemzéshez használt adatok gyorsabb áthelyezéséhez és tárolásához. Az XDF formátum oszlopos tárolót használ, hordozható, és felhasználható különböző forrásokból származó adatok betöltésére és kezelésére, például szövegből, SPSS-ből vagy ODBC-kapcsolatból. |
| MicrosoftML | Olyan gépi tanulási algoritmusokat tartalmaz, amelyek a sebességre és a pontosságra vannak optimalizálva, valamint a szöveggel és a képekkel való munkához szükséges, soron belüli átalakításokat. További információ: MicrosoftML az SQL Serverben. Csak az SQL Server 2016-ra, az SQL Server 2017-re és az SQL Server 2019-re vonatkozik. |
Az SQL Server 2022 -től (16.x) kezdődően az R, Python és Java futtatókörnyezetek már nincsenek telepítve az SQL-beállítással. Ehelyett telepítse a kívánt R- és/vagy Python-egyéni futtatókörnyezetet és csomagokat. További információ: Az SQL Server 2022 Machine Learning Services telepítése Windows rendszeren vagy AZ SQL Server Machine Learning Services (Python és R) linuxos telepítése.
Az R használata az SQL Serverben
Az R-t alapfüggvényekkel is szkriptelheti, de a többszörös feldolgozás előnyeinek kihasználásához importálnia kell a RevoScaleR és a MicrosoftML modulokat az R-kódba, majd meghívnia kell annak függvényeit, hogy párhuzamosan futó modelleket hozzon létre.
A támogatott adatforrások közé tartoznak az ODBC-adatbázisok, az SQL Server és az XDF fájlformátumok, amellyel adatokat cserélhet más forrásokkal vagy R-megoldásokkal. A bemeneti adatoknak táblázatosnak kell lenniük. Minden R-eredményt adatkeret formájában kell visszaadni.
A támogatott számítási környezetek közé tartoznak a helyi vagy távoli SQL Server számítási környezetek. A távoli számítási környezet olyan kódvégrehajtást jelent, amely egy számítógépen, például egy munkaállomáson indul el, majd a szkript végrehajtását távoli számítógépre váltja. A számítási környezet váltásához mindkét rendszernek ugyanazzal a RevoScaleR-kódtárzal kell rendelkeznie.
A helyi számítási környezet, ahogy várható, magában foglalja az R-kód végrehajtását ugyanazon a kiszolgálón, mint az adatbázismotor-példány, a T-SQL-ben lévő kóddal vagy egy tárolt eljárásba ágyazva. A kódot egy helyi R IDE-ből is futtathatja, és végrehajtathatja a szkriptet az SQL Server-számítógépen egy távoli számítási környezet definiálásával.
Végrehajtási architektúra
Az alábbi ábrák az SQL Server-összetevők és az R-futtatókörnyezet közötti interakciót ábrázolják az egyes támogatott forgatókönyvekben: szkriptek adatbázison belüli futtatása és távoli végrehajtás egy R-parancssorból SQL Server számítási környezet használatával.
SQL Serverben belülről futtatott R-szkriptek az adatbázisban
Az "inside" SQL Serverről futtatott R-kód egy tárolt eljárás meghívásával lesz végrehajtva. Így minden olyan alkalmazás, amely képes tárolt eljáráshívást kezdeményezni, kezdeményezheti az R-kód végrehajtását. Ezt követően az SQL Server kezeli az R-kód végrehajtását az alábbi ábrán összefoglalt módon.
- Az R-futtatókörnyezetre vonatkozó kérést az @language='R' paraméter jelzi a tárolt eljárásnak, sp_execute_external_script. Az SQL Server elküldi ezt a kérést a launchpad szolgáltatásnak. Linuxon az SQL egy launchpadd szolgáltatással kommunikál minden felhasználó számára egy külön launchpad-folyamattal. Részletekért tekintse meg a Bővíthetőségi architektúra diagramját .
- A launchpad szolgáltatás elindítja a megfelelő indítót; ebben az esetben az RLauncher.
- Az RLauncher elindítja a külső R-folyamatot.
- A BxlServer az R-futtatókörnyezettel koordinálja az adatcseréket az SQL Serverrel, valamint a munkaeredmények tárolását.
- Az SQL Satellite az SQL Serverrel kapcsolatos feladatokkal és folyamatokkal kapcsolatos kommunikációt kezeli.
- A BxlServer az SQL Satellite használatával közli az állapotot és az eredményeket az SQL Serverrel.
- Az SQL Server lekéri az eredményeket, és bezárja a kapcsolódó feladatokat és folyamatokat.
Távoli ügyfélből végrehajtott R-szkriptek
A Microsoft R-t támogató távoli adatelemzési ügyfélről való csatlakozáskor az R-függvényeket az SQL Server környezetében futtathatja a RevoScaleR függvények használatával. Ez egy másik munkafolyamat, mint az előző, és az alábbi diagram foglalja össze.
- A RevoScaleR függvények esetében az R-futtatókörnyezet egy összekapcsoló függvényt hív meg, amely viszont meghívja a BxlServert.
- A BxlServer a Microsoft R-hez tartozik, és az R-futtatókörnyezettől eltérő folyamaton fut.
- A BxlServer meghatározza a kapcsolati célt, és odBC használatával kezdeményezi a kapcsolatot, átadva az R-adatforrás objektumában a kapcsolati sztring részeként megadott hitelesítő adatokat.
- A BxlServer kapcsolatot nyit az SQL Server-példányhoz.
- R-hívás esetén a rendszer meghívja a launchpad szolgáltatást, amely viszont elindítja a megfelelő indítót, az RLaunchert. Ezt követően az R-kód feldolgozása hasonló a T-SQL-ből származó R-kód futtatásának folyamatához.
- Az RLauncher meghívja az SQL Server-számítógépre telepített R-futtatókörnyezet példányát.
- A rendszer visszaadja az eredményeket a BxlServernek.
- Az SQL Satellite kezeli az SQL Serverrel folytatott kommunikációt és a kapcsolódó feladatobjektumok törlését.
- Az SQL Server visszaadja az eredményeket az ügyfélnek.