Felügyeleti parancsok áttekintése

Ez a cikk a Kusto kezeléséhez használt felügyeleti parancsokat, más néven vezérlőparancsokat ismerteti. A felügyeleti parancsok olyan kérések a szolgáltatáshoz, amelyek nem feltétlenül az adatbázistáblák adatai, vagy a szolgáltatás állapotának módosítása stb.

Felügyeleti parancsok megkülönböztetése a lekérdezésektől

A Kusto három mechanizmussal különbözteti meg a lekérdezéseket és a felügyeleti parancsokat: a nyelv, a protokoll és az API szintjén. Ez biztonsági okokból történik.

Nyelvi szinten a kérés szövegének első karaktere határozza meg, hogy a kérés felügyeleti parancs vagy lekérdezés-e. A felügyeleti parancsnak pont (.) karakterrel kell kezdődnie, és egyetlen lekérdezés sem indulhat el ezzel a karakterrel.

A protokoll szintjén a rendszer más HTTP/HTTPS-végpontokat használ a vezérlési parancsokhoz, mint a lekérdezésekhez.

AZ API szintjén a rendszer különböző függvényeket használ a felügyeleti parancsok küldésére a lekérdezések helyett.

Lekérdezések és felügyeleti parancsok kombinálása

A felügyeleti parancsok hivatkozhatnak lekérdezésekre (de fordítva nem) vagy más felügyeleti parancsra. Többféle támogatott forgatókönyv létezik:

  • AdminThenQuery: A rendszer végrehajt egy felügyeleti parancsot, amelynek eredménye (ideiglenes adattáblaként) egy lekérdezés bemeneteként szolgál.
  • AdminFromQuery: A rendszer végrehajt egy lekérdezést vagy egy .show rendszergazdai parancsot, amelynek eredménye (ideiglenes adattáblaként) egy felügyeleti parancs bemeneteként szolgál.

Vegye figyelembe, hogy a teljes kombináció gyakorlatilag egy felügyeleti parancs, nem lekérdezés, ezért a kérés szövegének pont (.) karakterrel kell kezdődnie, és a kérést el kell küldeni a szolgáltatás felügyeleti végpontjának.

Azt is vegye figyelembe, hogy a lekérdezési utasítások a szöveg lekérdezési részén belül jelennek meg (nem előzhetik meg magát a parancsot).

Megjegyzés

Javasoljuk, hogy korlátozza az AdminThenQuery műveletek használatát.

Az AdminThenQuery a következő két módszer egyikével jelenik meg:

  • A lekérdezés tehát egy cső (|) karakter használatával úgy kezeli a felügyeleti parancs eredményeit, mintha bármely más adattermelő lekérdezési operátor lenne.
  • Egy pontosvessző (;) karakter használatával, amely a felügyeleti parancs eredményeit egy speciális szimbólumba $command_resultsvezeti be, amelyet aztán tetszőleges számú alkalommal használhat a lekérdezésben.

Például:

// 1. Using pipe: Count how many tables are in the database-in-scope:
.show tables
| count

// 2. Using semicolon: Count how many tables are in the database-in-scope:
.show tables;
$command_results
| count

// 3. Using semicolon, and including a let statement:
.show tables;
let useless=(n:string){strcat(n,'-','useless')};
$command_results | extend LastColumn=useless(TableName)

Az AdminFromQuery forgatókönyvet a <| karakterkombináció jelzi. A következő példában például egy olyan lekérdezést hajtunk végre, amely egyetlen oszlopból (string típus str elnevezéssel) és egyetlen sorból álló táblát hoz létre, és a célként szolgáló adatbázisban a MyTable táblanévként írja be:

.set MyTable <|
let text="Hello, World!";
print str=text