Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru
Pelajari cara melakukan skoring real-time dengan prosedur tersimpan sistem sp_rxPredict di SQL Server untuk prediksi atau skor berkinerja tinggi dalam beban kerja peramalan.
Penilaian real-time dengan sp_rxPredict bersifat agnostik terhadap bahasa dan berjalan tanpa ketergantungan pada runtime R atau Python di Pembelajaran Mesin Services. Menggunakan model yang dibuat dan dilatih menggunakan fungsi Microsoft dan diserialisasikan ke format biner di SQL Server, Anda dapat menggunakan penilaian real time untuk menghasilkan hasil yang diprediksi pada input data baru pada instans SQL Server yang tidak menginstal add-on R atau Python.
Cara kerja penilaian waktu nyata
Penilaian real-time didukung untuk jenis model tertentu berdasarkan fungsi dalam RevoScaleR atau MicrosoftML di R, atau revoscalepy atau microsoftml di Python. Ini menggunakan pustaka C++ asli untuk menghasilkan skor berdasarkan input pengguna yang disediakan untuk model pembelajaran mesin yang disimpan dalam format biner khusus.
Karena model terlatih dapat digunakan untuk pemberian skor tanpa perlu memanggil runtime bahasa eksternal di Pembelajaran Mesin Services, beban akibat beberapa proses pun berkurang.
Penilaian real time adalah proses multi-langkah:
- Anda mengaktifkan prosedur tersimpan yang melakukan penilaian per database.
- Anda memuat model yang telah dilatih sebelumnya dalam format biner.
- Anda menyediakan data masukan baru untuk diberi skor, baik dalam bentuk tabel maupun baris tunggal, sebagai masukan ke model.
- Untuk menghasilkan skor, panggil prosedur tersimpan sp_rxPredict .
Prasyarat
Model harus dilatih terlebih dahulu menggunakan salah satu algoritma rx yang didukung. Untuk detailnya, lihat Algoritma yang didukung untuk
sp_rxPredict.Serialisasi model menggunakan rxSerialize untuk R atau rx_serialize_model untuk Python. Fungsi serialisasi ini telah dioptimalkan untuk mendukung penilaian cepat.
Simpan model ke instans mesin database tempat Anda ingin memanggilnya. Instans ini tidak diperlukan untuk memiliki ekstensi runtime R atau Python.
Catatan
Penilaian real time saat ini dioptimalkan untuk prediksi cepat pada himpunan data yang lebih kecil, mulai dari beberapa baris hingga ratusan ribu baris. Pada himpunan data besar, menggunakan rxPredict mungkin lebih cepat.
Aktifkan penilaian waktu nyata
Aktifkan fitur ini untuk setiap database yang ingin Anda gunakan untuk penilaian. Administrator server harus menjalankan utilitas baris perintah, RegisterRExt.exe, yang disertakan dengan paket RevoScaleR.
Perhatian
Agar penilaian real time berfungsi, fungsionalitas SQL CLR perlu diaktifkan dalam instans dan database perlu ditandai dapat dipercaya. Saat Anda menjalankan skrip, langkah-langkah ini akan dilakukan secara otomatis. Namun, pertimbangkan dengan cermat implikasi keamanan tambahan sebelum melakukan ini.
Buka prompt perintah yang ditingkatkan, dan navigasikan ke folder tempat RegisterRExt.exe berada. Jalur berikut dapat digunakan dalam penginstalan default:
<SQLInstancePath>\R_SERVICES\library\RevoScaleR\rxLibs\x64\Jalankan perintah berikut, ganti nama instans Anda dan database target tempat Anda ingin mengaktifkan prosedur tersimpan yang diperluas:
RegisterRExt.exe /installRts [/instance:name] /database:databasenameMisalnya, untuk menambahkan prosedur tersimpan yang diperluas ke database CLRPredict pada instans default, ketik:
RegisterRExt.exe /installRts /database:CLRPRedictNama instans bersifat opsional jika database ada di instans default. Jika Anda menggunakan instans bernama, tentukan nama instans.
RegisterRExt.exe membuat objek berikut:
- Rakitan tepercaya
- Prosedur tersimpan
sp_rxPredict - Peran database baru,
rxpredict_users. Administrator database dapat menggunakan peran ini untuk memberikan izin kepada pengguna yang menggunakan fungsionalitas penilaian real time.
Tambahkan semua pengguna yang perlu menjalankan
sp_rxPredictke peran baru.
Catatan
Di SQL Server 2017 dan yang lebih baru, langkah-langkah keamanan tambahan diberlakukan untuk mencegah masalah dengan integrasi CLR. Langkah-langkah ini memberlakukan pembatasan tambahan pada penggunaan prosedur tersimpan ini juga.
Nonaktifkan penilaian waktu nyata
Untuk menonaktifkan fungsionalitas penilaian real-time, buka prompt perintah yang ditingkatkan, dan jalankan perintah berikut: RegisterRExt.exe /uninstallrts /database:<database_name> [/instance:name]
Contoh
Contoh ini menjelaskan langkah-langkah yang diperlukan untuk menyiapkan dan menyimpan model untuk prediksi real time , dan memberikan contoh dalam R tentang cara memanggil fungsi dari T-SQL.
Langkah 1. Menyiapkan dan menyimpan model
Format biner yang diperlukan oleh sp_rxPredict sama dengan format yang diperlukan untuk menggunakan fungsi PREDICT. Oleh karena itu, dalam kode R Anda, sertakan panggilan ke rxSerializeModel, dan pastikan untuk menentukan realtimeScoringOnly = TRUE, seperti dalam contoh ini:
model <- rxSerializeModel(model.name, realtimeScoringOnly = TRUE)
Langkah 2. Panggil sp_rxPredict
Anda memanggil sp_rxPredict sebagaimana Anda memanggil prosedur tersimpan lainnya. Dalam rilis saat ini, prosedur tersimpan hanya membutuhkan dua parameter: @model untuk model dalam format biner, dan @inputData agar data dapat digunakan dalam penilaian, yang didefinisikan sebagai kueri SQL yang valid.
Karena format biner sama dengan yang digunakan oleh fungsi PREDICT, Anda dapat menggunakan model dan tabel data dari contoh sebelumnya.
DECLARE @irismodel varbinary(max)
SELECT @irismodel = [native_model_object] from [ml_models]
WHERE model_name = 'iris.dtree'
AND model_version = 'v1'
EXEC sp_rxPredict
@model = @irismodel,
@inputData = N'SELECT * FROM iris_rx_data'
Catatan
Panggilan ke sp_rxPredict gagal jika data input untuk penilaian tidak menyertakan kolom yang cocok dengan persyaratan model. Saat ini, hanya jenis data .NET berikut yang didukung: double, float, short, ushort, long, ulong dan string.
Oleh karena itu, Anda mungkin perlu memfilter jenis yang tidak didukung dalam data input Anda sebelum menggunakannya untuk penilaian real-time.
Untuk informasi tentang tipe SQL yang sesuai, lihat Pemetaan Tipe SQL-CLR atau Pemetaan Data Parameter CLR.