Maison  >  Article  >  développement back-end  >  Exportez des millions de données au format CSV avec plusieurs processus en une minute et téléchargez-les sur OSS

Exportez des millions de données au format CSV avec plusieurs processus en une minute et téléchargez-les sur OSS

藏色散人
藏色散人avant
2023-04-20 15:30:511600parcourir

Cet article vous apporte des connaissances pertinentes sur PHP. Il explique principalement comment exporter des millions de données au format CSV et les télécharger sur OS en plus d'une minute. Les amis intéressés peuvent y jeter un œil ensemble, j'espère que cela sera utile à tout le monde.

Exigences

  1. Le produit doit exporter les journaux de marche de certains utilisateurs d'une certaine équipe vers un fichier csv, et cela doit être dans un seul fichier, et cela doit être rapide et pas trop long.

Problème

  1. Les journaux signifient souvent de grandes quantités de données.
  2. Pour l'importer dans un fichier, même si le volume de données est important, il peut toujours être résolu. Il ne s'agit que de paginer une requête et d'écrire au format CSV.
  3. C'est rapide et rapide. Cela peut également résoudre le problème de l'exportation de plusieurs fichiers via plusieurs processus. Ce n'est pas difficile, mais l'exigence est d'un seul fichier !

Solution

  1. Interrogez d'abord la quantité totale de données à exporter
  2. Placez-la dans la file d'attente par lots pour lancer plusieurs requêtes de consommateurs et écrivez-les dans plusieurs CSV.
  3. Enregistrez le chemin CSV spécifique et le nom de fichier écrit par chaque file d'attente lors de la publication dans la file d'attente.
  4. Utilisez les caractéristiques de la file d'attente batch pour fusionner les multiples csv enregistrés à l'étape précédente en un seul csv dans l'ordre lorsque l'exécution est terminée.
  5. Une fois la fusion terminée, supprimez les multiples csv avant de fusionner, conservez le csv fusionné et. téléchargez-le sur oss

Résultats

Après avoir testé plus de 500 000 éléments de données, chaque file d'attente de la file d'attente par lots se voit attribuer 50 000 éléments de données à traiter. Cela prend moins d'une minute pour terminer un processus. Cela dépend de la façon dont le serveur peut être démarré. Combien de consommateurs et combien de processus ? Lorsque j'ai testé, j'ai utilisé la stratégie automatique. Le nombre le plus élevé était de 8 consommateurs s'exécutant en même temps.

Exportez des millions de données au format CSV avec plusieurs processus en une minute et téléchargez-les sur OSS

Apprentissage recommandé : "tutoriel vidéo laravel"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer