sqlrutils (R-paket i SQL Server strojové učenie Services)

gäller för: SQL Server 2016 (13.x) och senare versioner

sqlrutils är ett R-paket från Microsoft som erbjuder en mekanism för R-användare att lägga sina R-skript i en T-SQL-lagrad procedur, registrera den lagrade proceduren i en databas och köra den lagrade proceduren från en R-utvecklingsmiljö. Paketet ingår i SQL Server strojové učenie Services och SQL Server 2016 R Services.

Genom att konvertera din R-kod för att köras inom en enda lagrad procedur kan du använda SQL Server R Services mer effektivt, vilket kräver att R-skriptet är inbäddat som en parameter för att sp_execute_external_script. Sqlrutils-paketet hjälper dig att bygga detta inbyggda R-skript och ställa in relaterade parametrar på rätt sätt.

sqlrutils-paketet utför dessa uppgifter:

  • Sparar det genererade T-SQL-skriptet som en sträng i en R-datastruktur
  • Eventuellt kan du generera en .sql fil för T-SQL-skriptet, som du kan redigera eller köra för att skapa en lagrad prozedur
  • Registrerar den nyskapade lagrade proceduren med SQL Server-instansen från din R-utvecklingsmiljö

Du kan också köra den lagrade proceduren från en R-miljö genom att skicka välformade parametrar och bearbeta resultaten. Eller så kan du använda den lagrade proceduren i SQL Server för vanliga databasintegrationsscenarier som ETL, modellträning och poängsättning i stora volymer.

Anmärkning

Om du avser att köra den lagrade proceduren från en R-miljö genom att anropa funktionen executeStoredProcedure, måste du använda en ODBC 3.8-leverantör, såsom ODBC Driver 13 för SQL Server.

Fullständig referensdokumentation

sqlrutils-paketet distribueras i flera Microsoft-produkter, men användningen är densamma oavsett om du får paketet i SQL Server eller en annan produkt. Om det finns några produktspecifika beteenden noteras avvikelser på funktionshjälpsidan.

Funktionslista

Följande avsnitt ger en översikt över de funktioner du kan anropa från sqlrutils-paketet för att utveckla en lagrad propuder som innehåller inbäddad R-kod. För detaljer om parametrarna för varje metod eller funktion, se R-hjälpen för paketet: help(package="sqlrutils")

Funktion Description
executeStoredProcedure Kör en SQL-lagrad procedur.
getInputParameters Få en lista med inmatningsparametrar till den lagrade proceduren.
Inmatningsdata Definierar källan till data i SQL Server som ska användas i R-dataramen. Du anger namnet på data.frame där indatan ska lagras, och en fråga för att hämta datan, eller ett standardvärde. Endast enkla SELECT-frågor stöds.
InputParameter Definierar en enda indataparameter som kommer att bäddas in i T-SQL-skriptet. Du måste ange namnet på parametern och dess R-datatyp.
OutputData Genererar ett mellanliggande dataobjekt som behövs om din R-funktion returnerar en lista som innehåller en data.frame. Objektet OutputData används för att lagra namnet på en enskild data.frame som erhållits från listan.
OutputParameter Genererar ett mellanliggande dataobjekt som behövs om din R-funktion returnerar en lista. Objektet OutputParameter lagrar namnet och datatypen för en enda medlem i listan, förutsatt att den medlemmen inte är en dataram.
registerStoredProcedure Registrera den lagrade proceduren i en databas.
setInputDataQuery Tilldela en fråga till en indataparameter i den lagrade proceduren.
setInputParameterValue Tilldela ett värde till en indataparameter i den lagrade proceduren.
LagradProcedur Ett lagrat procedurobjekt.

Hur man använder sqlrutils

Funktionerna i sqlrutils-paketet måste köras på en dator som har SQL Server strojové učenie med R. Om du arbetar på en klientarbetsstation, ställ in en fjärrberäkningskontext för att flytta exekveringen till SQL Server. Arbetsflödet för att använda detta paket inkluderar följande steg:

  • Definiera lagrade procedurparametrar (indata, utgångar eller båda)
  • Generera och registrera den lagrade proceduren
  • Kör den lagrade proceduren

I en R-session, ladda sqlrutils från kommandoraden genom att skriva library(sqlrutils).

Anmärkning

Du kan ladda detta paket på en dator som inte har SQL Server (till exempel på en R-klientinstans) om du ändrar beräkningskontexten till SQL Server och kör koden i den beräkningskontexten.

Definiera parametrar och indata för lagrad procedur

StoredProcedure är huvudkonstruktören som används för att bygga den lagrade proceduren. Denna konstruktör genererar ett SQL Server Stored Procedure-objekt och skapar eventuellt en textfil som innehåller en fråga som kan användas för att generera den lagrade proceduren med ett T-SQL-kommando.

Valfritt kan Funktionen StoredProcedure också registrera den lagrade proceduren med den angivna instansen och databasen.

  • Använd argumentet func för att specificera en giltig R-funktion. Alla variabler som funktionen använder måste definieras antingen inuti funktionen eller tillhandahållas som indataparametrar. Dessa parametrar kan inkludera maximalt en dataram.

  • R-funktionen måste returnera antingen en dataram, en namngiven lista eller en NULL. Om funktionen returnerar en lista kan listan innehålla maximalt en data.frame.

  • Använd argumentet spName för att specificera namnet på den lagrade proceduren du vill skapa.

  • Du kan skicka in valfria in- och utdataparametrar, med hjälp av objekten som skapas av dessa hjälpfunktioner: setInputData, setInputParameter, och setOutputParameter.

  • Valfritt kan du använda filePath för att ange sökväg och namn på en .sql fil att skapa. Du kan köra denna fil på SQL Server-instansen för att generera den lagrade proceduren med T-SQL.

  • För att definiera servern och databasen där den lagrade proceduren ska sparas, använd argumenten dbName och connectionString.

  • För att få en lista över de InputData- och InputParameter-objekt som användes för att skapa ett specifikt StoredProcedure-objekt , anropa getInputParameters.

  • För att registrera den lagrade proceduren med den angivna databasen, använd registerStoredProcedure.

Objektet för lagrad procedur har vanligtvis inga data eller värden kopplade till sig, om inte ett standardvärde har angetts. Data hämtas inte förrän den lagrade proceduren har utförts.

Specificera indata och kör

  • Använd setInputDataQuery för att tilldela en fråga till ett InputParameter-objekt . Till exempel, om du har skapat ett lagrat procedurobjekt i R, kan du använda setInputDataQuery för att skicka argument till StoredProcedure-funktionen för att köra den lagrade proceduren med önskade indata.

  • Använd setInputValue för att tilldela specifika värden till en parameter som lagras som ett InputParameter-objekt . Du skickar sedan parameterobjektet och dess värdetilldelning till funktionen StoredProcedure för att köra den lagrade proceduren med de angivna värdena.

  • Använd executeStoredProcedure för att köra en lagrad procedur definierad som ett StoredProcedure-objekt . Anropa endast den här funktionen vid körning av en lagrad procedur från R-kod. Använd den inte när du kör den lagrade proceduren från SQL Server med T-SQL.

Anmärkning

Funktionen executeStoredProcedure kräver en ODBC 3.8-leverantör, såsom ODBC Driver 13 för SQL Server.