1

私は約3*10^6行11列のパネルデータのチャンクを操作しています。このデータはSQLデータベースに保存されます(私が使用するデータはさらに大きなデータセットのサブセットです)。すべてを一度にインポートせずにデータのチャンク(各日付を個別に)を処理したいのですが、各チャンクで実行する必要のある操作は計算量が多いため、foreachパッケージを使用したいと思います。

ただし、SQL呼び出しを並行して実行するといくつかの問題が発生します。()のような単純な呼び出しを行うと、sqlQuery(channel, "select 1")それを並行して実行できます。より複雑なステートメントを実行すると、SIGPIPEエラーが発生します。他の誰かが同様の問題に遭遇しましたか?

4

1 に答える 1

1

使用しているデータベースを教えてくれませんでした。RODBCに接続されたSQLServerで、トランザクションを使用してこれを正常に実行した場合。

channel = odbcConnect(database)
odbcSetAutoCommit(channel,FALSE)
# Make requests here
odbcEndTran(channel,TRUE) 

これがあなたの場合のようにリクエストを読んだだけの場合にも役立つかどうかはわかりませんが、追加の行がtwpしかないため、試してみる価値があるかもしれません。トランザクションはODBC下のMSSqlServerでうまく機能し、他のサーバーとはさまざまな結果が得られたため、サーバーについて質問しました(ただし、一生懸命努力しませんでした)。

于 2011-11-23T16:40:52.473 に答える