Nosso primeiro artigo sobre replicação de dados na GUI do IRI Workbench para NextForm (edição DB) ou Voracity demonstrou como copiar e transformar dados conforme são movidos do Oracle para dois destinos. Este artigo mostra como sincronizar incrementalmente uma tabela de produção e backup em bancos de dados separados.
Nesse caso, o banco de dados de produção é Oracle, o banco de dados de backup é MySQL e a tabela é denominada SG_TRANSACTIONS em ambos. Existem linhas de transação que contêm o número da conta, o tipo de transação, a data da transação e o valor da transação com os nomes das colunas ACCT_NUM, TRANSTYPE, TRANS_DATE e TRANS_AMOUNT.
Observe que você também pode criar tabelas definindo e executando instruções em arquivos SQL no IRI Workbench.
Execute o assistente
Existem assistentes no IRI Workbench que podem ser usados para criar um script de trabalho de migração que copiará as linhas de uma tabela para outra. Neste caso, replicaremos os dados da tabela ORACLE SG_TRANSACTIONS na tabela MySQL SG_TRANSACTIONS.
Eu criei anteriormente o projeto Replication. Devemos clicar nessa pasta no Project Explorer para destacar o projeto antes de executar o assistente. Isso garante que o assistente salve meu script de trabalho nessa pasta. Nosso trabalho de replicação será criado por meio de um assistente disponível no Menu NextForm na barra de ferramentas.
Para executar o assistente, clique na seta ao lado do ícone NextForm. Observe que no artigo anterior usamos a Nova tarefa de reformatação assistente porque um dos destinos foi filtrado, mascarado e reformatado. Como este caso é uma replicação direta, usaremos o Novo trabalho de migração de fonte única assistente.
Na primeira tela do assistente chamada Job Specification File , verifique se a Pasta campo tem Replicação como o valor (nome do projeto). No Nome do arquivo campo, digite o nome do script de trabalho que estamos criando; Eu chamei de SG_Transaction_Transfer. Selecione o Criar script botão de opção e selecione Avançar para ir para a Migração de fonte única janela.
Em Informações de origem , selecione Procurar botão ao lado da Fonte campo. Agora selecione o ODBC botão de opção na Fonte de dados janela e clique no botão Procurar botão.
Na Seleção de Tabela ODBC janela, selecione o DSN da lista suspensa; em seguida, selecione o Nome da tabela, e clique em OK . O ODBC é usado para se conectar às nossas tabelas de banco de dados de origem e destino ao mover dados usando nossos scripts de trabalho. Clique em OK novamente para retornar à Migração de fonte única janela.
Navegue ou descubra seus metadados de origem
Todos os programas IRI exigem layouts de metadados para suas fontes de dados e destinos em um formato de arquivo de definição de dados padrão (DDF). Esses layouts normalmente são criados uma vez, armazenados centralmente e usados como referências para seus mapeamentos e modelos.
Se um arquivo de metadados já foi criado, em Informações de origem , clique no botão Procurar botão ao lado de Metadados campo. Em Abrir Metadados janela, selecione o arquivo de metadados em Itens correspondentes caixa que define as colunas no SG_TRANSACTIONS tabela. Em seguida, clique em OK para retornar à Migração de fonte única janela.
Se você precisar criar o arquivo de metadados agora, selecione a opção Descobrir botão. Isso leva você à Configuração Opções janela. Verifique se a pasta é /nome do seu projeto /metadados. No Nome do arquivo campo, digite o nome do arquivo de metadados e clique em Avançar . Na Identificação da fonte de dados janela, verifique se os campos estão preenchidos corretamente e clique em Avançar para ir para o Visualizador e Editor de Dados de Campo janela.
A metade superior da janela contém os nomes das colunas e uma amostra dos registros da tabela, se houver. A metade inferior tem o campo Nome para ser usado no script de trabalho, os dados equivalentes do IRI Tipo para o banco de dados original Tipo de origem , e o ordinal Posição do campo (coluna). Clique em Concluir .
Agora você está de volta à Migração de fonte única janela.
Definir o alvo
Em Informações de destino , selecione Procurar botão ao lado do campo para Destino . Agora, no Destino de dados janela, selecione o ODBC botão de opção e clique no botão Procurar botão ao lado do ODBC campo. Em seguida, selecione a saída DSN e Nome da tabela (Twister MYSQL e SG_Transactions) na Seleção de Tabela ODBC janela. Certifique-se de selecionar a caixa para Copiar metadados da origem . Clique em OK, e clique em OK novamente.
Todas as informações necessárias estão agora na Migração de fonte única janela. Clique em Concluir .
O script de linguagem de controle NextForm SG_Transaction_Transfer.ncl é criado e pode ser visualizado no editor de texto com reconhecimento de sintaxe e codificado por cores do IRI Workbench.
Replicar os novos registros
Este script copiará todas as linhas que existem no SG_TRANSACTIONS table no Oracle para a mesma tabela nomeada no MySQL. Mas, após a primeira execução, queremos apenas copiar novas linhas para a tabela de backup. Para fazer isso, precisamos adicionar uma instrução /QUERY à seção de entrada do script de trabalho para que apenas as linhas mais recentes sejam processadas sempre que você executar o trabalho (ad hoc ou agendado).
Para modificar o script do editor IRI Workbench, clique com o botão direito do mouse no corpo do script. Selecione IRI , em seguida, Editar fontes . Nas Fontes de dados janela de diálogo, selecione Editar opções de origem .
Na parte inferior das Opções de origem janela é uma consulta campo. É aqui que adicionamos a instrução de consulta SQL que selecionará apenas as linhas mais recentes da tabela Oracle. Vamos supor que este é um processo de final de mês. A instrução QUERY abaixo filtra linhas por um intervalo de um mês, mas podemos escolher qualquer intervalo. Em vez de usar datas específicas no script, também podemos usar variáveis de ambiente para especificar o intervalo.
select * from NIGHTLY.SG_TRANSACTIONS where to_char(TRANS_DATE, 'YYYY-MM-DD') > '2016-11-30' AND (to_char(TRANS_DATE, 'YYYY-MM-DD') < '2017-01-01')"
Agora clique em OK , em seguida, Concluir para atualizar e salvar nosso script de trabalho original criado pelo assistente com a nova instrução /QUERY dentro:
Na primeira vez que o script for executado, a instrução /QUERY deve ser comentada porque queremos que todos os registros sejam copiados. Depois disso, queremos executar com a instrução /QUERY para replicar linhas de um intervalo de datas que ainda não foi copiado para a tabela de backup.
Esse trabalho pode ser executado a partir da GUI ou da linha de comando onde um executável NextForm DB Edition, Voracity ou CoSort (sortcl) está licenciado.
Aqui está uma amostra de linhas na tabela de produção:
E aqui está uma amostra de linhas na tabela de backup antes de executar o backup de final de mês de dezembro. Portanto, as linhas nesta tabela atualmente só vão até o final de novembro.
Depois de executar nosso trabalho de replicação com a instrução /QUERY, apenas os registros de dezembro são adicionados à tabela de backup. Observe que há um registro de janeiro na tabela de produção, mas esse registro não foi copiado para a tabela de backup porque o valor de data dessa linha está fora do intervalo especificado.
Também é possível adicionar funções de mascaramento em nível de coluna para cada destino, como mostra o trabalho abaixo:
Veja este exemplo de replicação entre Oracle e MongoDB. Para obter ajuda na replicação de dados de forma pontual ou recorrente, envie um e-mail para [email protected].