XML est le meilleur format d'échange de données lors de l'importation de grandes quantités de données comme une routine scénarisé en PHP?

StackOverflow https://stackoverflow.com/questions/1069328

  •  21-08-2019
  •  | 
  •  

Question

Si je 50.000-100.000 skus produit avec des informations d'accompagnement, y compris les spécifications et les descriptions, qui doit être mis à jour sur une base régulière (au moins une fois par jour), est XML la meilleure façon d'aller comme format d'échange de données? L'application est écrit en PHP, et je pense SimpleXML aux appels natifs MySQL PHP (par opposition à l'aide de crochets d'application pour vider les données dans l'emplacement approprié dans la base de données). Le serveur sera basé sur Linux, et j'aura accès root. Je sais que cela est une question plutôt générique, ce qui est la raison pour laquelle je l'ai fait wiki communautaire - Je suis à la recherche d'une approche globale qui est considérée comme la meilleure pratique. Si cela importe l'application est Magento.

Était-ce utile?

La solution

Vous devez définir les paramètres de « meilleur » pour votre scénario donné.

XML est bavard, ce qui signifie deux choses

  • Vous pouvez fournir beaucoup de détails sur les données, y compris les métadonnées
  • Taille du fichier va être grand

L'autre avantage que vous gagnez avec XML est parsing plus avancé / sélection "out-of-the-box" avec des outils comme XPath.

Mais il y a beaucoup d'autres formats, vous pouvez choisir, chacun avec leur propre avantage et disadvange

Et plusieurs autres.

Mon point est que vous avez besoin de comprendre ce qui est important pour votre système (vitesse? Support du jeu de caractères? Lisibilité humaine?) Et choisir un format qui va être compatible pour les deux parties.

Autres conseils

Le seul réel inconvénient à XML est qu'il est très bavard. Les fichiers XML sont généralement très importantes par rapport à d'autres formats. Le côté positif est qu'il est relativement facile à lire (pour les personnes) et analyser (pour les logiciels). Avec seulement 100K dossiers (sans connaître la taille de chaque enregistrement) Je pense que je voudrais aller avec XML.

JSON prend beaucoup moins d'espace que XML, bien que XML compriment très bien. XML a également l'avantage d'un grand nombre de bibliothèques matures et des outils.

Si vous échangez des données avec des sources 3ème partie que vous pourriez vouloir valider il XML avec un schéma. Vous ne disposez pas que pour JSON.

Personnellement, je finis à l'aide de XML la plupart du temps. Si l'espace est un problème que j'applique la compression gzip aux données XML.

J'utilise actuellement XML comme format d'importation d'un projet e-commerce. Elle compte actuellement plus de 10 000 produits, les attributs et les descriptions et et itérer sur les données assez rapidement. Je n'ai pas d'autre choix dans cette affaire, cependant.

En utilisant SOAP serait une alternative viable à juste recevoir les données XML brutes (bien que, je pense que cela ajouterait au coût de la performance, comme SOAP utilise XML comme il est le format de messagerie de toute façon), mais vous pouvez récupérer vos données en tant que natif le type PHP, comme un tableau que vous pouvez passer directement à votre DAL pour l'insertion de la base de données, côté la nécessité d'intensifier la construction d'un objet SimpleXML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top