Re: Python para altos volúmenes de datos
Cesar Cardenas Desales
cescd en yahoo.com.mx
Mar Mayo 31 20:17:19 CEST 2005
Muchas gracias, buenos consejos.
Solamente hago una aclaración. Al escribir Python me
refiero a la PVM, a la implementación de Python, no al
lenguaje. Solamente conozco unas cuantas
implementaciones de Python: la de referencia,
ActivePython, Stackless, Jython y alguna otra que se
me escape.
El problema con aquel analizador que comentaba, es que
el error que surgía era críptico:
http://listas.aditel.org/archivos/python-es/2004-April/009494.html
Saludos
César
--- Joaquin Jose del Cerro Murciano
<jjdelcerromurciano en yahoo.es> escribió:
>
> Hola,
>
> Personalmente aun no me he tropezado con tener que
> manejar una aplicaccion en
> python del calibre que pareces indicar. Ahora bien,
> llegue a python desde Vb
> y alli si que me las tube que ver con ese tipo de
> aplicaciones. Normalmente
> el problema no suele estar en el lenguaje de
> programacion. Cuando te
> tropiezas con un rompecabezas de ese estilo el truco
> esta en un diseño de
> aplicacion y base de datos apropiado, y generalmente
> muy poco ortodoxo.
> Si sales por la calle de en medio y al final para
> hacer la explotacion tienes
> que recorrerte un par de millones de registros de
> una BD y hacer operaciones
> con ellos vas mal, y ademas no importa el lenguaje
> que uses.
>
> Elije un buen gestor de base de datos y centrate en
> el diseño y alimentacion
> de esa base de datos, pensando en facilitarte luego
> las tareas de
> explotacion.
>
> Para que te hagas una idea. La ultima aplicacion
> gorda que hize (con vb y
> sqlserver), tiene ya un par de tablas con unos 15
> millones de registros, y
> para que andase hay que deshabilitar las
> optimizaciones del propio gestor de
> BD, y que tire de los indices que yo le digo. Ademas
> en el momento de
> insertar los datos se hacen todos los calculos que
> se puede y se guardan ya
> hechos para facilitar la explotacion. Si cuando me
> piden un informe tubiuese
> que calcularlo todo el usuario se podria ir a
> hecharse una siesta antes de
> que estubiese.
>
> Hace poco he tenido que hacer algo en python que
> maneja cartografia, y los
> datos cartograficos que tengo ocupan unas 5 Gb
> (shps+dbfs). El truco esta en
> organizarlo de forma que no tengas nunca que
> recorrerte los 5Gb en python
> para hacer algo con ellos. Los organizas de forma
> que puedas recortar la
> informacion a la hora de procesarla. Y apesar de
> ello, pintar un mapa supone
> mover unas 500.000 lineas. Pues te toca optimizar tu
> codigo, y ademas a mano.
> Y al final encuentras que hay partes que aun asi no
> puedes hacer nada con
> ellas. Si tienes una funcion que es llamada
> 500.000.000 veces, al final pasas
> del python y la compilas en pyrex, y puedes reducir
> el tiempo asta un 60%, y
> algunas las hize en C+swig y les llegue a sacar un
> 90%. Pero basicamente,
> invocar a una funcion 500 millones de veces, si la
> funcion esta en python, es
> lento; pero si esta en casi cualquiercosa tambien es
> lento.
>
> Resumiendo, python es apto para un volumen de datos
> grande ?
>
> Depende de como te lo puedas montar y de tu gestor
> de BBDD (a veces debes
> prescindir de un gestor de BBDD para obtener mejores
> rendimientos, pero no es
> lo normal).
>
> Como nota final,
> despues de ... muchos años de VB y Micorsoft, hace 3
> años que trabajo con
> python como lenguaje de proposito general para mis
> aplicaciones, y uso
> PostGreSQL como gestor de BD.
> Aun no me he arrepentido.
>
> Un saludo
> Joaquin.
>
> El Martes, 31 de Mayo de 2005 19:02, Cesar Cardenas
> Desales escribió:
> > Saludos:
> >
> > Estoy muy próximo a iniciar un nuevo proyecto,
> > donde una de los pocas cosas ciertas que hay es
> que la
> > carga de datos será muy grande: es un proyecto a
> nivel
> > nacional(México) para la evaluación de varios
> aspectos
> > del sistema educativo. Como consecuencia estoy
> > previendo tener una gran cantidad de datos
> > provenientes de los varios millones de niños y
> > profesores que se evaluarán constantemente.
> >
> > Gustosamente estoy pensando usar Python para mi
> > proyecto, sin embargo, tengo mis dudas. Ya una vez
> > tuve una amarga experiencia con un analizador
> > léxico/sintáctico escrito en python que no soportó
> una
> > gramática bastante grande que le proporcione, y
> que
> > tuve que implementar en Java.
> >
> > ¿Alguien ustedes utiliza o ha escuchado de
> alguien
> > que utilice python para grandes volúmenes de
> datos?
> > ¿Deberé volver nuevamente a Java con la cola entre
> las
> > patas? ¿Podré confiar en mod_python para la parte
> de
> > Web? ¿Servlets en Jython serán una mejor opción
> que
> > mod_python? ¿Scipy y Numpy podrían salvar mi
> orgullo
> > de Pythonista?
> >
> > Saludos
> >
> > César
> >
> >
> >
> >
> >
> >
>
___________________________________________________________
> > Do You Yahoo!?
> > La mejor conexión a Internet y <b >2GB</b> extra a
> tu correo por $100 al
> > mes. http://net.yahoo.com.mx
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo/python-es
>
>
> ______________________________________________
> Renovamos el Correo Yahoo!
> Nuevos servicios, más seguridad
> http://correo.yahoo.es
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.yahoo.com.mx/
Más información sobre la lista de distribución Python-es