Database
 sql >> Base de Dados >  >> RDS >> Database

Replicação de dados incremental no IRI Workbench


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].