Autor Tema: Manejo de datos en Excel  (Leído 4320 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado vlady30

  • Sv Full Member
  • *
  • Mensajes: 623
Manejo de datos en Excel
« : febrero 06, 2016, 02:03:07 pm »
Un saludo a todos, quiero pedir de su valiosa ayuda.

El problema: Donde laboro todos los meses se deben de presentar ciertos resultados, pero el problema es que eso conlleva a manejar mas de 400,000 filas de Excel (no repetidas y todas son necesarias e importantantes) lo que hace que el archivo pese casi los 500 Mb. A dos personas les lleva casi 16 horas diarias en manejar toda la data a pie y viendo eso he querido hacer algo para optimizar todo el proceso pero el problema que tengo es que las personas que trabajan esa data solo pueden usar Excel y hablarles de base de datos se asustan, ya no digamos PHP, etc. No usan Access porque no lo pueden usar y TI de la empresa no lo instala.

Por lo que me gustaria saber que sugerencias me regalan para poder ayudarles de una forma sencilla y simple, he pensado combinar API POI en Java pero me da errores por la gran cantidad de datos a manipular, se me ocurria usar el origen de datos ODBC pero el problema que tengo es limitaciones de las personas que laboran.

Les estare muy agradecidos por sus valiosos aportes y sugerencias.
"ESTO NO SE ACABA HASTA QUE YO GANE¡¡¡¡".

Desconectado ernesto84

  • The Communiter-
  • *
  • Mensajes: 1533
Re:Manejo de datos en Excel
« Respuesta #1 : febrero 06, 2016, 02:29:06 pm »
Pides usar un software para big data

Enviado desde mi SGH-M919 mediante Tapatalk

existen dos maneras de ser feliz en la vida uno es ser un idiota y otra es fingiendo ser un idiota.

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14583
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:Manejo de datos en Excel
« Respuesta #2 : febrero 06, 2016, 03:24:13 pm »
sin saber la naturaleza del trabajo y su flujo esta dificil. que partes podes automatizar? que partes estan ya automatizadas? con que recursos dispones?

Conectado ELITE

  • The Communiter-
  • *
  • Mensajes: 6089
  • NEMO ME IMPUNE LACESSIT
Re:Manejo de datos en Excel
« Respuesta #3 : febrero 06, 2016, 03:54:10 pm »
Pero menciona el OP que los de IT no dejan instalar, asi que el no es de IT y no puede (ni debe hasta donde me da la experiencia) hacer, poner o crear nada que los de IT no validen o ellos mismos desarrollen, digo, si en excel les toca hacer algo, los los de IT los que deben automatizar, no cualquiera que sepa programar  :huh:

Me parece raro tu caso, deberias poner mas datos como los que pide goomba.

Desconectado vlady30

  • Sv Full Member
  • *
  • Mensajes: 623
Re:Manejo de datos en Excel
« Respuesta #4 : febrero 06, 2016, 07:15:37 pm »
No soy de TI sino que hago mis propios programas. Puedo automatizar calculos, la cosa es que de 400,000 filas, el resultado final son cerca de 50 filas de datos resumidos, agrupados, calculados, etc. Lo que pasa es que hablando con TI mencionan un desarrollo de 2 años y la cosa no es para tanto. Los recursos que cuento son Java, la PC local donde se trabaja, acceso limitado a las bases de datos para la extraccion de la data virgen, etc. Mi limitante es que tengo que hacer algo sencillo para el que lo use no le cueste. Es difil por la enorme cantidad de datos que hay que maquilar para llegar al resultado final.

Se me ocurria irme por la parte de Origenes de datos o buscar una forma de usar SQL desde java para leer el Excel, son ideas que tengo ahorita.
"ESTO NO SE ACABA HASTA QUE YO GANE¡¡¡¡".

Desconectado Rebel

  • Sv Member
  • ***
  • Mensajes: 197
Re:Manejo de datos en Excel
« Respuesta #5 : febrero 06, 2016, 10:08:12 pm »
No soy de TI sino que hago mis propios programas. Puedo automatizar calculos, la cosa es que de 400,000 filas, el resultado final son cerca de 50 filas de datos resumidos, agrupados, calculados, etc. Lo que pasa es que hablando con TI mencionan un desarrollo de 2 años y la cosa no es para tanto. Los recursos que cuento son Java, la PC local donde se trabaja, acceso limitado a las bases de datos para la extraccion de la data virgen, etc. Mi limitante es que tengo que hacer algo sencillo para el que lo use no le cueste. Es difil por la enorme cantidad de datos que hay que maquilar para llegar al resultado final.

Se me ocurria irme por la parte de Origenes de datos o buscar una forma de usar SQL desde java para leer el Excel, son ideas que tengo ahorita.

VBA?

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5666
  • Starlet - 999cc
    • mxgxw
Re:Manejo de datos en Excel
« Respuesta #6 : febrero 07, 2016, 09:47:52 am »
No soy de TI sino que hago mis propios programas. Puedo automatizar calculos, la cosa es que de 400,000 filas, el resultado final son cerca de 50 filas de datos resumidos, agrupados, calculados, etc. Lo que pasa es que hablando con TI mencionan un desarrollo de 2 años y la cosa no es para tanto. Los recursos que cuento son Java, la PC local donde se trabaja, acceso limitado a las bases de datos para la extraccion de la data virgen, etc. Mi limitante es que tengo que hacer algo sencillo para el que lo use no le cueste. Es difil por la enorme cantidad de datos que hay que maquilar para llegar al resultado final.

Se me ocurria irme por la parte de Origenes de datos o buscar una forma de usar SQL desde java para leer el Excel, son ideas que tengo ahorita.

Podés utilizar access como solución a corto plazo y luego migrar la data a un gestor decente.

Me parece raro que los de TI te esten sugiriendo una solución que va a tardar dos años de desarrollo teniendo enfrente obvios problemas de ineficiencia por utilizar una herramienta que no está diseñada para manejar esa cantidad de datos. Osea... sí una herramienta a la medida puede tomar ese tiempo pero el desarrollo puede ser incremental, pueden comenzar migrando la data raw a una base de datos y conectarse vía ODBC. Incluso excel puede conectarse a fuentes ODBC y eso es algo que se monta en que... ¿20 minutos?

Por la cantidad de datos me parece incluso tonto que los de TI no estén montando desde ya un gestor de bases de datos. Los usuarios pueden seguir utilizando el excel de toda la vida simplemente cargando los datos externos.

Lamento decirlo pero en esta profesión hay colegas que hacen cualquier cosa para no dar una solución porque implicaría más trabajo para ellos.



Desconectado vlady30

  • Sv Full Member
  • *
  • Mensajes: 623
Re:Manejo de datos en Excel
« Respuesta #7 : febrero 07, 2016, 04:44:01 pm »
Podés utilizar access como solución a corto plazo y luego migrar la data a un gestor decente.

Me parece raro que los de TI te esten sugiriendo una solución que va a tardar dos años de desarrollo teniendo enfrente obvios problemas de ineficiencia por utilizar una herramienta que no está diseñada para manejar esa cantidad de datos. Osea... sí una herramienta a la medida puede tomar ese tiempo pero el desarrollo puede ser incremental, pueden comenzar migrando la data raw a una base de datos y conectarse vía ODBC. Incluso excel puede conectarse a fuentes ODBC y eso es algo que se monta en que... ¿20 minutos?

Por la cantidad de datos me parece incluso tonto que los de TI no estén montando desde ya un gestor de bases de datos. Los usuarios pueden seguir utilizando el excel de toda la vida simplemente cargando los datos externos.

Lamento decirlo pero en esta profesión hay colegas que hacen cualquier cosa para no dar una solución porque implicaría más trabajo para ellos.



El problema es que donde trabajo el area de TI es mas para soportes sencillo que para problemas de este tipo, lo que hacen es mejor licitar un consultor externo para que desarrolle aplicaciones de este tipo.

En fin , he pasado desde ayer y hoy probando todas las alternativas simples y aun con Access es super lento el proceso incluyendo VBA y Java. Asi que ni modo, a migrar por lo menos a MySql.
"ESTO NO SE ACABA HASTA QUE YO GANE¡¡¡¡".

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re:Manejo de datos en Excel
« Respuesta #8 : febrero 08, 2016, 10:23:26 am »
Pides usar un software para big data

big data es igual a 400,000 registros?

java? sqlServer?

nambe... https://www.sqlite.org/ será suficiente para voz...no es necesario instalar nada y hay un vergo de portables para manipular ondas.. si queres algo rapido hablemos de pisto y te soluciono tu problema XD
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado auron3098

  • Sv Member
  • ***
  • Mensajes: 484
  • Esta es mi historia, y tú no formas parte de ella
Re:Manejo de datos en Excel
« Respuesta #9 : febrero 08, 2016, 04:12:29 pm »
Yo no se que quieran reportar con toda esa data, pero no has pensado en reporteria por medio de Crystal Reports?
http://raptr.com/badge/auron3098/fs_overall.png

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5666
  • Starlet - 999cc
    • mxgxw
Re:Manejo de datos en Excel
« Respuesta #10 : febrero 08, 2016, 04:22:07 pm »
big data es igual a 400,000 registros?

java? sqlServer?

nambe... https://www.sqlite.org/ será suficiente para voz...no es necesario instalar nada y hay un vergo de portables para manipular ondas.. si queres algo rapido hablemos de pisto y te soluciono tu problema XD

Muchas veces no es ni la cantidad de registros sino que la BD no está bien diseñada/optimizada. Por ejemplo si no esta normalizada, si no se han creado índices o si no se han elegido bien los tipos de datos es obvio que va a tener problemas bastante palpables de performance.

Recuerdo una vez le estaba ayudando a unos chamacos de una maquila a migrar de una base vieja en FOX que ya manejaba millones de registros a MySQL y recuerdo que cuando hicieron la primera migración de tablas y el sistema trabajaba igual de lento o peor que en FOX. Nos sentamos con el desarrollador de fox a optimizar tablas, ver a donde se necesitaban índices... A elegir tipos de datos más adecuados y el performance mejoró pero increiblemente y eso sin re-diseñar la BD. Lastimosamente por el diseño del software habian varias tablas que se calculaban en el aire así que tocaba hacer unas tablas temporales para procesarlas o sino ciertos procedimientos para cuadrar tardaban demasiado.

Justo por eso con ese volumen de datos no es recomendable utilizar excel porque ya no hay forma de optimizar nada. Ya necesitas un gestor más robusto.


Desconectado vlady30

  • Sv Full Member
  • *
  • Mensajes: 623
Re:Manejo de datos en Excel
« Respuesta #11 : febrero 13, 2016, 10:04:40 pm »
Bueno, despues de una semana no hubo forma de poder manejar toda la data por excel asi que despues de analizar la informacion me di cuenta que muchas filas (por no decir casi todas) no cambian, solo un par que son diferentes cada mes asi que las meti a una base de datos MySql y deje las nuevas en excel, las demas columnas de la tabla que se calculan pase de un dia completo a 3 minutos 10 segundos en PHP, solo me queda leer el Excel mensual y termine.

Haciendo la misma programacion en java se tarda 2 minutos 20 segundos.
« Última Modificación: febrero 14, 2016, 11:26:33 am por vlady30 »
"ESTO NO SE ACABA HASTA QUE YO GANE¡¡¡¡".

Desconectado vlady30

  • Sv Full Member
  • *
  • Mensajes: 623
Re:Manejo de datos en Excel
« Respuesta #12 : febrero 17, 2016, 07:45:07 pm »
big data es igual a 400,000 registros?

java? sqlServer?

nambe... https://www.sqlite.org/ será suficiente para voz...no es necesario instalar nada y hay un vergo de portables para manipular ondas.. si queres algo rapido hablemos de pisto y te soluciono tu problema XD

Gracias, ya lo solucione con mariaDB y Java Desktop.

Bueno, ya para finalizar el tema:

1. Es imposible manejar tantos datos con Excel.
2. Arme una pequeña base de datos con MySQL e hice una aplicación desktop en java (no se pero para mi, que no soy un gran programador, es lo mejor) para manipular la data.
3. Todo el proceso de manejar la data en Excel lleva mas de 8 horas dos personas.
4. Con la primera versión de mi aplicación se tardo 24 horas en hacer la manipulación del 10% de los datos.
5. Optimizando las consultas (que importancia tienen los Index y el Inner Join) reduje a manipular el 100% de la data en 6 minutos, creo que menos de eso ya no podría hacerlo.
7. No lo seguí en PHP porque me parece que al hacer tantos cálculos se vuelve mas lento.

Así que reduje el trabajo de dos personas por 8 horas a una sola por 6 minutos, ahora me toca mejorar el proceso de obtención de las tablas para dejar un solo proceso.

Después de hacer mas pruebas usando MySQL y realizando otros trabajos en la PC el tiempo que tarda la aplicación en hacer todos los cálculos ronda entre 6 a 15 minutos. Pense que no se podía hacer mas rápido, así que probé con mariaDB (según la documentación hace las consultas mas rápidas) y el resultado fue que de 6 a 15 minutos baje el calculo de toda la data a 2 minutos 40 segundos, aun trabajando en otra actividades en la PC.
« Última Modificación: febrero 18, 2016, 03:49:00 pm por vlady30 »
"ESTO NO SE ACABA HASTA QUE YO GANE¡¡¡¡".

Desconectado _Zume

  • MiembrosReales
  • *
  • Mensajes: 25
Re:Manejo de datos en Excel
« Respuesta #13 : mayo 10, 2016, 08:08:31 pm »
Si tu base de datos está bien estructurada, y tu programa bien programado no debería tardar más de 10 segundos.. Tengo un servidor de juegos online que tiene alrededor de 500.000 cuentas registradas, y el login no tarda más de 3 segundos.

Desconectado vlady30

  • Sv Full Member
  • *
  • Mensajes: 623
Re:Manejo de datos en Excel
« Respuesta #14 : mayo 10, 2016, 08:16:04 pm »
Si tu base de datos está bien estructurada, y tu programa bien programado no debería tardar más de 10 segundos.. Tengo un servidor de juegos online que tiene alrededor de 500.000 cuentas registradas, y el login no tarda más de 3 segundos.

Es posible lo que mencionas, pero en mi caso tengo que realizar 4 tablas diferentes y tengo que hacer un monton de calculos por lo que ahora por cada tabla se tarda 45 segundos ya no los 6 minutos, optimice las consultas y mejore un poco el codigo.
"ESTO NO SE ACABA HASTA QUE YO GANE¡¡¡¡".

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14583
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:Manejo de datos en Excel
« Respuesta #15 : mayo 11, 2016, 01:38:13 am »
Si tu base de datos está bien estructurada, y tu programa bien programado no debería tardar más de 10 segundos.. Tengo un servidor de juegos online que tiene alrededor de 500.000 cuentas registradas, y el login no tarda más de 3 segundos.
por favor no compares un proceso de login con operaciones en arreglos de datos complejos. es ridiculo compararlo. el manejar datos empresariales no es igual de complejo que un login. ni por cerca, por mas usuarios que tengas no estas operando sobre los supuestos 50,000 usuarios que decis que tenes, solo estas operando sobre uno. y con datos empresariales no es raro que estes operando arreglos de cientos operando sobre otros arreglos de cientos.
« Última Modificación: mayo 11, 2016, 01:44:32 am por g00mba »

Desconectado _Zume

  • MiembrosReales
  • *
  • Mensajes: 25
Re:Manejo de datos en Excel
« Respuesta #16 : mayo 11, 2016, 07:54:45 am »
por favor no compares un proceso de login con operaciones en arreglos de datos complejos. es ridiculo compararlo. el manejar datos empresariales no es igual de complejo que un login. ni por cerca, por mas usuarios que tengas no estas operando sobre los supuestos 50,000 usuarios que decis que tenes, solo estas operando sobre uno. y con datos empresariales no es raro que estes operando arreglos de cientos operando sobre otros arreglos de cientos.

La función de login está programada en PAWN (un derivado de c++) y requiere que pase todos los datos encontrados a un array estructurada.

Puedo decir lo mismo con la forma en que se almacenan y cargan las historias de los personajes, los seteos de datos, hay un debug en consultas que tardan más de cierto tiempo y nunca tardan demasiado.

Además, el servidor pasa con al rededor de 95 jugadores conectados por día. Suficiente en que cada uno esté actualizando datos de sus inventarios, cuenta, casas, muebles, etcétera.

Mencioné el login porque es un proceso que en PAWN suele provocar errores haciendo que se cierre la consola. Requiere buscar el nombre de la cuenta, buscar los datos de la cuenta en otra tabla (por ejemplo, inventarios, accesorios, notas, números almacenados en agenda y cada uno en una tabla distinta).

Imagínate, tengo 500.000 cuentas registradas, cada una tiene posibilidad a guardar 7 cosas en su inventario, teniendo en cuenta que al menos más de la mitad tendrá objetos almacenados, accesorios, números, historias.

He intentado hacer un juego para estructurarlo de la forma más "formal" posible. Y el proceso que se requiere que es en tiempo real (y no como en algo como PHP que suele ser cuando se hace una petición), la función de una base de datos no implica que sea más compleja que otra sólo por ser parte de una empresa (estereotipo), ese concepto de "datos empresariales" suele hacer siempre pensar que es algo grande y por tanto mayor que al de un juego, pero lo que en realidad importa es la cantidad de datos (sujeto a los tipos de datos) y el manejo de éstos.

__

Y por cierto, sería bueno que mencionaras también (el autor del post) qué tipo de datos son. Y si tienes además claves primarias (primary key / PK)
« Última Modificación: mayo 11, 2016, 08:03:33 am por _Zume »

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14583
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:Manejo de datos en Excel
« Respuesta #17 : mayo 11, 2016, 09:24:50 am »
He intentado hacer un juego para estructurarlo de la forma más "formal" posible. Y el proceso que se requiere que es en tiempo real (y no como en algo como PHP que suele ser cuando se hace una petición), la función de una base de datos no implica que sea más compleja que otra sólo por ser parte de una empresa (estereotipo), ese concepto de "datos empresariales" suele hacer siempre pensar que es algo grande y por tanto mayor que al de un juego, pero lo que en realidad importa es la cantidad de datos (sujeto a los tipos de datos) y el manejo de éstos.
~? sos vos?

si vaya esta bueno, manejar un formulario y siete tablas es igual de complejo que el software empresarial.

Desconectado dbmmalbo

  • Sv Member
  • ***
  • Mensajes: 156
Re:Manejo de datos en Excel
« Respuesta #18 : mayo 11, 2016, 09:29:18 am »
~? sos vos?

si vaya esta bueno, manejar un formulario y siete tablas es igual de complejo que el software empresarial.

Veo que no soy el único que creo que es la versión 2.0 de ~
El que sabe, se divierte, el que no, se lo lleva la corriente... La idea es esa.

Desconectado _Zume

  • MiembrosReales
  • *
  • Mensajes: 25
Re:Manejo de datos en Excel
« Respuesta #19 : mayo 11, 2016, 09:57:44 am »
Si bien es cierto que el compañero del que hablan suele compartir ideas incongruentes, no implica que todo el que contradiga su "conocimiento" a costa de su "experiencia" (quizá) sea erróneo.

Se cierran mucho a sus ideas, la razón del por qué va lento en realidad puede ser a la gran cantidad de bucles que puedan tener, a consultas muy poco elaboradas.

Pero igualmente, siempre hay cada clase en cada foro (la que se va por su lado creyendo que todos los demás pueden estar equivocados porque creen que los demás creen que son más inteligentes que ellos), y al parecer dudan de la veracidad de que tenga esa cantidad de cuentas registradas; dejarme decirles que el hecho de que sea salvadoreño no implica que no pueda tener a mi disposición un buen servidor y una buena comunidad (ya que al parecer ustedes miden la capacidad para ayudar con la experiencia que ni si quiera ustedes saben que otros pueden poseer).
« Última Modificación: mayo 11, 2016, 10:04:13 am por _Zume »

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14583
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:Manejo de datos en Excel
« Respuesta #20 : mayo 11, 2016, 10:05:22 am »
Si bien es cierto que el compañero del que hablan suele compartir ideas incongruentes, no implica que todo el que contradiga su "conocimiento" a costa de su "experiencia" (quizá) sea erróneo.
no solo es incongruente, lo que hace es decir un vergo de palabras fumadas juntas con la esperanza que signifique algo para apantallar a la gente que no sabe y hacerles pensar que tiene algun conocimiento tan astral que nadie lo entiende. es un loquito hablando de naves espaciales y zombies.


Pero igualmente, siempre cada clase en cada foro (la que se va por su lado creyendo que todos los demás pueden estar equivocados porque creen que los demás creen que son más inteligentes que ellos)
hay una diferencia entre creerse mas inteligente que alguien y sentirle el tufo a la m!erda que hablan algunos y ponerlos en evidencia de que estan hablando pura caca. a mi no me sirve que alguien sepa que soy inteligente, pero a la gente que no conoce si le sirve el poder distinguir de la caca con chonguitas y perfume de la informacion real.