Introdução
Você está modernizando seu processo de desenvolvimento? Está seguindo uma abordagem de desenvolvimento rápido para oferecer recursos de maior qualidade e mais frequentes aos seus clientes? Parte desse processo geralmente exige que trabalhemos com vários bancos de dados durante um período de transição, quando precisamos de ambos os bancos de dados disponíveis. Precisamos de uma maneira de sincronizar os dados entre os bancos de dados. Usando o Couchbase com GlueSync se encaixa nesse propósito.
O GlueSync permite que você replique dados de e para RDBMS (Microsoft SQL Server e Oracle) em tempo real com o Couchbase.
Usaremos o Docker nesta postagem enquanto percorremos as etapas para instalar e configurar o Couchbase, o Microsoft SQL Server e o GlueSync, demonstrando a sincronização de dados entre os dois.
Antes de começarmos
Docker
Primeiro, este tutorial usa o Docker e, se você não tiver o Docker, poderá encontrar mais informações aqui https://www.docker.com/. Você precisará instalar o Docker para concluir as etapas abaixo.
GlueSync
Em seguida, a GlueSync requer uma licença. Para concluir este tutorial, você precisará de uma licença da equipe da GlueSync. Você pode ir para https://gluesync.com/plans/ e veja mais informações sobre seus planos e https://gluesync.com/contact-sales/ para entrar em contato com a equipe da GlueSync.
Etapas de alto nível
- Executar e configurar o Couchbase e o MSSQL
- Criar o arquivo de configuração para o GlueSync
- Configurar e executar o GlueSync para Couchbase para MSSQL
- Veja a mágica
Executar o Couchbase e o MSSQL
Couchbase
Usaremos o Couchbase 6.6.3 para este tutorial. O seguinte comando do Docker colocará o Couchbase em funcionamento, expondo as portas de que precisamos.
1 |
doca executar -d --nome cb-663 -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase:empresa-6.6.3 |
MSSQL
Para o comando MSSQL Docker run, observe que estamos incluindo a senha SA. Atualize-a e anote-a, pois a usaremos mais tarde.
1 |
doca executar -d --nome mssql -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=RandomMSSQLPass2! -p 1433:1433 -d mcr.microsoft.com/mssql/servidor:2019-CU10-ubuntu-20.04 |
Verificar contêineres
Agora você deve ter dois contêineres em execução, o Couchbase e o MSSQL. Iniciaremos o contêiner da GlueSync depois de configurá-los.

Configurar o Couchbase com GlueSync e MSSQL
Começaremos com o Couchbase e faremos uma instalação básica.
Configurar novo cluster
A execução dos comandos do Docker acima teria iniciado o Couchbase e exposto as portas para que você possa abrir na interface do usuário do Couchbase, acessando http://localhost:8091/ui/index.html.
Nós escolheremos Configurar novo cluster e configurar um cluster de um nó (não recomendado para produção, mas funciona muito bem para desenvolvimento e para fazer um tutorial).

Digite as informações do novo cluster e clique em Próximo: Aceitar termos. Anote sua senha, pois precisaremos dela mais tarde. Estamos usando RandomCBPass2! para essa instância.

Se você aceitar os termos e condições, marque essa opção e clique em Finalizar com padrões.
OBSERVAÇÃO O GlueSync funciona com o Couchbase usando algumas tecnologias do Couchbase, o Sync Gateway e o serviço Eventing. Neste tutorial, estamos usando a opção Eventing. O recurso Eventing será instalado com a opção Finalizar com padrões seleção abaixo.
O Couchbase oferece uma instalação única em que você pode ativar todos os serviços ou escolher e personalizar de acordo com as necessidades do seu projeto. Este tutorial instalará todos os serviços por conveniência. Saiba mais sobre os serviços do Couchbase e o dimensionamento multidimensional.

Você deverá ser redirecionado para o Dashboard. Neste tutorial, usaremos os dados do bucket de amostra. Para instalar os dados, clique em Baldes de amostra.
Se, por algum motivo, você não estiver vendo o Balde de amostras no painel de controle, vá para Configurações no menu esquerdo, procure no canto superior direito da interface do usuário e você verá um item de menu para Baldes de amostraconforme mostrado abaixo.

Verifique a amostra de cerveja e clique em Carregar dados de amostra.

Aguarde alguns minutos para carregar e clique em Baldes na navegação à esquerda.
Você deveria ver o balde de amostras de cerveja que acabamos de carregar.

Vamos visualizar os documentos. Clique no ícone Documentos no link à direita, ao lado de Estatísticas.
Vamos sincronizar documentos do tipo cerveja. Você pode colocar um filtro (type="beer") na caixa N1QL WHERE e clicar em Recuperar documentos para obter esses documentos; será um pouco mais fácil ver e testar dessa forma.

Criar usuário do Couchbase
Criaremos um usuário para ser usado pelo aplicativo GlueSync. Isso é para fins de tutorial e você deve seguir suas práticas de segurança ao gerenciar seus usuários em conjunto com os requisitos do Couchbase e da GlueSync.
Ir para o Segurança no link à esquerda e clique em ADICIONAR USUÁRIO no canto superior direito.

Preencha as informações do usuário, conforme mostrado abaixo. Estamos usando o nome de usuário de cb-usuário e senha RandomCBPass2!Guarde essas informações para mais tarde. Certifique-se de verificar Administração completa sob as funções. Depois de preenchido, clique no botão Adicionar usuário botão.

Você verá o usuário que acabamos de criar.

Adicionar um bucket de metadados do GlueSync
O GlueSync usa o serviço Eventing do Couchbase. O Eventing requer um bucket de metadados, e vamos criar um agora. Obter mais informações no GlueSync e no bucket de metadados.
Ir para Baldes no menu à esquerda e clique em ADICIONAR BALDE no canto superior direito.

Digite o nome dos metadados e clique em Adicionar balde. Usaremos os padrões para as outras opções.

Você deve ver dois baldes agora.

MSSQL
Usaremos o SQL Server Management Studio para configurar o MSSQL, que foi instalado na etapa acima. Se precisar instalar o Management Studio, você pode encontre-o aqui.
Faça login com as credenciais passadas para o comando do Docker na etapa anterior, neste caso, Login: sa e Senha: RandomMSSQLPass2!.

Criar novo banco de dados
Criaremos um novo banco de dados no qual os dados do Couchbase serão carregados.

Nesse caso, como sou muito criativo, usarei cbe selecione Ok.

Criar login
Em seguida, crie um login MSSQL. Clique com o botão direito do mouse na pasta Login e selecione Novo login....

O nome de login que estamos usando é mssql-user e a senha é RandomMSSQLUserPass2!.
Definir o banco de dados padrão como cbno banco de dados criado acima.
Você deve seguir seus padrões de segurança ao criar usuários. As instruções neste artigo são apenas para fins de tutorial e algumas opções que escolhi são para simplificar.

Ir para Mapeamento de usuários, à esquerda sob Selecione uma páginae selecione cb sob Usuários mapeados para este login e Proprietário do banco de dados sob o Participação na função do banco de dados.

Agora que temos essa configuração, verifique se você pode fazer login com o usuário. Faça logout do sa e faça login novamente com o novo usuário.
Criar tabela
Vamos criar uma tabela para os dados a serem sincronizados, a partir do Couchbase. Vá para a tabela Bancos de dados, então cbe, em seguida, abra um Nova consulta janela. Os campos dessa tabela correspondem aos atributos do documento beer-samples do Couchbase. O SQL para criar a tabela está abaixo.

