Introducción
¿Está modernizando su proceso de desarrollo? ¿Está siguiendo un enfoque de desarrollo rápido para ofrecer a sus clientes capacidades de mayor calidad y con mayor frecuencia? Parte de ese proceso suele requerir que trabajemos con varias bases de datos durante un periodo de transición en el que necesitamos disponer de ambas bases de datos. Necesitamos una forma de sincronizar los datos entre las bases de datos, cuanto más fluida, mejor. Usando Couchbase con GlueSync se ajusta a ese propósito.
GlueSync te permite replicar datos desde y hacia RDBMS (Microsoft SQL Server y Oracle) en tiempo real con Couchbase.
Usaremos Docker en este post mientras seguimos los pasos para instalar y configurar Couchbase, Microsoft SQL Server y GlueSync, demostrando la sincronización de datos entre ambos.
Antes de empezar
Docker
En primer lugar, este tutorial utiliza Docker y si no tienes Docker, puedes encontrar más información aquí https://www.docker.com/. Necesitará instalar Docker para completar los pasos que se indican a continuación.
GlueSync
A continuación, GlueSync requiere una licencia. Para completar este tutorial, necesitarás una licencia del equipo de GlueSync. Puedes ir a https://gluesync.com/plans/ y ver más información sobre sus planes y https://gluesync.com/contact-sales/ para ponerse en contacto con el equipo de GlueSync.
Pasos de alto nivel
- Ejecutar y configurar Couchbase y MSSQL
- Crear el archivo de configuración para GlueSync
- Configurar y ejecutar GlueSync para Couchbase a MSSQL
- Ver la magia
Ejecutar Couchbase y MSSQL
Couchbase
Usaremos Couchbase 6.6.3 para este tutorial. El siguiente comando Docker pondrá Couchbase en marcha, exponiendo los puertos que necesitamos.
1 |
docker ejecute -d --nombre cb-663 -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase:empresa-6.6.3 |
MSSQL
Para el comando MSSQL Docker run, observa que estamos incluyendo la contraseña SA. Actualízala y anótala, la usaremos más adelante.
1 |
docker ejecute -d --nombre mssql -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=¡RandomMSSQLPass2! -p 1433:1433 -d mcr.microsoft.com/mssql/servidor:2019-CU10-ubuntu-20.04 |
Verificar contenedores
Ahora deberías tener dos contenedores ejecutándose, Couchbase y MSSQL. Iniciaremos el contenedor GlueSync después de configurarlos.

Configurar Couchbase con GlueSync y MSSQL
Empezaremos con Couchbase y haremos una instalación básica.
Configurar un nuevo clúster
Ejecutando los comandos Docker anteriores habrás iniciado Couchbase y expuesto los puertos para que puedas abrir la interfaz de usuario de Couchbase en http://localhost:8091/ui/index.html.
Elegiremos Configurar un nuevo clúster y configurar un clúster de un nodo (no se recomienda para la producción, pero funciona muy bien para dev y hacer un tutorial).

Introduzca la información del nuevo clúster y haga clic en Siguiente Aceptar condiciones. Anota tu contraseña, la necesitaremos más adelante. Estamos utilizando ¡RandomCBPass2! para esta instancia.

Si acepta los términos y condiciones, marque esa opción y haga clic en Terminar con valores por defecto.
NOTA GlueSync trabaja con Couchbase usando un par de tecnologías de Couchbase, Sync Gateway y el servicio Eventing. En este tutorial utilizaremos la opción Eventing. La función Eventing se instalará con el Terminar con valores por defecto selección a continuación.
Couchbase ofrece una única instalación donde puedes habilitar todos los servicios o escoger y personalizar según las necesidades de tu proyecto. Este tutorial instalará todos los servicios para mayor comodidad. Más información sobre los servicios Couchbase y el escalado multidimensional.

