HTTP-Antwort (Abfrage/Verwaltung)
Antwortstatus
Die HTTP-Antwort status Zeile folgt den HTTP-Standardantwortcodes. Code 200 gibt beispielsweise den Erfolg an.
Die folgenden status Codes werden derzeit verwendet, obwohl jeder gültige HTTP-Code zurückgegeben werden kann.
Code | Subcode | BESCHREIBUNG |
---|---|---|
100 | Continue | Der Client kann die Anforderung weiterhin senden. |
200 | OK | Die Verarbeitung der Anforderung wurde erfolgreich gestartet. |
400 | BadRequest | Die Anforderung ist falsch formatiert und (dauerhaft) fehlgeschlagen. |
401 | Nicht autorisiert | Der Client muss sich zuerst authentifizieren. |
403 | Verboten | Die Clientanforderung wird abgelehnt. |
404 | NotFound | Die Anforderung verweist auf eine nicht vorhandene Entität. |
413 | PayloadTooLarge | Die Anforderungsnutzlast hat die Grenzwerte überschritten. |
429 | TooManyRequests | Die Anforderung wurde aufgrund einer Drosselung abgelehnt. |
504 | Timeout | Für die Anforderung ist ein Timeout aufgetreten. |
520 | ServiceError | Der Dienst hat beim Verarbeiten der Anforderung einen Fehler gefunden. |
Hinweis
Der Code 200 status zeigt an, dass die Anforderungsverarbeitung erfolgreich gestartet wurde und nicht, dass sie erfolgreich abgeschlossen wurde. Fehler, die während der Anforderungsverarbeitung auftreten, nachdem der Code 200 status zurückgegeben wurde, werden als "Partielle Abfragefehler" bezeichnet, und wenn sie auftreten, werden spezielle Indikatoren in den Antwortdatenstrom eingefügt, um den Client darüber zu benachrichtigen, dass sie aufgetreten sind.
Antwortheader
Die folgenden benutzerdefinierten Header werden zurückgegeben.
Benutzerdefinierter Header | BESCHREIBUNG |
---|---|
x-ms-client-request-id |
Der eindeutige Anforderungsbezeichner, der im Anforderungsheader mit demselben Namen oder einem eindeutigen Bezeichner gesendet wird. |
x-ms-activity-id |
Ein global eindeutiger Korrelationsbezeichner für die Anforderung. Sie wird vom Dienst erstellt. |
Antworttext
Wenn der status Code 200 ist, ist der Antworttext ein JSON-Dokument, das die Ergebnisse der Abfrage oder des Verwaltungsbefehls als Sequenz rechteckiger Tabellen codiert. Weitere Informationen siehe unten.
Hinweis
Die Reihenfolge der Tabellen wird vom SDK widerspiegelt. Wenn Sie beispielsweise die .NET Framework Kusto.Data-Bibliothek verwenden, wird die Tabellensequenz dann zu den Ergebnissen im objekt, das System.Data.IDataReader
vom SDK zurückgegeben wird.
Wenn der status Code einen 4xx- oder 5xx-Fehler angibt, der nicht 401 ist, ist der Antworttext ein JSON-Dokument, das die Details des Fehlers codiert. Weitere Informationen finden Sie unter Microsoft REST-API-Richtlinien.
Hinweis
Wenn der Accept
Header nicht in der Anforderung enthalten ist, ist der Antworttext eines Fehlers nicht unbedingt ein JSON-Dokument.
JSON-Codierung einer Sequenz von Tabellen
Die JSON-Codierung einer Sequenz von Tabellen ist ein einzelner JSON-Eigenschaftenbehälter mit den folgenden Name-Wert-Paaren.
Name | Wert |
---|---|
Tabellen | Ein Array des Table-Eigenschaftenbehälters. |
Der Table-Eigenschaftenbehälter weist die folgenden Name-Wert-Paare auf.
Name | Wert |
---|---|
TableName | Eine Zeichenfolge, die die Tabelle identifiziert. |
Spalten | Ein Array des Column-Eigenschaftenbehälters. |
Zeilen | Ein Array des Row-Arrays. |
Der Column-Eigenschaftenbehälter weist die folgenden Name-Wert-Paare auf.
Name | Wert |
---|---|
ColumnName | Eine Zeichenfolge, die die Spalte identifiziert. |
DataType | Eine Zeichenfolge, die den ungefähren .NET-Typ der Spalte bereitstellt. |
ColumnType | Eine Zeichenfolge, die den Skalardatentyp der Spalte bereitstellt. |
Das Row-Array hat die gleiche Reihenfolge wie das entsprechende Spaltenarray.
Das Row-Array verfügt außerdem über ein Element, das mit dem Wert der Zeile für die relevante Spalte übereinstimmt.
Skalare Datentypen, die in JSON nicht dargestellt werden können, z datetime
. B. und timespan
, werden als JSON-Zeichenfolgen dargestellt.
Das folgende Beispiel zeigt ein mögliches solches Objekt, wenn es eine einzelne Tabelle namens enthält Table_0
, die eine einzelne Spalte Text
vom Typ string
und eine einzelne Zeile enthält.
{
"Tables": [{
"TableName": "Table_0",
"Columns": [{
"ColumnName": "Text",
"DataType": "String",
"ColumnType": "string"
}],
"Rows": [["Hello, World!"]]
}
Ein weiteres Beispiel:
Die Bedeutung von Tabellen in der Antwort
In den meisten Fällen geben Verwaltungsbefehle ein Ergebnis mit einer einzelnen Tabelle zurück, die die vom Verwaltungsbefehl generierten Informationen enthält. Der Befehl gibt beispielsweise .show databases
eine einzelne Tabelle mit den Details aller zugänglichen Datenbanken im Cluster zurück.
Abfragen geben im Allgemeinen mehrere Tabellen zurück. Für jede tabellenbasierte Ausdrucksanweisung werden eine oder mehrere Tabellen in der Reihenfolge generiert, die die von der -Anweisung erzeugten Ergebnisse darstellen.
Hinweis
Aufgrund von Batches und Fork-Operatoren können mehrere solche Tabellen vorhanden sein.
Häufig werden drei Tabellen erstellt:
Eine @ExtendedProperties Tabelle, die zusätzliche Werte bereitstellt, z. B. Clientvisualisierungsanweisungen (Vom Renderoperator bereitgestellte Informationen), Informationen zum effektiven Datenbankcursor der Abfrage oder Informationen zur effektiven Verwendung des Abfrageergebniscaches.
Bei Abfragen, die mit dem v1-Protokoll gesendet werden, enthält die Tabelle eine einzelne Spalte vom Typ
string
, deren Wert eine JSON-codierte Zeichenfolge ist, z. B.:Wert {"Visualization":"piechart",...} {"Cursor":"637239957206013576"} Für Abfragen, die mit dem v2-Protokoll gesendet werden, enthält die Tabelle drei Spalten: (1) Eine
integer
Spalte namensTableId
, die angibt, für welche Tabelle im Resultset der Datensatz gilt; (2) Einestring
Spalte, die dieKey
Art der vom Datensatz bereitgestellten Informationen angibt (mögliche Werte:Visualization
,ServerCache
undCursor
); (3) Einedynamic
Spalte, die die schlüsselbestimmten Informationen bereitstelltValue
.TableId Schlüssel Wert 1 ServerCache {"OriginalStartedOn":"2021-06-11T07:48:34.6201025Z",...} 1 Visualisierung {"Visualization":"piechart",...} Eine QueryStatus-Tabelle, die zusätzliche Informationen zur Ausführung der Abfrage selbst bereitstellt, z. B. ob sie erfolgreich abgeschlossen wurde oder nicht, und welche Ressourcen von der Abfrage verbraucht wurden.
Diese Tabelle weist die folgende Struktur auf:
Timestamp severity SeverityName StatusCode StatusBeschreibung Anzahl RequestId ActivityId SubActivityId ClientActivityId 2020-05-02 06:09:12.7052077 4 Info 0 Abfrage erfolgreich abgeschlossen 1 ... ... ... ... Schweregradwerte von 2 oder kleiner weisen auf einen Fehler hin.
Eine TableOfContents-Tabelle, die zuletzt erstellt wird und die anderen Tabellen in den Ergebnissen auflistet.
Ein Beispiel für diese Tabelle ist:
Ordinal Variante Name Id PrettyName 0 QueryResult PrimaryResult db9520f9-0455-4cb5-b257-53068497605a 1 QueryProperties @ExtendedProperties 908901f6-5319-4809-ae9e-009068c267c7c7 2 QueryStatus QueryStatus 00000000-0000-0000-0000-000000000000
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für