質問

投稿者:野崎@キャル
登録日:2025年5月22日(木)

一括出力取得で得られた100MiBのファイルを編集したい

テーブルAからテーブルBへデータを移行する処理を、スケジュールトリガで起動するPHPプログラムで実装しようとしています。 対象データは数万から数十万件になるため、一括出力(Record Export)して、そのデータを一括登録(Record BatchInsert)しようと考えています。 その際、全フィールドではなく特定のフィールドのデータのみ移行しています。さらにそうすると重複するデータが生まれるので重複データは除外するという処理を加えています。 この場合、一括出力で得られたデータはgzipでエンコードされてるので、データを扱うためにはデコードする必要があると考えています。 そこでgzdecodeでデコードしようとしてるのですが、どうやらここでエラーになってしまいます。 具体的なエラーメッセージがないので、推測なのですが、メモリー制限に抵触してエラーになっていると考えています。 そこで以下の質問です。 (1)gzdecodeはmemory_limitの設定値に影響受けると思うのですが、この値はいくつに設定されてますか? (2)そもそもExportした100MiBのデータをプログラムの中で編集して別テーブルに登録するということは可能ですか? 以上、ご回答よろしくお願いします。

更新日:2025年5月22日(木)
  • 1
いいね

コメント

  • ご質問ありがとうございます。 > (1)gzdecodeはmemory_limitの設定値に影響受けると思うのですが、この値はいくつに設定されてますか? 恐れ入りますが、memory_limitの値につきましては開示しておりませんので、ご了承いただけますと幸いです。 上限についてはお伝え出来かねますが、当社で想定している一般的なPHP処理(1~10MB程度)は問題なく行えることを確認しております。 > (2)そもそもExportした100MiBのデータをプログラムの中で編集して別テーブルに登録するということは可能ですか? メモリ上限やPHPの実行時間制限(30秒)の観点から、記載いただいた処理の実行は難しいかと存じます。 恐れ入りますが、スケジュールトリガの間隔を狭めて、一回の処理件数を少なくしていただき、少しづつ処理する方法をご検討くださいませ。 可能でしたら、PHPの処理をSPIRALとは別の外部サーバーで行っていただくことで、外部サーバーで設定された実行時間制限のもとで処理を行っていただくことも可能でございます。

    • いいね
    2025年5月22日(木)
あなたもログインして、
回答してみませんか?