Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2017 (14.x) i nowsze wersje
usługi Azure SQL Managed Instance
Z tego przewodnika Szybki start dowiesz się, jak używać funkcji matematycznych i narzędziowych języka Python z usługami SQL Server Machine Learning Services, Azure SQL Managed Instance Machine Learning Services lub klastrami danych big data programu SQL Server. Funkcje statystyczne są często skomplikowane do zaimplementowania w języku T-SQL, ale można to zrobić w języku Python z zaledwie kilkoma wierszami kodu.
Wymagania wstępne
Aby uruchomić szybki start, potrzebne są następujące prerekwizyty.
Baza danych SQL na jednej z następujących platform:
- Sql Server Machine Learning Services. Aby zainstalować, zobacz Przewodnik instalacji systemu Windows lub Przewodnik instalacji systemu Linux.
- Klastry danych big data programu SQL Server. Zobacz, jak włączyć usługi Machine Learning Services w klastrach danych big data programu SQL Server.
- Azure SQL Managed Instance Machine Learning Services. Aby uzyskać informacje, zobacz Omówienie usług Azure SQL Managed Instance Machine Learning Services.
Narzędzie do uruchamiania zapytań SQL zawierających skrypty języka Python. W tym przewodniku Szybki start jest używany program Azure Data Studio.
Utworzyć procedurę składowaną w celu wygenerowania liczb losowych
Dla uproszczenia użyjemy pakietu języka Python numpy , który jest instalowany i ładowany domyślnie. Pakiet zawiera setki funkcji dla typowych zadań statystycznych, wśród nich random.normal funkcję, która generuje określoną liczbę liczb losowych przy użyciu rozkładu normalnego, biorąc pod uwagę odchylenie standardowe i średnią.
Na przykład poniższy kod w języku Python zwraca 100 liczb o średniej 50, przy odchyleniu standardowym wynoszącym 3.
numpy.random.normal(size=100, loc=50, scale=3)
Aby wywołać ten wiersz języka Python z języka T-SQL, dodaj funkcję języka Python w parametrze skryptu języka Python .sp_execute_external_script Dane wyjściowe powinny być w formie ramki danych, więc użyj pandas aby je przekonwertować.
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 zrobić, jeśli chcesz ułatwić generowanie innego zestawu liczb losowych? Definiujesz procedurę składowaną, która pobiera argumenty od użytkownika, a następnie przekazuje te argumenty do skryptu języka Python jako zmienne.
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));
Pierwszy wiersz definiuje każdy z parametrów wejściowych SQL, które są wymagane podczas wykonywania procedury składowanej.
Wiersz rozpoczynający się od
@paramsdefiniuje wszystkie zmienne używane przez kod Pythona oraz odpowiadające im typy danych SQL.Wiersze, które bezpośrednio następują po mapowaniu nazw parametrów SQL do odpowiednich nazw zmiennych Pythona.
Teraz, gdy funkcja języka Python została opakowana w procedurę składowaną, możesz łatwo wywołać funkcję i przekazać różne wartości w następujący sposób:
EXECUTE MyPyNorm @param1 = 100,@param2 = 50, @param3 = 3
Rozwiązywanie problemów przy użyciu funkcji narzędzi języka Python
Pakiety języka Python udostępniają różne funkcje narzędzi do badania bieżącego środowiska języka Python. Te funkcje mogą być przydatne, jeśli znajdziesz rozbieżności w sposobie wykonywania kodu w języku Python w programie SQL Server i w środowiskach zewnętrznych.
Na przykład możesz użyć funkcji chronometrażu systemu w time pakiecie, aby zmierzyć czas używany przez procesy języka Python i analizować problemy z wydajnością.
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' ;';
Dalsze kroki
Aby utworzyć model uczenia maszynowego przy użyciu języka Python w połączeniu z uczeniem maszynowym SQL, wykonaj czynności opisane w tym przewodniku szybkiego startu: