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

O ADF (Azure Data Factory) é um serviço de integração de dados baseado em nuvem que permite 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 Data Explorer do Azure no Azure Data Factory permite executar comandos de gerenciamento de Data Explorer do Azure em um fluxo de trabalho do ADF. Este artigo ensina você a criar um pipeline com uma atividade de pesquisa e uma atividade ForEach que contém uma atividade de comando do Azure Data Explorer.

Pré-requisitos

Criar um novo pipeline

  1. Selecione a ferramenta de lápis Criar.

  2. Crie um pipeline selecionando + e clique em 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 compatível com o Azure Data Factory. A saída da atividade de pesquisa pode ser usada em um ForEach ou em 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 abaixo da tela para alterar os parâmetros relevantes. Em Geral, renomeie a atividade.

    Edição da atividade de pesquisa.

    Dica

    Clique na área de tela vazia para exibir as propriedades do pipeline. Use a guia Geral para renomear o pipeline. Nosso pipeline é chamado 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 escolha + Novo para criar um 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:

    O Azure Data Explorer novo serviço vinculado.

    • 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 destes dois métodos:
      • Escolha o botão de opção Da assinatura do Azure e selecione sua conta da assinatura do Azure. Em seguida, escolha o Cluster. Observe que o menu suspenso listará apenas os clusters que pertencem ao usuário.
      • Em vez disso, escolha o botão de opção Inserir manualmente e insira o Ponto de Extremidade (URL do cluster).
    • Especifique o Locatário.
    • Insira a ID da entidade de serviço. Esse valor pode ser encontrado no portal do Azure emID do Aplicativo deVisão Geral> de Registros> de Aplicativo (cliente). A entidade de segurança deve ter as permissões adequadas, de acordo com o nível de permissão exigido pelo comando que está sendo usado.
    • 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 à sua configuração, 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 AzureDataExplorerTable>Conexão, adicione o nome da Tabela. Selecione Visualizar dados para verificar se os dados são apresentados corretamente.

    O conjunto de dados já está pronto, e você pode continuar editando seu pipeline.

Adicionar uma consulta à sua atividade de pesquisa

  1. Em pipeline-4-docs>Configuraçõ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, mantemos o Tempo limite de consulta padrão e desmarcamos as caixas de seleção.

    Configurações finais da atividade de pesquisa.

Criar uma atividade For-Each

A atividade For-Each é usada para iteração em uma coleção e execução das atividades especificadas em um loop.

  1. Agora você adicionará uma atividade For-Each ao pipeline. Essa atividade processará os dados retornados da atividade de pesquisa.

    • No painel Atividades, em Iteração e Condicionais, selecione a atividade ForEach e arraste-a e solte-a 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 abaixo:

    • 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 a fim de especificar as atividades em 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 Conexão da atividade de comando do 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. O Tempo limite do comando pode ser mantido 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, acrescente uma consulta ao resultado usando AdminThenQuery para reduzir o tamanho/tempo resultante.
  5. Agora o pipeline está pronto. Você pode voltar à exibição do pipeline principal clicando no nome do pipeline.

    Pipeline de comando do Azure Data Explorer.

  6. Selecione Depurar antes de publicar o pipeline. O progresso do pipeline pode ser monitorado na guia Saída.

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

  7. Você pode Publicar Tudo e Adicionar gatilho para executar o pipeline.

Saídas de comando de gerenciamento

A estrutura da saída da atividade de comando é detalhada abaixo. Essa saída pode ser usada pela próxima atividade no pipeline.

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 de pesquisa. O campo count indica 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 sonda a tabela de operações nos bastidores, até que a operação assíncrona seja concluída ou o tempo limite seja excedido. Portanto, o valor retornado conterá o resultado de .show operations OperationId para a propriedade OperationId fornecida. 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>" 
        } 
    ] 
}