Compartilhar via


Azure Data Explorer (Kusto)

Resumo

Item Descrição
Estado da liberação Disponibilidade geral
Produtos Excel
Power BI (Modelos semânticos)
Power BI (Fluxos de dados)
Malha (fluxo de dados Gen2)
Power Apps (Fluxos de dados)
Dynamics 365 Customer Insights
Tipos de autenticação compatíveis Conta organizacional
Documentação de referência da função

Observação

Alguns recursos podem estar presentes em um produto, mas não em outros devido a cronogramas de implantação e funcionalidades específicas do host.

Pré-requisitos

Funcionalidades com suporte

  • Importação
  • DirectQuery (Modelos semânticos do Power BI)
  • Opções avançadas
    • Limitar o número de registros de resultado de consulta
    • Limitar o tamanho dos dados do resultado da consulta em Bytes
    • Desabilitar o truncamento do conjunto de resultados
    • Instruções de definição adicionais

Conectar ao Data Explorer do Azure do Power Query Desktop

Para se conectar ao Data Explorer do Azure do Power Query Desktop:

  1. Selecione Azure Data Explorer (Kusto) na experiência para obter dados. A experiência para obter dados no Power Query Desktop varia entre aplicativos. Para saber mais informações sobre a experiência para obter dados no Power Query Desktop para seu aplicativo, acesse Onde obter dados.

  2. No Azure Data Explorer (Kusto), forneça o nome do cluster de Data Explorer do Azure. Para este exemplo, use https://help.kusto.windows.net para acessar o cluster de ajuda de exemplo. Para outros clusters, a URL está no formato https://<ClusterName>.<Região>.kusto.windows.net.

    Você também pode selecionar um banco de dados hospedado no cluster ao qual você está se conectando e uma das tabelas no banco de dados ou uma consulta como StormEvents | take 1000.

  3. Se você quiser usar qualquer opção avançada, selecione a opção e insira os dados a serem usados com essa opção. Mais informações: Conectar usando opções avançadas

    Observação

    Talvez seja necessário rolar para baixo para exibir todas as opções avançadas e a seleção de conectividade de dados.

  4. Selecione o modo de conectividade de dados Importar ou DirectQuery (somente Power BI Desktop). Mais informações: Quando usar o modo de Importação ou Consulta Direta

  5. Selecione OK para continuar.

    Captura de tela da caixa de diálogo Azure Data Explorer (Kusto), com a URL do cluster inserida.

  6. Caso ainda não tenha uma conexão para o cluster de ajuda, selecione Entrar. Entre com uma conta organizacional, depois selecione Conectar.

    Captura de tela da caixa de diálogo de entrada do Azure Data Explorer, com a conta organizacional pronta para ser conectada.

  7. No Navegador, selecione as informações desejadas do banco de dados e selecione Carregar para carregar os dados ou Transformar dados para continuar transformando os dados no editor do Power Query. Neste exemplo, StormEvents foi selecionado no banco de dados Exemplos.

    Captura de tela do Navegador aberto e contendo os dados de StormEvents no banco de dados de Amostras.

Conectar-se ao Data Explorer do Azure do Power Query Online

Para se conectar ao Data Explorer do Azure do Power Query Online:

  1. Selecione a opção Azure Data Explorer (Kusto) na experiência para obter dados. Cada aplicativo acessa de uma forma diferente a experiência para obter dados do Power Query Online. Para saber mais informações sobre como acessar a experiência para obter dados do Power Query Online pelo seu aplicativo, acesse Onde obter dados.

    Captura de tela da janela obter dados com o Azure Data Explorer enfatizado.

  2. Em Conectar-se à fonte de dados, forneça o nome do cluster de Data Explorer do Azure. Para este exemplo, use https://help.kusto.windows.net para acessar o cluster de ajuda de exemplo. Para outros clusters, a URL está no formato https://<ClusterName>.<Região>.kusto.windows.net.

    Você também pode selecionar um banco de dados hospedado no cluster ao qual você está se conectando e uma das tabelas no banco de dados ou uma consulta como StormEvents | take 1000.

    Captura de tela da página Escolher fonte de dados para Azure Data Explorer (Kusto), com a URL do cluster inserida.

  3. Se você quiser usar qualquer opção avançada, selecione a opção e insira os dados a serem usados com essa opção. Mais informações: Conectar usando opções avançadas

  4. Se necessário, selecione o gateway de dados local em Gateway de dados.

  5. Caso ainda não tenha uma conexão para o cluster de ajuda, selecione Entrar. Iniciar sessão com uma conta institucional.

  6. Depois de entrar, selecione Avançar.

  7. Na página Escolher dados, selecione as informações desejadas do banco de dados e selecione Carregar para carregar os dados ou Transformar dados para continuar transformando os dados no editor do Power Query. Neste exemplo, StormEvents foi selecionado no banco de dados Exemplos.

    Captura de tela da página Escolher dados, contendo os dados de StormEvents no banco de dados de Amostras.

