Bagikan melalui


Statistik ringkasan komputasi dalam R (tutorial SQL Server dan RevoScaleR)

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

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

Tutorial ini menggunakan sumber data dan konteks komputasi yang dibuat dalam tutorial sebelumnya untuk menjalankan skrip R bertenaga tinggi. Dalam tutorial ini, Anda akan menggunakan konteks komputasi server lokal dan jarak jauh untuk tugas-tugas berikut:

  • Mengalihkan konteks komputasi ke SQL Server
  • Mendapatkan statistik ringkasan pada objek data jarak jauh
  • Menghitung ringkasan lokal

Jika Anda menyelesaikan tutorial sebelumnya, Anda harus memiliki konteks komputasi jarak jauh ini: sqlCompute dan sqlComputeTrace. Ke depannya, Anda akan menggunakan sqlCompute dan konteks komputasi lokal dalam tutorial berikutnya.

Gunakan IDE R atau Rgui untuk menjalankan skrip R dalam tutorial ini.

Statistik ringkasan komputasi pada data jarak jauh

Sebelum dapat menjalankan kode R dari jarak jauh, Anda perlu menentukan konteks komputasi jarak jauh. Semua komputasi berikutnya terjadi pada komputer SQL Server yang ditentukan dalam parameter sqlCompute .

Konteks komputasi tetap aktif hingga Anda mengubahnya. Namun, skrip R apa pun yang tidak dapat berjalan dalam konteks server jarak jauh akan secara otomatis berjalan secara lokal.

Untuk melihat cara kerja konteks komputasi, hasilkan statistik ringkasan pada sumber data sqlFraudDS di SQL Server jarak jauh. Objek sumber data ini dibuat dalam tutorial dua dan mewakili tabel ccFraudSmall dalam database RevoDeepDive.

  1. Alihkan konteks komputasi ke sqlCompute yang dibuat dalam tutorial sebelumnya:

    rxSetComputeContext(sqlCompute)
    
  2. Panggil fungsi rxSummary dan berikan argumen yang diperlukan, seperti rumus dan sumber data, dan tetapkan hasilnya ke variabel sumOut.

    sumOut <- rxSummary(formula = ~gender + balance + numTrans + numIntlTrans + creditLine, data = sqlFraudDS)
    

    Bahasa R menyediakan banyak fungsi ringkasan, tetapi rxSummary di RevoScaleR mendukung eksekusi pada berbagai konteks komputasi jarak jauh, termasuk SQL Server. Untuk informasi tentang fungsi serupa, lihat Ringkasan data menggunakan RevoScaleR.

  3. Cetak konten sumOut ke konsol.

    sumOut
    

    Catatan

    Jika Anda mendapatkan kesalahan, tunggu beberapa menit hingga eksekusi selesai sebelum mencoba kembali perintah.

Hasil

Summary Statistics Results for: ~gender + balance + numTrans + numIntlTrans + creditLine
Data: sqlFraudDS (RxSqlServerData Data Source)
Number of valid observations: 10000

 Name  Mean    StdDev  Min Max ValidObs    MissingObs
 balance       4075.0318 3926.558714            0   25626 100000
 numTrans        29.1061   26.619923 0     100 10000    0           100000
 numIntlTrans     4.0868    8.726757 0      60 10000    0           100000
 creditLine       9.1856    9.870364 1      75 10000    0          100000
 
 Category Counts for gender
 Number of categories: 2
 Number of valid observations: 10000
 Number of missing observations: 0

 gender Counts
  Male   6154
  Female 3846

Membuat ringkasan lokal

  1. Ubah konteks komputasi untuk melakukan semua pekerjaan Anda secara lokal.

    rxSetComputeContext ("local")
    
  2. Saat mengekstrak data dari SQL Server, Anda sering kali bisa mendapatkan performa yang lebih baik dengan meningkatkan jumlah baris yang diekstrak untuk setiap bacaan, dengan asumsi peningkatan ukuran blok dapat diakomodasi dalam memori. Jalankan perintah berikut untuk meningkatkan nilai parameter rowsPerRead pada sumber data. Sebelumnya, nilai rowsPerRead diatur ke 5000.

    sqlServerDS1 <- RxSqlServerData(
       connectionString = sqlConnString,
       table = sqlFraudTable,
       colInfo = ccColInfo,
       rowsPerRead = 10000)
    
  3. Panggil rxSummary pada sumber data baru.

    rxSummary(formula = ~gender + balance + numTrans + numIntlTrans + creditLine, data = sqlServerDS1)
    

    Hasil aktual harus sama seperti ketika Anda menjalankan rxSummary dalam konteks komputer SQL Server. Namun, operasi mungkin lebih cepat atau lebih lambat. Banyak tergantung pada koneksi ke database Anda, karena data sedang ditransfer ke komputer lokal Anda untuk dianalisis.

  4. Beralih kembali ke konteks komputasi jarak jauh untuk beberapa tutorial berikutnya.

    rxSetComputeContext(sqlCompute)
    

Langkah berikutnya