Design de Aplicativos

Seu Guia para Sincronização de Dados entre Couchbase e Bancos de Dados Relacionais com o GlueSync

11 MIN DE LEITURA


O Couchbase oferece uma única instalação onde você pode habilitar todos os serviços ou selecionar e escolher para 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ê deve ser redirecionado para o Painel. Usaremos dados do bucket de exemplo neste tutorial. Para instalar os dados, clique Buckets de Amostra.

Se, por algum motivo, você não ver o Bucket de Amostras link no painel, acesse Configurações a partir do menu esquerdo, olhe próximo ao canto superior direito da interface do usuário e você verá um item de menu para Buckets de Amostra, conforme mostrado abaixo. 

Verifique beer-sample e clique Carregar Dados de Exemplo.

Espere alguns minutos para carregar, depois clique Baldes na navegação à esquerda.

 Você deve ver o bucket beer-sample que acabamos de carregar.

Vamos ver os documentos. Clique no Documentos link à direita, ao lado de Estatística.

Vamos sincronizar documentos do tipo beer. Você pode colocar um filtro (type=”beer”) na caixa WHERE do N1QL e clicar Recuperar Documentos para conseguir esses documentos; será um pouco mais fácil ver e testar assim.

 

Criar Usuário do Couchbase

Criaremos um usuário para o aplicativo GlueSync utilizar. 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 do GlueSync.

Vá para o Segurança link à esquerda e depois clique 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 usuário-cb e Senha RandomCBPass2!; guarde esta informação para depois. Certifique-se de verificar Administrador Completo em funções. Assim que estiver preenchido, clique no Adicionar Usuário botão.

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

 

Adicionar um bucket de metadados do GlueSync

O GlueSync usa o serviço de Eventing do Couchbase. O Eventing requer um bucket de Metadados, e criaremos um agora. Obter mais informações no GlueSync e no bucket de metadados.

Ir para Baldes no menu à esquerda e clique ADICIONAR BALDE no canto superior direito.

Insira o Nome dos Metadados e clique Adicionar Bucket. 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 você precisar instalar o management studio, você pode encontre aqui. 

Faça o login com as credenciais passadas para o comando Docker na etapa anterior, neste caso, Login: Olá e Senha: RandomMSSQLPass2!.

 

Criar Novo Banco de Dados

Criaremos um novo banco de dados para onde os dados do Couchbase serão carregados.

Nesse caso, como sou muito criativo, vou usar cb, e escolha Ok.

 

Criar Login

Em seguida, crie um Logon do MSSQL. Clique com o botão direito na pasta Logons e escolha Novo login....

O nome de login que estamos usando é usuário-mssql e a senha é RandomMSSQLUserPass2!.

Definir banco de dados padrão como cb, o 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 estou escolhendo são para simplificação.

Ir para Mapeamento de Usuários, à esquerda embaixo Selecione uma página, e selecione cb sob Usuários mapeados para este login e db_owner sob Associação a função de banco de dados.

Agora que temos essa configuração, verifique se você consegue fazer login com o usuário. Saia da conta sa e faça login novamente com o novo usuário.

Criar Tabela

Vamos criar uma tabela para os dados a serem sincronizados para e do Couchbase. Vá para o Bancos de dados, então cb, depois abra um Nova Consulta janela. Os campos desta tabela correspondem aos atributos no documento beer-samples do Couchbase. O SQL para criar a tabela está abaixo.

Execute o comando create table. 

create table beer
(
    name         varchar(200)  not null constraint beer_pk primary key nonclustered,
    abv          numeric(5, 2) not null,
    brewery_id   varchar(max)  not null,
    category     varchar(max),
    description  varchar(max)  not null,
    ibu          int           not null,
    srm          int           not null,
    style        varchar(max),
    upc          int           not null,
    updated      varchar(max)  not null
)
go

Configurar e executar o GlueSync para Couchbase para MSSQL

O GlueSync tem dois componentes, um para Couchbase para MSSQL e outro para MSSQL para Couchbase. Isso configurará a aplicação para sincronizar dados do Couchbase para o MSSQL. A configuração para a outra direção é muito semelhante.   

Criar pasta de configuração

Crie uma pasta para o arquivo de configuração do GlueSync. Vamos compartilhar isso com o contêiner do Docker ao iniciá-lo.

mkdir c:\agluesync\config

 

Obter os endereços IP da rede Docker para o Couchbase e o MSSQL

Precisamos das informações da rede Docker para os containers do Couchbase e do MSSQL para configurar o GlueSync.

Obtenha os IDs dos contêineres.

C:UsersDavid Elliott> docker container ls -a
ID DO CONTÊINER   IMAGEM                                                   COMANDO                  CRIADO          STATUS                   PORTAS                                                                                                                              NOMEES
10b985792024   mcr.microsoft.com/mssql/server:2019-CU10-ubuntu-20.04   "/opt/mssql/bin/perm…"   34 minutos atrás   Ativo há 34 minutos            0.0.0.0:1433->1433/tcp, :::1433->1433/tcp                                                                                                                          mssql
d2df1bad1647   couchbase:enterprise-6.6.3                              "/entrypoint.sh couc…"   40 minutos atrás   Ativo há 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 para os contêineres usando esses IDs através do comando Docker Inspect no Couchbase.

C:UsersDavid Elliott> docker inspect d2df1bad1647 | Select-String IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                   "IPAddress": "172.17.0.2",

Execute o comando Docker Inspect no MSSQL.

C:\UsersDavid Elliott> docker inspect 10b985792024 | Select-String IPAddress
           "SecondaryIPAddresses": null,
           "IPAddress": "172.17.0.3",
                   "IPAddress": "172.17.0.3",

Os endereços IP são:

  • Couchbase – 172.17.0.2
  • MSSQL – 172.17.0.3

NOTA: Se você parar e reiniciar os contêineres, o endereço IP poderá mudar e você precisará verificar se a configuração ainda está correta.

Criar o arquivo de configuração do 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:\agluesync\config\config.json

{
  "sourceHost": "172.17.0.2",
  "sourcePort": "8091",
  "sourceName": "beer-sample",
  "sourceUsername": "cb-user",
  "sourcePassword": "RandomCBPass2!",
  "sourceEntities": {
    "beer": {}
  },
  "sourceChangeRetention": 5,
  "copySourceEntitiesAtStartup": true,
  "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": "https://172.17.0.2",
      "metadataBucketName": "Metadata"
    }
  }
}

Obter credenciais do GlueSync para baixar a imagem do GlueSync do Docker

Consulte a seção Antes de Começarmos acima para obter informações sobre a licença do GlueSync para o registro Docker e o download do produto. 

Assim que tiver essas informações, siga os passos abaixo para instalar o GlueSync.

Como você já pode ter credenciais armazenadas, talvez queira sair. Se você tiver problemas com credenciais, este pode ser o motivo.

Removendo credenciais de login para registry.gitlab.com

Faça login no registro – este pode ser um registro diferente do que você costuma usar, portanto, verifique esse valor novamente.

 

C:UsersDavid Elliott> docker login registry.gitlab.com
Username: xxxusernamexxx
Password:
Login Succeeded

Baixe a imagem.

C:UsersDavid Elliott> docker pull registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
latest: Pulling from molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql
Digest: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142
Status: Downloaded newer image for registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
C:UsersDavid Elliott>

Você pode querer sair novamente (já tive problemas quando não saí e obtive erros na próxima vez que executei um comando).

 

Removendo credenciais de login para registry.gitlab.com

Iniciar o container/aplicativo GlueSync

Atualize o caminho para o arquivo de configuração no comando do Docker abaixo para corresponder ao caminho no seu computador.

docker run -d --name gluesync-cb-to-mssql -v c:/a/gluesync/config:/opt/app/config registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:1.2.3

Você deve ter três contêineres rodando no Docker.

Se não estiver rodando, verifique os logs do contêiner em busca de mensagens. Sem querer, coloquei o arquivo de configuração na pasta errada e o GlueSync não iniciou; os logs me avisaram o que estava acontecendo.

Veja a Mágica

Vá para o MSSQL e faça uma consulta na tabela; você deverá ver os dados do bucket do Couchbase na tabela que criamos. Uma vez que o GlueSync foi iniciado, ele sincronizou os dados do Couchbase para o MSSQL.

Para testar, você pode modificar os dados e ver as alterações sincronizadas entre os bancos de dados. Vá para os documentos de beer-samples e faça uma alteração. Aqui, atualizei dois documentos. Você pode ver o log de saída do Docker abaixo da interface do Couchbase. O GlueSync detectou as duas alterações.

Mudando para o MSSQL, consigo ver as atualizações no MSSQL também.

 

Conclusão

Frequentemente precisamos trabalhar com vários bancos de dados, particularmente quando estamos fazendo uma modernização. Podemos ter um lançamento em fases ou precisar trazer dados existentes de um banco de dados relacional mais antigo para o Couchbase. Isso pode envolver código personalizado e testes ou considerar um produto como o GlueSync, que torna o processo mais integrado. 

Finalizar compra GlueSync para obter mais informações sobre seus produtos e capacidades.


Neste post, usaremos o Docker enquanto percorremos as etapas para configurar 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 Docker e, se você não tiver o Docker, pode encontrar mais informações aqui https://www.docker.com/. Você precisará instalar o Docker para concluir as etapas abaixo.

GlueSync

Em seguida, o GlueSync requer uma licença. Para concluir este tutorial, você precisará de uma licença da equipe do GlueSync. Você pode acessar https://gluesync.com/plans/ e ver mais informações sobre seus planos e https://gluesync.com/contact-sales/ para entrar em contato com a equipe do GlueSync.

Etapas de alto nível

  1. Executar e Configurar o Couchbase e o MSSQL
  2. Criar o arquivo de configuração para o GlueSync
  3. Configurar e executar o GlueSync para Couchbase para MSSQL
  4. Veja a mágica

Execute o Couchbase e o MSSQL

Couchbase

Usaremos o Couchbase 6.6.3 para este tutorial. O seguinte comando Docker colocará o Couchbase em funcionamento, expondo as portas de que precisamos.

docker run -d --name cb-663 -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase:enterprise-6.6.3

MSSQL

Para o comando de execução do Docker do MSSQL, note que estamos incluindo a senha do SA. Atualize-a e anote-a, nós a usaremos mais tarde.

docker run -d --name mssql -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=RandomMSSQLPass2!' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-CU10-ubuntu-20.04

Verificar Contêineres

Agora você deve ter dois containers em execução, Couchbase e MSSQL. Vamos iniciar o container do GlueSync depois de configurá-los.

 

Configure 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 a interface do Couchbase acessando https://localhost:8091/ui/index.html.

Nós escolheremos Configurar Novo Cluster e configure um cluster de um nó (não recomendado para produção, mas funciona ótimo para desenvolvimento e para fazer um tutorial). 

Insira as informações do novo cluster e clique Avançar: Aceitar os Termos. Anote sua senha, vamos precisar dela mais tarde. Estamos usando RandomCBPass2! para esta instância.

