Utilizar Azure Data Factory atividade de comandos para executar comandos de gestão de Data Explorer do Azure
Azure Data Factory (ADF) é um serviço de integração de dados baseado na cloud que lhe permite realizar uma combinação de atividades nos dados. Utilize o ADF para criar fluxos de trabalho baseados em dados para orquestrar e automatizar o movimento de dados e a transformação de dados. A atividade do Comando Data Explorer do Azure no Azure Data Factory permite-lhe executar comandos de gestão de Data Explorer do Azure num fluxo de trabalho do ADF. Este artigo ensina-o a criar um pipeline com uma atividade de pesquisa e a atividade ForEach que contém uma atividade de comando do Azure Data Explorer.
Pré-requisitos
- Uma subscrição do Azure. Crie uma conta gratuita do Azure.
- Um cluster e uma base de dados do Azure Data Explorer. Criar um cluster e uma base de dados.
- Uma origem de dados.
- Uma fábrica de dados. Criar uma fábrica de dados.
Criar um novo pipeline
Selecione a ferramenta de lápis Autor .
Crie um novo pipeline ao selecionar + e, em seguida, selecione Pipeline no menu pendente.
Criar uma atividade de Pesquisa
Uma atividade de pesquisa pode obter um conjunto de dados de quaisquer origens de dados suportadas Azure Data Factory. O resultado da atividade de Pesquisa pode ser utilizado numa atividade ForEach ou outra.
No painel Atividades , em Geral, selecione a atividade Pesquisa . Arraste e largue-a na tela principal à direita.
A tela contém agora a atividade pesquisa que criou. Utilize os separadores abaixo da tela para alterar quaisquer parâmetros relevantes. Em Geral, mude o nome da atividade.
Dica
Clique na área de tela vazia para ver as propriedades do pipeline. Utilize o separador Geral para mudar o nome do pipeline. O nosso pipeline tem o nome pipeline-4-docs.
Criar um conjunto de dados do Azure Data Explorer na atividade de pesquisa
Em Definições, selecione o conjunto de dados do Azure Data Explorer Origem pré-criado ou selecione + Novo para criar um novo conjunto de dados.
Selecione o conjunto de dados do Azure Data Explorer (Kusto) na janela Novo Conjunto de Dados. Selecione Continuar para adicionar o novo conjunto de dados.
Os novos parâmetros do conjunto de dados do Azure Data Explorer estão visíveis nas Definições. Para atualizar os parâmetros, selecione Editar.
O novo separador AzureDataExplorerTable é aberto na tela principal.
- Selecione Geral e edite o nome do conjunto de dados.
- Selecione Ligação para editar as propriedades do conjunto de dados.
- Selecione o serviço Ligado no menu pendente ou selecione + Novo para criar um novo serviço ligado.
Ao criar um novo serviço ligado, é aberta a página Novo Serviço Ligado (Azure Data Explorer):
- Selecione Nome para o serviço ligado do Azure Data Explorer. Adicione Descrição , se necessário.
- Em Ligar através do runtime de integração, altere as definições atuais, se necessário.
- No Método de seleção de conta, selecione o cluster com um de dois métodos:
- Selecione o botão de opção Da subscrição do Azure e selecione a sua conta de subscrição do Azure . Em seguida, selecione o Cluster. Tenha em atenção que o menu pendente listará apenas os clusters que pertencem ao utilizador.
- Em vez disso, selecione Introduzir manualmente o botão de opção e introduza o ponto final (URL do cluster).
- Especifique o Inquilino.
- Introduza ID do principal de serviço. Este valor pode ser encontrado no portal do Azure em ID da Aplicação de DescriçãoGeral> de Registos de Aplicações >(cliente). O principal tem de ter as permissões adequadas, de acordo com o nível de permissão exigido pelo comando que está a ser utilizado.
- Selecione o botão Chave principal de serviço e introduza Chave principal de serviço.
- Selecione a base de dados no menu pendente. Em alternativa, selecione Editar caixa de verificação e introduza o nome da base de dados.
- Selecione Testar Ligação para testar a ligação de serviço ligado que criou. Se conseguir ligar à configuração, será apresentada uma marca de verificação verde Ligação com êxito .
- Selecione Concluir para concluir a criação do serviço ligado.
Depois de configurar um serviço ligado, em Ligação AzureDataExplorerTable>, adicione o nome da tabela. Selecione Pré-visualizar dados para se certificar de que os dados são apresentados corretamente.
O conjunto de dados já está pronto e pode continuar a editar o pipeline.
Adicionar uma consulta à sua atividade de pesquisa
Em pipeline-4-docs>, as definições adicionam uma consulta na caixa de texto Consulta , por exemplo:
ClusterQueries | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb") | summarize count() by Database
Altere as propriedades Tempo limite da Consulta ou Sem truncagem e Apenas primeira linha , conforme necessário. Neste fluxo, mantemos o tempo limite predefinido da Consulta e desmarcamos as caixas de verificação.
Criar uma atividade de For-Each
A atividade For-Each é utilizada para iterar sobre uma coleção e executar atividades especificadas num ciclo.
Agora, adicione uma atividade For-Each ao pipeline. Esta atividade processará os dados devolvidos da atividade de Pesquisa.
No painel Atividades , em Iteração & Condicionais, selecione a atividade ForEach e arraste-a e largue-a na tela.
Desenhe uma linha entre a saída da atividade de Pesquisa e a entrada da atividade ForEach na tela para as ligar.
Selecione a atividade ForEach na tela. No separador Definições abaixo:
Verifique a caixa de verificação Sequencial para obter um processamento sequencial dos resultados da Pesquisa ou deixe-a desmarcada para criar um processamento paralelo.
Defina Contagem de lotes.
Em Itens, forneça a seguinte referência ao valor de saída: @activity('Lookup1').output.value
Criar uma atividade do Comando Data Explorer do Azure na atividade ForEach
Faça duplo clique na atividade ForEach na tela para abri-la numa nova tela para especificar as atividades no ForEach.
No painel Atividades, em Data Explorer do Azure, selecione a atividade comando do Azure Data Explorer e arraste-a e largue-a na tela.
No separador Ligação , selecione o mesmo Serviço Ligado criado anteriormente.
No separador Comando , forneça o seguinte comando:
.export async compressed into csv h"http://<storageName>.blob.core.windows.net/data/ClusterQueries;<storageKey>" with ( sizeLimit=100000, namePrefix=export ) <| ClusterQueries | where Database == "@{item().Database}"
O Comando instrui o Azure Data Explorer a exportar os resultados de uma determinada consulta para um armazenamento de blobs, num formato comprimido. É executado de forma assíncrona (utilizando o modificador assíncrono). A consulta aborda a coluna da base de dados de cada linha no resultado da atividade pesquisa. O tempo limite do Comando pode ficar inalterado.
Nota
A atividade de comandos tem os seguintes limites:
- Limite de tamanho: tamanho de resposta de 1 MB
- Limite de tempo: 20 minutos (predefinição), 1 hora (máximo).
- Se necessário, pode acrescentar uma consulta ao resultado com AdminThenQuery, para reduzir o tamanho/tempo resultante.
Agora o pipeline está pronto. Pode voltar à vista de pipeline principal ao clicar no nome do pipeline.
Selecione Depurar antes de publicar o pipeline. O progresso do pipeline pode ser monitorizado no separador Saída .
Pode Publicar Tudo e, em seguida, Adicionar acionador para executar o pipeline.
Saídas do comando de gestão
A estrutura da saída da atividade de comandos é detalhada abaixo. Este resultado pode ser utilizado pela próxima atividade no pipeline.
Valor devolvido de um comando de gestão não assíncrono
Num comando de gestão não assíncrona, a estrutura do valor devolvido é semelhante à estrutura do resultado da atividade lookup. O count
campo indica o número de registos devolvidos. Um campo value
de matriz fixo contém uma lista de registos.
{
"count": "2",
"value": [
{
"ExtentId": "1b9977fe-e6cf-4cda-84f3-4a7c61f28ecd",
"ExtentSize": 1214.0,
"CompressedSize": 520.0
},
{
"ExtentId": "b897f5a3-62b0-441d-95ca-bf7a88952974",
"ExtentSize": 1114.0,
"CompressedSize": 504.0
}
]
}
Valor devolvido de um comando de gestão assíncrona
Num comando de gestão assíncrona, a atividade consulta a tabela de operações em segundo plano até que a operação assíncrona seja concluída ou exceda o tempo limite. Por conseguinte, o valor devolvido conterá o resultado dessa .show operations OperationId
propriedade OperationId . Verifique os valores das propriedades Estado e Estado para verificar a conclusão bem-sucedida da operação.
{
"count": "1",
"value": [
{
"OperationId": "910deeae-dd79-44a4-a3a2-087a90d4bb42",
"Operation": "TableSetOrAppend",
"NodeId": "",
"StartedOn": "2019-06-23T10:12:44.0371419Z",
"LastUpdatedOn": "2019-06-23T10:12:46.7871468Z",
"Duration": "00:00:02.7500049",
"State": "Completed",
"Status": "",
"RootActivityId": "f7c5aaaf-197b-4593-8ba0-e864c94c3c6f",
"ShouldRetry": false,
"Database": "MyDatabase",
"Principal": "<some principal id>",
"User": "<some User id>"
}
]
}