Azure Data Factory (Patrones de Uso) - wandent/mutual-wiki GitHub Wiki
[[TOC]]
Una de las funciones de Data Factory es para fines de coordinación de procesos para la ejecución y coordinación de los jobs en Databricks. En ese sentido, para este tipo de tarea, no tenemos integración de datos, entonces el motor de Data Factory resuelve la ejecución.
El propósito del self-hosted Integration runtime es basicamente funcionar como puente entre las fuentes de datos en ambiente on premises, o aisladas en una vnet (en un futuro cercano, Data Factory podrá resolver acceso directo a datos directamente usando el auto resolve)
Efectivamente, en general el Integration runtime es el recurso de cómputo usado por Data Factory para ejecutar procesos de carga y transformación de datos. Los siguientes son los tipos de runtime que ADF (Azure Data Factory) aprovisiona según la demanda de ejecución:
Tipo | uso en Red interna azure | uso en Red privada (preview) |
---|---|---|
Azure | Copy Data, Data-Flow, Coordinación de actividades | Copy Data, Data-Flow, Coordinación de actividades |
Azure SSIS | Ejecución de paquetes SSIS (movimentación de datos) | ejecución de paquetes SSIS (movimentación de datos) |
Self-Hosted | Copy Data, Data-Flow, Coordinación de actividades | Copy Data, Data-Flow, Coordinación de actividades |
Entonces, específicamente el Self-hosted integration runtime require un proceso de tres etapas
- Instalar una maquina (virtual) windows en una ubicación de red que tenga conexión de red con las fuentes de datos que se desea integrar.
- Un primer punto es considerar que la ubicación física de la VM debe de ser la mas cercana posible de la fuente de datos, cuanto mas lejos (en términos de transito por routers y todo) en rendimiento podrá ser impactado además de la conexión de red (subnet, configuración de DNS etc.).
- Los drivers y software cliente de bancos de datos necesarios a los procesos deberán también de estar instalados y configurados. Ejemplo clásico es el client de Oracle, que deberá estar instalado y configurados los archivos de client de red antes mismo de instalar el software de SHIR.
- La VM deberá de tener los últimos parches de actualización de windows, asi como de seguridad.
- Efectivamente aprovisionar el SHIR
- Configurar recurso de self-hosted en Data Factory
- Elija self-hosted para aprovisionar un nuevo.
1.Agregar el nombre y capture la clave del runtime. Asi como los binarios para instalación.
- Elija self-hosted para aprovisionar un nuevo.
- Garantiza que tenga la clave copiada
- Instalar los binarios en la VM, durante el proceso será necesario pegar la clave para conectar con el servicio a modo de registro con el Data factory en Azure.
- Configurar recurso de self-hosted en Data Factory
Es posible agregar a un data factory, una instancia de integration runtime usada por otra instancia del servicio (ADF) en la organización.
En el terminal de la maquina virtual con el integration runtime, es posible ejecutar un utilitario para linkear directamente a otro. A modo de facilitar el proceso.
Como ejemplo.
dmgcmd [ -RegisterNewNode "<AuthenticationKey>" -EnableRemoteAccess "<port>" ["<thumbprint>"] -EnableRemoteAccessInContainer "<port>" ["<thumbprint>"] -DisableRemoteAccess -Key "<AuthenticationKey>" -GenerateBackupFile "<filePath>" "<password>" -ImportBackupFile "<filePath>" "<password>" -Restart -Start -Stop -StartUpgradeService -StopUpgradeService -TurnOnAutoUpdate -TurnOffAutoUpdate -SwitchServiceAccount "<domain\user>" ["<password>"] -Loglevel <logLevel> ]
Una practica recomendada, principalmente en ambientes productivos es que un self-hosted integration runtime configurado en Data Factory, efectivamente apunte a dos o mas maquinas virtuales para proveer capacidades de dividir la carga de trabajo (por ejemplo, en sendo un integration runtime usado por múltliples procesos)
Podemos tener hasta cuatro nodos asociados con una configuración de self-hosted IR en data factory. Efectivamente con multiples nodos podemos enderezar dos temas.
Para instalar:
- Es necesario aprovisionar nuevas maquinas (on premises, o en Azure dentro de una vnet comunicando con la fuente de datos)
- Instalar los pre-requisitos y el client de integration runtime (se recomienda buscar los binarios en el Microsoft Download Center)
- Despues de instalar el primer nodo, es necesario configurar una opción para habilitar el acceso en Microsoft Integration Runtime Configuration Manager > Settings > Remote access to intranet. La opción Remote Access to Intenret es requerida en el primer nodo.
- Registrar todos los clients usando el mismo key. Con eso, automaticamente aparecerán en data factory como nodos.
Las ventajas de utilizar son dos:
- Es la disponibilidad, no vamos tener un unico punto de falla. En caso un nodo esté offline, el integration runtime sigue funcionando, asi como los procesos de ingesta de datos.
- Mejora de rendimiento en multiples procesos que utilizan el mismo Self-hosted IR, de hecho la propuesta es dividir la carga de trebajo entre los multiples nodos.
Específicamente en procesos que capturan datos del entorno on-premises, y intentan generar archivos parquet en el Datalake (land) es un pre-requisito que en la VM configurada como Self-Hosted Integration Runtime (SHIR) tengamos instalado el Java Virtual Machine.
En la documentación de instalación, está definido que Java Virtual Machine es un pre-requisito para instalar el client de self-hosted integration runtime.