Megosztás:


R-csomagok telepítése sqlmlutils használatával

Vonatkozik a következőkre: SQL Server 2019 (15.x) és későbbi verziók Azure SQL Managed Instance

Ez a cikk azt ismerteti, hogyan telepíthet R-csomagokat az SQL Serveren és a Big Data-fürtökönfutó Machine Learning Services egy példányára az sqlmlutils-csomagban található függvényekkel. A telepített csomagok az adatbázisban futó R-szkriptekben használhatók a sp_execute_external_script T-SQL utasítással.

Megjegyzés:

A cikkben ismertetett sqlmlutils-csomag R-csomagok SQL Server 2019-es vagy újabb verziójához való hozzáadására szolgál. Az SQL Server 2017-ben és korábbi verzióiban lásd: Csomagok telepítése R-eszközökkel.

Ez a cikk azt ismerteti, hogyan lehet függvényeket használni az sqlmlutils-csomagban R-csomagok telepítéséhez az Azure SQL Managed Instance Machine Learning Services egy példányára. A telepített csomagok az adatbázisban futó R-szkriptekben használhatók a sp_execute_external_script T-SQL utasítással.

Megjegyzés:

Az SQL Managed Instance Machine Learning Services egy példányán előre telepített csomagok nem frissíthetők vagy távolíthatók el. A jelenleg telepített csomagok listájának megtekintéséhez tekintse meg az összes telepített R-csomag listáját.

Előfeltételek

  • Telepítse az R és az RStudio Desktopot az SQL Serverhez való csatlakozáshoz használt ügyfélszámítógépre. Bármilyen R IDE-t használhat szkriptek futtatásához, de ez a cikk az RStudio-t feltételezi.

    Az R verziójának az ügyfélszámítógépen meg kell egyeznie a kiszolgálón található R verziójával, és a telepített csomagoknak meg kell felelniük az R verziójának. További információ arról, hogy az R melyik verzióját tartalmazza az egyes SQL Server-verziók, lásd : Python- és R-verziók.

    Ha ellenőrizni szeretné az R verzióját egy adott SQL Serveren, használja a következő T-SQL-parancsot.

    EXECUTE sp_execute_external_script @language = N'R'
    , @script = N'print(R.version)'
    
  • Az SQL Serverhez való csatlakozáshoz használt ügyfélszámítógépen használja a Visual Studio Code MSSQL-bővítményét . Más adatbázis-kezelési vagy lekérdezési eszközöket is használhat.

Egyéb szempontok

  • A csomagtelepítés az SQL-példányra, az adatbázisra és a felhasználóra vonatkozik, amelyet az sqlmlutils számára megadott kapcsolati információkban megadott. Ha a csomagot több SQL-példányban vagy adatbázisban, illetve különböző felhasználók számára szeretné használni, mindegyikhez telepítenie kell a csomagot. A kivétel az, hogy ha a csomagot egy tagja dbotelepíti, a csomag nyilvános , és minden felhasználóval meg van osztva. Ha egy felhasználó egy nyilvános csomag újabb verzióját telepíti, a nyilvános csomagra nincs hatással, de a felhasználónak hozzáférése lesz az újabb verzióhoz.

  • Az SQL Serveren futó R-szkriptek csak az alapértelmezett példánytárban telepített csomagokat használhatják. Az SQL Server nem tud csomagokat betölteni külső kódtárakból, még akkor sem, ha az ugyanazon a számítógépen található. Ide tartoznak a más Microsoft-termékekkel telepített R-kódtárak is.

  • Egy megkeményített SQL Server-környezetben érdemes lehet elkerülni a következőket:

    • Hálózati hozzáférést igénylő csomagok
    • Emelt szintű fájlrendszer-hozzáférést igénylő csomagok
    • Webfejlesztéshez vagy más olyan feladatokhoz használt csomagok, amelyek nem hasznosak az SQL Serveren való futtatással

Sqlmlutils telepítése az ügyfélszámítógépen

Az sqlmlutils használatához először telepítenie kell az SQL Serverhez való csatlakozáshoz használt ügyfélszámítógépen.

Az sqlmlutils-csomag az odbc-csomagtól , az odbc pedig számos más csomagtól függ. Az alábbi eljárások az összes csomagot a megfelelő sorrendben telepítik.

Az sqlmlutils online telepítése

Ha az ügyfélszámítógép rendelkezik internet-hozzáféréssel, letöltheti és telepítheti az sqlmlutilst és annak függő csomagjait online.

  1. Töltse le a legújabb sqlmlutils-fájlt (.zip Windowshoz, .tar.gz Linuxhoz) az ügyfélszámítógépre https://github.com/microsoft/sqlmlutils/releases . Ne bontsa ki a fájlt.

  2. Nyisson meg egy parancssort , és futtassa a következő parancsokat az odbc és sqlmlutils csomagok telepítéséhez. Cserélje le a letöltött sqlmlutils-fájl elérési útját. Az odbc-csomag online megtalálható és telepítve van.

    R.exe -e "install.packages('odbc', type='binary')"
    R.exe CMD INSTALL sqlmlutils_1.0.0.zip
    
    R.exe -e "install.packages('odbc')"
    R.exe CMD INSTALL sqlmlutils_1.0.0.tar.gz
    

Az sqlmlutils offline telepítése

Ha az ügyfélszámítógép nem rendelkezik internetkapcsolattal, az odbc - és sqlmlutils-csomagokat előre le kell töltenie egy olyan számítógép használatával, amely rendelkezik internetkapcsolattal. Ezután átmásolhatja a fájlokat az ügyfélszámítógép egyik mappájába, és offline módban telepítheti a csomagokat.

Az odbc-csomag számos függő csomaggal rendelkezik, és a csomagok összes függőségének azonosítása bonyolulttá válik. Javasoljuk, hogy a miniCRAN használatával hozzon létre egy helyi adattármappát a csomaghoz, amely tartalmazza az összes függő csomagot. További információ: Helyi R-csomagtárház létrehozása a miniCRAN használatával.

Az sqlmlutils-csomag egyetlen fájlból áll, amelyet átmásolhat az ügyfélszámítógépre, és telepítheti.

Internetkapcsolattal rendelkező számítógépen:

  1. Telepítse a miniCRAN-t. További részletekért lásd: MiniCRAN telepítése .

  2. Az RStudio-ban futtassa a következő R-szkriptet az odbc csomag helyi adattárának létrehozásához. Ez a példa feltételezi, hogy az adattár a mappában odbclesz létrehozva.

    library("miniCRAN")
    CRAN_mirror <- c(CRAN = "https://cran.microsoft.com")
    local_repo <- "odbc"
    pkgs_needed <- "odbc"
    pkgs_expanded <- pkgDep(pkgs_needed, repos = CRAN_mirror);
    
    makeRepo(pkgs_expanded, path = local_repo, repos = CRAN_mirror, type = "win.binary", Rversion = "3.5");
    
    library("miniCRAN")
    CRAN_mirror <- c(CRAN = "https://cran.microsoft.com")
    local_repo <- "odbc"
    pkgs_needed <- "odbc"
    pkgs_expanded <- pkgDep(pkgs_needed, repos = CRAN_mirror);
    
    makeRepo(pkgs_expanded, path = local_repo, repos = CRAN_mirror, type = "source", Rversion = "3.5");
    

    A Rversion értékhez az SQL Serverre telepített R-verzió használatát használja. A telepített verzió ellenőrzéséhez használja a következő T-SQL-parancsot.

    EXECUTE sp_execute_external_script @language = N'R'
     , @script = N'print(R.version)'
    
  3. Töltse le a legújabb sqlmlutils-fájlt (.zip Windowshoz, .tar.gz Linuxhoz) a GitHub-adattárból. Ne bontsa ki a fájlt.

  4. Másolja a teljes Odbc-adattár mappát és az sqlmlutils fájlt az ügyfélszámítógépre.

Az SQL Serverhez való csatlakozáshoz használt ügyfélszámítógépen:

  1. Nyisson meg egy parancssorablakot.

  2. Futtassa az alábbi parancsokat az odbc és az sqlmlutils telepítéséhez. Cserélje le a számítógépre másolt sqlmlutils-fájl és az odbc-adattár mappa teljes elérési útját.

    R.exe -e "install.packages('odbc', repos='odbc')"
    R.exe CMD INSTALL sqlmlutils_1.0.0.zip
    
    R.exe -e "install.packages('odbc', repos='odbc')"
    R.exe CMD INSTALL sqlmlutils_1.0.0.tar.gz
    

R-csomag hozzáadása az SQL Serveren

Az alábbi példában hozzáadja a ragasztócsomagot az SQL Serverhez.

A csomag online hozzáadása

Ha az SQL Serverhez való csatlakozáshoz használt ügyfélszámítógép internet-hozzáféréssel rendelkezik, az sqlmlutils használatával megkeresheti a ragasztócsomagot és az interneten keresztüli függőségeket, majd távolról telepítheti a csomagot egy SQL Server-példányra.

  1. Nyissa meg az RStudio fájlt az ügyfélszámítógépen, és hozzon létre egy új R-szkriptfájlt .

  2. A következő R-szkripttel telepítse a ragasztócsomagotaz sqlmlutils használatával. Cserélje le a saját SQL Server-adatbázis kapcsolati adatait.

    library(sqlmlutils)
    connection <- connectionInfo(
      server   = "server",
      database = "database",
      uid      = "username",
      pwd      = "password")
    
    sql_install.packages(connectionString = connection, pkgs = "glue", verbose = TRUE, scope = "PUBLIC")
    

    Jótanács

    A hatókör lehet NYILVÁNOS vagy PRIVÁT. A nyilvános hatókör akkor hasznos, ha az adatbázis rendszergazdája olyan csomagokat telepít, amelyeket minden felhasználó használhat. A privát hatókör csak a telepítendő felhasználó számára teszi elérhetővé a csomagot. Ha nem adja meg a hatókört, az alapértelmezett hatókör PRIVÁT.