Se le redirigirá al panel de control. En este tutorial utilizaremos los datos del cubo de muestra. Para instalar los datos, haga clic en Cubos de muestra.
Si, por alguna razón, usted no ve el Cubo de muestra en el salpicadero, vaya a Ajustes del menú de la izquierda, mire cerca de la parte superior derecha de la interfaz de usuario y verá un elemento de menú para Cubos de muestracomo se muestra a continuación.

Compruebe la muestra de cerveza y haga clic en Cargar datos de muestra.

Espere unos minutos a que se cargue y haga clic en Cubos en la navegación de la izquierda.
Deberías ver el cubo de muestras de cerveza que acabamos de cargar.

Vamos a ver los documentos. Haga clic en el botón Documentos a la derecha, junto a Estadísticas.
Vamos a sincronizar documentos de tipo cerveza. Puedes poner un filtro (type="beer") en el cuadro N1QL WHERE y hacer clic en Recuperar documentos para obtener esos documentos; así será más fácil verlos y probarlos.

Crear usuario Couchbase
Crearemos un usuario para que lo use la aplicación GlueSync. Esto es para propósitos de tutorial y debes seguir tus prácticas de seguridad cuando administres tus usuarios en conjunto con los requerimientos de Couchbase y GlueSync.
Ir a la Seguridad de la izquierda y haga clic en AÑADIR USUARIO arriba a la derecha.

Rellene la información de usuario, como se muestra a continuación. Estamos utilizando el nombre de usuario de cb-usuario y Contraseña ¡RandomCBPass2!Guarde esta información para más tarde. Asegúrese de comprobar Administración completa debajo de las funciones. Una vez rellenado, haga clic en el botón Añadir usuario botón.

Debería ver el usuario que acabamos de crear.

Añadir un cubo de metadatos GlueSync
GlueSync utiliza el servicio Eventing de Couchbase. Eventing requiere un bucket de metadatos, y vamos a crear uno ahora. Más información en GlueSync y el cubo de metadatos.
Ir a Cubos en el menú de la izquierda y haga clic en AÑADIR CUBO arriba a la derecha.

Introduzca el nombre de los metadatos y haga clic en Añadir cubo. Utilizaremos los valores predeterminados para las demás opciones.

Ahora debería ver dos cubos.

MSSQL
Utilizaremos SQL Server Management Studio para configurar MSSQL, que se instaló en el paso anterior. Si necesita instalar el estudio de gestión, puede Encuéntrelo aquí.
Inicia sesión con las credenciales pasadas al comando Docker del paso anterior, en este caso, Login: sa y Contraseña: ¡RandomMSSQLPass2!.

Crear nueva base de datos
Crearemos una nueva base de datos donde se cargarán los datos de Couchbase.

En este caso, como soy muy creativo, utilizaré cby seleccione Ok.

Crear inicio de sesión
A continuación, cree un inicio de sesión MSSQL. Haga clic con el botón derecho en la carpeta Login y seleccione Nuevo inicio de sesión....

El nombre de usuario que utilizamos es mssql-user y Contraseña es ¡RandomMSSQLUserPass2!.
Establezca la base de datos por defecto en cbla base de datos creada anteriormente.
Debes seguir tus normas de seguridad al crear usuarios. Las instrucciones de este artículo son solo a modo de tutorial y algunas opciones que elijo son por simplicidad.

Ir a Asignación de usuarios, a la izquierda bajo Seleccione una páginay seleccione cb en Usuarios asignados a este inicio de sesión y db_propietario bajo el Pertenencia a una función de la base de datos.

Ahora que tenemos esa configuración, verifique que puede iniciar sesión con el usuario. Salga de sa y vuelva a iniciar sesión con el nuevo usuario.
Crear tabla
Vamos a crear una tabla para que los datos se sincronicen, desde Couchbase. Vamos a la tabla Bases de datosentonces cba continuación, abra un Nueva consulta ventana. Los campos de esta tabla coinciden con los atributos del documento Couchbase beer-samples. El SQL para crear la tabla es el siguiente.

