Software libre para la integración de información en la Universidad de Cádiz

39
Software libre para la integración de información en la Universidad de Cádiz Quincena de la Ingeniería, 2014 / Antonio García Domínguez @antoniogado

Transcript of Software libre para la integración de información en la Universidad de Cádiz

Page 1: Software libre para la integración de información en la Universidad de Cádiz

Software libre para laintegración de información en

la Universidad de CádizQuincena de la Ingeniería, 2014

/ Antonio García Domínguez @antoniogado

Page 2: Software libre para la integración de información en la Universidad de Cádiz

Presentación

Page 3: Software libre para la integración de información en la Universidad de Cádiz

¿Quién soy?2003/09 - 2008/07: Estudiante de Ingeniería Informática2008/10 - 2010/11: Profesor sustituto2010/11 - 2014/01: Becario predoctoral2014/01 - sigue: Técnico investigador en la DGSI

Page 4: Software libre para la integración de información en la Universidad de Cádiz

Proyectos y contribucionesPFC: (II CUSL)Investigación: servicios web e ingeniería dirigida por modelos

: pruebas unitarias para WS-BPEL: ingeniería dirigida por modelos

: mutación evolutiva para WS-BPEL: mi tesis

: generación dinámica de invariantes para WS-BPEL... y unos cuantos más :-)

XMLEye

BPELUnitEclipse EpsilonGAmeraSODM+TTakuan

Page 5: Software libre para la integración de información en la Universidad de Cádiz

¿Qué hacemos en la DGSI?DGSI = Dirección General de Sistemas de Información

Intermediarios entre demandas de información y fuentes de datos:Desde fuera: Ministerio (SIIU) y Junta de AndalucíaDesde dentro: Equipo de Gobierno, Ordenación Académica,Investigación, Innovación Docente...

Ayudamos a organizar los sistemas de información de la UCA:PHP: con framework (p. ej. Symfony)... o sin élDjangoRestos de Zope/PloneY un largo etcétera

Page 6: Software libre para la integración de información en la Universidad de Cádiz

Datos ➯Información

Page 7: Software libre para la integración de información en la Universidad de Cádiz

Pasos

Page 8: Software libre para la integración de información en la Universidad de Cádiz

Localizar las fuentes¿Qué es lo que tenemos?¿Quién es el responsable?¿Cuándo se actualiza?¿Cómo se mantiene?¿De qué forma se almacena?

En este paso pueden encontrarse problemas de calidad:puede haber que revisar el origen.

Page 9: Software libre para la integración de información en la Universidad de Cádiz

Carga en el almacén de datosEs el repositorio central con toda la información.Debe estar bien organizado en áreas de interés.Los problemas de calidad de datos deben estar resueltos.Identificadores únicos y formatos de campos uniformes (p. ej. sexo oID personal).

Page 10: Software libre para la integración de información en la Universidad de Cádiz

Carga en el almacén de datosEn resumen...

Page 11: Software libre para la integración de información en la Universidad de Cádiz

Explotación de los datos¿Y ahora qué?

Depende del tipo de toma de decisiones,y del tiempo del destinatario.

Operacionales: listados de operaciones cotidianas.Tácticas: cubos multidimensionales, top 10, estadísticas...Estratégicas: cubos y cuadros de mando (+ interactividad).

Page 12: Software libre para la integración de información en la Universidad de Cádiz

Herramientaspara carga

Page 13: Software libre para la integración de información en la Universidad de Cádiz

KettlePara definición de procesos ETL:

Extract: leemos datos (SQL, JSON, XML, Access, Excel...)Transform: reordenamos, limpiamos, reemplazamos...Load: volcado a una tabla de una BD, un CSV, etc.

Dispone de Spoon (editor gráfico), Kitchen y Pan (ejecutan desde CLI)y Carte (servidor)Basado en Java y muchas bibliotecas existentes (p. ej. Apache POI)Adquirido por Pentaho: ahora es Pentaho Data IntegrationCódigo disponible en Se puede descargar de

GithubPentaho Community

Page 14: Software libre para la integración de información en la Universidad de Cádiz

