SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Software libre para la
integración de información en
la Universidad de Cádiz
Quincena de la Ingeniería, 2014
/AntonioGarcía Domínguez @antoniogado
Presentación
¿Quién soy?
2003/09 - 2008/07: Estudiante de Ingeniería Informática
2008/10 - 2010/11: Profesor sustituto
2010/11 - 2014/01: Becario predoctoral
2014/01 - sigue: Técnico investigador en la DGSI
Proyectos y contribuciones
PFC: (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
BPELUnit
Eclipse Epsilon
GAmera
SODM+T
Takuan
¿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ía
Desde 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 él
Django
Restos de Zope/Plone
Y un largo etcétera
Datos ➯
Información
Pasos
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.
Carga en el almacén de datos
Es 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 o
ID personal).
Carga en el almacén de datos
En resumen...
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).
Herramientas
para carga
Kettle
Para 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 Integration
Código disponible en
Se puede descargar de
Github
Pentaho Community
Kettle: ejemplo de
transformación
Aristas = flujos de filas
Kettle: ejemplo de trabajo
Aristas = flujos de control
OpenRefine
Originalmente Google Refine, ahora es un
Es muy útil para hacer una primera inspección de un .xlsxy
detectar problemas de calidad
proyecto abierto
LibreOffice
Fuera esos .xls y .xlsx ☺
La biblioteca Apache POI en Kettle no maneja bien macros Excel
Por suerte, implementa conversiones masivas:
150+ ficheros .xls, .ods y .xlsx Excel: listos en un par de minutos
LibreOffice
libreoffice--headless--convert-tocsv--outdirout*.xls*.xlsx
Herramientas UNIX y scripting
UNIX: ¡troceando texto plano desde los '70!
Sólo con y ya se puede hacer muchísimo
En casos más complejos , o resuelven el problema
Ojo: no todo se resuelve a base de expresiones regulares
grep sed
Python Perl Ruby
(?:(?:rn)?[t])*(?:(?:(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[t]
)+|Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[t]))*"(?:(?:
rn)?[t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:(
?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[
t]))*"(?:(?:rn)?[t])*))*@(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-0
31]+(?:(?:(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*
](?:(?:rn)?[t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+
(?:(?:(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:
(?:rn)?[t])*))*|(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[t])+|Z
|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[t]))*"(?:(?:rn)
?[t])*)*<(?:(?:rn)?[t])*(?:@(?:[^()<>@,;:".[]000-031]+(?:(?:(?:
rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(?:rn)?[
t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)
?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(?:rn)?[t]
)*))*(?:,@(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[
t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(?:rn)?[t])*
)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[t]
)+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(?:rn)?[t])*))*)
*:(?:(?:rn)?[t])*)?(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[t])+
|Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[t]))*"(?:(?:r
n)?[t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:(?:
rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[t
]))*"(?:(?:rn)?[t])*))*@(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031
]+(?:(?:(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](
?:(?:rn)?[t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?
:(?:(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(?
:rn)?[t])*))*>(?:(?:rn)?[t])*)|(?:[^()<>@,;:".[]000-031]+(?:(?
:(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?
[t]))*"(?:(?:rn)?[t])*)*:(?:(?:rn)?[t])*(?:(?:(?:[^()<>@,;:".[]
¿Alguien adivina qué hace esta bonita regexp?
Vistas de BD y PL/SQL
Más cerca del origen = mayor eficiencia
SQL es muy conciso para ciertas cosas (para otras, no tanto)
Con muchos datos (200k+ filas), es mejor hacer lo posible en BD
Hay que tirar de EXPLAIN y revisar las estructuras de datos e índices
que pueda haber
Herramientas
para explotación
Pentaho BI Server
Servidor de Inteligencia Empresarial y Analíticas de Negocio: punto
de entrada a toda la información extraída del almacén
Integració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 oficial
Enterprise: con extensiones cerradas y soporte oficial
(~30.000€/año)
Gracias a la comunidad FLOSS, la edición Community tiene
funcionalidad equivalente: (ahora parte de Pentaho
Corp.) contribuyó muchas mejoras, conocidas como las "CTools"
Github Pentaho Community
WebDetails
Pentaho BI Server
Demo
Pentaho Report Designer
Aplicación de escritorio (Win/MacOS/Linux) para diseño de informes
avanzados, basada en (otro proyecto abierto de
Pentaho)
Los informes pueden consumir consultas SQL, MDX,
transformaciones Kettle, etc.
Permite exportar los informes a PDF, HTML, Excel y CSV, entre otros
Los informes pueden incorporar enlaces, gráficas, subinformes, etc.
Una vez están listos, se publican al servidor y se visualizan desde ahí
JFreeReport
Pentaho Report Designer
Cubos OLAP: Mondrian y Saiku
Imaginemos 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)
Cubos OLAP: Mondrian y Saiku
En el centro hay una tabla de hechos
Cada hecho está en unas dimensiones
Un almacén tiene muchos de estos "esquemas en estrella"
Cubos OLAP: Mondrian y Saiku
Podríamos intentar consultar estas estrellas con SQL, pero no sería
práctico
Hay un estándar de facto para esto: MDX, originario de Microsoft
es un motor de código abierto que implementa un
dialecto de MDX
es un cliente cómodo para MDX que se integra en Pentaho
Mondrian
Saiku
Cubos OLAP: Mondrian y Saiku
You are using Saiku Community Edition, please consider
Cuadros de mando: CDF + CDE
Hay usuarios muy ocupados que no tienen tiempo de mirar
informes ni trastear con Saiku
Hay que darles la información ya lista, que deje explorar y que quepa
en un pantallazo: un cuadro de mando
El y el
permiten elaborar cuadros de mando sin mucha complicación
Community Dashboard Framework Community Dashboard
Editor
Cuadros de mando: CDF + CDE
Type
Resource
Layout Structure
About Documentation
New Save Save as...
REST para datos: CDA
aporta los servicios Web REST que necesita
CDF para los cuadros de mando
Por lo demás, un cuadro de mando es un fichero JSON que se
transforma a HTML + JavaScript
Los servicios REST se pueden usar de forma independiente a CDA
(para cualquier otra web)
Community Data Access
REST para datos: CDA
Filename: /public/plugin-samples/pentaho-cdf-dd/cde_sample1.cda
Validación automática: CDV
permite comprobar automáticamente
fuentes CDA
Útil para detectar momentos en que las consultas fallan o tardan
demasiado, o para detectar filas incorrectas
Sólo hay que indicar la ruta al fichero de CDA, el nombre de la
consulta, los parámetros y un trozo de JavaScript con la verificación
Se pueden especificar expresiones cron para automatizar las
comprobaciones
Community Data Validator
Validación automática: CDV
Validations Alerts CDA Errors
Search:
En el punto
de mira
Sparkl
es otro proyecto más de la gente de las CTools
Permite crear extensiones para Pentaho usando transformaciones
Kettle y cuadros de mando CDE
Ya hay unos cuantos desarrollos nuevos subidos al Pentaho
Marketplace:
, un componente para CDE que implementa tablas OLAP al
estilo de Saiku
, para sincronizar el repositorio JCR de
Pentaho con un directorio local
, para gestionar registros locales
Sparkl
BTable
Repository Synchronizer
Log Manager
CKAN
es un proyecto de código abierto para portales de datos
abiertos (como debe ser)
Está siendo adoptado por varias universidades del entorno (por
ejemplo, la Universidad de Granada)
En la DGSI se está estudiando la posibilidad de abrir algunos
conjuntos de datos al público, y podría ser una opción para
organizarlos
CKAN
D3.js
Lib. JavaScript para convertir datos en visualizaciones interactivas
Sólo utiliza estándares abiertos: HTML, CSS, SVG y JavaScript
mbostock’s block #5944371
Bilevel Partition
Ejemplos: , ,radiales colisiones NY Times
Fin de la
presentación
¡Gracias a todos!

Contenu connexe

En vedette

El Cambio Organizacional
El Cambio OrganizacionalEl Cambio Organizacional
El Cambio OrganizacionalKathy
 
Resolviendo triángulos rectángulos 4
Resolviendo triángulos rectángulos 4Resolviendo triángulos rectángulos 4
Resolviendo triángulos rectángulos 4amtlucca
 
Mujeresderaza Erd
Mujeresderaza ErdMujeresderaza Erd
Mujeresderaza Erdguestbbfcfa
 
Restando ángulos en calc
Restando ángulos en calcRestando ángulos en calc
Restando ángulos en calcamtlucca
 
Miradas alternativas en la diversidad. Proyecto de fotografía participativa
Miradas alternativas en la diversidad. Proyecto de fotografía participativaMiradas alternativas en la diversidad. Proyecto de fotografía participativa
Miradas alternativas en la diversidad. Proyecto de fotografía participativaBlas Segovia Aguilar
 
Micromedios ema cesar ruben victor
Micromedios ema cesar ruben victorMicromedios ema cesar ruben victor
Micromedios ema cesar ruben victorMedios Audiovisuales
 
Abril florecía
Abril florecíaAbril florecía
Abril florecíatbarroso
 
Juan Aznar - "Moodle + Proyecto Biosfera en Biología y Geología"
Juan Aznar - "Moodle + Proyecto Biosfera en Biología y Geología"Juan Aznar - "Moodle + Proyecto Biosfera en Biología y Geología"
Juan Aznar - "Moodle + Proyecto Biosfera en Biología y Geología"Congreso Internet en el Aula
 
Argentinos Triste Imagen 1216903520469580 9
Argentinos Triste Imagen 1216903520469580 9Argentinos Triste Imagen 1216903520469580 9
Argentinos Triste Imagen 1216903520469580 9Alfredo Angel
 
El rol de las ciudades en la innovación social
El rol de las ciudades en la innovación socialEl rol de las ciudades en la innovación social
El rol de las ciudades en la innovación socialEsteban Campero
 

En vedette (20)

El Cambio Organizacional
El Cambio OrganizacionalEl Cambio Organizacional
El Cambio Organizacional
 
Resolviendo triángulos rectángulos 4
Resolviendo triángulos rectángulos 4Resolviendo triángulos rectángulos 4
Resolviendo triángulos rectángulos 4
 
El espiritu-de-capablanca
El espiritu-de-capablancaEl espiritu-de-capablanca
El espiritu-de-capablanca
 
Mujeresderaza Erd
Mujeresderaza ErdMujeresderaza Erd
Mujeresderaza Erd
 
Tarea emi
Tarea emiTarea emi
Tarea emi
 
FORO 3
FORO 3FORO 3
FORO 3
 
Restando ángulos en calc
Restando ángulos en calcRestando ángulos en calc
Restando ángulos en calc
 
Miradas alternativas en la diversidad. Proyecto de fotografía participativa
Miradas alternativas en la diversidad. Proyecto de fotografía participativaMiradas alternativas en la diversidad. Proyecto de fotografía participativa
Miradas alternativas en la diversidad. Proyecto de fotografía participativa
 
Tabla puntaje nota
Tabla puntaje notaTabla puntaje nota
Tabla puntaje nota
 
Micromedios ema cesar ruben victor
Micromedios ema cesar ruben victorMicromedios ema cesar ruben victor
Micromedios ema cesar ruben victor
 
Las Pruebas
Las PruebasLas Pruebas
Las Pruebas
 
Abril florecía
Abril florecíaAbril florecía
Abril florecía
 
El Regalo
El RegaloEl Regalo
El Regalo
 
compleMENTAL
compleMENTALcompleMENTAL
compleMENTAL
 
Juan Aznar - "Moodle + Proyecto Biosfera en Biología y Geología"
Juan Aznar - "Moodle + Proyecto Biosfera en Biología y Geología"Juan Aznar - "Moodle + Proyecto Biosfera en Biología y Geología"
Juan Aznar - "Moodle + Proyecto Biosfera en Biología y Geología"
 
Argentinos Triste Imagen 1216903520469580 9
Argentinos Triste Imagen 1216903520469580 9Argentinos Triste Imagen 1216903520469580 9
Argentinos Triste Imagen 1216903520469580 9
 
Documentos a entregar inicial
Documentos a entregar inicialDocumentos a entregar inicial
Documentos a entregar inicial
 
Labtm
LabtmLabtm
Labtm
 
Repasando La Sintaxis
Repasando La SintaxisRepasando La Sintaxis
Repasando La Sintaxis
 
El rol de las ciudades en la innovación social
El rol de las ciudades en la innovación socialEl rol de las ciudades en la innovación social
El rol de las ciudades en la innovación social
 

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

CMS - Metodología de trabajo EMEPE
CMS - Metodología de trabajo EMEPECMS - Metodología de trabajo EMEPE
CMS - Metodología de trabajo EMEPEFernando Feller
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxLuis Fernando Aguas Bucheli
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Juan Pablo
 
Portales Enterprise 2.0 con WebCenter
Portales Enterprise 2.0 con WebCenterPortales Enterprise 2.0 con WebCenter
Portales Enterprise 2.0 con WebCenterJaime Cid
 
Html5 telefonica-curso
Html5 telefonica-cursoHtml5 telefonica-curso
Html5 telefonica-cursoJuan Quemada
 
Herramientas open source BI
Herramientas open source BIHerramientas open source BI
Herramientas open source BISoftware Guru
 
Enlaces a otros sistemas y bases de datos especializadas-Cabezas Bullemore
Enlaces a otros sistemas y bases de datos especializadas-Cabezas BullemoreEnlaces a otros sistemas y bases de datos especializadas-Cabezas Bullemore
Enlaces a otros sistemas y bases de datos especializadas-Cabezas BullemoreLatindex
 
Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000Salvador Ramos
 
Herramientas case [ing. de software ii][documentacion rei
Herramientas case [ing. de software ii][documentacion   reiHerramientas case [ing. de software ii][documentacion   rei
Herramientas case [ing. de software ii][documentacion reiManuel Villalta
 
ETL Aplicado a Empresas.ppt
ETL Aplicado a Empresas.pptETL Aplicado a Empresas.ppt
ETL Aplicado a Empresas.pptVAOC1984
 
Modulo1-Presentaciones-parte01.1.ppt
Modulo1-Presentaciones-parte01.1.pptModulo1-Presentaciones-parte01.1.ppt
Modulo1-Presentaciones-parte01.1.pptssuser73f459
 

Similaire à Software libre para la integración de información en la Universidad de Cádiz (20)

Departamento Arquitectura Resumen 2009
Departamento Arquitectura Resumen 2009Departamento Arquitectura Resumen 2009
Departamento Arquitectura Resumen 2009
 
CMS - Metodología de trabajo EMEPE
CMS - Metodología de trabajo EMEPECMS - Metodología de trabajo EMEPE
CMS - Metodología de trabajo EMEPE
 
DSpace Workshop
DSpace Workshop DSpace Workshop
DSpace Workshop
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010
 
Capitulo1
Capitulo1Capitulo1
Capitulo1
 
Capitulo1
Capitulo1Capitulo1
Capitulo1
 
Portales Enterprise 2.0 con WebCenter
Portales Enterprise 2.0 con WebCenterPortales Enterprise 2.0 con WebCenter
Portales Enterprise 2.0 con WebCenter
 
Html5 telefonica-curso
Html5 telefonica-cursoHtml5 telefonica-curso
Html5 telefonica-curso
 
Herramientas open source BI
Herramientas open source BIHerramientas open source BI
Herramientas open source BI
 
Enlaces a otros sistemas y bases de datos especializadas-Cabezas Bullemore
Enlaces a otros sistemas y bases de datos especializadas-Cabezas BullemoreEnlaces a otros sistemas y bases de datos especializadas-Cabezas Bullemore
Enlaces a otros sistemas y bases de datos especializadas-Cabezas Bullemore
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 8
Practica 8Practica 8
Practica 8
 
Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000
 
Herramientas case [ing. de software ii][documentacion rei
Herramientas case [ing. de software ii][documentacion   reiHerramientas case [ing. de software ii][documentacion   rei
Herramientas case [ing. de software ii][documentacion rei
 
ETL Aplicado a Empresas.ppt
ETL Aplicado a Empresas.pptETL Aplicado a Empresas.ppt
ETL Aplicado a Empresas.ppt
 
Modulo1-Presentaciones-parte01.1.ppt
Modulo1-Presentaciones-parte01.1.pptModulo1-Presentaciones-parte01.1.ppt
Modulo1-Presentaciones-parte01.1.ppt
 

Plus de Antonio García-Domínguez

MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...Antonio García-Domínguez
 
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...Antonio García-Domínguez
 
Boosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedbackBoosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedbackAntonio García-Domínguez
 
MODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patternsMODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patternsAntonio García-Domínguez
 
Tips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tablesTips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tablesAntonio García-Domínguez
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceAntonio García-Domínguez
 
MRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsMRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsAntonio García-Domínguez
 
Hawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLHawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLAntonio García-Domínguez
 
OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?Antonio García-Domínguez
 
Developing a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangDeveloping a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangAntonio García-Domínguez
 
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...Antonio García-Domínguez
 

Plus de Antonio García-Domínguez (17)

MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
 
MODELS 2022 Picto Web tool demo
MODELS 2022 Picto Web tool demoMODELS 2022 Picto Web tool demo
MODELS 2022 Picto Web tool demo
 
EduSymp 2022 slides (The Epsilon Playground)
EduSymp 2022 slides (The Epsilon Playground)EduSymp 2022 slides (The Epsilon Playground)
EduSymp 2022 slides (The Epsilon Playground)
 
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
 
Boosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedbackBoosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedback
 
MODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patternsMODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patterns
 
Tips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tablesTips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tables
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
 
MRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsMRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph models
 
Hawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLHawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQL
 
Software and product quality for videogames
Software and product quality for videogamesSoftware and product quality for videogames
Software and product quality for videogames
 
OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?
 
Developing a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangDeveloping a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLang
 
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
 
ECMFA 2016 slides
ECMFA 2016 slidesECMFA 2016 slides
ECMFA 2016 slides
 
BMSD 2015 slides (revised)
BMSD 2015 slides (revised)BMSD 2015 slides (revised)
BMSD 2015 slides (revised)
 
Elaboración de un buen póster científico
Elaboración de un buen póster científicoElaboración de un buen póster científico
Elaboración de un buen póster científico
 

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

  • 1. Software libre para la integración de información en la Universidad de Cádiz Quincena de la Ingeniería, 2014 /AntonioGarcía Domínguez @antoniogado
  • 3. ¿Quién soy? 2003/09 - 2008/07: Estudiante de Ingeniería Informática 2008/10 - 2010/11: Profesor sustituto 2010/11 - 2014/01: Becario predoctoral 2014/01 - sigue: Técnico investigador en la DGSI
  • 4. Proyectos y contribuciones PFC: (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 BPELUnit Eclipse Epsilon GAmera SODM+T Takuan
  • 5. ¿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ía Desde 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 él Django Restos de Zope/Plone Y un largo etcétera
  • 8. 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.
  • 9. Carga en el almacén de datos Es 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 o ID personal).
  • 10. Carga en el almacén de datos En resumen...
  • 11. 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).
  • 13. Kettle Para 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 Integration Código disponible en Se puede descargar de Github Pentaho Community
  • 15. Kettle: ejemplo de trabajo Aristas = flujos de control
  • 16. OpenRefine Originalmente Google Refine, ahora es un Es muy útil para hacer una primera inspección de un .xlsxy detectar problemas de calidad proyecto abierto
  • 17. LibreOffice Fuera esos .xls y .xlsx ☺ La biblioteca Apache POI en Kettle no maneja bien macros Excel Por suerte, implementa conversiones masivas: 150+ ficheros .xls, .ods y .xlsx Excel: listos en un par de minutos LibreOffice libreoffice--headless--convert-tocsv--outdirout*.xls*.xlsx
  • 18. Herramientas UNIX y scripting UNIX: ¡troceando texto plano desde los '70! Sólo con y ya se puede hacer muchísimo En casos más complejos , o resuelven el problema Ojo: no todo se resuelve a base de expresiones regulares grep sed Python Perl Ruby (?:(?:rn)?[t])*(?:(?:(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[t] )+|Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[t]))*"(?:(?: rn)?[t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:( ?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[t])*))*@(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-0 31]+(?:(?:(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)* ](?:(?:rn)?[t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+ (?:(?:(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?: (?:rn)?[t])*))*|(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[t])+|Z |(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[t]))*"(?:(?:rn) ?[t])*)*<(?:(?:rn)?[t])*(?:@(?:[^()<>@,;:".[]000-031]+(?:(?:(?: rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn) ?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(?:rn)?[t] )*))*(?:,@(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(?:rn)?[t])* )(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[t] )+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(?:rn)?[t])*))*) *:(?:(?:rn)?[t])*)?(?:[^()<>@,;:".[]000-031]+(?:(?:(?:rn)?[t])+ |Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[t]))*"(?:(?:r n)?[t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(?:(?:(?: rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)?[t ]))*"(?:(?:rn)?[t])*))*@(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031 ]+(?:(?:(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*]( ?:(?:rn)?[t])*)(?:.(?:(?:rn)?[t])*(?:[^()<>@,;:".[]000-031]+(? :(?:(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|[([^[]r]|.)*](?:(? :rn)?[t])*))*>(?:(?:rn)?[t])*)|(?:[^()<>@,;:".[]000-031]+(?:(? :(?:rn)?[t])+|Z|(?=[["()<>@,;:".[]]))|"(?:[^"r]|.|(?:(?:rn)? [t]))*"(?:(?:rn)?[t])*)*:(?:(?:rn)?[t])*(?:(?:(?:[^()<>@,;:".[] ¿Alguien adivina qué hace esta bonita regexp?
  • 19. Vistas de BD y PL/SQL Más cerca del origen = mayor eficiencia SQL es muy conciso para ciertas cosas (para otras, no tanto) Con muchos datos (200k+ filas), es mejor hacer lo posible en BD Hay que tirar de EXPLAIN y revisar las estructuras de datos e índices que pueda haber
  • 21. Pentaho BI Server Servidor de Inteligencia Empresarial y Analíticas de Negocio: punto de entrada a toda la información extraída del almacén Integració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 oficial Enterprise: con extensiones cerradas y soporte oficial (~30.000€/año) Gracias a la comunidad FLOSS, la edición Community tiene funcionalidad equivalente: (ahora parte de Pentaho Corp.) contribuyó muchas mejoras, conocidas como las "CTools" Github Pentaho Community WebDetails
  • 23. Pentaho Report Designer Aplicación de escritorio (Win/MacOS/Linux) para diseño de informes avanzados, basada en (otro proyecto abierto de Pentaho) Los informes pueden consumir consultas SQL, MDX, transformaciones Kettle, etc. Permite exportar los informes a PDF, HTML, Excel y CSV, entre otros Los informes pueden incorporar enlaces, gráficas, subinformes, etc. Una vez están listos, se publican al servidor y se visualizan desde ahí JFreeReport
  • 25. Cubos OLAP: Mondrian y Saiku Imaginemos 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)
  • 26. Cubos OLAP: Mondrian y Saiku En el centro hay una tabla de hechos Cada hecho está en unas dimensiones Un almacén tiene muchos de estos "esquemas en estrella"
  • 27. Cubos OLAP: Mondrian y Saiku Podríamos intentar consultar estas estrellas con SQL, pero no sería práctico Hay un estándar de facto para esto: MDX, originario de Microsoft es un motor de código abierto que implementa un dialecto de MDX es un cliente cómodo para MDX que se integra en Pentaho Mondrian Saiku
  • 28. Cubos OLAP: Mondrian y Saiku You are using Saiku Community Edition, please consider
  • 29. Cuadros de mando: CDF + CDE Hay usuarios muy ocupados que no tienen tiempo de mirar informes ni trastear con Saiku Hay que darles la información ya lista, que deje explorar y que quepa en un pantallazo: un cuadro de mando El y el permiten elaborar cuadros de mando sin mucha complicación Community Dashboard Framework Community Dashboard Editor
  • 30. Cuadros de mando: CDF + CDE Type Resource Layout Structure About Documentation New Save Save as...
  • 31. REST para datos: CDA aporta los servicios Web REST que necesita CDF para los cuadros de mando Por lo demás, un cuadro de mando es un fichero JSON que se transforma a HTML + JavaScript Los servicios REST se pueden usar de forma independiente a CDA (para cualquier otra web) Community Data Access
  • 32. REST para datos: CDA Filename: /public/plugin-samples/pentaho-cdf-dd/cde_sample1.cda
  • 33. Validación automática: CDV permite comprobar automáticamente fuentes CDA Útil para detectar momentos en que las consultas fallan o tardan demasiado, o para detectar filas incorrectas Sólo hay que indicar la ruta al fichero de CDA, el nombre de la consulta, los parámetros y un trozo de JavaScript con la verificación Se pueden especificar expresiones cron para automatizar las comprobaciones Community Data Validator
  • 34. Validación automática: CDV Validations Alerts CDA Errors Search:
  • 36. Sparkl es otro proyecto más de la gente de las CTools Permite crear extensiones para Pentaho usando transformaciones Kettle y cuadros de mando CDE Ya hay unos cuantos desarrollos nuevos subidos al Pentaho Marketplace: , un componente para CDE que implementa tablas OLAP al estilo de Saiku , para sincronizar el repositorio JCR de Pentaho con un directorio local , para gestionar registros locales Sparkl BTable Repository Synchronizer Log Manager
  • 37. CKAN es un proyecto de código abierto para portales de datos abiertos (como debe ser) Está siendo adoptado por varias universidades del entorno (por ejemplo, la Universidad de Granada) En la DGSI se está estudiando la posibilidad de abrir algunos conjuntos de datos al público, y podría ser una opción para organizarlos CKAN
  • 38. D3.js Lib. JavaScript para convertir datos en visualizaciones interactivas Sólo utiliza estándares abiertos: HTML, CSS, SVG y JavaScript mbostock’s block #5944371 Bilevel Partition Ejemplos: , ,radiales colisiones NY Times