Procesamiento de datos mediante la ejecución de scripts U-SQL en Azure Data Lake Analytics con Azure Data Factory y Synapse Analytics
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.
Una canalización en un área de trabajo de Azure Data Factory o Synapse Analytics procesa los datos de los servicios de almacenamiento vinculados mediante el uso de servicios de proceso vinculados. Contiene una secuencia de actividades donde cada actividad realiza una operación de procesamiento específica. En este artículo se describe la actividad U-SQL de Data Lake Analytics que ejecuta un script de U-SQL en un servicio vinculado de proceso de Azure Data Lake Analytics.
Debe crear una cuenta de Azure Data Lake Analytics antes de crear una canalización con una actividad de U-SQL de este servicio. Para obtener más información sobre Azure Data Lake Analytics, consulte el artículo de introducción a Azure Data Lake Analytics.
Adición de una actividad de U-SQL para Azure Data Lake Analytics a una canalización con la interfaz de usuario
Para usar una actividad de U-SQL para Azure Data Lake Analytics en una canalización, complete los pasos siguientes:
Busque Data Lake en el panel Actividades de canalización y arrastre una actividad de U-SQL al lienzo de canalización.
Seleccione la nueva actividad de U-SQL en el lienzo si aún no está seleccionada.
Seleccione la pestaña Crear de ADLA para elegir o crear un nuevo servicio vinculado de Azure Data Lake Analytics que se usará para ejecutar la actividad de U-SQL.
Seleccione la pestaña Script para seleccionar o crear un servicio vinculado de almacenamiento y una ruta de acceso dentro de la ubicación de almacenamiento, que hospedará el script.
Servicio vinculado de Azure Data Lake Analytics
Cree un servicio vinculado de Azure Data Lake Analytics para vincular un servicio de proceso de Azure Data Lake Analytics a un área de trabajo de Azure Data Factory o Synapse Analytics. La actividad de U-SQL de Data Lake Analytics de la canalización hace referencia a este servicio vinculado.
En la siguiente tabla se ofrecen descripciones de las propiedades genéricas que se usan en la definición de JSON.
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type se debe establecer en: AzureDataLakeAnalytics. | Sí |
accountName | Nombre de la cuenta de Análisis de Azure Data Lake | Sí |
dataLakeAnalyticsUri | Identificador URI de Análisis de Azure Data Lake. | No |
subscriptionId | Identificador de suscripción de Azure | No |
resourceGroupName | Nombre del grupo de recursos de Azure | No |
Autenticación de entidad de servicio
El servicio vinculado de Azure Data Lake Analytics requiere una autenticación de entidad de servicio para conectarse al servicio Azure Data Lake Analytics. Para usar la autenticación de entidad de servicio, registre una entidad de aplicación en el identificador de Microsoft Entra y concédale el acceso tanto a Data Lake Analytics como a Data Lake Store que usa. Consulte Autenticación entre servicios para ver los pasos detallados. Anote los siguientes valores; los usará para definir el servicio vinculado:
- Identificador de aplicación
- Clave de la aplicación
- Id. de inquilino
Conceda permiso de entidad de servicio a su instancia de Azure Data Lake Analytics mediante el Asistente para agregar usuarios.
Para usar la autenticación de la entidad de servicio, especifique las siguientes propiedades:
Propiedad | Descripción | Obligatorio |
---|---|---|
servicePrincipalId | Especifique el id. de cliente de la aplicación. | Sí |
servicePrincipalKey | Especifique la clave de la aplicación. | Sí |
tenant | Especifique la información del inquilino (nombre de dominio o identificador de inquilino) en el que reside la aplicación. Para recuperarlo, mantenga el puntero del mouse en la esquina superior derecha de Azure Portal. | Sí |
Ejemplo: Autenticación de entidad de servicio
{
"name": "AzureDataLakeAnalyticsLinkedService",
"properties": {
"type": "AzureDataLakeAnalytics",
"typeProperties": {
"accountName": "<account name>",
"dataLakeAnalyticsUri": "<azure data lake analytics URI>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalKey": {
"value": "<service principal key>",
"type": "SecureString"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
"subscriptionId": "<optional, subscription id of ADLA>",
"resourceGroupName": "<optional, resource group name of ADLA>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Para más información sobre el servicio vinculado, consulte Servicios vinculados de Compute.
Actividad U-SQL de Análisis de Data Lake
El siguiente fragmento JSON define una canalización con una actividad U-SQL de Análisis de Data Lake. La definición de actividad tiene una referencia al servicio vinculado de Análisis de Azure Data Lake que creó anteriormente. Para ejecutar un script U-SQL de Data Lake Analytics, el servicio envía el script especificado a Data Lake Analytics y las entradas y salidas necesarias se definen en el script para que Data Lake Analytics realice la captura y resultado.
{
"name": "ADLA U-SQL Activity",
"description": "description",
"type": "DataLakeAnalyticsU-SQL",
"linkedServiceName": {
"referenceName": "<linked service name of Azure Data Lake Analytics>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"scriptLinkedService": {
"referenceName": "<linked service name of Azure Data Lake Store or Azure Storage which contains the U-SQL script>",
"type": "LinkedServiceReference"
},
"scriptPath": "scripts\\kona\\SearchLogProcessing.txt",
"degreeOfParallelism": 3,
"priority": 100,
"parameters": {
"in": "/datalake/input/SearchLog.tsv",
"out": "/datalake/output/Result.tsv"
}
}
}
En la tabla siguiente se describen los nombres y descripciones de las propiedades que son específicas de esta actividad.
Propiedad | Descripción | Obligatorio |
---|---|---|
name | Nombre de la actividad en la canalización | Sí |
description | Texto que describe para qué se usa la actividad. | No |
type | Para la actividad de U-SQL de Data Lake Analytics, el tipo de actividad es DataLakeAnalyticsU-SQL. | Sí |
linkedServiceName | Servicio vinculado a Azure Data Lake Analytics. Para obtener más información sobre este servicio vinculado, vea el artículo Compute linked services (Servicios vinculados de procesos). | Sí |
scriptPath | Ruta de acceso a la carpeta que contiene el script U-SQL. El nombre del archivo distingue mayúsculas de minúsculas. | Sí |
scriptLinkedService | Servicio vinculado que vincula la instancia de Azure Data Lake Store o Azure Storage que contiene el script | Sí |
degreeOfParallelism | Número máximo de nodos que se usará de forma simultánea para ejecutar el trabajo. | No |
priority | Determina qué trabajos de todos los están en cola deben seleccionarse para ejecutarse primero. Cuanto menor sea el número, mayor será la prioridad. | No |
parámetros | Parámetros para pasar el script de U-SQL. | No |
runtimeVersion | Versión en tiempo de ejecución del motor de U-SQL que se usará. | No |
compilationMode | Modo de compilación de U-SQL. Debe ser uno de los valores siguientes: Semantic: solo realiza comprobaciones semánticas y comprobaciones de integridad necesarias. Full: realiza la compilación completa (comprobación de sintaxis, optimización, generación de código, etc.), SingleBox: realiza la compilación completa, con la opción TargetType establecida en SingleBox. Si no se especifica ningún valor para esta propiedad, el servidor determina el modo de compilación óptimo. |
No |
Para ver la definición del script, consulte SearchLogProcessing.txt.
Script U-SQL de ejemplo
@searchlog =
EXTRACT UserId int,
Start DateTime,
Region string,
Query string,
Duration int,
Urls string,
ClickedUrls string
FROM @in
USING Extractors.Tsv(nullEscape:"#NULL#");
@rs1 =
SELECT Start, Region, Duration
FROM @searchlog
WHERE Region == "en-gb";
@rs1 =
SELECT Start, Region, Duration
FROM @rs1
WHERE Start <= DateTime.Parse("2012/02/19");
OUTPUT @rs1
TO @out
USING Outputters.Tsv(quoting:false, dateTimeFormat:null);
En el ejemplo anterior de script, la entrada y salida del script se definen en los parámetros @in y @out. El servicio pasa dinámicamente los valores de los parámetros @in y @out en el script de U-SQL usando la sección "parámetros".
También puede especificar otras propiedades como degreeOfParallelism y priority en la definición de canalización de los trabajos que se ejecutan en el servicio Azure Data Lake Analytics.
Parámetros dinámicos
En la definición de canalización de ejemplo, se asignan los parámetros in y out con valores codificados de forma rígida.
"parameters": {
"in": "/datalake/input/SearchLog.tsv",
"out": "/datalake/output/Result.tsv"
}
Es posible usar los parámetros dinámicos en su lugar. Por ejemplo:
"parameters": {
"in": "/datalake/input/@{formatDateTime(pipeline().parameters.WindowStart,'yyyy/MM/dd')}/data.tsv",
"out": "/datalake/output/@{formatDateTime(pipeline().parameters.WindowStart,'yyyy/MM/dd')}/result.tsv"
}
En este caso, los archivos de entrada se siguen tomando de la carpeta /datalake/input; los de salida se generan en la carpeta /datalake/output. Los nombres de archivo son dinámicos en función del tiempo de inicio de ventana que se pasa cuando se desencadena la canalización.
Contenido relacionado
Vea los siguientes artículos, en los que se explica cómo transformar datos de otras maneras: