一分钟多进程百万数据导出到csv并上传到oss

藏色散人
发布: 2023-04-20 15:32:01
转载
1511 人浏览过

本篇文章给大家带来了关于php的相关知识,其中主要跟大家介绍怎么做到一分钟多进程百万数据导出到csv并上传到oss,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

需求

  1. 产品要导出某个团队某些用户的步行日志到csv文件里,并且要在一个文件内,而且速度要快不能太耗时间。

问题

  1. 日志往往意味着数据量大。
  2. 要导在一个文件内,数据量虽然大也能解决,无非就是分页查询并写入csv。
  3. 速度快时间短,也能解决无非就是多进程导出多个文件,没有什么难的,但是需求是一个文件!

解决思路

  1. 先查询出要导出的数据总量
  2. 投入到批次队列里面启动多个消费者查询并写入到多个csv里面。
  3. 投递队列时记录每个队列写入的csv具体路径和文件名称。
  4. 利用批次队列的特性在执行完毕时,把上一步记录的多个csv按照顺序合并到一个csv里面
  5. 合并完成之后,删除合并前的多个csv,保留合并的csv并上传到oss

结果

经过测试50多万数据,批次队列里面每个队列分配5万条数据去处理,走完一个流程耗时不到一分钟,这种方式有多快取决于服务器能启动多少个消费者多少个进程,我测试时用的是自动策略,最高是同时8个消费者在执行。

4d1faaacf31f732ea38b25fedd0feb3.png

推荐学习:《laravel视频教程

以上是一分钟多进程百万数据导出到csv并上传到oss的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
php
来源:learnku.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!