Aracılığıyla paylaş


Hızlı Başlangıç: SQL makine öğrenmesi ile Python işlevleri

Şunlar için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri Azure SQL Yönetimli Örnek

Bu hızlı başlangıçta SQL Server Machine Learning Services, Azure SQL Yönetilen Örneği Machine Learning Services veya SQL Server Büyük Veri Kümeleri ile Python matematik ve yardımcı program işlevlerini kullanmayı öğreneceksiniz. İstatistiksel işlevlerin T-SQL'de uygulanması genellikle karmaşıktır, ancak Python'da yalnızca birkaç kod satırıyla yapılabilir.

Önkoşullar

Bu hızlı başlangıcı çalıştırmak için aşağıdaki önkoşullara ihtiyacınız vardır.

Rastgele sayılar oluşturacak bir saklı yordam oluşturun.

Basitlik adına, varsayılan olarak yüklenip başlatılan Python numpy paketini kullanalım. Paket, standart sapma ve ortalama göz önüne alındığında normal dağılımı kullanarak belirtilen sayıda rastgele sayı oluşturan işlev de dahil olmak random.normal üzere ortak istatistiksel görevler için yüzlerce işlev içerir.

Örneğin, aşağıdaki Python kodu, standart sapma değeri 3 olan 50 ortalamada 100 sayı döndürür.

numpy.random.normal(size=100, loc=50, scale=3)

T-SQL'den bu Python satırını çağırmak için Python işlevini python betik parametresine sp_execute_external_scriptekleyin. Çıktı bir veri çerçevesi bekler, bu nedenle bunu dönüştürmek için kullanın 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));

Farklı bir rastgele sayı kümesi oluşturmayı kolaylaştırmak isterseniz ne yapmanız gerekir? Kullanıcıdan bağımsız değişkenleri alan bir saklı yordam tanımlarsınız ve bu bağımsız değişkenleri Python betiğine değişken olarak geçirirsiniz.

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));
  • İlk satır, saklı yordam yürütülürken gereken SQL giriş parametrelerinin her birini tanımlar.

  • ile @params başlayan satır, Python kodu tarafından kullanılan tüm değişkenleri ve buna karşılık gelen SQL veri türlerini tanımlar.

  • Hemen izleyen satırlar, SQL parametre adlarını ilgili Python değişken adlarına eşler.

Python işlevini bir saklı yordama sarmaladığınıza göre işlevi kolayca çağırabilir ve aşağıdaki gibi farklı değerler geçirebilirsiniz:

EXECUTE MyPyNorm @param1 = 100,@param2 = 50, @param3 = 3

Sorun giderme için Python yardımcı programı işlevlerini kullanma

Python paketleri, geçerli Python ortamını araştırmak için çeşitli yardımcı program işlevleri sağlar. Bu işlevler, Python kodunuzun SQL Server'da ve dış ortamlardaki performansında tutarsızlıklar fark ederseniz yararlı olabilir.

Örneğin, Python işlemleri tarafından kullanılan süre miktarını ölçmek ve performans sorunlarını analiz etmek için paketteki time sistem zamanlama işlevlerini kullanabilirsiniz.

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' ;';

Sonraki Adımlar

SQL machine learning ile Python kullanarak makine öğrenmesi modeli oluşturmak için şu hızlı başlangıcı izleyin: