Sdílet prostřednictvím


Instalace balíčků R pomocí sqlmlutils

Platí na: SQL Server 2019 (15.x) a novější verze Azure SQL Managed Instance

Tento článek popisuje, jak používat funkce v balíčku sqlmlutils k instalaci balíčků R do instance služby Machine Learning Services na SQL Serveru a v clusterech s velkými objemy dat. Balíčky, které nainstalujete, je možné použít ve skriptech jazyka R spuštěných v databázi pomocí příkazu sp_execute_external_script T-SQL.

Poznámka:

Balíček sqlmlutils popsaný v tomto článku slouží k přidání balíčků R do SQL Serveru 2019 nebo novějšího. Informace o SQL Serveru 2017 a starších verzích najdete v tématu Instalace balíčků pomocí nástrojů jazyka R.

Tento článek popisuje, jak používat funkce v balíčku sqlmlutils k instalaci balíčků R do instance služby Azure SQL Managed Instance Machine Learning Services. Balíčky, které nainstalujete, je možné použít ve skriptech jazyka R spuštěných v databázi pomocí příkazu sp_execute_external_script T-SQL.

Poznámka:

Balíčky, které byly předinstalované v instanci služby SQL Managed Instance Machine Learning Services, nelze aktualizovat ani odinstalovat. Pokud chcete zobrazit seznam aktuálně nainstalovaných balíčků, podívejte se na seznam všech nainstalovaných balíčků R.

Požadavky

  • Nainstalujte R a RStudio Desktop na klientský počítač, který používáte pro připojení k SQL Serveru. Pro spouštění skriptů můžete použít libovolné prostředí IDE jazyka R, ale tento článek předpokládá jazyk RStudio.

    Verze R na klientském počítači musí odpovídat verzi jazyka R na serveru a balíčky, které nainstalujete, musí odpovídat verzi jazyka R, kterou máte. Informace o tom, která verze jazyka R je součástí každé verze SQL Serveru, najdete v tématu Python a verze jazyka R.

    Pokud chcete ověřit verzi jazyka R na konkrétním SQL Serveru, použijte následující příkaz T-SQL.

    EXECUTE sp_execute_external_script @language = N'R'
    , @script = N'print(R.version)'
    
  • Nainstalujte Azure Data Studio na klientský počítač, který používáte pro připojení k SQL Serveru. Můžete použít jiné nástroje pro správu databáze nebo dotazy, ale tento článek předpokládá Azure Data Studio.

Ostatní úvahy

  • Instalace balíčku je specifická pro instanci SQL, databázi a uživatele, které zadáte v informacích o připojení, které zadáte nástroji sqlmlutils. Pokud chcete balíček použít ve více instancích NEBO databázích SQL nebo pro různé uživatele, budete muset balíček nainstalovat pro každý z nich. Výjimkou je, že pokud je balíček nainstalován členem dbo, balíček je veřejný a je sdílen se všemi uživateli. Pokud uživatel nainstaluje novější verzi veřejného balíčku, nebude to mít vliv na veřejný balíček, ale tento uživatel bude mít přístup k novější verzi.

  • Skript jazyka R spuštěný na SQL Serveru může používat pouze balíčky nainstalované ve výchozí knihovně instancí. SQL Server nemůže načíst balíčky z externích knihoven, i když je tato knihovna na stejném počítači. To zahrnuje knihovny R nainstalované s jinými produkty Microsoftu.

  • V zajištěném prostředí SQL Serveru se můžete chtít vyhnout následujícímu:

    • Balíčky, které vyžadují síťový přístup
    • Balíčky, které vyžadují přístup systému souborů se zvýšenými oprávněními
    • Balíčky používané pro vývoj webu nebo jiné úlohy, které nemají prospěch spuštěním na SQL Serveru

Instalace nástroje sqlmlutils do klientského počítače

Pokud chcete použít sqlmlutils, musíte ho nejprve nainstalovat do klientského počítače, který používáte pro připojení k SQL Serveru.

Balíček sqlmlutils závisí na balíčku odbc a odbc závisí na řadě dalších balíčků. Následující postupy nainstalují všechny tyto balíčky ve správném pořadí.

Online instalace nástrojů sqlmlutils

Pokud má klientský počítač přístup k internetu, můžete stáhnout a nainstalovat sqlmlutils a jeho závislé balíčky online.

  1. Stáhněte si nejnovější soubor sqlmlutils (.zip pro Windows, .tar.gz pro Linux) z https://github.com/microsoft/sqlmlutils/releases klientského počítače. Nerozbalujte soubor.

  2. Otevřete příkazový řádek a spuštěním následujících příkazů nainstalujte balíčky ODBC a sqlmlutils. Nahraďte cestu k souboru sqlmlutils , který jste stáhli. Balíček ODBC je online a nainstalován.

    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
    

Instalace nástrojů sqlmlutils offline

Pokud klientský počítač nemá připojení k internetu, musíte si předem stáhnout balíčky ODBC a sqlmlutils pomocí počítače, který má přístup k internetu. Soubory pak můžete zkopírovat do složky v klientském počítači a nainstalovat balíčky offline.

Balíček odbc má řadu závislých balíčků a identifikace všech závislostí balíčku je složitá. Doporučujeme použít miniCRAN k vytvoření místní složky úložiště pro balíček, který obsahuje všechny závislé balíčky. Další informace najdete v tématu Vytvoření místního úložiště balíčků R pomocí miniCRAN.

