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 2017 (14.x) a novější verze
Azure SQL Managed Instance
V tomto rychlém startu se dozvíte, jak pomocí matematických a pomocných funkcí Pythonu používat služby SQL Server Machine Learning Services, Azure SQL Managed Instance Machine Learning Services nebo clustery s velkými objemy dat SQL Serveru. Statistické funkce jsou často složité implementovat v jazyce T-SQL, ale v Pythonu je možné provádět pouze s několika řádky kódu.
Požadavky
Ke spuštění tohoto rychlého startu potřebujete následující požadavky.
Databáze SQL na jedné z těchto platforem:
- služby pro strojové učení serveru SQL. Pokud ho chcete nainstalovat, přečtěte si průvodce instalací Windows nebo průvodce instalací Linuxu.
- Clustery SQL Serveru pro velké objemy dat Podívejte se, jak povolit službu Machine Learning Services v clusterech s velkými objemy dat SQL Serveru.
- 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 Pythonu. V tomto rychlém startu se používá Azure Data Studio.
Vytvoření uložené procedury pro generování náhodných čísel
Pro zjednodušení použijeme balíček Pythonu numpy , který je nainstalovaný a načtený ve výchozím nastavení. Balíček obsahuje stovky funkcí pro běžné statistické úkoly, mezi nimi random.normal funkce, která generuje zadaný počet náhodných čísel pomocí normálního rozdělení vzhledem ke směrodatné odchylkě a střední hodnotě.
Například následující kód Pythonu vrátí 100 čísel s průměrnou hodnotou 50 při směrodatné odchylce 3.
numpy.random.normal(size=100, loc=50, scale=3)
Pokud chcete volat tuto funkci Pythonu z T-SQL, přidejte ji do parametru skriptu Pythonusp_execute_external_script. Výstup očekává datový rámec, takže použijte pandas k jeho převodu.
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));
Co když chcete usnadnit generování jiné sady náhodných čísel? Definujete uloženou proceduru, která získá argumenty od uživatele, a pak tyto argumenty předáte do skriptu Pythonu jako proměnné.
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));
První řádek definuje každý ze vstupních parametrů SQL, které jsou vyžadovány při spuštění uložené procedury.
Řádek začínající
@paramsdefinuje všechny proměnné používané kódem Pythonu a odpovídajícími datovými typy SQL.Řádky, které bezprostředně následují, mapují názvy parametrů SQL na odpovídající názvy proměnných Pythonu.
Teď, když jste zabalili funkci Pythonu do uložené procedury, můžete funkci snadno volat a předat různé hodnoty, například takto:
EXECUTE MyPyNorm @param1 = 100,@param2 = 50, @param3 = 3
Řešení potíží s využitím funkcí nástroje Pythonu
Balíčky Pythonu poskytují celou řadu funkcí nástroje pro zkoumání aktuálního prostředí Pythonu. Tyto funkce můžou být užitečné, pokud hledáte nesrovnalosti ve způsobu, jakým kód Pythonu funguje v SQL Serveru a v externích prostředích.
Můžete například použít funkce časování systému v time balíčku k měření doby používané procesy Pythonu a analýze problémů s výkonem.
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' ;';
Další kroky
Pokud chcete vytvořit model strojového učení pomocí Pythonu se strojovým učením SQL, postupujte podle tohoto rychlého startu: