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
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Um pipeline em um espaço de trabalho do Azure Data Factory ou do Synapse Analytics processa dados em serviços de armazenamento vinculados usando serviços de computação vinculados. Ele contém uma sequência de atividades onde 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 vinculado de computação do Azure Data Lake Analytics.
Crie uma conta do Azure Data Lake Analytics antes de criar um pipeline com uma Atividade U-SQL do Data Lake Analytics. Para saber mais sobre o Azure Data Lake Analytics, consulte Introdução ao Azure Data Lake Analytics.
Adicionar uma atividade U-SQL para o Azure Data Lake Analytics a um pipeline com interface do usuário
Para usar uma atividade U-SQL para o Azure Data Lake Analytics em um pipeline, conclua as seguintes etapas:
Procure Data Lake no painel Atividades do pipeline e arraste uma atividade U-SQL para a tela do pipeline.
Selecione a nova atividade U-SQL na tela, se ainda não estiver selecionada.
Selecione a guia Conta ADLA para selecionar ou criar um novo serviço vinculado do Azure Data Lake Analytics que será usado para executar a atividade U-SQL.
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.
Serviço vinculado do Azure Data Lake Analytics
Você cria um serviço vinculado do Azure Data Lake Analytics para vincular um serviço de computação do Azure Data Lake Analytics a um espaço de trabalho do Azure Data Factory ou Synapse Analytics. A atividade U-SQL do Data Lake Analytics no pipeline refere-se a esse serviço vinculado.
A tabela a seguir fornece descrições para as propriedades genéricas usadas na definição JSON.
Property | Descrição | Obrigatório |
---|---|---|
type | A propriedade type deve ser definida como: AzureDataLakeAnalytics. | Sim |
nomedaconta; | Nome da conta do Azure Data Lake Analytics. | Sim |
dataLakeAnalyticsUri | URI do Azure Data Lake Analytics. | 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 do Azure Data Lake Analytics requer uma autenticação da entidade de serviço para se conectar ao serviço Azure Data Lake Analytics. Para usar a autenticação da entidade de serviço, registre uma entidade de aplicativo na ID do Microsoft Entra e conceda a ela o acesso à Análise Data Lake e ao Repositório Data Lake que ela usa. 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 Inquilino do
Conceda permissão de entidade de serviço ao Azure Data Lake Analytics usando o Assistente para Adicionar Usuário.
Use a autenticação da entidade de serviço especificando as seguintes propriedades:
Property | Descrição | Obrigatório |
---|---|---|
servicePrincipalId | Especifique o 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) sob as quais seu aplicativo reside. Você pode recuperá-lo passando o mouse no canto superior direito do portal do Azure. | Sim |
Exemplo: autenticação da 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 Serviços vinculados de computação.
Atividade de U-SQL do Data Lake Analytics
O trecho 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 do Azure Data Lake Analytics criado anteriormente. Para executar um script U-SQL do Data Lake Analytics, o serviço envia o script especificado para o Data Lake Analytics e as entradas e saídas necessárias são definidas no script para o Data Lake Analytics buscar e produzir.
{
"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.
Property | Descrição | Obrigatório |
---|---|---|
nome | Nome da atividade no pipeline | Sim |
descrição | Texto descrevendo o que a atividade faz. | Não |
tipo | Para a atividade U-SQL do Data Lake Analytics, o tipo de atividade é DataLakeAnalyticsU-SQL. | Sim |
linkedServiceName | Serviço vinculado 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 vinculado que vincula o Repositório Azure Data Lake ou o 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 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 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'.
Você pode especificar outras propriedades, como degreeOfParallelism e priority, bem como em sua definição de pipeline para os trabalhos executados 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 de arquivo são dinâmicos com base na hora de início da janela que está sendo passada quando o pipeline é acionado.
Conteúdos relacionados
Consulte os seguintes artigos que explicam como transformar dados de outras maneiras: