この記事は、PHP に関する関連知識を提供します。主に、数百万のデータを CSV にエクスポートし、それを 1 分以上で OSS にアップロードする方法を紹介します。興味のある友人は参照してください。皆さんも協力していただければ幸いです。 。
要件
- この製品は、特定のチームの特定のユーザーの歩行ログを csv ファイルにエクスポートする必要があり、それは 1 つのファイルにまとめられ、速度が速い必要があります。時間もかかりません。
問題
- ログは多くの場合、大量のデータを意味します。
- ファイルにインポートする場合は、データ量が多くてもページングクエリとcsv書き込みだけで解決します。
- 速度も速く、時間も短く、複数のファイルを複数のプロセスでエクスポートすることでも解決できます。難しいことはありませんが、必要なファイルは 1 つだけです。
ソリューションのアイデア
- まず、エクスポートするデータの総量をクエリします。
- それをバッチ キューに入れて、複数のコンシューマー クエリを開始し、書き込みます。複数の CSV。
- キューに投稿するときに各キューによって書き込まれる特定の CSV パスとファイル名を記録します。
- バッチキューの特性を利用して、前手順で記録した複数のcsvを実行完了時に順番に1つのcsvに結合します。
- 結合が完了したら、複数のcsvを削除します。マージされた CSV を保持し、oss にアップロードします。
Result
500,000 を超えるデータをテストした後、バッチ キュー内の各キューには、処理する 50,000 個のデータが割り当てられます。プロセスが完了します 所要時間は 1 分未満です。この方法がどのくらい速いかは、サーバーが開始できるコンシューマとプロセスの数によって決まります。テストしたときは自動戦略を使用しましたが、同時に実行できるコンシューマは最大 8 つでした。
推奨学習: 「laravel ビデオ チュートリアル 」
以上が複数のプロセスを使用して数百万のデータを 1 分で CSV にエクスポートし、OSS にアップロードしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。