Adición del origen CDC de Oracle Database a un flujo de eventos (versión preliminar)

En este artículo se muestra cómo agregar un origen de captura de datos modificados (CDC) de base de datos de Oracle a un flujo de eventos.

El conector de origen CDC de Oracle Database para Microsoft Fabric eventstream permite capturar una instantánea de los datos actuales en una base de datos de Oracle. A continuación, el conector supervisa y registra los cambios futuros a nivel de fila en estos datos. Una vez capturados los cambios en la secuencia de eventos, puede procesar estos datos CDC en tiempo real y enviarlos a diferentes destinos dentro de Fabric para su posterior procesamiento o análisis. El conector admite bases de datos de Oracle tanto si son locales como en la nube.

Prerequisites

  • Acceso a un espacio de trabajo en el modo de licencia de capacidad de Fabric o el modo de licencia de prueba con permisos de Colaborador o superior.
  • Un servidor de base de datos de Oracle en ejecución (local o hospedado en la nube).
  • La base de datos de Oracle debe ser accesible públicamente y no detrás de un firewall o protegido en una red virtual. Si reside en una red protegida, conéctese a ella mediante la inserción de red virtual del conector Eventstream.
  • Oracle LogMiner está habilitado en su base de datos para la captura de CDC.
  • Un usuario de base de datos con los permisos necesarios para las operaciones CDC.
  • Si no tienes una secuencia de eventos, crea una.

Versiones de Oracle admitidas

El conector CDC de Oracle Database admite las siguientes versiones de base de datos de Oracle:

  • Oracle Database 12c (12.1) y versiones posteriores
  • Oracle Database 19c
  • Oracle Database 21c
  • Base de datos autónoma de Oracle

Habilitación de CDC en la base de datos de Oracle

Para capturar datos modificados de Oracle, debe habilitar el registro complementario y configurar LogMiner.

Habilitar el registro suplementario

  1. Conéctese a la base de datos de Oracle como usuario con privilegios de DBA.

  2. Habilite el registro complementario en el nivel de base de datos mediante la ejecución de los siguientes 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. Compruebe que el registro complementario está habilitado:

    SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_ALL FROM V$DATABASE;
    

    La consulta debe devolver YES para ambas columnas.

Habilitación del modo archivelog

Para que CDC funcione correctamente, la base de datos debe estar en modo ARCHIVELOG.

  1. Compruebe el modo de registro de archivo actual:

    SELECT LOG_MODE FROM V$DATABASE;
    
  2. Si aún no está en modo ARCHIVELOG, habilite:

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

Creación de un usuario CDC con privilegios necesarios

Cree un usuario dedicado para el conector CDC con los permisos necesarios:

-- 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;

Reemplace <your_password>, <schema> y <table_name> con sus valores reales.

Iniciar el asistente "Seleccionar un origen de datos"

Si aún no ha agregado ningún origen a la secuencia de eventos, seleccione el icono Conectar orígenes de datos . También puede seleccionar Agregar origen>Conectar orígenes de datos en la cinta de opciones.

Captura de pantalla que muestra la selección del icono para usar un origen externo.

Si estás agregando el origen a una secuencia de eventos ya publicada, cambia al modo Edición. En la cinta de opciones, seleccione Agregar origen>Conectar orígenes de datos.

Captura de pantalla que muestra las selecciones para agregar orígenes externos.

En la página Seleccionar un origen de datos, busque y seleccione Conectar en el icono oracle DB (CDC).

Captura de pantalla que muestra la selección de Oracle Database (CDC) como tipo de origen en el Asistente para obtener eventos.

Configuración y conexión a CDC de Oracle Database

  1. En la página Conectar , en Servidor, escriba el punto de conexión de Oracle.

    Solo puede proporcionar el nombre de host o incluir host, puerto y servicio/SID en un solo valor. Por ejemplo: your-oracle-host.example.com:1521/ORCL.

  2. En Credenciales de conexión, seleccione una conexión existente o cree una nueva:

    • Para crear una conexión, seleccione Nueva conexión y escriba:
      • Nombre de la conexión: un nombre para esta conexión.
      • Nombre de usuario: el usuario de la base de datos Oracle con permisos de CDC.
      • Contraseña: la contraseña del usuario de la base de datos.
  3. Seleccione Conectar.

    Captura de pantalla de la nueva página de conexión.

  4. Una vez establecida la conexión, elija las tablas que se van a capturar seleccionando Todas las tablas o Escriba nombres de tabla. Si elige Escribir nombres de tabla, escriba una lista opcional separada por comas de identificadores de tabla completos (schemaName.tableName) para que se supervisen las tablas de base de datos de Oracle.

  5. Puede expandir Configuración avanzada para acceder a más opciones de configuración para el origen CDC de Oracle Database:

    • Modo de bloqueo de instantánea: Controla si el conector mantiene un bloqueo de tabla y durante cuánto tiempo. Los bloqueos de tabla impiden que se produzcan determinados tipos de operaciones sobre la tabla mientras el conector realiza una instantánea.
      • Shared (valor predeterminado): habilita el acceso simultáneo a la tabla, pero impide que cualquier sesión adquiera un bloqueo de tabla exclusivo. El conector adquiere un bloqueo de nivel ROW SHARE mientras captura el esquema de la tabla.
      • None: impide que el conector adquiera bloqueos en las tablas durante la creación de la instantánea. Use esta configuración solo si no se pueden producir cambios de esquema durante la creación de instantáneas.
    • Modo de control decimal: especifica cómo el conector debe controlar los valores de punto flotante para NUMBERlas columnas , DECIMALy NUMERIC . Puede establecer una de las siguientes opciones:
      • Precise (valor predeterminado): representa los valores con precisión mediante el uso java.math.BigDecimal de valores representados en eventos de cambio en formato binario.
      • Double: representa valores mediante valores dobles. El uso de valores dobles es más fácil, pero puede dar lugar a una pérdida de precisión.
      • String: codifica los valores como cadenas con formato. El uso de la String opción es más fácil de consumir, pero da lugar a una pérdida de información semántica sobre el tipo real.
    • Modo de instantánea: especifica el modo que usa el conector para tomar instantáneas de una tabla capturada.
      • Initial (valor predeterminado): la instantánea incluye la estructura y los datos de las tablas capturadas. Especifique este valor para rellenar temas con una representación completa de los datos de las tablas capturadas. Si la instantánea se completa correctamente, el conector no vuelve a ejecutar la instantánea al siguiente inicio.
      • InitialOnly: la instantánea incluye la estructura y los datos de las tablas capturadas. El conector realiza una instantánea inicial y, a continuación, se detiene, sin procesar los cambios posteriores.
      • NoData: la instantánea incluye solo la estructura de las tablas capturadas. Especifique este valor si desea que el conector capture datos solo para los cambios que se producen después de la instantánea.
  6. Seleccione Siguiente para continuar.

    Captura de pantalla de la página de Configuración avanzada del origen CDC de Oracle.

  7. En Revisar y conectar, revise la configuración.

  8. Seleccione Agregar (Eventstream) o Conectar (Centro de Real-Time hub).

    Captura de pantalla de la página «Revisar y conectar» del origen Oracle CDC.

Visualización del flujo de eventos actualizado

  1. Puede ver la fuente CDC de Oracle Database añadida a su flujo de eventos en modo de edición.

    Captura de pantalla del origen CDC de Oracle Database en streaming en la vista Editar.

  2. Para implementar este origen CDC de Base de datos de Oracle recién agregado, seleccione Publicar. Después de completar estos pasos, el origen CDC de Oracle Database está disponible para su visualización en la vista dinámica.

    Captura de pantalla del origen CDC de Oracle Database en streaming en la vista en directo.

Otros conectores: