J'ai SecurityLog avec des champs tels que DstIP_s et je souhaite afficher les enregistrements correspondant à ma table trojanDst
let trojanDst = datatable (DstIP_s:string) [ "1.1.1.1","2.2.2.2","3.3.3.3" ]; SecurityLog | | join trojanDst on DstIP_s
J'obtiens une erreur La requête n'a pas pu être analysée ? p >
3 Réponses :
La requête que vous avez publiée a un tube redondant ( |
) avant la jointure
.
Du point de vue de l'efficacité, assurez-vous que le côté gauche de la jointure
est le plus petit, comme suggéré ici: https://docs.microsoft.com/en-us/azure/kusto/query/best-practices#join-operator < / a>
C'est trop long pour un commentaire. Comme l'a souligné @Yoni L , le problème est l'opérateur de tube doublé.
Pour toute personne ayant un arrière-plan SQL, la jointure
peut être un peu contre-intuitive (en réalité, c'est kind=innerunique
):
genre non spécifié, genre = innerunique
Une seule ligne du côté gauche correspond à chaque valeur de on clé. La sortie contient une ligne pour chaque correspondance de cette ligne avec des lignes de la droite.
Il y a une ligne dans la sortie pour chaque combinaison de lignes correspondantes de gauche à droite.
âââââââ¬ââââââââ¬âââââââ¬âââââââââ â key â value â key1 â value1 â âââââââ¼ââââââââ¼âââââââ¼ââââââââ⤠â 1 â b â 1 â c â â 1 â a â 1 â c â â 1 â b â 1 â d â â 1 â a â 1 â d â âââââââ´ââââââââ´âââââââ´âââââââââ
Output:
let t1 = datatable(key:long, value:string) [ 1, "a", 1, "b" ]; let t2 = datatable(key:long, value:string) [ 1, "c", 1, "d" ]; t1| join kind=inner t2 on key;
démo strong> p> style SQL Sortie: Démo strong> p> p>
JOIN code> version:
âââââââ¬ââââââââ¬âââââââ¬âââââââââ
â key â value â key1 â value1 â
âââââââ¼ââââââââ¼âââââââ¼âââââââââ¤
â 1 â a â 1 â c â
â 1 â a â 1 â d â
âââââââ´ââââââââ´âââââââ´âââââââââ
let t1 = datatable(key:long, value:string)
[
1, "a",
1, "b"
];
let t2 = datatable(key:long, value:string)
[
1, "c",
1, "d"
];
t1| join t2 on key;
Il existe de nombreux types de jointures dans KQL tels que innerunique, inner, leftouter, rightouter, fullouter, anti et plus. ici vous pouvez trouver la liste complète