Software libre para la
integración de información en
la Universidad de Cádiz
Quincena de la Ingeniería, 2014
/AntonioGarcí...
Presentación
¿Quién soy?
2003/09 - 2008/07: Estudiante de Ingeniería Informática
2008/10 - 2010/11: Profesor sustituto
2010/11 - 2014/0...
Proyectos y contribuciones
PFC: (II CUSL)
Investigación: servicios web e ingeniería dirigida por modelos
: pruebas unitari...
¿Qué hacemos en la DGSI?
DGSI = Dirección General de Sistemas de Información
Intermediarios entre demandas de información ...
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é f...
Carga en el almacén de datos
Es el repositorio central con toda la información.
Debe estar bien organizado en áreas de int...
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.
Operacionale...
Herramientas
para carga
Kettle
Para definición de procesos ETL:
Extract: leemos datos (SQL, JSON, XML, Access, Excel...)
Transform: reordenamos, l...
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 pr...
LibreOffice
Fuera esos .xls y .xlsx ☺
La biblioteca Apache POI en Kettle no maneja bien macros Excel
Por suerte, implement...
Herramientas UNIX y scripting
UNIX: ¡troceando texto plano desde los '70!
Sólo con y ya se puede hacer muchísimo
En casos ...
Vistas de BD y PL/SQL
Más cerca del origen = mayor eficiencia
SQL es muy conciso para ciertas cosas (para otras, no tanto)...
Herramientas
para explotación
Pentaho BI Server
Servidor de Inteligencia Empresarial y Analíticas de Negocio: punto
de entrada a toda la información ext...
Pentaho BI Server
Demo
Pentaho Report Designer
Aplicación de escritorio (Win/MacOS/Linux) para diseño de informes
avanzados, basada en (otro proy...
Pentaho Report Designer
Cubos OLAP: Mondrian y Saiku
Imaginemos que queremos estudiar las notas de los alumnos
¿Cómo las guardamos para cualquier ...
Cubos OLAP: Mondrian y Saiku
En el centro hay una tabla de hechos
Cada hecho está en unas dimensiones
Un almacén tiene muc...
Cubos OLAP: Mondrian y Saiku
Podríamos intentar consultar estas estrellas con SQL, pero no sería
práctico
Hay un estándar ...
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...
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 m...
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 ...
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
Kettl...
CKAN
es un proyecto de código abierto para portales de datos
abiertos (como debe ser)
Está siendo adoptado por varias univ...
D3.js
Lib. JavaScript para convertir datos en visualizaciones interactivas
Sólo utiliza estándares abiertos: HTML, CSS, SV...
Fin de la
presentación
¡Gracias a todos!
Upcoming SlideShare
Loading in...5
×

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

371
-1

Published on

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
371
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 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
  2. 2. Presentación
  3. 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. 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. 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
  6. 6. Datos ➯ Información
  7. 7. Pasos
  8. 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. 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. 10. Carga en el almacén de datos En resumen...
  11. 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).
  12. 12. Herramientas para carga
  13. 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
  14. 14. Kettle: ejemplo de transformación Aristas = flujos de filas
  15. 15. Kettle: ejemplo de trabajo Aristas = flujos de control
  16. 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. 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. 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. 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
  20. 20. Herramientas para explotación
  21. 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
  22. 22. Pentaho BI Server Demo
  23. 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
  24. 24. Pentaho Report Designer
  25. 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. 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. 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. 28. Cubos OLAP: Mondrian y Saiku You are using Saiku Community Edition, please consider
  29. 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. 30. Cuadros de mando: CDF + CDE Type Resource Layout Structure About Documentation New Save Save as...
  31. 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. 32. REST para datos: CDA Filename: /public/plugin-samples/pentaho-cdf-dd/cde_sample1.cda
  33. 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. 34. Validación automática: CDV Validations Alerts CDA Errors Search:
  35. 35. En el punto de mira
  36. 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. 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. 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
  39. 39. Fin de la presentación ¡Gracias a todos!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×