Compartilhar via


Usar parâmetros de consulta M dinâmicos com o Azure Data Explorer para Power BI

O Azure Data Explorer é um serviço de exploração de dados rápido e altamente escalonável para dados telemétricos e de log. O Power BI é uma solução de análise de negócios que permite que você visualize os dados e compartilhe os resultados na sua organização. Com Parâmetros M dinâmicos, você pode criar relatórios do Power BI que dão aos visualizadores a capacidade de usar filtros ou segmentações para definir valores para parâmetros de consulta KQL.

Neste artigo, você começará com um novo projeto do Power BI e usará os dados de exemplo para criar um relatório que usa uma segmentação para filtrar dados em uma consulta M dinâmica vinculada a uma função KQL.

Pré-requisitos

Você precisará do seguinte para concluir este artigo:

Adicionar conexão de consulta direta à função KQL

Primeiro, configure um conector para Power BI.

  1. No Power BI Desktop, na guia Início, selecione Obter Dados e depois Mais.

    Captura de tela do menu Obter dados, mostrando a opção obter mais.

  2. Pesquise por Azure Data Explorer, depois selecione Azure Data Explorer e Conectar.

    Captura da tela de pesquisa, mostrando a seleção do conector.

  3. Na tela do conector, preencha o formulário com as informações a seguir.

    Captura da tela de conexão, mostrando o cluster, o banco de dados e as opções de tabela.

    Configuração Valor Descrição do campo
    Cluster https://help.kusto.windows.net A URL do cluster de ajuda. Para outros clusters, a URL está no formato https://<NomeCluster>.<Região>.kusto.windows.net.
    Backup de banco de dados Deixar em branco Um banco de dados que está hospedado no cluster ao qual você está se conectando. Vamos selecioná-lo em uma etapa posterior.
    Nome da tabela Deixar em branco Uma das tabelas no banco de dados, ou uma consulta como StormEvents | take 1000. Vamos selecioná-lo em uma etapa posterior.
    Opções avançadas Deixar em branco Opções para suas consultas, como tamanho de conjunto de resultados.
    Modo de conectividade de dados DirectQuery Determina se o Power BI importa os dados ou se conecta diretamente para consultas M dinâmicas.

    Observação

    No modo de Importação, os dados são movidos para o Power BI. No modo DirectQuery, os dados são consultados diretamente do seu cluster.

    Use o modo de Importação quando:

    • Seu conjunto de dados é pequeno.
    • Você não precisa de dados quase em tempo real.
    • Seus dados já estão agregados ou você executa a agregação no Kusto

    Use o modo DirectQuery quando:

    • Seu conjunto de dados é muito grande.
    • Você precisa de dados quase em tempo real.

    Opções avançadas

    Configuração Valor de exemplo Descrição do campo
    Limitar o número de registros de resultado de consulta 300000 O número máximo de registros a serem retornados no resultado
    Limitar o tamanho de dados de resultado de consulta 4194304 O tamanho máximo dos dados em bytes a serem retornados no resultado
    Desabilitar o truncamento do conjunto de resultados true Você pode habilitar ou desabilitar o truncamento de resultados usando a opção de solicitação noTruncation
    Instruções de definição adicionais set query_datascope=hotcache Define as propriedades da solicitação durante a consulta. As propriedades de solicitação controlam como uma consulta é executada e retorna os resultados.
  4. Caso ainda não tenha uma conexão para o cluster de ajuda, entre. Entre com uma conta organizacional, depois selecione Conectar.

    Captura da tela de autenticação, mostrando a opção de entrada.

  5. Na tela Navegador, faça o seguinte:

    1. Expanda o banco de dados Exemplos.
    2. Selecione a função EventsByStates.
    3. Para EventTypeParam, insira Vento Forte e, em seguida, selecione Aplicar para visualizar os dados.
    4. Selecione Transformar Dados.

    Captura da tela Navegação, mostrando a seleção de uma função.

    A função é aberta como uma consulta M dinâmica Editor do Power Query, em que prosseguimos para criar um parâmetro a ser usado com a consulta M dinâmica.

    Observação

    A função EventsByStates é uma função de exemplo somente leitura que você pode usar para testar a funcionalidade dos parâmetros de consulta M dinâmicos. Ele define a versão final que dá suporte a vários e seleciona todos os valores para o parâmetro. Se você quiser testar a funcionalidade de seleção única no próprio cluster e testar progressivamente a funcionalidade, poderá começar com a definição de seleção única da função a seguir.

    .create-or-alter function EventsByStates (EventTypeParam:string)
    {
      StormEvents
      | where EventType == EventTypeParam
      | summarize Events=count() by EventType, State
    }
    
  6. No Editor do Power Query, faça o seguinte:

    1. Selecione Gerenciar Parâmetros>Novo Parâmetro.

    2. Preencha os detalhes com as informações a seguir e, em seguida, selecione OK.

      Configuração Valor sugerido Description
      Nome Type_Param O nome do parâmetro. É recomendável adicionar um sufixo, como _Param, que permite que você o reconheça e o diferencie facilmente de outros parâmetros que você pode criar.
      Tipo Text O tipo do parâmetro . O tipo do parâmetro deve corresponder ao tipo declarado na função KQL. O texto no Power BI é equivalente à cadeia de caracteres em KQL.
      Valor Atual Vento forte O valor do parâmetro. Você deve fornecer um valor padrão para este campo.

    Captura da tela Gerenciar Parâmetros, mostrando a criação de um parâmetro.

  7. Na tela Navegação, substitua o valor do parâmetro da função M pelo novo parâmetro.

    Captura da tela Navegação, mostrando a substituição do parâmetro da função M.

  8. Opcionalmente, repita as etapas para criar mais parâmetros e os substituir na consulta M dinâmica.

  9. Crie uma tabela com valores para a segmentação de relatório.

    Observação

    A tabela listará os tipos de evento pelos quais você deseja filtrar. Você pode importar a tabela ou criar uma tabela e inserir manualmente os dados.

    1. Na guia Página Inicial, selecione Fontes Recentes e, em seguida, selecione o cluster de ajuda.

      Captura da tela Página Inicial, mostrando a seleção do cluster de ajuda.

    2. Na tela Navegador, expanda o banco de dados de Exemplos, selecione a tabela StormEvents e, em seguida, selecione OK.

      Captura da tela Navegação, mostrando a seleção de uma tabela.

    3. Na caixa de diálogo Configurações de Conexão, selecione Importar e, em seguida, selecione OK.

      Captura de tela da caixa de diálogo Configurações de Conexão, mostrando a seleção da opção de importação.

    4. Clique com o botão direito do mouse na coluna EventType e selecione Remover Outras Colunas.

    5. Clique com o botão direito do mouse na coluna EventType novamente e selecione Remover Duplicatas.

    6. Opcionalmente, adicione outra coluna para definir a ordem de classificação para os valores de segmentação.

    7. Renomeie a tabela como SlicerValues.

      Captura de tela da tabela, mostrando a tabela Valores de Segmentação.

  10. Na guia Página inicial, selecione Fechar e Aplicar.

    Observação

    É exibida uma caixa de diálogo avisando sobre o risco de segurança. Clique em OK para continuar. O motivo pelo qual a caixa de diálogo aparece é porque o Power BI está adicionando uma segunda fonte de dados. Para obter mais informações, confira Níveis de privacidade do Power BI Desktop. No entanto, a maneira como as fontes de dados são usadas neste exemplo é perfeitamente segura.

  11. Associe a coluna EventType na tabela SlicerValues ao parâmetro.

    1. Selecione a exibição de Modelo à esquerda.
    2. Na tabela SlicerValues, selecione a coluna EventType.
    3. No painel Propriedades, expanda Avançado.
    4. Em Associar ao Parâmetro, selecione Type_Param. Isso associa a coluna EventType ao parâmetro.

    Observação

    É exibida uma caixa de diálogo avisando sobre o risco de segurança. Clique em Continuar para continuar. O motivo pelo qual a caixa de diálogo aparece é porque o Power BI está enviando dados de uma fonte para outra. Para obter mais informações, confira Níveis de privacidade do Power BI Desktop. No entanto, a maneira como o parâmetro é usado neste exemplo é perfeitamente segura.

    Captura de tela do Modo de Exibição de Modelo, mostrando a associação da coluna EventType ao parâmetro.

Visualizar dados em um relatório

Agora que você tem dados no Power BI Desktop, crie relatórios com base neles. Você criará um relatório simples com uma tabela que mostra o resumo de eventos por estado e uma segmentação para filtrar a tabela por tipo de evento.

  1. Selecione a exibição de Relatório à esquerda.

  2. Adicione uma tabela ao relatório.

    1. No painel Visualização, selecione Tabela. Uma tabela em branco é adicionada à tela de relatório.
    2. No painel Campos, expanda EventsByStates e selecione Estado e Eventos. Agora você tem uma tabela que mostra o resumo de eventos por estado.
  3. Adicione a segmentação ao relatório.

    1. No painel Visualização, selecione Segmentação. Uma segmentação em branco é adicionada à tela de relatório.
    2. No painel Campos, expanda SlicerValues e selecione EventType. Agora você tem uma segmentação que mostra os tipos de evento.

    Captura de tela do Modo de Exibição de Modelo, mostrando a tabela e a segmentação relacionada.

    Agora o relatório está pronto para ser exibido. Observe que, ao selecionar valores de tipo de evento na segmentação, a tabela baseada na consulta M é filtrada pelo tipo de evento que está associado ao parâmetro da consulta M.

  4. Salve o relatório.

Aceitar vários valores de parâmetro

Se você desejar filtrar vários valores de parâmetro na segmentação, poderá fazer isso ajustando as propriedades da coluna EventType e modificando a função KQL da seguinte maneira:

  1. Ajuste as propriedades da coluna EventType na tabela SlicerValues.

    1. Selecione a exibição de Modelo à esquerda.
    2. Na tabela SlicerValues, selecione a coluna EventType.
    3. No painel Propriedades, expanda Avançado e ative a configuração Multisseleção.

    Captura de tela do Modo de Exibição de Modelo, mostrando a configuração de selecionar vários.

  2. Modifique a função KQL, definindo o tipo de parâmetro como dinâmico e alterando a condição where para verificar a lista de valores de parâmetro.

    .create-or-alter function EventsByStates (EventTypeParam:dynamic)
    {
      StormEvents
      | where EventType in (EventTypeParam)
      | summarize Events=count() by EventType, State
    }
    

Agora você pode voltar ao relatório e selecionar vários tipos de evento na segmentação.

Aceitar todos os valores de parâmetro

Se você desejar filtrar todos os valores de parâmetro na segmentação, poderá fazer isso ajustando as propriedades da coluna EventType, modificando a função KQL e atualizando o controle da segmentação da seguinte maneira:

  1. Ajuste as propriedades da coluna EventType na tabela SlicerValues.

    1. Selecione a exibição de Modelo à esquerda.
    2. Na tabela SlicerValues, selecione a coluna EventType.
    3. No painel Propriedades, expanda Avançado e ative a configuração Selecionar tudo.
    4. Opcionalmente, altere a configuração Selecionar todos os valores. Neste exemplo, você usará o valor padrão de SelectAll.

    Captura de tela do Modo de Exibição de Modelo, mostrando a configuração de selecionar tudo.

  2. Atualize o controle de segmentação para mostrar a opção Selecionar tudo.

    1. Selecione a exibição de Relatório à esquerda.
    2. Selecione a segmentação EventType.
    3. No painel Visualizações, selecione Formatar, expanda Controles de seleção e ative a configuração da Mostrar opção "Selecionar tudo". A segmentação de tipo de evento mostra a opção Selecionar tudo na parte superior da lista.
  3. Modifique a função KQL, definindo o tipo de parâmetro como dinâmico e alterando a condição where para verificar o valor SelectAll ou a lista de valores de parâmetro.

    .create-or-alter function EventsByStates (EventTypeParam:dynamic)
    {
      StormEvents
      | where ("__SelectAll__" in (EventTypeParam)) or (EventType in (EventTypeParam))
      | summarize Events=count() by EventType, State
    }
    

Agora você pode voltar ao relatório e selecionar todos os tipos de evento na segmentação.

Captura de tela do Modo de Exibição de Relatório, mostrando a segmentação com a opção selecionar tudo.

Considerações e limitações

Há algumas considerações e limitações a serem consideradas ao usar parâmetros de consulta M dinâmicos:

  • Um único parâmetro não pode ser associado a vários campos e vice-versa.
  • Não há suporte para os seguintes tipos de parâmetro:
    • Qualquer
    • Duration
    • Verdadeiro/Falso
    • Binário
  • Não há suporte para os seguintes filtros:
    • Segmentação ou um filtro de tempo relativo
    • Data relativa
    • Segmentação de hierarquia
    • Filtro de inclusão de vários campos
    • Excluir filtro / Não filtros
    • Realce cruzado
    • Filtro de drill-down
    • Filtro de drill cruzado
    • Filtro N superior

Limpar os recursos

Caso você não precise mais do relatório criado para este artigo, exclua o arquivo do Power BI Desktop (.pbix).