Partilhar via


Processe dados executando scripts U-SQL no Azure Data Lake Analytics com Azure Data Factory e Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.

Um pipeline num espaço de trabalho Azure Data Factory ou Synapse Analytics processa dados em serviços de armazenamento associados utilizando serviços de computação associados. Ele contém uma sequência de atividades onde cada atividade executa uma operação de processamento específica. Este artigo descreve a Atividade Data Lake Analytics U-SQL que executa um script U-SQL em um serviço associado de Azure Data Lake Analytics.

Crie uma conta Azure Data Lake Analytics antes de criar um pipeline com uma Data Lake Analytics U-SQL Activity. Para saber mais sobre Azure Data Lake Analytics, veja Comece com Azure Data Lake Analytics.

Adicionar uma atividade U-SQL do Azure Data Lake Analytics num pipeline com UI

Para usar uma atividade U-SQL para Azure Data Lake Analytics num pipeline, complete os seguintes passos:

  1. Procure por Data Lake no painel de Atividades do pipeline e arraste uma atividade U-SQL para o canvas do pipeline.

  2. Selecione a nova atividade U-SQL na tela, se ainda não estiver selecionada.

  3. Selecione o separador ADLA Account para selecionar ou criar um novo serviço ligado Azure Data Lake Analytics que será usado para executar a atividade U-SQL.

    Mostra a interface do usuário para uma atividade U-SQL.

  4. Selecione a guia Script para selecionar ou criar um novo serviço vinculado de armazenamento e um caminho dentro do local de armazenamento, que hospedará o script.

    Mostra a interface do usuário da guia Script para uma atividade U-SQL.

Serviço vinculado do Azure Data Lake Analytics

Você cria um serviço vinculado Azure Data Lake Analytics para ligar um serviço de computação Azure Data Lake Analytics a um espaço de trabalho Azure Data Factory ou Synapse Analytics. A atividade U-SQL da Data Lake Analytics no pipeline refere-se a este serviço ligado.

A tabela a seguir fornece descrições para as propriedades genéricas usadas na definição JSON.

Propriedade Descrição Obrigatório
tipo A propriedade type deve ser definida como: AzureDataLakeAnalytics. Sim
nomedaconta; Nome da Conta do Azure Data Lake Analytics. Sim
dataLakeAnalyticsUri Azure Data Lake Analytics URI. Não
subscriptionId ID de subscrição do Azure Não
resourceGroupName nome do grupo de recursos do Azure Não

Autenticação do principal de serviço

O serviço vinculado Azure Data Lake Analytics requer uma autenticação de entidade de serviço para se ligar ao serviço Azure Data Lake Analytics. Para utilizar a autenticação do principal de serviço, registe uma entidade de aplicação no Microsoft Entra ID e conceda-lhe acesso tanto ao Data Lake Analytics como ao Data Lake Store que ele utiliza. Para obter etapas detalhadas, consulte Autenticação de serviço a serviço. Anote os seguintes valores, que você usa para definir o serviço vinculado:

  • ID da aplicação
  • Chave de aplicação
  • ID de Locatário

Conceda permissão de principal de serviço ao seu Azure Data Lake Analytics usando o Add User Wizard.

Use a autenticação de principal de serviço especificando as seguintes propriedades:

Propriedade Descrição Obrigatório
servicePrincipalId Especifique o ID do cliente do aplicativo. Sim
servicePrincipalKey Especifique a chave do aplicativo. Sim
locatário Especifique as informações do locatário (nome de domínio ou ID do locatário) sob as quais seu aplicativo reside. Pode recuperá-lo pairando o rato no canto superior direito do portal do Azure. Sim

Exemplo: autenticação do principal de serviço

{
    "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 saber mais sobre o serviço vinculado, consulte Serviços vinculados de computação.

Data Lake Analytics Atividade de U-SQL

O seguinte excerto JSON define uma linha de dados com uma atividade U-SQL de Data Lake Analytics. A definição de atividade tem uma referência ao serviço ligado Azure Data Lake Analytics que criou anteriormente. Para executar um script Data Lake Analytics U-SQL, o serviço submete o script que especificaste ao Data Lake Analytics, e as entradas e saídas necessárias são definidas no script para que a Data Lake Analytics obtenha e produza.

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

A tabela a seguir descreve nomes e descrições de propriedades específicas para essa atividade.

Propriedade Descrição Obrigatório
nome Nome da atividade no processo de desenvolvimento Sim
descrição Texto que descreve o que a atividade faz. Não
tipo Para Data Lake Analytics atividade U-SQL, o tipo de atividade é DataLakeAnalyticsU-SQL. Sim
nome do serviço ligado Serviço ligado ao Azure Data Lake Analytics. Para saber mais sobre esse serviço vinculado, consulte o artigo Serviços vinculados de computação. Sim
scriptPath Caminho para a pasta que contém o script U-SQL. O nome do arquivo diferencia maiúsculas de minúsculas. Sim
scriptLinkedService Serviço ligado que liga o Azure Data Lake Store ou Armazenamento do Azure que contém o script Sim
graudeparalelismo O número máximo de nós usados simultaneamente para executar o trabalho. Não
prioridade Determina quais tarefas na fila de espera devem ser selecionadas para serem executadas primeiro. Quanto menor o número, maior a prioridade. Não
parâmetros Parâmetros para serem passados para o script U-SQL. Não
runtimeVersion Versão de tempo de execução do mecanismo U-SQL a ser usada. Não
modo de compilação

Modo de compilação do U-SQL. Deve ser um destes valores: Semântico: Execute apenas verificações semânticas e verificações de sanidade necessárias, Completo: Execute a compilação completa, incluindo verificação de sintaxe, otimização, geração de código, etc., SingleBox: Execute a compilação completa, com a configuração TargetType como SingleBox. Se você não especificar um valor para essa propriedade, o servidor determinará o modo de compilação ideal.

Não

Consulte SearchLogProcessing.txt para a definição de script.

Exemplo de script U-SQL

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

No exemplo de script acima, a entrada e saída para o script é definida em @in e @out parâmetros. Os valores para parâmetros @in e @out no script U-SQL são passados dinamicamente pelo serviço usando a seção 'parameters'.

Pode especificar outras propriedades como degreeOfParallelism e priority também na definição do pipeline para os jobs que correm no serviço Azure Data Lake Analytics.

Parâmetros dinâmicos

Na definição de pipeline de exemplo, os parâmetros de entrada e saída são atribuídos com valores codificados.

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

Em vez disso, é possível usar parâmetros dinâmicos. Por exemplo:

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

Neste caso, os arquivos de entrada ainda são coletados da pasta /datalake/input e os arquivos de saída são gerados na pasta /datalake/output. Os nomes dos arquivos são dinâmicos com base na hora de início da janela que é passada ao o pipeline ser acionado.

Consulte os seguintes artigos que explicam como transformar dados de outras maneiras: