Mulai cepat: Fungsi Python dengan pembelajaran mesin SQL
Berlaku untuk: SQL Server 2017 (14.x) dan yang lebih baru Azure SQL Managed Instance
Dalam mulai cepat ini, Anda akan mempelajari cara menggunakan fungsi matematika dan utilitas Python dengan SQL Server Machine Learning Services, Azure SQL Managed Instance Machine Learning Services, atau SQL Server Kluster Big Data. Fungsi statistik sering kali rumit untuk diterapkan dalam T-SQL, tetapi dapat dilakukan di Python hanya dengan beberapa baris kode.
Prasyarat
Anda memerlukan prasyarat berikut untuk menjalankan mulai cepat ini.
Database SQL pada salah satu platform ini:
- SQL Server Layanan Pembelajaran Mesin. Untuk menginstal, lihat panduan penginstalan Windows atau panduan penginstalan Linux.
- SQL Server Kluster Big Data. Lihat cara mengaktifkan Layanan Pembelajaran Mesin di SQL Server Kluster Big Data.
- Azure SQL Managed Instance Layanan Pembelajaran Mesin. Untuk informasi, lihat ringkasan Azure SQL Managed Instance Machine Learning Services.
Alat untuk menjalankan kueri SQL yang berisi skrip Python. Mulai cepat ini menggunakan Azure Data Studio.
Membuat prosedur tersimpan untuk menghasilkan angka acak
Untuk kesederhanaan, mari kita gunakan paket Python numpy
, yang diinstal dan dimuat secara default. Paket ini berisi ratusan fungsi untuk tugas statistik umum, di antaranya random.normal
fungsi , yang menghasilkan jumlah angka acak tertentu menggunakan distribusi normal, mengingat simpanpan standar dan rata-rata.
Misalnya, kode Python berikut mengembalikan 100 angka pada rata-rata 50, mengingat simpanpan standar 3.
numpy.random.normal(size=100, loc=50, scale=3)
Untuk memanggil baris Python ini dari T-SQL, tambahkan fungsi Python di parameter skrip Python dari sp_execute_external_script
. Output mengharapkan bingkai data, jadi gunakan pandas
untuk mengonversinya.
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));
Bagaimana jika Anda ingin mempermudah untuk menghasilkan sekumpulan angka acak yang berbeda? Anda menentukan prosedur tersimpan yang mendapatkan argumen dari pengguna, lalu meneruskan argumen tersebut ke dalam skrip Python sebagai variabel.
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));
Baris pertama mendefinisikan masing-masing parameter input SQL yang diperlukan saat prosedur tersimpan dijalankan.
Baris yang dimulai dengan
@params
mendefinisikan semua variabel yang digunakan oleh kode Python, dan jenis data SQL yang sesuai.Baris yang segera mengikuti petakan nama parameter SQL ke nama variabel Python yang sesuai.
Sekarang setelah Anda membungkus fungsi Python dalam prosedur tersimpan, Anda dapat dengan mudah memanggil fungsi dan meneruskan nilai yang berbeda, seperti ini:
EXECUTE MyPyNorm @param1 = 100,@param2 = 50, @param3 = 3
Menggunakan fungsi utilitas Python untuk pemecahan masalah
Paket Python menyediakan berbagai fungsi utilitas untuk menyelidiki lingkungan Python saat ini. Fungsi-fungsi ini dapat berguna jika Anda menemukan perbedaan dalam cara kode Python Anda bekerja di SQL Server dan di lingkungan luar.
Misalnya, Anda dapat menggunakan fungsi pengaturan waktu sistem dalam time
paket untuk mengukur jumlah waktu yang digunakan oleh proses Python dan menganalisis masalah performa.
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' ;';
Langkah berikutnya
Untuk membuat model pembelajaran mesin menggunakan Python dengan pembelajaran mesin SQL, ikuti mulai cepat ini:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk