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 2017 (14.x) és újabb verziók
Felügyelt Azure SQL-példány
Ebben a rövid útmutatóban megtudhatja, hogyan használhatja a Python matematikai és segédprogram-függvényeket az SQL Server Machine Learning Services, az Azure SQL Managed Instance Machine Learning Services vagy az SQL Server Big Data-fürtök használatával. A statisztikai függvények gyakran bonyolultak a T-SQL-ben való implementáláshoz, de Pythonban csak néhány sornyi kóddal végezhetők el.
Előfeltételek
A rövid útmutató futtatásához a következő előfeltételekre lesz szüksége.
SQL-adatbázis az alábbi platformok egyikén:
- SQL Server Machine Learning Services. A telepítéshez tekintse meg a Windows telepítési útmutatóját vagy a Linux telepítési útmutatóját.
- SQL Server Big Data-fürtök. Megtudhatja, hogyan engedélyezheti a Machine Learning Servicest az SQL Server Big Data-fürtökön.
- 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.
Python-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.
Tárolt eljárás létrehozása véletlenszerű számok létrehozásához
Az egyszerűség kedvéért használjuk az alapértelmezés szerint telepített és betöltött Python-csomagot numpy . A csomag több száz függvényt tartalmaz a gyakori statisztikai feladatokhoz, köztük a random.normal függvényt, amely meghatározott számú véletlenszerű számot hoz létre a normál eloszlás használatával, szórás és középérték alapján.
Például a következő Python-kód 100 számot ad vissza 50-es átlag mellett, 3-as szórással.
numpy.random.normal(size=100, loc=50, scale=3)
Ennek a Python kódnak a T-SQL-ből való meghívásához adja hozzá a Python függvényt a Python szkript sp_execute_external_script paraméteréhez. A kimenet adatkeretet vár, ezért az átalakításhoz használja pandas .
EXECUTE sp_execute_external_script @language = N'Python'
, @script = N'
import numpy
import pandas
OutputDataSet = pandas.DataFrame(numpy.random.normal(size=100, loc=50, scale=3));
'
, @input_data_1 = N' ;'
WITH RESULT SETS(([Density] FLOAT NOT NULL));
Mi a teendő, ha egyszerűbbé szeretné tenni a véletlenszerű számok egy másik készletének generálását? Definiálhat egy tárolt eljárást, amely lekéri az argumentumokat a felhasználótól, majd változókként adja át ezeket az argumentumokat a Python-szkriptbe.
CREATE PROCEDURE MyPyNorm (
@param1 INT
, @param2 INT
, @param3 INT
)
AS
EXECUTE sp_execute_external_script @language = N'Python'
, @script = N'
import numpy
import pandas
OutputDataSet = pandas.DataFrame(numpy.random.normal(size=mynumbers, loc=mymean, scale=mysd));
'
, @input_data_1 = N' ;'
, @params = N' @mynumbers int, @mymean int, @mysd int'
, @mynumbers = @param1
, @mymean = @param2
, @mysd = @param3
WITH RESULT SETS(([Density] FLOAT NOT NULL));
Az első sor határozza meg a tárolt eljárás végrehajtásakor szükséges SQL-bemeneti paramétereket.
A sor a
@paramsPython-kód által használt összes változót és a megfelelő SQL-adattípusokat határozza meg.Az azonnal követendő sorok megfeleltetik az SQL-paraméterneveket a megfelelő Python-változóneveknek.
Most, hogy becsomagolta a Python-függvényt egy tárolt eljárásba, egyszerűen meghívhatja a függvényt, és különböző értékeket adhat át, például a következőt:
EXECUTE MyPyNorm @param1 = 100,@param2 = 50, @param3 = 3
A Python segédprogramfüggvényeinek használata hibaelhárításhoz
A Python-csomagok számos segédprogramfüggvényt biztosítanak az aktuális Python-környezet vizsgálatához. Ezek a függvények akkor lehetnek hasznosak, ha eltéréseket tapasztal a Python-kód SQL Serveren és külső környezetekben végzett teljesítményében.
A csomag rendszeridőzítési time függvényeivel például mérheti a Python-folyamatok által felhasznált időt, és elemezheti a teljesítményproblémákat.
EXECUTE sp_execute_external_script
@language = N'Python'
, @script = N'
import time
start_time = time.time()
# Run Python processes
elapsed_time = time.time() - start_time
'
, @input_data_1 = N' ;';
Következő lépések
Ha pythonos gépi tanulási modellt szeretne létrehozni az SQL Machine Learning használatával, kövesse az alábbi rövid útmutatót: