Odpovědi HTTP pro dotazování nebo správu

Stav odpovědi

Stavový řádek odpovědi HTTP se řídí standardními kódy odpovědi HTTP. Například kód 200 označuje úspěch.

V současné době se používají následující stavové kódy, ale může se vrátit jakýkoli platný kód HTTP.

Kód Podkód Description
100 Pokračovat Klient může pokračovat v odesílání požadavku.
200 OK Požadavek se úspěšně začal zpracovávat.
400 BadRequest Požadavek je špatně vytvořený a selhal (trvale).
401 Neautorizováno Klient se musí nejprve ověřit.
403 Forbidden Žádost klienta byla zamítnuta.
404 NotFound Požadavek odkazuje na neexistující entitu.
413 PayloadTooLarge Datová část požadavku překročila limity.
429 TooManyRequests Žádost byla zamítnuta kvůli omezování.
504 Časový limit Vypršel časový limit požadavku.
520 Chyba služby Služba zjistila chybu při zpracování požadavku.

Poznámka

Stavový kód 200 ukazuje, že zpracování požadavku bylo úspěšně spuštěno, a ne že se úspěšně dokončilo. Selhání, ke kterým došlo během zpracování žádosti po vrácení stavového kódu 200, se nazývají "částečná selhání dotazů", a když k nim dojde, vkládají se do datového proudu odpovědi speciální indikátory, které klienta upozorní, že k nim došlo.

Hlavičky odpovědi

Vrátí se následující vlastní hlavičky.

Vlastní hlavička Description
x-ms-client-request-id Jedinečný identifikátor požadavku odeslaný v hlavičce požadavku se stejným názvem nebo nějakým jedinečným identifikátorem.
x-ms-activity-id Globálně jedinečný identifikátor korelace požadavku. Vytvořila ho služba.

Text odpovědi

Pokud je stavový kód 200, text odpovědi je dokument JSON, který zakóduje výsledky dotazu nebo příkazu pro správu jako posloupnost obdélníkových tabulek. Podrobnosti najdete níže.

Poznámka

Posloupnost tabulek se odráží v sadě SDK. Například při použití knihovny Kusto.Data rozhraní .NET Framework se pak posloupnost tabulek stane výsledkem v objektu System.Data.IDataReader vráceném sadou SDK.

Pokud stavový kód označuje chybu 4xx nebo 5xx jinou než 401, text odpovědi je dokument JSON, který zakóduje podrobnosti o selhání. Další informace najdete v pokynech k rozhraní Microsoft REST API.

Poznámka

Pokud hlavička Accept není součástí požadavku, text odpovědi na chybu nemusí být nutně dokument JSON.

Kódování JSON sekvence tabulek

Kódování JSON sekvence tabulek je jeden kontejner vlastností JSON s následujícími páry název/hodnota.

Name Hodnota
Tabulky Pole kontejneru vlastností Tabulka.

Kontejner vlastností Tabulka obsahuje následující páry název/hodnota.

Name Hodnota
TableName Řetězec, který identifikuje tabulku.
Sloupce Pole kontejneru vlastností Sloupec.
Řádky Jedná se o matici řádků.

Kontejner vlastností Sloupec obsahuje následující dvojice název/hodnota.

Name Hodnota
ColumnName Řetězec, který identifikuje sloupec.
DataType Řetězec, který poskytuje přibližný typ .NET sloupce.
ColumnType Řetězec, který poskytuje skalární datový typ sloupce.

Pole Řádek má stejné pořadí jako příslušné pole Sloupce. Pole Řádek obsahuje také jeden prvek, který se shoduje s hodnotou řádku pro příslušný sloupec. Skalární datové typy, které nelze reprezentovat ve formátu JSON, jako datetime jsou a timespan, jsou reprezentované jako řetězce JSON.

Následující příklad ukazuje jeden možný takový objekt, pokud obsahuje jednu tabulku s názvem Table_0 , která má jeden sloupec Text typu stringa jeden řádek.

{
    "Tables": [{
        "TableName": "Table_0",
        "Columns": [{
            "ColumnName": "Text",
            "DataType": "String",
            "ColumnType": "string"
        }],
        "Rows": [["Hello, World!"]]
}

Další příklad:

Snímek obrazovky znázorňující stromové zobrazení souboru JSON, který obsahuje pole objektů Table

Význam tabulek v odpovědi

Příkazy pro správu ve většině případů vrátí výsledek s jednou tabulkou obsahující informace vygenerované příkazem pro správu. Příkaz například .show databases vrátí jednu tabulku s podrobnostmi o všech dostupných databázích v clusteru.

Dotazy obvykle vrací více tabulek. Pro každý příkaz tabulkového výrazu se vygeneruje jedna nebo více tabulek v pořadí, které představují výsledky vytvořené příkazem .

Poznámka

Kvůli operátorům dávek a forku může existovat více takových tabulek).

Často se vytvářejí tři tabulky:

  • Tabulka @ExtendedProperties , která poskytuje další hodnoty, například pokyny pro vizualizaci klienta (informace poskytované operátorem vykreslování), informace o efektivním kurzoru databáze dotazu nebo informace o efektivním využití mezipaměti výsledků dotazu dotazem.

    U dotazů odeslaných pomocí protokolu v1 obsahuje tabulka jeden sloupec typu string, jehož hodnotou je řetězec kódovaný ve formátu JSON, například:

    Hodnota
    {"Vizualizace":"piechart",...}
    {"Kurzor":"637239957206013576"}

    U dotazů odeslaných pomocí protokolu v2 má tabulka tři sloupce: (1) Sloupec integer s názvem TableId označující, na kterou tabulku v sadě výsledků se záznam vztahuje; (2) Sloupec string s názvem Key označující druh informací poskytovaných záznamem (možné hodnoty: Visualization, ServerCachea Cursor); (3) Sloupec dynamic s názvem Value poskytující informace o klíči.

    Tableid Klíč Hodnota
    1 ServerCache {"OriginalStartedOn":"2021-06-11T07:48:34.6201025Z",...}
    1 Vizualizace {"Vizualizace":"piechart",...}
  • Tabulka QueryStatus, která poskytuje další informace o spuštění samotného dotazu, například jestli se dotaz úspěšně dokončil nebo ne, a jaké prostředky dotaz spotřeboval.

    Tato tabulka má následující strukturu:

    Timestamp Závažnost Název závažnosti Statuscode Popis stavu Počet Requestid ID aktivity Id subactivity ClientActivityId
    2020-05-02 06:09:12.7052077 4 Informace 0 Dotaz se úspěšně dokončil. 1 ... ... ... ...

    Hodnoty závažnosti 2 nebo menší značí selhání.

  • Tabulka TableOfContents, která je vytvořená jako poslední a obsahuje seznam ostatních tabulek ve výsledcích.

    Příklad pro tuto tabulku:

    Řádová číslovka Druh Name Id PrettyName
    0 QueryResult Primárnívýsledek db9520f9-0455-4cb5-b257-53068497605a
    1 QueryProperties @ExtendedProperties 908901f6-5319-4809-ae9e-009068c267c7
    2 QueryStatus QueryStatus 00000000-0000-0000-0000-000000000000