スケーラブルなデータ処理とは?

Rで学ぶスケーラブルなデータ処理

Michael J. Kane and Simon Urbanek

Instructors, DataCamp

このコースの内容

  • コンピューターのRAMを超える大規模データを扱う
  • スケーラブルなコードを書く
  • データをチャンクに分けてインポート・処理する
Rで学ぶスケーラブルなデータ処理

RAM

すべてのRオブジェクトはRAMに格納されます

Rで学ぶスケーラブルなデータ処理

Rで学ぶスケーラブルなデータ処理

変数の最大サイズは?

「RはコンピューターのRAMの10〜20%を超えるデータの処理には適していない。」— R インストール・管理マニュアル

Rで学ぶスケーラブルなデータ処理

スワッピングは非効率

  • RAMが不足するとデータはディスクに移動される
  • ディスクはRAMより大幅に遅いため、実行時間が増加する
Rで学ぶスケーラブルなデータ処理

スケーラブルな解決策

  • サブセットをRAMに読み込む
  • サブセットを処理する
  • 結果を保持し、サブセットを破棄する
Rで学ぶスケーラブルなデータ処理

コードが遅い原因は?

  • 計算の複雑さ

  • 高速でスケーラブルなコードのためにディスク操作を慎重に検討する

Rで学ぶスケーラブルなデータ処理

パフォーマンスのベンチマーク

library(microbenchmark)

microbenchmark( rnorm(100), rnorm(10000) )
Unit: microseconds
         expr    min      lq     mean  median      uq     max neval
   rnorm(100)   7.84   8.440   9.5459   8.773   9.355   29.56   100
 rnorm(10000) 679.51 683.706 755.5693 690.876 712.416 2949.03   100
Rで学ぶスケーラブルなデータ処理

練習しましょう!

Rで学ぶスケーラブルなデータ処理

Preparing Video For Download...