Partilhar via


Instalar pacotes R com sqlmlutils

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores Azure SQL Managed Instance

Este artigo descreve como usar funções no pacote sqlmlutils para instalar pacotes R numa instância de Machine Learning Services no SQL Server e em Big Data Clusters. Os pacotes que instala podem ser usados em scripts R executados na base de dados usando a instrução T-SQL sp_execute_external_script.

Observação

O pacote sqlmlutils descrito neste artigo é utilizado para adicionar pacotes R ao SQL Server 2019 ou posterior. Para SQL Server 2017 e anteriores, consulte Instalar pacotes com ferramentas R.

Este artigo descreve como usar funções no pacote sqlmlutils para instalar pacotes R numa instância dos Serviços de Aprendizagem Automática de Instâncias Geridas Azure SQL. Os pacotes que instala podem ser usados em scripts R executados na base de dados usando a instrução T-SQL sp_execute_external_script.

Observação

Não pode atualizar ou desinstalar pacotes que tenham sido pré-instalados numa instância do SQL Managed Instance Machine Learning Services. Para ver uma lista de pacotes atualmente instalados, consulte Listar todos os pacotes R instalados.

Pré-requisitos

  • Instala o R e o RStudio Desktop no computador cliente que usas para te ligares ao SQL Server. Pode usar qualquer IDE R para executar scripts, mas este artigo assume o RStudio.

    A versão do R no computador cliente deve corresponder à versão do R no servidor, e os pacotes que instalar devem ser compatíveis com a versão do R que tem. Para obter informações sobre qual versão do R está incluída em cada versão do SQL Server, consulte Versões Python e R.

    Para verificar a versão do R num SQL Server específico, utilize o seguinte comando T-SQL.

    EXECUTE sp_execute_external_script @language = N'R'
    , @script = N'print(R.version)'
    
  • Instale o Azure Data Studio no computador cliente que usa para se ligar ao SQL Server. Pode usar outras ferramentas de gestão de bases de dados ou consultas, mas este artigo assume o Azure Data Studio.

Outras considerações

  • A instalação de pacotes é específica para a instância SQL, base de dados e utilizador que especifica na informação de ligação que fornece ao sqlmlutils. Para usar o pacote em múltiplas instâncias SQL ou bases de dados, ou para diferentes utilizadores, terá de instalar o pacote para cada uma. A exceção é que, se o pacote for instalado por um membro de dbo, o pacote é público e partilhado com todos os utilizadores. Se um utilizador instalar uma versão mais recente de um pacote público, o pacote público não é afetado, mas esse utilizador terá acesso à versão mais recente.

  • O script R a correr no SQL Server pode usar apenas pacotes instalados na biblioteca de instâncias predefinida. O SQL Server não pode carregar pacotes a partir de bibliotecas externas, mesmo que essa biblioteca esteja no mesmo computador. Isto inclui bibliotecas R instaladas com outros produtos Microsoft.

  • Num ambiente SQL Server reforçado, pode querer evitar o seguinte:

    • Pacotes que requerem acesso à rede
    • Pacotes que requerem acesso elevado ao sistema de ficheiros
    • Pacotes usados para desenvolvimento web ou outras tarefas que não beneficiam ao correr dentro do SQL Server

Instala o sqlmlutils no computador cliente

Para usar o sqlmlutils, primeiro tens de o instalar no computador cliente que usas para te ligar ao SQL Server.

O pacote sqlmlutils depende do pacote ODBC , e o ODBC depende de vários outros pacotes. Os procedimentos seguintes instalam todos estes pacotes na ordem correta.

Instalar sqlmlutils online

Se o computador cliente tiver acesso à Internet, pode descarregar e instalar o sqlmlutils e os seus pacotes dependentes online.

  1. Descarregue para o computador cliente o ficheiro sqlmlutils mais recente (.zip para Windows, .tar.gz para Linux) de https://github.com/microsoft/sqlmlutils/releases. Não expandas o ficheiro.

  2. Abra um Prompt de Comando e execute os seguintes comandos para instalar os pacotes odbc e sqlmlutils. Substitua o caminho para o ficheiro sqlmlutils que descarregaste. O pacote ODBC está disponível online e instalado.

    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
    

Instalar sqlmlutils offline

Se o computador cliente não tiver ligação à Internet, tens de descarregar os pacotes odbc e sqlmlutils antecipadamente usando um computador que tenha acesso à Internet. Depois podes copiar os ficheiros para uma pasta no computador cliente e instalar os pacotes offline.

O pacote odbc tem vários pacotes dependentes, e identificar todas as dependências de um pacote torna-se complicado. Recomendamos que utilize o miniCRAN para criar uma pasta de repositório local para o pacote que inclua todos os pacotes dependentes. Para mais informações, consulte Criar um repositório local de pacotes R usando miniCRAN.