Conectar usando opções avançadas

Tanto o Power Query Desktop quanto o Power Query Online fornecem um conjunto de opções avançadas que você pode adicionar à sua consulta, se necessário.

A tabela a seguir lista todas as opções avançadas que você pode definir no Power Query Desktop e no Power Query Online.

Opção avançada Descrição
Limitar o número de registros de resultado de consulta O número máximo de registros a serem retornados no resultado.
Limitar o tamanho dos dados do resultado da consulta em Bytes O tamanho máximo dos dados em bytes a serem retornados no resultado.
Desabilitar o truncamento do conjunto de resultados Desabilitar o truncamento de resultados usando a opção de solicitação notruncation.
Instruções de definição adicionais Define as opções de consulta para a duração da consulta. As opções de consulta controlam como uma consulta será executada e como retornará resultados. Várias instruções de definição podem ser separadas por ponto e vírgula.

Para obter informações sobre opções avançadas adicionais não disponíveis na interface do usuário do Power Query, acesse Configurar opções de conector do Azure Data Explorer em uma consulta M.

Quando usar o modo de Importação ou Consulta Direta

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:

  • O 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.

Para saber mais sobre o DirectQuery, confira Usar o DirectQuery no Power BI.

Dicas de uso do conector do Azure Data Explorer a fim de consultar dados

A seção a seguir inclui dicas e truques para uso da linguagem de consulta Kusto com Power Query.

Consultas complexas no Power BI

Consultas complexas são mais facilmente expressas no Azure Data Explorer do que no Power Query. Elas devem ser implementados como funções do Azure Data Explorer e invocadas em Power BI. Esse método é necessário ao usar o DirectQuery com instruções let em sua consulta do Azure Data Explorer. Já que o Power BI une duas consultas e as instruções let não podem ser usadas com o operador join, erros de sintaxe podem ocorrer. Portanto, salve cada parte da junção como uma função do Azure Data Explorer e permita que o Power BI una essas duas funções.

Como simular um operador relativo de data/hora

O Power Query não contém um operador relativo de data/hora, como ago(). Para simularago(), use uma combinação das funções DateTime.FixedLocalNow e #duration Power Query M.

Em vez desta consulta usando o operador ago():

    StormEvents | where StartTime > (now()-5d)
    StormEvents | where StartTime > ago(5d)

Use a seguinte consulta equivalente:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
    #"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
    #"Filtered Rows"

Configurando opções de conector do Azure Data Explorer na consulta M

Você pode configurar as opções do conector do Azure Data Explorer no editor avançado do Power Query na linguagem de consulta M. Usando essas opções, você pode controlar a consulta gerada que está sendo enviada para o cluster do Azure Data Explorer.

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
    Source

Você pode usar qualquer uma das seguintes opções em sua consulta M:

