Série Ferramentas Gráficas – OGG Veridata

Nesta série de posts, irei abordar um assunto que as vezes ainda é polêmico para muitos profissionais que trabalham com o Oracle GoldenGate, as ferramentas gráficas.

Será que vale a pena investir tempo e dinheiro para adquirir esses conhecimentos? Quais são os prós e contras destas ferramentas, quais as principais vantagens e desvantagens? E qual a tendência para os próximos anos?

E no último capítulo irei falar sobre o tão “misterioso” mundo dos microserviços, isso mesmo, o GoldenGate agora tem uma nova arquitetura chamada de OGG MA (Oracle GoldenGate MicrosServices Architecture), aliás, já faz um tempo que existe, entretanto, por experiência (única e exclusivamente minha..rs), tenho notado que o assunto começou a chegar no Brasil na metade do ano passado, mas muitos profissionais ainda tem dúvidas ou não entendem muito bem os detalhes, como ela funciona e porque ela foi criada.

A seguir está a lista das ferramentas e a ordem dos próximos posts:

Capítulo 1 – OGG Studio

Capítulo 2 – OGG Monitor

Capítulo 3 – OGG Plug-in for Oracle Enterprise Manager

Capítulo 4 – OGG Veridata

Capítulo 5 – OGG MA (Oracle GoldenGate Microservices Architecture) – PARTE I

                     OGG MA (Oracle GoldenGate Microservices Architecture) – PARTE II

Capítulo 4 – OGG Veridata

Neste capítulo, iremos falar sobre a ferramenta utilizada para garantir a consistência e integridade dos dados replicados pelo GoldenGate. O Oracle GoldenGate Veridata é uma solução de comparação e reparo de dados de alta performance que identifica, reporta e corrige discrepâncias de dados entre bancos de dados heterogêneos, ou seja, quando existem dados sem sincronismo (out-of-sync),  sem interromper os processos de negócios em andamento.

O OGG Veridata consiste dos seguintes componentes:

OGG Veridata Server: É o principal componente do Veridata sendo responsável por atividades como: coordenação das atividades do Veridata Server com os agentes, comparação dos dados, confirmar que os dados não estão sincronizados, ordenação das linhas (o padrão é a ordenação no banco de dados onde está o agente), gerar um report para revisão dos dados.

OGG Veridata Web User Interface: É a interface de interação baseada na Web, utilizada para a configuração da maioria das funcionalidades do Veridata, como: configurar os objetos e regras de comparação, iniciar as comparações, revisar os status e resultados das comparações, reparar e revisar os dados fora de sincronismo (out-of-sync data).

OGG Veridata Repository: É o banco de dados utilizado como repositório do OGG Veridata Server para armazenar seus objetos, informações e preferências dos ambientes que os usuários criam ao usar a interface da Web do OGG Veridata. Mas, um detalhe importante, é que os dados fora de sincronismo não são armazenados neste repositório, e sim em arquivos no file system do OGG Veridata Server.  Os seguintes bancos de dados são suportados como repositório:

  • Oracle
  • MySQL
  • Microsoft SQL Server

OGG Veridata Command Line Utilities: São os utilitários que podem ser utilizados para executar tarefas, sendo eles:

  •  vericom: Permite que você execute comparações usando programas automatizados.
  • veridata_scripting: Mapeia objetos de comparação e regras em um arquivo XML e carrega no repositório.
  • reportutil: Oferece suporte à exibição de arquivos de relatórios criptografados e dados fora de sincronia.

OGG Veridata Agent: É o processo que fica no lado dos ambientes onde o OGG Veridata irá monitorar os dados, sendo responsável por executar as seguintes funções de coleta no banco de dados onde está configurado: comparação de registros utilizando hash (initial comparison), buscar e atualizar registros para reparar dados fora de sincronia (out-of-sync), retorna detalhes em nível de coluna para linhas fora de sincronia (out-of-sync).

Como o OGG Veridata realiza a comparação dos dados?

As comparações são dividas nas seguintes etapas:

  • Comparação inicial (initial comparison/row hash): as linhas são retornadas das tabelas de origem e destino com uma query, caso os bancos tiverem tipos de dados diferentes, as colunas serão convertidas em um formato padronizado para comparação. O OGG Veridata compara os registros através da comparação de todas as colunas de uma chave primária (PK), literalmente, valor por valor, e usando um valor hash para todas as colunas que não tem uma chave. Com esse mecanismo de hash, o dado fica mais robusto e menor para ser transferido pela rede e posteriormente utilizado para determinar se as linhas da origem e destino são iguais ou não.
  • Linhas talvez fora de sincronismo (Maybe out-of-sync – MOOS): nesta etapa é realizado uma avaliação para verificar se existe alguma divergência, as linhas que não correspondem são colocadas na fila do MOOS. Há chances de que essas linhas não correspondam na origem e no destino devido a transações em trail que ainda não foram aplicadas no destino.
  • Confirmar linhas fora de sicronismo (Confirm out-of-sync COOS): é verificado de forma mais precisa e confirmado os casos onde existem divergência de dados entre os ambientes. Esta etapa envolve consultas predicadas na origem ou no destino usando as linhas extraídas da fila MOOS, e o status é avaliado como um dos seguintes:

    – Em andamento: (
    In-flight): o Veridata não pôde confirmar se as linhas não estão sincronizadas devido a uma atualização na mesma linha após a etapa de comparação inicial.
    – Sincronizado (In-sync): as duas linhas estão sincronizadas.
    – fora de sincronia: (out-ofsync): as duas linhas estão fora de sincronia

Além de tudo isso, ainda existe uma feature bem interessante chamada de “Delta processing“, onde o OGG Veridata detecta quais blocos de dados no banco de dados foram alteradas desde a última comparação, e só compara as linhas desses blocos. As linhas que estão em blocos onde não houve alteração, ignoradas. O default é comparar todas as linhas, independentemente de terem sido alteradas ou não.

O OGG Veridata também possui os mesmos pré-requisitos do GoldenGate com relação a unicidade dos dados, ou seja, depende de um identificador único do registro para comparação. Desta forma as tabelas precisam ter pelo menos uma das opções abaixo:

  • Primary key (PK)
  • Unique key (UK)
  • User-defined key (Pseudo key)

Quais bancos de dados são suportados?

O Oracle GoldenGate Veridata oferece suporte aos seguintes bancos de dados para comparações:

  • DB2 for i, DB2 LUW, and DB2 z/OS
  • Enscribe
  • Informix
  • NonStop SQL/MP
  • Oracle
  • SQL Server
  • Sybase Adaptive Server Enterprise (ASE)
  • Teradata
  • Big Data Hive

Oracle Fusion Middleware Infrastructure

Para realizar a instalação/deploy do OGG Veridata é necessário ter um ambiente com o “Oracle Fusion Middleware Infrastructure“, porque ele precisa do Oracle WebLogic Server para funcionar. Abaixo podemos verificar um exemplo de uma configuração para esta finalidade:

Na próxima, imagem temos a tela inicial para login do OGG Veridata, note que além do IP existe a porta default que é a 8830:

Ao se logar no OGG Veridata, podemos verificar a tela apresentada abaixo, onde no centro encontramos um gráfico informando o status da monitoração e validação dos ambientes, caso exista algum problema, já é possível identificar nesta tela. No canto esquerdo, é onde encontramos as opções para gerenciamento dos recursos e criação das comparação que serão monitoradas pela ferramenta.

  • Running Jobs
  • Finished Jobs
  • Repair Jobs
  • Configuration
  • Run Execute Job
  • Reports

Quando uma divergência é identificada, o gráfico na tela principal é atualizado e assim podemos verificar facilmente que existe algum problema no ambiente ou se existe algum job de comparação sendo executado naquele momento:

Etapas de Configuração

Basicamente as principais etapas para configuração/criação de comparações que serão utilizados no OGG Veridata, são:

  • Criar as conexões dos ambientes que serão verificados (origem e destino)
  • Criar grupos de comparação com mapeamento de schemas e tabelas
  • Criar perfis mais específicos de configurações (se necessário)
  • Criar um job para executar a comparação
  • Executar o job de comparação
  • Revisar os resultados gerados pelo job (logs e reports)
  • Executar a reparação dos dados

A seguir, vou mostrar alguns detalhes dessas etapas de configurações.

Antes de qualquer coisa é necessário configurar o OGG Veridata Server para se comunicar com o OGG Veridata Agent, onde informamos os dados do servidor e qual o banco em que queremos fazer a configuração, e note que é neste momento que podemos confirmar que é possível configurar para ambiente heterogêneos.

Após a configuração da conexão, podemos verificá-las utilizando a opção no canto esquerdo, “Configuration –> Connection Configuration”, onde visualizamos todos os ambientes que temos configurado:

A próxima etapa é criar os grupos de comparação, informar o schema e as tabelas que serão monitoradas, criar um mapeamento entre tabela de origem e destino, para que esse fluxo seja monitorado e analisado se existem problemas de divergência de dados. Isso é chamado de configuração de pares de comparação (Compare Pair Configuration). Abaixo podemos ver um exemplo de um par de comparação (tabelas de origem x tabelas de destino).

 


Podem ser configurados vários “Compare Pair” na mesma solução:

Caso qualquer problema nos dados sejam identificados, além de ser enviado uma notificação pela ferramenta, também podemos verificar no painel os detalhes do que está divergente, tabelas, registros. E podemos escolher a opção de gerar o SQL para correção e executarmos manualmente (clicando na opção “Generate SQL”), ou deixar que a própria ferramenta faça a correção automaticamente (clicando na opção “Run Repair”)

Performance e Histórico

Outra opção bem legal dessa ferramenta é que podemos verificar o histórico das execuções dos jobs de comparação e analisar as métricas de performance, como está na figura abaixo, além dos números podemos ter a informação graficamente:

Então é isso, chegamos no fim deste artigo, mas isso não é o fim dos recursos que essa ferramenta possuí, na verdade é só o começo e uma pequena introdução.

Viu como não é tão complicado assim essa ferramenta? E isso foi só o começo, uma pequena introdução e podemos ver que O OGG Veridata possui recursos e um mecanismo de validação muito interessantes e eficiente, mas ainda é pouco utilizado no mercado, talvez por conta dos custos de licenciamento (que não é barato, diga-se de passagem), além disso, algumas empresas se arriscam em criar soluções caseiras, mesmo não sendo tão performático na maioria dos casos.

Para saber mais sobre o licenciamento destas ferramentas gráficas, verifique no Oracle Technology Global Price List (Setembro/2020):

https://www.oracle.com/assets/technology-price-list-070617.pdf

Documentação:

https://docs.oracle.com/goldengate/1213/gg-veridata/GVDAD/about_ogg_veridata.htm#GVDAD129
https://docs.oracle.com/goldengate/1213/gg-veridata/index.html
https://www.oracle.com/a/ocom/docs/middleware/veridata-datasheet.pdf

Gostou do Post?

Quer saber mais?  Acesse nossos outros posts clicando aqui ou acesse e se inscreva em nosso canal!

Obrigado Pessoal e até a próxima!

Abs,

Gilson Martins.

Replique conhecimento com o mundo!

Facebook
LinkedIn
WhatsApp
Twitter

Replique conhecimento com o mundo!

Facebook
LinkedIn
WhatsApp
Twitter
plugins premium WordPress