sqlrutils (R package in SQL Server Machine Learning Services)

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje

sqlrutils to pakiet R od Microsoft, który umożliwia użytkownikom R umieszczanie swoich skryptów R w procedurze T-SQL przechowywanej, rejestrowanie tej procedury w bazie danych oraz uruchamianie procedury przechowywanej w środowisku programistycznym R. Pakiet jest zawarty w usługach SQL Server Machine Learning Services i SQL Server 2016 R Services.

Konwertując kod R do jednej procedury przechowywanej, możesz efektywniej wykorzystać SQL Server R Services, które wymagają osadzenia skryptu R jako parametru do sp_execute_external_script. Pakiet sqlrutils pomaga zbudować ten osadzony skrypt R i odpowiednio ustawić powiązane parametry.

Pakiet sqlrutils wykonuje następujące zadania:

  • Zapisuje wygenerowany skrypt T-SQL jako ciąg w strukturze danych R
  • Opcjonalnie wygeneruj plik .sql dla skryptu T-SQL, który możesz edytować lub uruchomić, tworząc procedurę przechowywaną
  • Rejestruje nowo utworzoną procedurę przechowywaną w instancji programu SQL Server w środowisku programistycznym R

Możesz także wykonać procedurę przechowywaną w środowisku R, przekazując dobrze uformowane parametry i przetwarzając wyniki. Możesz też użyć procedury składowanej w SQL Server do obsługi typowych scenariuszy integracji baz danych, takich jak ETL, trenowanie modeli czy ocenianie na dużą skalę.

Note

Jeśli zamierzasz uruchomić procedurę przechowywaną w środowisku R, wywołując funkcję executeStoredProcedure, musisz użyć dostawcy ODBC 3.8, takiego jak ODBC Driver 13 dla SQL Server.

Pełna dokumentacja referencyjna

Pakiet sqlrutils jest dystrybuowany w wielu produktach Microsoft, ale zużycie jest takie samo, niezależnie od tego, czy kupujesz go w SQL Server, czy w innym produkcie. Jeśli istnieją jakiekolwiek zachowania charakterystyczne dla produktu, rozbieżności zostaną zanotowane na stronie pomocy funkcji.

Lista funkcji

Poniższa sekcja przedstawia przegląd funkcji, które można wywołać z pakietu sqlrutils , aby opracować procedurę przechowywaną zawierającą wbudowany kod R. Szczegóły dotyczące parametrów dla każdej metody lub funkcji można znaleźć w pomocy R dotyczącej pakietu: help(package="sqlrutils")

Funkcja Description
WykonajProceduraSkładowana Wykonaj procedurę zapisaną w SQL.
getInputParameters Pobierz listę parametrów wejściowych do procedury przechowywanej.
InputData Definiuje źródło danych w SQL Server, które będą używane w ramce danych R. Określasz nazwę data.frame, w której przechowywać dane wejściowe, oraz zapytanie, aby je uzyskać, lub wartość domyślną. Obsługiwane są tylko proste zapytania SELECT.
InputParameter Definiuje pojedynczy parametr wejściowy, który zostanie osadzony w skrypcie T-SQL. Musisz podać nazwę parametru oraz jego typ danych R.
OutputData Generuje pośredni obiekt danych, który jest potrzebny, jeśli funkcja R zwraca listę zawierającą data.frame. Obiekt OutputData służy do przechowywania nazwy pojedynczej ramki danych uzyskanej z listy.
OutputParameter Generuje pośredni obiekt danych, który jest potrzebny, jeśli funkcja R zwraca listę. Obiekt OutputParameter przechowuje nazwę i typ danych pojedynczego członka listy, zakładając, że ten element nie jest ramką danych.
registerStoredProcedure Zarejestruj procedurę przechowywaną w bazie danych.
setInputDataQuery Przypisz zapytanie do parametru danych wejściowych procedury przechowywanej.
setInputParameterValue Przypisz wartość parametrowi wejściowemu procedury przechowywanej.
Przechowywana procedura Obiekt procedury przechowywanej.

Jak korzystać z sqlrutils

