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