Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik: SQL Server 2016 (13.x)
SQL Server 2017 (14.x)
SQL Server 2019 (15.x) Linux rendszeren
Az R-integráció akkor érhető el az SQL Server 2016-ban vagy újabb verzióiban, ha az R nyelvi beállítást az SQL Server 2016 R Services vagy az SQL Server Machine Learning Services (In-Database) telepítésekor használja.
Megjegyzés:
Ez a cikk jelenleg csak linuxos SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x) és SQL Server 2019 (15.x) rendszerre vonatkozik.
Az SQL Server R-megoldásainak fejlesztéséhez és üzembe helyezéséhez telepítse a Microsoft R-ügyfelet a fejlesztői munkaállomásra a RevoScaleR és más R-kódtárak beszerzéséhez. A távoli SQL Server-példányon is szükséges RevoScaleR-kódtár koordinálja a számítási kéréseket mindkét rendszer között.
Ebből a cikkből megtudhatja, hogyan konfigurálhat R-ügyfélfejlesztési munkaállomást, hogy a gépi tanuláshoz és R-integrációhoz engedélyezett távoli SQL Serverrel kommunikálhasson. A cikkben ismertetett lépések elvégzése után ugyanazok az R-kódtárak lesznek, mint az SQL Serveren. Azt is tudni fogja, hogyan küldhet le számításokat egy helyi R-munkamenetből egy távoli R-munkamenetbe az SQL Serveren.
A telepítés ellenőrzéséhez használhatja a jelen cikkben ismertetett beépített RGUI-eszközt , vagy csatolhatja a kódtárakat az RStudio-hoz vagy bármely más, általában használt IDE-hez.
Gyakran használt eszközök
Akár az SQL új R-fejlesztője, akár az R és az adatbázis-elemzés új SQL-fejlesztője, az adatbázison belüli elemzés minden funkciójának gyakorlásához R fejlesztőeszközre és T-SQL-lekérdezésszerkesztőre , például AZ SQL Server Management Studióra (SSMS) is szüksége lesz.
Egyszerű R-fejlesztési forgatókönyvek esetén használhatja az RGUI végrehajtható fájlt, amely az alap R-disztribúcióban található az MRO-ban és az SQL Serverben. Ez a cikk bemutatja, hogyan használható az RGUI helyi és távoli R-munkamenetekhez is. A jobb hatékonyság érdekében egy teljes funkcionalitású IDE-t kell használnia, például az RStudio-t vagy a Visual Studiót.
Az SSMS egy külön letöltés, amely hasznos az SQL Server tárolt eljárásainak létrehozására és futtatására, beleértve az R-kódot tartalmazó eljárásokat is. A fejlesztői környezetben írt R-kódok szinte mindegyike beágyazható egy tárolt eljárásba. Az SSMS-sel és a beágyazott R-sel kapcsolatos további oktatóanyagok segítségével megismerheti az SSMS-t és a beágyazott R-t.
1 – R-csomagok telepítése
A Microsoft R-csomagjai több termékben és szolgáltatásban is elérhetők. Javasoljuk, hogy helyi munkaállomáson telepítse a Microsoft R-ügyfelet. Az R-ügyfél RevoScaleR, MicrosoftML, SQLRUtils és egyéb R-csomagokat biztosít.
A telepítővarázslóban fogadja el vagy módosítsa az alapértelmezett telepítési útvonalat, fogadja el vagy módosítsa az összetevők listáját, és fogadja el a Microsoft R-ügyfél licencfeltételeit.
Amikor a telepítés befejeződött, egy üdvözlőképernyő mutatja be a terméket és a dokumentációt.
Hozzon létre egy MKL_CBWR rendszerkörnyezeti változót, amely konzisztens kimenetet biztosít az Intel Math Kernel Library (MKL) számításaihoz.
- A Vezérlőpulton válassza a Rendszer és biztonság>Rendszer>Speciális rendszerbeállítások>Környezeti változók lehetőséget.
- Hozzon létre egy új , MKL_CBWR nevű rendszerváltozót, amely automatikus értékre van állítva.
2 – Végrehajtható fájlok megkeresése
Keresse meg és sorolja fel a telepítési mappa tartalmát, és ellenőrizze, hogy a R.exe, az RGUI és más csomagok telepítve vannak-e.
A Fájlkezelőben nyissa meg a
%ProgramFiles%\Microsoft\R Client\R_SERVER\binmappát, hogy megerősítse aR.exehelyét.Nyissa meg az x64 almappát, hogy ellenőrizze az RGUI-t. Ezt az eszközt a következő lépésben fogja használni.
Nyissa meg
%ProgramFiles%\Microsoft\R Client\R_SERVER\libraryaz R-ügyféllel telepített csomagok listáját, beleértve a RevoScaleR-t, a MicrosoftML-t és másokat.
3 – RGUI indítása
Amikor az R-t az SQL Serverrel telepíti, ugyanazokat az R-eszközöket kapja, amelyek az R bármely alaptelepítéséhez szabványosak, például RGui, Rterm stb. Ezek az eszközök egyszerűek, hasznosak a csomag- és tárinformációk ellenőrzéséhez, alkalmi parancsok vagy szkriptek futtatásához, illetve oktatóanyagok végrehajtásához. Ezekkel az eszközökkel lekérheti az R verzióinformációkat, és megerősítheti a kapcsolatot.
Nyissa meg
%ProgramFiles%\Microsoft\R Client\R_SERVER\bin\x64, és kattintson duplán az RGui-ra, hogy elindítson egy R parancssori munkamenetet.Amikor R-munkamenetet indít egy Microsoft-programmappából, több csomag, köztük a RevoScaleR is automatikusan betöltődik.
Írja be
print(Revo.version)a parancssorba a RevoScaleR-csomag verzióadatainak visszaadásához. A RevoScaleR 9.2.1-es vagy 9.3.0-s verziójával kell rendelkeznie.Írja be a search() kifejezést az R-parancssorba a telepített csomagok listájának megadásához.
4 – SQL-engedélyek lekérése
Az R Client esetén az R-feldolgozás két szálra és memóriában tárolt adatokra van korlátozva. Ha több magot és nagy adatkészletet használó skálázható feldolgozásra van szüksége, a végrehajtást (más néven számítási környezetet) áthelyezheti egy távoli SQL Server-példány adatkészleteibe és számítási teljesítményére. Ez az ajánlott módszer ügyfélintegrációhoz egy éles SQL Server példánnyal, és a működéshez szüksége lesz engedélyekre és kapcsolati adatokra.
Ha szkriptek futtatásához és adatok feltöltéséhez szeretne csatlakozni egy SQL Server-példányhoz, érvényes bejelentkezéssel kell rendelkeznie az adatbázis-kiszolgálón. SQL-bejelentkezést vagy integrált Windows-hitelesítést is használhat. Általában azt javasoljuk, hogy windowsos integrált hitelesítést használjon, de az SQL-bejelentkezés használata bizonyos esetekben egyszerűbb, különösen akkor, ha a szkript kapcsolati sztringeket tartalmaz a külső adatokhoz.
A kód futtatásához használt fióknak legalább engedéllyel kell rendelkeznie a használt adatbázisokból való olvasáshoz, valamint a külső szkriptek végrehajtására vonatkozó speciális engedéllyel. A legtöbb fejlesztőnek szüksége van arra is, hogy tárolt eljárásokat hozzon létre, és adatokat írjon betanítási adatokat vagy pontozott adatokat tartalmazó táblákba.
Kérje meg az adatbázisgazdát, hogy konfigurálja az alábbi engedélyeket a fiókjához abban az adatbázisban, ahol az R-t használja:
- FUTTASSON BÁRMILYEN KÜLSŐ SZKRIPTET , hogy R-szkriptet futtasson a kiszolgálón.
- db_datareader jogosultságokat a modell betanításához használt lekérdezések futtatásához.
- db_datawriter betanítási vagy pontozott adatok írásához.
- db_owner objektumokat, például tárolt eljárásokat, táblákat, függvényeket hozhat létre. Mintaadatbázisok létrehozásához és teszteléséhez db_owner is szükség van.
Ha a kódhoz olyan csomagokra van szükség, amelyek alapértelmezés szerint nincsenek telepítve az SQL Serverrel, kérje meg az adatbázis-rendszergazdát, hogy telepítse a csomagokat a példányra. Az SQL Server biztonságos környezet, és korlátozások vonatkoznak a csomagok telepítésének helyére. További információ: Új R-csomagok telepítése az SQL Serveren.
5 – Kapcsolatok tesztelése
Ellenőrzési lépésként az RGUI és a RevoScaleR használatával erősítse meg a távoli kiszolgálóhoz való kapcsolódást. Az SQL Servert engedélyezni kell a távoli kapcsolatokhoz , és engedélyekkel kell rendelkeznie, beleértve egy felhasználói bejelentkezést és egy adatbázist, amelyhez csatlakozni szeretne.
Az alábbi lépések feltételezik a demóadatbázist, a NYCTaxi_Sample és a Windows-hitelesítést.
Nyissa meg az RGUI-t az ügyfél-munkaállomáson. Nyissa meg például a
~\Program Files\Microsoft SQL Server\140\R_SERVER\bin\x64RGui.exe , majd kattintson duplán az indításhoz.A RevoScaleR automatikusan betöltődik. Ellenőrizze, hogy a RevoScaleR működik-e a következő parancs futtatásával:
print(Revo.version)Adja meg a távoli kiszolgálón végrehajtott demo szkriptet. A következő példaszkriptet úgy kell módosítania, hogy érvényes nevet adjon egy távoli SQL Server-példánynak. Ez a munkamenet helyi munkamenetként kezdődik, de az rxSummary függvény a távoli SQL Server-példányon fut.
# Define a connection. Replace server with a valid server name. connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true" # Specify the input data in a SQL query. sampleQuery <-"SELECT DISTINCT TOP(100) tip_amount FROM [dbo].nyctaxi_sample ORDER BY tip_amount DESC;" # Define a remote compute context based on the remote server. cc <-RxInSqlServer(connectionString=connStr) # Execute the function using the remote compute context. rxSummary(formula = ~ ., data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr), computeContext=cc)Eredmények:
Ez a szkript a távoli kiszolgálón lévő adatbázishoz csatlakozik, lekérdezést biztosít, létrehoz egy számítási környezet
ccutasítást a távoli kódvégrehajtáshoz, majd megadja az rxSummary RevoScaleR függvényt a lekérdezés eredményeinek statisztikai összegzéséhez.Call: rxSummary(formula = ~., data = RxSqlServerData(sqlQuery = sampleQuery, connectionString = connStr), computeContext = cc) Summary Statistics Results for: ~. Data: RxSqlServerData(sqlQuery = sampleQuery, connectionString = connStr) (RxSqlServerData Data Source) Number of valid observations: 100 Name Mean StdDev Min Max ValidObs MissingObs tip_amount 63.245 31.61087 36 180 100 0A számítási környezet lekérése és beállítása. Miután beállított egy számítási környezetet, az a munkamenet során is érvényben marad. Ha nem biztos abban, hogy a számítás helyi vagy távoli, futtassa az alábbi parancsot. A kapcsolati sztringet megjelölő eredmények távoli számítási környezetet jeleznek.
# Return the current compute context. rxGetComputeContext() # Revert to a local compute context. rxSetComputeContext("local") rxGetComputeContext() # Switch back to remote. connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true" cc <-RxInSqlServer(connectionString=connStr) rxSetComputeContext(cc) rxGetComputeContext()Adja vissza az adatforrás változóinak adatait, beleértve a nevet és a típust.
rxGetVarInfo(data = inDataSource)Az eredmények 23 változót tartalmaznak.
Hozzon létre egy pontdiagramot, amelyből megtudhatja, hogy vannak-e függőségek két változó között.
# Set the connection string. Substitute a valid server name for the placeholder. connStr <- "Driver=SQL Server;Server=<your database name>;Database=NYCTaxi_Sample;Trusted_Connection=true" # Specify a query on the nyctaxi_sample table. # For variables on each axis, remove nulls. Use a WHERE clause and <> to do this. sampleQuery <-"SELECT DISTINCT TOP 100 * from [dbo].[nyctaxi_sample] WHERE fare_amount <> '' AND tip_amount <> ''" cc <-RxInSqlServer(connectionString=connStr) # Generate a scatter plot. rxLinePlot(fare_amount ~ tip_amount, data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr, computeContext=cc), type="p")Az alábbi képernyőképen a bemeneti adatok és a pontdiagram ábra eredménye látható.
6 – Eszközök összekapcsolása az R.exe-vel
Tartós és komoly fejlesztési projektek esetén integrált fejlesztési környezetet (IDE) kell telepítenie. Az SQL Server-eszközök és a beépített R-eszközök nem alkalmasak nehéz R-fejlesztésre. Ha már rendelkezik működő kóddal, üzembe helyezheti azt tárolt eljárásként az SQL Serveren való végrehajtáshoz.
Az IDE-t a helyi R-kódtárakra irányíthatja: alap R, RevoScaleR stb. A számítási feladatok távoli SQL Serveren való futtatása a szkript végrehajtása során történik, amikor a szkript távoli számítási környezetet hív meg az SQL Serveren, és hozzáfér az adott kiszolgálón lévő adatokhoz és műveletekhez.
RStudio
Az RStudio használatakor konfigurálhatja a környezetet úgy, hogy a távoli SQL Serveren találhatóaknak megfelelő R-kódtárakat és végrehajtható fájlokat használjon.
Ellenőrizze az SQL Serverre telepített R-csomagverziókat. További információt az R-csomag adatainak lekérése című témakörben talál.
Telepítse a Microsoft R-ügyfelet a RevoScaleR és más R-csomagok hozzáadásához, beleértve az SQL Server-példány által használt alap R-disztribúciót is. Válasszon egy olyan verziót, amely ugyanazon a szinten vagy alacsonyabb szinten van (a csomagok visszamenőlegesen kompatibilisek), amely ugyanazokat a csomagverziókat biztosítja, mint a kiszolgálón. A kiszolgálón telepített csomagverziók megtekintéséhez tekintse meg az összes telepített R-csomag listáját.
Az RStudio-ban frissítse az R elérési útját , hogy a RevoScaleR, a Microsoft R Open és más Microsoft-csomagokat biztosító R-környezetre mutasson. Keresse meg a következőt
%ProgramFiles%\Microsoft\R Client\R_SERVER\bin\x64: .Zárja be, majd nyissa meg az RStudio-t.
Amikor újra megnyitja az RStudio-t, az R Client-ből származó R végrehajtható fájl lesz az alapértelmezett R motor.
R Tools for Visual Studio (RTVS)
Ha még nem rendelkezik előnyben részesített IDE for R-sel, az R Tools for Visual Studiót javasoljuk.
- R Tools for Visual Studio (RTVS) letöltése
- Telepítési utasítások – Az RTVS a Visual Studio több verziójában is elérhető.
- Az R Tools for Visual Studio használatának első lépései
Csatlakozás az SQL Serverhez az RTVS-ből
Ez a példa a Visual Studio 2017 Community Editiont használja, és telepítve van az adatelemzési számítási feladat.
A Fájl menüben válassza az Új , majd a Project lehetőséget.
A bal oldali panel az előre telepített sablonok listáját tartalmazza. Válassza az R, majd az R Project lehetőséget. A Név mezőbe írja be
dbtestés válassza az OK gombot.A Visual Studio létrehoz egy új projektmappát és egy alapértelmezett szkriptfájlt.
Script.RÍrja be
.libPaths()a szkriptfájl első sorát, majd nyomja le a billentyűtCTRL + ENTER.Az R interaktív ablakban meg kell jeleníteni az aktuális R-kódtár elérési útját.
Válassza az R-eszközök menüt, és válassza a Windows lehetőséget a munkaterületen megjeleníthető egyéb R-specifikus ablakok listájának megtekintéséhez.
- Az aktuális kódtár csomagjainak súgóját a CTRL + 3 billentyűkombináció lenyomásával tekintheti meg.
- Az R változókat a Változókezelőben a CTRL + 8 billentyűkombináció lenyomásával tekintheti meg.
Következő lépések
Két különböző oktatóanyag is tartalmaz gyakorlatokat, amelyekkel gyakorolhatja a számítási környezet helyiről távoli SQL Server-példányra való váltását.