Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2016 (13.x) a novější verze
Azure SQL Managed Instance
V tomto rychlém startu spustíte sadu jednoduchých skriptů R pomocí služby SQL Server Machine Learning Services nebo v clusterech s velkými objemy dat. Naučíte se používat uloženou proceduru sp_execute_external_script ke spuštění skriptu v instanci SQL Serveru.
V tomto rychlém startu spustíte sadu jednoduchých skriptů R pomocí služby SQL Server Machine Learning Services. Naučíte se používat uloženou proceduru sp_execute_external_script ke spuštění skriptu v instanci SQL Serveru.
V tomto rychlém startu spustíte sadu jednoduchých skriptů R pomocí služby SQL Server R Services. Naučíte se používat uloženou proceduru sp_execute_external_script ke spuštění skriptu v instanci SQL Serveru.
V tomto rychlém startu spustíte sadu jednoduchých skriptů R pomocí služby Azure SQL Managed Instance Machine Learning Services. Naučíte se používat uloženou proceduru sp_execute_external_script ke spuštění skriptu v databázi.
Požadavky
Ke spuštění tohoto rychlého startu potřebujete následující požadavky.
- SQL Server Machine Learning Services. Informace o instalaci služby Machine Learning Services najdete v průvodci instalací systému Windows nebo v průvodci instalací pro Linux. Službu Machine Learning Services můžete také povolit v clusterech s velkými objemy dat SQL Serveru.
- SQL Server Machine Learning Services. Informace o instalaci služby Machine Learning Services najdete v průvodci instalací systému Windows.
- SQL Server 2016 R Services. Pokud chcete nainstalovat služby R Services, přečtěte si průvodce instalací systému Windows.
- Azure SQL Managed Instance Machine Learning Services Informace najdete v přehledu služby Azure SQL Managed Instance Machine Learning Services.
- Nástroj pro spouštění dotazů SQL, které obsahují skripty jazyka R. V tomto rychlém startu se používá Azure Data Studio.
Spuštění jednoduchého skriptu
Pokud chcete spustit skript jazyka R, předáte ho jako argument systémové uložené proceduře sp_execute_external_script. Tato systémová uložená procedura spustí modul runtime R, předává data do jazyka R, bezpečně spravuje relace uživatelů R a vrací všechny výsledky klientovi.
V následujících krocích spustíte tento příklad skriptu R:
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
Otevřete Azure Data Studio a připojte se k serveru.
Předejte kompletní skript jazyka R uložené proceduře
sp_execute_external_script.Skript se předává prostřednictvím argumentu
@script. Vše uvnitř argumentu@scriptmusí být platný kód 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)) 'Vypočítá se správný výsledek a funkce R
printvrátí výsledek do okna Zprávy .Mělo by to vypadat nějak takto.
Results
STDOUT message(s) from external script: 0.5 2
Spuštění skriptu Hello World
Typický ukázkový skript je takový, který pouze vypíše řetězec "Hello World". Spusťte následující příkaz.
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
Vstupy pro uloženou proceduru sp_execute_external_script zahrnují:
| Vstup | Description |
|---|---|
| @language | definuje jazykové rozšíření, které se má volat, v tomto případě R. |
| @script | definuje příkazy předané modulu runtime R. Celý skript jazyka R musí být v tomto argumentu uzavřený jako text Unicode. Můžete také přidat text do proměnné typu nvarchar a potom volat proměnnou. |
| @input_data_1 | data vrácená dotazem, předána modulu runtime R, který vrací data jako datový rámec |
| S SADAMI VÝSLEDKŮ | klauzule definuje schéma vrácené tabulky dat a přidá "Hello World" jako název sloupce , int pro datový typ. |
Příkaz vypíše následující text:
| Hello World |
|---|
| 1 |
Použití vstupů a výstupů
Ve výchozím nastavení sp_execute_external_script přijímá jako vstup jednu datovou sadu, která obvykle zadáte ve formě platného dotazu SQL. Pak jako výstup vrátí jeden datový rámec R.
Prozatím použijeme výchozí vstupní a výstupní proměnné sp_execute_external_script: InputDataSet a OutputDataSet.
Vytvořte malou tabulku testovacích dat.
CREATE TABLE RTestData (col1 INT NOT NULL) INSERT INTO RTestData VALUES (1); INSERT INTO RTestData VALUES (10); INSERT INTO RTestData VALUES (100); GOPomocí příkazu
SELECTzadejte dotaz na tabulku.SELECT * FROM RTestDataResults
Spusťte následující skript jazyka R. Načte data z tabulky pomocí
SELECTpříkazu, předá je přes modul runtime jazyka R a vrátí data jako datový rámec. KlauzuleWITH RESULT SETSdefinuje schéma vrácené tabulky dat pro SQL a přidá název sloupce 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
Teď změníme názvy vstupních a výstupních proměnných. Výchozí názvy vstupních a výstupních proměnných jsou InputDataSet a OutputDataSet, tento skript změní názvy na SQL_in a 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));Všimněte si, že R rozlišuje malá a velká písmena. Vstupní a výstupní proměnné použité ve skriptu jazyka R (SQL_out, SQL_in) musí odpovídat názvům definovaným
@input_data_1_namea@output_data_1_namevčetně písmen.Návod
Jako parametr lze předat pouze jednu vstupní datovou sadu a vy můžete vrátit pouze jednu datovou sadu. Můžete ale volat jiné datové sady z kódu R a kromě datové sady můžete vrátit i výstupy jiných typů. Můžete také přidat klíčové slovo OUTPUT do libovolného parametru, aby se vrátil s výsledky.
Můžete také generovat hodnoty pouze pomocí skriptu R bez vstupních dat (
@input_data_1je nastavena na prázdnou hodnotu).Následující skript vypíše text "hello" a "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 vstupu" />
Kontrola verze jazyka R
Pokud chcete zjistit, která verze jazyka R je nainstalovaná, spusťte následující skript.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'print(version)';
GO
Funkce R print vrátí verzi do okna Zprávy . V následujícím příkladu výstupu vidíte, že v tomto případě je nainstalována verze R 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
Výpis balíčků R
Microsoft poskytuje řadu balíčků R předinstalovaných se službou Machine Learning Services.
Společnost Microsoft poskytuje řadu balíčků R předinstalovaných se službami R.
Pokud chcete zobrazit seznam nainstalovaných balíčků R, včetně informací o verzi, závislostech, licenci a cestě knihovny, spusťte následující skript.
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)
));
Výstup pochází z installed.packages() jazyka R a vrátí se jako sada výsledků.
Results
Další kroky
Pokud chcete zjistit, jak používat datové struktury při použití jazyka R se strojovým učením SQL, postupujte podle tohoto rychlého startu: