Azure Data Explorer (Kusto)

Resumo

Item Description
Estado de Lançamento Disponibilidade Geral
Produtos Excel
Power BI (modelos semânticos)
Power BI (Fluxos de Dados)
Malha (Dataflow Gen2)
Power Apps (Fluxos de Dados)
Dynamics 365 Customer Insights
Tipos de autenticação suportados Conta Organizacional
Documentação de referência da função

Nota

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

Pré-requisitos

  • Uma subscrição do Azure. Vá para Obter avaliação gratuita do Azure.

  • Uma conta de email organizacional que é membro do Microsoft Entra ID. Este artigo usa essa conta para se conectar aos exemplos de cluster de ajuda do Azure Data Explorer.

Capacidades suportadas

  • Importar
  • DirectQuery (modelos semânticos do Power BI)
  • Opções avançadas
    • Limitar o número de registro do resultado da consulta
    • Limitar o tamanho dos dados do resultado da consulta em Bytes
    • Desativar truncamento do conjunto de resultados
    • Instruções de conjunto adicionais

Ligar ao Azure Data Explorer a partir do Power Query Desktop

Para ligar ao Azure Data Explorer a partir do Power Query Desktop:

  1. Selecione Azure Data Explorer (Kusto) na experiência obter dados. A experiência de obtenção de dados no Power Query Desktop varia entre aplicações. Para obter mais informações sobre a experiência de obter dados do Power Query Desktop para a sua aplicação, aceda a Onde obter dados.

  2. No Azure Data Explorer (Kusto), forneça o nome do cluster do Azure Data Explorer. 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 está se conectando, uma das tabelas no banco de dados ou uma consulta como StormEvents | take 1000.

  3. Se você quiser usar qualquer opção antecipada, selecione a opção e insira os dados para usar com essa opção. Para obter mais informações: Conectar-se usando opções avançadas

    Nota

    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). Para obter mais informações: Quando usar o modo Importar ou Consulta Direta

  5. Selecione OK para continuar.

    Captura de ecrã da caixa de diálogo Azure Data Explorer (Kusto), com o URL do cluster introduzido.

  6. Se ainda não tiver uma ligação ao cluster, selecione Iniciar sessão. Inicie sessão com uma conta organizacional e, em seguida, selecione Ligar.

    Captura de ecrã da caixa de diálogo de início de sessão do Azure Data Explorer, com a conta organizacional pronta para iniciar sessão.

  7. No Navegador, selecione as informações da base de dados que pretende e, em seguida, selecione Carregar para carregar os dados ou Transformar Dados para continuar a transformar os dados no editor do Power Query. Neste exemplo, StormEvents foi selecionado no banco de dados Samples.

    Captura de ecrã do Navigator aberto e que contém os dados de StormEvents na base de dados Samples.

Ligar ao Azure Data Explorer a partir do Power Query Online

Para ligar ao Azure Data Explorer a partir do Power Query Online:

  1. Selecione a opção Azure Data Explorer (Kusto) na experiência obter dados. Diferentes aplicações têm formas diferentes de aceder à experiência de obtenção de dados do Power Query Online. Para obter mais informações sobre como aceder à experiência de obter dados do Power Query Online a partir da sua aplicação, aceda a Onde obter dados.

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

  2. Em Conectar à fonte de dados, forneça o nome do cluster do Azure Data Explorer. 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 está se conectando, uma das tabelas no banco de dados ou uma consulta como StormEvents | take 1000.

    Captura de ecrã da página Escolher origem de dados para o Azure Data Explorer (Kusto), com o URL do cluster introduzido.

  3. Se você quiser usar qualquer opção antecipada, selecione a opção e insira os dados para usar com essa opção. Para obter mais informações: Conectar-se usando opções avançadas

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

  5. Se ainda não tiver uma ligação ao cluster, selecione Iniciar sessão. Inicie sessão com uma conta organizacional.

  6. Depois de iniciar sessão com êxito, selecione Seguinte.

  7. Na página Escolher dados, selecione as informações da base de dados que pretende e, em seguida, selecione Transformar Dados ou Seguinte para continuar a transformar os dados no editor do Power Query. Neste exemplo, StormEvents foi selecionado no banco de dados Samples.

    Captura de ecrã da página Escolher dados, que contém os dados de StormEvents na base de dados de amostras.

Conecte-se usando opções avançadas

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

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

Opção avançada Description
Limitar o número de registro do resultado da 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 de dados em bytes a ser retornado no resultado.
Desativar truncamento do conjunto de resultados Habilite ou desabilite o truncamento de resultados usando a notruncation opção de solicitação.
Instruções de conjunto adicionais Define as opções de consulta para a duração da consulta. As opções de consulta controlam como uma consulta é executada e retorna resultados. As instruções Multiple set podem ser separadas por ponto-e-vírgula.

Para obter informações sobre opções avançadas adicionais não disponíveis na IU do Power Query, aceda a Configurar opções de conector do Azure Data Explorer numa Consulta M.

Quando usar o modo 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 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 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 como usar o DirectQuery, vá para Sobre o uso do DirectQuery no Power BI.

Sugestões para utilizar o conector do Azure Data Explorer para consultar dados