A csomag hozzáadása offline állapotban

Ha az ügyfélszámítógép nem rendelkezik internetkapcsolattal, a miniCRAN használatával letöltheti a ragasztócsomagot egy olyan számítógéppel, amely rendelkezik internetkapcsolattal. Ezután másolja a csomagot az ügyfélszámítógépre, ahol offline módban telepítheti a csomagot. A miniCRAN telepítésével kapcsolatos információkért tekintse meg a miniCRAN telepítését ismertető témakört.

Internetkapcsolattal rendelkező számítógépen:

  1. Az alábbi R-szkript futtatásával hozzon létre egy helyi adattárat a kapcsoláshoz. Ez a példa létrehozza a tárhely mappát a következőben c:\downloads\glue.

    library("miniCRAN")
    CRAN_mirror <- c(CRAN = "https://cran.microsoft.com")
    local_repo <- "c:/downloads/glue"
    pkgs_needed <- "glue"
    pkgs_expanded <- pkgDep(pkgs_needed, repos = CRAN_mirror);
    
    makeRepo(pkgs_expanded, path = local_repo, repos = CRAN_mirror, type = "win.binary", Rversion = "3.5");
    
    library("miniCRAN")
    CRAN_mirror <- c(CRAN = "https://cran.microsoft.com")
    local_repo <- "c:/downloads/glue"
    pkgs_needed <- "glue"
    pkgs_expanded <- pkgDep(pkgs_needed, repos = CRAN_mirror);
    
    makeRepo(pkgs_expanded, path = local_repo, repos = CRAN_mirror, type = "source", Rversion = "3.5");
    

    A Rversion értékhez az SQL Serverre telepített R-verzió használatát használja. A telepített verzió ellenőrzéséhez használja a következő T-SQL-parancsot.

    EXECUTE sp_execute_external_script @language = N'R'
     , @script = N'print(R.version)'
    
  2. Másolja a teljes ragasztó tárolómappát (c:\downloads\glue) az ügyfél számítógépére. Másolja például a mappába c:\temp\packages\glue.

Az ügyfélszámítógépen:

  1. Nyissa meg az RStudio fájlt, és hozzon létre egy új R-szkriptfájlt .

  2. A következő R-szkripttel telepítse a ragasztócsomagotaz sqlmlutils használatával. Cserélje le a saját SQL Server-adatbázis kapcsolati adatait (ha nem használja a Windows-hitelesítést, adjon hozzá uid és pwd paramétereket).

    library(sqlmlutils)
    connection <- connectionInfo(
      server= "yourserver",
      database = "yourdatabase")
    localRepo = "c:/temp/packages/glue"
    
    sql_install.packages(connectionString = connection, pkgs = "glue", verbose = TRUE, scope = "PUBLIC", repos=paste0("file:///",localRepo))
    

    Jótanács

    A hatókör lehet NYILVÁNOS vagy PRIVÁT. A nyilvános hatókör akkor hasznos, ha az adatbázis rendszergazdája olyan csomagokat telepít, amelyeket minden felhasználó használhat. A privát hatókör csak a telepítendő felhasználó számára teszi elérhetővé a csomagot. Ha nem adja meg a hatókört, az alapértelmezett hatókör PRIVÁT.

A csomag használata

Miután telepítette a ragasztócsomagot , a T-SQL sp_execute_external_script paranccsal használhatja azt egy R-szkriptben az SQL Serveren.

  1. Nyissa meg a Visual Studio Code-ot, és csatlakozzon az SQL Server-adatbázishoz.

  2. Futtassa a következő parancsot:

    EXECUTE sp_execute_external_script @language = N'R'
        , @script = N'
    library(glue)
    
    name <- "Fred"
    birthday <- as.Date("2020-06-14")
    text <- glue(''My name is {name} '',
    ''and my birthday is {format(birthday, "%A, %B %d, %Y")}.'')
    
    print(text)
          ';
    

    Results

    My name is Fred and my birthday is Sunday, June 14, 2020.
    

A csomag eltávolítása

Ha el szeretné távolítani a ragasztócsomagot , futtassa a következő R-szkriptet. Használja ugyanazt a kapcsolati változót, amelyet korábban definiált.

sql_remove.packages(connectionString = connection, pkgs = "glue", scope = "PUBLIC")

További sqlmlutils-függvények

Az sqlmlutils csomag számos függvényt tartalmaz az R-csomagok kezeléséhez, valamint tárolt eljárások és lekérdezések SQL Serveren való létrehozásához, kezeléséhez és futtatásához. Részletekért tekintse meg az sqlmlutils R README fájlt.

Az sqlmlutils függvényekkel kapcsolatos információkért használja az R súgófüggvényt vagy a ? operátort. Például:

library(sqlmlutils)
help("sql_install.packages")

Következő lépések