Condividi tramite


Elabora i dati eseguendo script U-SQL su Azure Data Lake Analytics utilizzando Azure Data Factory e Synapse Analytics

APPLICABILE A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

Una pipeline in un'area di lavoro Azure Data Factory o Synapse Analytics elabora i dati nei servizi di archiviazione collegati usando servizi di calcolo collegati. Contiene una sequenza di attività in cui ogni attività esegue una specifica operazione di elaborazione. Questo articolo descrive l'attività U-SQL di Data Lake Analytics che esegue uno script U-SQL su un servizio di calcolo collegato Azure Data Lake Analytics.

Creare un account Azure Data Lake Analytics prima di creare una pipeline con un'attività U-SQL Data Lake Analytics. Per informazioni sulle Azure Data Lake Analytics, vedere Introduzione a Azure Data Lake Analytics.

Aggiungere un'attività U-SQL per Azure Data Lake Analytics a una pipeline con l'interfaccia utente

Per usare un'attività U-SQL per Azure Data Lake Analytics in una pipeline, seguire questa procedura:

  1. Cercare Data Lake nel riquadro Attività pipeline e trascinare un'attività U-SQL nell'area di disegno della pipeline.

  2. Selezionare la nuova attività U-SQL nell'area di disegno, se non è già selezionata.

  3. Selezionare la scheda ADLA Account per selezionare o creare un nuovo servizio collegato Azure Data Lake Analytics che verrà usato per eseguire l'attività U-SQL.

    Mostra l'interfaccia utente per un'attività U-SQL.

  4. Selezionare la scheda Script per selezionare o creare un nuovo servizio collegato di archiviazione e un percorso all'interno del percorso di archiviazione, che ospiterà lo script.

    Mostra l'interfaccia utente per la scheda Script per un'attività U-SQL.

Azure Data Lake Analytics servizio collegato

Si crea un servizio collegato Azure Data Lake Analytics per collegare un servizio di calcolo Azure Data Lake Analytics a un'area di lavoro di Azure Data Factory o Synapse Analytics. L'attività U-SQL di Data Lake Analytics nella pipeline fa riferimento a questo servizio di collegamento.

La tabella seguente fornisce le descrizioni delle proprietà generiche usate nella definizione JSON.

Proprietà Descrizione Richiesto
tipo La proprietà type deve essere impostata su AzureDataLakeAnalytics.
accountName Nome account di Azure Data Lake Analytics.
dataLakeAnalyticsUri Azure Data Lake Analytics URI. No
subscriptionId ID sottoscrizione Azure No
resourceGroupName Nome del gruppo di risorse di Azure No

Autenticazione di un'entità servizio

Il servizio collegato di Azure Data Lake Analytics richiede un'autenticazione del principal del servizio per connettersi al servizio Azure Data Lake Analytics. Per utilizzare l'autenticazione dell'entità 'service principal', registrare un'entità applicazione in Microsoft Entra ID e concedere a questa l'accesso sia al Data Lake Analytics che al Data Lake Store che utilizza. Per la procedura dettaglia, vedere Autenticazione da servizio a servizio. Prendere nota dei valori seguenti che si usano per definire il servizio collegato:

  • ID dell'applicazione
  • Chiave applicazione
  • ID del tenant

Concedere al principale di servizio l'autorizzazione all'Azure Data Lake Analytics usando la procedura guidata Aggiungi utente.

Usare l'autenticazione basata su entità servizio specificando le proprietà seguenti:

Proprietà Descrizione Richiesto
servicePrincipalId Specificare l'ID client dell'applicazione.
servicePrincipalKey Specificare la chiave dell'applicazione.
tenant Specificare le informazioni sul tenant (nome di dominio o ID tenant) in cui si trova l'applicazione. È possibile recuperarlo passando il puntatore del mouse nell'angolo superiore destro del portale di Azure.

Esempio: autenticazione basata su entità servizio

{
    "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"
        }       
    }
}

Per altre informazioni sul servizio collegato, vedere Servizi collegati di calcolo.

attività Data Lake Analytics U-SQL

Il frammento JSON seguente definisce una pipeline con un'attività U-SQL Data Lake Analytics. La definizione dell'attività ha un riferimento al servizio collegato Azure Data Lake Analytics creato in precedenza. Per eseguire uno script U-SQL Data Lake Analytics, il servizio invia lo script specificato al Data Lake Analytics e gli input e gli output necessari vengono definiti nello script per Data Lake Analytics per recuperare e restituire l'output.

{
    "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"
        }
    }   
}

Nella tabella seguente vengono descritti i nomi e le descrizioni delle proprietà specifiche per questa attività.

Proprietà Descrizione Richiesto
nome Nome dell'attività nella pipeline
descrizione Testo che descrive l'attività. No
tipo Per Data Lake Analytics'attività U-SQL, il tipo di attività è DataLakeAnalyticsU-SQL.
nomeServizioCollegato Servizio collegato a Azure Data Lake Analytics. Per informazioni su questo servizio collegato, vedere l'articolo Servizi collegati di calcolo.
scriptPath Percorso della cartella contenente lo script U-SQL. Il nome del file distingue tra maiuscole e minuscole.
scriptLinkedService Servizio collegato che collega il Azure Data Lake Store o Archiviazione di Azure che contiene lo script
gradoDiParallelismo Il numero massimo di nodi usati contemporaneamente per eseguire il processo. No
priority Determina quali lavori tra tutti quelli in coda devono essere selezionati per essere eseguiti per primi. Più è basso il numero, maggiore sarà la priorità. No
parametri Parametri da passare allo script U-SQL. No
runtimeVersion Versione di runtime del motore di U-SQL da usare. No
modalità di compilazione

Modalità di compilazione di U-SQL. Deve corrispondere a uno dei valori seguenti: Semantic: consente di eseguire solo controlli semantici e i controlli di integrità necessari. Full: consente di eseguire una compilazione completa, inclusi il controllo della sintassi, l'ottimizzazione, la generazione di codice e così via. SingleBox: consente di eseguire una compilazione completa usando SingleBox come impostazione di TargetType. Se per questa proprietà non si specifica alcun valore, il server determina la modalità di compilazione ottimale.

No

Per la definizione dello script, vedere SearchLogProcessing.txt.

Script U-SQL di esempio

@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);

Nell'esempio di script precedente, l'input e l'output dello script vengono definiti nei parametri @in e @out . I valori per i parametri @in e @out nello script U-SQL vengono passati dinamicamente dal servizio usando la sezione 'parameters'.

È possibile specificare altre proprietà, ad esempio degreeOfParallelism e priorità, nonché nella definizione della pipeline per i processi eseguiti nel servizio Azure Data Lake Analytics.

Parametri dinamici

Nell'esempio di definizione di pipeline, i parametri in e out vengono assegnati con valori predefiniti.

"parameters": {
    "in": "/datalake/input/SearchLog.tsv",
    "out": "/datalake/output/Result.tsv"
}

È anche possibile usare parametri dinamici. Ad esempio:

"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"
}

In questo caso, i file di input vengono prelevati dalla cartella /datalake/input e i file di output vengono generati nella cartella /datalake/output. I nomi dei file sono dinamici in base all'ora di inizio della finestra passata quando viene attivata la pipeline.

Vedere gli articoli seguenti, che illustrano altre modalità di trasformazione dei dati: