Bagikan melalui


Memuat data ke dalam memori menggunakan rxImport (tutorial SQL Server dan RevoScaleR)

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru

Ini adalah tutorial 10 dari seri tutorial RevoScaleR tentang cara menggunakan fungsi RevoScaleR dengan SQL Server.

Dalam tutorial ini, Anda akan mempelajari cara mendapatkan data dari SQL Server, lalu menggunakan fungsi rxImport untuk memasukkan data yang menarik ke dalam file lokal. Dengan begitu, Anda dapat menganalisisnya dalam konteks komputasi lokal berulang kali, tanpa harus mengkueri ulang database.

Fungsi rxImport dapat digunakan untuk memindahkan data dari sumber data ke bingkai data dalam memori sesi, atau ke file XDF pada disk. Jika Anda tidak menentukan file sebagai tujuan, data dimasukkan ke dalam memori sebagai bingkai data.

Mengekstrak subset data dari SQL Server ke memori lokal

Anda telah memutuskan bahwa Anda hanya ingin memeriksa individu berisiko tinggi secara lebih rinci. Tabel sumber di SQL Server besar, jadi Anda ingin mendapatkan informasi hanya tentang pelanggan berisiko tinggi. Anda kemudian memuat data tersebut ke dalam bingkai data dalam memori stasiun kerja lokal.

  1. Reset konteks komputasi ke stasiun kerja lokal Anda.

    rxSetComputeContext("local")
    
  2. Buat objek sumber data SQL Server baru, memberikan pernyataan SQL yang valid di parameter sqlQuery . Contoh ini mendapatkan subset pengamatan dengan skor risiko tertinggi. Dengan begitu, hanya data yang benar-benar Anda butuhkan yang dimasukkan ke dalam memori lokal.

    sqlServerProbDS \<- RxSqlServerData(
        sqlQuery = paste("SELECT * FROM ccScoreOutput2",
        "WHERE (ccFraudProb > .99)"),
        connectionString = sqlConnString)
    
  3. Panggil fungsi rxImport untuk membaca data ke dalam bingkai data dalam sesi R lokal.

    highRisk <- rxImport(sqlServerProbDS)
    

    Jika operasi berhasil, Anda akan melihat pesan status seperti ini: "Baris Dibaca: 35, Total Baris Yang Diproses: 35, Total Waktu Gugus: 0,036 detik"

  4. Sekarang setelah pengamatan berisiko tinggi berada dalam bingkai data dalam memori, Anda dapat menggunakan berbagai fungsi R untuk memanipulasi bingkai data. Misalnya, Anda dapat memesan pelanggan dengan skor risiko mereka, dan mencetak daftar pelanggan yang menimbulkan risiko tertinggi.

    orderedHighRisk <- highRisk[order(-highRisk$ccFraudProb),]
    row.names(orderedHighRisk) <- NULL
    head(orderedHighRisk)
    

Hasil

ccFraudLogitScore   state gender cardholder balance numTrans numIntlTrans creditLine ccFraudProb1
9.786345    SD   Male  Principal   23456       25            5 75   0.99994382
9.433040    FL Female  Principal   20629       24           28 75   0.99992003
8.556785    NY Female  Principal   19064       82           53 43   0.99980784
8.188668    AZ Female  Principal   19948       29            0 75   0.99972235
7.551699    NY Female  Principal   11051       95            0 75   0.99947516
7.335080    NV   Male  Principal   21566        4            6  75   0.9993482

Lebih lanjut tentang rxImport

Anda dapat menggunakan rxImport tidak hanya untuk memindahkan data, tetapi untuk mengubah data dalam proses membacanya. Misalnya, Anda dapat menentukan jumlah karakter untuk kolom lebar tetap, memberikan deskripsi variabel, mengatur tingkat untuk kolom faktor, dan bahkan membuat tingkat baru untuk digunakan setelah mengimpor.

Fungsi rxImport menetapkan nama variabel ke kolom selama proses impor, tetapi Anda dapat menunjukkan nama variabel baru dengan menggunakan parameter colInfo , atau mengubah jenis data menggunakan parameter colClasses .

Dengan menentukan operasi tambahan dalam parameter transformasi , Anda dapat melakukan pemrosesan dasar pada setiap potongan data yang dibaca.

Langkah berikutnya