Self-hosted IR en Azure Synapse: cómo configurar
Este tutorial explica cómo configurar un Self-hosted Integration Runtime (IR) en Azure Synapse para copiar datos de un SQL Server on-premises a un Azure Data Lake Storage Gen2. Configurar un Self-hosted IR en Azure Synapse permite mover datos a través de redes seguras cuando no es posible exponer las bases de datos directamente a la nube.
Prerrequisitos
- Cuenta Azure con permisos para el Synapse Workspace y ADLS Gen2.
- Un Synapse Workspace con permisos de Contributor para crear Linked Services y Pipelines.
- Máquina on-premises (Windows) con acceso al SQL Server y permisos para instalar software.
- Puertos de red abiertos para el servidor donde se instalará el Self-hosted IR (HTTPS de salida).
- Credenciales de acceso al SQL Server y a la cuenta ADLS Gen2.
Paso 1: Crear el Self-hosted Integration Runtime en Synapse
Abra el Synapse Studio y vaya a Manage > Integration runtimes. Cree un nuevo Integration Runtime del tipo Self-hosted. El paso genera una clave de registro que se usará en la instalación local.
{
"name": "SelfHostedIR",
"type": "SelfHosted",
"description": "IR para ligar ao SQL on-premises"
}
Paso 2: Instalar y registrar el IR en la máquina on-premises
En la máquina on-premises descargue el instalador del Integration Runtime (enlace en el propio Synapse Studio). Ejecute el instalador y, cuando se le solicite, pegue la clave de registro creada en el Paso 1. El agente quedará registrado y conectado a su Synapse Workspace.
Paso 3: Crear Linked Services (SQL on-prem y ADLS Gen2)
Cree un Linked Service para el SQL Server on-premises y otro para el ADLS Gen2. Para el Linked Service del SQL Server indique que usa el Self-hosted IR mediante connectVia. Ejemplo mínimo JSON del Linked Service para el SQL Server:
{
"name": "LS_OnPrem_SqlServer",
"properties": {
"type": "SqlServer",
"typeProperties": {
"connectionString": "Server=ONPREM-SQL;Database=MyDb;User Id=myuser;Password=mypassword;"
},
"connectVia": {
"referenceName": "SelfHostedIR",
"type": "IntegrationRuntimeReference"
}
}
}
Ejemplo mínimo JSON del Linked Service para ADLS Gen2:
{
"name": "LS_ADLS_Gen2",
"properties": {
"type": "AzureDataLakeStorageGen2",
"typeProperties": {
"url": "https://.dfs.core.windows.net"
}
}
}
Paso 4: Crear Datasets y pipeline Copy
Defina un Dataset de origen que apunte a la tabla del SQL Server y un Dataset de destino que escriba en un contenedor ADLS Gen2 (por ejemplo CSV o Parquet). Después cree un Pipeline con una actividad Copy.
{
"name": "Ds_OnPrem_SqlTable",
"properties": {
"linkedServiceName": { "referenceName": "LS_OnPrem_SqlServer", "type": "LinkedServiceReference" },
"type": "SqlServerTable",
"typeProperties": { "tableName": "dbo.MyTable" }
}
}
{
"name": "Ds_ADLS_Output",
"properties": {
"linkedServiceName": { "referenceName": "LS_ADLS_Gen2", "type": "LinkedServiceReference" },
"type": "DelimitedText",
"typeProperties": { "location": { "type": "AzureBlobFSLocation", "fileName": "MyTable.csv", "folderPath": "ingest/" } }
}
}
{
"name": "CopyOnPremToADLS",
"properties": {
"activities": [
{
"name": "CopyFromSqlToADLS",
"type": "Copy",
"inputs": [{ "referenceName": "Ds_OnPrem_SqlTable", "type": "DatasetReference" }],
"outputs": [{ "referenceName": "Ds_ADLS_Output", "type": "DatasetReference" }],
"typeProperties": {
"source": { "type": "SqlSource" },
"sink": { "type": "DelimitedTextSink", "storeSettings": {} }
}
}
]
}
}
Nota: en Synapse Studio puede crear estos elementos a través de la interfaz gráfica. El JSON sirve de ejemplo para automatización o plantillas ARM.
Paso 5: Ejecutar, monitorizar y programar
Ejecute el pipeline manualmente en Synapse Studio para probar. Después use Triggers para programar ejecuciones (Schedule trigger) si necesita cargas recurrentes. Monitorice en Monitor > Pipeline runs para ver el estado, la duración y eventuales errores.
Verificar el resultado
Confirme que los archivos se han escrito en ADLS Gen2: use el recurso Data hub en Synapse Studio o un Storage Explorer (o el Azure Portal) para verificar la presencia de MyTable.csv en /ingest/. Verifique también el registro del pipeline en Monitor para mensajes de éxito y número de filas copiadas. Si hay errores comunes (autenticación, firewall, tiempo de conexión), revise el registro del Self-hosted IR en la máquina local y si el SQL Server permite conexiones remotas.
Conclusión
Ahora tiene un Self-hosted Integration Runtime funcionando con un pipeline Copy que mueve datos de un SQL Server on-premises a ADLS Gen2 vía Azure Synapse. Siguientes pasos útiles incluyen: usar formatos eficientes como Parquet, implementar compresión o añadir actividades de transformación en el pipeline. Consejo: si observa problemas de conexión, confirme la hora del sistema y si el agente puede resolver los nombres DNS del servidor on-premises — ¿ya ha comprobado eso?