Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Sql Server 2016 (13.x) és újabb verziók
felügyelt Azure SQL-példány
Ebben a rövid útmutatóban egyszerű R-szkripteket fog futtatni az SQL Server Machine Learning Services vagy a Big Data-fürtök használatával. Megtudhatja, hogyan használhatja a tárolt eljárást sp_execute_external_script a szkript SQL Server-példányban való végrehajtásához.
Ebben a rövid útmutatóban egyszerű R-szkripteket fog futtatni az SQL Server Machine Learning Services használatával. Megtudhatja, hogyan használhatja a tárolt eljárást sp_execute_external_script a szkript SQL Server-példányban való végrehajtásához.
Ebben a rövid útmutatóban egyszerű R-szkripteket fog futtatni az SQL Server R Services használatával. Megtudhatja, hogyan használhatja a tárolt eljárást sp_execute_external_script a szkript SQL Server-példányban való végrehajtásához.
Ebben a rövid útmutatóban egyszerű R-szkripteket fog futtatni az Azure SQL Managed Instance Machine Learning Services használatával. Megtudhatja, hogyan használhatja a tárolt eljárást sp_execute_external_script a szkript végrehajtásához az adatbázisban.
Előfeltételek
A rövid útmutató futtatásához a következő előfeltételekre lesz szüksége.
- SQL Server Machine Learning Services. A Machine Learning Services telepítéséhez tekintse meg a Windows telepítési útmutatóját vagy a Linux telepítési útmutatóját. A Machine Learning Servicest az SQL Server Big Data-fürtökön is engedélyezheti.
- SQL Server Machine Learning Services. A Machine Learning Services telepítéséhez tekintse meg a Windows telepítési útmutatóját.
- SQL Server 2016 R Services. Az R Services telepítéséhez tekintse meg a Windows telepítési útmutatóját.
- Azure SQL Managed Instance Machine Learning Services. További információt az Azure SQL Managed Instance Machine Learning Services áttekintésében talál.
- R-szkripteket tartalmazó SQL-lekérdezések futtatására szolgáló eszköz. Ez a gyors kezdési útmutató az Azure Data Studio használatát követi.
Egyszerű szkript futtatása
R-szkript futtatásához argumentumként adja át a rendszer által tárolt eljárásnak, sp_execute_external_script. Ez a rendszer által tárolt eljárás elindítja az R-futtatókörnyezetet, adatokat továbbít az R-nek, biztonságosan kezeli az R felhasználói munkameneteket, és visszaadja az eredményeket az ügyfélnek.
A következő lépésekben ezt a példa R-szkriptet fogja futtatni:
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
Nyissa meg az Azure Data Studiót , és csatlakozzon a kiszolgálóhoz.
Adja át a teljes R-szkriptet a
sp_execute_external_scripttárolt eljárásnak.A szkript át lesz adva az
@scriptargumentumon. Az argumentumon@scriptbelül mindennek érvényes R-kódnak kell lennie.EXECUTE sp_execute_external_script @language = N'R' , @script = N' a <- 1 b <- 2 c <- a/b d <- a*b print(c(c, d)) 'A rendszer kiszámítja a helyes eredményt, és az R
printfüggvény visszaadja az eredményt az Üzenetek ablaknak.Valahogy így kell kinéznie.
Results
STDOUT message(s) from external script: 0.5 2
Hello World-szkript futtatása
Egy tipikus példaszkript az, amely csak a "Hello World" sztringet adja ki. Futtassa az alábbi parancsot.
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
A sp_execute_external_script tárolt eljárás bemenetei a következők:
| Bemenet | Description |
|---|---|
| @language | meghatározza a meghívandó nyelvi bővítményt, ebben az esetben az R |
| @script | Az R-futtatókörnyezetnek átadott parancsokat meghatározza. Ebben az argumentumban a teljes R-szkriptet Unicode-szövegként kell csatolni. A szöveget egy nvarchar típusú változóhoz is hozzáadhatja, majd meghívhatja a változót |
| @input_data_1 | a lekérdezés által visszaadott, az R-futtatókörnyezetnek átadott adatok, amelyek adatkeretként adják vissza az adatokat |
| EREDMÉNYHALMAZOKKAL | A záradék meghatározza a visszaadott adattábla sémáját, amelyhez "Hello World" hozzáadásra kerül mint oszlopnév, és int az adattípus. |
A parancs a következő szöveget adja ki:
| „Helló világ!” alkalmazás |
|---|
| 1 |
Bemenetek és kimenetek használata
Alapértelmezés szerint sp_execute_external_script egyetlen adathalmazt fogad el bemenetként, amelyet általában érvényes SQL-lekérdezés formájában ad meg. Ezután egyetlen R-adatkeretet ad vissza kimenetként.
Egyelőre az sp_execute_external_script és az OutputDataSet alapértelmezett bemeneti és kimeneti változóit használjuk.
Hozzon létre egy kis táblázatot a tesztadatokból.
CREATE TABLE RTestData (col1 INT NOT NULL) INSERT INTO RTestData VALUES (1); INSERT INTO RTestData VALUES (10); INSERT INTO RTestData VALUES (100); GOA
SELECTutasítással kérdezheti le a táblát.SELECT * FROM RTestDataResults
Futtassa a következő R-szkriptet. A
SELECTutasítással lekéri az adatokat a táblából, átfuttatja az R környezeten, és adatkeret formájában adja vissza az adatokat. AWITH RESULT SETSzáradék meghatározza az SQL visszaadott adattáblájának sémáját, és hozzáadja a NewColName oszlopnevet.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
Most változtassuk meg a bemeneti és kimeneti változók nevét. A bemeneti és kimeneti változók alapértelmezett neve az InputDataSet és az OutputDataSet, ez a szkript a neveket SQL_in és SQL_out értékre módosítja:
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));Vegye figyelembe, hogy az R kis- és nagybetűérzékeny. Az R-szkriptben használt bemeneti és kimeneti változóknak (SQL_out, SQL_in) meg kell egyezniük azzal a névvel, amelyet a
@input_data_1_nameés@output_data_1_namekarakterhelyőrzőkkel definiálnak, beleértve a betűméretet is.Jótanács
Paraméterként csak egy bemeneti adatkészlet adható át, és csak egy adathalmazt adhat vissza. Az R-kódon belülről azonban meghívhat más adatkészleteket, és az adatkészleten kívül más típusú kimeneteket is visszaadhat. Az OUTPUT kulcsszót bármely paraméterhez hozzáadhatja, hogy az eredményekkel együtt visszaadja.
Értékeket is létrehozhat csak az R-szkripttel bemeneti adatok nélkül (
@input_data_1üresre van állítva).A következő szkript a "hello" és a "world" szöveget adja ki.
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 bemenetként" />
R-verzió ellenőrzése
Ha látni szeretné, hogy az R melyik verziója van telepítve, futtassa a következő szkriptet.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'print(version)';
GO
Az R print függvény visszaadja a verziót az Üzenetek ablakba. Az alábbi példakimenetben láthatja, hogy ebben az esetben az R 3.4.4-es verziója van telepítve.
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
R-csomagok listázása
A Microsoft számos, a Machine Learning Services szolgáltatással előre telepített R-csomagot biztosít.
A Microsoft számos előre telepített R-csomagot biztosít az R Services használatával.
A telepített R-csomagok listájának megtekintéséhez, beleértve a verziót, a függőségeket, a licenceket és a kódtár elérési útját, futtassa a következő szkriptet.
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)
));
A kimenet az R-ből származik installed.packages() , és eredményhalmazként lesz visszaadva.
Results
Következő lépések
Ha tudni szeretné, hogyan használhat adatstruktúrákat az R sql-gépi tanulással való használatakor, kövesse az alábbi rövid útmutatót: