Tutorial: Associar dados de várias tabelas
A associação de dados de várias tabelas permite uma análise mais abrangente ao combinar informações de diferentes origens e criar novas relações entre pontos de dados. No Linguagem de Pesquisa Kusto (KQL), os operadores de associação e pesquisa são utilizados para combinar dados entre tabelas.
Neste tutorial, irá aprender a:
Os exemplos neste tutorial utilizam o cluster de ajuda publicamente disponível. Para explorar com os seus próprios dados, crie o seu próprio cluster gratuito.
Pré-requisitos
- Uma conta Microsoft ou Microsoft Entra identidade de utilizador para iniciar sessão no cluster de ajuda
Utilizar o operador de associação
Existem duas tabelas na base de dados Exemplos relacionadas com eventos storm. Um chama-se StormEvents
e o outro chama-se PopulationData
. Nesta secção, irá associar as tabelas para realizar análises de dados que não seriam possíveis apenas com uma tabela.
Compreender os dados
Utilize o operador take para ver os dados que cada tabela contém.
StormEvents
| take 5
A tabela seguinte mostra apenas 6 das 22 colunas devolvidas.
StartTime | EndTime | EpisodeId | EventId | Estado | EventType | ... |
---|---|---|---|---|---|---|
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | FLORIDA | Tornado | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12554 | 68796 | MISSISSIPPI | Vento trovoada | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEÓRGIA | Vento trovoada | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | SUL DO ATLÂNTICO | Waterspout | ... |
2007-09-18T20:00:00Z | 09-2007-19T18:00:00Z | 11074 | 60904 | FLORIDA | Chuva Intensa | ... |
PopulationData
| take 5
Saída
Estado | População |
---|---|
ALABAMA | 4918690 |
ALASCA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
CALIFÓRNIA | 39562900 |
Ambas as tabelas contêm uma State
coluna. A StormEvents
tabela tem muitas mais colunas e a PopulationData
tem apenas uma outra coluna que contém a população do estado especificado.
Associar as tabelas
Junte-se à PopulationData
tabela com StormEvents
na coluna comum State
para encontrar o total de danos materiais causados por tempestades per capita por estado.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
Adicione | render columnchart
à consulta para visualizar o resultado.
Dica
Existem muitos tipos de associações que pode realizar com o join
operador. Veja uma lista de sabores de associação.
Utilizar o operador de pesquisa
O operador de pesquisa otimiza o desempenho das consultas em que uma tabela de factos é enriquecida com dados de uma tabela de dimensões. Expande a tabela de factos com valores que são pesquisados numa tabela de dimensões. Para um melhor desempenho, o sistema, por predefinição, pressupõe que a tabela esquerda é a tabela de factos maior e a tabela direita é a tabela de dimensão mais pequena. Isto é exatamente oposto ao pressuposto que é utilizado pelo join
operador.
No cluster de ajuda, existe outra base de dados chamada ContosoSales
que contém dados de vendas. A seguinte consulta utiliza lookup
para intercalar as SalesFact
tabelas e Products
a partir desta base de dados para obter o total de vendas por categoria de produto.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Saída
ProductCategoryName | TotalDeVendas |
---|---|
Jogos e Brinquedos | 966782 |
TV and Video | 715024 |
Câmaras e câmaras de vídeo portáteis | 323003 |
Computadores | 313487 |
Eletrodomésticos | 237508 |
Áudio | 192671 |
Telemóveis | 50342 |
Música, Filmes e Audiolivros | 33376 |
Nota
O lookup
operador só suporta dois tipos de associação: leftouter
e inner
.
Associar tabelas geradas por consultas
As associações também podem ser feitas com base nos resultados da consulta da mesma tabela.
Digamos que pretende criar uma lista de estados em que ocorreram eventos de relâmpagos e avalanches. Utilize o operador de associação para intercalar as linhas de duas tabelas ( uma que contém dados sobre eventos relâmpagos e outra que contém dados sobre eventos de avalanches) com base na State
coluna.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Saída
Estado |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Conteúdo relacionado
- Saiba mais sobre os diferentes tipos de operador de associação
- Saiba como executar consultas entre bases de dados e entre clusters
- Siga o tutorial create geospatial visualizations (Criar visualizações geoespaciais )
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários