lunes, 17 de julio de 2017

Cómo actualizar recursos de CKAN a través de Pentaho Data Integration



Hace unos días Esther(@eminguelac)  encontró un plugin para Pentaho (Kettle) que permitia escribir directamente en el Datastore de CKAN (https://github.com/OpenGov-OpenData/CKAN-DataStore-Writer-for-Pentaho-Data-Integration). Esta funcionalidad no se ajustaba a nuestras necesidades y hemos decidido modificarlo un poco y compartirlo con la comunidad.

Nuestra idea es conseguir que el nuevo plugin actualice el recurso de un Dataset en CKAN a partir de los datos de entrada que recibe.

 El repositorio con el plugin y el código se encuentra en esta URL: https://github.com/localidata/CKAN-Resource-Updater-for-Pentaho-Data-Integration

La instalación es muy sencilla, sólo hay que copiar al directorio "../data-integration/plugins/steps" la carpeta "ckan-updater-plugin". Si el subdirectorio "steps" no existe, hay que crearlo. Después reiniciamos Pentaho y si al hacer un Trabajo ("Job") buscamos en Pasos ("Steps") la palabra "resource", nuestro componente debe aparecer.


Vamos a hacer una prueba completa para crear un recurso y actualizarlo en un portal de demos de CKAN.

Me he dado de alta en http://demo.ckan.org:

En la página de mi perfil he obtenido mi API-KEY:

Ahora dentro del portal he creado el dataset "Pentaho Upload Test": https://demo.ckan.org/dataset/pentaho-upload-test

Ya tenemos todo lo que necesitamos para hacer la primera prueba: creación de recurso.

Nos vamos a Pentaho y utilizamos los pasos: "Data Grid", nuestro "CKAN Resource Upload" y los unimos.



Después de conectarlos, añadimos en el Data Grid un tabla con algunos datos.

Ahora configuramos el CKAN Resource Upload:



Configuramos el dominio, nuestra API KEY, el ID de nuestro dataset en Package ID, el título del recurso y su descripción. No escribimos nada en Resource ID para que cree el recurso.

Ejecutamos y veremos cómo aparece el recurso Gastos en nuestro Dataset:

Además vemos que el Datapusher ha hecho su trabajo y ha añadido el contenido en el Datastore.

Si ahora repetimos la prueba utilizando el Idenficador del recurso que se ha creado escribiendolo en Resource ID:

Y añadimos un registro más en el Data Grid:



Volvemos a lanzar el proceso:



Y vemos que se actualiza el recurso.




Esperamos que el componente os sea de utilidad. Si tenéis algun problema no dudeis en escribirnos una issue en Github: https://github.com/localidata/CKAN-Resource-Updater-for-Pentaho-Data-Integration

jueves, 13 de julio de 2017

martes, 4 de julio de 2017

Localidata crece

Esta semana Carlos Martinez de la Casa se ha incorporado a Localidata.

En esta foto nos podéis ver a los dos en el evento de APIs de Red Hat de hoy.