Funkcje pakietu sqlrutils muszą działać na komputerze z SQL Server Machine Learning z R. Jeśli pracujesz na klienckiej stacji roboczej, ustaw zdalny kontekst obliczeniowy, aby przenieść wykonanie na SQL Server. Sposób korzystania z tego pakietu obejmuje następujące kroki:

  • Zdefiniuj parametry procedur przechowywanych (wejścia, wyjścia lub oba te elementy)
  • Wygeneruj i zarejestruj procedurę przechowywaną
  • Uruchom procedurę składowaną

W sesji R ładuj sqlrutils z wiersza poleceń, wpisując library(sqlrutils).

Note

Możesz załadować ten pakiet na komputerze, który nie ma SQL Server (na przykład na instancji klienta R), jeśli zmienisz kontekst obliczeniowy na SQL Server i wykonasz kod w tym kontekście.

Zdefiniuj parametry i dane wejściowe procedur przechowywanych

StoredProcedure jest głównym konstruktorem używanym do budowy procedury przechowywanej. Ten konstruktor generuje obiekt procedur przechowywanych SQL Server i opcjonalnie tworzy plik tekstowy zawierający zapytanie, które może być użyte do wygenerowania procedury przechowywanej za pomocą polecenia T-SQL.

Opcjonalnie funkcja StoredProcedure może również rejestrować procedurę przechowywaną w określonej instancji i bazie danych.

  • Użyj argumentu func , aby określić poprawną funkcję R. Wszystkie zmienne używane przez funkcję muszą być zdefiniowane albo wewnątrz funkcji, albo dostarczone jako parametry wejściowe. Parametry te mogą obejmować maksymalnie jedną ramkę danych.

  • Funkcja R musi zwracać ramkę danych, listę nazwaną lub NULL. Jeśli funkcja zwraca listę, lista może zawierać maksymalnie jedną ramkę danych.

  • Użyj argumentu spName , aby określić nazwę procedury przechowywanej, którą chcesz utworzyć.

  • Możesz przesłać opcjonalne parametry wejściowe i wyjściowe, używając obiektów utworzonych przez te funkcje pomocnicze: setInputData, setInputParameter, oraz setOutputParameter.

  • Opcjonalnie użyj filePath, aby podać ścieżkę i nazwę tworzonego pliku .sql. Możesz uruchomić ten plik na instancji SQL Server, aby wygenerować procedurę przechowywaną za pomocą T-SQL.

  • Aby zdefiniować serwer i bazę danych, w których będzie zapisywana procedura przechowywana, użyj argumentów dbName i connectionString.

  • Aby uzyskać listę obiektów InputData i InputParameter użytych do utworzenia konkretnego obiektu StoredProcedure , wywołaj getInputParameters.

  • Aby zarejestrować procedurę przechowywaną w określonej bazie danych, użyj registerStoredProcedure.

Obiekt procedury przechowywanej zazwyczaj nie posiada żadnych danych ani wartości powiązanych, chyba że określono domyślną wartość. Dane nie są pobierane, dopóki procedura przechowywana nie zostanie wykonana.

Określ wejścia i wykonaj

  • Używa się setInputDataQuery do przypisania zapytania do obiektu InputParameter . Na przykład, jeśli utworzyłeś obiekt procedury przechowywanej w R, możesz użyć setInputDataQuery do przekazywania argumentów do funkcji StoredProcedure , aby wykonać procedurę przechowywaną z pożądanymi wejściami.

  • Użyj do przypisania setInputValue określonych wartości parametrowi przechowywanemu jako obiekt InputParameter . Następnie przekazujesz obiekt parametrów i jego przypisanie wartości do funkcji StoredProcedure , aby wykonać procedurę przechowywaną z tymi wartościami.

  • Użyj executeStoredProcedure, aby wykonać procedurę składowaną zdefiniowaną jako obiekt StoredProcedure. Funkcja ta wywołuje się tylko podczas wykonywania procedury przechowywanej z kodu R. Nie używaj go podczas uruchamiania procedury zapisanej z SQL Server przy użyciu T-SQL.

Note

Funkcja ExecuteStoredProcedure wymaga dostawcy ODBC 3.8, takiego jak ODBC Driver 13 dla SQL Server.