1
votes

La requête Kusto n'a pas pu être analysée

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 >


0 commentaires

3 Réponses :


2
votes

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>


0 commentaires

1
votes

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):

opérateur JOIN :

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 JOIN code> version:

┌─────┬───────┬──────┬────────┐
│ key │ value │ key1 │ value1 │
├─────┼───────┼──────┼────────┤
│   1 │ a     │    1 │ c      │
│   1 │ a     │    1 │ d      │
└─────┴───────┴──────┴────────┘

Sortie:

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;

Démo strong> p> p>


0 commentaires

1
votes

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


0 commentaires