バージョン選択

フォーラム

メニュー

オンライン状況

59 人のユーザが現在オンラインです。 (41 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 59
もっと...

サイト内検索

質問 > 管理機能 > 大容量の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) するなどしないと、いずれはリソース制限に引っかかるかも。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

asayama
投稿日時: 2011/6/23 9:16
対応状況: −−−
一人前
登録日: 2008/1/9
居住地: 東京都品川区
投稿: 150
Re: 大容量のCSV出力について
phpのメモリで落ちたことがあります。

ini_set("memory_limit","-1");
とかですかね。


----------------
株式会社システムフレンド
朝山俊雄

改造専門店・EC-CUBE工房
http://ec-cube.systemfriend.co.jp/

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
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

seasoft
投稿日時: 2011/6/23 12:36
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 大容量のCSV出力について
> ユーザー画面側は一定の状態は保ちつつ、
> 管理画面のみ有効ぎりぎりまで使用することって可能ではないのでしょうか。

アプリケーションサーバを1台追加して、PHP の負荷を分散&分離するといった方法は考えられそうです。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,263名です
総投稿数は110,059件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1299
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.