Menginstal paket R dengan sqlmlutils

Berlaku untuk: SQL Server 2019 (15.x) Azure SQL Managed Instance

Artikel ini menjelaskan cara menggunakan fungsi dalam paket sqlmlutils untuk menginstal paket R ke instans Layanan Pembelajaran Mesin di SQL Server dan di Kluster Big Data. Paket yang Anda instal dapat digunakan dalam skrip R yang berjalan dalam database menggunakan pernyataan T-SQL sp_execute_external_script .

Catatan

Paket sqlmlutils yang dijelaskan dalam artikel ini digunakan untuk menambahkan paket R ke SQL Server 2019 atau yang lebih baru. Untuk SQL Server 2017 dan yang lebih lama, lihat Menginstal paket dengan alat R.

Artikel ini menjelaskan cara menggunakan fungsi dalam paket sqlmlutils untuk menginstal paket R ke instans Azure SQL Managed Instance Machine Learning Services. Paket yang Anda instal dapat digunakan dalam skrip R yang berjalan dalam database menggunakan pernyataan T-SQL sp_execute_external_script .

Catatan

Anda tidak dapat memperbarui atau menghapus paket yang telah diinstal sebelumnya pada instans SQL Managed Instance Machine Learning Services. Untuk melihat daftar paket yang saat ini diinstal, lihat Mencantumkan semua paket R yang diinstal.

Prasyarat

  • Instal R dan RStudio Desktop di komputer klien yang Anda gunakan untuk menyambungkan ke SQL Server. Anda dapat menggunakan IDE R apa pun untuk menjalankan skrip, tetapi artikel ini mengasumsikan RStudio.

    Versi R pada komputer klien harus cocok dengan versi R di server, dan paket yang Anda instal harus sesuai dengan versi R yang Anda miliki. Untuk informasi tentang versi R mana yang disertakan dengan setiap versi SQL Server, lihat versi Python dan R.

    Untuk memverifikasi versi R pada SQL Server tertentu, gunakan perintah T-SQL berikut.

    EXECUTE sp_execute_external_script @language = N'R'
    , @script = N'print(R.version)'
    
  • Instal Azure Data Studio di komputer klien yang Anda gunakan untuk menyambungkan ke SQL Server. Anda bisa menggunakan manajemen database atau alat kueri lainnya, tetapi artikel ini mengasumsikan Azure Data Studio.

Pertimbangan lainnya

  • Penginstalan paket khusus untuk instans SQL, database, dan pengguna yang Anda tentukan dalam informasi koneksi yang Anda berikan ke sqlmlutils. Untuk menggunakan paket dalam beberapa instans atau database SQL, atau untuk pengguna yang berbeda, Anda harus menginstal paket untuk masing-masing instans. Pengecualiannya adalah bahwa jika paket diinstal oleh anggota dbo, paket bersifat publik dan dibagikan dengan semua pengguna. Jika pengguna menginstal versi paket publik yang lebih baru, paket publik tidak terpengaruh tetapi pengguna tersebut akan memiliki akses ke versi yang lebih baru.

  • Skrip R yang berjalan di SQL Server hanya dapat menggunakan paket yang diinstal di pustaka instans default. SQL Server tidak dapat memuat paket dari pustaka eksternal, meskipun pustaka tersebut berada di komputer yang sama. Ini termasuk pustaka R yang diinstal dengan produk Microsoft lainnya.

  • Pada lingkungan SQL Server yang diperkeras, Anda mungkin ingin menghindari hal berikut:

    • Paket yang memerlukan akses jaringan
    • Paket yang memerlukan akses sistem file yang ditingkatkan
    • Paket yang digunakan untuk pengembangan web atau tugas lain yang tidak menguntungkan dengan berjalan di dalam SQL Server

Menginstal sqlmlutils di komputer klien

Untuk menggunakan sqlmlutils, Pertama-tama Anda perlu menginstalnya di komputer klien yang Anda gunakan untuk menyambungkan ke SQL Server.

Paket sqlmlutils tergantung pada paket odbc , dan odbc tergantung pada sejumlah paket lainnya. Prosedur berikut menginstal semua paket ini dalam urutan yang benar.

Menginstal sqlmlutils online

Jika komputer klien memiliki akses Internet, Anda dapat mengunduh dan menginstal sqlmlutils dan paket dependennya secara online.

  1. Unduh file sqlmlutils terbaru (.zip untuk Windows, .tar.gz untuk Linux) dari https://github.com/microsoft/sqlmlutils/releases ke komputer klien. Jangan perluas file.

  2. Buka Prompt Perintah dan jalankan perintah berikut untuk menginstal paket odbc dan sqlmlutils. Ganti jalur ke file sqlmlutils yang Anda unduh. Paket odbc ditemukan secara online dan terinstal.

    R.exe -e "install.packages('odbc', type='binary')"
    R.exe CMD INSTALL sqlmlutils_1.0.0.zip
    
    R.exe -e "install.packages('odbc')"
    R.exe CMD INSTALL sqlmlutils_1.0.0.tar.gz
    

