Añadir la fuente de SQL Server en la base de datos de una máquina virtual (CDC) a una secuencia de eventos

En este artículo se muestra cómo agregar una fuente de Captura de Datos de Cambios (CDC) de una base de datos SQL Server sobre máquina virtual (VM) a un flujo de eventos.

El conector de origen SQL Server en VM DB (CDC) para flujos de eventos de Fabric permite capturar una instantánea de los datos actuales de una base de datos SQL Server en una máquina virtual. Actualmente, se admite SQL Server en la base de datos de máquina virtual (CDC) desde los siguientes servicios a los que se puede acceder públicamente a las bases de datos:

Nota:

Amazon Web Services (AWS) RDS SQL Server, AWS RDS Custom SQL Server y Google Cloud SQL SQL Server no admiten la versión Express. Asegúrese de que usa una edición adecuada de SQL Server para CDC.

Una vez que el origen SQL Server en la base de datos de máquina virtual (CDC) se agrega a la secuencia de eventos, supervisa y registra los futuros cambios a nivel de fila, los cuales se pueden procesar en tiempo real y enviar a varios destinos para su análisis posterior.

Nota:

Con DeltaFlow (versión preliminar), puede transformar eventos CDC sin procesar de Debezium en flujos listos para análisis que reflejen la estructura de la tabla de origen. DeltaFlow automatiza el registro de esquemas, la administración de tablas de destino y el control de la evolución del esquema. Para usar DeltaFlow, elija Eventos listos para análisis y esquema actualizado automáticamente durante el paso de control de esquemas.

Requisitos previos

  • Acceso a un área de trabajo en el modo de licencia de capacidad de Fabric o en el modo de licencia de prueba con permisos de colaborador o superior.
  • Un SQL Server en ejecución en la base de datos de máquina virtual.
  • El SQL Server en la base de datos de máquina virtual debe configurarse para permitir el acceso público. Si reside en una red protegida, conéctese a ella mediante la inserción de red virtual del conector Eventstream.
  • Habilite CDC en el SQL Server en la base de datos de máquina virtual mediante la ejecución del procedimiento almacenado sys.sp_cdc_enable_db. Para obtener más información, consulte Habilitación y deshabilitación de la captura de datos modificados.

Habilitación de CDC en el SQL Server en la base de datos de máquina virtual

  1. Habilite CDC para la base de datos.

    EXEC sys.sp_cdc_enable_db; 
    
  2. Habilite CDC para una tabla utilizando una opción de rol de control. En este ejemplo, MyTable es el nombre de la tabla SQL.

    EXEC sys.sp_cdc_enable_table 
       @source_schema = N'dbo', 
       @source_name   = N'MyTable', 
       @role_name     = NULL 
    GO 
    

    Después de que la consulta se ejecute correctamente, habilitó CDC en el SQL Server en la base de datos de máquina virtual.

    Recorte de pantalla en el que se muestra que CDC se ha habilitado.

Adición de SQL Server en la base de datos de máquina virtual como origen

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 Connect en el icono SQL Server en la base de datos de máquina virtual (CDC).

Configuración y conexión a SQL Server en la base de datos de máquina virtual

Ingesta de datos modificados de SQL Server en bases de datos de máquina virtual con registro automático de esquemas de tabla a través de CDC en Eventstream.

Nota:

DeltaFlow (versión preliminar): al seleccionar eventos listos para análisis y esquema actualizado automáticamente en el paso de control de esquemas, DeltaFlow transforma los eventos CDC de Debezium sin procesar en flujos listos para análisis que reflejan la estructura de la tabla de origen. DeltaFlow también automatiza la creación de tablas de destino y el control de la evolución del esquema.

  1. En la página Conectar, seleccione Nueva conexión.

    Captura de pantalla que muestra la selección del vínculo Nueva conexión en la página Conectar.

  2. En la sección Conección, escriba los valores siguientes para la SQL Server en la máquina virtual:

    • Servidor: Escriba la dirección IP o el nombre de dominio de la máquina virtual y agregue dos puntos y el puerto. Por ejemplo, si la dirección IP es xx.xxx.xxx.xxx y el puerto es 1433, debe escribir xx.xxx.xxx.xxx:1433 en el campo Servidor. Si no se especifica el puerto, se usa el valor 1433 de puerto predeterminado.

    • Database: Escriba el nombre de la base de datos a la que desea conectarse en el SQL Server de la máquina virtual.

      Captura de pantalla que muestra la sección Configuración de conexión de la página Conectar.

  3. Desplácese hacia abajo y, en la sección Credenciales de conexión, siga estos pasos.

    • Para Nombre de conexión, introduzca un nombre para la conexión.

    • Para Tipo de autenticación, seleccione Básica.

      Nota:

      Actualmente, Fabric Eventstream solo admite la autenticación Basic.

    • Escriba Username y Password para el SQL Server en la máquina virtual.

      Nota:

      No seleccione la opción: Usar conexión cifrada.

      Captura de pantalla que muestra la sección Credenciales de conexión de la página Conectar.

  4. Seleccione Conectar al final de la página.

  5. Ahora, en la página Conectar , seleccione Todas las tablas o Escriba nombres de tabla. Si selecciona este último, especifique tablas con una lista separada por comas de identificadores de tabla completos (schemaName.tableName) o expresiones regulares válidas. Por ejemplo:

    • Use dbo.test.* para seleccionar todas las tablas cuyos nombres empiecen por dbo.test.
    • Use dbo\.(test1|test2) para seleccionar dbo.test1 y dbo.test2.

    Puede mezclar ambos formatos mediante comas. El límite total de caracteres para toda la entrada es de 102 400 caracteres.

  6. Puede expandir Opciones avanzadas para configurar el modo de control decimal, que especifica cómo controla DECIMAL el conector y NUMERIC los valores de columna:

    • Precise: representa valores que usan tipos decimales exactos (por ejemplo, Java BigDecimal) para garantizar una precisión y precisión completas en la representación de datos.
    • Double: convierte valores en números de punto flotante de precisión doble. Esta configuración mejora la facilidad de uso y el rendimiento, pero puede provocar una pérdida de precisión.
    • String: codifica los valores como cadenas con formato. Esta configuración facilita su consumo en sistemas posteriores, pero pierde información semántica sobre el tipo numérico original.

Detalles de flujo o origen

  1. En la página Conectar , siga uno de estos pasos en función de si usa Eventstream o Real-Time hub.

    • Eventstream:

      En el panel Detalles del origen de la derecha, siga estos pasos:

      1. En Nombre de origen, seleccione el botón Lápiz para cambiar el nombre.

      2. Observe que el nombre de Eventstream y el nombre de stream son de solo lectura.

    • Centro de Tiempo Real:

      En la sección Detalles de flujo a la derecha, siga estos pasos:

      1. Seleccione el área de trabajo Fabric donde desea crear la secuencia de eventos.

      2. En Nombre del flujo de eventos, seleccione el botón Editar y escriba un nombre para la secuencia de eventos.

      3. El valor de nombre del flujo se genera automáticamente adjuntando -stream al nombre del flujo de eventos. Esta secuencia aparece en la página Todos los flujos de datos del centro en tiempo real cuando finaliza el asistente.

  2. Seleccione Siguiente en la parte inferior de la página Configurar .

Revisión y conexión

En la pantalla Revisar y conectar, revise el resumen y seleccione Agregar (Eventstream) o Conectar (Real-Time hub).

Página de control de esquemas

  1. En el paso Control de esquemas , elija una de las siguientes opciones:

    • Eventos listos para análisis y esquema actualizado automáticamente (vista previa de DeltaFlow): el conector transforma los eventos CDC sin procesar en flujos listos para análisis que reflejan la estructura de la tabla de origen. DeltaFlow enriquece los eventos con metadatos como el tipo de cambio (inserción, actualización o eliminación) y las marcas de tiempo, y administra automáticamente las tablas de destino y la evolución del esquema.
    • Eventos sin procesar de CDC: el conector ingiere y disponibiliza los eventos sin procesar de CDC. Opcionalmente, el conector puede detectar automáticamente esquemas de tabla y registrarlos en el registro de esquemas. Use esta opción cuando desee conocer el esquema sin la transformación DeltaFlow.

    Nota:

    En la captura de pantalla siguiente se muestra Azure SQL Database CDC. Las opciones de control de esquemas son las mismas para todos los conectores de origen CDC admitidos.

    Captura de pantalla que muestra la etapa de gestión de esquemas con las opciones de eventos DeltaFlow y CDC Raw para un conector de fuente CDC.

  2. Habilite la asociación del esquema de eventos.

  3. Para Workspace, seleccione un área de trabajo de Fabric para el conjunto de esquemas.

  4. En Conjunto de esquemas, + Crear está seleccionado de forma predeterminada, lo que crea un nuevo conjunto de esquemas. Puede cambiarlo para seleccionar un conjunto de esquemas de eventos existente.

  5. Si seleccionó la opción + Crear en el paso anterior, escriba un nombre para el conjunto de esquemas.

  6. En la pantalla Revisar y crear, revise el resumen y seleccione Agregar (Eventstream) o Conectar (Real-Time hub).

    Captura de pantalla que muestra la selección del botón Agregar.

    Para todas las tablas o tablas seleccionadas de la SQL Server en la base de datos de máquina virtual, el conector detecta automáticamente y crea esquemas y los registra con el registro de esquemas.

DeltaFlow: transformación de eventos listos para análisis (versión preliminar)

Al habilitar eventos listos para analytics y esquema actualizado automáticamente (DeltaFlow), el conector proporciona las siguientes funcionalidades:

  • Forma de evento lista para análisis: los eventos CDC de Debezium sin procesar se transforman en un formato tabular que refleja la estructura de la tabla de origen. Los eventos se enriquecen con columnas de metadatos, incluido el tipo de cambio (insert, updateo delete) y la marca de tiempo del evento.
  • Administración automática de tablas de destino: al enrutar secuencias habilitadas para DeltaFlow a un destino admitido como un centro de eventos, las tablas de destino se crean automáticamente para que coincidan con el esquema de la tabla de origen. No es necesario crear ni configurar manualmente tablas de destino.
  • Control de evolución del esquema: cuando cambian las tablas de base de datos de origen (por ejemplo, se agregan nuevas columnas o se crean tablas), DeltaFlow detecta automáticamente los cambios, actualiza los esquemas registrados y ajusta las tablas de destino en consecuencia. Esta característica minimiza la intervención manual causada por cambios de esquema.

Nota:

DeltaFlow (versión preliminar) se admite actualmente con los conectores de origen CDC de Azure SQL Database, CDC de Azure SQL Managed Instance, CDC de SQL Server en VM y CDC de PostgreSQL.

Para más información sobre cómo DeltaFlow transforma los eventos CDC sin procesar en una salida lista para el análisis, incluidos los tipos de operación y las columnas de metadatos, consulte Transformación de salida de DeltaFlow.

Visualización de la secuencia de eventos actualizada

Puede ver el origen CDC de SQL Server en la base de datos de máquina virtual agregado a su flujo de eventos en Edit mode.

Una captura de pantalla del SQL Server agregado como fuente CDC en la base de datos de la máquina virtual en modo Edición con funciones extendidas.

Para implementar este SQL Server recién agregado en el origen CDC de la base de datos de máquina virtual, seleccione Publish. Después de completar estos pasos, su SQL Server en VM DB CDC como origen está disponible para su visualización en la vista Live.

Una captura de pantalla del SQL Server añadido en el origen CDC de VM en modo de vista en vivo con características extendidas.

Configuración de destinos de Eventstream para usar esquemas

Actualmente, solo se admiten los destinos de eventhouse, punto de conexión personalizado y flujo derivado para Eventstreams con esquemas asociados. En esta sección se muestra cómo agregar y configurar un destino de Eventhouse cuando las características extendidas (como la compatibilidad con esquemas) están habilitadas para la secuencia de eventos.

Nota:

Cuando se usa DeltaFlow (versión preliminar) con un origen de captura de datos modificados (CDC) compatible, las tablas de destino de Eventhouse se crean y administran automáticamente para que coincidan con la estructura de la tabla de origen. No es necesario configurar manualmente el esquema de la tabla de destino. DeltaFlow también controla la evolución del esquema automáticamente cuando cambian las tablas de origen.

Configuración de un esquema para un destino de punto de conexión personalizado

  1. Seleccione Transformar eventos o agregar destino y, a continuación, seleccione CustomEndpoint.

  2. En el panel Punto de conexión personalizado , especifique un nombre para el destino.

  3. En Esquema de entrada, seleccione el esquema para los eventos. Al habilitar la compatibilidad de esquemas para una secuencia de eventos, se realiza una selección en este cuadro.

Captura de pantalla que muestra el panel para configurar un punto de conexión personalizado.

Para obtener pasos detallados sobre cómo configurar un destino de punto de conexión personalizado, consulte Incorporación de un punto de conexión personalizado o un destino de aplicación personalizado a una secuencia de eventos.

Configuración de esquemas para un destino de eventhouse

  1. Seleccione Transformar eventos o agregar destino y, a continuación, seleccione Eventhouse.

  2. En el panel Eventhouse , configure las siguientes opciones relacionadas con el esquema:

    1. En Esquema de entrada, seleccione uno o varios esquemas en la lista desplegable.

      Captura de pantalla que muestra el panel de configuración del centro de eventos con un esquema de entrada seleccionado.

      Nota:

      Si seleccionó la opción Esquema dinámico a través de encabezados al configurar un origen de Event Hubs, es posible que haya configurado varios esquemas para el origen y los haya asignado a varias propiedades y sus valores.

    2. En Método de creación de tablas, seleccione Una sola tabla con todos los esquemas combinados o Tablas independientes para cada esquema, en función de sus requisitos.

      Captura de pantalla que muestra el panel de configuración del centro de eventos con métodos de creación de tablas.

    3. En Escribir datos con, seleccione una de las siguientes opciones:

      • Solo datos de carga: Guarde los datos extraídos del payload en la tabla. Si hay varios esquemas de entrada, los datos se envían a varias tablas.
      • Metadatos y carga: incluya metadatos y datos de carga en una tabla única. Las columnas de ejemplo incluyen source , subject, typey data.

      Captura de pantalla que muestra el panel de configuración del centro de eventos con las opciones para escribir datos.

Para obtener pasos detallados sobre cómo configurar un destino de un centro de eventos, consulte Incorporación de un destino de un centro de eventos a una secuencia de eventos.

Visualización de la salida lista para análisis de DeltaFlow (versión preliminar)

Si ha habilitado eventos listos para análisis y esquema actualizado automáticamente (DeltaFlow), las tablas de destino se crean automáticamente en una forma que refleja las tablas de base de datos de origen. Cada tabla incluye las columnas originales junto con las columnas de metadatos para el tipo de cambio y la marca de tiempo.

Nota:

En la captura de pantalla siguiente se muestra Azure SQL Database CDC. La salida de la tabla de destino deltaFlow es la misma para todos los conectores de origen CDC admitidos.

Captura de pantalla que muestra las tablas de destino de Eventhouse creadas por DeltaFlow en forma lista para análisis.

Puede consultar estas tablas mediante el lenguaje de consulta Kusto (KQL) u otras herramientas de análisis, sin tener que analizar las cargas sin procesar de CDC Debezium.

Otros conectores: