[uylug-programming] Procesamiento de XML

Chicken Urine chickenurine at gmail.com
Fri Jun 14 07:48:48 PDT 2013


Igual acordate que tenés 2 cuellos de botella, uno es el procesamiento del
XML y otro es la Base de Datos.


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


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

> 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/8a915ef6/attachment-0004.htm>


More information about the Uylug-programming mailing list