Se você aceitar os termos e condições, marque essa opção e clique Concluir com Padrões.

NOTA O GlueSync funciona com o Couchbase usando algumas tecnologias do Couchbase, o Sync Gateway e o serviço Eventing. Estamos usando a opção Eventing neste tutorial. O recurso Eventing será instalado com o Concluir com Padrões seleção abaixo. 


O Couchbase oferece uma única instalação onde você pode habilitar todos os serviços ou selecionar e escolher para 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ê deve ser redirecionado para o Painel. Usaremos dados do bucket de exemplo neste tutorial. Para instalar os dados, clique Buckets de Amostra.

Se, por algum motivo, você não ver o Bucket de Amostras link no painel, acesse Configurações a partir do menu esquerdo, olhe próximo ao canto superior direito da interface do usuário e você verá um item de menu para Buckets de Amostra, conforme mostrado abaixo. 

Verifique beer-sample e clique Carregar Dados de Exemplo.

Espere alguns minutos para carregar, depois clique Baldes na navegação à esquerda.

 Você deve ver o bucket beer-sample que acabamos de carregar.

Vamos ver os documentos. Clique no Documentos link à direita, ao lado de Estatística.

Vamos sincronizar documentos do tipo beer. Você pode colocar um filtro (type=”beer”) na caixa WHERE do N1QL e clicar Recuperar Documentos para conseguir esses documentos; será um pouco mais fácil ver e testar assim.

 

Criar Usuário do Couchbase

Criaremos um usuário para o aplicativo GlueSync utilizar. 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 do GlueSync.

Vá para o Segurança link à esquerda e depois clique 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 usuário-cb e Senha RandomCBPass2!; guarde esta informação para depois. Certifique-se de verificar Administrador Completo em funções. Assim que estiver preenchido, clique no Adicionar Usuário botão.

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

 

Adicionar um bucket de metadados do GlueSync

O GlueSync usa o serviço de Eventing do Couchbase. O Eventing requer um bucket de Metadados, e criaremos um agora. Obter mais informações no GlueSync e no bucket de metadados.

Ir para Baldes no menu à esquerda e clique ADICIONAR BALDE no canto superior direito.

Insira o Nome dos Metadados e clique Adicionar Bucket. 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 você precisar instalar o management studio, você pode encontre aqui. 

Faça o login com as credenciais passadas para o comando Docker na etapa anterior, neste caso, Login: Olá e Senha: RandomMSSQLPass2!.

 

Criar Novo Banco de Dados

Criaremos um novo banco de dados para onde os dados do Couchbase serão carregados.

Nesse caso, como sou muito criativo, vou usar cb, e escolha Ok.

 

Criar Login

Em seguida, crie um Logon do MSSQL. Clique com o botão direito na pasta Logons e escolha Novo login....

O nome de login que estamos usando é usuário-mssql e a senha é RandomMSSQLUserPass2!.

Definir banco de dados padrão como cb, o 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 estou escolhendo são para simplificação.

Ir para Mapeamento de Usuários, à esquerda embaixo Selecione uma página, e selecione cb sob Usuários mapeados para este login e db_owner sob Associação a função de banco de dados.

Agora que temos essa configuração, verifique se você consegue fazer login com o usuário. Saia da conta sa e faça login novamente com o novo usuário.

Criar Tabela

Vamos criar uma tabela para os dados a serem sincronizados para e do Couchbase. Vá para o Bancos de dados, então cb, depois abra um Nova Consulta janela. Os campos desta tabela correspondem aos atributos no documento beer-samples do Couchbase. O SQL para criar a tabela está abaixo.

Execute o comando create table. 

create table beer
(
    name         varchar(200)  not null constraint beer_pk primary key nonclustered,
    abv          numeric(5, 2) not null,
    brewery_id   varchar(max)  not null,
    category     varchar(max),
    description  varchar(max)  not null,
    ibu          int           not null,
    srm          int           not null,
    style        varchar(max),
    upc          int           not null,
    updated      varchar(max)  not null
)
go

Configurar e executar o GlueSync para Couchbase para MSSQL

O GlueSync tem dois componentes, um para Couchbase para MSSQL e outro para MSSQL para Couchbase. Isso configurará a aplicação para sincronizar dados do Couchbase para o MSSQL. A configuração para a outra direção é muito semelhante.   

Criar pasta de configuração

Crie uma pasta para o arquivo de configuração do GlueSync. Vamos compartilhar isso com o contêiner do Docker ao iniciá-lo.

mkdir c:\agluesync\config

 

Obter os endereços IP da rede Docker para o Couchbase e o MSSQL

Precisamos das informações da rede Docker para os containers do Couchbase e do MSSQL para configurar o GlueSync.

Obtenha os IDs dos contêineres.

C:UsersDavid Elliott> docker container ls -a
ID DO CONTÊINER   IMAGEM                                                   COMANDO                  CRIADO          STATUS                   PORTAS                                                                                                                              NOMEES
10b985792024   mcr.microsoft.com/mssql/server:2019-CU10-ubuntu-20.04   "/opt/mssql/bin/perm…"   34 minutos atrás   Ativo há 34 minutos            0.0.0.0:1433->1433/tcp, :::1433->1433/tcp                                                                                                                          mssql
d2df1bad1647   couchbase:enterprise-6.6.3                              "/entrypoint.sh couc…"   40 minutos atrás   Ativo há 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 para os contêineres usando esses IDs através do comando Docker Inspect no Couchbase.

C:UsersDavid Elliott> docker inspect d2df1bad1647 | Select-String IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                   "IPAddress": "172.17.0.2",

Execute o comando Docker Inspect no MSSQL.

C:\UsersDavid Elliott> docker inspect 10b985792024 | Select-String IPAddress
           "SecondaryIPAddresses": null,
           "IPAddress": "172.17.0.3",
                   "IPAddress": "172.17.0.3",

Os endereços IP são:

  • Couchbase – 172.17.0.2
  • MSSQL – 172.17.0.3

NOTA: Se você parar e reiniciar os contêineres, o endereço IP poderá mudar e você precisará verificar se a configuração ainda está correta.

Criar o arquivo de configuração do 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:\agluesync\config\config.json

{
  "sourceHost": "172.17.0.2",
  "sourcePort": "8091",
  "sourceName": "beer-sample",
  "sourceUsername": "cb-user",
  "sourcePassword": "RandomCBPass2!",
  "sourceEntities": {
    "beer": {}
  },
  "sourceChangeRetention": 5,
  "copySourceEntitiesAtStartup": true,
  "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": "https://172.17.0.2",
      "metadataBucketName": "Metadata"
    }
  }
}

Obter credenciais do GlueSync para baixar a imagem do GlueSync do Docker

Consulte a seção Antes de Começarmos acima para obter informações sobre a licença do GlueSync para o registro Docker e o download do produto. 

Assim que tiver essas informações, siga os passos abaixo para instalar o GlueSync.

Como você já pode ter credenciais armazenadas, talvez queira sair. Se você tiver problemas com credenciais, este pode ser o motivo.

Removendo credenciais de login para registry.gitlab.com

Faça login no registro – este pode ser um registro diferente do que você costuma usar, portanto, verifique esse valor novamente.

 

C:UsersDavid Elliott> docker login registry.gitlab.com
Username: xxxusernamexxx
Password:
Login Succeeded

Baixe a imagem.

C:UsersDavid Elliott> docker pull registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
latest: Pulling from molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql
Digest: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142
Status: Downloaded newer image for registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
C:UsersDavid Elliott>

Você pode querer sair novamente (já tive problemas quando não saí e obtive erros na próxima vez que executei um comando).

 

Removendo credenciais de login para registry.gitlab.com

Iniciar o container/aplicativo GlueSync

Atualize o caminho para o arquivo de configuração no comando do Docker abaixo para corresponder ao caminho no seu computador.

docker run -d --name gluesync-cb-to-mssql -v c:/a/gluesync/config:/opt/app/config registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:1.2.3

Você deve ter três contêineres rodando no Docker.

Se não estiver rodando, verifique os logs do contêiner em busca de mensagens. Sem querer, coloquei o arquivo de configuração na pasta errada e o GlueSync não iniciou; os logs me avisaram o que estava acontecendo.

Veja a Mágica

Vá para o MSSQL e faça uma consulta na tabela; você deverá ver os dados do bucket do Couchbase na tabela que criamos. Uma vez que o GlueSync foi iniciado, ele sincronizou os dados do Couchbase para o MSSQL.

Para testar, você pode modificar os dados e ver as alterações sincronizadas entre os bancos de dados. Vá para os documentos de beer-samples e faça uma alteração. Aqui, atualizei dois documentos. Você pode ver o log de saída do Docker abaixo da interface do Couchbase. O GlueSync detectou as duas alterações.

Mudando para o MSSQL, consigo ver as atualizações no MSSQL também.

 

Conclusão

Frequentemente precisamos trabalhar com vários bancos de dados, particularmente quando estamos fazendo uma modernização. Podemos ter um lançamento em fases ou precisar trazer dados existentes de um banco de dados relacional mais antigo para o Couchbase. Isso pode envolver código personalizado e testes ou considerar um produto como o GlueSync, que torna o processo mais integrado. 

Finalizar compra GlueSync para obter mais informações sobre seus produtos e capacidades.


O GlueSync permite replicar dados de e para RDBMS (Microsoft SQL Server e Oracle) em tempo real com o Couchbase.


Neste post, usaremos o Docker enquanto percorremos as etapas para configurar 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 Docker e, se você não tiver o Docker, pode encontrar mais informações aqui https://www.docker.com/. Você precisará instalar o Docker para concluir as etapas abaixo.

GlueSync

Em seguida, o GlueSync requer uma licença. Para concluir este tutorial, você precisará de uma licença da equipe do GlueSync. Você pode acessar https://gluesync.com/plans/ e ver mais informações sobre seus planos e https://gluesync.com/contact-sales/ para entrar em contato com a equipe do GlueSync.

Etapas de alto nível

  1. Executar e Configurar o Couchbase e o MSSQL
  2. Criar o arquivo de configuração para o GlueSync
  3. Configurar e executar o GlueSync para Couchbase para MSSQL
  4. Veja a mágica

Execute o Couchbase e o MSSQL

Couchbase

Usaremos o Couchbase 6.6.3 para este tutorial. O seguinte comando Docker colocará o Couchbase em funcionamento, expondo as portas de que precisamos.

docker run -d --name cb-663 -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase:enterprise-6.6.3

MSSQL

Para o comando de execução do Docker do MSSQL, note que estamos incluindo a senha do SA. Atualize-a e anote-a, nós a usaremos mais tarde.

docker run -d --name mssql -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=RandomMSSQLPass2!' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-CU10-ubuntu-20.04

Verificar Contêineres

Agora você deve ter dois containers em execução, Couchbase e MSSQL. Vamos iniciar o container do GlueSync depois de configurá-los.

 

