Bagikan melalui


Mulai cepat: Fungsi R dengan pembelajaran mesin SQL

Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Managed Instance yang lebih baru

Dalam mulai cepat ini, Anda akan mempelajari cara menggunakan fungsi matematika dan utilitas R dengan SQL Server Pembelajaran Mesin Services atau di Kluster Big Data. Fungsi statistik sering kali rumit untuk diimplementasikan dalam T-SQL, tetapi dapat dilakukan di R hanya dengan beberapa baris kode.

Dalam mulai cepat ini, Anda akan mempelajari cara menggunakan fungsi matematika dan utilitas R dengan SQL Server Pembelajaran Mesin Services. Fungsi statistik sering kali rumit untuk diimplementasikan dalam T-SQL, tetapi dapat dilakukan di R hanya dengan beberapa baris kode.

Dalam mulai cepat ini, Anda akan mempelajari cara menggunakan fungsi matematika dan utilitas R dengan SQL Server R Services. Fungsi statistik sering kali rumit untuk diimplementasikan dalam T-SQL, tetapi dapat dilakukan di R hanya dengan beberapa baris kode.

Dalam mulai cepat ini, Anda akan mempelajari cara menggunakan struktur data dan jenis data saat menggunakan R di Azure SQL Managed Instance Pembelajaran Mesin Services. Anda akan mempelajari tentang memindahkan data antara R dan SQL Managed Instance, dan masalah umum yang mungkin terjadi.

Prasyarat

Anda memerlukan prasyarat berikut untuk menjalankan mulai cepat ini.

  • Layanan Pembelajaran Mesin SQL Server. Untuk menginstal Pembelajaran Mesin Services, lihat panduan penginstalan Windows.
  • Layanan SQL Server 2016 R. Untuk menginstal Layanan R, lihat panduan penginstalan Windows.
  • Azure SQL Managed Instance Pembelajaran Mesin Services. Untuk informasi, lihat gambaran umum Azure SQL Managed Instance Pembelajaran Mesin Services.
  • Alat untuk menjalankan kueri SQL yang berisi skrip R. Mulai cepat ini menggunakan Azure Data Studio.

Membuat prosedur tersimpan untuk menghasilkan angka acak

Untuk kesederhanaan, mari kita gunakan paket R stats , yang diinstal dan dimuat secara default. Paket ini berisi ratusan fungsi untuk tugas statistik umum, di antaranya rnorm fungsi, yang menghasilkan jumlah angka acak tertentu menggunakan distribusi normal, mengingat simpanpan dan rata-rata standar.

Misalnya, kode R berikut mengembalikan 100 angka pada rata-rata 50, mengingat simpantan baku 3.

as.data.frame(rnorm(100, mean = 50, sd = 3));

Untuk memanggil baris R ini dari T-SQL, tambahkan fungsi R di parameter skrip R , sp_execute_external_scriptseperti ini:

EXECUTE sp_execute_external_script
      @language = N'R'
    , @script = N'
         OutputDataSet <- as.data.frame(rnorm(100, mean = 50, sd =3));'
    , @input_data_1 = N'   ;'
      WITH RESULT SETS (([Density] float NOT NULL));

Bagaimana jika Anda ingin mempermudah untuk menghasilkan sekumpulan angka acak yang berbeda?

Itu mudah jika dikombinasikan dengan T-SQL. Anda menentukan prosedur tersimpan yang mendapatkan argumen dari pengguna, lalu meneruskan argumen tersebut ke dalam skrip R sebagai variabel.

CREATE PROCEDURE MyRNorm (
    @param1 INT
    , @param2 INT
    , @param3 INT
    )
AS
EXECUTE sp_execute_external_script @language = N'R'
    , @script = N'
	     OutputDataSet <- as.data.frame(rnorm(mynumbers, mymean, 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 R, dan jenis data SQL yang sesuai.

  • Baris yang segera mengikuti petakan nama parameter SQL ke nama variabel R yang sesuai.

Sekarang setelah Anda membungkus fungsi R dalam prosedur tersimpan, Anda dapat dengan mudah memanggil fungsi dan meneruskan nilai yang berbeda, seperti ini:

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

Menggunakan fungsi utilitas R untuk pemecahan masalah

Paket utils , yang diinstal secara default, menyediakan berbagai fungsi utilitas untuk menyelidiki lingkungan R saat ini. Fungsi-fungsi ini dapat berguna jika Anda menemukan perbedaan dalam cara kode R Anda bekerja di SQL Server dan di lingkungan luar.

Misalnya, Anda dapat menggunakan fungsi pengaturan waktu sistem di R, seperti system.time dan proc.time, untuk menangkap waktu yang digunakan oleh proses R dan menganalisis masalah performa. Misalnya, lihat tutorial Membuat Fitur Data tempat fungsi pengaturan waktu R disematkan dalam solusi.

EXECUTE sp_execute_external_script
      @language = N'R'
    , @script = N'
        library(utils);
        start.time <- proc.time();
        
        # Run R processes
        
        elapsed_time <- proc.time() - start.time;'

Untuk fungsi berguna lainnya, lihat Menggunakan fungsi pembuatan profil kode R untuk meningkatkan performa.

Langkah berikutnya

Untuk membuat model pembelajaran mesin menggunakan R dengan pembelajaran mesin SQL, ikuti mulai cepat ini: