Enterprise Data Analytics, en adelante EDA, es una aplicación web desarrollada por Jortilles para el análisis y visualización de datos. EDA es una aplicación web especialmente diseñada para que sea fácil de utilizar por usuarios de negocio sin conocimientos técnicos.
EDA es una aplicación web moderna desarrollada bajo los patrones de diseño actuales, siendo responsiva y adaptativa.
EDA permite generar modelos lógicos sobre una base de datos relacional. Aplicar seguridad a nivel de datos y realizar informes sobre ese modelo lógico.
A continuación se muestra un ejemplo de un informe realizado con EDA.
A continuación se describen las principales características y funcionalidades de EDA
EDA permite realizar un modelo lógico de datos a partir del cual, los usuarios, podrán realizar informes de forma sencilla e intuitiva.
Un usuario administrador puede generar modelos de datos. Para generar un modelo de datos un usuario administrador deberá configurar una conexión a base de datos y darle un nombre:
Una vez proporcionados los datos de conexión EDA generará un modelo lógico de forma automática. Generando:
Generando un modelo lógico enriquecido con nombres y descripciones que permitirán al usuario de negocio conocer perfectamente el contenido del modelo de datos.
Los modelos de datos se pueden enriquecer con:
Los modelos de datos se pueden securizar a nivel de datos permitiendo definir seguridad a nivel de registro. La seguridad se aplica al usuario de la sesión.
Los conectores a los diferentes sistemas gestores de bases de datos se han desarrollado de forma modular. De este modo incorporar una nueva conexión a un origen nuevo es sencillo de implementar.
En el momento de escribir este documento EDA se conecta a:
EDA genera el modelo de datos de forma automatizada. Pero esto es sólo una ayuda. El modelo de datos se puede personalizar:
La aplicación está diseñada para que sea especialmente sencilla de utilizar. Contando con una pantalla principal clara e intuitiva. Disponiendo de las principales funcionalidades a un solo clic de distancia:
Pudiendo generar un nuevo informe (1) o acceder a un informe ya definido dependiendo del nivel de visibilidad existente (2)
Para crear un nuevo informe tan sólo hay que clicar sobre el botón “nuevo informe” de la pantalla principal.
Tras lo cual hay que darle un nombre y escoger el modelo de datos sobre el que se realizará el informe.
Una vez configurado el informe se genera un “informe en blanco” con el título y un primer panel disponible.
Un informe se configura añadiendo paneles. Los paneles son los contenedores donde ubicaremos los diferentes objetos.
Un informe se compone por:
Para configura un panel hay que clicar en el botón ubicado en la parte superior derecha del panel. Una vez abierta la ventana de opciones se puede editar la consulta sobre el modelo de datos.
La interfaz para configurar una consulta de un panel está especialmente diseñada para ser intuitiva. Presentando entidades y atributos con nombres definidos en el modelo de datos y expresados en términos entendibles por el usuario
Un usuario tan sólo deberá escoger una entidad, un atributo de dicha entidad y arrastrar el campo a la casilla de selección.
En caso de que se quiera definir un filtro aplicable a la consulta del panel se deberá arrastrar el atributo a la casilla de los filtros.
Para filtrar por un valor de un atributo habrá que clicar sobre el atributo ubicado en la barra de selección o en la barra de filtro y definir el filtro deseado.
Una vez definidos los atributos que deseamos visualizar y filtrar, procederemos a configurar la consulta definiendo ordenaciones, agregaciones y formato en caso de que proceda para cada atributo. Para hacer esto tan sólo hay que clickar sobre el nombre del atributo y ajustar las opciones disponibles.
Finalmente una vez que tenemos la consulta definida la podemos ejecutar:
Tras lo cual se mostrará una vista previa del resultado. Por defecto como una tabla de datos.
En este momento se puede elegir la visualización. Mantener la tabla de datos o seleccionar una de las visualizaciones disponibles para los datos escogidos.
El listado de visualizaciones nos muestra las opciones disponibles. Mostrando cómo no disponibles las que, por sus requerimientos específicos, no son posibles de utilizar. En caso de que pasemos el ratón por encima de la opción no disponible obtendremos una explicación de los motivos.
Una vez escogida la visualización deseada se puede confirmar la configuración del panel para obtener el resultado deseado.
Cada vez que hagamos un cambio en la configuración del informe nos aparecerá una alerta informándonos de que “Hay cambios sin guardar”.
Los paneles se pueden redimensionar a voluntad sobre la cuadricula de diseño clicando sobre un borde y arrastrando. Si se clica sobre la punta inferior derecha se podrá definir altura y anchura.
Los paneles se pueden mover a cualquier posición de la pantalla dentro de la cuadricula clicando sobre el texto y arrastrándolo al punto deseado.
Un informe puede tener filtros basados en el modelo de datos sobre el que se construye el mismo.
Para añadir un nuevo filtro hay que hacer clic en la rueda que está en la parte inferior derecha de la pantalla. Tras lo cual, nos aparecerá el menú de acciones asociadas al informe y donde podremos añadir un nuevo filtro.
Tras lo cual nos aparecerá la pantalla de configuración del filtro donde:
(1) Podremos decidir si el filtro aplica a “todo el informe” o tan sólo a algunos paneles concretos (2). Y podremos elegir sobre qué entidad (3) y atributo (4) queremos filtrar.
Con el fin de facilitar las consultas. Debido a que el informe guarda integridad. Es recomendable definir los filtros al final. Una vez hayamos definido todos los paneles.
En caso de que tengamos un panel sin configurar. No podremos definir un nuevo filtro. Deberemos configurar todos los paneles de informe primero y luego los filtros. El motivo vuelve a ser la integridad del informe.
Dado que los filtros son multi-selectores por defecto. Para aplicar un filtro habrá que realizar la selección deseada (1) y clicar en el botón “Filtrar” (2)
En ocasiones es necesario incluir un texto explicativo en alguna parte del informe. Con tal fin se ha creado el componente Texto. Para poder poner un texto libre. Para poder añadir un nuevo texto al informe hay que clicar en la rueda inferior derecha y a continuación sobre el botón “Nuevo Texto”
En el momento de redactar este documento es posible visualizar los datos cómo:
EDA pone un foco especial en la facilidad de uso y en la abstracción de los conocimientos técnicos necesarios para realizar consultas contra una base de datos. Pero en ocasiones es necesario recurrir a la potencia del SQL para realizar algunas consultas complejas.
Para ello EDA pone a disposición de los usuarios avanzados el “Modo SQL”. Para acceder a este modo hay que accionar el interruptor que se encuentra en la parte superior derecha del diálogo de definición de consulta en la configuración de un panel (1)
Accionando este interruptor (1) se puede cambiar del “Modo EDA”, el modo normal de EDA a este “Modo SQL” donde los usuarios avanzados podrán definir y ejecutar consultas SQL nativas contra la base de datos.
Una vez accionado el interruptor de “Modo SQL” (1) el usuario podrá definir su consulta SQL libre en el área de texto dispuesta para tal objetivo (2) y especificar una de las tablas principales del modelo de datos sobre el que se basa el informe (3).
Las consultas. Son consultas SQL nativas libres teniendo en cuenta las siguientes restricciones:
Con el fin de facilitar la interacción avanzada con consultas SQL se dispone de una ayuda (3) en la misma pantalla que nos recordarán:
Una vez definida nuestra consulta sql (2) y identificada la tabla principal. Ya podemos ejecutar la consulta y utilizarla con normalidad cómo si fuera cualquier otra consulta de cualquier otro panel.
Las consultas SQL nativas son pareadas por EDA y se inyectan los posibles filtros de acceso al dato que pudieran existir en el modelo en el que se basa el informe.
Si se desea vincular la consulta con los filtros del informe se deberá:
A continuación se muestran algunos ejemplos:
SELECT c.customername
FROM CUSTOMERS c
SELECT c.customername FROM CUSTOMERS c
WHERE c.customername IN (‘Julia’, ‘John’)
SELECT c.customername
FROM CUSTOMERS c
WHERE c.customername IN (‘Julia’, ‘john’) AND ${c.city}
SELECT e.employee_name
FROM EMPLOYEE e
WHERE e.employee_name IN (‘Julia’, ‘John’)
SELECT e.employee_name FROM EMPLOYEE e
INNER JOIN OFFICES o ON o.office_id = e.office_id
WHERE e.employee_name IN (‘Julia’, ‘John’) AND ${o.office_id}
Seguridad a nivel de dato
EDA permite incorporar seguridad a nivel de dato, tanto a nivel de usuario como a nivel de grupo.
La seguridad se aplica asignando a cada usuario o grupo un conjunto de valores de una columna, éstos valores son los que el usuario o grupo estará autorizado a ver, de modo que todas las consultas -tanto si son de tipo EDA como si son consultas libres- realizarán la comprobación de seguridad antes de devolver datos.
La comprobación de seguridad consiste en determinar las relaciones entre las tablas de la consulta y las tablas con permisos, si las tablas están relacionadas se aplicará un inner join con las tablas con permisos para filtrar los resultados al usuario según los permisos definidos.
En consecuencia, las tablas que no estén relacionadas con aquellas a las que aplicamos seguridad no filtraran ninguna información (mostrarán todos los datos).
Se pueden aplicar permisos sobre más de una columna en una misma tabla y sobre distintas columnas de distintas tablas.
Por ejemplo, supongamos que disponemos de una tabla “Empleados” que contiene las ID de los usuarios de EDA, y que ésta tabla está vinculada con otras tablas del modelo de datos.
Desde la pantalla de edición del modelo, seleccionamos la columna sobre la que aplicarán los permisos, en éste caso la tabla es “Employees” y la columna es “Employeenumber”.
Una vez seleccionada la columna (1), se muestra el menú de edición para ésta columna:
El botón “añadir permiso” (2) habilita el menú de edición de los permisos para esta columna, donde podemos elegir si queremos dar permisos de usuario o de grupo (el funcionamiento es idéntico):
Una vez dentro del panel de edición de permisos seleccionamos el usuario (o grupo) deseado y los valores que está autorizado a ver. También es posible marcar un usuario o grupo como autorizado a ver todos los datos marcando la opción “Todos”.
A partir de ese momento, todas las consultas que contengan campos de tablas relacionadas con la tabla “Employees” filtrarán la información en base a los permisos dados para ese usuario o grupo.
Una vez damos permisos de grupo o de usuario, el modelo se marca como securizado y a partir de ese momento, un usuario o grupo sin permisos no puede acceder a ningún dato del modelo, es decir: se marca como usuario sin ningún permiso, incluyendo al administrador.
Esto implica que cuando se genere un informe, los usuarios sin permisos no verán ese modelo entre los disponibles, y que en caso de acceder a un informe basado en ese modelo se lanzará un error advirtiendo de la falta de permisos y se mostrarán los paneles vacíos. El administrador tendrá acceso a los modelos y su edición, pero no a los datos de los mismos.
De éste modo, una vez damos permisos hay tres niveles de usuarios/grupos:
Si un usuario tiene permisos de grupo e individuales ambos aplican, así si por ejemplo como usuario puede ver los valores (1, 2, 3) y como grupo puede ver los valores (4, 5, 6) en la práctica no podrá ver ninguno de ellos.
Es responsabilidad del administrador otorgar los permisos de forma consistente con el modelo de datos.
Seguridad a nivel de informes
Los informes pueden marcarse como:
Ésta clasificación se puede asignar tanto al crear el informe (1) como una vez creado (2), exceptuando la clasificación “publico”, que hay que asignarla una vez el informe está creado y dispone de una URL.
1.Panel de creación de informes
2.Edición de los permisos del informe:
Se puede controlar la información que se muestra en los informes públicos editando los permisos a nivel de dato para el usuario “anónimo”, creado por defecto al instalar la aplicación.
Ambas dimensiones de la seguridad (a nivel de dato, a nivel de informe) funcionan conjuntamente, así es posible que dos usuarios del mismo grupo dispongan de permisos diferentes. En éste caso, ambos podrán ver los informes de grupo del otro, pero no necesariamente verán la misma información, según los permisos individuales que tengan asignados.
EDA es una aplicación web desarrollada siguiendo las técnicas actuales de programación. Utilizando Angular para el frontend y Node.js para el backend. Cómo base de datos interna de funcionamiento utiliza MongoDB.
Cómo servidor web se puede utilizar Apache https server o NginX
EDA es una aplicación Open Source y su código está libremente accesible en Github ( https://github.com/jortilles/EDA )
Jortilles ofrece EDA en modo SAS. De este modo se puede disfrutar de un servidor EDA siempre actualizado y administrado por Jortilles por una cuota mensual. Si optamos por esta opción dispondremos de un servidor en internet para nosotros bajo la url https://edaserver.com/mi_empresa
docker run -p 80:80 jortilles/eda:latest
Existen varias opciones de despliegue. A continuación se muestra la configuración básica a partir de la cual se puede realizar modificaciones.
1. Clonar el repositorio de GIT:
git clone https://github.com/jortilles/EDA.git
2. Configurar la base de datos en eda_api/config/database.config.js
3. Configurar el backend en eda_app/src/app/config/config.ts
4. Instalar y arrancar
cd eda_api
npm install
npm start
cd eda_app
npm install
npm start
EDA es un producto en constante desarrollo. Esta guía está basada en la versión 1.4 del producto. En caso de acceder a una versión más reciente puede que esta guía quede desactualizada. Existiendo funcionalidades no descritas.
Jortilles es el desarrollador de EDA. En caso de tener cualquier duda. Póngase en contacto con nosotros en info@jortilles.com