[uylug-programming] Procesamiento de XML

Chicken Urine chickenurine at gmail.com
Fri Jun 14 05:25:00 PDT 2013


Depende de lo intrincada que sea la estructura del XML. Si es plana (no hay
tags anidados o atributos) debería ser bastante rápido. Igual te podés
hacer una prueba de concepto para ver que tiempos lográs.


.:-:ChiCkENURiNE:-:.
+ El SPAM <http://groups.google.com/group/spam-a-lot/> tiene su lugar.


2013/6/14 Alejandro Stendelis <stendelis at gmail.com>

> Es parece ser una buena opción, y el pasar del xml a csv cuanto crees que
> puede demorar?
>
>
> El 14 de junio de 2013 08:58, Chicken Urine <chickenurine at gmail.com>escribió:
>
> Dependiendo de como sea la estructura del xml puede ser trivial con
>> sed/awk pasarlo a un csv. Hacer un load data de 10k registros en Mysql te
>> puede llevar menos de 30 segundos con la configuración optima.
>>
>>
>> .:-:ChiCkENURiNE:-:.
>> + El SPAM <http://groups.google.com/group/spam-a-lot/> tiene su lugar.
>>
>>
>> 2013/6/14 Alejandro Stendelis <stendelis at gmail.com>
>>
>>> Gracias, por los consejos en PHP, pero ya he probado todo y he realizado
>>> varias pruebas de velocidad, del xml preciso toda la info que tiene, el que
>>> tiene 2.5 millones de tags, se transforman en 10 mil registros en el MYSQL,
>>> de ahí la velocidad de procesado que necesito.
>>>
>>>
>>> El 13 de junio de 2013 23:36, Ivan Baldo <ibaldo at adinet.com.uy>escribió:
>>>
>>>      Hola.
>>>>     Capás que el problema con XMLReader es que generalmente debe usarse
>>>> iterando por cada elemento leído con código PHP y PHP es lentísimo como
>>>> lenguaje :-(.
>>>>     Si no precisás realmente todos los elementos del XML para procesar
>>>> sino que sólo algunos entonces en una de esas logras mejor velocidad con
>>>> DOMDocument y afines: http://www.php.net/manual/es/book.dom.php .
>>>>     Con esa clase lo levantas y luego por ejemplo podes pedir todos los
>>>> elementos que son determinado "tag" (nombre de elemento) o por id; si
>>>> precisas algo mas avanzado entonces podés utilizar DOMXPath.
>>>>     Alternativamente podés probar SimpleXML
>>>> http://www.php.net/manual/es/book.simplexml.php que es un poco mas
>>>> sencillo de usar aunque supongo (me puedo equivocar) que un poco mas lento,
>>>> pero probablemente si no iteras en todos los elementos va a ser bastante
>>>> mas rápido que XMLReader.
>>>>     Saludos.
>>>>
>>>>
>>>> El 13/06/13 11:21, Alejandro Stendelis escribió:
>>>>
>>>> Hola,
>>>>
>>>> Tengo un proyecto funcionando, esta realizado en PHP, el mismo se trata
>>>> de procesar cada hora algunos archivos XML (son unos 30 archivos que pesan
>>>> de 5 megas a 350 megas).
>>>>
>>>> El servicio funciona de esta manera en resumen.
>>>>
>>>> Legan los XML en formato .zip.
>>>> Un cron job se fija cuando se actualizan.
>>>> Si hay archivos de descomprimen.
>>>> Un php toma el XML y por medio de XMLReader() lo procesa y hace unos 10
>>>> inserts en promedio por cada XML.
>>>> Luego se utiliza los datos de la DB para hacer funcionar un servicio.
>>>>
>>>> La situación hasta este momento es que lo hace muy bien, pero necesito
>>>> acelerar el proceso de los XML, XMLReader() tarda en el XML mas grande unos
>>>> 20 minutos, son cerca de 350 megas y unas 2.5 millones de lineas.
>>>>
>>>> Me imagino que haciendo un script shell o en C, que corra directamente
>>>> sobre el servidor linux, ahorro mucho tiempo y puedo tener mas control de
>>>> los procesos, ya que es mas nativo por así decirlo.
>>>>
>>>> Buscando encontré estos códigos, los cuales me imagino que uno de ellos
>>>> es el mejor camino a seguir.
>>>>
>>>> Mi pregunta es, quien tiene experiencia en tratar desde scripts datos
>>>> complejos?, y cual es el mejor camino a seguir?
>>>> Necesitaré un programador Freelance que en algún momento tendré que
>>>> contratar.
>>>>
>>>>
>>>> http://vtd-xml.sourceforge.net/
>>>> http://xml-shell.sourceforge.net/
>>>> http://www.xmlsh.org/Commands
>>>>
>>>> http://rpbouman.blogspot.com/2006/03/importing-xml-data-into-mysql-using.html
>>>>
>>>> Gracias.
>>>>
>>>>
>>>> _______________________________________________
>>>> Uylug-programming mailing listUylug-programming at listas.uylug.org.uyhttp://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>>
>>>>
>>>> --
>>>> Ivan Baldo - ibaldo at adinet.com.uy - http://ibaldo.codigolibre.net/
>>>> From Montevideo, Uruguay, at the south of South America.
>>>> Freelance programmer and GNU/Linux system administrator, hire me!
>>>> Alternatives: ibaldo at codigolibre.net - http://go.to/ibaldo
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Uylug-programming mailing list
>>> Uylug-programming at listas.uylug.org.uy
>>> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>
>>>
>>
>> _______________________________________________
>> Uylug-programming mailing list
>> Uylug-programming at listas.uylug.org.uy
>> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>
>>
>
> _______________________________________________
> Uylug-programming mailing list
> Uylug-programming at listas.uylug.org.uy
> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.uylug.org.uy/pipermail/uylug-programming-uylug.org.uy/attachments/20130614/882f697d/attachment-0005.htm>


More information about the Uylug-programming mailing list