Couchbase ofrece una base de datos NoSQL única que combina tecnología integrada de caché y almacenamiento. NoSQL está ganando una fuerte popularidad y varios clientes buscan exportar o mapear algunos de los datos que tienen en RDBMS a Couchbase NoSQL; aquí es donde se puede aprovechar la oferta de Talend.
Talend ofrece una serie de capacidades en torno a la integración, desde la gestión de procesos empresariales hasta el bus de servicios empresariales y la gestión de datos maestros. La nueva versión 5.3 de Open Studio for Big Data de Talend contiene un conector Couchbase, que permite un gran número de escenarios en los que Couchbase Server puede utilizarse junto con fuentes de datos analíticas y operativas tradicionales.
Para proporcionarle una idea básica sobre cómo configurar y utilizar Talend con Couchbase Server, le guiaré a través de un escenario simple para crear un flujo de trabajo ETL utilizando el software Talend Open Studio para exportar datos desde el servidor de base de datos MySQL a un servidor de base de datos Couchbase utilizando el formato de documento JSON. El flujo de trabajo leerá desde una tabla de base de datos MySQL y creará los documentos JSON correspondientes en el servidor Couchbase. Puedes construir sobre este ejemplo y aumentarlo para soportar escenarios más complejos que involucren transformaciones de datos, mapeos complejos, etc. Los siguientes pasos han sido probados en CentOS pero pueden ser adaptados para otros sistemas.
Así que empecemos...
Requisitos previos
En primer lugar, veamos los requisitos previos que necesitas para instalarlo:
- Descargar e instalar Couchbase Server
- Descargue e instale el servidor MySQL o utilice su instalación MySQL existente.
- Descargar e importar la base de datos mundial:
- Descargar world.sql
- Inicie el servidor MySQL, si no lo está ya, y conéctese al servidor:
- sudo service mysqld start
- sudo mysql -u root -p
- Crear una base de datos mundial
- CREAR BASE DE DATOS world;
- Cargar contenido de la base de datos mundial
- USE world;
- FUENTE world.sql;
- Compruebe que la base de datos mundial se ha importado correctamente
- MOSTRAR TABLAS;
- La salida deben ser 3 tablas: Ciudad, País y PaísIdioma
- Descargue e instale Talend Open Studio para Big Data
Inicio
Ahora, vamos a asegurarnos de que todo se inicia
- Inicie MySQL, si no lo ha hecho ya:
- sudo service mysqld start
- Inicie Couchbase, si aún no lo ha hecho:
- sudo /etc/init.d/couchbase-server start
- Lanzamiento de Talend Open Studio para Big Data:
- Ejecute el siguiente comando o similar (según el directorio de instalación y la versión): /opt/TOS_BD-r101800-V5.3.0/TOS_BD-linux-gtk-x86_64
Cree
Ahora, vamos a utilizar Talend Open Studio para crear el flujo de trabajo ETL
- Después de lanzar Talend, haga clic en el botón Crear e introduzca un nombre de proyecto como "MySQLToCouchbaseIntegration" y haga clic en Finalizar.
- Seleccione el proyecto creado y haga clic en el botón Abrir

- Cree una cuenta en Talend o haga clic en el botón Saltar, esto abrirá el IDE
- Espere a que finalice la inicialización del IDE y cierre o minimice la ventana de bienvenida
- En el panel Repositorio, haga clic con el botón izquierdo en Diseños de trabajos y, a continuación, haga clic con el botón derecho en Crear trabajo
- Introduzca el nombre del trabajo, como "MySQLToCouchbaseIntegrationJob" y haga clic en Finalizar.

- Esto creará un panel donde los artefactos de trabajo pueden ser arrastrados y soltados y debe mostrar la paleta a la derecha.
- Desde la paleta, arrastre y suelte el widget tMyslInput (se encuentra en Bases de datos/MySQL) a la izquierda

- Desde la paleta, arrastre y suelte el widget tCouchbaseOutput (se encuentra en Bases de datos/Couchbase) a la derecha
- Ambos componentes requieren archivos jar que no se suministran con el software Talend. Talend dispone de una wiki en la que se explica cómo añadir archivos jar. A veces, los archivos jar pueden descargarse directamente del IDE o pueden descargarse manualmente y cargarse en Talend haciendo clic en el símbolo jar (el que tiene el tooltip "Añadir JAR externos") en el panel Módulos.

- Los tarros deben cargarse / resolverse antes de pasar a los siguientes pasos. Ver información detallada
- Haga doble clic en tMysqlInput en el panel; esto mostrará el panel de componentes en la parte inferior
- Introduzca la información de conexión a la base de datos MySQL en el panel. Tenga en cuenta que todos los campos deben ir entre comillas dobles (es decir, ")
- Haga clic en el botón ... que se encuentra a la derecha del nombre de la tabla, expanda el mundo y seleccione la entrada Ciudad y haga clic en el botón Aceptar.
- Elimine la consulta por defecto y sustitúyala por "SELECT * FROM Ciudad".
- A continuación se muestra una captura de pantalla de ejemplo del aspecto que debería tener:

- Haga clic en el botón Adivinar esquema, aparecerá la ventana Esquema, mueva y redimensione la ventana según convenga
- Edite el esquema con los siguientes cambios:
- Comprobar Nullable para ID
- Comprobar si la población es nula
- Cambiar el tipo de ID a cadena
- Introduzca los siguientes tipos de base de datos y haga clic en el botón OK
- INT para ID
- VARCHAR para Nombre
- VARCHAR para CountryCode
- VARCHAR para Distrito
- INT para Población
- A continuación se muestra una captura de pantalla de ejemplo del aspecto que debería tener:

- Haga click izquierdo en tMysqlInput y luego click derecho para seleccionar Fila / Principal y arrastre la flecha desde el componente tMysqlInput al componente tCouchbaseOutput. Una flecha debe ser creada entre los dos.

- Haga clic con el botón izquierdo del ratón en tCouchbaseOutput en el panel; se mostrará el panel de componentes en la parte inferior.
- Introduzca la información de conexión a la base de datos Couchbase en el panel. Tenga en cuenta que todos los campos deben ir entre comillas dobles (es decir, ")
- En este ejemplo, el nombre del cubo es por defecto y no tiene autenticación configurada por lo que el nombre de usuario y la contraseña se dejan con ""
- El URI debe introducirse haciendo clic en el botón + y cambiando el campo por el URI de la piscina, como http://localhost:8091/pools.
- La clave debe dejarse en ID (por defecto) y la acción sobre los datos en Insertar
- A continuación se muestra una captura de pantalla de ejemplo del aspecto que debería tener:

- Haga clic en el botón Configurar árbol JSON...; aparecerá un mapeador que permite asignar el esquema de la tabla a JSON.
- Seleccione Todos los atributos del esquema (usando multi-selección) en la lista izquierda del esquema y suéltelos sobre la etiqueta raíz en la ventana de enlace a la derecha y seleccione Crear como sub-elemento del nodo destino, luego haga click en el botón OK.
- El resultado debería ser el siguiente:

- Seleccione el atributo ID en la ventana de destino de enlace de la derecha y haga clic con el botón derecho del ratón en Establecer como elemento de bucle y, a continuación, haga clic en el botón Aceptar.

- Si todo va bien, ambos iconos del panel Designer no deberían mostrar ningún signo de error, en cuyo caso ya podemos ejecutar el trabajo
- Haga clic en el panel Ejecutar, esto construirá el trabajo y ejecutarlo
- Acceda a su cubo del servidor Couchbase y compruebe que se han cargado los documentos: http://localhost:8091/index.html#sec=buckets
- Esto debería haber añadido 4079 documentos al cubo por defecto:

- Puede desglosar y consultar documentos individuales:

- ¡Voilà!
Como se ha indicado, pueden construirse escenarios mucho más complejos, y próximamente presentaremos ejemplos más elaborados.
Envíe sus comentarios y opiniones a alexis@couchbase.com
Gracias. Me preguntaba cómo alimentar couchbase con algunos datos externos. eso es una primera parte de una buena respuesta. Tal vez útil para una migración de una sola vez. Pero ¿qué pasa con un proceso de integración continua?
Hola,
En realidad, dependerá del tipo de fuente de datos y de las características disponibles en la propia fuente (o en la herramienta que se encuentre sobre ella).
Por ejemplo en el "mundo" de Oracle puedes usar cosas como DCN (Database Change Notification), Golden Gate para escuchar los cambios en la base de datos y enviar los datos a Couchbase. (Necesito algo de tiempo para escribir algo de código sobre esto)
No sé si las herramientas ETL pueden usar esto pero desde tu código sí.
Saludos
Remolcador
Es un gran placer dar una opinión sobre ETL
herramientas. Son muy importantes y útiles para todas las personas de todo el mundo.
mundo.
ETL
Para la exportación continua, puede hacer un seguimiento del último ID insertado y filtrar la importación en función de él.
De hecho Talend ofrece un componente para MySQL para leer el último ID insertado: tMysqlLastInsertId
Encontrará más información en la Guía de referencia de componentes de Talend Open Studio.
Saludos,
Alexis
Talend proporciona un componente de captura de datos de cambios (CDC) con su suscripción empresarial. Para la mayoría de las bases de datos, se trata de un activador y no de un registro. El propio componente CDC puede programarse para ejecutarse en cualquier intervalo de sondeo que se desee. Entonces enviaría los registros delta a la fuente de datos de Couchbase. Esto funciona para muchos casos de uso, pero es más "tiempo de negocio" que tiempo real. Si bien no es una ejecución nocturna por lotes, no debe considerarse una solución "en tiempo real" para diseños de baja latencia.
Ed Ost
Buena herramienta - No puedo esperar a usarla para mi próxima migración de Mysql a couchdbase.
Gracias Alexis por las instrucciones.
Mi problema es que Couchbase ignora la definición del esquema "INT para población".
El documento tiene este aspecto, después de ejecutar el ETL-Job:
{
\"ID": \"ciudad:1000",
\"Tipo": \"ciudad",
\"Nombre": \Taman
\Código de país \IDN
\"Distrito": \"Java Oriental",
\Población: \"107000\"
}
Supongo que debería ser así:
Población sin comillas. Motivo: Para utilizar la función _sum reduce.
{
\"ID": \"ciudad:1000",
\"Tipo": \"ciudad",
\"Nombre": \Taman
\Código de país \IDN
\"Distrito": \"Java Oriental",
\Población: 107000
}
bonito
Es un gran placer dar una opinión sobre ETL
herramientas. Son muy importantes y útiles para todas las personas de todo el mundo.
mundo. Las herramientas ETL son útiles para todos y ayudan a transformar cualquier dato en
cualquier base de datos de forma rápida, fácil y cómoda.
ETL
P1: ¿Cómo establecer un valor estático cuando se añade el enlazador al nodo de destino?
P2: ¿Cómo asignar un valor entero a un valor entero (no cadena) de Couchbase?