[uylug-programming] Procesamiento de XML

Carlos M. Martinez carlosmarcelomartinez at gmail.com
Fri Jun 14 07:30:43 PDT 2013


Buen punto ;)

On 6/14/13 11:11 AM, Chicken Urine wrote:
> Estoy completamente de acuerdo que usar XPath es lo más prolijo, pero
> a veces es necesario tomar decisiones desprolijas en pos de la
> performance. Habría que hacer pruebas y ver qué se comporta mejor.
>
>
> .:-:ChiCkENURiNE:-:.
> + El SPAM <http://groups.google.com/group/spam-a-lot/> tiene su lugar.
>
>
> 2013/6/14 Carlos M. Martinez <carlosmarcelomartinez at gmail.com
> <mailto:carlosmarcelomartinez at gmail.com>>
>
>     Ese es el punto del XPath, no hace falta hilar tan fino en la
>     estructura del texto mismo como con sed/awk, donde matcheando
>     patrones de texto se te puede romper todo por un espacio de mas o
>     de menos.
>
>     En Python: http://lxml.de/xpathxslt.html
>
>     s2
>
>     ~Carlos
>
>
>     On 6/14/13 8:58 AM, Chicken Urine wrote:
>>     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
>>     <mailto: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 <mailto: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 list
>>>             Uylug-programming at listas.uylug.org.uy <mailto:Uylug-programming at listas.uylug.org.uy>
>>>             http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>
>>             -- 
>>             Ivan Baldo - ibaldo at adinet.com.uy <mailto: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 <mailto:ibaldo at codigolibre.net> - http://go.to/ibaldo
>>
>>
>>
>>         _______________________________________________
>>         Uylug-programming mailing list
>>         Uylug-programming at listas.uylug.org.uy
>>         <mailto: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 <mailto: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/73ed3f48/attachment-0005.htm>


More information about the Uylug-programming mailing list