Ir al contenido principal

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

Posit Cloud - como instalar librerías de Python en el entorno de R

 Ahora que estamos tomando una maestría buscando que siga "girando la ardilla" por unos años más en la materia de "Cómputo Estadístico" nos ha sugerido usar la versión gratuita de Posit en la nube. En su página definen este producto como "es una solución basada en la nube que permite acceder al poderoso conjunto de herramientas de ciencia de datos de Posit directamente en el navegador web  - sin requerir instalación o configuraciones complejas". Para los usuarios que han utilizado Posit RStudio en primera instancia verán el entorno muy similar a Posit Cloud con algunas pequeñas diferencias, para empezar necesitamos un usuario o contraseña aunque es posible autenticarse usando alguna cuenta existente como es el caso de Google. Con el tiempo y trabajando en desarrollo de software, vamos entendiendo que quizás el nombre queda muy grande a los pequeños ejemplos, pero es muy recomendable el uso de proyectos siempre. A continuación vemos el entorno Posit Clo...

REDATAM en Ubuntu (Linux)

 En un blog alterno, escribí sobre como migraba un "viejo" Intel i5 al sistema operativo Ubuntu en su versión más actual. Me comunique con mi gran colega Lenin de la CELADE en Chile, después de mucho tiempo, y le pedí me diera un pequeño resumen del "estado del arte" de REDATAM me dijo que todo marchaba bien, y pues ahora creo que tengo que actualizarme en contenedores pues el web server se encuentra ahí. Nos pusimos manos a la obra, el instalable desde la página no tiene ninguna extensión de archivo, asumí que era un ejecutable para Linux, no se si la página sufra ataques constantes ya que después quise volver a descargar sin éxito, la página estaba caida, sin embargo rescate el ejecutable anteriormente descargado. Últimamente primero hago y después documento, ya que con todo y mi compañero Deep,  no todo sale a la primera ni como lo dictan sus sugerencias, sobre todo en Linux y MacOS.  Por lo que, les muestro solo el resultado final de esta primera exploración, im...

El problema del gallo - otra vertiente de usar Python en RMarkdown con Posit RStudio

Cuando pensamos que ya se había cruzado el río, el buen gallo - mi amigo el Dany  Lara- no podía insertar código de Python  en un documento de RMarkdown  usando la versión de escritorio de Posit RStudio a pesar de las soluciones como instalar el Python y direccionarlo desde R con la biblioteca reticulate . Si bien se podía ejecutar código del interprete base, al querer correr usando módulos y con ello intentando instalar dichos módulos mandaba el siguiente mensaje: > py_install('matplotlib') Using virtual environment "D:/tu_usuario/Documents/.virtualenvs/r-reticulate" ... WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))': /simple/matplotlib/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) a...