質問 > 管理機能 > 大容量のCSV出力について |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
annpiro |
投稿日時: 2011/6/22 22:27
対応状況: −−−
|
新米 登録日: 2010/6/7 居住地: 投稿: 7 |
大容量のCSV出力について ECCUBEの20万件の顧客データのある開発をおこなったのですが、
CSV出力にて、20万のデータが出力できません。 通常、どのようにすれば20万件のCSVを出力できるのか 大容量のシステムを開発したかたで、良い案がございますでしょうか。 メモリの値を増やしたらある程度の件数は増えるのですが、 今後、顧客が増えることも考えると、 メモリの増加だけで対応は無理と考えております。 configなどの設定値や、 ソースの改修でなにか良い方法をご存知でしたらお助けください。 |
yuse |
投稿日時: 2011/6/22 23:01
対応状況: −−−
|
一人前 登録日: 2011/2/13 居住地: 投稿: 76 |
Re: 大容量のCSV出力について こんにちわ。 出力が出来ないというのは、具体的にはどんな現象でしょうか タイムアウトになるとか、画面が白くなっちゃうとか・・ |
seasoft |
投稿日時: 2011/6/22 23:35
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 大容量のCSV出力について 20万件の規模だと、バッチ処理とした方が良さそうな気も (1行の情報量にもよりますが)。単純な形式なら、DBツール (psql や mysql など) で処理するのも有効かと思います。
バッチ処理にしても、PHP で処理するなら、フェッチさせたり、分割取得 (OFFSET & LIMIT) するなどしないと、いずれはリソース制限に引っかかるかも。
|
asayama |
投稿日時: 2011/6/23 9:16
対応状況: −−−
|
一人前 登録日: 2008/1/9 居住地: 東京都品川区 投稿: 150 |
Re: 大容量のCSV出力について phpのメモリで落ちたことがあります。
ini_set("memory_limit","-1"); とかですかね。
|
annpiro |
投稿日時: 2011/6/23 11:39
対応状況: −−−
|
新米 登録日: 2010/6/7 居住地: 投稿: 7 |
Re: 大容量のCSV出力について 返答ありがとうございます。
ある量のCSV出力をしようとすると、 画面が白くなります。 メモリのリミットを変更すると そのCSV出力できる範囲は増えるのですが、 メモリにも限度がありますので、 メモリを増やす以外の方法を考えたいと思っています。 |
annpiro |
投稿日時: 2011/6/23 11:49
対応状況: −−−
|
新米 登録日: 2010/6/7 居住地: 投稿: 7 |
Re: 大容量のCSV出力について ご返答ありがとうございます。
バッチ処理だと、リアルタイムな情報の取得は難しいので、 あまり取り入れたくないと考えています。 フェッチさせたり、分割取得 (OFFSET & LIMIT)を取り入る件、 ありがとうございます。 検討したいと思います。 上記とは別で、 出力ファイルをメモリに達しない量で分割して出力し、 その後、結合することは可能でしょうか。 |
annpiro |
投稿日時: 2011/6/23 11:51
対応状況: −−−
|
新米 登録日: 2010/6/7 居住地: 投稿: 7 |
Re: 大容量のCSV出力について ご返答ありがとうございます。
> ini_set("memory_limit","-1"); 上記、設定値をいくらか変更したのですが、 全体的にサーバが遅くなってしまうので。 ユーザー画面側は一定の状態は保ちつつ、 管理画面のみ有効ぎりぎりまで使用することって可能ではないのでしょうか。 |
seasoft |
投稿日時: 2011/6/23 12:34
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 大容量のCSV出力について > バッチ処理だと、リアルタイムな情報の取得は難しいので、
> あまり取り入れたくないと考えています。 WEB からキックをかけるような仕組みを用意すれば、2,3分程度でフィードバックを得るのは可能かと思います。 秒単位のリアルタイム性が必要な場合、難しいですが・・・ > 出力ファイルをメモリに達しない量で分割して出力し、 > その後、結合することは可能でしょうか。 現状の運用体制を把握していないので断言はできませんが、一般論としては可能だと思います。 例えば、どこまでを取得したかをセッションに保存して、繰り返しダウンロードを行うなど。
|
seasoft |
投稿日時: 2011/6/23 12:36
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 大容量のCSV出力について > ユーザー画面側は一定の状態は保ちつつ、
> 管理画面のみ有効ぎりぎりまで使用することって可能ではないのでしょうか。 アプリケーションサーバを1台追加して、PHP の負荷を分散&分離するといった方法は考えられそうです。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |