Adicionar a origem CDC do Oracle Database a um fluxo de eventos (versão prévia)

Este artigo mostra como adicionar uma fonte CDC (Oracle Database Change Data Capture) a um fluxo de eventos.

O conector de origem do CDC do Oracle Database para o fluxo de eventos do Microsoft Fabric permite capturar um instantâneo dos dados atuais em um banco de dados Oracle. Em seguida, o conector monitora e registra quaisquer alterações futuras a nível de linha nesses dados. Depois que as alterações forem capturadas no fluxo de eventos, você poderá processar esses dados CDC em tempo real e enviá-los para destinos diferentes dentro de Fabric para processamento ou análise adicionais. O conector dá suporte a bancos de dados Oracle, sejam eles locais ou na nuvem.

Pré-requisitos

  • Acesso a um workspace no modo de licença de capacidade do Fabric ou no modo de licença de avaliação com permissões de colaborador ou superiores.
  • Um servidor de banco de dados Oracle em execução (local ou hospedado na nuvem).
  • Seu banco de dados Oracle deve ser acessível publicamente e não por trás de um firewall ou protegido em uma rede virtual. Se ele residir em uma rede protegida, conecte-se a ela usando a injeção de rede virtual do conector Eventstream.
  • Oracle LogMiner habilitado no seu banco de dados para captura de CDC.
  • Um usuário de banco de dados com as permissões necessárias para operações CDC.

Versões do Oracle com suporte

O conector CDC do Banco de Dados Oracle dá suporte às seguintes versões do banco de dados Oracle:

  • Oracle Database 12c (12.1) e posterior
  • Oracle Database 19c
  • Oracle Database 21c
  • Banco de Dados Autônomo Oracle

Habilitar o CDC em seu Banco de Dados Oracle

Para capturar dados de alteração do Oracle, você precisa habilitar o registro em log suplementar e configurar o LogMiner.

Habilitar registro suplementar

  1. Conecte-se ao banco de dados Oracle como um usuário com privilégios DBA.

  2. Habilite o registro em log suplementar no nível do banco de dados executando os seguintes comandos SQL:

    -- Enable minimal supplemental logging at the database level
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    
    -- Enable supplemental logging for all columns (recommended for CDC)
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    
  3. Verifique se o log suplementar está habilitado:

    SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_ALL FROM V$DATABASE;
    

    A consulta deve retornar YES para ambas as colunas.

Habilitar o modo ARCHIVELOG

Para que o CDC funcione corretamente, o banco de dados deve estar no modo ARCHIVELOG.

  1. Verifique o modo de log de arquivo morto atual:

    SELECT LOG_MODE FROM V$DATABASE;
    
  2. Se ainda não estiver no modo ARCHIVELOG, habilite-o:

    -- Shut down the database
    SHUTDOWN IMMEDIATE;
    
    -- Start in mount mode
    STARTUP MOUNT;
    
    -- Enable archivelog mode
    ALTER DATABASE ARCHIVELOG;
    
    -- Open the database
    ALTER DATABASE OPEN;
    

Criar um usuário CDC com privilégios necessários

Crie um usuário dedicado para o conector CDC com as permissões necessárias:

-- Create a user for CDC
CREATE USER fabric_cdc IDENTIFIED BY <your_password>;

-- Grant basic privileges
GRANT CREATE SESSION TO fabric_cdc;
GRANT SELECT ON V_$DATABASE TO fabric_cdc;
GRANT SELECT ON V_$LOG TO fabric_cdc;
GRANT SELECT ON V_$LOGFILE TO fabric_cdc;
GRANT SELECT ON V_$ARCHIVED_LOG TO fabric_cdc;
GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO fabric_cdc;

-- Grant LogMiner privileges
GRANT EXECUTE ON DBMS_LOGMNR TO fabric_cdc;
GRANT EXECUTE ON DBMS_LOGMNR_D TO fabric_cdc;
GRANT SELECT ANY TRANSACTION TO fabric_cdc;
GRANT LOGMINING TO fabric_cdc;

-- Grant SELECT on tables you want to capture
GRANT SELECT ON <schema>.<table_name> TO fabric_cdc;

Substitua <your_password>, <schema>, e <table_name> pelos seus valores reais.

Iniciar o assistente Selecionar uma fonte de dados

Se você ainda não adicionou nenhuma fonte ao fluxo de eventos, selecione o bloco Conectar fontes de dados . Você também pode selecionar Adicionar fonte>Conectar fontes de dados na faixa de opções.

Captura de tela que mostra a seleção do azulejo para usar uma fonte externa.

Se você estiver adicionando a origem a um fluxo de eventos já publicado, alterne para o modo Editar. Na faixa de opções, selecione Adicionar fonte>Conectar fontes de dados.

Captura de tela que mostra seleções para adicionar fontes externas.

Na página Selecionar uma fonte de dados , pesquise e selecione Conectar no bloco do Oracle DB (CDC ).

Captura de tela que mostra a seleção do Oracle Database (CDC) como tipo de origem no assistente Obter eventos.

Configurar e conectar-se ao Oracle Database CDC

  1. Na página Conectar, em Servidor, insira o endpoint da Oracle.

    Você pode fornecer apenas o nome do host ou incluir host, porta e serviço/SID em um único valor. Por exemplo: your-oracle-host.example.com:1521/ORCL.

  2. Em credenciais de conexão, selecione uma conexão existente ou crie uma nova:

    • Para criar uma nova conexão, selecione Nova conexão e insira:
      • Nome da conexão: um nome para essa conexão.
      • Nome de usuário: o usuário do banco de dados Oracle com permissões CDC.
      • Senha: a senha do usuário do banco de dados.
  3. Selecione Conectar.

    Captura de tela da nova página de conexão.

  4. Depois que a conexão for estabelecida, escolha as tabelas a serem capturadas selecionando Todas as tabelas ou Insira os nomes da tabela. Se você escolher Enter table name(s), insira uma lista opcional separada por vírgulas de identificadores de tabela completos (schemaName.tableName) para as tabelas de banco de dados Oracle a serem monitoradas.

  5. Você pode expandir as configurações avançadas para acessar mais opções de configuração para a fonte CDC do Banco de Dados Oracle:

    • Modo de bloqueio de snapshot: controla se e por quanto tempo o conector mantém a tabela bloqueada. Os bloqueios de tabela impedem que determinados tipos de operações na tabela ocorram enquanto o conector executa um snapshot.
      • Shared (padrão): permite o acesso simultâneo à tabela, mas impede que qualquer sessão adquira um bloqueio exclusivo da tabela. O conector adquire um bloqueio de nível ROW SHARE enquanto captura o esquema de tabela.
      • None: Impede que o conector adquira bloqueios nas tabelas durante o snapshot. Use essa configuração somente se nenhuma alteração de esquema puder ocorrer durante a criação do instantâneo.
    • Modo de tratamento decimal: especifica como o conector deve lidar com valores de ponto flutuante para NUMBER, DECIMALe NUMERIC colunas. Você pode definir uma das seguintes opções:
      • Precise (padrão): representa valores precisamente usando java.math.BigDecimal valores representados em eventos de alteração no formato binário.
      • Double: representa valores usando valores duplos. O uso de valores duplos é mais fácil, mas pode resultar em uma perda de precisão.
      • String: codifica valores como cadeias de caracteres formatadas. Usar a opção String é mais fácil de usar, mas resulta na perda de informações semânticas sobre o tipo real.
    • Modo de instantâneo: especifica o modo que o conector usa para tirar instantâneos de uma tabela capturada.
      • Initial (padrão): o instantâneo inclui a estrutura e os dados das tabelas capturadas. Especifique esse valor para preencher tópicos com uma representação completa dos dados das tabelas capturadas. Se o snapshot for concluído com sucesso, o conector não executará o snapshot novamente na próxima vez que for iniciado.
      • InitialOnly: O instantâneo inclui a estrutura e os dados das tabelas capturadas. O conector executa um snapshot inicial e, em seguida, para, sem processar nenhuma alteração subsequente.
      • NoData: o instantâneo inclui apenas a estrutura de tabelas capturadas. Especifique esse valor se você quiser que o conector capture dados somente de alterações que ocorrerem após o snapshot.
  6. Selecione Avançar para continuar.

    Captura de tela da página de configurações avançadas de origem do Oracle CDC.

  7. Em Revisão + conexão, examine suas configurações.

  8. Selecione Adicionar (Fluxo de Eventos) ou Conectar (Hub em Tempo Real).

    Captura de tela da página Revisão de origem + conexão do Oracle CDC.

Exibir fluxo de eventos atualizado

  1. Você pode ver a fonte CDC do Banco de Dados Oracle adicionada ao fluxo de eventos no modo Editar.

    Captura de tela do streaming da fonte CDC do Oracle Database no modo de exibição Editar.

  2. Para implementar essa fonte CDC do Oracle Database recém-adicionada, selecione Publicar. Depois de concluir essas etapas, a fonte Oracle Database CDC estará disponível para ser visualizada na exibição ao vivo.

    Captura de tela da origem de streaming do Oracle Database CDC na visualização Live.

Outros conectores: