Instalando la herramienta de migración de datos Kettle integrada con OpenERP


Buenas… como ya todos sabeis OpenERP trae de base un importador de datos CSV en cada una de las pantallas, pero para cargar un csv, este tiene que estar organizado “de la forma” que OpenERP entiende. Es decir, nombradas las cabeceras con los nombres de los campos exactamente tal cual están en base de datos. También hemos tenido algún problema con la nomenclatura de los campos en castellano por acentos y ñ, por lo que alguna vez hemos tenido que realizar la carga seleccionando como idioma del usuario el inglés.

Sabeis que en aulaerp tenemos un curso con ejemplos de archivos csv que utilizamos para cargar datos en varios de nuestros clientes.  Ahora bien, esta forma de migrar es muy manual, hay que hacer las transformaciones prácticamente de forma artesanal y es bastante laborioso. Por lo tanto, alrededor de la temática de migración de datos a OpenERP, existen varias herramientas que he testeado una a una durante todo el día. Aquí os paso mis conclusiones al respecto:

  • openETL: Es la herramienta de migración de OpenERP SA. Es un módulo stand alone, o ejecutable desde el cliente openerp que se descarga de launchpad, aquí: https://launchpad.net/openobject/openetl No sé si por no buscar bien, o no existir, no he encontrado una documentación a nivel de usuario que me permita utilizarlo. Hay documentación pero me ha parecido muy técnica. Tiene buena pinta pero lo dejo para técnicos de sistemas y programadores que se dedican a ello. Nhomar es fan acérrimo de OpenETL y lo utiliza habitualmente.
  • Terminatooor de rvalyi: He pedido a mis compañeros de ting que me hagan una introducción a la herramienta y me muestren su funcionalidad en acción. He decidido que tampoco la usaré ya que la parte de carga de datos de Kettle a OpenERP se realiza mediante sentencias programando en Ruby. También muy potente y flexible, pero para técnicos programadores con conocimientos en ruby o ganas de aprender un nuevo lenguaje.
  • El conector de NAN kettle-openerp: Facil de instalar, tiene una pinta estupenda y no es necesario programar. El plugin te “trae” a Kettle la estructura de tablas de OpenERP de forma visual por lo que a priori, me parece muchísimo más sencillo que las otras 2 opciones.

Aquí os pongo los pasos que he seguido para instalar el conector de NAN casi a la primera y sin mucho problema:

  • Leeros la presentación de Angel del año pasado en Vilanova.  http://www.slideshare.net/raimonesteve/migracin-de-datos-con-openerpkettle En las páginas 18 y 19 teneis algunas instrucciones para instalarlo. Yo he intentado lo de copiar los archivos en las rutas que pone en la presentación, pero no atinaba. Por lo que, he ejecutado el install.sh que viene en el modulo.

ana@ana-laptop:~/openerp/

openerp-kettle$ ./install.sh $HOME/opt/kettle
Kettle Dir: /home/ana/opt/kettle

  • Por último, he copiado a mano (porque el enlace no me funcionaba) el directorio TinyOuputForDeploy en %HOME/opt/plugins/steps
  • Y claro… arrancar spoon (meted usuario  admin pwd admin si estais en pruebas en la pantalla de entrada al Kettle)

Y listo… si vais a transformaciones / sortida vereis el plugin. Si haceis doble click, os permite configurar una conexión a una BBDD de OpenERP y obtener los modelos, sus tablas y sus campos de forma totalmente automática y transparente. Por lo que ya podeis iniciar la configuración del modelo de carga para el caso concreto.

Por si seguís adelante. Os recomiendo que os veais todos los puntos de este manual antes de empezar el primer proyecto:

Esperando sea de vuestro interés, cordiales saludos!!

Ana

, ,

  1. #1 by Nhomar on 24 Junio 2010 - 1:05

    Excelente Post Ana……

  2. #2 by Ana Juaristi Olalde on 24 Junio 2010 - 1:18

    Gracias Nhomar!!

  3. #3 by Juanjo A. on 24 Junio 2010 - 15:51

    Gracias Ana por tu esfuerzo.

    El tema de la importación es algo muy importante, y el ‘importar’ integrado en openerp es un pelín quisquilloso.

    JuanjoA

  4. #4 by Iñaki Fernández on 24 Junio 2010 - 20:41

    Hola,

    El enlace de Ana sobre Pentaho Kettle es el principal, y también el más valioso.

    Os dejo unos enlaces sobre Pentaho que tengo seleccionados desde primeros de año. Algunos muy interesantes y otros no tanto (no están filtrados).

    Soy fan de Pentaho desde que empecé con OpenERP, muy especialmente de Kettle ETL. Su competidor directo dentro del software propietario es “Informatica PowerCenter”, herramienta con más conectores que Pentaho (tiene más años), pero especialmente cara. Muchas de las empresas en Madrid del sector bancario están empezando a apostar por Pentaho por el ahorre de costes que supone.

    La migración/importación de datos a OpenERP basada en ficheros CSV me pareció tremendamente cansina y problemática, teniendo que incrementar los niveles de log de openerp-server para saber qué campo del CSV era incorrecto. Los datos de origen eran de Magento, con cerca de 1000 productos, creo recordar.

    En otro cliente utilicé Pentaho para actualizar su inventario alojado en una base de datos Oracle. En lugar de invertir semanas (meses?) en introducir y actualizar datos mediante el insufrible formulario Web de Oracle Forms, automaticé la tarea mediante el fusionado de A) la tabla obsoleta en Oracle y B) la hoja excel con datos actualizados que generé con un script. Tiempo empleado?: media jornada para Pentaho Kettle, 2 jornadas para el script, 1 noche de auto-formación con Pentaho en Youtube. Brillante trabajo, aunque no calculé bien porque con esto terminé el proyecto demasiado pronto!! :-)

    Para terminar un comentario: desde que conozco el potencial de Pentaho Kettle, me sorprende la cantidad de tareas que se podrían automatizar ó semi-automatizar tanto en bases de datos, hojas excel (muchos invierten horas en Excel), LDAPs, etc, etc, etc.

    Me suena que Pentaho Kettle v4 (en desarrollo) incorpora el conector con OpenERP.

    MIS ENLACES DE PENTAHO/kETTLE ETL:

    http://www.dataminingtools.net/browsetutorials.php?tag=pentaho

    http://www.arejae.com/blog/how-to-export-csv-to-mysql-using-pentaho.html
    http://swik.net/pentaho+MySQL
    http://swik.net/pentaho

    *** -> http://rpbouman.blogspot.com/2006/06/pentaho-data-integration-kettle-turns.html

    http://www.youtube.com/watch?v=dgVnMxbWVR0
    http://www.nicholasgoodman.com/bt/blog/
    http://www.pentaho.com/products/demos/presales_tools.php
    http://todobi.blogspot.com/2008/07/video-tutoriales-de-pentaho-kettle.html

    Les adjunto un par de links con videos tutoriales muy interesantes:
    * Pentaho Data Integration + Schema Workbench (http://www.redopenbi.com/group/pentaho/forum/topics/video-tutorial-pentaho-data).
    * Pentaho Data Integration (http://www.redopenbi.com/group/pentaho/forum/topics/video-tutorial-pentaho-data-1).
    * Pentaho Metadata Editor + Ad Hoc Reporting (http://www.redopenbi.com/group/pentaho/forum/topics/video-tutorial-pentaho).

    http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Recorded+Demos?focusedCommentId=3440923#comment-3440923
    http://wiki.pentaho.com/display/EAI/Insert+-+Update
    http://forums.pentaho.org/showthread.php?t=58783

    Josep Curto Díaz – Herramientas Open Source de BI: Pentaho http://www.youtube.com/watch?v=dgVnMxbWVR0

    http://wiki.pentaho.com/display/EAIes/Manual+del+Usuario+de+Spoon

    http://www.nicholasgoodman.com/bt/blog/

    http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Recorded+Demos?focusedCommentId=3440923#comment-3440923

    http://www.youtube.com/watch?v=v3yT0sVWwUo Manual de Pentaho ETL

    http://www.youtube.com/watch?v=wZMh7uF0_QE Data Normalisation with Kettle / Pentaho Data Integration

    http://pentaho.almacen-datos.com/kettle-spoon.html TUTORIAL en español

  5. #5 by Ana Juaristi Olalde on 25 Junio 2010 - 20:05

    Iñaki… impresionante comentario. Yo justo lo instalé y estoy empezando las primeras pruebas. Valiosísimo aporte tu post.
    Muchísimas gracias!!!

  6. #6 by Raimon Esteve on 27 Junio 2010 - 22:27

    @ana: El connector de Nan es limitado. Una migración de datos siempre necesitaras hacer un proceso con él. Si utilizas el conector de Nan lo necesitaras hacer con java (y si vienes de python, veras que dolor de cabeza ;) ). Si utilizas el OOOR lo puedes hacer con Ruby, mas parecido a Python y el Perl y utilza una estructura de modelo similar a OpenERP.
    También piensa que si necesitas agregar o modificar datos (tambien requerido en muchos proyectos), necesitaras dos salidas con el conector de nan: el registro que sea nuevo, y el registro que sea para actualizar.
    Ahora no recuerdo si tambien el conector de Nan permite Querys a openerp (o sea, bidireccional: kettle openERP ).

    @iñaki: para utilizar el OOOR es sobre kettle 4. Aunque todavía es fase beta, no me suena que incorpore internamente el conector con OpenERP

    @todos: de varios test con todos, me he quedado con OOOR ;)

  7. #7 by Pedro on 28 Junio 2010 - 7:49

    Ana, gracias por el post.

    Pero, no crees que todavía el proceso requiere demasiadoconocimiento técnico? Un consultor funcional tendría muchas dificultades para hacerlo…

    No debería openerp tener una solución mas acotada si quieres, pero mucho mas sencilla intuitiva? Gracias

  8. #8 by Kaspars on 28 Junio 2010 - 21:38

    @ana
    First of all I would like to apologize, that I am not writing in Spanish, unfortunately, I am able to follow your excellent blog only by help of Google Translate. :)

    You have forgot about our migration tool, which was the first real tool for migrating your OpenERP data. It is capable of moving data between two OpenERP instances (versions 4->5 and 5->5). And it remains the only tool accessible for non-programmer. I have information that it is being used in production by several companies, and of course by ourselves too.

    * It has been built as OpenObject module, so it is native for any implementer or developers of OpenObject;
    * it is visual and requires no programming if there is no big difference between data structures;
    * if you still need to do data transformation you use python from UI;
    * it is straight forward and simple to use;
    * it is tested migrating data in both version combination;
    * you can start migrating data in 5 minutes, which I believe is not possible with any other tool.

    Has many other advantages over named instruments, with great respect to the respective developers.

    For reference:
    http://kndati.lv/index.php/en/openerp/open-erp-addons/data-migration

    BR,
    Kaspars
    ——————–
    http://kndati.lv

  9. #9 by Ana Juaristi Olalde on 28 Junio 2010 - 21:42

    Hi Kaspars:

    Nice to meet you here!!!! I didn’t know about your migration tool. Thank you for advicing!!!

  10. #10 by Iñaki Fernández on 28 Junio 2010 - 22:59

    Muchas gracias por tu aclaración Raimon.

    Por favor que alguien me corrija si me equivoco en lo siguiente:

    El conector openerp en Kettle ETL V4 al que hacía referencia en mi comentario anterior es OOOR. Akretion lo ha desarrollado sobre Pentaho V4 para evitar problemas de compatibilidad hacia atrás. Han ofrecido el código (script/módulo) a la gente de Pentaho. Queda por ver si Pentaho incluirá OOOR dentro del mismo “paquete” de Kettle V4 estable. De no ser así será necesario añadir manualmente OOR a Kettle V4.

    Probablemente el desarrollo de Pentaho PDI V4 (Kettle) esté muy avanzado. Se estimó que su versión estable estaría disponible a finales del Q1 ó principios del Q2 de 2010.

    Pregunta: ¿Existe alguna tabla en postgres para openerp cuyos datos puedan ser importados desde una hoja excel ó CSV con su correspondiente conector Kettle? Sin hacer uso de OOOR, y sin tener que preocuparnos por el posible modelo relacional de la tabla con otras. Por ejemplo, la tabla de Productos.

  11. #11 by Kaspars on 3 Julio 2010 - 19:40

    Hi, Ana!

    I visit this resource from time to time, and despite it is in language I am incapable to read directly, I consider the site to be most consistent information source on OpenERP – with frequent news and in-depth analysis.

    You are doing good job, informing community on all the possible options and events about OpenERP.

    Without such sites it is hard to follow all what is happening around there. I will try to let you know on our future developments, of course, if you do not mind…

    Best regards,
    Kaspars

  12. #12 by Renato on 31 Agosto 2010 - 17:17

    Hay una version de Kettle que se pueda descargar, que no sea de prueba? Yo estoy intentado de interfazar Prestashop con Openerp para un projecto mio y ese projecto no justifica pagar una licencia anual.

    Is there a “non trial” KEttle version I can download? I am doing a little projectt interfacing Prestashop with OpenErp and this small project does not justify paying a yearly subscription.

  13. #13 by Nicolas Bustillos on 11 Noviembre 2011 - 2:08

    Muy informativo el post. Especialmente útil, considerando la falta de información que hay cuando se trata del tema de migración. He estado investigando y la opción que mas me atrae es OpenETL por su integración con OpenERP y por la estructura que parece manejar una vez que lo instalas. Sin embargo, como dices, la documentación es practicamente nula.
    Si fuera posible, sería excelente si pudieras linkear esa documentación que mencionas que te parecio muy técnica… seguramente es mejor que meterse directamente al código para entender el módulo.
    Es bueno saber que hay gente que está usando este módulo habitualmente, ya que hay comentarios en foros que dicen que incluso hasta la versión 6.1 no esta del todo operativo. Ojala Nhomar nos pudiera apuntar con algunos tips para usar este módulo, ya que son bastantes los conceptos que se manejan en él.

(No será publicado)