O XML é o melhor formato de intercâmbio de dados ao importar grandes quantidades de dados como uma rotina com script no PHP?

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

  •  21-08-2019
  •  | 
  •  

Pergunta

Se eu tiver 50.000 a 100.000 SKUs de produtos com informações que o acompanham, incluindo especificações e descrições, que precisam ser atualizadas regularmente (pelo menos uma vez por dia), o XML é o melhor caminho a percorrer como um formato de intercâmbio de dados? O aplicativo está escrito no PHP e estou pensando em simples as chamadas mysql nativas do PHP (em vez de usar ganchos de aplicativos para despejar dados no local apropriado no banco de dados). O servidor será baseado em Linux e eu terei acesso total à raiz. Sei que essa é uma pergunta bastante genérica, e é por isso que fiz o Wiki da comunidade - estou procurando uma abordagem geral que seja considerada as melhores práticas. Se importa, o aplicativo é magento.

Foi útil?

Solução

Você deve definir os parâmetros do "melhor" para o seu cenário.

XML é detalhado, o que significa duas coisas

  • Você pode fornecer muitos detalhes sobre os dados, incluindo metadados
  • O arquivo file vai ser grande

A outra vantagem que você ganha com XML é a análise/seleção mais avançada "pronta para uso" com ferramentas como o XPath.

Mas existem muitos outros formatos que você pode escolher, cada um com sua própria vantagem e desvantagem

E vários outros.

O que quero dizer é que você precisa descobrir o que é importante para o seu sistema (velocidade? Suporte de personagem? Readabilidade humana?) E escolher um formato que será compatível para os dois lados.

Outras dicas

O único lado real para XML é que ele é muito detalhado. Os arquivos XML geralmente são muito grandes em comparação com outros formatos. A vantagem é que é relativamente fácil de ler (para pessoas) e analisar (para software). Com apenas 100k registros (sem saber o tamanho de cada registro), acho que iria com o XML.

O JSON ocupa muito menos espaço que o XML, embora o XML Compress muito bem. O XML também tem a vantagem de muitas bibliotecas e ferramentas maduras.

Se você trocar dados com fontes de terceiros, poderá validar o XML com um esquema. Você não tem isso para JSON.

Pessoalmente, acabo usando o XML na maioria das vezes. Se o espaço for um problema, aplico compactação GZIP aos dados XML.

Atualmente, uso o XML como formato de importação em um projeto de comércio eletrônico. Atualmente, possui mais de 10.000 produtos, atributos e descrições e irá atingir os dados rapidamente. Eu não tenho nenhuma outra escolha nesse assunto, no entanto.

Usar sabão seria uma alternativa viável para apenas receber o XML bruto (embora eu ache que isso aumentaria o custo de desempenho, pois o SOAP usa XML como o formato de mensagens de qualquer maneira), no entanto, você pode obter seus dados como tipo de php nativo, Como uma matriz que você pode passar diretamente para o seu dal para inserir no banco de dados, passando a necessidade de construir um objeto simpxml.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top