Ejecute la sentencia create table.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
crear tabla cerveza ( nombre varchar(200) no null restricción cerveza_pk principal clave sin agrupar, abv numérico(5, 2) no null, cervecería_id varchar(max) no null, categoría varchar(max), descripción varchar(max) no null, ibu int no null, srm int no null, estilo varchar(max), upc int no null, actualizado varchar(max) no null ) ir |
Configurar y ejecutar GlueSync para Couchbase a MSSQL
GlueSync tiene dos componentes, uno para Couchbase a MSSQL, y otro para MSSQL a Couchbase. Esto configurará la aplicación para sincronizar datos de Couchbase a MSSQL. La configuración en la otra dirección es muy similar.
Crear carpeta de configuración
Crea una carpeta para el archivo de configuración de GlueSync. Lo compartiremos con el contenedor Docker al iniciarlo.
1 |
mkdir c:\a\gluesync\config |
Obtener direcciones IP de red Docker para Couchbase y MSSQL
Necesitamos la información de red Docker para los contenedores Couchbase y MSSQL para configurar GlueSync.
Obtener los ID de los contenedores.
1 2 3 4 |
C:\Usuarios\David Elliott> docker contenedor ls -a CONTENEDOR ID IMAGEN COMANDO CREADO ESTADO PUERTOS NOMBRES 10b985792024 mcr.microsoft.com/mssql/servidor:2019-CU10-ubuntu-20.04 "/opt/mssql/bin/perm..." 34 minutos hace Arriba 34 minutos 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp mssql d2df1bad1647 couchbase:empresa-6.6.3 "/entrypoint.sh couc..." 40 minutos hace Arriba 40 minutos 0.0.0.0:8091-8096->8091-8096/tcp, :::8091-8096->8091-8096/tcp, 11207/tcp, 0.0.0.0:11210-11211->11210-11211/tcp, :::11210-11211->11210-11211/tcp, 18091-18096/tcp cb-663 |
Ahora, obtén las direcciones IP de los contenedores usando esos IDs usando el comando Docker Inspect en Couchbase.
1 2 3 4 |
C:\Usuarios\David Elliott> docker inspeccionar d2df1bad1647 | Seleccione-Cadena Dirección IPA "SecondaryIPAddresses" (Direcciones IP secundarias): null, "IPAddress": "172.17.0.2", "IPAddress": "172.17.0.2", |
Ejecute el comando Docker Inspect en MSSQL.
1 2 3 4 |
C:\Usuarios\David Elliott> docker inspeccionar 10b985792024 | Seleccione-Cadena Dirección IPA "SecondaryIPAddresses" (Direcciones IP secundarias): null, "IPAddress": "172.17.0.3", "IPAddress": "172.17.0.3", |
Las direcciones IP son:
- Couchbase - 172.17.0.2
- MSSQL - 172.17.0.3
NOTA: Si detienes y reinicias los contenedores, la dirección IP puede cambiar y tendrás que verificar que la configuración sigue siendo correcta.
Crear el archivo de configuración de GlueSync
Actualice la información a continuación con su información específica y guárdelo en el archivo config.json en la carpeta que ha creado anteriormente, es decir, c:³a\gluesync\config\config.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
{ "sourceHost": "172.17.0.2", "sourcePort": "8091", "sourceName": "muestra de cerveza", "sourceUsername": "cb-usuario", "sourcePassword": "¡RandomCBPass2!", "sourceEntities": { "cerveza": {} }, "sourceChangeRetention": 5, "copySourceEntitiesAtStartup": verdadero, "targetHost": "172.17.0.3", "targetPort": "1433", "targetName": "cb", "targetUsername": "mssql-user", "targetPassword": "RandomMSSQLUserPass2!", "maxItemsCountPerTransaction": 100, "maxTransactionCountPerIteration": 100, "couchbase": { "timeoutSeconds": 60, "indexReplicaCount": 0, "eventing": { "baseUrl": "http://172.17.0.2", "metadataBucketName": "Metadatos" } } } |
Obtener credenciales GlueSync para extraer la imagen GlueSync de Docker
Consulte la sección Antes de empezar para obtener información sobre la licencia de GlueSync para el registro de Docker y la descarga del producto.
Una vez que tengas esa información, sigue los siguientes pasos para instalar GlueSync.
Dado que es posible que ya tenga credenciales almacenadas, es posible que desee cerrar la sesión. Si te encuentras con problemas de credenciales, esta puede ser la razón.
1 2 |
C:\Usuarios\David Elliott> docker cierre de sesión registro.gitlab.com Eliminación de inicio de sesión credenciales para registro.gitlab.com |
Acceda al registro - puede que sea un registro diferente al que utiliza habitualmente, así que compruebe dos veces ese valor.
1 2 3 4 |
C:\Usuarios\David Elliott> docker inicio de sesión registro.gitlab.com Nombre de usuario: xxxusernamexxx Contraseña: Inicio de sesión Con éxito |
Tira de la imagen.
1 2 3 4 5 6 |
C:\Usuarios\David Elliott> docker tire de registro.gitlab.com/molo17srl/productos/gluesync/nosql-a-sql-kotlin/couchbase-a-mssql:última última: Tirando de de molo17srl/productos/gluesync/nosql-a-sql-kotlin/couchbase-a-mssql Digerir: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142 Estado: Descargado más nuevo imagen para registro.gitlab.com/molo17srl/productos/gluesync/nosql-a-sql-kotlin/couchbase-a-mssql:última registro.gitlab.com/molo17srl/productos/gluesync/nosql-a-sql-kotlin/couchbase-a-mssql:última C:\Usuarios\David Elliott> |
Es posible que desee cerrar la sesión de nuevo (me he tropezado cuando no cerrar la sesión y obtener errores la próxima vez que ejecute un comando).
1 2 |
C:\Usuarios\David Elliott> docker cierre de sesión registro.gitlab.com Eliminación de inicio de sesión credenciales para registro.gitlab.com |
Iniciar el contenedor/aplicación GlueSync
Actualice la ruta del archivo de configuración en el comando Docker siguiente para que coincida con la ruta de su ordenador.
1 |
docker ejecute -d --nombre gluesync-cb-a-mssql -v c:/a/gluesync/config:/op/aplicación/config registro.gitlab.com/molo17srl/productos/gluesync/nosql-a-sql-kotlin/couchbase-a-mssql:1.2.3 |
Deberías tener tres contenedores ejecutándose en Docker.

