Sinkronisasi paket R untuk SQL Server

Berlaku untuk: hanya SQL Server 2017 (14.x)

Versi RevoScaleR yang disertakan dalam SQL Server 2017 mencakup kemampuan untuk menyinkronkan koleksi paket R antara sistem file dan instans dan database tempat paket digunakan.

Fitur ini disediakan untuk mempermudah pencadangan koleksi paket R yang terkait dengan database SQL Server. Dengan menggunakan fitur ini, administrator dapat memulihkan tidak hanya database, tetapi paket R apa pun yang digunakan oleh ilmuwan data yang bekerja dalam database tersebut.

Artikel ini menjelaskan fitur sinkronisasi paket, dan cara menggunakan fungsi rxSyncPackages untuk melakukan tugas berikut:

  • Menyinkronkan daftar paket untuk seluruh database SQL Server

  • Menyinkronkan paket yang digunakan oleh pengguna individual, atau oleh sekelompok pengguna

  • Jika pengguna berpindah ke SQL Server yang berbeda, Anda dapat mengambil cadangan database kerja pengguna dan memulihkannya ke server baru, dan paket untuk pengguna akan diinstal ke dalam sistem file di server baru, seperti yang diperlukan oleh R.

Misalnya, Anda dapat menggunakan sinkronisasi paket dalam skenario ini:

  • DBA telah memulihkan instans SQL Server ke komputer baru dan meminta pengguna untuk terhubung dari klien R mereka dan menjalankan rxSyncPackages untuk menyegarkan dan memulihkan paket mereka.

  • Anda pikir paket R pada sistem file rusak sehingga Anda menjalankan rxSyncPackages pada SQL Server.

Persyaratan

Sebelum dapat menggunakan sinkronisasi paket, Anda harus memiliki versi Microsoft R yang sesuai. Fitur ini disediakan di Microsoft R versi 9.1.0 atau yang lebih baru.

Anda juga harus mengaktifkan fitur manajemen paket di server.

Menentukan apakah server Anda mendukung manajemen paket

Fitur ini tersedia di SQL Server CTP 2 2017 atau yang lebih baru.

Mengaktifkan fitur manajemen paket

Untuk menggunakan sinkronisasi paket mengharuskan fitur manajemen paket baru diaktifkan pada instans SQL Server, dan pada database individual. Untuk informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan manajemen paket untuk SQL Server.

  1. Administrator server mengaktifkan fitur untuk instans SQL Server.
  2. Untuk setiap database, administrator memberi pengguna individu kemampuan untuk menginstal atau berbagi paket R, menggunakan peran database.

Setelah ini selesai, Anda dapat menggunakan fungsi RevoScaleR, seperti rxInstallPackages untuk menginstal paket ke dalam database. Informasi tentang pengguna dan paket yang dapat mereka gunakan disimpan dalam instans SQL Server.

Setiap kali Anda menambahkan paket baru menggunakan fungsi manajemen paket, rekaman di SQL Server dan sistem file diperbarui. Informasi ini dapat digunakan untuk memulihkan informasi paket untuk seluruh database.

Izin

  • Orang yang menjalankan fungsi sinkronisasi paket harus menjadi prinsip keamanan pada instans SQL Server dan database yang memiliki paket.

  • Pemanggil fungsi harus menjadi anggota salah satu peran manajemen paket ini: rpkgs-shared atau rpkgs-private.

  • Untuk menyinkronkan paket yang ditandai sebagai bersama, orang yang menjalankan fungsi harus memiliki keanggotaan dalam peran rpkgs-shared , dan paket yang sedang dipindahkan harus diinstal ke pustaka cakupan bersama.

  • Untuk menyinkronkan paket yang ditandai sebagai privat, pemilik paket atau administrator harus menjalankan fungsi, dan paket harus bersifat privat.

  • Untuk menyinkronkan paket atas nama pengguna lain, pemilik harus menjadi anggota peran database db_owner .

Cara kerja sinkronisasi paket

Untuk menggunakan sinkronisasi paket, panggil rxSyncPackages, yang merupakan fungsi baru di RevoScaleR.

Untuk setiap panggilan ke rxSyncPackages, Anda harus menentukan instans dan database SQL Server. Kemudian, cantumkan paket untuk disinkronkan, atau tentukan cakupan paket.

  1. Buat konteks komputasi SQL Server dengan menggunakan RxInSqlServer fungsi . Jika Anda tidak menentukan konteks komputasi, konteks komputasi saat ini akan digunakan.

  2. Berikan nama database pada instans dalam konteks komputasi yang ditentukan. Paket disinkronkan per database.

  3. Tentukan paket yang akan disinkronkan dengan menggunakan argumen cakupan.

    Jika Anda menggunakan cakupan privat , hanya paket yang dimiliki oleh pemilik yang ditentukan yang disinkronkan. Jika Anda menentukan cakupan bersama , semua paket non-privat dalam database disinkronkan.

    Jika Anda menjalankan fungsi tanpa menentukan cakupan privat atau bersama , semua paket disinkronkan.

  4. Jika perintah berhasil, paket yang ada dalam sistem file ditambahkan ke database, dengan cakupan dan pemilik yang ditentukan.

    Jika sistem file rusak, paket dipulihkan berdasarkan daftar yang dipertahankan dalam database.

    Jika fitur manajemen paket tidak tersedia pada database target, kesalahan muncul: "Fitur manajemen paket tidak diaktifkan pada SQL Server atau versi terlalu lama"

Contoh 1. Menyinkronkan semua paket menurut database

Contoh ini mendapatkan paket baru dari sistem file lokal dan menginstal paket dalam database [TestDB]. Karena tidak ada pemilik yang spesifik, daftar ini mencakup semua paket yang telah diinstal untuk cakupan privat dan bersama.

connectionString <- "Driver=SQL Server;Server=myServer;Database=TestDB;Trusted_Connection=True;"
computeContext <- RxInSqlServer(connectionString = connectionString )
rxSyncPackages(computeContext=computeContext, verbose=TRUE)

Contoh 2. Membatasi paket yang disinkronkan berdasarkan cakupan

Contoh berikut hanya menyinkronkan paket dalam cakupan yang ditentukan.

#Shared scope
rxSyncPackages(computeContext=computeContext, scope="shared", verbose=TRUE)

#Private scope
rxSyncPackages(computeContext=computeContext, scope="private", verbose=TRUE)

Contoh 3. Membatasi paket yang disinkronkan oleh pemilik

Contoh berikut menunjukkan cara menyinkronkan hanya paket yang diinstal untuk pengguna tertentu. Dalam contoh ini, pengguna diidentifikasi dengan nama masuk SQL, user1.

rxSyncPackages(computeContext=computeContext, scope="private", owner = "user1", verbose=TRUE))

Manajemen paket R untuk SQL Server