Menginstal sqlmlutils secara offline

Jika komputer klien tidak memiliki koneksi Internet, Anda perlu mengunduh paket odbc dan sqlmlutils terlebih dahulu menggunakan komputer yang memang memiliki akses Internet. Anda kemudian dapat menyalin file ke folder di komputer klien dan menginstal paket secara offline.

Paket odbc memiliki sejumlah paket dependen, dan mengidentifikasi semua dependensi untuk paket menjadi rumit. Kami menyarankan agar Anda menggunakan miniCRAN untuk membuat folder repositori lokal untuk paket yang menyertakan semua paket dependen. Untuk informasi selengkapnya, lihat Membuat repositori paket R lokal menggunakan miniCRAN.

Paket sqlmlutils terdiri dari satu file yang dapat Anda salin ke komputer klien dan menginstal.

Pada komputer dengan akses Internet:

  1. Pasang miniCRAN. Lihat Menginstal miniCRAN untuk detailnya.

  2. Di RStudio, jalankan skrip R berikut untuk membuat repositori lokal paket odbc. Contoh ini mengasumsikan repositori akan dibuat di folder odbc.

    library("miniCRAN")
    CRAN_mirror <- c(CRAN = "https://cran.microsoft.com")
    local_repo <- "odbc"
    pkgs_needed <- "odbc"
    pkgs_expanded <- pkgDep(pkgs_needed, repos = CRAN_mirror);
    
    makeRepo(pkgs_expanded, path = local_repo, repos = CRAN_mirror, type = "win.binary", Rversion = "3.5");
    
    library("miniCRAN")
    CRAN_mirror <- c(CRAN = "https://cran.microsoft.com")
    local_repo <- "odbc"
    pkgs_needed <- "odbc"
    pkgs_expanded <- pkgDep(pkgs_needed, repos = CRAN_mirror);
    
    makeRepo(pkgs_expanded, path = local_repo, repos = CRAN_mirror, type = "source", Rversion = "3.5");
    

    Untuk nilainyaRversion, gunakan versi R yang diinstal pada SQL Server. Untuk memverifikasi versi yang diinstal, gunakan perintah T-SQL berikut.

    EXECUTE sp_execute_external_script @language = N'R'
     , @script = N'print(R.version)'
    
  3. Unduh file sqlmlutils terbaru (.zip untuk Windows, .tar.gz untuk Linux) dari https://github.com/microsoft/sqlmlutils/releases. Jangan perluas file.

  4. Salin seluruh folder repositori odbc dan file sqlmlutils ke komputer klien.

Pada komputer klien yang Anda gunakan untuk menyambungkan ke SQL Server:

  1. Buka prompt perintah.

  2. Jalankan perintah berikut untuk menginstal odbc lalu sqlmlutils. Ganti jalur lengkap ke folder repositori odbc dan file sqlmlutils yang Anda salin ke komputer ini.

    R.exe -e "install.packages('odbc', repos='odbc')"
    R.exe CMD INSTALL sqlmlutils_1.0.0.zip
    
    R.exe -e "install.packages('odbc', repos='odbc')"
    R.exe CMD INSTALL sqlmlutils_1.0.0.tar.gz
    

Menambahkan paket R di SQL Server

Dalam contoh berikut, Anda akan menambahkan paket lem ke SQL Server.

Tambahkan paket secara online

Jika komputer klien yang Anda gunakan untuk terhubung ke SQL Server memiliki akses Internet, Anda dapat menggunakan sqlmlutils untuk menemukan paket lem dan dependensi apa pun melalui Internet, lalu menginstal paket ke instans SQL Server dari jarak jauh.

  1. Di komputer klien, buka RStudio dan buat file Skrip R baru.

  2. Gunakan skrip R berikut untuk menginstal paket lem menggunakan sqlmlutils. Ganti informasi koneksi database SQL Server Anda sendiri.

    library(sqlmlutils)
    connection <- connectionInfo(
      server   = "server",
      database = "database",
      uid      = "username",
      pwd      = "password")
    
    sql_install.packages(connectionString = connection, pkgs = "glue", verbose = TRUE, scope = "PUBLIC")
    

    Tip

    Cakupannya dapat berupa PUBLIK atau PRIVAT. Cakupan publik berguna bagi administrator database untuk menginstal paket yang dapat digunakan semua pengguna. Cakupan privat membuat paket hanya tersedia untuk pengguna yang menginstalnya. Jika Anda tidak menentukan cakupan, cakupan defaultnya adalah PRIVATE.