Si no se está ejecutando, comprueba si hay mensajes en los registros del contenedor. Yo he puesto sin querer el archivo de configuración en la carpeta equivocada y GlueSync no arrancó; los registros me permitieron saber lo que estaba pasando.
Ver la magia
Ve a MSSQL y consulta la tabla, deberías ver los datos del bucket de Couchbase en la tabla que hemos creado. Una vez que GlueSync se inició, sincronizó los datos de Couchbase a MSSQL.

Para jugar con ello, puedes modificar los datos y ver los cambios sincronizados en las bases de datos. Ve a los documentos de las muestras de cerveza y haz un cambio. Aquí, he actualizado dos documentos. Puedes ver el registro de salida de Docker debajo de la interfaz de usuario de Couchbase. GlueSync detectó los dos cambios.

Cambiando a MSSQL, también puedo ver las actualizaciones en MSSQL.

Conclusión
A menudo tenemos que trabajar con múltiples bases de datos, particularmente cuando estamos haciendo una modernización. Podemos tener un lanzamiento por fases o necesitar obtener datos existentes de una base de datos relacional antigua a Couchbase. Esto podría implicar código personalizado y pruebas o considerar un producto como GlueSync que hace el proceso más fluido.
Pedido GlueSync para más información sobre sus productos y capacidades.