Kettle: ejemplo detransformación

Aristas = flujos de filas

Page 15: Software libre para la integración de información en la Universidad de Cádiz

Kettle: ejemplo de trabajoAristas = flujos de control

Page 16: Software libre para la integración de información en la Universidad de Cádiz

OpenRefineOriginalmente Google Refine, ahora es un Es muy útil para hacer una primera inspección de un .xlsx ydetectar problemas de calidad

proyecto abierto

Page 17: Software libre para la integración de información en la Universidad de Cádiz

LibreOfficeFuera esos .xls y .xlsx ☺

La biblioteca Apache POI en Kettle no maneja bien macros ExcelPor suerte, implementa conversiones masivas:

150+ ficheros .xls, .ods y .xlsx Excel: listos en un par de minutos

LibreOfficelibreoffice --headless --convert-to csv --outdir out *.xls *.xlsx

Page 18: Software libre para la integración de información en la Universidad de Cádiz

Herramientas UNIX y scriptingUNIX: ¡troceando texto plano desde los '70!Sólo con y ya se puede hacer muchísimoEn casos más complejos , o resuelven el problemaOjo: no todo se resuelve a base de expresiones regulares

grep sedPython Perl Ruby

(?:(?:\r\n)?[ \t])*(?:(?:(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[̂\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[̂\"\r\\]|\\.|(?:(?:\r\n)?[\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([̂\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([̂\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[̂\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([̂\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([̂\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([̂\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([̂\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[̂\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[̂\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([̂\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([̂\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[̂()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[̂\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[̂()<>@,;:\\".\[\]

¿Alguien adivina qué hace esta bonita regexp?

Page 19: Software libre para la integración de información en la Universidad de Cádiz

Vistas de BD y PL/SQLMás cerca del origen = mayor eficienciaSQL es muy conciso para ciertas cosas (para otras, no tanto)Con muchos datos (200k+ filas), es mejor hacer lo posible en BDHay que tirar de EXPLAIN y revisar las estructuras de datos e índicesque pueda haber

Page 20: Software libre para la integración de información en la Universidad de Cádiz

Herramientaspara explotación

Page 21: Software libre para la integración de información en la Universidad de Cádiz

Pentaho BI ServerServidor de Inteligencia Empresarial y Analíticas de Negocio: puntode entrada a toda la información extraída del almacénIntegración de muchos proyectos (GPL, EPL, MPL y demás)Código disponible en , binarios en Modelo de negocio "freemium" con dos ediciones:

Community: de código abierto y sin soporte oficialEnterprise: con extensiones cerradas y soporte oficial(~30.000€/año)

Gracias a la comunidad FLOSS, la edición Community tienefuncionalidad equivalente: (ahora parte de PentahoCorp.) contribuyó muchas mejoras, conocidas como las "CTools"

Github Pentaho Community

WebDetails

Page 22: Software libre para la integración de información en la Universidad de Cádiz

Pentaho BI Server

Demo

Page 23: Software libre para la integración de información en la Universidad de Cádiz

Pentaho Report DesignerAplicación de escritorio (Win/MacOS/Linux) para diseño de informesavanzados, basada en (otro proyecto abierto dePentaho)Los informes pueden consumir consultas SQL, MDX,transformaciones Kettle, etc.Permite exportar los informes a PDF, HTML, Excel y CSV, entre otrosLos informes pueden incorporar enlaces, gráficas, subinformes, etc.Una vez están listos, se publican al servidor y se visualizan desde ahí

JFreeReport

Page 24: Software libre para la integración de información en la Universidad de Cádiz

Pentaho Report Designer

Page 25: Software libre para la integración de información en la Universidad de Cádiz

Cubos OLAP: Mondrian y SaikuImaginemos que queremos estudiar las notas de los alumnos¿Cómo las guardamos para cualquier estudio que se nos ocurra?Podemos tener en una tabla una fila por nota, con:

Alumno (sexo, edad, años en la carrera, número de matrícula)Profesor (sexo, edad, categoría, área, departamento, centro, NIF)Estudios (titulación, plan, materia, curso, convocatoria)Nota obtenida (numérica y no numérica)

Page 26: Software libre para la integración de información en la Universidad de Cádiz

Cubos OLAP: Mondrian y Saiku

En el centro hay una tabla de hechosCada hecho está en unas dimensionesUn almacén tiene muchos de estos "esquemas en estrella"

Page 27: Software libre para la integración de información en la Universidad de Cádiz

Cubos OLAP: Mondrian y SaikuPodríamos intentar consultar estas estrellas con SQL, pero no seríaprácticoHay un estándar de facto para esto: MDX, originario de Microsoft

es un motor de código abierto que implementa undialecto de MDX

es un cliente cómodo para MDX que se integra en Pentaho

Mondrian

Saiku

Page 28: Software libre para la integración de información en la Universidad de Cádiz

Cubos OLAP: Mondrian y SaikuYou are using Saiku Community Edition, please consider

Page 29: Software libre para la integración de información en la Universidad de Cádiz

Cuadros de mando: CDF + CDEHay usuarios muy ocupados que no tienen tiempo de mirarinformes ni trastear con SaikuHay que darles la información ya lista, que deje explorar y que quepaen un pantallazo: un cuadro de mandoEl y el

permiten elaborar cuadros de mando sin mucha complicaciónCommunity Dashboard Framework Community Dashboard

Editor

Page 30: Software libre para la integración de información en la Universidad de Cádiz

Cuadros de mando: CDF + CDE

Type

Resource

Layout Structure

About Doc ume ntation

Ne w S ave S ave as ...

Page 31: Software libre para la integración de información en la Universidad de Cádiz

REST para datos: CDA aporta los servicios Web REST que necesita

CDF para los cuadros de mandoPor lo demás, un cuadro de mando es un fichero JSON que setransforma a HTML + JavaScriptLos servicios REST se pueden usar de forma independiente a CDA(para cualquier otra web)

Community Data Access

Page 32: Software libre para la integración de información en la Universidad de Cádiz

REST para datos: CDA

Filename: /public/plugin-samples/pentaho-cdf-dd/cde_sample1.cda

Page 33: Software libre para la integración de información en la Universidad de Cádiz

Validación automática: CDV permite comprobar automáticamente

fuentes CDAÚtil para detectar momentos en que las consultas fallan o tardandemasiado, o para detectar filas incorrectasSólo hay que indicar la ruta al fichero de CDA, el nombre de laconsulta, los parámetros y un trozo de JavaScript con la verificaciónSe pueden especificar expresiones cron para automatizar lascomprobaciones

Community Data Validator

Page 35: Software libre para la integración de información en la Universidad de Cádiz

En el puntode mira

Page 36: Software libre para la integración de información en la Universidad de Cádiz

Sparkl es otro proyecto más de la gente de las CTools

Permite crear extensiones para Pentaho usando transformacionesKettle y cuadros de mando CDEYa hay unos cuantos desarrollos nuevos subidos al PentahoMarketplace:

, un componente para CDE que implementa tablas OLAP alestilo de Saiku

, para sincronizar el repositorio JCR dePentaho con un directorio local

, para gestionar registros locales

Sparkl

BTable

Repository Synchronizer

Log Manager

Page 37: Software libre para la integración de información en la Universidad de Cádiz

CKAN es un proyecto de código abierto para portales de datos

abiertos (como debe ser)Está siendo adoptado por varias universidades del entorno (porejemplo, la Universidad de Granada)En la DGSI se está estudiando la posibilidad de abrir algunosconjuntos de datos al público, y podría ser una opción paraorganizarlos

CKAN

Page 38: Software libre para la integración de información en la Universidad de Cádiz

D3.jsLib. JavaScript para convertir datos en visualizaciones interactivasSólo utiliza estándares abiertos: HTML, CSS, SVG y JavaScript

mbostock’s block #5944371

Bilevel PartitionEjemplos: , , radiales colisiones NY Times

Page 39: Software libre para la integración de información en la Universidad de Cádiz

Fin de lapresentación

¡Gracias a todos!