Execute o comando create table.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
criar tabela cerveja ( nome varchar(200) não nulo restrição cerveja_pk primário chave não agrupado, abv numérico(5, 2) não nulo, cervejaria_id varchar(máximo) não nulo, categoria varchar(máximo), descrição varchar(máximo) não nulo, ibu int não nulo, srm int não nulo, estilo varchar(máximo), upc int não nulo, atualizado varchar(máximo) não nulo ) ir |
Configurar e executar o GlueSync para Couchbase para MSSQL
O GlueSync tem dois componentes, um para o Couchbase para o MSSQL e outro para o MSSQL para o Couchbase. Isso configurará o aplicativo para sincronizar os dados do Couchbase com o MSSQL. A configuração da outra direção é muito semelhante.
Criar pasta de configuração
Crie uma pasta para o arquivo de configuração do GlueSync. Compartilharemos isso com o contêiner do Docker ao iniciá-lo.
1 |
mkdir c:\a\gluesync\configuração |
Obter endereços IP de rede do Docker para Couchbase e MSSQL
Precisamos das informações de rede do Docker para os contêineres do Couchbase e do MSSQL para configurar o GlueSync.
Obtenha os IDs de contêineres.
1 2 3 4 |
C:\Usuários\Davi Elliott> doca contêiner ls -a CONTAINER ID IMAGEM COMANDO CRIADO STATUS PORTOS NOMES 10b985792024 mcr.microsoft.com/mssql/servidor:2019-CU10-ubuntu-20.04 "/opt/mssql/bin/perm..." 34 minutos atrás Para cima 34 minutos 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp mssql d2df1bad1647 couchbase:empresa-6.6.3 "/entrypoint.sh couc..." 40 minutos atrás Para cima 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 |
Agora, obtenha os endereços IP dos contêineres que usam esses IDs usando o comando Docker Inspect no Couchbase.
1 2 3 4 |
C:\Usuários\Davi Elliott> doca inspecionar d2df1bad1647 | Selecione-Cordas Endereço IPA "SecondaryIPAddresses" (Endereços IP secundários): nulo, "IPAddress" (endereço IP): "172.17.0.2", "IPAddress" (endereço IP): "172.17.0.2", |
Execute o comando Docker Inspect no MSSQL.
1 2 3 4 |
C:\Usuários\Davi Elliott> doca inspecionar 10b985792024 | Selecione-Cordas Endereço IPA "SecondaryIPAddresses" (Endereços IP secundários): nulo, "IPAddress" (endereço IP): "172.17.0.3", "IPAddress" (endereço IP): "172.17.0.3", |
Os endereços IP são:
- Couchbase - 172.17.0.2
- MSSQL - 172.17.0.3
OBSERVAÇÃO: se você parar e reiniciar os contêineres, o endereço IP poderá mudar e será necessário verificar se a configuração ainda está correta.
Criar o arquivo de configuração da GlueSync
Atualize as informações abaixo com suas informações específicas e salve-as no arquivo config.json na pasta que você criou acima, ou seja, 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": "amostra de cerveja", "sourceUsername": "cb-user", "sourcePassword": "RandomCBPass2!", "sourceEntities": { "cerveja": {} }, "sourceChangeRetention": 5, "copySourceEntitiesAtStartup": verdadeiro, "targetHost": "172.17.0.3", "targetPort": "1433", "targetName": "cb", "targetUsername": "mssql-user", "targetPassword" (senha de destino): "RandomMSSQLUserPass2!", "maxItemsCountPerTransaction": 100, "maxTransactionCountPerIteration": 100, "couchbase": { "timeoutSeconds": 60, "indexReplicaCount": 0, "eventos": { "baseUrl": "http://172.17.0.2", "metadataBucketName": "Metadados" } } } |
Obter credenciais da GlueSync para extrair a imagem da GlueSync do Docker
Consulte a seção Antes de começar acima para obter informações sobre a licença do GlueSync para o registro do Docker e fazer o download do produto.
Quando você tiver essas informações, siga as etapas abaixo para instalar o GlueSync.
Como é possível que você já tenha credenciais armazenadas, talvez queira fazer logout. Se você tiver problemas com as credenciais, esse pode ser o motivo.
1 2 |
C:\Usuários\Davi Elliott> doca sair registro.gitlab.com Remoção login credenciais para registro.gitlab.com |
Faça login no registro - esse pode ser um registro diferente do que você normalmente usa, portanto, verifique novamente esse valor.
1 2 3 4 |
C:\Usuários\Davi Elliott> doca login registro.gitlab.com Nome de usuário: xxxusernamexxx Senha: Login Bem-sucedido |
Puxe a imagem.
1 2 3 4 5 6 |
C:\Usuários\Davi Elliott> doca puxar registro.gitlab.com/molo17srl/produtos/gluesync/nosql-para-sql-kotlin/couchbase-para-mssql:mais recente mais recente: Puxar de molo17srl/produtos/gluesync/nosql-para-sql-kotlin/couchbase-para-mssql Digerir: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142 Status: Baixado mais recente imagem para registro.gitlab.com/molo17srl/produtos/gluesync/nosql-para-sql-kotlin/couchbase-para-mssql:mais recente registro.gitlab.com/molo17srl/produtos/gluesync/nosql-para-sql-kotlin/couchbase-para-mssql:mais recente C:\Usuários\Davi Elliott> |
Talvez você queira fazer o logout novamente (já me atrapalhei quando não fiz o logout e recebi erros na próxima vez que executei um comando).
1 2 |
C:\Usuários\Davi Elliott> doca sair registro.gitlab.com Remoção login credenciais para registro.gitlab.com |
Inicie o contêiner/aplicativo GlueSync
Atualize o caminho para o arquivo de configuração no comando do Docker abaixo para corresponder ao caminho em seu computador.
1 |
doca executar -d --nome gluesync-cb-para-mssql -v c:/a/gluesync/configuração:/optar/aplicativo/configuração registro.gitlab.com/molo17srl/produtos/gluesync/nosql-para-sql-kotlin/couchbase-para-mssql:1.2.3 |
Você deve ter três contêineres em execução no Docker.

Se ele não estiver em execução, verifique se há mensagens nos registros do contêiner. Inadvertidamente, coloquei o arquivo de configuração na pasta errada e o GlueSync não foi iniciado; os registros me informaram o que estava acontecendo.
Veja a magia
Vá para o MSSQL e consulte a tabela. Você deverá ver os dados do bucket do Couchbase na tabela que criamos. Quando o GlueSync foi iniciado, ele sincronizou os dados do Couchbase com o MSSQL.

Para brincar com isso, você pode modificar os dados e ver as alterações sincronizadas entre os bancos de dados. Vá para os documentos de amostras de cerveja e faça uma alteração. Aqui, atualizei dois documentos. Você pode ver o registro de saída do Docker abaixo da interface do usuário do Couchbase. O GlueSync detectou as duas alterações.

Ao mudar para o MSSQL, também posso ver as atualizações no MSSQL.

Conclusão
Muitas vezes, temos de trabalhar com vários bancos de dados, principalmente quando estamos fazendo uma modernização. Podemos ter uma versão em fases ou precisar obter dados existentes de um banco de dados relacional mais antigo para o Couchbase. Isso pode envolver código e testes personalizados ou considerar um produto como o GlueSync, que torna o processo mais simples.
Checkout GlueSync para obter mais informações sobre seus produtos e recursos.