Join lintas kluster
Untuk diskusi umum tentang kueri lintas kluster, lihat kueri lintas kluster atau lintas database
Dimungkinkan untuk melakukan operasi join pada himpunan data yang berada di kluster yang berbeda. Contohnya:
T | ... | join (cluster("SomeCluster").database("SomeDB").T2 | ...) on Col1 // (1)
cluster("SomeCluster").database("SomeDB").T | ... | join (cluster("SomeCluster2").database("SomeDB2").T2 | ...) on Col1 // (2)
Pada contoh di atas, operasi join adalah join lintas kluster, dengan asumsi bahwa kluster saat ini bukan "SomeCluster" atau "SomeCluster2".
Lihat contoh berikut:
cluster("SomeCluster").database("SomeDB").T | ... | join (cluster("SomeCluster").database("SomeDB2").T2 | ...) on Col1
operasi join bukanlah join lintas kluster karena kedua operannya berasal dari kluster yang sama.
Saat Kusto menemukan join lintas kluster, secara otomatis akan memutuskan tempat untuk menjalankan operasi join itu sendiri. Keputusan ini dapat memiliki salah satu dari tiga hasil yang mungkin:
- Jalankan operasi join pada kluster operan kiri, operan kanan akan pertama kali diambil oleh kluster ini. (bergabung dalam contoh (1) akan dijalankan pada kluster lokal)
- Jalankan operasi join pada kluster operan kanan, operan kiri akan pertama kali diambil oleh kluster ini. (bergabung dalam contoh (2) akan dieksekusi pada "SomeCluster2")
- Jalankan operasi join secara lokal (artinya pada kluster yang menerima kueri), kedua operan akan diambil terlebih dahulu oleh kluster lokal.
Keputusan sebenarnya tergantung pada kueri tertentu. Strategi jarak jauh join otomatis adalah (versi yang disederhanakan): "Jika salah satu operan bersifat lokal, join akan dijalankan secara lokal. Jika kedua operan jarak jauh, join akan dieksekusi pada kluster operan kanan.
Terkadang performa kueri dapat ditingkatkan jika strategi jarak jauh otomatis tidak diikuti. Dalam hal ini, jalankan operasi join pada kluster operan terbesar.
Jika dalam contoh (1) himpunan dasar yang dihasilkan oleh T | ... jauh lebih kecil daripada yang diproduksi oleh cluster("SomeCluster").database("SomeDB").T2 | ..., lebih efisien untuk menjalankan operasi join pada "SomeCluster".
Operasi ini dapat dilakukan dengan memberikan Kusto petunjuk jarak jauh join. Sintaksnya adalah:
T | ... | join hint.remote=<strategy> (cluster("SomeCluster").database("SomeDB").T2 | ...) on Col1
Berikut adalah nilai-nilai hukum untuk strategy
left- jalankan join pada kluster operan kiriright- jalankan join pada kluster operan kananlocal- jalankan join pada kluster dari kluster saat iniauto- (default) biarkan Kusto membuat keputusan jarak jauh otomatis
Catatan
Petunjuk bergabung kembali akan diabaikan oleh Kusto jika strategi yang diisyaratkan tidak berlaku untuk operasi join.
Kapabilitas ini tidak didukung di Azure Monitor