As seções a seguir incluem dicas e truques para usar a linguagem de consulta Kusto com o Power Query.

Consultas complexas no Power BI

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

Como simular um operador de data-hora relativo

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

Em vez desta consulta usando o ago() operador:

    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 do conector do Azure Data Explorer em uma consulta M

Pode configurar as opções do conector do Azure Data Explorer a partir do 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 seu cluster do Azure Data Explorer.

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

Pode utilizar qualquer uma das seguintes opções na sua consulta M:

Opção Exemplo Description
MaxRows [MaxRows=300000] Adiciona a truncationmaxrecords instrução set à 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 truncationmaxsize instrução set à sua consulta. Substitui o tamanho máximo de dados padrão que uma consulta pode retornar ao chamador (truncamento).
NoTruncate [NoTruncate=true] Adiciona a notruncation instrução set à sua consulta. Permite suprimir o truncamento dos resultados da consulta retornados ao chamador.
AdicionalSetStatements [AdditionalSetStatements="set query_datascope=hotcache"] Adiciona as instruções de conjunto fornecidas à sua consulta. Essas instruções são usadas para definir opções de consulta para a duração da consulta. As opções de consulta controlam como uma consulta é executada e retorna resultados.
Insensível a maiúsculas e minúsculas [CaseInsensitive=true] Faz com que o conector gere consultas que não diferenciam maiúsculas de minúsculas — as consultas usam o =~ operador em vez do == operador ao comparar valores.
ForceUseContém [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 eficiente, ele não lida com substrings. Para obter mais informações sobre a diferença entre os dois operadores, vá para operadores de cadeia de caracteres.
Limite de tempo excedido [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 e/ou fonte de dados específica.

Nota

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

Alcançando os limites de consulta do Kusto

As consultas Kusto 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.

Estas opções emitem instruções de conjunto com a sua consulta para alterar os limites de consulta predefinidos:

  • Limitar o número de registro de resultado da consulta gera um set truncationmaxrecords
  • Limitar o tamanho dos dados do resultado da consulta em Bytes gera um set truncationmaxsize
  • Desativar o truncamento do conjunto de resultados gera um set notruncation

Sensível às maiúsculas e minúsculas

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

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

Usando parâmetros de consulta

Você pode usar parâmetros de consulta para modificar sua 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 ofereça suporte a ele. Por exemplo, filtre os resultados com base no valor de um parâmetro. Neste exemplo, selecione o menu pendente no lado direito da coluna no editor do State Power Query, selecione Filtros de Texto>Iguais e, em seguida, selecione ALABAMA em Manter linhas onde 'Estado'.

Filtre os 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 complexas do Kusto Query Language (KQL). Recomendamos a utilização de funções em vez de incorporar o KQL no Power Query. A principal vantagem de usar a função é que a lógica é mantida uma vez em um ambiente que é 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 de dados são adicionados após o KQL original e, em muitos casos, você vai querer 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.

Criando uma função

Você pode criar a seguinte função 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 usando:

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

Você também pode testá-lo usando:

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

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

    Captura de ecrã com os parâmetros Cutoff e Op apresentados 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 do Power Query, crie dois parâmetros, um para o valor de corte e outro para o operador.

  6. Volte à LargeOrSmallSales consulta 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 (Enter Data) para fornecer opções para os dois parâmetros. Para o ponto de corte, você pode criar uma tabela com valores como 10, 50, 100, 200, 500, 1000, 2000. Para o Op, uma tabela com dois valores < Text e >.

  8. As duas colunas nas tabelas precisam ser vinculadas aos parâmetros de consulta usando a seleção Vincular a parâmetros .

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

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

Captura de ecrã no Power BI com as seleções de valores de Corte e Operação apresentadas junto à tabela.

A tabela base é filtrada primeiro e depois agregada.

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

No Editor Avançado:

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

    Source = AzureDataExplorer.Contents("<Cluster>", "<Banco de dados>", "<Consulta>", [])

    Por exemplo:

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

    Se colar uma consulta KQL diretamente na caixa de diálogo de ligação, a consulta fará parte do passo de origem no Power Query. Você pode incorporar parâmetros como parte da consulta usando o editor avançado ou ao editar a instrução source na barra de fórmulas. Um exemplo de consulta poderia 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 a sua consulta contiver aspas, codifice-as corretamente. Por exemplo, a seguinte consulta no KQL:

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

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

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

    Se você estiver usando um parâmetro, como State, ele deve ser substituído pela consulta a seguir, que contém três aspas:

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

Usar o Value.NativeQuery para recursos do Azure Data Explorer

Para utilizar uma funcionalidade do Azure Data Explorer que não é suportada no Power Query, utilize o método Value.NativeQuery no Power Query M. Este método insere um fragmento Kusto Query Language dentro da consulta gerada e também pode ser usado para lhe dar mais controle sobre a consulta executada.

O exemplo a seguir mostra como usar a percentiles função 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 Kusto

O Power BI inclui um agendador de atualização de dados que pode emitir consultas periodicamente em relação a uma fonte de dados. Esse mecanismo não deve ser usado para agendar comandos de controle para Kusto porque o Power BI pressupõe que todas as consultas são somente leitura.