Compartilhar via


Usar a atividade de comando do Azure Data Factory para executar comandos de gerenciamento do Azure Data Explorer

O AdF (Azure Data Factory) é um serviço de integração de dados baseado em nuvem que você pode usar para executar uma combinação de atividades nos dados. Use o ADF para criar fluxos de trabalho controlados por dados para orquestrar e automatizar a movimentação e a transformação de dados. A atividade Comando do Azure Data Explorer no Azure Data Factory permite que você execute comandos de gerenciamento do Azure Data Explorer em um fluxo de trabalho do ADF. Este artigo mostra como criar um pipeline com uma atividade de consulta e uma atividade ForEach, contendo uma atividade de comando do Azure Data Explorer.

Pré-requisitos

Criar um novo fluxo de trabalho

  1. Selecione a ferramenta de lápis Autor.

  2. Crie um pipeline selecionando + e escolha Pipeline na lista suspensa.

    Criação de um pipeline.

Criar uma atividade de pesquisa

Uma atividade de pesquisa pode recuperar um conjunto de dados de qualquer fonte de dados com suporte do Azure Data Factory. Você pode usar a saída da atividade de Lookup em um ForEach ou outra atividade.

  1. No painel Atividades, em Geral, selecione a atividade de Pesquisa. Arraste-a e solte-a na tela principal à direita.

    Seleção da atividade de pesquisa.

  2. A tela agora contém a atividade de pesquisa que você criou. Use as guias sob o quadro para alterar os parâmetros relevantes. Em Geral, renomeie a atividade.

    Edição da atividade de consulta.

    Dica

    Selecione a área de tela vazia para exibir as propriedades do pipeline. Use a guia Geral para renomear o pipeline. O pipeline é denominado pipeline-4-docs.

Criar um conjunto de dados do Azure Data Explorer na atividade de pesquisa

  1. Em Configurações, selecione o Conjunto de dados de origem do Azure Data Explorer criado previamente ou escolha + Novo para criar um conjunto de dados.

    Adição do conjunto de dados nas configurações de pesquisa.

  2. Selecione o conjunto de dados Azure Data Explorer (Kusto) na janela Novo Conjunto de Dados. Escolha Continuar para adicionar o novo conjunto de dados.

    Seleção do novo conjunto de dados.

  3. Os novos parâmetros do conjunto de dados do Azure Data Explorer podem ser vistos em Configurações. Para atualizar os parâmetros, selecione Editar.

    Configurações de pesquisa com o conjunto de dados do Azure Data Explorer.

  4. A nova guia AzureDataExplorerTable será aberta na tela principal.

    • Selecione Geral e edite o nome do conjunto de dados.
    • Escolha Conexão para editar as propriedades do conjunto de dados.
    • Selecione o serviço Vinculado na lista suspensa ou selecione + Novo para criar um novo serviço vinculado.

    Edição das propriedades do conjunto de dados do Azure Data Explorer.

  5. Quando você criar um serviço vinculado, a página Novo Serviço Vinculado (Azure Data Explorer) será aberta:

     Novo serviço vinculado do Azure Data Explorer.

    • Selecione o Nome do serviço vinculado do Azure Data Explorer. Adicione uma Descrição, se necessário.
    • Em Conectar-se por meio do runtime de integração, altere as configurações atuais, se necessário.
    • Em Método de seleção de conta, selecione o cluster usando um dos dois métodos:
      • Escolha o botão de rádio Da assinatura do Azure e selecione sua conta de assinatura do Azure. Em seguida, escolha o Cluster. A lista suspensa lista apenas os clusters que pertencem a você.
      • Em vez disso, selecione o botão de rádio Inserir manualmente e insira o seu Endpoint (URL do cluster).
    • Especifique o Inquilino.
    • Insira o ID do principal de serviço. Localize esse valor no portal do Azure em Registros de Aplicativos>Visão Geral>ID do Aplicativo (cliente). A entidade deve ter as permissões adequadas, de acordo com o nível de permissão exigido pelo comando em uso.
    • Selecione o botão Chave da Entidade de Serviço e insira a Chave da Entidade de Serviço.
    • Escolha o Banco de Dados no menu suspenso. Como alternativa, marque a caixa de seleção Editar e insira o nome do banco de dados.
    • Selecione Testar Conectividade para testar a conexão de serviço vinculado que você criou. Se você puder se conectar ao seu sistema, uma marca de seleção verde Conexão bem-sucedida será exibida.
    • Escolha Concluir para concluir a criação do serviço vinculado.
  6. Depois de configurar um serviço vinculado, em AzureDataExplorerTableConexão, adicione o nome da tabela. Selecione Visualizar dados para verificar se os dados são apresentados corretamente.

    Seu conjunto de dados está pronto e você pode continuar editando seu pipeline.

Adicionar uma consulta à sua atividade de pesquisa

  1. NasConfigurações>, adicione uma consulta na caixa de texto Consulta, por exemplo:

    ClusterQueries
    | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb")
    | summarize count() by Database
    
  2. Altere as propriedades de Tempo limite da consulta ou Sem truncamento e de Somente primeira linha, conforme necessário. Nesse fluxo, mantenha o tempo limite de consulta padrão e desmarque as caixas de seleção.

    Configurações finais da atividade de pesquisa.

Criar uma atividade For-Each

Use a atividade For-Each para iterar sobre uma coleção e executar atividades especificadas em um loop.

  1. Adicione uma atividade de For-Each ao pipeline. Essa atividade processa os dados retornados da atividade Pesquisa.

    • No painel Atividades , em Iteração &condicionais, selecione a atividade ForEach . Arraste e solte-o na tela.

    • Desenhe uma linha entre a saída da atividade de pesquisa e a entrada da atividade ForEach na tela para conectá-las.

      Atividade ForEach.

  2. Escolha a atividade ForEach na tela. Na guia Configurações:

    • Marque a caixa de seleção Sequencial para obter um processamento sequencial dos resultados da pesquisa ou mantenha-a desmarcada para criar um processamento paralelo.

    • Defina a Contagem de lotes.

    • Em Itens, forneça a seguinte referência ao valor de saída: @activity('Lookup1').output.value

      Configurações da atividade ForEach.

Criar uma atividade de Comando do Azure Data Explorer dentro da atividade ForEach

  1. Clique duas vezes na atividade ForEach na tela para abri-la em uma nova tela. Especifique as atividades no ForEach.

  2. No painel Atividades, no Azure Data Explorer, selecione a atividade de Comando do Azure Data Explorer e arraste-a e solte-a na tela.

    Atividade de comando do Azure Data Explorer.

  3. Na guia Conexão , selecione o mesmo Serviço Vinculado criado anteriormente.

    Guia de Conexão da atividade do comando no Azure Data Explorer.

  4. Na guia 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 consulta especificada para um armazenamento de blobs, em um formato compactado. Ele é executado de maneira assíncrona (usando o modificador assíncrono). A consulta aborda a coluna de banco de dados de cada linha no resultado da atividade de pesquisa. Você pode deixar o Tempo Limite de Comando inalterado.

    Atividade de comando.

    Observação

    A atividade de comando tem os seguintes limites:

    • Limite de tamanho: tamanho de resposta de 1 MB
    • Limite de tempo: 20 minutos (padrão), 1 hora (máximo).
    • Se necessário, você pode acrescentar uma consulta ao resultado usando AdminThenQuery, para reduzir o tamanho ou o tempo resultantes.
  5. Agora o pipeline está pronto. Você pode voltar para a visão principal do pipeline selecionando o nome do pipeline.

    Pipeline de comando do Azure Data Explorer.

  6. Selecione Depurar antes de publicar o pipeline. Você pode monitorar o progresso do pipeline na guia Saída .

    Saída da atividade de comando do Azure Data Explorer.

  7. Selecione Publicar Todos e, em seguida, Adicionar gatilho para executar o pipeline.

Execuções de comando de gerenciamento

A seção a seguir descreve a estrutura da saída da atividade de comando. A próxima atividade no fluxo de trabalho pode usar esta saída.

Valor retornado de um comando de gerenciamento não assíncrono

Em um comando de gerenciamento não assíncrono, a estrutura do valor retornado é semelhante à estrutura do resultado da atividade Lookup. O count campo mostra o número de registros retornados. Um campo de matriz fixa value contém uma lista de registros.

{ 
    "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 retornado de um comando de gerenciamento assíncrono

Em um comando de gerenciamento assíncrono, a atividade verifica a tabela de operações de forma discreta, até que a operação assíncrona seja concluída ou atinja o tempo limite. Portanto, o valor retornado contém o resultado da .show operations OperationId para a propriedade específica OperationId. Verifique os valores das propriedades Estado e Status para confirmar 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>" 
        } 
    ] 
}