Importación masiva - Local vs Cloud


([N2] Guille. Vecchio Orta) #1

He realizado una prueba de importación en la nube, con un proceso en tercer plano, y ha tardado 23 minutos en importar 100.000 registros con 26 campos aprox. La tabla posee un índice sobre el campo ID y otro sobre el campo NAME. La tabla real que debería utilizar, contiene el doble de campos y mas índices que los que detallé.

Si mal no he entendido:

- al realizar el proceso en primer plano, será mas rápido hacerlo en local que en la nube ya que influye el tiempo de transmisión de los datos.
- al realizar el proceso en tercer plano, con los datos a importar alojados en el servidor, ¿hay diferencia de rendimiento entre realizarlo de manera local o en la nube?

Motiva mi pregunta el hecho de que, al evaluar Velneo como posible herramienta, uno de los requisitos es poder realizar importaciones y exportaciones de manera frecuente, por lo que los tiempos deben ser, por lo menos, similares a los de otros productos del mercado.

Quizás con un servidor local se mejoren los tiempos o quizás, la solución sea optimizar el proceso...

Quedo a la espera de las opiniones de los mas experimentados, no sin antes agradecer vuestra colaboración.


([N2] Guille. Vecchio Orta) #2

¿Alguna sugerencia, opinión, comentario?


([N1] Pepeto) #3

Me alegro de que estes probando la herramienta y necesites realizar pruebas de este tipo para tomar una decision.

En este caso no puedo ayudarte, pues no se cuan impotante son las importaciones de datos y con que frecuencia vas a tener que realizarlas.

En mi caso, las importaciones se reducen al traspaso inicial de datos de algunos clientes y despues, los usuarios introducen la información directamente sobre la aplicacion, con lo que no suele haber nuevas importaciones, o en cualquier caso, son situaciones poco frecuentes.
Por ese motivo, yo no doy demasiada importancia al tiempo invertido en una importacion, y ni siquiera me procupa que en 1 plano o en 3 plano pueda haber unos minutos de diferencia, siempre y cuando sean pequeñas diferencias de tiempo, claro.

Imagino que debe ser un tema importante, cuando la decision depende de pruebas como esta, pero yo doy mas importancia a otras cosas, y hace tiempo que tome la decisión.

Solo puedo decir, que como herramienta de desarrollo sólo uso Velneo, y en algunos casos, PHP+vModApache para la web (pero siempre usando Velneo como base de datos).

un saludo.
José Luis
http://www.ascsl.com






([N2] Guille. Vecchio Orta) #4

José Luis, agradezco tu aporte.

En el caso que planteo, la carga inicial de datos es de aprox. 20.000.000 de registros con aprox. 50 campos. Teniendo en cuenta los tiempos obtenidos, nos llevaría aprox. 3 días completar la importación. Habiendo hecho la misma prueba con otro motor de base de datos, los tiempos obtenidos son sustancialmente menores, de ahí mi consulta con respecto a si el cuello de botella está dado por no utilizar un servidor local, aunque el proceso sea en tercer plano, o es cuestión de pulir el proceso de importación.

Con respecto al trabajo diario, uno de los requerimientos es realizar importaciones/exportaciones varias veces al día. Esto se debe a que los datos deben ser procesados por software externo, y luego actualizados en Velneo.

1- Recibo paquete de datos.
2- Importo en Velneo.
3- Exporto según requerimientos.
4- Proceso los datos con software externo.
5- Importo en Velneo y/o actualizo los campos modificados.
6- Exporto los datos para su utilización por el usuario final en otro software.
7- Importo en Velneo y/o actualizo los campos modificados.

Ese sería, a grandes rasgos, el circuito de la información.

Saludos cordiales,


([N1] Pepeto) #5

Lo único que te puedo decir, es que las pruebas realizadas en la nube (ya que eres N1) no deben ser concluyentes, por varias razones:

- Cierto que deberas hacer pruebas en local y en la nube para tomar referencias reales, pero los servidores gratuitos que utilizamos en la web de Velneo son compartidos con cientos de usuarios, y considero que no es nua prueba real del rendimiento de la base de datos.
- Cuando la aplicacion la tengas en producción, la tendras en un servidor local, o en un servidor dedicado en un hosting de calidad.
- La velicidad de la ADSL influye y mucho, si las importaciones/exportaciones las vas a realizar diariamente. Asi que tendras te probar de 2 formas, importacion en local, o subida de ficheros al servidor y realizar la importacion en el servidor
- Ademas de la velocidad del procesador, la memoria RAM y el posavasos para la cervecita.
- Y por supuesto, no olvides optimizar los procesos de importación, que son importantes.

Lo que te digo, es que para tener referencias reales, debes realizar las pruebas en condiciones similares a las reales. Las pruebas realizadas en la nube gratuita de Velneo son muy relativas.

un saludo
José Luis


([N1] wikan) #6

Estoy con @Pepeto, no es real la prueba que esta haciendo.
Debes hacer la prueba en tu entorno real de trabajo que vayas a usar. Ya que básicamente vas a depender equipo que haga de servidor y estar fino con el proceso de importación.


([N2] Guille. Vecchio Orta) #7

José Luis y Manuel, gracias por las respuestas. Es muy importante, para los recién iniciados, que gente con mas experiencia haga su aporte.

Con respecto al tema del servidor, si bien sospechaba lo que me comentan, confié en que los resultados serían mas parecidos a los del servidor local. Haré la compra de un N2 y realizaré la misma prueba, tal como sugiere José Luis, tanto en primer como en tercer plano y postearé los resultados comparativos. Quizás le sean útiles a alguien mas.

Con respecto a pulir el proceso de importación, en esto ya estoy mas complicado debido a mi escaso conocimiento. Pero, una vez resuelta la variable servidor, y si no es mucho pedir de mi parte, postearía el proceso a fin de recibir las sugerencias del caso.

Nuevamente gracias y saludos,


([N1] wikan) #8

Creo que hay alguna open apps sobre importación y exportación.
De todas formas sin problema ninguno en ayudarte en lo que mi conocimiento alcance


([N2] huntergps) #9

Hay que recodar que la velocidad de importación de los datos también depende mucho de la cantidad de indices que tenga la tabla, los valores iniciales, y los cálculos que realices sobre cada registro a importar.
Mientras menos indices y menor será el tiempo de importación

Un saludo

Att
Elmer
www.galapagostech.com


([N1] Giuseppe::Komenco) #10

@guille.vecchio.orta@gmail.com

Hablas que se tardan 3 días en importar los 20.000.000 de registros, pero hay algo que no comentas...como estás usando el proceso de importación? Estas atacando directamente por SQL otra BBDD? Esta BBDD está en el mismo server que el vServer? Si bien 3 días para 20.000.000 de registros es mucho tiempo, si es algo que sólo harás una vez, no es crítico en mi opinión, y, dependiendo de los tipos de datos a importar (facturas que se actualizan cada día, etc..), se podría realizar en varios pasos. Las importaciones/exportaciones diarias no son de 20M de registros no? Quizás sea el proceso que no esté optimizado?

Hay tantas preguntas..


([N4] jordimas) #11

Si realizas la importación con ficheros de texto, este es un ejemplo, creo que óptimo si lo ejecutas en 3p.
La función stringSection() es muy útil para no tener que ir buscando el separador de campo, como nos pasaba en 6.X

[attachment=22658,1753]


([N2] Guille. Vecchio Orta) #12

Luego de hacer las pruebas pertinentes, tanto en la nube como en local, posteo los tiempos cronometrados.

En el caso de las conexión vía Internet, las pruebas se hicieron con una conexión ADSL de hasta 6MB de bajada y 768KB de subida. Del router a los equipos, se utilizó una conexión WIFI de 54MBPS. En el caso de la conexión local, se utilizó la misma conexión WIFI del ejemplo anterior.

El equipo donde esta instalado el vServer,(7.8.2.10371),contiene un Athlon II X2 220 a 2.8GHZ, 2GB DDR3, 500GB HD SATA II y Windows 7 Starter.

El archivo de texto importado consta de 100.000 registros y 26 campos separados por ";".

Adjunto 2 imágenes con el proceso correspondiente y la definición de la tabla destino.

VSERVER NUBE VELNEO INTERNET 3ER PLANO 23 MINUTOS
VSERVER NUBE ARGENTINA INTERNET 3ER PLANO 18 MINUTOS

VSERVER LOCAL LAN 3ER PLANO 14 MINUTOS

VSERVER LOCAL MONOPUESTO 1ER PLANO 17 MINUTOS
VSERVER LOCAL MONOPUESTO 3ER PLANO 7 MINUTOS

Sin más, los saludo cordialmente desde Argentina,

[attachment=22663,1754] [attachment=22663,1755]


([N1] wikan) #13

Pregunta...
- ¿Necesitas tantos índices? Supongo que realmente la tabla final no tendrá índice por cada campo que importes.
- ¿El fichero lo envias al servidor en cualquier caso para que sea procesado desde el propio servidor?

En mi experencia con importaciones de grandes líneas la función de extraer string me penalizaba. Así que iba cortando la ristra a medida que importaba. Ya que con cada campo estás buscando el separador en x posición. Cuando realmente siempre usas hasta el primer separador. Por lo que los últimos campos te penalizan.


([N4] jmgonzalez.velneo) #14

Sobre todo puede penalizarte el indice por palabras (WORDS) y por trozos (PARTS). Además como dice manuel.rd, necesitas el resto de los índices? Vas a buscar por esos campos. Cuántos menos índices tengas muchisimoooo mejor!

Saludos