Replicar datos en Azure SQL Database utilizando el servicio de exportación de datos

Nota

A partir de noviembre de 2021, el Servicio de exportación de datos ha quedado en desuso. El Servicio de exportación de datos seguirá funcionando y contará con soporte completo hasta que llegue al final del soporte y el final de su vida útil en noviembre de 2022. Más información: https://aka.ms/DESDeprecationBlog

El servicio de exportación de datos es un complemento disponible en Microsoft AppSource que agrega la capacidad de replicar los datos de la base de datos de Microsoft Dataverse en un almacén de Azure SQL Database en una suscripción de Azure propiedad del cliente. Los destinos de objetivo admitidos son Azure SQL Database y SQL Server en máquinas virtuales de Azure. El servicio de exportación de datos sincroniza inteligentemente los datos completos inicialmente y después sincroniza de manera continua cuando se producen cambios (cambios delta) en el sistema. Esto ayuda a habilitar varios escenarios de análisis e informes con datos y servicios de análisis de Azure, y abre nuevas posibilidades para que clientes y partners creen soluciones personalizadas.

Nota

Le recomendamos encarecidamente que exporte sus datos de Dataverse a Azure Synapse Analytics y/o Azure Data Lake Gen2 con Azure Synapse Link for Dataverse. Más información: Acelerar el tiempo para obtener información con Azure Synapse Link for Dataverse

Puede utilizar el servicio de exportación de datos con aplicaciones de involucración del cliente (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing y Dynamics 365 Project Service Automation).

Para obtener información sobre la interfaz programática para administrar la configuración y administración del servici de exportación de datos, consulte Servicio de exportación de datos en la guía del desarrollador.

Requisitos previos para utilizar el servicio de exportación de datos

Para comenzar a utilizar el servicio de exportación de datos, los requisitos previos siguientes son necesarios.

Servicio de base de datos de Azure SQL

  • Suscripción a Azure SQL Database propiedad de un cliente. Esta suscripción debe permitir el volumen de datos que se sincroniza.

  • Configuración de firewall. Se recomienda desactivar Permitir el acceso a servicios de Azure y especificar las direcciones IP del cliente adecuadas enumeradas en este tema. Más información: Direcciones IP estáticas de la base de datos SQL de Azure usadas por el Servicio de exportación de datos

    Como alternativa, puede activar Permitir el acceso a servicios de Azure para permitir el acceso a todos los servicios de Azure.

    Para SQL Server en la máquina virtual de Azure, la opción “Conectar con SQL Server a través de Internet” debe estar habilitada. Más información: Azure: Conectar con una máquina virtual de SQL Server en Azure

    Además, configure las reglas de su firewall para permitir la comunicación entre el Servicio de exportación de datos y SQL Server.

  • El usuario de la base de datos debe tener permisos a nivel de base de datos y esquema de acuerdo con las siguientes tablas. El usuario de la base de datos se usa en la cadena de conexión de exportación de datos.

    Permisos de base de datos requeridos.

    Código del tipo de permiso Nombre del permiso
    CRTB CREAR TABLA
    CRTY CREAR TIPO
    CRVW CREAR VISTA
    CRPR CREAR PROCEDIMIENTO
    ALUS MODIFICAR CUALQUIER USUARIO
    VWDS VER ESTADO DE BASE DE DATOS

    Permisos de esquema requeridos.

    Código del tipo de permiso Nombre del permiso
    AL MODIFICAR
    IN INSERTAR
    DL SUPR
    SL SELECCIONAR
    UP ACTUALIZAR
    EX EJECUTAR
    RF REFERENCIAS

Servicio de almacén de claves de Azure

  • La suscripción al Almacén de claves propiedad del cliente, que se usa para mantener segura la cadena de conexión de base de datos.

  • Conceda el permiso PermissionsToSecrets a la aplicación con el id. "b861dbcc-a7ef-4219-a005-0e4de4ea7dcf". Se puede hacer ejecutando el comando de AzurePowerShell siguiente y se usa para tener acceso al Almacén de claves que contiene el secreto de la cadena de conexión. Más información: Cómo configurar un Almacén de claves de Azure

  • Los secretos dentro de Key Vault deben estar etiquetado con los identificadores de la organización (OrgId) y de inquilino (TenantId). Esto se puede completar ejecutando el comando de AzurePowerShell a continuación. Más información: Cómo configurar un Almacén de claves de Azure

  • Configure las reglas de su firewall para permitir la comunicación entre el Servicio de exportación de datos y Azure Key Vault.

Aplicaciones de interacción con el cliente

  • Un entorno versión 9.0 o posterior.

  • La solución Servicio de exportación de datos debe estar instalada.

    • Vaya a Configuración>Microsoft Appsource> busque o vaya a Microsoft Dynamics 365 - Servicio de exportación de datos y, a continuación, seleccione Obténgalo ahora.
    • O bien, encuéntrelo en Microsoft AppSource.
  • Las entidades que se agregarán al Perfil de exportación deben estar habilitadas con seguimiento de cambios. Para garantizar que una entidad estándar o personalizada se puede sincronizar, vaya a Personalización>Personalizar el sistema, y seleccione la entidad. En la pestaña General asegúrese de que la opción Seguimiento de cambios en la sección Servicios de datos esté habilitada.

  • Debe tener el rol de seguridad Administrador del sistema en el entorno.

Explorador web

Habilite las ventanas emergentes para el dominio https://discovery.crmreplication.azure.net/ en el explorador web. Esto es necesario para el inicio de sesión automático cuando navega a Configuración > Exportar datos.

Servicios, credenciales, y privilegios requeridos

Para usar la característica del servicio de exportación de datos, debe contar con los servicios, las credenciales y los privilegios siguientes.

  • Una suscripción. Solo los usuarios a los que se asigna el rol de seguridad Administrador del sistema pueden configurar o realizar cambios en un Perfil de exportación.

  • La suscripción a Azure que incluye los siguientes servicios.

    • Azure SQL Database o AzureSQL Server en máquinas virtuales de Azure.

    • Azure Key Vault.

Importante

Para usar el servicio de exportación de datos, las aplicaciones de involucración del cliente y los servicios de Azure Key Vault deben trabajar en el mismo inquilino y en el mismo Microsoft Entra ID. Más información: Integración de Azure con Microsoft 365

El servicio Azure SQL Database puede estar en el mismo u otro inquilino que el servicio.

Qué debe conocer antes de usar el servicio de exportación de datos

  • Los perfiles de exportación deben eliminarse y después reconstrurse siempre se realice alguna de las siguientes acciones en un entorno.

    • Restaurar un entorno.
    • Copiar un entorno (completo o mínimo).
    • Restablecer un entorno.
    • Mover un entorno a un país o región diferente.

    Para ello, elimine el Perfil de exportación en la vista de EXPORTACIÓN DE PERFILES, después elimine las tablas y procedimientos almacenados y, a continuación cree un nuevo perfil. Más información: Cómo eliminar todas las tablas de perfil de exportación de datos y procedimientos almacenados

  • El servicio de exportación de datos no funciona para entornos de espacio aislado o de producción que están configurados con Habilitar modo de administración activado. Más información: Modo de administración

  • El servicio de exportación de datos no quita (elimina) las tablas asociadas, columnas u objetos de procedimiento almacenados en el destino de la base de datos de Azure SQL cuando las acciones siguientes se llevan a cabo.

Perfil de exportación

Para exportar datos de las aplicaciones de involucración del cliente, el administrador crea un Perfil de exportación. Varios perfiles se pueden crear y activar para sincronizar los datos con distintas bases de datos de destino simultáneamente.

El Perfil de exportación es el concepto básico del servicio de exportación de datos. El Perfil de exportación reúne información de instalación y configuración para sincronizar los datos con la base de datos de destino. Como parte del Perfil de exportación, el administrador proporciona una lista de entidades que se exportarán a la base de datos de destino. Una vez activado, el Perfil de exportación inicia la sincronización automática de los datos. En principio, se exportan todos los datos que corresponden a cada entidad seleccionada. A partir de entonces, solo los cambios en los datos que se producen en los registros de entidad o en los metadatos en aplicaciones de involucración del cliente se sincronizan continuamente utilizando un mecanismo de inserción casi en tiempo real. Por lo tanto, no debe configurar una programación para recuperar datos de aplicaciones de involucración del cliente.

Solo las entidades que tienen el seguimiento de cambios habilitado se pueden agregar al Perfil de exportación. Tenga en cuenta que la mayoría de las entidades estándar que capturan datos están habilitadas para seguimiento de cambios. Las entidades personalizadas deben estar habilitadas explícitamente para el seguimiento de cambios para poder agregarlas a un Perfil de exportación. Más información: Habilitar seguimiento de cambios para controlar la sincronización de datos.

El servicio de exportación de datos realiza sincronización de metadatos y de datos. Cada entidad se traduce a una tabla, y cada campo se traduce a una columna de la tabla de base de datos de destino. Los nombres de tabla y de columna usan el nombre de esquema de los metadatos.

Una vez activado, un Perfil de exportación recopila estadísticas de la sincronización de datos que le ayudan en visibilidad operativa y diagnóstico de los datos exportados.

Sincronización de datos disponibles con un perfil de exportación

Categoría Característica Tipos de datos admitidos
Sincronización inicial Metadatos - Tipos de datos básicos Tipos de datos de número entero, número de punto flotante, número decimal, línea de texto única, texto multilínea, fecha y hora.
Sincronización inicial Metadatos - Tipos de datos avanzados Divisa, PartyList, conjunto de opciones, razón para el estado, estado, búsqueda (incluida búsqueda de tipo cliente y referente a). PartyList solo está disponible para exportación versión 8.1 y posterior.
Sincronización inicial Datos - Tipos básicos Todos los tipos de datos básicos
Sincronización inicial Datos - Tipos avanzados Todos los tipos de datos avanzados
Sincronización delta Modificar esquema - Tipos básicos Agregar o modificar cambio de campo, todos los tipos de datos básicos.
Sincronización delta Modificar esquema - Tipos avanzados Agregar o modificar cambio de campo, todos los tipos de datos avanzados.
Sincronización delta Modificar datos - Tipos básicos Todos los tipos de datos básicos
Sincronización delta Modificar datos - Tipos avanzados Todos los tipos de datos avanzados, como PartyList.

Crear un perfil de exportación

Asegúrese de que cumple los siguientes requisitos antes de crear un Perfil de exportación.

  • La solución Servicio de exportación de datos está instalada en su entorno.

  • Mantenga la cadena de conexión de la base de datos SQL en el Almacén de claves y copie la dirección URL del Almacén de claves para proporcionarla en el Perfil de exportación. Más información: Azure: Introducción al Almacén de claves de Azure

  • Las entidades que se agregarán al Perfil de exportación están habilitadas para el seguimiento de cambios. Más información: Habilitar seguimiento de cambios para controlar la sincronización de datos.

  • El servicio SQL Database tiene suficiente espacio de almacenamiento para almacenar los datos.

  • Usted es administrador del sistema en el entorno.

  1. Vaya a Configuración>Exportar datos.

  2. Revise la nota y seleccione Continuar o Cancelar si no desea exportar datos.

  3. Seleccione Nuevo para crear un nuevo Perfil de exportación.

  4. En el paso Propiedades, especifique la siguiente información, y después seleccione Siguiente para continuar sin conexión con el Key Vault. Al seleccionar Validar se usará la dirección URL del Key Vault que proporcionó para conectarse al Almacén de claves.

    • Nombre. Nombre único del perfil. Este campo es obligatorio.

    • URL de conexión del almacén de claves. Dirección URL del Almacén de claves que señala a la cadena de conexión almacenada con las credenciales que se usan para conectarse a la base de datos de destino. Este campo es obligatorio. Más información: Cómo configurar un Almacén de claves de Azure

      Importante

      La dirección URL de conexión de almacén de claves distingue mayúsculas de minúsculas. Escriba la dirección URL de conexión de almacén de claves exactamente como se muestra después de ejecutar los comandos de Windows PowerShell en este tema.

    • Esquema. Nombre para un esquema de base de datos alternativo. Solo son válidos caracteres alfanuméricos. Este campo es opcional. De forma predeterminada, dbo es el esquema que se usa para la base de datos SQL de destino.

    • Prefijo. Prefijo que se usará para los nombres de tabla creados en la base de datos de destino. Esto ayuda a identificar fácilmente las tablas creadas para el Perfil de exportación en la base de datos de destino. Cuando se especifica, asegúrese de que el prefijo es inferior a 15 caracteres. Este campo es opcional y solo se permiten caracteres alfanuméricos.

    • Número de reintentos. El número de veces que un registro se reintenta en caso de un error al insertar o actualizar en la tabla de destino. Este campo es obligatorio. Los valores aceptables son 0-20 y el valor predeterminado es 12.

    • Intervalo de reintento. El número de segundos a esperar antes de reintentar en caso de un error. Este campo es obligatorio. Los valores aceptables son 0-3600 y el valor predeterminado es 5.

    • Escribir, eliminar registro. Valor opcional para registrar los registros eliminados.

    Pestaña Propiedades en el cuadro de diálogo Crear perfil de exportación.

  5. En el paso Seleccionar entidades, seleccione las entidades que desee exportar a la base de datos de SQL de destino y luego seleccione Siguiente.

    Pestaña Seleccionar entidades en el cuadro de diálogo Crear perfil de exportación.

  6. En el paso Seleccionar relaciones, puede sincronizar las relaciones de M:N (varios a varios) existentes con entidades que seleccionó en el paso anterior. Seleccione Siguiente.

    Crear perfil de exportación - Administrar relaciones - Seleccionar relaciones.

  7. En el paso Resumen, seleccione Crear y activar para crear el registro del perfil y conectar con el Key Vault, lo que inicia el proceso de sincronización. De lo contrario, seleccione Crear para guardar el Perfil de exportación y activarlo más adelante.

    Pestaña Resumen en el cuadro de diálogo Crear perfil de exportación.

Modificar un perfil de exportación existente

Puede agregar o quitar las entidades y relaciones de un Perfil de exportación existente que desea replicar.

  1. Vaya a Configuración>Exportar datos.

  2. En la vista Todos los perfiles de exportación de datos, seleccione el Perfil de exportación que desea cambiar.

    Seleccionar un perfil de exportación.

  3. En la barra de herramientas Acciones, seleccione ADMINISTRAR ENTIDADES para agregar o quitar entidades para exportación de datos. Para agregar o quitar relaciones de entidad, seleccione ADMINISTRAR RELACIONES.

    Administrar entidades o relaciones entre entidades.

  4. Seleccione las entidades o entidades de relación que desea agregar o quitar.

    Seleccione las entidades o entidades de relación para agregar o quitar.

  5. Seleccione Actualizar para enviar los cambios al Perfil de exportación.

Importante

Cuando se quita una entidad o una relación entre entidades de un Perfil de exportación, no se elimina la tabla correspondiente en la base de datos de destino. Para poder volver a agregar una entidad se ha quitado, debe quitar la tabla correspondiente en la base de datos de destino. Para quitar una tabla de entidades, vea Cómo eliminar tablas de perfil de exportación de datos y procedimientos almacenados para una entidad específica.

Detalles de tabla para la base de datos SQL de Azure de destino

El servicio de exportación de datos crea tablas para metadatos y datos. Se crea una tabla para cada entidad y relación M:N que se sincroniza.

Una vez activado un Perfil de exportación, estas tablas se crean en la base de datos de destino. Estas son tablas del sistema y no tendrán los campos SinkCreatedTime y SinkModifiedTime agregados.

Nombre de la tabla Fecha de creación
<Prefix>_GlobalOptionsetMetadata Tras la activación del Perfil de exportación.
<Prefix>_OptionsetMetadata Tras la activación del Perfil de exportación.
<Prefix>_StateMetadata Tras la activación del Perfil de exportación.
<Prefix>_StatusMetadata Tras la activación del Perfil de exportación.
<Prefix>_TargetMetadata Tras la activación del Perfil de exportación.
<Prefix>_AttributeMetadata Tras la activación del Perfil de exportación.
<Prefix>_DeleteLog Tras la activación del Perfil de exportación cuando la opción de eliminar registro está habilitada.

Solución de problemas de sincronización

Incluso después de varios reintentos, los errores de sincronización de registros se pueden producir por limitaciones de almacenamiento de base de datos o bloqueo de tablas debido a consultas de ejecución larga. Para resolver estos errores puede forzar una resincronización únicamente de registros de error o una resincronización de todos los registros.

  1. Vea los perfiles de exportación para buscar los que tengan errores de sincronización de registros. Para ello, vea los perfiles de datos del área Sincronización o abra un Perfil de exportación, como este perfil que tiene un error de sincronización de registros de la entidad de contacto.

    DataExport_failed_records_exist.

  2. Examine el origen del error de sincronización y resuélvalo. Más información: Control de errores y supervisión

  3. Una vez que se resuelva el problema, resincronice los registros incorrectos

    Nota

    La sincronización de registros incorrectos es una característica de vista previa pública.

    • Las características en versión preliminar no se han diseñado para un uso de producción y pueden tener una funcionalidad restringida. Estas características están disponibles antes del lanzamiento oficial para que los clientes puedan tener un acceso anticipado y proporcionar comentarios.
      • Se espera que esta característica se modifique, así que no debería usarla en producción. Úsela solo en entornos de desarrollo y prueba.
      • Microsoft no ofrece soporte técnico para esta versión preliminar de característica. El soporte técnico de Microsoft Dynamics 365 no podrá ayudarle con los problemas o las preguntas que pueda tener. Las características en vista previa no se han diseñado para su uso en producción y están sujetas a otros términos de uso complementarios.
    1. Inicie sesión en su entorno y vaya a Configuración>Exportación de datos.

    2. Abra el Perfil de exportación que incluye los errores de sincronización de registros.

    3. En la barra de herramientas Perfil de exportación, seleccione RESINCRONIZAR REGISTROS INCORRECTOS.

    4. Seleccione Aceptar tras la resincronización correcta de los registros incorrectos en el cuadro de diálogo de confirmación.

    Notificación de una resincronización correcta.

    1. Compruebe que el Perfil de exportación no contiene notificaciones de registros incorrectos abriendo el perfil de exportación de datos y viendo el contador Notificaciones incorrectas en la pestaña PROPIEDADES E INFORMACIÓN GENERAL, que debe ser 0. Seleccione ACTUALIZAR en la barra de herramientas Perfil de exportación para asegurarse de que el valor Notificaciones incorrectas es actual.

    Indicación de cero registros incorrectos.

  4. Si persisten los errores de sincronización de registros después de haber probado la resincronización siguiente los pasos anteriores, póngase en contacto con Servicios de soporte al cliente de Microsoft.

Control de errores y supervisión

Para ver el estado de sincronización de un Perfil de exportación, vaya a Configuración>Exportación de datos y abra el Perfil de exportación. En la pestaña ENTIDADES, el estado de sincronización se muestra incluyendo una columna Registros incorrectos para los registros que no se pudieron sincronizar. Para cualquier registro con error, una lista de esos registros incluida la razón para el estado se puede descargar seleccionando REGISTROS INCORRECTOS en la barra de comandos.

Barra de comandos Perfil de exportación: botón Registros incorrectos.

En el Perfil de exportación puede seleccionar PROPIEDADES E INFORMACIÓN GENERAL para mostrar las propiedades del perfil. Seleccione RELACIONES para ver el estado de sincronización de las relaciones.

Cómo ver información detallada sobre los registros con errores de sincronización

Ver los registros incorrectos puede ayudarle a determinar la causa de los errores de sincronización. Para ver registros incorrectos en la base de datos de Azure de destino, use Azure Storage Explorer, una aplicación independiente gratuita que le permite trabajar fácilmente con datos de Azure Storage. Más información: Azure Storage Explorer.

  1. Vaya a Configuración>Exportar datos.

  2. En la vista Todos los perfiles de exportación de datos, seleccione el Perfil de exportación que tiene notificaciones incorrectas.

    Notificaciones incorrectas.

  3. En la barra de herramientas Acciones, seleccione REGISTROS INCORRECTOS.

    Botón de la barra de herramientas de registros incorrectos.

  4. En el cuadro de diálogo Descargar registros incorrectos, seleccione Copiar URL de blob y, a continuación, seleccione Aceptar.

    Cuadro de diálogo Descargar registros incorrectos.

    Nota

    La dirección URL de blob es válido durante un máximo de 24 horas. Si la dirección URL supera el periodo de 24 horas, repita los pasos descritos anteriormente para generar una nueva dirección URL de blob.

  5. Inicie Azure Storage Explorer.

  6. En Explorador de Azure Storage, seleccione Conectar con Azure Storage.

  7. Pegue la dirección URL del Portapapeles en el cuadro Conectar a Azure Storage, y después seleccione Siguiente.

    URL de almacenamiento.

  8. En la página Resumen de conexión, seleccione Conectar.

  9. Azure Storage Explorer se conecte a la base de datos de destino. Si hay registros con error para el Perfil de exportación, Azure Storage Explorer muestra carpetas de sincronización de registros incorrectos.

Cómo ver información detallada sobre los registros con errores de sincronización (vista previa)

Puede descargar los registros fallados directamente desde la interfaz de usuario Servicio de exportación de datos. Esta característica está funcionando actualmente en vista previa y sería importante que pruebe y proporcione comentarios.

Pasos para descargar registros incorrectos:

  1. Identifique el perfil con registros fallidos.

    Perfiles de exportación de datos.

  2. Seleccione el perfil y seleccione Descargue los registros fallados (la vista previa) de la barra de menú superior.

    Descargar registros incorrectos (versión preliminar).

  3. En el cuadro Descarga de registros fallados, verá una lista ordenada de los últimos 20 (máx) archivos blob. Seleccione el que quiera descargar y después seleccione Aceptar.

    Descargar registros incorrectos.

  4. Una vez descargados, abra el archivo en un editor de texto de un (por ejemplo, Notepad) y vea los detalles de los errores.

    Registro de errores de ejemplo.

Estructura de carpetas de sincronización de registros incorrectos y archivos de registro

La dirección URL de almacenamiento del blob de Azure de registros incorrectos apunta a una ubicación que tiene la siguiente estructura de carpetas:

  • data. Esta carpeta contiene notificaciones de datos incorrectos y el JSON asociado para los datos de registro.

  • metadata. Esta carpeta contiene notificaciones de metadatos incorrectos y el JSON asociado para los metadatos.

  • failurelog. Esta carpeta contiene los registros que proporcionan información sobre el error de sincronización y la razón por la que el error se produjo.

  • forcerefreshfailurelog. Esta carpeta contiene errores de la última ejecución del comando Registros incorrectos del servicio de exportación de datos usado para volver a sincronizar los registros incorrectos.

  • unprocessablemessages. Esta carpeta contiene las notificaciones de datos que no se procesaron debido a la eliminación de datos o metadatos y el JSON asociado.

    Las carpetas failurelog y forcerefreshfailurelog se estructuran Año\Mes\Día\Hora para poder buscar rápidamente los últimos errores. Se eliminan todos los registros de error con más de 30 días.

    Aquí hay un archivo de registro de ejemplo que indica un error de sincronización de registro de entidad de contacto.

Entity: contact, RecordId: 459d1d3e-7cc8-e611-80f7-5065f38bf1c1, NotificationTime: 12/28/2016 12:32:39 AM, ChangeType: Update, FailureReason: The database 'tempdb' has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions.  
The statement has been terminated.  

Las razones comunes de errores de sincronización de registros

Estas son algunas razones por las que los errores de sincronización de registros pueden ocurrir.

  • Almacenamiento insuficiente para la base de datos de destino. Antes de intentar resincronizar los registros incorrectos, aumente o libere almacenamiento de Azure SQL Database según sea necesario. Cuando este problema aparece, un mensaje similar a este se registra en el registro de errores.

    La base de datos 'databasename' alcanzó su cuota de tamaño. Cree particiones o elimine datos, elimine índices o consulte la documentación para ver resoluciones posibles.

  • El tiempo de espera de sincronización termina con Azure SQL Database. Esto puede ocurrir durante la sincronización inicial de un perfil de exportación de datos cuando grandes cantidades de datos se procesan a la vez. Cuando este problema ocurre, resincronice los registros incorrectos. Solución de problemas de sincronización

Prácticas recomendadas cuando se usa la base de datos SQL de Azure con exportación de datos

  • Para evitar errores de sincronización debido a la limitación de recursos, se recomienda tener un plan Azure SQL Database Premium P1 o superior al usar el servicio de exportación de datos. Más información Límites de recursos de la base de datos de SQL Azure y Precios de la base de datos SQL

  • Establezca Azure SQL Database para usar aislamiento de instantánea de lectura confirmada (RCSI) para cargas de trabajo que se ejecutan en paralelo en la base de datos de destino que ejecuta consultas de lectura de ejecución larga, como informes y trabajos de ETL. Esto reduce la aparición de errores de tiempo de espera que pueden presentarse con el servicio de exportación de datos debido a conflictos de lectura\escritura.

  • Para ayudar a mejorar el rendimiento de las consultas, recomendamos que el grado máximo de la base de datos de paralelismo (MAXDOP) del servicio de exportación de datos se establezca en 1. Más información: MSDN: Opciones de memoria del servidor

  • Evalúe con frecuencia la cantidad de fragmentación, y cuando sea necesario, vuelva a crear los índices en la base de datos del servicio de exportación de datos. Más información: Reorganizar y volver a crear los índices

  • Actualice periódicamente las estadísticas de la base de datos de tablas y vistas indexadas en la base de datos del servicio de exportación de datos. Más información: Actualizar estadísticas

  • Supervise la utilización de la base de datos del servicio de exportación de datos. Más información: Supervisión de rendimiento

Acerca de la latencia de sincronización de datos

El servicio de exportación de datos está diseñado para sincronizar los cambios de datos en la base de datos de destino mediante un mecanismo de inserción escuchando los cambios a medida que se producen en aplicaciones de involucración del cliente. El servicio intenta enviar los datos en cuestión de pocos minutos, pero hay un número de factores que afecta a la latencia de sincronización completa.

Los factores que afectan a la duración de la sincronización incluyen:

  • La carga de trabajo actual en las aplicaciones de involucración del cliente.
  • La velocidad de cambio de datos en las aplicaciones de involucración del cliente.
  • El número de entidades que se agregan a cada perfil de exportación y sus atributos.
  • El rendimiento de SQL Server. Por ejemplo:
    • El tiempo de configuración de la conexión de SQL.
    • La hora de ejecución de la instrucción de SQL.

Según nuestra supervisión del servicio se ha observado que la mayor parte de la sincronización delta en curso termina en 15 minutos, si el servicio funciona en las siguientes condiciones:

  • La sincronización que se produce es una sincronización delta y no la sincronización inicial. La sincronización delta solo es para operaciones de cambio de datos, lo que incluye transacciones de creación de registros, actualización y eliminación. Tenga en cuenta que la sincronización delta comienza una vez que se termina la sincronización inicial.
  • La velocidad de cambio de datos máxima en aplicaciones de involucración del cliente para todas las entidades del perfil de exportación es inferior a 3000 registros por hora. Cualquier aumento repentino de la velocidad de cambio de datos debido a cambios masivos de registros que supere la velocidad de cambio máxima añadirá más latencia.
  • Cada entidad que se ha agregado a un perfil de exportación tiene menos de 150 atributos.
  • La conexión de la base de datos o la ejecución de la instrucción SQL termina en menos de 10 segundos. Si se supera este límite aumentará la latencia.
  • No se establece una conexión de la base de datos de destino ni se producen errores de ejecución de SQL durante la sincronización.

Cuando se cumplan las condiciones anteriores, la latencia de la sincronización suele ser de 15 minutos. Microsoft no ofrece ningún acuerdo de nivel de servicio (SLA) para el servicio de exportación de datos y no ofrece garantías ni compromisos en relación con el tiempo de la latencia de sincronización.

Cómo configurar un Almacén de claves de Azure

Ejecute el script de Windows PowerShell descrito aquí como administrador de la cuenta de Azure para dar permiso a la característica del servicio de exportación de datos para que pueda obtener acceso al Almacén de claves de Azure. Este script muestra la dirección URL de claves del almacén requerida para crear el Perfil de exportación que se usa para obtener acceso a la cadena de conexión.

Antes de ejecutar el script, reemplace los marcadores para las variables siguientes.

  • $subscriptionId. El grupo de recursos del Almacén de claves que desea usar. Si aún no existe un grupo de recursos, se creará uno nuevo con el nombre que especifique. En este ejemplo, se usa ContosoResourceGroup1.

  • $location. Especifique la ubicación donde el grupo de recursos está o debe estar ubicado, como Oeste de EE.UU..

  • $connectionString. La cadena de conexión a Azure SQL Database. Puede usar la cadena de conexión ADO.NET como se muestra en el panel de Azure.

  • $organizationIdList = Lista separada por comas de organizaciones permitidas, ordenada por Id. de organización (organizationId), para habilitar el servicio de exportación de datos. Para buscar el Id. de una organización, en , vaya a Configuración>Personalizaciones>Recursos de desarrollador. El Id. de organización está en Información de referencia del entorno.

  • $tenantId. Especifica el Id. de inquilino de Azure Active Directory al que está suscrito el Almacén de claves.

Importante

Una suscripción a Azure puede tener varios Id. de inquilino de Azure Active Directory. Asegúrese de seleccionar el Id. de inquilino de Azure Active Directory correcto que está asociado al entorno que usará para la exportación de datos.

Nota

Asegúrese de que el Id. de usuario al que se hace referencia $connectionString tenga el permiso adecuado para dirigirse a la base de datos de Azure SQL.

# -------------------------------------------------------------------------------- #
    #  Provide the value for the following parameters before executing the script
$subscriptionId = 'ContosoSubscriptionId'    
$keyvaultName = 'ContosoKeyVault'
    $secretName = 'ContosoDataExportSecret'
    $resourceGroupName = 'ContosoResourceGroup1'
    $location = 'West US'
    $connectionString = 'AzureSQLconnectionString'
$organizationIdList = 'ContosoSalesOrg1_id, ContosoSalesOrg2_id'
$tenantId = 'tenantId'
    # -------------------------------------------------------------------------------- #

# Login to Azure account, select subscription and tenant Id
Connect-AzAccount -Tenant $tenantId -Subscription $subscriptionId

# Create new resource group if not exists.
$rgAvail = Get-AzResourceGroup -Name $resourceGroupName -Location $location -ErrorAction SilentlyContinue
if(!$rgAvail){
    New-AzResourceGroup -Name $resourceGroupName -Location $location
}

# Create new key vault if not exists.
$kvAvail = Get-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ErrorAction SilentlyContinue
if(!$kvAvail){
    New-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -Location $location
    # Wait few seconds for DNS entry to propagate
    Start-Sleep -Seconds 15
}

# Create tags to store allowed set of Organizations.
$secretTags = @{}
foreach ($orgId in $organizationIdList.Split(',')) {
    $secretTags.Add($orgId.Trim(), $tenantId)
}

# Add or update a secret to key vault.
$secretValue = ConvertTo-SecureString $connectionString -AsPlainText -Force
$secret = Set-AzKeyVaultSecret -VaultName $keyvaultName -Name $secretName -SecretValue $secretValue -Tags $secretTags

# Authorize application to access key vault.
$servicePrincipal = 'b861dbcc-a7ef-4219-a005-0e4de4ea7dcf'
Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ServicePrincipalName $servicePrincipal -PermissionsToSecrets get

# Display secret url.
Write-Host "Connection key vault URL is "$secret.id.TrimEnd($secret.Version)""

Cómo eliminar todas las tablas de perfil de exportación de datos y procedimientos almacenados

Importante

Para ejecutar esta instrucción SQL asegúrese de que ha definido correctamente los valores @prefix y @schema en la instrucción. El Perfil de exportación deberá volver a crearse después de ejecutar esta instrucción SQL.

-----------------------------------------------------------------
-- Provide the value for the following parameters
DECLARE @prefix nvarchar(32) =''
DECLARE @schema nvarchar(32) ='dbo'
-----------------------------------------------------------------

DECLARE @sql nvarchar(max) = '';

SELECT @sql += 'DROP TABLE ' + QUOTENAME([TABLE_SCHEMA]) + '.' + QUOTENAME([TABLE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [TABLE_TYPE] = 'BASE TABLE' AND [TABLE_NAME] like @prefix + '_%' AND [TABLE_SCHEMA]= @schema;

PRINT @sql
EXEC SP_EXECUTESQL @sql;

PRINT 'Finished dropping all tables. Starting to drop all stored procedures now.'

SELECT @sql='';
SELECT @sql += 'DROP PROCEDURE ' + QUOTENAME([ROUTINE_SCHEMA]) + '.' + QUOTENAME([ROUTINE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[ROUTINES]
WHERE [ROUTINE_TYPE] = 'PROCEDURE' AND [ROUTINE_NAME] like @prefix + '_%' AND [ROUTINE_SCHEMA]= @schema;
PRINT @sql
EXEC SP_EXECUTESQL @sql;

PRINT 'Finished dropping all stored procedures. Starting to drop all types now.'

SELECT @sql=''; 
SELECT @sql += 'DROP TYPE ' + QUOTENAME(SCHEMA_NAME([SCHEMA_ID])) + '.' +  QUOTENAME([NAME]) + ';'
FROM SYS.TYPES
WHERE is_user_defined = 1 AND [NAME] LIKE @prefix + '_%' AND [SCHEMA_ID]=SCHEMA_ID(@schema);

PRINT @sql
EXEC SP_EXECUTESQL @sql;

Cómo eliminar tablas de perfil de exportación de datos y procedimientos almacenados para una entidad específica

Importante

Para ejecutar esta instrucción SQL asegúrese de que ha definido correctamente los valores @prefix, @schema y @entityName en la instrucción. En este ejemplo, se quitan la tabla, los tipos, y procedimientos almacenados de la entidad de clientes potenciales.

-----------------------------------------------------------------
-- Provide the value for the following parameters
DECLARE @prefix nvarchar(32) ='crm'
DECLARE @schema nvarchar(32) ='dbo'
DECLARE @entityName nvarchar(32) ='lead'
-----------------------------------------------------------------
DECLARE @sql nvarchar(max) = '';

IF @prefix != '' 
BEGIN
       SET @prefix = @prefix + '_'
END

SELECT @sql += 'DROP TABLE ' + QUOTENAME([TABLE_SCHEMA]) + '.' + QUOTENAME([TABLE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [TABLE_TYPE] = 'BASE TABLE' AND [TABLE_NAME] like @prefix + @entityName  AND [TABLE_SCHEMA]= @schema;
PRINT @sql
EXEC SP_EXECUTESQL @sql;
PRINT 'Finished dropping the entity. Starting to drop the types associated with the entity'

SELECT @sql='';
SELECT @sql += 'DROP TYPE ' + QUOTENAME(SCHEMA_NAME([SCHEMA_ID])) + '.' + QUOTENAME([NAME]) + ';'
FROM SYS.TYPES
WHERE
  is_user_defined = 1
  AND (
    [NAME] LIKE @prefix + @entityName +'Type' 
    OR [NAME] LIKE @prefix + @entityName +'IdType'
  )
  AND [SCHEMA_ID] = SCHEMA_ID(@schema);
PRINT @sql
EXEC SP_EXECUTESQL @sql;

Cómo desinstalar el Servicio de exportación de datos de Administrar Power Platform

  1. Navegue hasta la Configuración avanzada.
  2. Seleccione Configuración > Personalizaciones y, a continuación, seleccione Soluciones.
  3. Elija DataExportService publicado por Microsoft Dynamics 365 y luego seleccione Eliminar.

Encuentre el id. de inquilino de Microsoft Entra para su inquilino

  1. Inicie sesión en el portal Azure.
  2. En Servicios de Azure, seleccione Propiedades del inquilino.
  3. Seleccione el valor en el campo Id. del inquilino.

Direcciones IP estáticas de la base de datos de SQL de Azure usadas por el Servicio de exportación de datos

En Azure SQL Database, seleccione Establecer firewall del servidor, establezca Permitir el acceso a servicios de Azure en DESACTIVADO, seleccione Agregar IP del cliente y, a continuación, agregue las direcciones IP apropiadas para la región de su entorno. Más información: Azure: Configurar una regla de firewall a nivel de servidor de Azure SQL Database mediante Azure Portal

Región Nueva dirección IP Antigua dirección IP
Oeste de EE. UU. 20.245.127.60 13.64.148.9
Este de EE. UU. 172.174.41.63 20.228.153.81
Este de Asia 20.239.192.9 104.208.84.217
Sudeste Asiático 20.24.15.60 20.205.153.14
India central 20.219.158.75 20.198.113.107
Sur de la India 52.140.54.95 104.211.204.18
Oeste de Europa 20.126.43.104 40.68.244.253
Norte de Europa 20.166.94.137 20.238.83.32
Japón Occidental Sin cambios 104.214.144.93
Japón Oriental 52.253.104.175 20.89.138.246
Brasil del sur 4.228.211.102 20.197.186.17
Sureste de Australia Sin cambios 20.70.112.80
Este de Australia 20.5.88.96 20.213.58.3
Centro de Canadá 20.220.227.230 20.151.173.107
Este de Canadá 40.86.216.207 52.229.109.91
Oeste de Reino Unido 51.142.173.150 20.68.113.18
Sur de Reino Unido 20.117.159.198 20.117.89.184

Nota

Los clientes de Norteamérica deben agregar direcciones IP a una lista aprobada tanto para el Este de EE. UU. como para el Oeste de EE. UU.

Para evitar interrupciones en la sincronización de datos, los clientes deben conservar la dirección IP nueva y la dirección IP anterior.

Problemas conocidos

Los registros eliminados pueden reinsertarse en la tabla de la entidad después de un error de sincronización

Cuando se recupera de errores de sincronización, los registros que habían sido eliminados anteriormente pueden volver a insertarse en la tabla de la entidad original. Para solucionar este problema cuando los errores de sincronización aparecen, siga estos pasos.

  1. Cree perfiles de exportación que estén habilitado para registro de eliminación de escritura. Vuelva a crear perfiles de exportación existentes que no tengan habilitado el registro de eliminación de escritura.

  2. Cree y ejecute una consulta SQL para la base de datos de destino SQL de Azure que busque registros en la tabla DeleteLog. Si se encuentran uno o más registros indica la presencia de registros eliminados.

  3. Si uno o más registros existen en la tabla DeleteLog, cree y ejecute una consulta SQL que detecte los entornos donde el Id. de registro para un registro encontrado en la tabla DeleteLog coincida con el Id. de un registro de una tabla EntityName y el número de versión de la tabla DeleteLog sea mayor que el número de versión en el registro de la tabla EntityName. Cuando se produzca una coincidencia de Id. de registro, elimine el registro de la tabla EntityName. Por ejemplo, si un Id. de registro de la columna AccountId de la tabla DeleteLog coincide con un Id. de registro de la columna AccountId de la tabla de la entidad AccountBase y el número de versión en DeleteLog es mayor que el número de versión de la tabla Account, elimine el registro de la tabla de la entidad AccountBase.

    Importante

    Según sus necesidades de negocio y los requisitos, se recomienda que ejecute las consultas SQL para la eliminación de registros con frecuencia, pero durante las horas no operativas.

    Ejemplo de consulta para la eliminación de registros de entidad.

DELETE A FROM [dbo].[prefix_account] A
WHERE id IN (SELECT CONVERT(uniqueidentifier, recordid) FROM [dbo].[prefix_DeleteLog] DL WHERE DL.entityname ='account'
AND DL.VersionNumber > A.VersionNumber)

Entidades que no admiten la exportación de datos

Aunque las entidades enumeradas aquí admiten seguimiento de cambios, no se admiten para exportación de datos mediante el servicio de exportación de datos.

Entity Nombre de tabla Solución alternativa
Actividad ActivityPointerBase Seleccione las entidades de actividad específicas para exportación, como llamada de teléfono, cita, correo electrónico, y tarea.

No se puede crear una fila mayor que el tamaño máximo permitido de fila (8K)

Si en su registro de errores aparece “No puede crear una fila de tamaño (tamaño) que es mayor que el tamaño máximo permisible de la fila de 8060 ", tiene un problema en el que está superando el máximo permitido límite del tamaño de la fila. El servicio de exportación de datos no admite filas superiores al tamaño máximo permitido de fila de 8k. Para mitigar esta opción, debe asegurarse de que cumple los límites de tamaño de la fila.

La longitud de la cadena de origen es más larga que el esquema de destino para ColumnName

Si los registros de errores muestran “Largo de la cadena de origen con una longitud superior al esquema de destino para [ColumnName, MaxDataLength] tiene un problema donde en el que el largo de la cadena de su origen es mayor que el de destino. Si el largo de la cadena de su fuente de datos supera al del destino, las escrituras al destino fallarán. Para mitigar este problema debe reducir el tamaño de los datos o aumentar el largo de la columna, mayor que la longitud máxima manual en la base de datos.

No se admiten adjuntos

Exportar archivos adjuntos como el cuerpo del documento en la tabla Anotación no es compatible.

Aviso de privacidad

Al utilizar el servicio de exportación de datos, cuando se activa un perfil de exportación de datos desde Dynamics 365, los datos de las entidades agregadas al perfil se envían a Azure. La sincronización inicial incluye todos los datos asociados con las entidades agregadas al perfil de exportación, pero la sincronización incluye solo los cambios nuevos, que se envían continuamente al servicio de exportación de datos. Los datos enviados al servicio de exportación de datos se almacenan temporalmente en Azure Service Bus y en Azure Storage,, se procesan en Azure Service Fabric y, por último, se sincronizan (insertan, actualizan o eliminan) en la base de datos de destino especificada en su suscripción de Azure. Una vez que se hayan sincronizado los datos, se eliminan de Azure Service Bus y Azure Storage. Si se produce un error durante la sincronización de datos, los datos mínimos correspondientes a un tipo de entidad, el identificador de registro y la marca de tiempo de la sincronización se almacenan en Azure Storage para permitir descargar una lista de registros no actualizados.

Un administrador puede desactivar el perfil de exportación de datos en cualquier momento para detener la sincronización de datos. Además, un administrador puede eliminar el perfil de exportación para quitar los registros de errores y puede desinstalar la solución Servicio de exportación de datos para dejar de usar el servicio de exportación de datos.

La sincronización de datos se produce de forma continua entre Dynamics 365 y el servicio de exportación de datos de forma segura. Los datos se cifran mientras se intercambian de forma continua entre Dynamics 365 y el servicio de exportación de datos.

En las próximas secciones se detallan los componentes y servicios de Azure relacionados con el servicio de exportación de datos.

Centro de confianza de Microsoft Azure

Azure Service Fabric

Proporciona la API y el cálculo de las máquinas virtuales de Azure para procesar las notificaciones de sincronización de registros que se reciben desde Dynamics 365 y luego las procesa para insertar, actualizar o eliminar datos de registros en la base de datos de destino. Los microservicios que se implementan en las máquinas virtuales administradas por el tiempo de ejecución de Azure Service Fabric gestionan todos los servicios de cálculo relacionados con la sincronización de datos.

Azure Service Bus

Proporciona el bus de mensajes en el que Dynamics 365 inserta los mensajes de notificación de sincronización procesados por los nodos de cálculo en Azure Service Fabric. Cada mensaje almacena información, como el registro y el id. de la organización, para la que se han de sincronizar los datos. Los datos de Azure Service Bus están cifrados en reposo y solo son accesibles mediante el Servicio de exportación de datos.

Azure Blob Storage

Los datos se almacenan temporalmente en Azure Blob Storage en caso de que los datos de la notificación de sincronización de registros sean demasiado grandes para almacenarlos en un mensaje, o si se produce un error transitorio al procesar la notificación de sincronización. Estos blobs se cifran con la última característica de Azure Storage SDK, que ofrece funcionalidad de cifrado simétrico y asimétrico, e integración con Azure Key Vault.

Azure SQL

Azure SQL Database almacena las métricas de sincronización de datos y de configuración del perfil de exportación de datos.

Consulte también

Información general sobre relaciones entre entidades
Servicio de exportación de datos
Blog del equipo: Introducción al servicio de exportación de datos