Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op: SQL Server 2019 (15.x) en latere versies
Azure SQL Managed Instance
In dit artikel wordt beschreven hoe u functies in het sqlmlutils-pakket gebruikt om R-pakketten te installeren op een exemplaar van Machine Learning Services op SQL Server en op Big Data-clusters. De pakketten die u installeert, kunnen worden gebruikt in R-scripts die in de database worden uitgevoerd met behulp van de sp_execute_external_script T-SQL-instructie.
Opmerking
Het sqlmlutils-pakket dat in dit artikel wordt beschreven, wordt gebruikt voor het toevoegen van R-pakketten aan SQL Server 2019 of hoger. Zie Pakketten installeren met R-hulpprogramma's voor SQL Server 2017 en eerder.
In dit artikel wordt beschreven hoe u functies in het sqlmlutils-pakket gebruikt om R-pakketten te installeren op een exemplaar van Azure SQL Managed Instance Machine Learning Services. De pakketten die u installeert, kunnen worden gebruikt in R-scripts die in de database worden uitgevoerd met behulp van de sp_execute_external_script T-SQL-instructie.
Opmerking
U kunt geen pakketten bijwerken of verwijderen die vooraf zijn geïnstalleerd op een exemplaar van SQL Managed Instance Machine Learning Services. Zie Alle geïnstalleerde R-pakketten weergeven om een lijst met pakketten weer te geven die momenteel zijn geïnstalleerd.
Vereiste voorwaarden
Installeer R en RStudio Desktop op de clientcomputer die u gebruikt om verbinding te maken met SQL Server. U kunt elke R IDE gebruiken voor het uitvoeren van scripts, maar in dit artikel wordt ervan uitgegaan dat RStudio.
De versie van R op de clientcomputer moet overeenkomen met de versie van R op de server en pakketten die u installeert, moeten voldoen aan de versie van R die u hebt. Zie Python- en R-versies voor informatie over welke versie van R is opgenomen in elke SQL Server-versie.
Gebruik de volgende T-SQL-opdracht om de versie van R op een bepaalde SQL Server te controleren.
EXECUTE sp_execute_external_script @language = N'R' , @script = N'print(R.version)'Installeer Azure Data Studio op de clientcomputer die u gebruikt om verbinding te maken met SQL Server. U kunt andere hulpprogramma's voor databasebeheer of query's gebruiken, maar in dit artikel wordt ervan uitgegaan dat Azure Data Studio wordt gebruikt.
Andere overwegingen
Pakketinstallatie is specifiek voor het SQL-exemplaar, de database en de gebruiker die u opgeeft in de verbindingsgegevens die u opgeeft voor sqlmlutils. Als u het pakket in meerdere SQL-exemplaren of -databases of voor verschillende gebruikers wilt gebruiken, moet u het pakket voor elk exemplaar installeren. De uitzondering hierop is dat als het pakket is geïnstalleerd door een lid van
dbo, het pakket openbaar is en wordt gedeeld met alle gebruikers. Als een gebruiker een nieuwere versie van een openbaar pakket installeert, wordt het openbare pakket niet beïnvloed, maar heeft die gebruiker toegang tot de nieuwere versie.R-script dat wordt uitgevoerd in SQL Server kan alleen pakketten gebruiken die zijn geïnstalleerd in de standaardexemplarenbibliotheek. SQL Server kan geen pakketten laden uit externe bibliotheken, zelfs niet als die bibliotheek zich op dezelfde computer bevindt. Dit omvat R-bibliotheken die zijn geïnstalleerd met andere Microsoft-producten.
In een beperkte SQL Server-omgeving wilt u het volgende voorkomen:
- Pakketten waarvoor netwerktoegang is vereist
- Pakketten waarvoor verhoogde toegang tot het bestandssysteem is vereist
- Pakketten die worden gebruikt voor webontwikkeling of andere taken die geen voordeel hebben door in SQL Server uit te voeren
Sqlmlutils installeren op de clientcomputer
Als u sqlmlutils wilt gebruiken, moet u deze eerst installeren op de clientcomputer die u gebruikt om verbinding te maken met SQL Server.
Het sqlmlutils-pakket is afhankelijk van het odbc-pakket en odbc is afhankelijk van een aantal andere pakketten. Met de volgende procedures worden al deze pakketten in de juiste volgorde geïnstalleerd.
Sqlmlutils online installeren
Als de clientcomputer internettoegang heeft, kunt u sqlmlutils en de afhankelijke pakketten online downloaden en installeren.
Download het meest recente sqlmlutils-bestand (
.zipvoor Windows,.tar.gzvoor Linux) van https://github.com/microsoft/sqlmlutils/releases naar de clientcomputer. Vouw het bestand niet uit.Open een opdrachtprompt en voer de volgende opdrachten uit om de pakketten odbc en sqlmlutils te installeren. Vervang het pad naar het sqlmlutils-bestand dat u hebt gedownload. Het odbc-pakket is online gevonden en geïnstalleerd.
R.exe -e "install.packages('odbc', type='binary')" R.exe CMD INSTALL sqlmlutils_1.0.0.zipR.exe -e "install.packages('odbc')" R.exe CMD INSTALL sqlmlutils_1.0.0.tar.gz
Sqlmlutils offline installeren
Als de clientcomputer geen internetverbinding heeft, moet u de odbc - en sqlmlutils-pakketten vooraf downloaden met behulp van een computer met internettoegang. Vervolgens kunt u de bestanden naar een map op de clientcomputer kopiëren en de pakketten offline installeren.
Het odbc-pakket heeft een aantal afhankelijke pakketten en het identificeren van alle afhankelijkheden voor een pakket wordt ingewikkeld. U wordt aangeraden miniCRAN te gebruiken om een lokale opslagplaatsmap te maken voor het pakket dat alle afhankelijke pakketten bevat. Zie Een lokale R-pakketopslagplaats maken met behulp van miniCRAN voor meer informatie.
Het sqlmlutils-pakket bestaat uit één bestand dat u naar de clientcomputer kunt kopiëren en installeren.
Op een computer met internettoegang:
Installeer miniCRAN. Zie MiniCRAN installeren voor meer informatie.
Voer in RStudio het volgende R-script uit om een lokale opslagplaats van het pakket odbc te maken. In dit voorbeeld wordt ervan uitgegaan dat de opslagplaats wordt gemaakt in de map
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");Gebruik voor de
Rversionwaarde de versie van R die is geïnstalleerd op SQL Server. Gebruik de volgende T-SQL-opdracht om de geïnstalleerde versie te controleren.EXECUTE sp_execute_external_script @language = N'R' , @script = N'print(R.version)'Download het meest recente sqlmlutils-bestand (
.zipvoor Windows,.tar.gzvoor Linux) van https://github.com/microsoft/sqlmlutils/releases. Vouw het bestand niet uit.Kopieer de volledige map met odbc-opslagplaatsen en het bestand sqlmlutils naar de clientcomputer.
Op de clientcomputer die u gebruikt om verbinding te maken met SQL Server:
Open een opdrachtprompt.
Voer de volgende opdrachten uit om odbc en vervolgens sqlmlutils te installeren. Vervang de volledige paden naar de opslagplaatsmap odbc en het sqlmlutils-bestand dat u naar deze computer hebt gekopieerd.
R.exe -e "install.packages('odbc', repos='odbc')" R.exe CMD INSTALL sqlmlutils_1.0.0.zipR.exe -e "install.packages('odbc', repos='odbc')" R.exe CMD INSTALL sqlmlutils_1.0.0.tar.gz
Een R-pakket toevoegen in SQL Server
In het volgende voorbeeld voegt u het lijmpakket toe aan SQL Server.
Het pakket online toevoegen
Als de clientcomputer die u gebruikt om verbinding te maken met SQL Server internettoegang heeft, kunt u sqlmlutils gebruiken om het lijmpakket en eventuele afhankelijkheden via internet te vinden en vervolgens het pakket op afstand te installeren op een SQL Server-exemplaar.
Open RStudio op de clientcomputer en maak een nieuw R Script-bestand .
Gebruik het volgende R-script om het lijmpakket te installeren met behulp van sqlmlutils. Vervang uw eigen SQL Server-databaseverbindingsgegevens.
library(sqlmlutils) connection <- connectionInfo( server = "server", database = "database", uid = "username", pwd = "password") sql_install.packages(connectionString = connection, pkgs = "glue", verbose = TRUE, scope = "PUBLIC")Aanbeveling
Het bereik kan OPENBAAR of PRIVÉ zijn. Het openbare bereik is handig voor de databasebeheerder om pakketten te installeren die alle gebruikers kunnen gebruiken. Privébereik maakt het pakket alleen beschikbaar voor de gebruiker die het installeert. Als u het bereik niet opgeeft, is het standaardbereik PRIVÉ.
Het pakket offline toevoegen
Als de clientcomputer geen internetverbinding heeft, kunt u miniCRAN gebruiken om het lijmpakket te downloaden met behulp van een computer met internettoegang. Vervolgens kopieert u het pakket naar de clientcomputer waar u het pakket offline kunt installeren. Zie MiniCRAN installeren voor informatie over het installeren van miniCRAN.
Op een computer met internettoegang:
Voer het volgende R-script uit om een lokale opslagplaats te maken voor lijm. In dit voorbeeld wordt de opslagplaatsmap gemaakt in
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");Gebruik voor de
Rversionwaarde de versie van R die is geïnstalleerd op SQL Server. Gebruik de volgende T-SQL-opdracht om de geïnstalleerde versie te controleren.EXECUTE sp_execute_external_script @language = N'R' , @script = N'print(R.version)'Kopieer de volledige map van de lijmopslagplaats (
c:\downloads\glue) naar de clientcomputer. Kopieer deze bijvoorbeeld naar de mapc:\temp\packages\glue.
Op de clientcomputer:
Open RStudio en maak een nieuw R Script-bestand .
Gebruik het volgende R-script om het lijmpakket te installeren met behulp van sqlmlutils. Vervang door uw eigen SQL Server-databaseverbindingsinformatie (als u geen Windows-verificatie gebruikt, voegt u de parameters
uidenpwdtoe).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))Aanbeveling
Het bereik kan OPENBAAR of PRIVÉ zijn. Het openbare bereik is handig voor de databasebeheerder om pakketten te installeren die alle gebruikers kunnen gebruiken. Privébereik maakt het pakket alleen beschikbaar voor de gebruiker die het installeert. Als u het bereik niet opgeeft, is het standaardbereik PRIVÉ.
Het pakket gebruiken
Zodra het lijmpakket is geïnstalleerd, kunt u het gebruiken in een R-script in SQL Server met de opdracht T-SQL sp_execute_external_script .
Open Azure Data Studio en maak verbinding met uw SQL Server-database.
Voer de volgende opdracht uit:
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) ';resultaten
My name is Fred and my birthday is Sunday, June 14, 2020.
Het pakket verwijderen
Als u het lijmpakket wilt verwijderen, voert u het volgende R-script uit. Gebruik dezelfde verbindingsvariabele die u eerder hebt gedefinieerd.
sql_remove.packages(connectionString = connection, pkgs = "glue", scope = "PUBLIC")
Meer sqlmlutils-functies
Het sqlmlutils-pakket bevat een aantal functies voor het beheren van R-pakketten en voor het maken, beheren en uitvoeren van opgeslagen procedures en query's in een SQL Server. Zie het bestand sqlmlutils R README voor meer informatie.
Voor informatie over een sqlmlutils-functie gebruikt u de R Help-functie of ?- operator. Voorbeeld:
library(sqlmlutils)
help("sql_install.packages")
Volgende stappen
- Zie Informatie over het ophalen van R-pakketgegevens voor informatie over geïnstalleerde R-pakketten
- Zie Tips voor het gebruik van R-pakketten voor hulp bij het werken met R-pakketten
- Zie Python-pakketten installeren met pip voor meer informatie over het installeren van Python-pakketten
- Voor meer informatie over SQL Server Machine Learning Services, zie Wat is SQL Server Machine Learning Services (Python en R)?