Compartilhar via


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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Data Factory no Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA interna e novos recursos. Se você não estiver familiarizado com a integração de dados, comece com Fabric Data Factory. As cargas de trabalho existentes do ADF podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.

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

Crie uma conta do Azure Data Lake Analytics antes de criar um pipeline com uma atividade de U-SQL do Data Lake Analytics. Para saber mais sobre Azure Data Lake Analytics, consulte Get iniciado com Azure Data Lake Analytics.

Adicionar uma atividade U-SQL do Azure Data Lake Analytics a um pipeline com interface do usuário

Para usar uma atividade U-SQL para Azure Data Lake Analytics em um pipeline, conclua as seguintes etapas:

  1. Pesquise Data Lake no painel Atividades do pipeline e arraste uma atividade U-SQL para a tela do pipeline.

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

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

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

  4. Selecione a guia Script para selecionar ou criar um 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 do U-SQL.

Azure Data Lake Analytics serviço vinculado

Você cria um serviço vinculado Azure Data Lake Analytics para vincular um serviço de computação Azure Data Lake Analytics a um workspace do Azure Data Factory ou do Synapse Analytics. A atividade U-SQL do Data Lake Analytics no pipeline refere-se a este serviço vinculado.

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

Propriedade Descrição Obrigatório
tipo A propriedade de tipo deve ser configurada como: AzureDataLakeAnalytics. Sim
accountName Nome da Conta do Azure Data Lake Analytics. Sim
dataLakeAnalyticsUri Azure Data Lake Analytics URI. Não
subscriptionId ID da assinatura do Azure Não
resourceGroupName Nome do grupo de recursos do Azure Não

Autenticação de entidade de serviço

O serviço vinculado do Azure Data Lake Analytics requer uma autenticação de entidade de serviço para conectar-se ao serviço do Azure Data Lake Analytics. Para usar a autenticação da entidade de serviço, registre uma entidade de aplicativo no Microsoft Entra ID e conceda acesso ao Data Lake Analytics e ao Data Lake Store que ele usa. Para encontrar as etapas detalhadas, consulte Autenticação de serviço a serviço. Anote os seguintes valores, que são usados para definir o serviço vinculado:

  • ID do aplicativo
  • Chave do aplicativo
  • ID do locatário

Conceder permissão de entidade de serviço para o seu Azure Data Lake Analytics usando o Assistente de Adição de Usuário.

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

Propriedade Descrição Obrigatório
servicePrincipalId Especifique a ID do cliente do aplicativo. Sim
servicePrincipalKey Especifique a chave do aplicativo. Sim
tenant Especifique as informações do locatário (nome de domínio ou ID do locatário) onde seu aplicativo está. Você pode recuperá-lo focalizando o mouse no canto superior direito do portal Azure. Sim

Exemplo: Autenticação de entidade 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 Compute linked services (Serviços de computação vinculados).

Atividade de Análise de Dados do Data Lake com U-SQL

O trecho de JSON a seguir define um pipeline com uma atividade U-SQL do Data Lake Analytics. A definição de atividade tem uma referência ao serviço vinculado Azure Data Lake Analytics criado anteriormente. Para executar um script U-SQL no Data Lake Analytics, o serviço envia o script especificado para o sistema, e as entradas e saídas necessárias são definidas no script para que o Data Lake Analytics possa buscá-las e gerá-las.

{
    "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 os nomes e as descrições de propriedades que são específicas a esta atividade.

Propriedade Descrição Obrigatório
nome Nome da atividade no pipeline 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
nomeDoServiçoVinculado Serviço vinculado ao Azure Data Lake Analytics. Para saber mais sobre esse serviço vinculado, consulte o artigo Compute linked services (Serviços de computação vinculados). 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 vinculado que vincula o Azure Data Lake Store ou Armazenamento do Azure que contém o script Sim
degreeOfParallelism O número máximo de nós usados simultaneamente para executar o trabalho. Não
prioridade Determina quais trabalhos de todos os que estão na fila devem ser selecionados para serem executados primeiro. Quanto menor o número, maior a prioridade. Não
parâmetros Parâmetros para passar para o script U-SQL. Não
runtimeVersion Versão de runtime do mecanismo U-SQL a ser usado. Não
ModoCompilacao

Modo de compilação do U-SQL. Deve ser um destes valores: Semantic: realiza apenas as verificações de semântica e as verificações de integridade necessárias; Full: realiza a compilação completa, incluindo verificação de sintaxe, otimização, geração de código, etc.; SingleBox: executa 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 ver a definição do 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 a saída do script são definidas nos parâmetros @in e @out. Os valores dos parâmetros @in and @out no script U-SQL são passados dinamicamente pelo serviço usando a seção 'parâmetros'.

Você pode especificar outras propriedades, como degreeOfParallelism e prioridade, na definição de seu pipeline para os trabalhos executados no Azure Data Lake Analytics.

Parâmetros dinâmicos

Na definição de pipeline de exemplo, os parâmetros "in" e "out" são atribuídos com valores codificados de forma fixa.

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

É possível usar parâmetros dinâmicos em vez disso. 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"
}

Nesse caso, os arquivos de entrada ainda são obtidos da pasta /datalake/input e os arquivos de saída são gerados na pasta /datalake/output. Os nomes de arquivo são dinâmicos com base na hora de início de janela que está sendo passada quando o pipeline é disparado.

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