Menyiapkan klien ilmu data untuk pengembangan R di SQL Server
Berlaku untuk: SQL Server 2016 (13.x), SQL Server 2017 (14.x), dan SQL Server 2019 (15.x), SQL Server 2019 (15.x) - Linux
Integrasi R tersedia di SQL Server 2016 atau yang lebih baru saat Anda menyertakan opsi bahasa R dalam penginstalan SQL Server 2016 R Services atau SQL Server Pembelajaran Mesin Services (In-Database).
Catatan
Saat ini artikel ini berlaku untuk SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x), dan SQL Server 2019 (15.x) hanya untuk Linux.
Untuk mengembangkan dan menyebarkan solusi R untuk SQL Server, instal Klien Microsoft R di stasiun kerja pengembangan Anda untuk mendapatkan RevoScaleR dan pustaka R lainnya. Pustaka RevoScaleR, yang juga diperlukan pada instans SQL Server jarak jauh, mengoordinasikan permintaan komputasi antara kedua sistem.
Dalam artikel ini, pelajari cara mengonfigurasi stasiun kerja pengembangan klien R sehingga Anda dapat berinteraksi dengan SQL Server jarak jauh yang diaktifkan untuk pembelajaran mesin dan integrasi R. Setelah menyelesaikan langkah-langkah dalam artikel ini, Anda akan memiliki pustaka R yang sama dengan yang ada di SQL Server. Anda juga akan tahu cara mendorong komputasi dari sesi R lokal ke sesi R jarak jauh di SQL Server.
Untuk memvalidasi penginstalan, Anda dapat menggunakan alat RGUI bawaan seperti yang dijelaskan dalam artikel ini, atau menautkan pustaka ke RStudio atau IDE lain yang biasanya Anda gunakan.
Alat yang umum digunakan
Baik Anda adalah pengembang R yang baru menggunakan SQL, atau pengembang SQL yang baru menggunakan R dan analitik dalam database, Anda akan memerlukan alat pengembangan R dan editor kueri T-SQL seperti SQL Server Management Studio (SSMS) untuk menjalankan semua kemampuan analitik dalam database.
Untuk skenario pengembangan R sederhana, Anda dapat menggunakan RGUI yang dapat dieksekusi, dibundel dalam distribusi R dasar di MRO dan SQL Server. Artikel ini menjelaskan cara menggunakan RGUI untuk sesi R lokal dan jarak jauh. Untuk meningkatkan produktivitas, Anda harus menggunakan IDE berfungsi lengkap seperti RStudio atau Visual Studio.
SSMS adalah unduhan terpisah, berguna untuk membuat dan menjalankan prosedur tersimpan di SQL Server, termasuk yang berisi kode R. Hampir semua kode R yang Anda tulis di lingkungan pengembangan dapat disematkan dalam prosedur tersimpan. Anda dapat menelusuri tutorial lain untuk mempelajari tentang SSMS dan R yang disematkan.
1 - Menginstal paket R
Paket R Microsoft tersedia dalam beberapa produk dan layanan. Di stasiun kerja lokal, sebaiknya instal Klien Microsoft R. Klien R menyediakan Paket RevoScaleR, MicrosoftML, SQLRUtils, dan R lainnya.
Unduh Klien Microsoft R.
Dalam wizard penginstalan, terima atau ubah jalur penginstalan default, terima atau ubah daftar komponen, dan terima ketentuan lisensi Klien Microsoft R.
Setelah penginstalan selesai, layar selamat datang memperkenalkan Anda ke produk dan dokumentasi.
Buat variabel lingkungan sistem MKL_CBWR untuk memastikan output yang konsisten pada perhitungan Intel Math Kernel Library (MKL).
- Di Panel Kontrol, pilih Variabel Lingkungan Pengaturan>Sistem Tingkat Lanjut Sistem>dan Keamanan.>
- Buat variabel Sistem baru bernama MKL_CBWR, dengan nilai diatur ke AUTO.
2 - Temukan executable
Temukan dan cantumkan konten folder penginstalan untuk mengonfirmasi bahwa R.exe, RGUI, dan paket lainnya diinstal.
Di File Explorer, buka
%ProgramFiles%\Microsoft\R Client\R_SERVER\bin
folder untuk mengonfirmasi lokasiR.exe
.Buka subfolder x64 untuk mengonfirmasi RGUI. Anda akan menggunakan alat ini di langkah berikutnya.
Buka
%ProgramFiles%\Microsoft\R Client\R_SERVER\library
untuk meninjau daftar paket yang diinstal dengan Klien R, termasuk RevoScaleR, MicrosoftML, dan lainnya.
3 - Mulai RGUI
Ketika Anda menginstal R dengan SQL Server, Anda mendapatkan alat R yang sama yang standar untuk penginstalan dasar R apa pun, seperti RGui, Rterm, dan sebagainya. Alat-alat ini ringan, berguna untuk memeriksa informasi paket dan pustaka, menjalankan perintah atau skrip ad hoc, atau menelusuri tutorial. Anda dapat menggunakan alat ini untuk mendapatkan informasi versi R dan mengonfirmasi konektivitas.
Buka
%ProgramFiles%\Microsoft\R Client\R_SERVER\bin\x64
dan klik dua kali RGui untuk memulai sesi R dengan perintah R.Saat Anda memulai sesi R dari folder program Microsoft, beberapa paket, termasuk RevoScaleR, muat secara otomatis.
Masukkan
print(Revo.version)
pada prompt perintah untuk mengembalikan informasi versi paket RevoScaleR. Anda harus memiliki versi 9.2.1 atau 9.3.0 untuk RevoScaleR.Masukkan search() pada perintah R untuk daftar paket yang diinstal.
4 - Mendapatkan izin SQL
Di Klien R, pemrosesan R dibatasi pada dua utas dan data dalam memori. Untuk pemrosesan yang dapat diskalakan menggunakan beberapa inti dan himpunan data besar, Anda dapat mengalihkan eksekusi (disebut sebagai konteks komputasi) ke himpunan data dan daya komputasi instans SQL Server jarak jauh. Ini adalah pendekatan yang direkomendasikan untuk integrasi klien dengan instans SQL Server produksi, dan Anda akan memerlukan izin dan informasi koneksi untuk membuatnya berfungsi.
Untuk menyambungkan ke instans SQL Server untuk menjalankan skrip dan mengunggah data, Anda harus memiliki login yang valid di server database. Anda dapat menggunakan login SQL atau autentikasi Windows terintegrasi. Kami umumnya menyarankan Agar Anda menggunakan autentikasi terintegrasi Windows, tetapi menggunakan login SQL lebih sederhana untuk beberapa skenario, terutama ketika skrip Anda berisi string koneksi ke data eksternal.
Minimal, akun yang digunakan untuk menjalankan kode harus memiliki izin untuk membaca dari database yang sedang Anda kerjakan, ditambah izin khusus JALANKAN SKRIP EKSTERNAL APA PUN. Sebagian besar pengembang juga memerlukan izin untuk membuat prosedur tersimpan, dan menulis data ke dalam tabel yang berisi data pelatihan atau data yang dinilai.
Minta administrator database untuk mengonfigurasi izin berikut untuk akun Anda, di database tempat Anda menggunakan R:
- JALANKAN SKRIP EKSTERNAL APA PUN untuk menjalankan skrip R di server.
- db_datareader hak istimewa untuk menjalankan kueri yang digunakan untuk melatih model.
- db_datawriter menulis data pelatihan atau data yang dinilai.
- db_owner untuk membuat objek seperti prosedur tersimpan, tabel, fungsi. Anda juga perlu db_owner untuk membuat sampel dan menguji database.
Jika kode Anda memerlukan paket yang tidak diinstal secara default dengan SQL Server, atur dengan administrator database agar paket diinstal dengan instans. SQL Server adalah lingkungan yang aman dan ada batasan di mana paket dapat diinstal. Untuk informasi selengkapnya, lihat Menginstal paket R baru di SQL Server.
5 - Uji koneksi
Sebagai langkah verifikasi, gunakan RGUI dan RevoScaleR untuk mengonfirmasi konektivitas ke server jarak jauh. SQL Server harus diaktifkan untuk koneksi jarak jauh dan Anda harus memiliki izin, termasuk login pengguna dan database yang akan disambungkan .
Langkah-langkah berikut mengasumsikan database demo, NYCTaxi_Sample, dan autentikasi Windows.
Buka RGUI di stasiun kerja klien. Misalnya, buka
~\Program Files\Microsoft SQL Server\140\R_SERVER\bin\x64
dan klik dua kali RGui.exe untuk memulainya.RevoScaleR dimuat secara otomatis. Konfirmasikan RevoScaleR beroperasi dengan menjalankan perintah ini:
print(Revo.version)
Masukkan skrip demo yang dijalankan di server jarak jauh. Anda harus mengubah contoh skrip berikut untuk menyertakan nama yang valid untuk instans SQL Server jarak jauh. Sesi ini dimulai sebagai sesi lokal, tetapi fungsi rxSummary dijalankan pada instans SQL Server jarak jauh.
# Define a connection. Replace server with a valid server name. connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true" # Specify the input data in a SQL query. sampleQuery <-"SELECT DISTINCT TOP(100) tip_amount FROM [dbo].nyctaxi_sample ORDER BY tip_amount DESC;" # Define a remote compute context based on the remote server. cc <-RxInSqlServer(connectionString=connStr) # Execute the function using the remote compute context. rxSummary(formula = ~ ., data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr), computeContext=cc)
Hasil:
Skrip ini tersambung ke database di server jarak jauh, menyediakan kueri, membuat instruksi konteks
cc
komputasi untuk eksekusi kode jarak jauh, lalu menyediakan fungsi RevoScaleR rxSummary untuk mengembalikan ringkasan statistik hasil kueri.Call: rxSummary(formula = ~., data = RxSqlServerData(sqlQuery = sampleQuery, connectionString = connStr), computeContext = cc) Summary Statistics Results for: ~. Data: RxSqlServerData(sqlQuery = sampleQuery, connectionString = connStr) (RxSqlServerData Data Source) Number of valid observations: 100 Name Mean StdDev Min Max ValidObs MissingObs tip_amount 63.245 31.61087 36 180 100 0
Dapatkan dan atur konteks komputasi. Setelah Anda mengatur konteks komputasi, konteks tersebut tetap berlaku selama sesi. Jika Anda tidak yakin apakah komputasi bersifat lokal atau jarak jauh, jalankan perintah berikut untuk mengetahuinya. Hasil yang menentukan string koneksi menunjukkan konteks komputasi jarak jauh.
# Return the current compute context. rxGetComputeContext() # Revert to a local compute context. rxSetComputeContext("local") rxGetComputeContext() # Switch back to remote. connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true" cc <-RxInSqlServer(connectionString=connStr) rxSetComputeContext(cc) rxGetComputeContext()
Mengembalikan informasi tentang variabel di sumber data, termasuk nama dan jenis.
rxGetVarInfo(data = inDataSource)
Hasilnya mencakup 23 variabel.
Hasilkan plot sebar untuk mengeksplorasi apakah ada dependensi antara dua variabel.
# Set the connection string. Substitute a valid server name for the placeholder. connStr <- "Driver=SQL Server;Server=<your database name>;Database=NYCTaxi_Sample;Trusted_Connection=true" # Specify a query on the nyctaxi_sample table. # For variables on each axis, remove nulls. Use a WHERE clause and <> to do this. sampleQuery <-"SELECT DISTINCT TOP 100 * from [dbo].[nyctaxi_sample] WHERE fare_amount <> '' AND tip_amount <> ''" cc <-RxInSqlServer(connectionString=connStr) # Generate a scatter plot. rxLinePlot(fare_amount ~ tip_amount, data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr, computeContext=cc), type="p")
Cuplikan layar berikut menunjukkan input dan output plot sebar.
6 - Menautkan alat ke R.exe
Untuk proyek pengembangan berkelanjutan dan serius, Anda harus menginstal lingkungan pengembangan terintegrasi (IDE). Alat SQL Server dan alat R bawaan tidak dilengkapi untuk pengembangan R yang berat. Setelah Anda memiliki kode kerja, Anda dapat menyebarkannya sebagai prosedur tersimpan untuk eksekusi di SQL Server.
Arahkan IDE Anda ke pustaka R lokal: base R, RevoScaleR, dan sebagainya. Menjalankan beban kerja pada SQL Server jarak jauh terjadi selama eksekusi skrip, ketika skrip Anda memanggil konteks komputasi jarak jauh di SQL Server, mengakses data dan operasi di server tersebut.
RStudio
Saat menggunakan RStudio, Anda dapat mengonfigurasi lingkungan untuk menggunakan pustaka R dan executable yang sesuai dengan yang ada di SQL Server jarak jauh.
Periksa versi paket R yang diinstal di SQL Server. Untuk informasi selengkapnya, lihat Mendapatkan informasi paket R.
Instal Klien Microsoft R untuk menambahkan RevoScaleR dan paket R lainnya, termasuk distribusi R dasar yang digunakan oleh instans SQL Server Anda. Pilih versi pada tingkat yang sama atau lebih rendah (paket kompatibel mundur) yang menyediakan versi paket yang sama seperti pada server. Untuk melihat versi paket yang diinstal di server, lihat Mencantumkan semua paket R yang diinstal.
Di RStudio, perbarui jalur R Anda untuk menunjuk ke lingkungan R yang menyediakan RevoScaleR, Microsoft R Open, dan paket Microsoft lainnya. Cari
%ProgramFiles%\Microsoft\R Client\R_SERVER\bin\x64
.Tutup lalu buka RStudio.
Ketika Anda membuka kembali RStudio, R yang dapat dieksekusi dari Klien R adalah mesin R default.
Alat R untuk Visual Studio (RTVS)
Jika Anda belum memiliki IDE pilihan untuk R, kami sarankan R Tools for Visual Studio.
- Unduh R Tools for Visual Studio (RTVS)
- Petunjuk penginstalan - RTVS tersedia di beberapa versi Visual Studio.
- Mulai menggunakan R Tools for Visual Studio
Menyambungkan ke SQL Server dari RTVS
Contoh ini menggunakan Visual Studio 2017 Community Edition, dengan beban kerja ilmu data terinstal.
Dari menu File, pilih Baru lalu pilih Proyek.
Panel sebelah kiri berisi daftar templat yang telah diinstal sebelumnya. Pilih R, dan pilih Proyek R. Dalam kotak Nama , ketik
dbtest
dan pilih OK.Visual Studio membuat folder proyek baru dan file skrip default,
Script.R
.Ketik
.libPaths()
pada baris pertama file skrip, lalu tekanCTRL + ENTER
.Jalur pustaka R saat ini harus ditampilkan di jendela Interaktif R.
Pilih menu R Tools dan pilih Windows untuk melihat daftar jendela khusus R lainnya yang bisa Anda tampilkan di ruang kerja Anda.
- Lihat bantuan tentang paket di pustaka saat ini dengan menekan CTRL + 3.
- Lihat Variabel R di Penjelajah Variabel, dengan menekan CTRL + 8.
Langkah berikutnya
Dua tutorial berbeda termasuk latihan sehingga Anda dapat berlatih mengalihkan konteks komputasi dari lokal ke instans SQL Server jarak jauh.