O pacote sqlmlutils consiste num único ficheiro que podes copiar para o computador cliente e instalar.

Num computador com acesso à Internet:

  1. Instalar miniCRAN Consulte Instalar miniCRAN para mais detalhes.

  2. No RStudio, execute o seguinte script R para criar um repositório local do pacote odbc. Este exemplo assume que o repositório será criado na pasta 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");
    

    Para o Rversion valor, use a versão do R instalada no SQL Server. Para verificar a versão instalada, utilize o seguinte comando T-SQL.

    EXECUTE sp_execute_external_script @language = N'R'
     , @script = N'print(R.version)'
    
  3. Descarregue o ficheiro sqlmlutils mais recente (.zip para Windows, .tar.gz para Linux) de https://github.com/microsoft/sqlmlutils/releases. Não expandas o ficheiro.

  4. Copie toda a pasta do repositório odbc e o ficheiro sqlmlutils para o computador cliente.

No computador cliente que usa para se ligar ao SQL Server:

  1. Abra um prompt de comando.

  2. Execute os seguintes comandos para instalar o odbc e depois o sqlmlutils. Substitua os caminhos completos para a pasta do repositório odbc e o ficheiro sqlmlutils que copiaste para este computador.

    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
    

Adicionar um pacote R no SQL Server

No exemplo seguinte, vais adicionar o pacote de cola ao SQL Server.

Adicione o pacote online

Se o computador cliente que usa para se ligar ao SQL Server tiver acesso à Internet, pode usar o sqlmlutils para encontrar o pacote de cola e quaisquer dependências pela Internet, e depois instalar o pacote numa instância SQL Server remotamente.

  1. No computador cliente, abra o RStudio e crie um novo ficheiro R Script .

  2. Use o seguinte script R para instalar o pacote de colagem usando sqlmlutils. Substitua a sua própria informação de ligação à base de dados SQL Server.

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

    Sugestão

    O âmbito pode ser PÚBLICO ou PRIVADO. O âmbito público é útil para o administrador da base de dados instalar pacotes que todos os utilizadores possam usar. O âmbito privado disponibiliza o pacote apenas ao utilizador que o instala. Se não especificares o âmbito, o escopo padrão é PRIVADO.

Adicionar o pacote offline

Se o computador cliente não tiver ligação à Internet, pode usar o miniCRAN para descarregar o pacote de cola usando um computador que tenha acesso à Internet. Depois copias o pacote para o computador cliente onde podes instalá-lo offline. Consulte Instalar miniCRAN para informações sobre como instalar miniCRAN.

Num computador com acesso à Internet:

  1. Execute o seguinte script R para criar um repositório local de colagem. Este exemplo cria a pasta repositório em 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");
    

    Para o Rversion valor, use a versão do R instalada no SQL Server. Para verificar a versão instalada, utilize o seguinte comando T-SQL.

    EXECUTE sp_execute_external_script @language = N'R'
     , @script = N'print(R.version)'
    
  2. Copie toda a pasta do repositório de cola (c:\downloads\glue) para o computador cliente. Por exemplo, copie-o para a pasta c:\temp\packages\glue.

No computador cliente:

  1. Abra o RStudio e crie um novo ficheiro R Script .

  2. Use o seguinte script R para instalar o pacote de colagem usando sqlmlutils. Substitua a sua própria informação de ligação à base de dados SQL Server (se não usar a Autenticação do Windows, adicione os parâmetros uid e pwd).

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

    Sugestão

    O âmbito pode ser PÚBLICO ou PRIVADO. O âmbito público é útil para o administrador da base de dados instalar pacotes que todos os utilizadores possam usar. O âmbito privado disponibiliza o pacote apenas ao utilizador que o instala. Se não especificares o âmbito, o escopo padrão é PRIVADO.

Utilize o pacote

Depois de instalado o pacote de colagem , podes usá-lo num script R no SQL Server com o comando T-SQL sp_execute_external_script .

  1. Abra o Azure Data Studio e ligue-se à sua base de dados SQL Server.

  2. Execute o seguinte comando:

    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.
    

Retire a embalagem

Se quiser remover o pacote de colagem , execute o seguinte script R. Use a mesma variável de ligação que definiu anteriormente.

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

Mais funções sqlmlutils

O pacote sqlmlutils contém várias funções para gerir pacotes R, bem como para criar, gerir e executar procedimentos armazenados e consultas num SQL Server. Para detalhes, consulte o ficheiro sqlmlutils R README.

Para informações sobre qualquer função sqlmlutils, utilize a função R help ou o operador ?. Por exemplo:

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

Próximos passos