lookup 연산자
적용 대상: ✅Microsoft Fabric✅✅
차원 테이블에서 조회된 값을 사용하여 팩트 테이블의 열을 확장합니다.
예를 들어 다음 쿼리는 조회를 수행하여 FactTable
($left
)를 DimensionTable
($right
)의 데이터로 확장하는 테이블을 만듭니다. 조회는 FactTable
각 쌍(CommonColumn
, Col1
)을 DimensionTable
각 쌍(CommonColumn
, Col2
)과 일치합니다. 팩트 테이블과 차원 테이블의 차이점은 팩트 테이블과 차원 테이블을 참조 하세요.
FactTable | lookup kind=leftouter (DimensionTable) on CommonColumn, $left.Col1 == $right.Col2
연 lookup
산자는 다음과 같은 차이점이 있는 조인 연산 자와 유사한 작업을 수행합니다.
- 결과는 조인 작업의 기초가
$right
되는 테이블의 열을 반복하지 않습니다. - 두 종류의 조회만 지원
leftouter
되며inner
leftouter
기본값이 됩니다. - 성능 측면에서 시스템은 기본적으로 테이블이
$left
더 큰(팩트) 테이블이고$right
테이블이 더 작은(차원) 테이블이라고 가정합니다. 이는 연산자가 사용하는 가정과 정확히 반대입니다join
. - 연산자는
lookup
테이블을 테이블로$right
자동으로 브로드캐스트$left
합니다(기본적으로 지정된 것처럼hint.broadcast
동작). 이렇게 하면 테이블의 크기가 제한됩니다$right
.
참고 항목
조회의 오른쪽이 수십MB보다 크면 쿼리가 실패합니다.
다음 쿼리를 실행하여 오른쪽의 크기를 바이트 단위로 추정할 수 있습니다.
rightSide
| summarize sum(estimate_data_size(*))
구문
LeftTable|
lookup
[kind
=
(leftouter
|inner
)] (
RightTable)
on
특성
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
규칙
규칙 종류 | 구문 | Predicate |
---|---|---|
이름별 같음 | ColumnName |
where
LeftTable.ColumnName== RightTable입니다.ColumnName |
값별 같음 |
$left.
LeftColumn== $right. RightColumn |
where
$left.
LeftColumn== $right. *RightColumn |
참고 항목
'값별 같음'의 경우 열 이름은 $right
.
반품
다음이 포함된 테이블:
- 일치하는 키를 포함하여 두 테이블의 각 열에 대한 열입니다. 이름 충돌이 있는 경우 오른쪽 열의 이름이 자동으로 바뀝니다.
- 입력 테이블 간의 모든 일치 항목에 대한 행입니다. 일치 항목은 한 테이블에서 선택된 행이며 모든
on
필드에 대해 다른 테이블의 행과 같은 값을 가지고 있습니다. - 특성(조회 키)는 출력 테이블에 한 번만 나타납니다.
-
kind
지정되지 않았거나kind=leftouter
내부 일치 항목 외에도 일치하는 항목이 없더라도 왼쪽(및/또는 오른쪽)의 모든 행에 대한 행이 있습니다. 이 경우 일치하지 않는 출력 셀에는 null 값이 포함되어 있습니다. - 이 경우
kind=inner
출력에는 왼쪽과 오른쪽에서 일치하는 행의 모든 조합에 대한 행이 있습니다.
예제
다음 예제에서는 Personal
및 Family
열의 일치 값에 따라 FactTable
DimTable
간에 왼쪽 외부 조인을 수행하는 방법을 보여 줍니다.
let FactTable=datatable(Row:string,Personal:string,Family:string) [
"1", "Rowan", "Murphy",
"2", "Ellis", "Turner",
"3", "Ellis", "Turner",
"4", "Maya", "Robinson",
"5", "Quinn", "Campbell"
];
let DimTable=datatable(Personal:string,Family:string,Alias:string) [
"Rowan", "Murphy", "rowanm",
"Ellis", "Turner", "ellist",
"Maya", "Robinson", "mayar",
"Quinn", "Campbell", "quinnc"
];
FactTable
| lookup kind=leftouter DimTable on Personal, Family
출력
Row | 개인적 | 패밀리 | Alias |
---|---|---|---|
1 | 마가목 | 머피 | rowanm |
2 | 엘리스 | 터너 | ellist |
3 | 엘리스 | 터너 | ellist |
4 | 마야 주 | 로빈슨 | mayar |
5 | 퀸 | 캠벨 | quinnc |