Megosztás:


Adatelemzési ügyfél beállítása R-fejlesztéshez az SQL Serveren

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.

Ügyfél-kiszolgáló összetevők

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.

  1. Töltse le a Microsoft R-ügyfelet.

  2. 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.

  3. 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.

  1. A Fájlkezelőben nyissa meg a %ProgramFiles%\Microsoft\R Client\R_SERVER\bin mappát, hogy megerősítse a R.exe helyét.

  2. 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.

  3. Nyissa meg %ProgramFiles%\Microsoft\R Client\R_SERVER\library az 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.

  1. 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.

  2. Í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.

  3. Írja be a search() kifejezést az R-parancssorba a telepített csomagok listájának megadásához.

    Verzióinformációk az R betöltésekor

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.

  1. 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.

  2. 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)

  3. 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 cc utasí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      0     
    
  4. A 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()
    
  5. 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.

  6. 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ó.

    Pontdiagram az RGUI-ban

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.

  1. 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.

  2. 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.

  3. 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: .

  4. 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.

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.

  1. A Fájl menüben válassza az Új , majd a Project lehetőséget.

  2. 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

  3. Írja be .libPaths() a szkriptfájl első sorát, majd nyomja le a billentyűt CTRL + ENTER.

    Az R interaktív ablakban meg kell jeleníteni az aktuális R-kódtár elérési útját.

  4. 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.