Menambahkan paket secara offline

Jika komputer klien tidak memiliki koneksi Internet, Anda dapat menggunakan miniCRAN untuk mengunduh paket lem menggunakan komputer yang memang memiliki akses Internet. Anda kemudian menyalin paket ke komputer klien tempat Anda dapat menginstal paket secara offline. Lihat Menginstal miniCRAN untuk informasi tentang menginstal miniCRAN.

Pada komputer dengan akses Internet:

  1. Jalankan skrip R berikut untuk membuat repositori lokal untuk lem. Contoh ini membuat folder repositori di c:\downloads\glue.

    library("miniCRAN")
    CRAN_mirror <- c(CRAN = "https://cran.microsoft.com")
    local_repo <- "c:/downloads/glue"
    pkgs_needed <- "glue"
    pkgs_expanded <- pkgDep(pkgs_needed, repos = CRAN_mirror);
    
    makeRepo(pkgs_expanded, path = local_repo, repos = CRAN_mirror, type = "win.binary", Rversion = "3.5");
    
    library("miniCRAN")
    CRAN_mirror <- c(CRAN = "https://cran.microsoft.com")
    local_repo <- "c:/downloads/glue"
    pkgs_needed <- "glue"
    pkgs_expanded <- pkgDep(pkgs_needed, repos = CRAN_mirror);
    
    makeRepo(pkgs_expanded, path = local_repo, repos = CRAN_mirror, type = "source", Rversion = "3.5");
    

    Untuk nilainyaRversion, gunakan versi R yang diinstal pada SQL Server. Untuk memverifikasi versi yang diinstal, gunakan perintah T-SQL berikut.

    EXECUTE sp_execute_external_script @language = N'R'
     , @script = N'print(R.version)'
    
  2. Salin seluruh folder repositori lem (c:\downloads\glue) ke komputer klien. Misalnya, salin ke folder c:\temp\packages\glue.

Pada komputer klien:

  1. Buka RStudio dan buat file Skrip R baru.

  2. Gunakan skrip R berikut untuk menginstal paket lem menggunakan sqlmlutils. Ganti informasi koneksi database SQL Server Anda sendiri (jika Anda tidak menggunakan Autentikasi Windows, tambahkan uid dan pwd parameter).

    library(sqlmlutils)
    connection <- connectionInfo(
      server= "yourserver",
      database = "yourdatabase")
    localRepo = "c:/temp/packages/glue"
    
    sql_install.packages(connectionString = connection, pkgs = "glue", verbose = TRUE, scope = "PUBLIC", repos=paste0("file:///",localRepo))
    

    Tip

    Cakupannya dapat berupa PUBLIK atau PRIVAT. Cakupan publik berguna bagi administrator database untuk menginstal paket yang dapat digunakan semua pengguna. Cakupan privat membuat paket hanya tersedia untuk pengguna yang menginstalnya. Jika Anda tidak menentukan cakupan, cakupan defaultnya adalah PRIVATE.

Menggunakan paket

Setelah paket lem diinstal, Anda dapat menggunakannya dalam skrip R di SQL Server dengan perintah T-SQL sp_execute_external_script.

  1. Buka Azure Data Studio dan sambungkan ke database SQL Server Anda.

  2. Jalankan perintah berikut:

    EXECUTE sp_execute_external_script @language = N'R'
        , @script = N'
    library(glue)
    
    name <- "Fred"
    birthday <- as.Date("2020-06-14")
    text <- glue(''My name is {name} '',
    ''and my birthday is {format(birthday, "%A, %B %d, %Y")}.'')
    
    print(text)
          ';
    

    Hasil

    My name is Fred and my birthday is Sunday, June 14, 2020.
    

Menghapus paket

Jika Anda ingin menghapus paket lem , jalankan skrip R berikut. Gunakan variabel koneksi yang sama dengan yang Anda tentukan sebelumnya.

sql_remove.packages(connectionString = connection, pkgs = "glue", scope = "PUBLIC")

Fungsi sqlmlutils lainnya

Paket sqlmlutils berisi sejumlah fungsi untuk mengelola paket R, dan untuk membuat, mengelola, dan menjalankan prosedur dan kueri tersimpan dalam SQL Server. Untuk detailnya, lihat file Sqlmlutils R README.

Untuk informasi tentang fungsi sqlmlutils apa pun, gunakan fungsi bantuan R atau operator ? . Contohnya:

library(sqlmlutils)
help("sql_install.packages")

Langkah berikutnya