operator lookup
Memperluas kolom tabel fakta dengan nilai yang dicari dalam tabel dimensi.
FactTable | lookup kind=leftouter (DimensionTable) on CommonColumn, $left.Col1 == $right.Col2
Di sini, hasilnya adalah tabel yang memperluas FactTable
($left
) dengan data dari DimensionTable
(yang direferensikan oleh $right
) dengan melakukan pencarian setiap pasangan (CommonColumn
,Col
) dari tabel sebelumnya dengan tiap-tiap pasangan (CommonColumn1
,Col2
) di tabel terakhir.
Untuk perbedaan antara tabel fakta dan dimensi, lihat tabel fakta dan dimensi.
lookup
Operator tersebut menjalankan operasi yang mirip dengan operator join dengan perbedaan berikut:
- Hasilnya tidak mengulangi kolom dari
$right
tabel yang menjadi dasar untuk operasi gabungan. - Hanya dua jenis pencarian yang didukung,
leftouter
daninner
, denganleftouter
yang menjadi pencarian default-nya. - Dalam hal performa, sistem secara default mengasumsikan bahwa tabel
$left
adalah tabel (fakta) yang lebih besar, dan tabel$right
adalah tabel (dimensi) yang lebih kecil. Ini persis berlawanan dengan asumsi yang digunakan oleh operatorjoin
. - Operator
lookup
otomatis menyiarkan tabel$right
ke tabel$left
(pada dasarnya, tabel tersebut berperilaku seolah-olahhint.broadcast
ditentukan). Ini membatasi ukuran$right
tabel.
Catatan
Jika sisi kanan pencarian lebih besar dari beberapa puluh MB, kueri akan gagal.
Anda bisa menjalankan kueri berikut untuk memperkirakan ukuran sisi kanan dalam byte:
rightSide
| summarize sum(estimate_data_size(*))
Sintaks
LeftTable|
lookup
[kind
=
(leftouter
|inner
)] (
KondisiRightTable)
on
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Jenis | Diperlukan | Deskripsi |
---|---|---|---|
LeftTable | string |
✔️ | Tabel atau ekspresi tabular yang menjadi dasar pencarian. Dilambangkan sebagai $left . |
RightTable | string |
✔️ | Tabel atau ekspresi tabular yang digunakan untuk "mengisi" kolom baru dalam tabel fakta. Dilambangkan sebagai $right . |
Atribut | string |
✔️ | Daftar satu atau beberapa aturan yang dibatasi koma yang menjelaskan bagaimana baris dari LeftTable dicocokkan dengan baris dari RightTable. Beberapa aturan dievaluasi menggunakan operator logis and . Lihat Aturan. |
kind |
string |
Menentukan cara memperlakukan baris di LeftTable yang tidak cocok di RightTable. Secara default, leftouter digunakan, yang berarti semua baris tersebut akan muncul dalam output dengan nilai null yang digunakan untuk nilai yang hilang dari kolom RightTable yang ditambahkan oleh operator. Jika inner digunakan, baris tersebut dihilangkan dari output. Jenis gabungan lainnya tidak didukung oleh lookup operator. |
Aturan
Jenis aturan | Sintaks | Predikat |
---|---|---|
Kesetaraan berdasarkan nama | ColumnName | where LeftTable.ColumnName== RightTable.ColumnName |
Kesetaraan berdasarkan nilai | $left. LeftColumn== $right. RightColumn |
where $left. LeftColumn== $right. *RightColumn |
Catatan
Dalam kasus 'kesetaraan berdasarkan nilai', nama kolom harus memenuhi tabel pemilik yang berlaku yang dilambangkan dengan notasi $left
dan $right
.
Mengembalikan
Tabel dengan:
- Kolom untuk setiap kolom di masing-masing dari dua tabel, termasuk kunci yang cocok. Kolom sisi kanan akan otomatis diganti namanya secara jika ada konflik nama.
- Baris untuk setiap pencocokan antar tabel input. Pencocokan adalah baris yang dipilih dari satu tabel yang memiliki nilai yang sama untuk semua bidang
on
sebagai baris di tabel lainnya. - Atribut (tombol pencarian) hanya akan muncul sekali dalam tabel output.
- Jika
kind
tidak ditentukan ataukind=leftouter
, maka selain kecocokan dalam, ada baris untuk setiap baris di sebelah kiri (dan/atau kanan), meskipun tidak memiliki kecocokan. Dalam hal ini, sel output yang tidak cocok berisi null. - Jika
kind=inner
, maka ada baris dalam output untuk setiap kombinasi baris yang cocok dari kiri dan kanan.
Contoh
let FactTable=datatable(Row:string,Personal:string,Family:string) [
"1", "Bill", "Gates",
"2", "Bill", "Clinton",
"3", "Bill", "Clinton",
"4", "Steve", "Ballmer",
"5", "Tim", "Cook"
];
let DimTable=datatable(Personal:string,Family:string,Alias:string) [
"Bill", "Gates", "billg",
"Bill", "Clinton", "billc",
"Steve", "Ballmer", "steveb",
"Tim", "Cook", "timc"
];
FactTable
| lookup kind=leftouter DimTable on Personal, Family
Baris | Pribadi | Keluarga | Alias |
---|---|---|---|
1 | Tagihan | Gate | billg |
2 | Tagihan | Clinton | billc |
3 | Tagihan | Clinton | billc |
4 | Steve | Ballmer | steveb |
5 | Tim | Cook | timc |
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk