Las odiosas comparaciones

Seguimos con el tema de los grandes conjuntos de datos y ahora hacemos unas pruebas de rendimiento en cuanto a consultas básicas, vamos a hacer un cruce entre mes de registro del puesto de trabajo y sexo de la persona que lo ocupa.

Base de datos Oracle Hexadata 12c

 Después de haber importado los archivos de texto con los datos de los puestos de trabajo para crear la base de datos de Oracle se procedió a hacer consultas para ver los tiempos de respuesta, para ello se utilizó una consulta usando el PIVOT del PLSQL de Oracle y se utilizó la VPN para realizarla desde home-office.

El resultado de esta consulta fue de 3:19 minutos.


Redatam R+SP

Usando la base de datos de Oracle pudimos construir la base de datos para Redatam e hicimos el mismo cruce para también determinar el tiempo de ejecución de este proceso, no pude observar donde marcaba el tiempo de procesamiento por lo que lo hice cronometro en mano.


Sigue siendo sorprendente es menor que el de la consulta de Oracle, Redatam en su versión anterior R+SP tardó 2:13 minutos.

Redatam 7

Redatam en su versión 7 mejora en varios aspectos ya que en vez de archivos de texto ahora son archivos de XML, por ahora en velocidad no supera a su versión anterior pero vamos a esperar la versión REDATAM X.

Tenemos una herramienta llamada Red7 Admin con la cual convertimos la base de datos en formato anterior (extensión dic) al formato nuevo (extensión dicX).

En el menú “Conversion” se elige la opción “Dic To XML” este proceso no lleva mucho tiempo y se obtiene el Diccionario (base de datos REDATAM) con el que vamos a hacer la consulta.





Aquí el resultado del cruce mencionado, en este caso cuando inicia el proceso hay una ventana donde muestra diferentes datos entre ellos el tiempo que se llevó la consulta, aunque esta ventana desaparece cuando se muestran los resultados.



Esta consulta le llevó a REDATAM 5:45 minutos.

R con Spark.

Ahora vamos con Stark usando el lenguaje de programación R, nuevamente se hace un gran archivo de texto delimitado (csv) usando la base de datos de Oracle, para subirlo a un dataset de Spark se llevó entre 38 y 39 minutos.

Una cosa interesante es que las instrucciones que realizan las consultas sobre el objeto Spark duran segundos, pero cuando se consultan los datos de los objetos resultantes es ahí cuando R empieza a ejecutar Jobs.

Por ahora el procedimiento es hacer las consultas sobre los objetos Spark usando el paquete dplyr se mandan a archivos csv para luego volverlos a subir a dataframes de R para finalmente hacer el reporte.

Puede ser que esta no sea la manera óptima para hacer el reporte debido a mi poca experiencia con Spark.


Este script de R se ejecutó en 27:44 minutos.

Conclusiones y reflexiones finales.

Estadística: Puestos de trabajo registrados ante el IMSS 2016.

Consulta: Cruce de mes de registro del puesto de trabajo contra sexo de la persona que ocupa el puesto de trabajo.

Número de registros o tuplas: 220, 816,117

Equipo donde se ejecutaron los procesos:

Laptop HP AMD A8 2.1 Ghz 8Gb de RAM

Software

Entorno de ejecución

Duración del proceso

Redatam R+SP

Standalone

2:13 minutos

Oracle 12c

Acceso a servidor mediante VPN

3:19 minutos

Redatam 7

Standalone

5:45 minutos

R con Spark

Standalone

27:44 minutos

 

Sin duda el lenguaje R tiene un sinfín de posibilidades y ventajas sin embargo es interesante ver otras opciones que sin bien no tienen todo el potencial de R, pueden ser de ayuda para usuarios menos experimentados en el manejo de lenguajes de programación o el perfil matemático.

Oracle es uno de los motores de base de datos más robusto y mejor posicionado en el mercado y revisando la documentación tiene módulos para trabajar con R y Spark. Puede ser que lo superó una de las versiones de Redatam debido al tipo de cuenta y quizás se pueda configurar para tener una respuesta más rápida.

En el caso de Redatam es más cerrado y para nada tiene tanta extensibilidad (aunque hay esfuerzos de trabajar por medio de plug-ins con algunos lenguajes como Python) pero considero que para consultas y estadísticos muy básicos sigue siendo una excelente herramienta para “el resto de personas interesadas en este mundo de la estadística”, aunque también debo de señalar que no tengo todos los elementos para constatar sobre que tan cerrado y poco extensible es, ya que por cuestiones de que nos enfocamos a otras herramientas y de vez en cuando, como ahora regresamos a probar la herramienta nuevamente.

Seguiremos publicando más de las herramientas de software en futuras entregas.

Miguel Araujo.


Comentarios

Entradas populares de este blog

Librería de REDATAM para R

Conectar bases de datos Oracle con R vía JDBC

Red 7 Admin