8
私はOracleデータベースを使用しており、3000万レコードのテーブルをフェッチするのが好きです。sqlFetch()を高速化する
library(RODBC)
ch <- odbcConnect("test", uid="test_user",
pwd="test_pwd",
believeNRows=FALSE, readOnly=TRUE)
db <- sqlFetch(ch, "test_table")
この処理には1074.58秒が必要です。したがって、3000万レコードすべてでかなりの時間がかかります。プロセスをスピードアップする可能性はありますか?
私は助けていただきありがとうございます。ありがとう。
Oracleに対するRODBCは狂っています。データベースの最後にあるローカルcsvにダンプし、ネットワークファイル共有を介して転送し、sqldf :: read.csv.sql経由でRにロードします。参照:http://www.cerebralmastication.com/2009/11/loading-big-data-into-r/ – Hansi
リンクをありがとう。あなたは "喜び"のパッケージがパフォーマンスの点で優れているかどうか、経験はありますか?私にとっては、ダンプを作成するのは直感的ではないようです。 – majom
@majom仕事では、Oracleデータウェアハウスに対してクエリを作成し、データをRに引き込む必要があります。私は奇跡を起こして実行することはできませんでした。 sqlFetchの代わりに、私は必要なデータを取得するためのターゲットクエリを書き込もうとします。これにより、データ転送(ビット単位)が最小限に抑えられ、Oracleのデータベース内速度が活用されます。私は自分のものと同じ大きさのデータでは働かないので、私のプロセスは私のニーズに合っています(今のところ)。理想的ではありませんが、機能します。 – Btibert3