Kafkadb

16
KafkaDB NaN·tic ` Angel ` Alvarez Serra 31 de Mayo de 2012 ` Angel ` Alvarez Serra — KafkaDB 1/16

description

Presentación de KafkaDB una herramienta para la migración de datos basada en Kettle. Herramienta desarrollada por NaN·tic y presentada en las V jornadas de OpenERP en Donostia 2012.

Transcript of Kafkadb

Page 1: Kafkadb

KafkaDBNaN·tic

Angel Alvarez Serra

31 de Mayo de 2012

Angel Alvarez Serra — KafkaDB 1/16

Page 2: Kafkadb

Indice

Introduccion

Objetivos

Busqueda y Desarrollo.

Como Funciona

Instalacion y Puesta en Marcha

Como Migrar un Modulo.

Estado y Pagina del proyecto.

Preguntas y Contacto.

Angel Alvarez Serra — KafkaDB 2/16

Page 3: Kafkadb

Introduccion

La idea de KafkaDB Nace en el momento que OpenERP SAanuncio que las herramientas de migracion no formarıan partedel software libre y publico.

Herramienta para la migracion de datos.

Basada en Kettle

Adaptacion Para OpenERP.

Angel Alvarez Serra — KafkaDB 3/16

Page 4: Kafkadb

Objetivos

Modular y re-utilizable

Rapidez

Versatil

Facil de utilizar y Compartir.

Angel Alvarez Serra — KafkaDB 4/16

Page 5: Kafkadb

Busqueda y Desarrollo

Como nace KafkaDB.

Prueba de Concepto.Python y openetl ETL creado por OpenERP SA)https://launchpad.net/openetl

Segundo Intento. Brewery.

Tercer Intento.Buscar Opciones etl JAVA y XML como Scriptella.

Cuarto y Ultimo Intento. Kettle.

Angel Alvarez Serra — KafkaDB 5/16

Page 6: Kafkadb

Como Funciona (Introduccion)

KafkaDB Se basa en 2 pequenas aplicaciones y los ficheros deconfiguracion

kafkadb.py

Ayuda a la generacion de ficheros de configuracionEjecuta el proceso de migracion.

kafkadb.jar

Lee los ficheros de configuracion.Crea las transformaciones de volcado.Las ejecuta teniendo en cuenta las dependencias.

Fichero de configuracion y Transformadas

Angel Alvarez Serra — KafkaDB 6/16

Page 7: Kafkadb

Como Funciona (Introduccion 2)

Transformada Inicial(Abstract)

Herencia.

Deferred Contraints(Postgresql 9.1)

Angel Alvarez Serra — KafkaDB 7/16

Page 8: Kafkadb

Como Funciona: (Kafkadb.py)

Aplicacion de lıneas de comando que:

Facilita la generacion de ficheros de configuracion

Consulta de a que modulos pertenece una tabla o campo

Ejecuta el proceso de migracion.

Angel Alvarez Serra — KafkaDB 8/16

Page 9: Kafkadb

Como Funciona: Configuracion (1)

{” r e s r e q u e s t ” : {

” comment” : ”CHECK 2012−04−21” ,”on” : ” both ” ,” t a r g e t ” : [

” s t a t e ” ,” p r i o r i t y ”

] ,” m i g r a t e ” : t r u e ,” s o u r c e ” : [

” p r i o r i t y ” ,” s t a t e ”

] ,” depends ” : f a l s e ,” t r a n s f o r m a t i o n ” : n u l l ,” d e l e t e ” : t r u e

} ,}

Angel Alvarez Serra — KafkaDB 9/16

Page 10: Kafkadb

Como Funciona: Configuracion (2)

” r e s p a r t n e r a d d r e s s ” : {” comment” : ”CHECK 2012−04−21” ,”on” : ” both ” ,” t a r g e t ” : [

” c o l o r ” ,” company id ” ,” t i t l e ” ,” f u n c t i o n ” ,” t y p e ”

] ,” m i g r a t e ” : t r u e ,” s o u r c e ” : [

” f u n c t i o n ” ,” t i t l e ” ,” t y p e ”

] ,” depends ” : [ ” r e s p a r t n e r t i t l e ” , ” r e s c o u n t r y ” , ” r e s c o u n t r y s t a t e ” ] ,” t r a n s f o r m a t i o n ” : [

” model−k t r / v6 . 1 / base / r e s p a r t n e r a d d r e s s . k t r ”] ,” d e l e t e ” : t r u e

} ,

Angel Alvarez Serra — KafkaDB 10/16

Page 11: Kafkadb

Instalacion y Configuracion

El proyecto esta alojado en Bitbucket, simplementedescargarse el repositorio.Pagina del proyecto:https://bitbucket.org/angelnan/kafkadb/Ficheros a configurar:

config.py Base de datos (origen y destino) , directorio detransfomaciones ...

.kettle/kettle.properties Variables de entorno de lastransformaciones

.kettle/shared.xml Configuracion de la base de datos delas transformaciones

Angel Alvarez Serra — KafkaDB 11/16

Page 12: Kafkadb

Migrar Modulo: Producto

Migrar modulo producto, paso a paso.

Generar el fichero de migracion para el modulo Producto.

./kafkadb.py –migrate-module=product

Creamos un directorio para el nuevo modulo.

Movemos el fichero de configuracion al directorio.

Seleccionar las tablas que queremos migrar.

Hacemos las transformaciones necesarias.

Angel Alvarez Serra — KafkaDB 12/16

Page 13: Kafkadb

Migrar Modulo: Producto

Migrar modulo producto, paso a paso.

product pricelist

product pricelist

Angel Alvarez Serra — KafkaDB 13/16

Page 14: Kafkadb

Migrar Modulo: Producto

Migrar modulo producto, paso a paso.

Generar el fichero de migracion.

./kafkadb.py –make-config=migration.json

Ejecutar la migracion

./kafkadb.py –migrate=migration.json

Angel Alvarez Serra — KafkaDB 14/16

Page 15: Kafkadb

KafkaDB: Hoja de Ruta

Hacer parametrizable las diferentes opciones como basedatos, directorios.. para facilitar la utilizacion delframework.

Tener solo un fichero de configuracion

Migrar los modulos restantes.

Anadir en los ficheros de configuracion la posibilidad derenombrar campos y anadir constantes.

Angel Alvarez Serra — KafkaDB 15/16

Page 16: Kafkadb

Preguntas y crıticas

¡Muchas gracias por vuestra atencion!

NaN·tic

Angel Alvarez i [email protected]

@aasnan

Esta obra esta sujeta a la licencia Creative Commons

Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.

Para ver una copia de esta licencia, visite creativecommons.org/licenses/by-nc-nd/3.0/

o envie una carta a Creative Commons, 444 Castro Street, Suite 900, Mountain View,

California, 94041, USA.

Angel Alvarez Serra — KafkaDB 16/16