Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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, orazsetOutputParameter.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
dbNameiconnectionString.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ę
setInputDataQuerydo przypisania zapytania do obiektu InputParameter . Na przykład, jeśli utworzyłeś obiekt procedury przechowywanej w R, możesz użyćsetInputDataQuerydo przekazywania argumentów do funkcji StoredProcedure , aby wykonać procedurę przechowywaną z pożądanymi wejściami.Użyj do przypisania
setInputValueokreś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.