Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz 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
usługi Azure SQL Managed Instance
W tym szybkim przewodniku startowym uruchomisz zestaw prostych skryptów języka R przy użyciu usług SQL Server Machine Learning Services lub klastrów danych masowych. Dowiesz się, jak używać procedury składowanej sp_execute_external_script do wykonywania skryptu w wystąpieniu programu SQL Server.
W tym przewodniku Szybki start uruchomisz zestaw prostych skryptów języka R przy użyciu usług SQL Server Machine Learning Services. Dowiesz się, jak używać procedury składowanej sp_execute_external_script do wykonywania skryptu w wystąpieniu programu SQL Server.
W tym przewodniku szybkiego startu wykonasz zestaw prostych skryptów R przy użyciu usług R programu SQL Server. Dowiesz się, jak używać procedury składowanej sp_execute_external_script do wykonywania skryptu w wystąpieniu programu SQL Server.
W tym przewodniku uruchomisz proste skrypty języka R przy użyciu Usług Azure SQL Managed Instance Machine Learning Services. Dowiesz się, jak używać procedury składowanej sp_execute_external_script do wykonywania skryptu w bazie danych.
Wymagania wstępne
Aby uruchomić szybki start, potrzebne są następujące prerekwizyty.
- SQL Server Machine Learning Services. Aby zainstalować usługi Machine Learning Services, zobacz przewodnik instalacji systemu Windows lub przewodnik instalacji systemu Linux. Usługi Machine Learning Services można również włączyć w klastrach danych big data programu SQL Server.
- SQL Server Machine Learning Services. Aby zainstalować usługi Machine Learning Services, zobacz Przewodnik instalacji systemu Windows.
- Usługi SQL Server 2016 R. Aby zainstalować usługi języka R, zobacz Przewodnik instalacji systemu Windows.
- Azure SQL Managed Instance Machine Learning Services. Aby uzyskać informacje, zobacz Omówienie usług Azure SQL Managed Instance Machine Learning Services.
- Narzędzie do uruchamiania zapytań SQL zawierających skrypty języka R. W tym przewodniku Szybki start jest używany program Azure Data Studio.
Uruchamianie prostego skryptu
Aby uruchomić skrypt języka R, przekażesz go jako argument do procedury składowanej systemu, sp_execute_external_script. Ta procedura składowana systemu uruchamia środowisko uruchomieniowe języka R, przekazuje dane do języka R, bezpiecznie zarządza sesjami użytkownika języka R i zwraca wszystkie wyniki do klienta.
W poniższych krokach uruchomisz ten przykładowy skrypt języka R:
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
Otwórz narzędzie Azure Data Studio i połącz się z serwerem.
Przekaż pełny skrypt języka R do
sp_execute_external_scriptprocedury składowanej.Skrypt jest przekazywany przez
@scriptargument . Wszystko wewnątrz argumentu@scriptmusi być prawidłowym kodem języka R.EXECUTE sp_execute_external_script @language = N'R' , @script = N' a <- 1 b <- 2 c <- a/b d <- a*b print(c(c, d)) 'Prawidłowy wynik jest obliczany, a funkcja języka R
printzwraca wynik do okna Komunikaty .Powinno to wyglądać mniej więcej tak.
Results
STDOUT message(s) from external script: 0.5 2
Uruchamianie skryptu Hello World
Typowy przykładowy skrypt to taki, który po prostu generuje ciąg "Hello World". Uruchom następujące polecenie.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'OutputDataSet<-InputDataSet'
, @input_data_1 = N'SELECT 1 AS hello'
WITH RESULT SETS(([Hello World] INT));
GO
sp_execute_external_script Dane wejściowe procedury składowanej obejmują:
| Input | Description |
|---|---|
| @language | definiuje rozszerzenie języka do wywołania, w tym przypadku R |
| @script | definiuje polecenia przekazywane do środowiska uruchomieniowego języka R. Cały skrypt języka R musi być ujęty w ten argument jako tekst Unicode. Możesz również dodać tekst do zmiennej typu nvarchar , a następnie wywołać zmienną |
| @input_data_1 | dane zwrócone przez zapytanie przekazane do środowiska uruchomieniowego języka R, które zwraca dane jako ramkę danych |
| Z ZESTAWAMI WYNIKÓW | Klauzula definiuje schemat zwracanej tabeli danych, dodając "Hello World" jako nazwę kolumny int dla typu danych |
Polecenie zwraca następujący tekst:
| Hello world |
|---|
| 1 |
Używanie danych wejściowych i wyjściowych
Domyślnie sp_execute_external_script przyjmuje pojedynczy zestaw danych jako dane wejściowe, które zazwyczaj są dostarczane w postaci prawidłowego zapytania SQL. Następnie zwraca pojedynczą ramkę danych języka R jako dane wyjściowe.
Na razie użyjemy domyślnych zmiennych wejściowych i wyjściowych sp_execute_external_script: InputDataSet i OutputDataSet.
Utwórz małą tabelę danych testowych.
CREATE TABLE RTestData (col1 INT NOT NULL) INSERT INTO RTestData VALUES (1); INSERT INTO RTestData VALUES (10); INSERT INTO RTestData VALUES (100); GOUżyj instrukcji ,
SELECTaby wysłać zapytanie do tabeli.SELECT * FROM RTestDataResults
Uruchom następujący skrypt języka R. Pobiera dane z tabeli przy użyciu
SELECTinstrukcji , przekazuje je przez środowisko uruchomieniowe języka R i zwraca dane jako ramkę danych. KlauzulaWITH RESULT SETSdefiniuje schemat zwracanej tabeli danych dla języka SQL, dodając nazwę kolumny NewColName.EXECUTE sp_execute_external_script @language = N'R' , @script = N'OutputDataSet <- InputDataSet;' , @input_data_1 = N'SELECT * FROM RTestData;' WITH RESULT SETS(([NewColName] INT NOT NULL));Results
Teraz zmieńmy nazwy zmiennych wejściowych i wyjściowych. Domyślne nazwy zmiennych wejściowych i wyjściowych to InputDataSet i OutputDataSet. Ten skrypt zmienia nazwy na SQL_in i SQL_out:
EXECUTE sp_execute_external_script @language = N'R' , @script = N' SQL_out <- SQL_in;' , @input_data_1 = N' SELECT 12 as Col;' , @input_data_1_name = N'SQL_in' , @output_data_1_name = N'SQL_out' WITH RESULT SETS(([NewColName] INT NOT NULL));Należy pamiętać, że w języku R jest rozróżniana wielkość liter. Zmienne wejściowe i wyjściowe używane w skrypcie języka R (SQL_out, SQL_in) muszą być zgodne z nazwami zdefiniowanymi za pomocą
@input_data_1_namei@output_data_1_name, z uwzględnieniem wielkości liter.Wskazówka
Jako parametr można przekazać tylko jeden wejściowy zestaw danych i można zwrócić tylko jeden zestaw danych. Można jednak wywoływać inne zestawy danych z wewnątrz kodu języka R i zwracać dane wyjściowe innych typów oprócz zestawu danych. Możesz również dodać słowo kluczowe OUTPUT do dowolnego parametru, aby zwrócił je z wynikami.
Możesz również wygenerować wartości tylko przy użyciu skryptu języka R bez danych wejściowych (
@input_data_1jest ustawiona na wartość pustą).Poniższy skrypt zwraca tekst "hello" i "world".
EXECUTE sp_execute_external_script @language = N'R' , @script = N' mytextvariable <- c("hello", " ", "world"); OutputDataSet <- as.data.frame(mytextvariable); ' , @input_data_1 = N'' WITH RESULT SETS(([Col1] CHAR(20) NOT NULL));Results
@script jako danych wejściowych" />
Sprawdzanie wersji języka R
Jeśli chcesz zobaczyć, która wersja języka R jest zainstalowana, uruchom następujący skrypt.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'print(version)';
GO
Funkcja języka R print zwraca wersję do okna Komunikaty . W poniższych przykładowych danych wyjściowych widać, że w tym przypadku zainstalowano język R w wersji 3.4.4.
Results
STDOUT message(s) from external script:
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 4.4
year 2018
month 03
day 15
svn rev 74408
language R
version.string R version 3.4.4 (2018-03-15)
nickname Someone to Lean On
Wyświetlanie listy pakietów języka R
Firma Microsoft udostępnia wiele pakietów języka R wstępnie zainstalowanych za pomocą usług Machine Learning Services.
Firma Microsoft udostępnia wiele pakietów języka R wstępnie zainstalowanych z usługami języka R.
Aby wyświetlić listę zainstalowanych pakietów języka R, w tym informacje o wersji, zależnościach, licencji i ścieżce biblioteki, uruchom następujący skrypt.
EXEC sp_execute_external_script @language = N'R'
, @script = N'
OutputDataSet <- data.frame(installed.packages()[,c("Package", "Version", "Depends", "License", "LibPath")]);'
WITH result sets((
Package NVARCHAR(255)
, Version NVARCHAR(100)
, Depends NVARCHAR(4000)
, License NVARCHAR(1000)
, LibPath NVARCHAR(2000)
));
Dane wyjściowe pochodzą z installed.packages() języka R i są zwracane jako zestaw wyników.
Results
Dalsze kroki
Aby dowiedzieć się, jak używać struktur danych podczas korzystania z języka R z uczeniem maszynowym SQL, wykonaj czynności opisane w tym przewodniku Szybki start: