Sinkronisasi paket R untuk SQL Server
Berlaku untuk: SQL Server 2017 (14.x) saja
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 bukan 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-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 me-refresh dan memulihkan paket mereka.Anda pikir paket R pada sistem file rusak sehingga Anda menjalankan
rxSyncPackages
di 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 2017 CTP 2 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.
- Administrator server mengaktifkan fitur untuk instans SQL Server.
- Untuk setiap database, administrator memberi pengguna individual 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 dari 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 berbagi rpkg, dan paket yang dipindahkan harus diinstal ke pustaka cakupan bersama.
Untuk menyinkronkan paket yang ditandai sebagai privat, pemilik paket atau administrator harus menjalankan fungsi, dan paket harus 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.
Buat konteks komputasi SQL Server dengan menggunakan
RxInSqlServer
fungsi . Jika Anda tidak menentukan konteks komputasi, konteks komputasi saat ini akan digunakan.Berikan nama database pada instans dalam konteks komputasi yang ditentukan. Paket disinkronkan per database.
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.
Jika perintah berhasil, paket yang ada dalam sistem file ditambahkan ke database, dengan cakupan dan pemilik yang ditentukan.
Jika sistem file rusak, paket akan dipulihkan berdasarkan daftar yang dipertahankan dalam database.
Jika fitur manajemen paket tidak tersedia pada database target, kesalahan dimunculkan: "Fitur manajemen paket tidak diaktifkan di 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 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 menurut 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 oleh nama masuk SQL, user1.
rxSyncPackages(computeContext=computeContext, scope="private", owner = "user1", verbose=TRUE))