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
Uma assinatura do Azure. Acesse Obter uma 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.
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:
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.
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
.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.
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
Selecione OK para continuar.
Caso ainda não tenha uma conexão para o cluster de ajuda, selecione Entrar. Entre com uma conta organizacional, depois selecione Conectar.
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.
Conectar-se ao Data Explorer do Azure do Power Query Online
Para se conectar ao Data Explorer do Azure do Power Query Online:
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.
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
.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
Se necessário, selecione o gateway de dados local em Gateway de dados.
Caso ainda não tenha uma conexão para o cluster de ajuda, selecione Entrar. Iniciar sessão com uma conta institucional.
Depois de entrar, selecione Avançar.
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.
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):
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'.
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
Conecte-se ao cluster em que você criou a função.
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.
Adicione valores aos parâmetros e selecione Aplicar.
Depois que a visualização for exibida, selecione Transformar Dados.
Uma vez no editor Power Query, crie dois parâmetros, um para o valor de corte e outro para o operador.
Volte à consulta
LargeOrSmallSales
e substitua os valores pelos parâmetros de consulta na barra de fórmulas.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>
.As duas colunas nas tabelas precisam ser associadas aos parâmetros de consulta usando a seleção Associar ao parâmetro.
O relatório final incluirá segmentações para as duas tabelas estáticas e quaisquer visuais das vendas de resumo.
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:
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", [])
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
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.