Tutorial: Unir dados de várias tabelas
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
A junção de dados de várias tabelas permite uma análise mais abrangente, combinando informações de diferentes fontes e criando novas relações entre os pontos de dados. Na KQL (Linguagem de Consulta Kusto), os operadores de junção e pesquisa são usados para combinar dados entre tabelas.
Neste tutorial, você aprenderá como:
Os exemplos neste tutorial usam a StormEvents
tabela, que está disponível publicamente no cluster de ajuda. Para explorar com seus próprios dados, crie seu próprio cluster gratuito.
Os exemplos neste tutorial usam a StormEvents
tabela, que está disponível publicamente nos dados de exemplo da análise meteorológica.
Pré-requisitos
Para executar as consultas a seguir, você precisa de um ambiente de consulta com acesso aos dados de exemplo. Você pode usar um dos itens a seguir:
- Uma conta da Microsoft ou identidade de usuário do Microsoft Entra para entrar no cluster de ajuda
- Uma conta da Microsoft ou identidade de usuário do Microsoft Entra
- Um espaço de trabalho do Fabric com uma capacidade habilitada para o Microsoft Fabric
Usar o operador de junção
Há duas tabelas no banco de dados Samples relacionadas a eventos de tempestade. Um é chamado StormEvents
e o outro é chamado PopulationData
de . Nesta seção, você unirá as tabelas para realizar análises de dados que não seriam possíveis com uma tabela sozinha.
Entender os dados
Use o operador take para ver quais dados cada tabela contém.
StormEvents
| take 5
A tabela a seguir mostra apenas 6 das 22 colunas retornadas.
StartTime | EndTime | EpisodeId | EventId | Estado | EventType | ... |
---|---|---|---|---|---|---|
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | FLÓRIDA | Tornado | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12,554 | 68796 | MISSISSIPI | Thunderstorm Wind | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEÓRGIA | Thunderstorm Wind | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLÂNTICO SUL | Tromba de água | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLÓRIDA | Chuva Forte | ... |
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 muito mais colunas e tem PopulationData
apenas uma outra coluna que contém a população do estado especificado.
Junte-se às tabelas
Junte-se à PopulationData
tabela na StormEvents
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
Há muitos tipos de junções que você pode executar com o join
operador. Veja uma lista de tipos de junção.
Usar o operador de pesquisa
O operador de pesquisa otimiza o desempenho de consultas em que uma tabela de fatos é enriquecida com dados de uma tabela de dimensões. Ele estende a tabela de fatos com valores pesquisados em uma tabela de dimensões. Para obter o melhor desempenho, o sistema, por padrão, pressupõe que a tabela à esquerda é a tabela de fatos maior e a tabela à direita é a tabela de dimensão menor. Isso é exatamente oposto à suposição usada pelo operador join
.
No cluster de ajuda, há outro banco de dados chamado ContosoSales
que contém dados de vendas. A consulta a seguir usa lookup
para mesclar as SalesFact
tabelas e Products
desse banco 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 | TotalSales |
---|---|
Games and Toys | 966782 |
TV and Video | 715024 |
Cameras and camcorders | 323003 |
Computadores | 313487 |
Home Appliances | 237508 |
Áudio | 192671 |
Telefones celulares | 50342 |
Music, Movies and Audio Books | 33376 |
Observação
O lookup
operador oferece suporte apenas a dois tipos de junção: leftouter
e inner
.
Unir tabelas geradas por consulta
As junções também podem ser feitas com base nos resultados da consulta da mesma tabela.
Digamos que você queira criar uma lista de estados em que ocorreram eventos de raios e avalanches. Use o operador de junção para mesclar as linhas de duas tabelas, uma contendo dados sobre eventos de relâmpagos e a outra contendo dados sobre eventos de avalanche, 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 junção
- Saiba como realizar consultas entre bancos de dados e entre clusters
- Siga o tutorial de criação de visualizações geoespaciais