Configure 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 a interface do Couchbase acessando https://localhost:8091/ui/index.html.

Nós escolheremos Configurar Novo Cluster e configure um cluster de um nó (não recomendado para produção, mas funciona ótimo para desenvolvimento e para fazer um tutorial). 

Insira as informações do novo cluster e clique Avançar: Aceitar os Termos. Anote sua senha, vamos precisar dela mais tarde. Estamos usando RandomCBPass2! para esta instância.

Se você aceitar os termos e condições, marque essa opção e clique Concluir com Padrões.

NOTA O GlueSync funciona com o Couchbase usando algumas tecnologias do Couchbase, o Sync Gateway e o serviço Eventing. Estamos usando a opção Eventing neste tutorial. O recurso Eventing será instalado com o Concluir com Padrões seleção abaixo. 


O Couchbase oferece uma única instalação onde você pode habilitar todos os serviços ou selecionar e escolher para 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ê deve ser redirecionado para o Painel. Usaremos dados do bucket de exemplo neste tutorial. Para instalar os dados, clique Buckets de Amostra.

Se, por algum motivo, você não ver o Bucket de Amostras link no painel, acesse Configurações a partir do menu esquerdo, olhe próximo ao canto superior direito da interface do usuário e você verá um item de menu para Buckets de Amostra, conforme mostrado abaixo. 

Verifique beer-sample e clique Carregar Dados de Exemplo.

Espere alguns minutos para carregar, depois clique Baldes na navegação à esquerda.

 Você deve ver o bucket beer-sample que acabamos de carregar.

Vamos ver os documentos. Clique no Documentos link à direita, ao lado de Estatística.

Vamos sincronizar documentos do tipo beer. Você pode colocar um filtro (type=”beer”) na caixa WHERE do N1QL e clicar Recuperar Documentos para conseguir esses documentos; será um pouco mais fácil ver e testar assim.

 

Criar Usuário do Couchbase

Criaremos um usuário para o aplicativo GlueSync utilizar. 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 do GlueSync.

Vá para o Segurança link à esquerda e depois clique 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 usuário-cb e Senha RandomCBPass2!; guarde esta informação para depois. Certifique-se de verificar Administrador Completo em funções. Assim que estiver preenchido, clique no Adicionar Usuário botão.

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

 

Adicionar um bucket de metadados do GlueSync

O GlueSync usa o serviço de Eventing do Couchbase. O Eventing requer um bucket de Metadados, e criaremos um agora. Obter mais informações no GlueSync e no bucket de metadados.

Ir para Baldes no menu à esquerda e clique ADICIONAR BALDE no canto superior direito.

Insira o Nome dos Metadados e clique Adicionar Bucket. 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 você precisar instalar o management studio, você pode encontre aqui. 

Faça o login com as credenciais passadas para o comando Docker na etapa anterior, neste caso, Login: Olá e Senha: RandomMSSQLPass2!.

 

Criar Novo Banco de Dados

Criaremos um novo banco de dados para onde os dados do Couchbase serão carregados.

Nesse caso, como sou muito criativo, vou usar cb, e escolha Ok.

 

Criar Login

Em seguida, crie um Logon do MSSQL. Clique com o botão direito na pasta Logons e escolha Novo login....

O nome de login que estamos usando é usuário-mssql e a senha é RandomMSSQLUserPass2!.

Definir banco de dados padrão como cb, o 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 estou escolhendo são para simplificação.

Ir para Mapeamento de Usuários, à esquerda embaixo Selecione uma página, e selecione cb sob Usuários mapeados para este login e db_owner sob Associação a função de banco de dados.

Agora que temos essa configuração, verifique se você consegue fazer login com o usuário. Saia da conta sa e faça login novamente com o novo usuário.

Criar Tabela

Vamos criar uma tabela para os dados a serem sincronizados para e do Couchbase. Vá para o Bancos de dados, então cb, depois abra um Nova Consulta janela. Os campos desta tabela correspondem aos atributos no documento beer-samples do Couchbase. O SQL para criar a tabela está abaixo.

Execute o comando create table. 

create table beer
(
    name         varchar(200)  not null constraint beer_pk primary key nonclustered,
    abv          numeric(5, 2) not null,
    brewery_id   varchar(max)  not null,
    category     varchar(max),
    description  varchar(max)  not null,
    ibu          int           not null,
    srm          int           not null,
    style        varchar(max),
    upc          int           not null,
    updated      varchar(max)  not null
)
go

Configurar e executar o GlueSync para Couchbase para MSSQL

O GlueSync tem dois componentes, um para Couchbase para MSSQL e outro para MSSQL para Couchbase. Isso configurará a aplicação para sincronizar dados do Couchbase para o MSSQL. A configuração para a outra direção é muito semelhante.   

Criar pasta de configuração

Crie uma pasta para o arquivo de configuração do GlueSync. Vamos compartilhar isso com o contêiner do Docker ao iniciá-lo.

mkdir c:\agluesync\config

 

Obter os endereços IP da rede Docker para o Couchbase e o MSSQL

Precisamos das informações da rede Docker para os containers do Couchbase e do MSSQL para configurar o GlueSync.

Obtenha os IDs dos contêineres.

C:UsersDavid Elliott> docker container ls -a
ID DO CONTÊINER   IMAGEM                                                   COMANDO                  CRIADO          STATUS                   PORTAS                                                                                                                              NOMEES
10b985792024   mcr.microsoft.com/mssql/server:2019-CU10-ubuntu-20.04   "/opt/mssql/bin/perm…"   34 minutos atrás   Ativo há 34 minutos            0.0.0.0:1433->1433/tcp, :::1433->1433/tcp                                                                                                                          mssql
d2df1bad1647   couchbase:enterprise-6.6.3                              "/entrypoint.sh couc…"   40 minutos atrás   Ativo há 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 para os contêineres usando esses IDs através do comando Docker Inspect no Couchbase.

C:UsersDavid Elliott> docker inspect d2df1bad1647 | Select-String IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                   "IPAddress": "172.17.0.2",

Execute o comando Docker Inspect no MSSQL.

C:\UsersDavid Elliott> docker inspect 10b985792024 | Select-String IPAddress
           "SecondaryIPAddresses": null,
           "IPAddress": "172.17.0.3",
                   "IPAddress": "172.17.0.3",

Os endereços IP são:

  • Couchbase – 172.17.0.2
  • MSSQL – 172.17.0.3

NOTA: Se você parar e reiniciar os contêineres, o endereço IP poderá mudar e você precisará verificar se a configuração ainda está correta.

Criar o arquivo de configuração do 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:\agluesync\config\config.json

{
  "sourceHost": "172.17.0.2",
  "sourcePort": "8091",
  "sourceName": "beer-sample",
  "sourceUsername": "cb-user",
  "sourcePassword": "RandomCBPass2!",
  "sourceEntities": {
    "beer": {}
  },
  "sourceChangeRetention": 5,
  "copySourceEntitiesAtStartup": true,
  "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": "https://172.17.0.2",
      "metadataBucketName": "Metadata"
    }
  }
}

Obter credenciais do GlueSync para baixar a imagem do GlueSync do Docker

Consulte a seção Antes de Começarmos acima para obter informações sobre a licença do GlueSync para o registro Docker e o download do produto. 

Assim que tiver essas informações, siga os passos abaixo para instalar o GlueSync.

Como você já pode ter credenciais armazenadas, talvez queira sair. Se você tiver problemas com credenciais, este pode ser o motivo.

Removendo credenciais de login para registry.gitlab.com

Faça login no registro – este pode ser um registro diferente do que você costuma usar, portanto, verifique esse valor novamente.

 

C:UsersDavid Elliott> docker login registry.gitlab.com
Username: xxxusernamexxx
Password:
Login Succeeded

Baixe a imagem.

C:UsersDavid Elliott> docker pull registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
latest: Pulling from molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql
Digest: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142
Status: Downloaded newer image for registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
C:UsersDavid Elliott>

Você pode querer sair novamente (já tive problemas quando não saí e obtive erros na próxima vez que executei um comando).

 

Removendo credenciais de login para registry.gitlab.com

Iniciar o container/aplicativo GlueSync

Atualize o caminho para o arquivo de configuração no comando do Docker abaixo para corresponder ao caminho no seu computador.

docker run -d --name gluesync-cb-to-mssql -v c:/a/gluesync/config:/opt/app/config registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:1.2.3

Você deve ter três contêineres rodando no Docker.

Se não estiver rodando, verifique os logs do contêiner em busca de mensagens. Sem querer, coloquei o arquivo de configuração na pasta errada e o GlueSync não iniciou; os logs me avisaram o que estava acontecendo.

Veja a Mágica

Vá para o MSSQL e faça uma consulta na tabela; você deverá ver os dados do bucket do Couchbase na tabela que criamos. Uma vez que o GlueSync foi iniciado, ele sincronizou os dados do Couchbase para o MSSQL.

Para testar, você pode modificar os dados e ver as alterações sincronizadas entre os bancos de dados. Vá para os documentos de beer-samples e faça uma alteração. Aqui, atualizei dois documentos. Você pode ver o log de saída do Docker abaixo da interface do Couchbase. O GlueSync detectou as duas alterações.

Mudando para o MSSQL, consigo ver as atualizações no MSSQL também.

 

Conclusão

Frequentemente precisamos trabalhar com vários bancos de dados, particularmente quando estamos fazendo uma modernização. Podemos ter um lançamento em fases ou precisar trazer dados existentes de um banco de dados relacional mais antigo para o Couchbase. Isso pode envolver código personalizado e testes ou considerar um produto como o GlueSync, que torna o processo mais integrado. 

Finalizar compra GlueSync para obter mais informações sobre seus produtos e capacidades.

Introdução

Você está modernizando seu processo de desenvolvimento? Está seguindo uma abordagem de desenvolvimento rápido para entregar capacidades de melhor qualidade e mais frequentes aos seus clientes? Parte desse processo frequentemente exige que trabalhemos com múltiplos 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; quanto mais transparente, melhor. Usando o Couchbase com GlueSync serve a esse propósito. 


O GlueSync permite replicar dados de e para RDBMS (Microsoft SQL Server e Oracle) em tempo real com o Couchbase.


Neste post, usaremos o Docker enquanto percorremos as etapas para configurar 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 Docker e, se você não tiver o Docker, pode encontrar mais informações aqui https://www.docker.com/. Você precisará instalar o Docker para concluir as etapas abaixo.

GlueSync

Em seguida, o GlueSync requer uma licença. Para concluir este tutorial, você precisará de uma licença da equipe do GlueSync. Você pode acessar https://gluesync.com/plans/ e ver mais informações sobre seus planos e https://gluesync.com/contact-sales/ para entrar em contato com a equipe do GlueSync.

Etapas de alto nível

  1. Executar e Configurar o Couchbase e o MSSQL
  2. Criar o arquivo de configuração para o GlueSync
  3. Configurar e executar o GlueSync para Couchbase para MSSQL
  4. Veja a mágica

Execute o Couchbase e o MSSQL

Couchbase

Usaremos o Couchbase 6.6.3 para este tutorial. O seguinte comando Docker colocará o Couchbase em funcionamento, expondo as portas de que precisamos.

docker run -d --name cb-663 -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase:enterprise-6.6.3

MSSQL

Para o comando de execução do Docker do MSSQL, note que estamos incluindo a senha do SA. Atualize-a e anote-a, nós a usaremos mais tarde.

docker run -d --name mssql -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=RandomMSSQLPass2!' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-CU10-ubuntu-20.04

Verificar Contêineres

Agora você deve ter dois containers em execução, Couchbase e MSSQL. Vamos iniciar o container do GlueSync depois de configurá-los.

 

Configure 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 a interface do Couchbase acessando https://localhost:8091/ui/index.html.

Nós escolheremos Configurar Novo Cluster e configure um cluster de um nó (não recomendado para produção, mas funciona ótimo para desenvolvimento e para fazer um tutorial). 

Insira as informações do novo cluster e clique Avançar: Aceitar os Termos. Anote sua senha, vamos precisar dela mais tarde. Estamos usando RandomCBPass2! para esta instância.

Se você aceitar os termos e condições, marque essa opção e clique Concluir com Padrões.

NOTA O GlueSync funciona com o Couchbase usando algumas tecnologias do Couchbase, o Sync Gateway e o serviço Eventing. Estamos usando a opção Eventing neste tutorial. O recurso Eventing será instalado com o Concluir com Padrões seleção abaixo. 


O Couchbase oferece uma única instalação onde você pode habilitar todos os serviços ou selecionar e escolher para 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ê deve ser redirecionado para o Painel. Usaremos dados do bucket de exemplo neste tutorial. Para instalar os dados, clique Buckets de Amostra.

Se, por algum motivo, você não ver o Bucket de Amostras link no painel, acesse Configurações a partir do menu esquerdo, olhe próximo ao canto superior direito da interface do usuário e você verá um item de menu para Buckets de Amostra, conforme mostrado abaixo. 

Verifique beer-sample e clique Carregar Dados de Exemplo.

Espere alguns minutos para carregar, depois clique Baldes na navegação à esquerda.

 Você deve ver o bucket beer-sample que acabamos de carregar.

Vamos ver os documentos. Clique no Documentos link à direita, ao lado de Estatística.

Vamos sincronizar documentos do tipo beer. Você pode colocar um filtro (type=”beer”) na caixa WHERE do N1QL e clicar Recuperar Documentos para conseguir esses documentos; será um pouco mais fácil ver e testar assim.

 

Criar Usuário do Couchbase

Criaremos um usuário para o aplicativo GlueSync utilizar. 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 do GlueSync.

Vá para o Segurança link à esquerda e depois clique 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 usuário-cb e Senha RandomCBPass2!; guarde esta informação para depois. Certifique-se de verificar Administrador Completo em funções. Assim que estiver preenchido, clique no Adicionar Usuário botão.

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

 

Adicionar um bucket de metadados do GlueSync

O GlueSync usa o serviço de Eventing do Couchbase. O Eventing requer um bucket de Metadados, e criaremos um agora. Obter mais informações no GlueSync e no bucket de metadados.

Ir para Baldes no menu à esquerda e clique ADICIONAR BALDE no canto superior direito.

Insira o Nome dos Metadados e clique Adicionar Bucket. 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 você precisar instalar o management studio, você pode encontre aqui. 

Faça o login com as credenciais passadas para o comando Docker na etapa anterior, neste caso, Login: Olá e Senha: RandomMSSQLPass2!.

 

Criar Novo Banco de Dados

Criaremos um novo banco de dados para onde os dados do Couchbase serão carregados.

Nesse caso, como sou muito criativo, vou usar cb, e escolha Ok.

 

Criar Login

Em seguida, crie um Logon do MSSQL. Clique com o botão direito na pasta Logons e escolha Novo login....

O nome de login que estamos usando é usuário-mssql e a senha é RandomMSSQLUserPass2!.

Definir banco de dados padrão como cb, o 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 estou escolhendo são para simplificação.

Ir para Mapeamento de Usuários, à esquerda embaixo Selecione uma página, e selecione cb sob Usuários mapeados para este login e db_owner sob Associação a função de banco de dados.

Agora que temos essa configuração, verifique se você consegue fazer login com o usuário. Saia da conta sa e faça login novamente com o novo usuário.

Criar Tabela

Vamos criar uma tabela para os dados a serem sincronizados para e do Couchbase. Vá para o Bancos de dados, então cb, depois abra um Nova Consulta janela. Os campos desta tabela correspondem aos atributos no documento beer-samples do Couchbase. O SQL para criar a tabela está abaixo.

Execute o comando create table. 

create table beer
(
    name         varchar(200)  not null constraint beer_pk primary key nonclustered,
    abv          numeric(5, 2) not null,
    brewery_id   varchar(max)  not null,
    category     varchar(max),
    description  varchar(max)  not null,
    ibu          int           not null,
    srm          int           not null,
    style        varchar(max),
    upc          int           not null,
    updated      varchar(max)  not null
)
go

Configurar e executar o GlueSync para Couchbase para MSSQL

O GlueSync tem dois componentes, um para Couchbase para MSSQL e outro para MSSQL para Couchbase. Isso configurará a aplicação para sincronizar dados do Couchbase para o MSSQL. A configuração para a outra direção é muito semelhante.   

Criar pasta de configuração

Crie uma pasta para o arquivo de configuração do GlueSync. Vamos compartilhar isso com o contêiner do Docker ao iniciá-lo.

mkdir c:\agluesync\config

 

Obter os endereços IP da rede Docker para o Couchbase e o MSSQL

Precisamos das informações da rede Docker para os containers do Couchbase e do MSSQL para configurar o GlueSync.

Obtenha os IDs dos contêineres.

C:UsersDavid Elliott> docker container ls -a
ID DO CONTÊINER   IMAGEM                                                   COMANDO                  CRIADO          STATUS                   PORTAS                                                                                                                              NOMEES
10b985792024   mcr.microsoft.com/mssql/server:2019-CU10-ubuntu-20.04   "/opt/mssql/bin/perm…"   34 minutos atrás   Ativo há 34 minutos            0.0.0.0:1433->1433/tcp, :::1433->1433/tcp                                                                                                                          mssql
d2df1bad1647   couchbase:enterprise-6.6.3                              "/entrypoint.sh couc…"   40 minutos atrás   Ativo há 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 para os contêineres usando esses IDs através do comando Docker Inspect no Couchbase.

C:UsersDavid Elliott> docker inspect d2df1bad1647 | Select-String IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                   "IPAddress": "172.17.0.2",

Execute o comando Docker Inspect no MSSQL.

C:\UsersDavid Elliott> docker inspect 10b985792024 | Select-String IPAddress
           "SecondaryIPAddresses": null,
           "IPAddress": "172.17.0.3",
                   "IPAddress": "172.17.0.3",

Os endereços IP são:

  • Couchbase – 172.17.0.2
  • MSSQL – 172.17.0.3

NOTA: Se você parar e reiniciar os contêineres, o endereço IP poderá mudar e você precisará verificar se a configuração ainda está correta.

Criar o arquivo de configuração do 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:\agluesync\config\config.json

{
  "sourceHost": "172.17.0.2",
  "sourcePort": "8091",
  "sourceName": "beer-sample",
  "sourceUsername": "cb-user",
  "sourcePassword": "RandomCBPass2!",
  "sourceEntities": {
    "beer": {}
  },
  "sourceChangeRetention": 5,
  "copySourceEntitiesAtStartup": true,
  "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": "https://172.17.0.2",
      "metadataBucketName": "Metadata"
    }
  }
}

Obter credenciais do GlueSync para baixar a imagem do GlueSync do Docker

Consulte a seção Antes de Começarmos acima para obter informações sobre a licença do GlueSync para o registro Docker e o download do produto. 

Assim que tiver essas informações, siga os passos abaixo para instalar o GlueSync.

Como você já pode ter credenciais armazenadas, talvez queira sair. Se você tiver problemas com credenciais, este pode ser o motivo.

Removendo credenciais de login para registry.gitlab.com

Faça login no registro – este pode ser um registro diferente do que você costuma usar, portanto, verifique esse valor novamente.

 

C:UsersDavid Elliott> docker login registry.gitlab.com
Username: xxxusernamexxx
Password:
Login Succeeded

Baixe a imagem.

C:UsersDavid Elliott> docker pull registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
latest: Pulling from molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql
Digest: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142
Status: Downloaded newer image for registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:latest
C:UsersDavid Elliott>

Você pode querer sair novamente (já tive problemas quando não saí e obtive erros na próxima vez que executei um comando).

 

Removendo credenciais de login para registry.gitlab.com

Iniciar o container/aplicativo GlueSync

Atualize o caminho para o arquivo de configuração no comando do Docker abaixo para corresponder ao caminho no seu computador.

docker run -d --name gluesync-cb-to-mssql -v c:/a/gluesync/config:/opt/app/config registry.gitlab.com/molo17srl/products/gluesync/nosql-to-sql-kotlin/couchbase-to-mssql:1.2.3

Você deve ter três contêineres rodando no Docker.

Se não estiver rodando, verifique os logs do contêiner em busca de mensagens. Sem querer, coloquei o arquivo de configuração na pasta errada e o GlueSync não iniciou; os logs me avisaram o que estava acontecendo.

Veja a Mágica

Vá para o MSSQL e faça uma consulta na tabela; você deverá ver os dados do bucket do Couchbase na tabela que criamos. Uma vez que o GlueSync foi iniciado, ele sincronizou os dados do Couchbase para o MSSQL.

Para testar, você pode modificar os dados e ver as alterações sincronizadas entre os bancos de dados. Vá para os documentos de beer-samples e faça uma alteração. Aqui, atualizei dois documentos. Você pode ver o log de saída do Docker abaixo da interface do Couchbase. O GlueSync detectou as duas alterações.

Mudando para o MSSQL, consigo ver as atualizações no MSSQL também.

 

Conclusão

Frequentemente precisamos trabalhar com vários bancos de dados, particularmente quando estamos fazendo uma modernização. Podemos ter um lançamento em fases ou precisar trazer dados existentes de um banco de dados relacional mais antigo para o Couchbase. Isso pode envolver código personalizado e testes ou considerar um produto como o GlueSync, que torna o processo mais integrado. 

Finalizar compra GlueSync para obter mais informações sobre seus produtos e capacidades.

Compartilhe este artigo

Autor

Solutions Engineer na Couchbase, pau pra toda obra, mestre em algumas.

Deixe um comentário

Pronto para começar com o Couchbase Capella?

Começar a construir

Confira nosso portal para desenvolvedores para explorar o NoSQL, navegar por recursos e começar com tutoriais.

Use o Capella free

Coloque a mão na massa com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Quer saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.