Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2017 (14.x) och senare versioner
Azure SQL Managed Instance
I den här snabbstarten får du lära dig hur du använder matematiska Python- och verktygsfunktioner med SQL Server Machine Learning Services, Azure SQL Managed Instance Machine Learning Services eller SQL Server Big Data Clusters. Statistiska funktioner är ofta komplicerade att implementera i T-SQL, men kan göras i Python med bara några rader kod.
Förutsättningar
Du behöver följande förutsättningar för att köra den här snabbstarten.
En SQL-databas på någon av dessa plattformar:
- SQL Server Machine Learning Services. Information om hur du installerar finns i installationsguiden för Windows eller installationsguiden för Linux.
- SQL Server-stordatakluster. Se hur du aktiverar Machine Learning Services på SQL Server Big Data Clusters.
- Azure SQL Managed Instance Machine Learning Services. Mer information finns i Översikt över Azure SQL Managed Instance Machine Learning Services.
Ett verktyg för att köra SQL-frågor som innehåller Python-skript. Den här snabbstarten använder Azure Data Studio.
Skapa en lagrad procedur för att generera slumpmässiga tal
För enkelhetens skull ska vi använda Python-paketet numpy som installeras och läses in som standard. Paketet innehåller hundratals funktioner för vanliga statistiska uppgifter, bland annat random.normal funktionen, som genererar ett angivet antal slumpmässiga tal med hjälp av den normala fördelningen, givet en standardavvikelse och medelvärde.
Följande Python-kod returnerar till exempel 100 tal på medelvärdet 50, givet en standardavvikelse på 3.
numpy.random.normal(size=100, loc=50, scale=3)
Om du vill anropa den här raden i Python från T-SQL lägger du till Python-funktionen i Python-skriptparametern sp_execute_external_scriptför . Utdata förväntar sig en dataram, så använd pandas för att konvertera den.
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));
Vad händer om du vill göra det enklare att generera en annan uppsättning slumptal? Du definierar en lagrad procedur som hämtar argumenten från användaren och skickar sedan argumenten till Python-skriptet som variabler.
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));
Den första raden definierar var och en av de SQL-indataparametrar som krävs när den lagrade proceduren körs.
Raden som börjar med
@paramsdefinierar alla variabler som används av Python-koden och motsvarande SQL-datatyper.De rader som följer omedelbart mappar SQL-parameternamnen till motsvarande Python-variabelnamn.
Nu när du har omslutit Python-funktionen i en lagrad procedur kan du enkelt anropa funktionen och skicka in olika värden, så här:
EXECUTE MyPyNorm @param1 = 100,@param2 = 50, @param3 = 3
Använda Python-verktygsfunktioner för felsökning
Python-paket innehåller en mängd olika verktygsfunktioner för att undersöka den aktuella Python-miljön. Dessa funktioner kan vara användbara om du hittar avvikelser i hur Python-koden fungerar i SQL Server och i externa miljöer.
Du kan till exempel använda systemtidsfunktioner i time paketet för att mäta hur lång tid som används av Python-processer och analysera prestandaproblem.
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' ;';
Nästa steg
Följ den här snabbstarten för att skapa en maskininlärningsmodell med Python och SQL-maskininlärning.