>백엔드 개발 >PHP 튜토리얼 >여러 프로세스를 통해 수백만 개의 데이터를 1분 안에 csv로 내보내고 oss에 업로드

여러 프로세스를 통해 수백만 개의 데이터를 1분 안에 csv로 내보내고 oss에 업로드

藏色散人
藏色散人앞으로
2023-04-20 15:30:511630검색

이 기사는 PHP에 대한 관련 지식을 제공합니다. 수백만 개의 데이터를 csv로 내보내고 1분 이상 oss에 업로드하는 방법을 주로 소개합니다. 관심 있는 친구들이 함께 살펴보시기 바랍니다.

요구 사항

  1. 특정 팀의 특정 사용자의 산책 기록을 csv 파일로 내보내야 하는 제품이어야 하며, 하나의 파일로 이루어져야 하며 속도가 빠르고 시간이 많이 걸리지 않아야 합니다.

문제

  1. 로그는 종종 많은 양의 데이터를 의미합니다.
  2. 파일로 가져오려면 데이터 볼륨이 크더라도 페이징 쿼리와 csv에 쓰는 것 외에는 문제가 해결되지 않습니다.
  3. 빠르고 시간도 짧습니다. 여러 프로세스를 통해 여러 파일을 내보내는 문제도 해결할 수 있지만 요구 사항은 하나의 파일입니다!

해결 방법

  1. 내보낼 총 데이터 양을 먼저 쿼리하세요
  2. 일괄 대기열에 넣어 여러 소비자 쿼리를 시작하고 여러 csv에 쓰세요.
  3. 큐에 게시할 때 각 큐에서 작성한 특정 csv 경로와 파일 이름을 기록하세요.
  4. 배치 큐의 특성을 이용하여 이전 단계에서 기록된 여러 csv를 실행이 완료되면 순서대로 하나의 csv로 병합합니다.
  5. 병합이 완료된 후 병합 전에 여러 csv를 삭제하고 병합된 csv를 유지합니다. oss에 업로드하세요

Results

500,000개 이상의 데이터를 테스트한 후 배치 큐의 각 큐에 50,000개의 데이터가 할당되어 처리가 완료됩니다. 서버가 얼마나 빨리 시작될 수 있는지에 따라 다릅니다. 테스트할 때 자동 전략을 사용했을 때 동시에 실행되는 소비자 수는 8명이었습니다.

여러 프로세스를 통해 수백만 개의 데이터를 1분 안에 csv로 내보내고 oss에 업로드

추천 학습: "laravel 비디오 튜토리얼"

위 내용은 여러 프로세스를 통해 수백만 개의 데이터를 1분 안에 csv로 내보내고 oss에 업로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제