자습서: 여러 테이블의 데이터 조인
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
여러 테이블의 데이터를 조인하면 여러 원본의 정보를 결합하고 데이터 요소 간에 새 관계를 만들어 보다 포괄적인 분석을 할 수 있습니다. KQL(Kusto 쿼리 언어)에서 조인 및 조회 연산자는 테이블 간에 데이터를 결합하는 데 사용됩니다.
이 자습서에서는 다음 작업을 수행하는 방법을 알아봅니다.
이 자습서의 예제에서는 도움말 클러스터에서 공개적으로 사용할 수 있는 테이블을 사용합니다StormEvents
. 사용자 고유의 데이터를 사용하여 탐색하려면 사용자 고유의 무료 클러스터를 만듭니다.
이 자습서의 예제에서는 Weather Analytics 샘플 데이터에서 공개적으로 사용할 수 있는 테이블을 사용합니다StormEvents
.
필수 조건
다음 쿼리를 실행하려면 샘플 데이터에 액세스할 수 있는 쿼리 환경이 필요합니다. 다음 중 하나를 사용할 수 있습니다.
- 도움말 클러스터에 로그인 할 Microsoft 계정 또는 Microsoft Entra 사용자 ID
- Microsoft 계정 또는 Microsoft Entra 사용자 ID
- Microsoft Fabric 사용 용량이 있는 패브릭 작업 영역
조인 연산자 사용
샘플 데이터베이스에는 Storm 이벤트와 관련된 두 개의 테이블이 있습니다. 하나는 호출 StormEvents
되고 다른 하나는 호출 PopulationData
됩니다. 이 섹션에서는 테이블을 조인하여 하나의 테이블만으로는 불가능한 데이터 분석을 수행합니다.
데이터 이해
take 연산자를 사용하여 각 테이블에 포함된 데이터를 확인합니다.
StormEvents
| take 5
다음 표에서는 반환된 22개 열 중 6개만 보여 줍니다.
StartTime | EndTime | EpisodeId | EventId | State(상태) | EventType | ... |
---|---|---|---|---|---|---|
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | 플로리다 | 토네이도 | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12,554 | 68796 | 미시시피 | 뇌우를 동반한 바람 | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | 그루지야 | 뇌우를 동반한 바람 | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTIC SOUTH | Waterspout | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | 플로리다 | Heavy Rain | ... |
PopulationData
| take 5
출력
State(상태) | 채우기 |
---|---|
ALABAMA | 4918690 |
알래스카 | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
캘리포니아 | 39562900 |
두 테이블 모두 열이 포함되어 있습니다 State
. StormEvents
테이블에는 더 많은 열이 PopulationData
있으며 지정된 상태의 모집단을 포함하는 다른 열은 하나뿐입니다.
테이블 조인
PopulationData
공통 State
열에 테이블을 StormEvents
조인하여 주별 1인당 폭풍으로 인한 총 재산 피해를 찾습니다.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
쿼리에 추가하여 | render columnchart
결과를 시각화합니다.
팁
연산자를 사용하여 수행할 수 있는 여러 유형의 조인이 join
있습니다. 조인 버전 목록을 참조하세요.
조회 연산자 사용
조회 연산자는 팩트 테이블이 차원 테이블의 데이터로 보강되는 쿼리의 성능을 최적화합니다. 차원 테이블에서 조회되는 값으로 팩트 테이블을 확장합니다. 최상의 성능을 위해 시스템은 기본적으로 왼쪽 테이블이 더 큰 팩트 테이블이고 오른쪽 테이블은 더 작은 차원 테이블이라고 가정합니다. 이는 join
연산자가 사용하는 가정과 정확히 반대입니다.
도움말 클러스터에는 판매 데이터를 포함하는 다른 데이터베이스가 있습니다 ContosoSales
. 다음 쿼리는 이 데이터베이스의 SalesFact
테이블과 Products
테이블을 병합하여 제품 범주별 총 매출을 가져오는 데 사용됩니다lookup
.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
출력
ProductCategoryName | TotalSales |
---|---|
Games and Toys | 966782 |
TV 및 비디오 | 715024 |
Cameras and camcorders | 323003 |
컴퓨터 | 313487 |
Home Appliances | 237508 |
오디오 | 192671 |
휴대 전화 | 50342 |
Music, Movies and Audio Books | 33376 |
참고 항목
연산자는 lookup
두 가지 조인 버전만 지원합니다. leftouter
inner
쿼리 생성 테이블 조인
조인은 동일한 테이블의 쿼리 결과에 따라 수행할 수도 있습니다.
번개와 눈사태 이벤트가 발생한 상태 목록을 만들려는 경우를 가정해 보겠습니다. 조인 연산자를 사용하여 열에 따라 번개 이벤트에 대한 데이터를 포함하고 다른 하나는 눈사태 이벤트에 대한 데이터를 포함하는 두 테이블의 행을 State
병합합니다.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
출력
State(상태) |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
콜로라도주 |
IDAHO |
네바다주 |
관련 콘텐츠
- 다양한 종류의 조인 연산자에 대해 알아보기
- 데이터베이스 간 및 클러스터 간 쿼리를 수행하는 방법 알아보기
- 지리 공간적 시각화 만들기 자습서를 따릅니다.