Configuración del entorno de ejecución de integración autohospedado como proxy para Azure-SSIS IR

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

En este artículo se describe cómo ejecutar paquetes de SQL Server Integration Services (SSIS) en Azure-SSIS Integration Runtime (IR) con un entorno de ejecución de integración autohospedado (IR autohospedado) configurado como proxy.

Con esta característica, puede acceder a los datos y ejecutar tareas en el entorno local sin tener que unir la instancia de Azure-SSIS IR a una red virtual. La característica resulta útil cuando la configuración de la red corporativa es demasiado compleja o una directiva es demasiado restrictiva para que pueda insertar la instancia de Azure-SSIS IR en ella.

Esta característica solo se puede habilitar por el momento en las tareas de SSIS de flujo de datos y de ejecución de SQL o procesos.

Cuando se habilita en la tarea Flujo de datos, esta característica la dividirá en dos tareas de almacenamiento provisional siempre que sea aplicable:

  • Tarea de almacenamiento provisional en el entorno local: esta tarea ejecuta el componente de flujo de datos que se conecta a un almacén de datos local en el IR autohospedado. Migra los datos del almacén de datos local a un área de almacenamiento provisional en su instancia de Azure Blob Storage o viceversa.
  • Tarea de almacenamiento provisional en la nube: esta tarea ejecuta el componente de flujo de datos que no se conecta a un almacén de datos local en su instancia de Azure-SSIS IR. Migra los datos del área de almacenamiento provisional en su instancia de Azure Blob Storage a un almacén de datos en la nube o viceversa.

Si la tarea Flujo de datos migra datos del entorno local a la nube, la primera y la segunda tarea de almacenamiento provisional serán una tarea de almacenamiento provisional en el entorno local y una en la nube, respectivamente. Si la tarea Flujo de datos migra datos de la nube al entorno local, la primera y la segunda tarea de almacenamiento provisional serán una tarea de almacenamiento provisional en la nube y una en el entorno local, respectivamente. Si la tarea Flujo de datos migra datos de un entorno local a otro, la primera y la segunda tarea de almacenamiento provisional serán ambas en el entorno local. Si la tarea Flujo de datos migra datos de una instancia en la nube a otra, esta característica no aplica.

Habilitada en las tareas de ejecución de SQL o procesos, esta característica las ejecutará en su entorno de ejecución de integración autohospedado.

Otras ventajas y funcionalidades de esta característica permiten, por ejemplo, configurar IR autohospedado en regiones que Azure-SSIS IR todavía no admite y permitir la dirección IP estática pública de la instancia del entorno de ejecución de integración autohospedado en el firewall de los orígenes de datos.

Preparación de IR autohospedado

Para usar esta característica, primero debe crear una factoría de datos y configurar una instancia de Azure-SSIS IR en ella. Si todavía no lo ha hecho, siga las instrucciones de Configuración de un entorno de Azure-SSIS IR.

A continuación, configure la instancia de IR autohospedado en la misma factoría de datos en la que está configurada la instancia de Azure-SSIS IR. Para ello, consulte Creación de un entorno de ejecución de integración autohospedado.

Por último, descargue e instale la versión más reciente del entorno de ejecución de integración autohospedado, así como los controladores y el entorno de ejecución adicionales, en la máquina local o en la máquina virtual de Azure, de la manera siguiente:

  • Descargue e instale la versión más reciente del entorno de ejecución de integración autohospedado.

  • Habilita la ejecución de paquetes SSIS en el nodo de Integration Runtime autohospedado si la versión de IR autohospedada es 5.28.0 o posterior.

    La propiedad ExecuteSsisPackage se introduce recientemente a partir de la versión 5.28.0de IR autohospedado. Usa la siguiente acción de línea de comandos de IR autohospedado para habilitar o deshabilitar la ejecución del paquete SSIS:

    • -EnableExecuteSsisPackage Habilita la ejecución del paquete SSIS en el nodo IR autohospedado.

    • -DisableExecuteSsisPackage Deshabilita la ejecución del paquete SSIS en el nodo IR autohospedado.

    • -GetExecuteSsisPackage

    Los detalles de la línea de comandos de IR autohospedados se refieren a Configurar un IR autohospedado existente a través del PowerShell local.

    Nodo IR autohospedado recién instalado con la versión 5.28.0 o posterior, la propiedad ExecuteSsisPackage está deshabilitada de forma predeterminada.

    Nodo IR autohospedado existente actualizado a la versión 5.28.0 o posterior, la propiedad ExecuteSsisPackage está habilitada de forma predeterminada

  • Si usa conectores de base de datos de vinculación e incrustación de objetos (OLEDB), de conectividad abierta de bases de datos (ODBC) o de ADO.NET en los paquetes, descargue e instale los controladores apropiados en el mismo equipo en el que está instalada la instancia de IR autohospedado, si aún no lo ha hecho.

    Si usa la versión anterior del controlador OLEDB para SQL Server (SQL Server Native Client [SQLNCLI]), descargue la versión de 64 bits.

    Si usa la versión más reciente del controlador OLEDB para SQL Server (MSOLEDBSQL), descargue la versión de 64 bits.

    Si usa controladores OLEDB/ODBC/ADO.NET para otros sistemas de base de datos, como PostgreSQL, MySQL, Oracle, etc., puede descargar las versiones de 64 bits de sus sitios web.

  • Si usa componentes de flujo de datos de Azure Feature Pack de los paquetes, descargue e instale Azure Feature Pack para SQL Server 2017 en la misma máquina en la que está instalado el entorno de ejecución de integración autohospedado, si aún no lo ha hecho.

  • Si aún no lo ha hecho, descargue e instale la versión de 64 bits del entorno de ejecución de Visual C++ (VC) en la misma máquina en la que está instalada la instancia de IR autohospedado.

Habilitación de la autenticación de Windows en tareas del entorno local

Si las tareas de almacenamiento provisional en el entorno local y las tareas de ejecución de SQL o procesos en el entorno de ejecución de integración autohospedado requieren la autenticación de Windows, también debe configurar la característica de autenticación de Windows en la instancia de Azure-SSIS IR.

Las tareas de almacenamiento provisional en el entorno local o las tareas de ejecución de SQL o procesos se invocarán con la cuenta del servicio IR autohospedado (NT SERVICE\DIAHostService de manera predeterminada) y el acceso a los almacenes de datos se realizará con la cuenta de autenticación de Windows. Ambas cuentas requieren que se les asignen determinadas directivas de seguridad. En el equipo de IR autohospedado, vaya a Directiva de seguridad local>Directivas locales>Asignación de derechos de usuario y haga lo siguiente:

  1. Asigne las directivas Ajustar las cuotas de la memoria para un proceso y Reemplazar un símbolo (token) de nivel de proceso a la cuenta del servicio de IR autohospedado. Esto debe producirse automáticamente al instalar el IR autohospedado con la cuenta de servicio predeterminada. Si no es así, asigne esas directivas de forma manual. Si utiliza una cuenta de servicio diferente, asígnele las mismas directivas.

  2. Asigne la directiva Iniciar sesión como servicio a la cuenta de autenticación de Windows.

Preparación del servicio vinculado de Azure Blob Storage para almacenamiento provisional

Si aún no lo ha hecho, cree un servicio vinculado de Azure Blob Storage en la misma factoría de datos en la que está configurada la instancia de Azure-SSIS IR. Para ello, consulte Creación de un servicio vinculado de Azure Data Factory. Asegúrese de hacer lo siguiente:

  • En Almacén de datos, seleccione Azure Blob Storage.
  • En Conectar mediante el entorno de ejecución de integración, seleccione AutoResolveIntegrationRuntime (no su IR autohospedado). De este modo, podremos ignorarlo y usar la instancia de Azure-SSIS IR en su lugar para capturar las credenciales de acceso de su instancia de Azure Blob Storage.
  • En Método de autenticación, seleccione Clave de cuenta, SAS URI (URI de SAS), Entidad de servicio, Identidad administrada o Identidad administrada asignada por el usuario.

Sugerencia

Si la instancia de factoría de datos está habilitada para Git, un servicio vinculado sin autenticación de clave no se publicará de inmediato, lo que significa que no puede guardar el tiempo de ejecución de integración que depende del servicio vinculado en tu rama de funciones. La autenticación con la clave de cuenta o el URI de SAS publicará inmediatamente el servicio vinculado.

Sugerencia

Si selecciona el método Entidad de servicio, conceda a la entidad de servicio al menos el rol Colaborador de datos de Storage Blob. Para más información, vea el conector de Azure Blob Storage. Si selecciona el método Identidad administrada/Identidad administrada asignada por el usuario, conceda a la identidad administrada asignada por el usuario o el sistema que se ha especificado para su ADF un rol adecuado para acceder a Azure Blob Storage. Para más información, consulte Acceso a Azure Blob Storage mediante la autenticación de Microsoft Entra con la identidad administrada asignada por el usuario o el sistema especificada para ADF.

Prepare the Azure Blob storage-linked service for staging

Configuración de una instancia de Azure-SSIS IR con IR autohospedado como proxy

Cuando haya preparado el servicio vinculado de Azure Blob Storage e IR autohospedado para el almacenamiento provisional, puede configurar la instancia nueva o existente de Azure-SSIS IR con el IR autohospedado como proxy en el portal o la aplicación de factoría de datos. Sin embargo, antes de hacerlo, si la instancia de Azure-SSIS IR existente ya está en ejecución, puede detenerla, editarla y reiniciarla después.

  1. En el panel Configuración de Integration Runtime, omita las páginas Configuración general y Configuración de implementación mediante la selección del botón Continuar.

  2. En la página Configuración avanzada, haga lo siguiente:

    1. Active la casilla Set up Self-Hosted Integration Runtime as a proxy for your Azure-SSIS Integration Runtime (Configurar el entorno de ejecución de integración autohospedado como proxy para su instancia de Azure-SSIS Integration Runtime).

    2. En la lista desplegable Self-Hosted Integration Runtime (Integration Runtime autohospedado), seleccione la instancia existente de IR autohospedado como proxy para Azure-SSIS IR.

    3. En la lista desplegable Staging Storage Linked Service (Servicio vinculado de almacenamiento provisional), seleccione el servicio vinculado de Azure Blob Storage existente o cree uno para el almacenamiento provisional.

    4. En Staging path (Ruta de acceso provisional), especifique un contenedor de blobs de la cuenta seleccionada de Azure Storage o deje este campo vacío para usar uno predeterminado como almacenamiento provisional.

    5. Seleccione el botón Continue (Continuar).

    Advanced settings with a self-hosted IR

También puede configurar la instancia nueva o existente de Azure-SSIS IR con IR autohospedado como proxy mediante PowerShell.

$ResourceGroupName = "[your Azure resource group name]"
$DataFactoryName = "[your data factory name]"
$AzureSSISName = "[your Azure-SSIS IR name]"
# Self-hosted integration runtime info - This can be configured as a proxy for on-premises data access 
$DataProxyIntegrationRuntimeName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingLinkedServiceName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingPath = "" # OPTIONAL to configure a proxy for on-premises data access 

# Add self-hosted integration runtime parameters if you configure a proxy for on-premises data access
if(![string]::IsNullOrEmpty($DataProxyIntegrationRuntimeName) -and ![string]::IsNullOrEmpty($DataProxyStagingLinkedServiceName))
{
    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
        -DataFactoryName $DataFactoryName `
        -Name $AzureSSISName `
        -DataProxyIntegrationRuntimeName $DataProxyIntegrationRuntimeName `
        -DataProxyStagingLinkedServiceName $DataProxyStagingLinkedServiceName

    if(![string]::IsNullOrEmpty($DataProxyStagingPath))
    {
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -DataProxyStagingPath $DataProxyStagingPath
    }
}
Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force

Habilitación de paquetes SSIS para usar un proxy

Mediante el uso del SSDT más reciente, ya sea como extensión de proyectos SSIS para Visual Studio o como instalador independiente, puede encontrar la nueva propiedad ConnectByProxy en los administradores de conexiones para componentes de flujo de datos admitidos y la propiedad ExecuteOnProxy en las tareas de ejecución de SQL o procesos.

Al diseñar paquetes nuevos que contienen tareas Flujo de datos con componentes para acceder a datos en el entorno local, puede habilitar la propiedad ConnectByProxy si la establece en True en el panel Propiedades de los administradores de conexiones correspondientes.

Al diseñar paquetes nuevos que contienen tareas de ejecución de SQL o procesos que se ejecutan en el entorno local, puede habilitar la propiedad ExecuteOnProxy si la establece en True en el panel Propiedades de las tareas correspondientes.

Enable ConnectByProxy/ExecuteOnProxy property

También puede habilitar las propiedades ConnectByProxy/ExecuteOnProxy al ejecutar paquetes existentes sin tener que cambiarlos manualmente uno a uno. Hay dos opciones:

  • Opción A: Abrir, recompilar y volver a implementar el proyecto que contiene los paquetes con la extensión SSDT más reciente para ejecutarla en Azure-SSIS IR. A continuación, puede habilitar la propiedad ConnectByProxy si la establece en True para los administradores de conexiones correspondientes que aparecen en la pestaña Administradores de conexiones de la ventana emergente Ejecutar paquete al ejecutar paquetes de SSMS.

    Enable ConnectByProxy/ExecuteOnProxy property2

    También puede habilitar la propiedad ConnectByProxy si la establece en True para los administradores de conexiones correspondientes que aparecen en la pestaña Administradores de conexiones de la actividad Ejecutar paquete de SSIS al ejecutar paquetes en las canalizaciones de Data Factory.

    Enable ConnectByProxy/ExecuteOnProxy property3

  • Opción B: Volver a implementar el proyecto que contiene los paquetes que se van a ejecutar en el entorno de ejecución de integración de SSIS. Para habilitar las propiedades ConnectByProxy/ExecuteOnProxy, puede proporcionar sus rutas de acceso, \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy] y establecerlas en True, dado que la propiedad se invalida en la pestaña Avanzadasde la ventana emergente Ejecutar paquete cuando se ejecutan paquetes desde SSMS.

    Enable ConnectByProxy/ExecuteOnProxy property4

    Otra manera de habilitar las propiedades ConnectByProxy/ExecuteOnProxy es proporcionar sus rutas de acceso, \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy], y establecerlas en True, dado que la propiedad se invalida en la pestaña Invalidaciones de propiedad de la actividad Ejecutar paquete de SSIS al ejecutar paquetes en canalizaciones de Data Factory.

    Enable ConnectByProxy/ExecuteOnProxy property5

Depuración de tareas en el entorno local y tareas de almacenamiento provisional en la nube

En el entorno de ejecución de integración autohospedado, puede encontrar los registros del entorno de ejecución en la carpeta C:\ProgramData\SSISTelemetry y los registros de ejecución de las tareas de almacenamiento provisional local o de las tareas de ejecución de SQL o procesos en la carpeta C:\ProgramData\SSISTelemetry\ExecutionLog. Puede encontrar los registros de ejecución de las tareas de almacenamiento provisional en la nube en la instancia de SSISDB, en las rutas de acceso de registro especificadas o en Azure Monitor, en función de si los paquetes se almacenan en SSISDB, si se habilita la integración de Azure Monitor, etc. También puede encontrar los identificadores únicos de las tareas de almacenamiento provisional en el entorno local en los registros de ejecución de las tareas de almacenamiento provisional en la nube.

Unique ID of the first staging task

Si ha generado incidencias de soporte técnico, puede seleccionar el botón Enviar registros en la pestaña Diagnósticos de Microsoft Integration Runtime Configuration Manager que está instalado en el entorno de ejecución de integración autohospedado para enviar los registros de operaciones y ejecuciones recientes para que se investiguen.

Facturación de las tareas en el entorno local y tareas de almacenamiento provisional en la nube

Las tareas de almacenamiento provisional local o las tareas de ejecución de SQL o procesos que se ejecutan en el entorno de ejecución de integración autohospedado se facturan por separado, de la misma forma que se facturan las actividades de movimiento de datos que se ejecutan en dicho entorno. Esto se especifica en el artículo Azure Data Factory: Precios de las canalizaciones de datos.

Las tareas de almacenamiento provisional en la nube que se ejecutan en la instancia de Azure-SSIS IR no se facturan por separado, pero la instancia de Azure-SSIS IR en ejecución se factura tal como se especifica en el artículo sobre Precios de Azure-SSIS IR.

Aplicación de TLS 1.2

Si necesita acceder a los almacenes de datos que se han configurado para usar solo el protocolo de red y la criptografía más seguros (TLS 1.2), incluido Azure Blob Storage para el almacenamiento provisional, debe habilitar solo TLS 1.2 y deshabilitar las versiones anteriores de SSL/TLS al mismo tiempo en el entorno de ejecución de integración autohospedado. Para ello, puede descargar y ejecutar el script main.cmd que se proporciona en la carpeta CustomSetupScript/UserScenarios/TLS 1.2 de nuestro contenedor de blobs de versión preliminar pública. Con el Explorador de Azure Storage, puede conectarse al contenedor de blobs en versión preliminar pública; para ello, escriba el siguiente URI de SAS:

https://ssisazurefileshare.blob.core.windows.net/publicpreview?sp=rl&st=2020-03-25T04:00:00Z&se=2025-03-25T04:00:00Z&sv=2019-02-02&sr=c&sig=WAD3DATezJjhBCO3ezrQ7TUZ8syEUxZZtGIhhP6Pt4I%3D

Limitaciones actuales

  • Actualmente, solo son compatibles los componentes de flujo de datos que están integrados o preinstalados en Azure-SSIS IR Standard Edition, excepto los componentes de Hadoop/HDFS/DQS; vea todos los componentes integrados y preinstalados en Azure-SSIS IR.
  • Actualmente, solo son compatibles los componentes de flujo de datos personalizados o de terceros que se escriben en código administrado (.NET Framework). Sin embargo, no se admiten actualmente los que se escriben en código nativo (C++).
  • Actualmente, no se admite el cambio de valores de variables en las tareas locales y de almacenamiento provisional en la nube.
  • El cambio de valores de variables del objeto type en las tareas de almacenamiento provisional locales no se reflejará en otras tareas.
  • Actualmente no se admite ParameterMapping en el origen de OLEDB. Como solución alternativa, use Comando SQL de variable como AccessMode y Expresión para insertar las variables o los parámetros en un comando SQL. Como ejemplo, vea el paquete ParameterMappingSample.dtsx que se puede encontrar en la carpeta SelfHostedIRProxy/Limitations del contenedor de blobs en versión preliminar pública. Con el Explorador de Azure Storage, puede conectarse al contenedor de blobs en versión preliminar pública si especifica el URI de SAS anterior.

Después de configurar la instancia de IR autohospedado como proxy de su instancia de Azure-SSIS IR, puede implementar y ejecutar los paquetes para acceder a los datos o ejecutar cualquier instrucción o proceso SQL en el entorno local como actividades de ejecución de paquetes SSIS en las canalizaciones de Data Factory. Para obtener información de cómo hacerlo, consulte Ejecución de un paquete de SSIS mediante la actividad Ejecutar paquete SSIS de Data Factory. Consulte también nuestros blogs: Ejecución de cualquier instancia de SQL en cualquier parte en tres sencillos pasos con SSIS en Azure Data Factory y Ejecución de cualquier proceso en cualquier parte en tres sencillos pasos con SSIS en Azure Data Factory.