Adicionar o código-fonte Oracle Database CDC a um fluxo de eventos (pré-visualização)

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

O conector de origem Oracle Database CDC para o eventstream do Microsoft Fabric permite-lhe capturar um instantâneo do estado atual dos dados numa base de dados Oracle. Em seguida, o conector observa e regista quaisquer alterações futuras ao nível de linha nesses dados. Depois de as alterações serem capturadas no fluxo de eventos, pode processar estes dados CDC em tempo real e enviá-los para diferentes destinos dentro do Fabric para processamento ou análise posterior. O conector suporta bases de dados Oracle, quer sejam on-premises como na cloud.

Pré-requisitos

  • Acesso a um espaço de trabalho no modo de licença de capacidade do Fabric ou no modo de licença experimental, com permissões de Contribuidor ou superiores.
  • Um servidor de base de dados Oracle a correr (local ou alojado na cloud).
  • A tua base de dados Oracle deve ser acessível publicamente e não estar atrás de um firewall ou protegida numa rede virtual. Se residir numa rede protegida, conecte-se a ela usando a injeção virtual de rede do conector Eventstream.
  • Oracle LogMiner ativado na sua base de dados para captura de dados CDC.
  • Um utilizador de base de dados com as permissões necessárias para operações CDC.

Versões Oracle suportadas

O conector Oracle Database CDC suporta as seguintes versões da base de dados Oracle:

  • Oracle Database 12c (12.1) e posteriores
  • Oracle Database 19c
  • Oracle Database 21c
  • Banco de dados autônomo Oracle

Ative o CDC na sua base de dados Oracle

Para capturar dados de alterações do Oracle, é necessário ativar o registo suplementar e configurar o LogMiner.

Permitir registo suplementar

  1. Liga-te à tua base de dados Oracle como utilizador com privilégios de DBA.

  2. Ative o registo suplementar ao nível da base 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 registo suplementar está ativado:

    SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_ALL FROM V$DATABASE;
    

    A consulta deve ser retornada YES para ambas as colunas.

Ativar o modo archivelog

Para que o CDC funcione corretamente, a base de dados deve estar em modo ARCHIVELOG.

  1. Verifique o modo atual de registo de arquivo:

    SELECT LOG_MODE FROM V$DATABASE;
    
  2. Se ainda não estiver em modo ARCHIVELOG, ative-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;
    

Crie um utilizador CDC com os privilégios necessários

Crie um utilizador 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.

Inicie o assistente Selecionar uma fonte de dados

Se ainda não adicionaste nenhuma fonte ao teu event stream, seleciona o mosaico Connect data sources . Também pode selecionar Adicionar fonte>Conectar fontes de dados na fita.

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

Se estiveres a adicionar a fonte a um fluxo de eventos já publicado, muda para o modo Editar. Na fita, selecione Adicionar fonte>Ligar fontes de dados.

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

Na página Selecionar uma fonte de dados, procure e selecione Ligar no mosaico Oracle DB (CDC).

Captura de ecrã que mostra a seleção de Oracle Database (CDC) como tipo de origem no assistente Get events.

Configurar e ligar-se à Oracle Database CDC

  1. Na página Ligação, em Servidor, introduza o seu endpoint Oracle.

    Pode fornecer apenas o nome do anfitrião, ou incluir host, porta e serviço/SID num único valor. Por exemplo: your-oracle-host.example.com:1521/ORCL.

  2. Em Credenciais de Ligação, selecione uma ligação existente ou crie uma nova:

    • Para criar uma nova ligação, selecione Nova ligação e introduza:
      • Nome da ligação: Um nome para esta ligação.
      • Nome de utilizador: O utilizador da base de dados Oracle com permissões CDC.
      • Palavra-passe: A palavra-passe do utilizador da base de dados.
  3. Selecione Conectar.

    Captura de ecrã da nova página de ligação.

  4. Depois de estabelecida a ligação, escolha as tabelas a capturar selecionando Todas as tabelas ou Introduzir nome(s) das tabelas. Se escolher Introduzir nome(s) de tabela(s), introduza uma lista opcional separada por vírgulas de identificadores completos de tabela (schemaName.tableName) para que as tabelas da base de dados Oracle monitorizem.

  5. Pode expandir as definições avançadas para aceder a mais opções de configuração para a fonte do Oracle Database CDC:

    • Modo de bloqueio instantâneo: Controla se e durante quanto tempo o conector mantém um bloqueio de mesa. Os bloqueios de tabela impedem que certos tipos de operações de tabela ocorram enquanto o conector realiza um snapshot.
      • Shared (predefinição): Permite o acesso concorrente à tabela, mas impede que qualquer sessão adquira um bloqueio exclusivo sobre a tabela. O conector adquire um bloqueio de nível ROW SHARE enquanto captura o esquema da tabela.
      • None: Impede que o conector adquira quaisquer bloqueios nas tabelas durante o instantâneo. Use esta definição apenas se não ocorrerem alterações no esquema durante a criação do snapshot.
    • Modo de tratamento decimal: Especifica como o conector deve tratar valores de ponto flutuante para NUMBER, DECIMAL, e NUMERIC colunas. Você pode definir uma das seguintes opções:
      • Precise (por defeito): Representa valores com precisão, utilizando valores java.math.BigDecimal representados em eventos de alteração em formato binário.
      • Double: Representa valores usando valores duplos. Usar valores duplos é mais fácil, mas pode resultar numa perda de precisão.
      • String: Codifica valores como cadeias de caracteres formatadas. Usar esta String opção é mais fácil de consumir, mas resulta numa perda de informação semântica sobre o tipo real.
    • Modo snapshot: Especifica o modo que o conector utiliza para tirar snapshots de uma tabela capturada.
      • Initial (predefinido): O instantâneo inclui a estrutura e os dados das tabelas capturadas. Especifique este valor para preencher os tópicos com uma representação completa dos dados das tabelas capturadas. Se o snapshot for concluído com sucesso, o conector não volta a executar o snapshot no início seguinte.
      • InitialOnly: O instantâneo inclui a estrutura e os dados das tabelas capturadas. O conector realiza um snapshot inicial e depois para, sem processar quaisquer alterações subsequentes.
      • NoData: O instantâneo inclui apenas a estrutura das tabelas capturadas. Especifique este valor se quiser que o conector capture os dados apenas relativos a alterações que ocorram após o instantâneo.
  6. Selecione Seguinte para continuar.

    Captura de ecrã da página de definições avançadas do Oracle CDC.

  7. Em Rever e ligar, reveja as suas definições.

  8. Selecione Adicionar (Eventstream) ou Ligar (Real-Time hub).

    Captura de ecrã da página de Revisão + ligação do Oracle CDC.

Ver fluxo de eventos atualizado

  1. Pode ver a fonte Oracle Database CDC adicionada ao seu fluxo de eventos no modo Editar.

    Captura de ecrã do streaming da fonte Oracle Database CDC na vista Editar.

  2. Para implementar esta fonte recentemente adicionada do Oracle Database CDC, selecione Publicar. Depois de completar estes passos, a sua fonte Oracle Database CDC fica disponível para visualização na visualização em direto.

    Captura de ecrã do streaming da fonte Oracle Database CDC em visualização ao vivo.

Outros conectores: