次の方法で共有


R での概要統計情報の計算 (SQL Server および RevoScaleR チュートリアル)

適用対象: SQL Server 2016 (13.x) 以降のバージョン

これは、SQL Server で RevoScaleR 関数を使用する方法についての RevoScaleR チュートリアル シリーズのチュートリアル 5 です。

このチュートリアルでは、前のチュートリアルで作成した確立したデータ ソースとコンピューティング コンテキストを使用して、高性能な R スクリプトを実行します。 このチュートリアルでは、次のタスクのために、ローカルとリモートのサーバー コンピューティング コンテキストを使用します。

  • コンピューティング コンテキストを SQL Server に切り替える
  • リモート データ オブジェクトに関する概要の統計情報を取得する
  • ローカル 概要を計算する

前のチュートリアルを完了している場合は、sqlCompute および sqlComputeTrace というリモート コンピューティング コンテキストがあるはずです。 この後のチュートリアルで、sqlCompute とローカル コンピューティング コンテキストを使用します。

このチュートリアルでは、R IDE または Rgui を使用して R スクリプトを実行します。

リモート データに関する概要の統計情報を計算する

R コードをリモートで実行する前に、リモート コンピューティング コンテキストを指定する必要があります。 sqlCompute パラメーターに指定されている SQL Server コンピューターで後続のすべての計算が行われます。

コンピューティング コンテキストは、変更するまでアクティブな状態が維持されます。 ただし、リモート サーバー コンテキストで実行できない R スクリプトは自動的にローカルで実行されます。

コンピューティング コンテキストがどのように動作するかを確認するには、リモート SQL Server で sqlFraudDS データ ソースに関する概要の統計情報を生成します。 このデータ ソース オブジェクトはチュートリアル 2 で作成され、RevoDeepDive データベースの ccFraudSmall テーブルを表しています。

  1. 前のチュートリアルで作成した sqlCompute にコンピューティング コンテキストを切り替えます。

    rxSetComputeContext(sqlCompute)
    
  2. rxSummary 関数を呼び出し、式やデータ ソースなど、必須の引数を渡し、結果を変数 sumOut に代入します。

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

    R 言語はさまざまな概要関数を提供しますが、RevoScaleRrxSummary は、SQL Server を含む、さまざまなリモート コンピューティング コンテキストでの実行をサポートします。 同様の関数に関する詳細については、RevoScaleR を使用したデータの概要を参照してください。

  3. SumOut の内容をコンソールに印刷します。

    sumOut
    

    注意

    エラーが発生した場合は、実行が完了するまで数分待ってから、コマンドを再試行してください。

結果

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

ローカル 概要を作成する

  1. すべての作業をローカルに行うように計算コンテキストを変更します。

    rxSetComputeContext ("local")
    
  2. SQL Server からデータを抽出するときに、多くの場合、読み取りごとに抽出される行の数を増やすことで、パフォーマンスを向上させることができます。これは、増加したブロック サイズをメモリ内に確保できることを前提としています。 次のコマンドを実行して、データ ソースで rowsPerRead パラメーターの値を大きくします。 これまでは、 rowsPerRead の値は 5000 に設定されていました。

    sqlServerDS1 <- RxSqlServerData(
       connectionString = sqlConnString,
       table = sqlFraudTable,
       colInfo = ccColInfo,
       rowsPerRead = 10000)
    
  3. 新しいデータ ソースに対して rxSummary を呼び出します。

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

    実際の結果は、 コンピューターのコンテキストで rxSummary SQL Server を実行した場合と同じになるはずです。 ただし、処理は速くなる場合と遅くなる場合があります。 データは分析のためのローカル コンピューターに転送されるので、処理速度はデータベースへの接続に左右されます。

  4. 次のいくつかのチュートリアルでは、リモート コンピューティング コンテキストに戻ります。

    rxSetComputeContext(sqlCompute)
    

次のステップ