Lekérdezési paraméterek deklarációs utasítása
A következőkre vonatkozik: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
A Kusto-nak küldött lekérdezések tartalmazhatnak név- vagy értékpárokat. A párokat lekérdezési paraméterekneknevezik, a lekérdezés szövegével együtt. A lekérdezés egy vagy több értékre hivatkozhat, ha neveket és típusokat ad meg egy lekérdezési paraméterek deklarációs utasításában.
A lekérdezési paramétereknek két fő felhasználási módja van:
- Védelmi mechanizmus az injektálási támadások ellen.
- A lekérdezések paraméterezésének módjaként.
Különösen azoknak az ügyfélalkalmazásoknak kell használniuk a mechanizmust, amelyek a felhasználó által megadott bemenetet egyesítik a Kusto-nak küldött lekérdezésekben, hogy védelmet nyújtsanak a SQL Injection-támadások Kusto-megfelelője ellen.
Lekérdezési paraméterek deklarálása
A lekérdezési paraméterekre való hivatkozáshoz a lekérdezés szövegének vagy függvényeinek először deklarálniuk kell, hogy melyik lekérdezési paramétert használja. A deklaráció minden paraméterhez megadja a nevet és a skaláris típust. Opcionálisan a paraméter alapértelmezett értékkel is rendelkezhet. Az alapértelmezett érték akkor használatos, ha a kérés nem ad konkrét értéket a paraméternek. A Kusto ezután elemzi a lekérdezési paraméter értékét az adott típusra vonatkozó szokásos elemzési szabályok szerint.
Szintaxis
declare
query_parameters
(
Name1:
Type1 [=
DefaultValue1] [,
...] );
További információ szintaxiskonvenciákról.
Paraméterek
Név | Típus | Szükséges | Leírás |
---|---|---|---|
Name1 | string |
✔️ | A lekérdezésben használt lekérdezési paraméter neve. |
Type1 | string |
✔️ | A megfelelő típus, például string vagy datetime . A felhasználó által megadott értékek sztringekként vannak kódolva. A rendszer a megfelelő elemzési módszert alkalmazza a lekérdezési paraméterre egy erősen beírt érték lekéréséhez. |
DefaultValue1 | string |
A paraméter alapértelmezett értéke. Ennek az értéknek a megfelelő skaláris típusú literálnak kell lennie. |
Jegyzet
Példa
Az ebben a szakaszban szereplő példák bemutatják, hogyan használhatja a szintaxist az első lépésekhez.
A cikkben szereplő példák a nyilvánosan elérhető tábláit használják a fürt, például a
StormEvents
adatbázis tábláját.
A cikkben szereplő példák nyilvánosan elérhető táblákat használnak, például a Weather Analytics
StormEvents
táblát, mintaadatokat.
Lekérdezési paraméterek deklarálása
Ez a lekérdezés a StormEvents táblából kéri le a stormeseményeket, ahol a közvetlen és közvetett sérülések teljes száma meghaladja a megadott küszöbértéket (alapértelmezés szerint 90). Ezután az EpisodeId, EventType, valamint az egyes események sérüléseinek teljes számát jeleníti meg.
declare query_parameters(maxInjured:long = 90);
StormEvents
| where InjuriesDirect + InjuriesIndirect > maxInjured
| project EpisodeId, EventType, totalInjuries = InjuriesDirect + InjuriesIndirect
kimeneti
EpisodeId | EventType | totalInjuries |
---|---|---|
12459 | Téli időjárás | 137 |
10477 | Túlzott hő | 200 |
10391 | Hő | 187 |
10217 | Túlzott hő | 422 |
10217 | Túlzott hő | 519 |
Lekérdezési paraméterek megadása egy ügyfélalkalmazásban
A lekérdezési paraméterek nevét és értékeit a lekérdezést készítő alkalmazás string
értékként adja meg. A név nem ismétlődhet.
Az értékek értelmezése a lekérdezési paraméterek deklarációs utasítása alapján történik. Minden érték úgy van elemezve, mintha egy lekérdezés törzsében konstans lenne. Az elemzés a lekérdezési paraméterek deklarációs utasítása által megadott típusnak megfelelően történik.
REST API
A lekérdezési paramétereket az ügyfélalkalmazások a kérelemtörzs JSON-objektumának properties
pontján keresztül, egy beágyazott tulajdonságcsomagban, Parameters
. Itt látható például egy REST API-hívás törzse a Kusto felé, amely kiszámítja egy felhasználó életkorát, feltehetően azzal, hogy az alkalmazás kéri a felhasználó születésnapját.
{
"ns": null,
"db": "myDB",
"csl": "declare query_parameters(birthday:datetime); print strcat(\"Your age is: \", tostring(now() - birthday))",
"properties": "{\"Options\":{},\"Parameters\":{\"birthday\":\"datetime(1970-05-11)\",\"courses\":\"dynamic(['Java', 'C++'])\"}}"
}
Kusto SDK-k
Ha tudni szeretné, hogyan adhatja meg a lekérdezési paraméterek nevét és értékeit a Kusto ügyfélkódtárakhasználatakor, olvassa el A felhasználói bevitelivédelme lekérdezési paraméterekkel című témakört.
Kusto.Explorer
A szolgáltatásnak küldött kéréskor küldött lekérdezési paraméterek beállításához használja a lekérdezési paramétereket "csavarkulcs" ikont (ALT
+ P
).