Balíček sqlmlutils se skládá z jednoho souboru, který můžete zkopírovat do klientského počítače a nainstalovat.

Na počítači s přístupem k internetu:

  1. Nainstalujte miniCRAN. Podrobnosti najdete v tématu Instalace miniCRAN .

  2. V RStudio spusťte následující skript jazyka R, který vytvoří místní úložiště odbc balíčku. Tento příklad předpokládá, že úložiště se vytvoří ve složce odbc.

    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");
    

    Rversion Pro hodnotu použijte verzi jazyka R nainstalovanou na SQL Serveru. Pokud chcete ověřit nainstalovanou verzi, použijte následující příkaz T-SQL.

    EXECUTE sp_execute_external_script @language = N'R'
     , @script = N'print(R.version)'
    
  3. Stáhněte si nejnovější soubor sqlmlutils (.zip pro Windows, .tar.gz pro Linux) z https://github.com/microsoft/sqlmlutils/releases. Nerozbalujte soubor.

  4. Zkopírujte celou složku úložiště ODBC a soubor sqlmlutils do klientského počítače.

Na klientském počítači, který používáte pro připojení k SQL Serveru:

  1. Otevřete příkazový řádek.

  2. Spuštěním následujících příkazů nainstalujte odbc a potom sqlmlutils. Nahraďte úplné cesty ke složce úložiště odbc a souboru sqlmlutils , který jste zkopírovali do tohoto počítače.

    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
    

Přidání balíčku R na SQL Serveru

V následujícím příkladu přidáte balíček glue do SQL Serveru.

Přidání balíčku online

Pokud má klientský počítač, který používáte pro připojení k SQL Serveru, přístup k internetu, můžete použít nástroj sqlmlutils k vyhledání balíčku glue a všech závislostí online a poté nainstalovat balíček do instance SQL Serveru vzdáleně.

  1. Na klientském počítači otevřete RStudio a vytvořte nový soubor skriptu jazyka R .

  2. Pomocí následujícího skriptu jazyka R nainstalujte balíček připevnění pomocí sqlmlutils. Nahraďte vlastní informace o připojení k databázi SQL Serveru.

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

    Návod

    Obor může být veřejný nebo soukromý. Veřejný obor je užitečný pro správce databáze k instalaci balíčků, které můžou používat všichni uživatelé. Privátní obor zpřístupňuje balíček jenom uživateli, který ho nainstaluje. Pokud obor nezadáte, výchozí obor je PRIVÁTNÍ.

Přidejte balíček offline

Pokud klientský počítač nemá připojení k internetu, můžete pomocí nástroje miniCRAN stáhnout balíček připevnění pomocí počítače, který má přístup k internetu. Potom balíček zkopírujete do klientského počítače, kde můžete balíček nainstalovat offline. Informace o instalaci miniCRAN najdete v tématu Instalace miniCRAN.

Na počítači s přístupem k internetu:

  1. Spuštěním následujícího skriptu jazyka R vytvořte místní úložiště pro připevnění. Tento příklad vytvoří složku úložiště v souboru 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");
    

    Rversion Pro hodnotu použijte verzi jazyka R nainstalovanou na SQL Serveru. Pokud chcete ověřit nainstalovanou verzi, použijte následující příkaz T-SQL.

    EXECUTE sp_execute_external_script @language = N'R'
     , @script = N'print(R.version)'
    
  2. Zkopírujte celou složku úložiště lepidla (c:\downloads\glue) do klientského počítače. Zkopírujte ho například do složky c:\temp\packages\glue.

Na klientském počítači:

  1. Otevřete RStudio a vytvořte nový soubor skriptu jazyka R .

  2. Pomocí následujícího skriptu jazyka R nainstalujte balíček připevnění pomocí sqlmlutils. Nahraďte vlastní informace o připojení k databázi SQL Serveru (pokud nepoužíváte ověřování systému Windows, přidejte uid a pwd parametry).

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

    Návod

    Obor může být veřejný nebo soukromý. Veřejný obor je užitečný pro správce databáze k instalaci balíčků, které můžou používat všichni uživatelé. Privátní obor zpřístupňuje balíček jenom uživateli, který ho nainstaluje. Pokud obor nezadáte, výchozí obor je PRIVÁTNÍ.

Použijte balíček

Jakmile je balíček připevnění nainstalovaný, můžete ho použít ve skriptu R na SQL Serveru pomocí příkazu T-SQL sp_execute_external_script .

  1. Otevřete Azure Data Studio a připojte se k databázi SQL Serveru.

  2. Spusťte následující příkaz:

    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.
    

Odebrání balíčku

Pokud chcete balíček připevnění odebrat, spusťte následující skript jazyka R. Použijte stejnou proměnnou připojení , kterou jste definovali dříve.

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

Další funkce sqlmlutils

Balíček sqlmlutils obsahuje řadu funkcí pro správu balíčků R a pro vytváření, správu a spouštění uložených procedur a dotazů v SQL Serveru. Podrobnosti najdete v souboru SQLmlutils R README.

Informace o libovolné funkci sqlmlutils naleznete pomocí funkce nápovědy jazyka R nebo operátoru ? . Například:

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

Další kroky