[uylug-programming] Procesamiento de XML

Alejandro Stendelis stendelis at gmail.com
Fri Jun 14 07:43:44 PDT 2013


Gracias carlos,

Ya tengo dos métodos más para ver, aparte de los que yo quería tener en
cuenta.


   1. Pasar con sed/awk a csv e importar directamente al MYSQL
   2. http://lxml.de/xpathxslt.html
   3. http://vtd-xml.sourceforge.net/
   4. http://xml-shell.sourceforge.net/
   5. http://www.xmlsh.org/Commands
   6.
   http://rpbouman.blogspot.com/2006/03/importing-xml-data-into-mysql-using.html


Por lo que pude leer el método que numero como 3 "vtd-xml", tiene como
ventaja la velocidad, según dice ahí. Menciona procesos de un xml de 100
megas en pocos segundos.

Independientemente del método que pueda utilizar también necesito un
freelance para programar esto, alguno sabe de alguna bolsa de trabajo o un
listado o algun foto, me gustaría que sea un programador en uruguay.

Saludos.


El 14 de junio de 2013 11:30, Carlos M. Martinez <
carlosmarcelomartinez at gmail.com> escribió:

>  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>
>
>>  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>
>>
>>> 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 listUylug-programming at listas.uylug.org.uyhttp://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/b3500071/attachment-0005.htm>


More information about the Uylug-programming mailing list