Opção Amostra Descrição
MaxRows [MaxRows=300000] Adiciona a instrução set truncationmaxrecords à sua consulta. Substitui o número máximo padrão de registros que uma consulta pode retornar ao chamador (truncamento).
MaxSize [MaxSize=4194304] Adiciona a instrução set truncationmaxsize à sua consulta. Substitui o tamanho de dados máximo que uma consulta pode retornar ao chamador (truncamento).
NoTruncate [NoTruncate=true] Adiciona a instrução set notruncation à sua consulta. Permite suprimir o truncamento dos resultados da consulta retornados ao chamador.
AdditionalSetStatements [AdditionalSetStatements="set query_datascope=hotcache"] Adiciona as instruções set fornecidas à sua consulta. Essas instruções são usadas para definir as opções de consulta enquanto ela durar. As opções de consulta controlam como uma consulta será executada e como retornará resultados.
CaseInsensitive [CaseInsensitive=true] Faz com que o conector gere consultas que não diferenciam maiúsculas de minúsculas. As consultas usarão o operador =~ em vez do operador == ao comparar valores.
ForceUseContains [ForceUseContains=true] Faz com que o conector gere consultas que usam contains em vez do padrão has ao trabalhar com campos de texto. Embora has seja muito mais eficaz, ele não lida com subcadeias de caracteres. Para obter mais informações sobre a diferença entre os dois tipos de operadores, confira operadores de cadeia de caracteres.
Timeout [Timeout=#duration(0,10,0,0)] Configura o tempo limite do cliente e do servidor da consulta para a duração fornecida.
ClientRequestIdPrefix [ClientRequestIdPrefix="MyReport"] Configura um prefixo ClientRequestId para todas as consultas enviadas pelo conector. Isso permite que as consultas sejam identificáveis no cluster como provenientes de um relatório específico e/ou fonte de dados.

Observação

Você pode combinar várias opções em conjunto para alcançar o comportamento necessário: [NoTruncate=true, CaseInsensitive=true]

Alcançando limites de consulta do Azure Data Explorer

As consultas do Azure Data Explorer retornam, por padrão, até 500.000 linhas ou 64 MB, conforme descrito em limites de consulta. Você pode substituir esses padrões usando as Opções avançadas na janela de conexão do Azure Data Explorer (Kusto):

opções avançadas.

Essas opções emitem instruções set com sua consulta para alterar os limites de consulta padrão:

  • Limitar o número de registros de resultado de consulta gera um set truncationmaxrecords
  • Limitar o tamanho de dados de resultado de consulta em bytes gera um set truncationmaxsize
  • Desabilitar o truncamento do conjunto de resultados gera um set notruncation

Diferenciar maiúsculas de minúsculas

Por padrão, o conector gera consultas que usam o operador de diferenciação de maiúsculas e minúsculas == ao comparar valores de cadeia de caracteres. Se os dados não diferenciam maiúsculas de minúsculas, esse não é o comportamento desejado. Para alterar a consulta gerada, use a opção de conector CaseInsensitive:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
    #"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
    #"Filtered Rows"

Como usar parâmetros de consulta

Você pode usar parâmetros de consulta para modificar a consulta dinamicamente.

Usar um parâmetro de consulta nas etapas de consulta

Você pode usar um parâmetro de consulta em qualquer etapa de consulta que dê suporte a ele. Por exemplo, filtre os resultados com base no valor de um parâmetro. Neste exemplo, selecione o menu suspenso no lado direito da coluna State no editor Power Query, selecione Filtros de Texto>Iguais e selecione ALABAMA em Manter linhas em que 'Estado'.

Filtrar resultados usando um parâmetro.

Fornecer parâmetros para uma função do Azure Data Explorer

As funções Kusto são uma ótima maneira de manter consultas KQL (Linguagem de Consulta Kusto complexas). É recomendável usar funções em vez de inserir KQL no Power Query. A principal vantagem de usar a função é que a lógica é mantida uma vez em um ambiente fácil de criar e testar.

As funções também podem receber parâmetros e, portanto, adicionar muita flexibilidade ao usuário do Power BI. O Power BI tem muitas maneiras de fatiar os dados. Mas todos os filtros e segmentações são adicionados após o KQL original e, em muitos casos, você deseja usar a filtragem em um estágio inicial da consulta. Usar funções e parâmetros dinâmicos é uma maneira muito eficaz de personalizar a consulta final.

Criar uma função

Você pode criar a função a seguir em qualquer cluster do Azure Data Explorer ao qual tenha acesso, incluindo um cluster gratuito. A função retorna a tabela SalesTable do cluster de ajuda, filtrada para transações de vendas maiores ou menores que um número fornecido pelo usuário do relatório.

.create-or-alter  function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
    cluster("help").database("ContosoSales").SalesTable
    | where  (Op==">" and SalesAmount >= Cutoff) or (Op=="<"  and SalesAmount <= Cutoff)
}

