Compartir a través de


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.

Cree una cuenta de Azure Data Lake Analytics antes de crear una pipelina con una actividad U-SQL de Data Lake Analytics. Para obtener más información sobre Azure Data Lake Analytics, consulte el artículo de introducción a Azure Data Lake Analytics.

Agregar una actividad de U-SQL para Azure Data Lake Analytics a una canalización mediante la interfaz de usuario

Para usar una actividad de U-SQL para Azure Data Lake Analytics en una canalización, complete los pasos siguientes:

  1. Busque Data Lake en el panel Actividades de canalización y arrastre una actividad de U-SQL al lienzo de canalización.

  2. Seleccione la nueva actividad de U-SQL en el lienzo si aún no está seleccionada.

  3. Seleccione la pestaña Cuenta de ADLA para elegir o crear un nuevo servicio enlazado de Azure Data Lake Analytics que se usará para ejecutar la actividad de U-SQL.

    Muestra la UI de la actividad de U-SQL.

  4. 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.

    Muestra la interfaz de usuario de la pestaña Script de una actividad de U-SQL.

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 U-SQL de Data Lake Analytics en la canalización hace referencia a este servicio asociado.

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
tipo La propiedad type se debe establecer en: AzureDataLakeAnalytics.
accountName Nombre de la cuenta de Análisis de Azure Data Lake
dataLakeAnalyticsUri URI de Azure Data Lake Analytics. 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 principal de servicio, registre una entidad de aplicación en Microsoft Entra ID y concédale acceso tanto a Data Lake Analytics como al almacén de Data Lake que utiliza. 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 principal de servicio a 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.
servicePrincipalKey Especifique la clave de la aplicación.
tenant Especifique la información del tenant (nombre de dominio o identificador de tenant) donde se encuentra la aplicación. Para recuperarlo, mantenga el puntero del mouse en la esquina superior derecha de Azure Portal.

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 de U-SQL para Análisis de Data Lake

El siguiente fragmento JSON define una canalización con una actividad U-SQL de Analytics 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
nombre Nombre de la actividad en la canalización
descripción Texto que describe para qué se usa la actividad. No
tipo Para la actividad de U-SQL de Data Lake Analytics, el tipo de actividad es DataLakeAnalyticsU-SQL.
nombreDelServicioVinculado Servicio vinculado a Azure Data Lake Analytics. Para obtener más información sobre este servicio vinculado, consulte el artículo Servicios vinculados de cómputo.
scriptPath Ruta de acceso a la carpeta que contiene el script U-SQL. El nombre del archivo es sensible a mayúsculas y minúsculas.
scriptLinkedService Servicio vinculado que vincula la instancia de Azure Data Lake Store o Azure Storage que contiene el script
gradoDeParalelismo Número máximo de nodos que se usará de forma simultánea para ejecutar el trabajo. No
prioridad Determina qué trabajos de todos los que 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 al 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 horario de inicio de la ventana que se proporciona cuando se activa la canalización.

Vea los siguientes artículos, en los que se explica cómo transformar datos de otras maneras: