Introdução à consulta de um banco de dados Kusto no Microsoft Fabric
Um Conjunto de Consultas KQL é uma ferramenta que permite executar consultas, além de modificar e exibir resultados de consultas de um banco de dados KQL. Você pode vincular cada guia no Conjunto de Consultas KQL a um banco de dados KQL diferente, além de salvar suas consultas para uso futuro ou compartilhá-las com outras pessoas para fins de análise de dados. Você também pode alternar o banco de dados KQL para qualquer guia, de modo a poder comparar os resultados de consultas de diferentes fontes de dados.
Neste exercício, você executará a função de um analista encarregado de consultar um conjunto de dados de exemplo de corridas de táxi de NYC de métricas brutas em que você efetua pull de estatísticas resumidas (criação de perfil) dos dados do ambiente do Fabric. Você usa KQL para consultar esses dados, coletar informações e obter insights informativos sobre os dados.
Para criar consultas, o Conjunto de Consultas KQL usa a Linguagem de Consulta Kusto, que é compatível com diversas funções SQL. Para obter mais informações sobre a Linguagem de Consulta Kusto (KQL) .
Este laboratório leva cerca de 25 minutos para ser concluído.
Observação: Você precisa de uma avaliação gratuita do Microsoft Fabric para concluir esse exercício.
Criar um workspace
Antes de trabalhar com os dados no Fabric, crie um workspace com a avaliação do Fabric habilitada.
- Na home page do Microsoft Fabric, em
https://app.fabric.microsoft.com/home?experience=fabric
, selecione Inteligência em Tempo Real. - Na barra de menus à esquerda, selecione Workspaces (o ícone é semelhante a 🗇).
- Crie um workspace com um nome de sua escolha selecionando um modo de licenciamento que inclua a capacidade do Fabric (Avaliação, Premium ou Malha).
-
Quando o novo workspace for aberto, ele estará vazio.
Nesse laboratório, você usa a Inteligência em Tempo Real (RTA) do Fabric para criar um banco de dados KQL a partir de uma amostra de fluxo de eventos. A Inteligência em Tempo Real fornece um exemplo de conjunto de dados para sua conveniência, que você pode usar para explorar as funcionalidades da Inteligência em Tempo Real. Use esses dados de exemplo para criar consultas KQL/SQL e conjuntos de consultas que analisam dados em tempo real e permitem outros usos em processos downstream.
Criar um banco de dados KQL
-
Na Inteligência em Tempo Real, selecione a caixa Banco de Dados KQL.
-
Você é solicitado a Nomear o banco de dados KQL
-
Dê ao banco de dados KQL um nome que você se lembra, como TaxiData, pressione Criar.
-
No painel Detalhes do banco de dados, selecione o ícone de lápis para ativar a disponibilidade no OneLake.
Em seguida, use o controle deslizante para habilitar a disponibilidade.
-
Selecione a caixa de dados de exemplo nas opções de Iniciar obtendo dados.
Em seguida, escolha a caixa Análise de operações automotivas nas opções de dados de exemplo.
-
Depois que os dados terminarem de ser carregados, podemos verificar se o Banco de Dados KQL está preenchido.
-
Depois que os dados forem carregados, verifique se eles foram carregados no banco de dados KQL. Você pode realizar essa operação selecionando as reticências à direita da tabela, navegando até a Tabela de consulta e selecionando Mostrar quaisquer 100 registros.
OBSERVAÇÃO: na primeira vez que você executar isso, pode levar vários segundos para alocar recursos de computação.
Introdução à Linguagem de Consulta Kusto (KQL) e sua sintaxe
A Linguagem de Consulta Kusto (KQL) é uma linguagem de consulta usada para analisar dados no Microsoft Azure Data Explorer, que faz parte do Azure Fabric. A KQL foi projetada para ser simples e intuitiva, facilitando o aprendizado e o uso para iniciantes. Ao mesmo tempo, ela também é altamente flexível e personalizável, permitindo que usuários avançados executem consultas e análises complexas.
O KQL é baseada em uma sintaxe semelhante ao SQL, mas com algumas diferenças importantes. Por exemplo, a KQL usa um operador de pipe ( | ) em vez de um ponto e vírgula (;) para separar comandos e usa um conjunto diferente de funções e operadores para filtrar e manipular dados. |
Um dos principais recursos da KQL é sua capacidade de lidar com grandes volumes de dados de forma rápida e eficiente. Essa funcionalidade o torna ideal para analisar logs, dados de telemetria e outros tipos de Big Data. A KQL também dá suporte a uma ampla variedade de fontes de dados, incluindo dados estruturados e não estruturados, tornando-os uma ferramenta versátil para análise de dados.
No contexto do Microsoft Fabric, a KQL pode ser usada para consultar e analisar dados de várias fontes, como logs de aplicativo, métricas de desempenho e eventos do sistema. Isso pode ajudá-lo a obter insights sobre a integridade e o desempenho de seus aplicativos e infraestrutura e identificar problemas e oportunidades de otimização.
De modo geral, a KQL é uma linguagem de consulta poderosa e flexível que pode ajudar você a obter insights sobre seus dados de forma rápida e fácil, esteja você trabalhando com o Microsoft Fabric ou outras fontes de dados. Com sua sintaxe intuitiva e funcionalidades poderosas, o KQL definitivamente merece ser explorado em mais detalhes.
Nesse módulo, nos concentramos nos conceitos básicos de consultas a um Banco de Dados KQL usando primeiro KQL e, em seguida, T-SQL. Vamos nos concentrar nos elementos básicos da sintaxe T-SQL que são usados para consultas, incluindo:
Consultas SELECT, que são usadas para recuperar dados de uma ou mais tabelas. Por exemplo, você pode usar uma consulta SELECT para obter os nomes e salários de todos os funcionários em uma empresa.
Consultas WHERE, que são usadas para filtrar os dados com base em determinadas condições. Por exemplo, você pode usar uma consulta WHERE para obter os nomes dos funcionários que trabalham em um departamento específico ou que têm um salário acima de um determinado valor.
Consultas GROUP BY, que são usadas para agrupar os dados por uma ou mais colunas e executar funções de agregação nelas. Por exemplo, você pode usar uma consulta GROUP BY para obter o salário médio dos funcionários por departamento ou por país.
Consultas ORDER BY, que são usadas para classificar os dados por uma ou mais colunas em ordem crescente ou decrescente. Por exemplo, você pode usar uma consulta ORDER BY para obter os nomes dos funcionários classificados por seus salários ou por seus sobrenomes.
AVISO: não é possível criar relatórios do Power BI a partir de conjuntos de consultas com T-SQL porque o Power BI não dá suporte ao T-SQL como uma fonte de dados. O Power BI só dá suporte a KQL como a linguagem de consulta nativa para conjuntos de consultas. Se você quiser usar o T-SQL para consultar seus dados no Microsoft Fabric, precisará usar o ponto de extremidade T-SQL que emula o Microsoft SQL Server e permite executar consultas T-SQL em seus dados. No entanto, o ponto de extremidade T-SQL tem algumas limitações e diferenças em relação ao SQL Server nativo e não dá suporte à criação ou publicação de relatórios no Power BI.
OBSERVAÇÃO: Além da abordagem para efetuar pull de uma janela de consulta conforme mostrado anteriormente, você sempre pode pressionar o botão Explorar seus dados no painel principal do Banco de Dados KQL…
Dados SELECT
de nosso conjunto de dados de exemplo usando KQL
-
Nesta consulta, extraímos 100 registros da tabela Viagens. Usamos a palavra-chave
take
para pedir ao mecanismo que retorne 100 registros.Trips | take 100
Observação: O caractere de pipe
|
é usado para duas finalidades no KQL, incluindo a utilização de operadores de consulta separados em uma instrução de expressão tabular. Ele também é usado como um operador OR lógico dentro de colchetes ou colchetes redondos para indicar que você pode especificar um dos itens separados pelo caractere de pipe. -
Podemos ser mais precisos adicionando atributos específicos que gostaríamos de consultar usando a palavra-chave
project
e, em seguida, usando a palavra-chavetake
para informar ao mecanismo quantos registros retornar.OBSERVAÇÃO: o uso de
//
denota comentários usados na ferramenta de consulta Explorar seus dados do Microsoft Fabric.// Use 'project' and 'take' to view a sample number of records in the table and check the data. Trips | project vendor_id, trip_distance | take 10
-
Outra prática comum na análise é renomear colunas em nosso conjunto de consultas para torná-las mais amigáveis. Isso pode ser feito usando o novo nome de coluna seguido pelo sinal de igual e a coluna que desejamos renomear.
Trips | project vendor_id, ["Trip Distance"] = trip_distance | take 10
-
Talvez também queiramos resumir as viagens para ver quantas milhas foram percorridas:
Trips | summarize ["Total Trip Distance"] = sum(trip_distance)
Dados GROUP BY
de nosso conjunto de dados de exemplo usando KQL
- Em seguida, talvez queiramos
group by
local de retirada, o que fazemos com o operadorsummarize
. Também podemos usar o operadorproject
, que nos permite selecionar e renomear as colunas que você deseja incluir na saída. Nesse caso, nos agrupamos por bairro dentro do sistema de táxis de NY para fornecer aos nossos usuários a distância total percorrida de cada bairro.
Trips
| summarize ["Total Trip Distance"] = sum(trip_distance) by pickup_boroname
| project Borough = pickup_boroname, ["Total Trip Distance"]
- Nesse caso, temos um valor em branco, o que nunca é bom para análise, e podemos usar a função
case
junto com as funçõesisempty
eisnull
para categorizar em uma categoria Não identificada para acompanhamento.
Trips
| summarize ["Total Trip Distance"] = sum(trip_distance) by pickup_boroname
| project Borough = case(isempty(pickup_boroname) or isnull(pickup_boroname), "Unidentified", pickup_boroname), ["Total Trip Distance"]
Dados ORDER BY
de nosso conjunto de dados de exemplo usando KQL
Para dar mais sentido aos nossos dados, normalmente os ordenamos por uma coluna, e esse processo é feito na KQL com um operador sort by
ou order by
e eles agem da mesma maneira.
// using the sort by operators
Trips
| summarize ["Total Trip Distance"] = sum(trip_distance) by pickup_boroname
| project Borough = case(isempty(pickup_boroname) or isnull(pickup_boroname), "Unidentified", pickup_boroname), ["Total Trip Distance"]
| sort by Borough asc
// order by operator has the same result as sort by
Trips
| summarize ["Total Trip Distance"] = sum(trip_distance) by pickup_boroname
| project Borough = case(isempty(pickup_boroname) or isnull(pickup_boroname), "Unidentified", pickup_boroname), ["Total Trip Distance"]
| sort by Borough asc
Cláusula WHERE
para filtrar dados em nossa consulta KQL de exemplo
Ao contrário do SQL, nossa cláusula WHERE
é imediatamente chamada em nossa consulta KQL. Ainda podemos usar os operadores lógicos and
e or
dentro da cláusula where, e é avaliado como verdadeiro ou falso em relação à tabela, e pode ser uma expressão simples ou complexa que pode envolver várias colunas, operadores e funções.
// let's filter our dataset immediately from the source by applying a filter directly after the table.
Trips
| where pickup_boroname == "Manhattan"
| summarize ["Total Trip Distance"] = sum(trip_distance) by pickup_boroname
| project Borough = case(isempty(pickup_boroname) or isnull(pickup_boroname), "Unidentified", pickup_boroname), ["Total Trip Distance"]
| sort by Borough asc
Usar o T-SQL para consultar informações de resumo
O Banco de Dados KQL não dá suporte ao T-SQL nativamente, mas fornece um ponto de extremidade T-SQL que emula o Microsoft SQL Server e permite que você execute consultas T-SQL em seus dados. No entanto, o ponto de extremidade T-SQL tem algumas limitações e diferenças em relação ao SQL Server nativo. Por exemplo, ele não dá suporte à criação, alteração ou remoção de tabelas ou à inserção, atualização ou exclusão de dados. Ele também não dá suporte a algumas funções T-SQL e sintaxe que não são compatíveis com KQL. Ele foi criado para permitir que sistemas que não dão suporte à KQL usem o T-SQL para consultar os dados em um Banco de Dados KQL. Portanto, é recomendável usar o KQL como a linguagem de consulta primária para o Banco de Dados KQL, pois ele oferece mais recursos e desempenho do que o T-SQL. Você também pode usar algumas funções SQL compatíveis com KQL, como count, sum, avg, min, max, etc.
Dados SELECT
de nosso conjunto de dados de exemplo usando T-SQL
-
Nesta consulta, efetuamos pull dos primeiros 100 registros da tabela
Trips
usando a cláusulaTOP
.// We can use the TOP clause to limit the number of records returned SELECT TOP 100 * from Trips
-
Se você usar o
//
, que é um comentário na ferramenta Explorar seus dados dentro do banco de dados KQL, não poderá realçá-lo ao executar consultas T-SQL; em vez disso, você deve usar a notação de comentários SQL padrão--
. Esse hífen duplo também dirá ao mecanismo KQL para esperar T-SQL no Azure Data Explorer.-- instead of using the 'project' and 'take' keywords we simply use a standard SQL Query SELECT TOP 10 vendor_id, trip_distance FROM Trips
-
Novamente, você pode ver que os recursos padrão do T-SQL funcionam bem com a consulta em que renomeamos trip_distance para um nome mais amigável.
-- No need to use the 'project' or 'take' operators as standard T-SQL Works SELECT TOP 10 vendor_id, trip_distance as [Trip Distance] from Trips
-
Talvez também queiramos resumir as viagens para ver quantas milhas foram percorridas:
Select sum(trip_distance) as [Total Trip Distance] from Trips
OBSERVAÇÃO: o uso de aspas não é necessário no T-SQL em comparação com a consulta KQL. Observe também que os comandos
summarize
esort by
não estão disponíveis no T-SQL.
Dados GROUP BY
de nosso conjunto de dados de exemplo usando T-SQL
-
Em seguida, talvez queiramos
group by
local de retirada, o que fazemos com o operadorGROUP BY
. Também podemos usar o operadorAS
, que nos permite selecionar e renomear as colunas que você deseja incluir na saída. Nesse caso, nos agrupamos por bairro dentro do sistema de táxis de NY para fornecer aos nossos usuários a distância total percorrida de cada bairro.SELECT pickup_boroname AS Borough, Sum(trip_distance) AS [Total Trip Distance] FROM Trips GROUP BY pickup_boroname
-
Nesse caso, temos um valor em branco, o que nunca é bom para análise, e podemos usar a função
CASE
junto com a funçãoIS NULL
e o valor vazio''
para categorizar em uma categoria não identificada para acompanhamento.SELECT CASE WHEN pickup_boroname IS NULL OR pickup_boroname = '' THEN 'Unidentified' ELSE pickup_boroname END AS Borough, SUM(trip_distance) AS [Total Trip Distance] FROM Trips GROUP BY CASE WHEN pickup_boroname IS NULL OR pickup_boroname = '' THEN 'Unidentified' ELSE pickup_boroname END;
Dados ORDER BY
de nosso conjunto de dados de exemplo usando T-SQL
-
Para dar mais sentido aos nossos dados, normalmente os ordenamos por uma coluna, e esse processo é feito no T-SQL com um operador
ORDER BY
. Não existe um operador CLASSIFICAR POR em T-SQL-- Group by pickup_boroname and calculate the summary statistics of trip_distance SELECT CASE WHEN pickup_boroname IS NULL OR pickup_boroname = '' THEN 'unidentified' ELSE pickup_boroname END AS Borough, SUM(trip_distance) AS [Total Trip Distance] FROM Trips GROUP BY CASE WHEN pickup_boroname IS NULL OR pickup_boroname = '' THEN 'unidentified' ELSE pickup_boroname END -- Add an ORDER BY clause to sort by Borough in ascending order ORDER BY Borough ASC;
## Cláusula
WHERE
para filtrar dados em nossa consulta T-SQL de exemplo -
Ao contrário do KQL, nossa cláusula
WHERE
iria para o final da Instrução T-SQL; no entanto, neste caso, temos uma cláusulaGROUP BY
, que exige que usemos a instruçãoHAVING
, e usamos o novo nome da coluna, neste caso Bairro, como o nome da coluna pela qual filtrar.-- Group by pickup_boroname and calculate the summary statistics of trip_distance SELECT CASE WHEN pickup_boroname IS NULL OR pickup_boroname = '' THEN 'unidentified' ELSE pickup_boroname END AS Borough, SUM(trip_distance) AS [Total Trip Distance] FROM Trips GROUP BY CASE WHEN pickup_boroname IS NULL OR pickup_boroname = '' THEN 'unidentified' ELSE pickup_boroname END -- Add a having clause due to the GROUP BY statement HAVING Borough = 'Manhattan' -- Add an ORDER BY clause to sort by Borough in ascending order ORDER BY Borough ASC;
Limpar os recursos
Neste exercício, você criou um banco de dados KQL e configurou um conjunto de dados de exemplo para consulta. Depois disso, você consultou os dados usando o KQL e o SQL. Depois de explorar o banco de dados KQL, exclua o workspace criado para este exercício.
- Na barra à esquerda, selecione o ícone do seu workspace.
- No … menu da barra de ferramentas, selecione Configurações do Espaço de Trabalho.
- Na seção Geral, selecione Remover este espaço de trabalho.