Depois de criar a função, você pode testá-la usar:

LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country

Você também pode testar ao usar:

LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Usando a função no Power BI
  1. Conecte-se ao cluster em que você criou a função.

  2. No navegador Power Query, selecione a função na lista de objetos. O conector analisa os parâmetros e os apresenta acima dos dados no lado direito do navegador.

    Captura de tela com os parâmetros Cutoff e Op exibidos acima dos dados no navegador.

  3. Adicione valores aos parâmetros e selecione Aplicar.

  4. Depois que a visualização for exibida, selecione Transformar Dados.

  5. Uma vez no editor Power Query, crie dois parâmetros, um para o valor de corte e outro para o operador.

  6. Volte à consulta LargeOrSmallSales e substitua os valores pelos parâmetros de consulta na barra de fórmulas.

    Captura de tela com a função LargeOrSmallSales, com ênfase nos parâmetros Cutoff_Param e Op_Param na barra de fórmulas.

  7. No editor, crie duas tabelas estáticas (Inserir Dados) para fornecer opções para os dois parâmetros. Para o corte, você pode criar uma tabela com valores como 10, 50, 100, 200, 500, 1000, 2000. Para Op, uma tabela com dois valores de texto < e >.

  8. As duas colunas nas tabelas precisam ser associadas aos parâmetros de consulta usando a seleção Associar ao parâmetro.

    Captura de tela com Op sendo vinculado ao parâmetro Op_Param.

O relatório final incluirá segmentações para as duas tabelas estáticas e quaisquer visuais das vendas de resumo.

Captura de tela no Power BI com as seleções de valor de corte e operação exibidas ao lado da tabela.

A tabela base é filtrada primeiro e depois agregada.

Como usar um parâmetro de consulta nos detalhes da conexão

Use um parâmetro de consulta para filtrar informações na consulta e otimizar o desempenho da consulta.

Em Editor Avançado:

  1. Localize a seguinte seção da consulta:

    Origem = AzureDataExplorer.Contents("<Cluster>", "<Database>", "<Query>", [])

    Por exemplo:

    Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
    
  2. Insira um parâmetro de consulta na consulta Linguagem de Consulta Kusto (KQL).

    Se você colar uma consulta KQL diretamente na caixa de diálogo de conexão, a consulta fará parte da etapa de origem no Power Query. Você pode inserir parâmetros como parte da consulta usando o editor avançado ou ao editar a instrução de origem na barra de fórmulas. Uma consulta de exemplo pode ser StormEvents | where State == ' " & State & " ' | take 100. State é um parâmetro e, em tempo de execução, a consulta será:

    StormEvents | where State == 'ALABAMA' | take 100

  3. Se sua consulta contiver aspas, codifique-as corretamente. Por exemplo, a seguinte consulta em KQL:

    "StormEvents | where State == "ALABAMA" | take 100"
    

    aparecerá no Editor Avançado da seguinte maneira, com duas aspas:

     "StormEvents | where State == ""ALABAMA"" | take 100"
    

    Se você estiver usando um parâmetro State por exemplo, ele deverá ser substituído pela seguinte consulta, que contém três aspas:

    "StormEvents | where State == """ & State & """ | take 100"
    

Usar Value.NativeQuery para recursos do Azure Data Explorer

Para usar um recurso do Azure Data Explorer não compatível com o Power Query, use o método Value.NativeQuery() no Power Query M. Esse método insere um fragmento da linguagem de consulta Kusto dentro da consulta gerada e também pode ser usado para dar a você mais controle sobre a consulta executada.

O seguinte exemplo mostra como usar a função percentiles no Azure Data Explorer:

let
    StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
    Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
    Percentiles

Não use o agendador de atualização de dados do Power BI para emitir comandos de controle para o Azure Data Explorer

O Power BI inclui um agendador de atualização de dados que pode emitir consultas periodicamente para uma fonte de dados. Esse mecanismo não deve ser usado para agendar comandos de controle para o Azure Data Explorer, porque o Power BI supõe que todas as consultas são somente leitura.