Partilhar via


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

O Azure Data Factory (ADF) é um serviço de integração de dados baseado na nuvem que permite executar uma combinação de atividades nos dados. Use o ADF para criar fluxos de trabalho orientados por dados para orquestrar e automatizar a movimentação e a transformação de dados. A atividade do Comando do Azure Data Explorer no Azure Data Factory permite executar comandos de gerenciamento do Azure Data Explorer em um fluxo de trabalho do ADF. Este artigo ensina como criar um pipeline com uma atividade de pesquisa 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 Lápis de autor .

  2. Crie um novo pipeline ao selecionar + e, em seguida, escolher Pipeline na lista suspensa.

    Criar uma nova 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. A saída da atividade de pesquisa pode ser usada num ForEach ou noutra atividade.

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

    Selecione Atividade de pesquisa.

  2. A tela agora contém a atividade Pesquisa que você criou. Use as guias abaixo da tela para alterar quaisquer parâmetros relevantes. Em Geral, renomeie a atividade.

    Editar atividade de pesquisa.

    Sugestão

    Clique na área de desenho vazia para visualizar as propriedades do pipeline. Utilize o separador Geral para renomear o pipeline. O nosso pipeline é denominado pipeline-4-docs.

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

  1. Em Configurações, selecione seu conjunto de dados de Origem do Azure Data Explorer pré-criado ou selecione + Novo para criar um novo conjunto de dados.

    Adicione o conjunto de dados nas configurações de pesquisa.

  2. 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.

    Selecione Novo conjunto de dados.

  3. Os novos parâmetros do conjunto de dados do Azure Data Explorer são visíveis 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 é aberta na tela principal.

    • Selecione Geral e edite o nome do conjunto de dados.
    • Selecione 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.

    Edite as propriedades do conjunto de dados do Azure Data Explorer.

  5. Ao criar um novo serviço vinculado, a página Novo Serviço Vinculado (Azure Data Explorer) abre:

     Novo serviço vinculado do Azure Data Explorer.

    • Selecione Nome para o serviço vinculado do Azure Data Explorer. Adicione Descrição , se necessário.
    • Em Connect via integration runtime, altere as configurações atuais, se necessário.
    • Em Método de seleção de conta , selecione seu cluster usando um dos dois métodos:
      • Selecione o botão de opção Da assinatura do Azure e selecione a sua conta Azure subscription. Em seguida, selecione o Cluster. Observe que a lista suspensa listará apenas os clusters que pertencem ao usuário.
      • Em vez disso, selecione o botão de opção Inserir manualmente e introduza o seu ponto de extremidade (URL do cluster).
    • Especifique o locatário.
    • Insira ID do principal de serviço. Esse valor pode ser encontrado no portal do Azure em Registros de Aplicativos>Visão Geral>ID do Aplicativo (cliente). O principal 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 principal de serviço e insira Chave principal de serviço.
    • Selecione o seu banco de dados no menu suspenso. Como alternativa, marque a caixa de seleção Editar e digite o nome do banco de dados.
    • Selecione Testar conexão 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 aparecerá.
    • Selecione Concluir para concluir a criação do serviço vinculado.
  6. Depois de configurar um serviço vinculado, Em AzureDataExplorerTable>Connection, adicione o nome da tabela . Selecione Visualizar dados para garantir que os dados sejam apresentados corretamente.

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

Adicionar uma consulta à sua atividade de pesquisa

  1. EmConfiguraçõ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 Tempo limite de consulta ou Sem truncamento e 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 iterar sobre uma coleção e executar atividades específicas num ciclo.

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

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

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

      Para cada atividade.

  2. Selecione 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 deixe-a desmarcada para criar processamento paralelo.

    • Definir contagem de lotes.

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

      Configurações de 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 para especificar as atividades em ForEach.

  2. No painel Atividades, em Azure Data Explorer, selecione a atividade Azure Data Explorer Command e arraste-a e solte-a no ecrã.

    Atividade de comando do Azure Data Explorer.

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

    Guia Conexão de 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 determinada consulta para um armazenamento de blob, em um formato compactado. Ele é executado de forma assíncrona (usando o modificador assíncrono). A consulta aborda a coluna do banco de dados de cada linha no resultado da atividade de pesquisa. O tempo limite do comando pode ser deixado inalterado.

    atividade de comando.

    Observação

    A atividade de comando tem os seguintes limites:

    • Limite de tamanho: 1 MB de tamanho de resposta
    • 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/tempo resultante.
  5. Agora o gasoduto está pronto. Você pode voltar à visualização principal do pipeline clicando no nome do pipeline.

    Pipeline de comandos 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 depois Adicionar um trigger para executar o pipeline.

Saídas de comando de gerenciamento

A estrutura da saída da atividade de comando é detalhada abaixo. Esta saída pode ser utilizada pela seguinte atividade no fluxo de trabalho.

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 count campo indica o número de registros retornados. Um campo value de matriz fixa 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 atinja o tempo limite. Portanto, o valor retornado conterá o resultado de .show operations OperationId para essa determinada propriedade OperationId . Verifique os valores das propriedades State e Status 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>" 
        } 
    ] 
}