クエリ/管理 HTTP 応答

[ バージョン ] ドロップダウン リストを使用してサービスを切り替えます。 ナビゲーションの詳細を確認します。
適用対象: Microsoft Fabric ✅ Azure Data Explorer ✅

応答の状態

HTTP 応答の状態行は、HTTP 標準応答コードに従います。 たとえば、コード 200 は成功を示します。

有効な HTTP コードが返される可能性がありますが、現在、次の状態コードが使用されています。

Code サブコード Description
100 続行 クライアントは引き続き要求を送信できます。
200 [OK] 要求は正常に処理を開始しました。
400 不正なリクエスト 要求の形式が正しくなされておらず、失敗しました (永続的)。
401 無許可 クライアントは最初に認証する必要があります。
4:03 許可されていません クライアント要求が拒否されました。
404 見つかりません 要求は、既存ではないエンティティを参照します。
413 PayloadTooLarge 要求ペイロードが制限を超えました。
429 リクエストが多すぎます 調整のために要求が拒否されました。
504 Timeout 要求がタイムアウトしました。
5:20 サービスエラー サービスが要求の処理中にエラーを検出しました。

注

200 状態コードは、要求処理が正常に開始されたことを示しており、正常に完了したことを示していません。 200 状態コードが返された後に要求処理中に発生したエラーは、"部分的なクエリエラー" と呼ばれ、発生した場合は、発生したことをクライアントに警告する特別なインジケーターが応答ストリームに挿入されます。

応答ヘッダー

次のカスタム ヘッダーが返されます。

カスタム ヘッダー Description
x-ms-client-request-id 同じ名前の要求ヘッダーで送信された一意の要求識別子、または一意の識別子。
x-ms-activity-id 要求のグローバルに一意の関連付け識別子。 これはサービスによって作成されます。

応答内容

状態コードが 200 の場合、応答本文は、クエリまたは管理コマンドの結果を四角形のテーブルのシーケンスとしてエンコードする JSON ドキュメントです。 詳細については、以下をご覧ください。

注

テーブルのシーケンスは SDK によって反映されます。 たとえば、.NET Framework Kusto.Data ライブラリを使用する場合、テーブルのシーケンスは、SDK によって返される System.Data.IDataReader オブジェクトの結果になります。

状態コードが 401 以外の 4xx または 5xx エラーを示す場合、応答本文はエラーの詳細をエンコードする JSON ドキュメントです。 詳細については、「 Microsoft REST API ガイドライン」を参照してください。

注

Accept ヘッダーが要求に含まれていない場合、失敗の応答本文が必ずしも JSON ドキュメントであるとは限りません。

一連のテーブルの JSON エンコード

一連のテーブルの JSON エンコードは、次の名前と値のペアを持つ単一の JSON プロパティ バッグです。

名前 価値
Tables Table プロパティ バッグの配列。

Table プロパティ バッグには、次の名前と値のペアがあります。

名前 価値
TableName テーブルを識別する文字列。
列 Column プロパティ バッグの配列。
Rows 行配列の配列。

Column プロパティ バッグには、次の名前と値のペアがあります。

名前 価値
ColumnName 列を識別する文字列。
データ型 列のおおよその .NET 型を提供する文字列。
カラムタイプ 列の スカラー データ型 を提供する文字列。

Row 配列の順序は、それぞれの Columns 配列と同じです。 Row 配列には、関連する列の行の値と一致する 1 つの要素もあります。 datetimeやtimespanなど、JSON で表現できないスカラー データ型は、JSON 文字列として表されます。

次の例は、Table_0型の単一の列Textを持つstringと呼ばれる単一のテーブルと 1 つの行が含まれている場合に、そのようなオブジェクトの 1 つを示しています。

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

別の例を示します。

Table オブジェクトの配列を含む JSON ファイルのツリー ビューを示すスクリーンショット。

応答内のテーブルの意味

ほとんどの場合、管理コマンドは、管理コマンドによって生成された情報を含む 1 つのテーブルで結果を返します。 たとえば、 .show databases コマンドは、アクセス可能なすべてのデータベースの詳細を含む 1 つのテーブルを返します。

通常、クエリは複数のテーブルを返します。 表形式の式ステートメントごとに、ステートメントによって生成された結果を表す 1 つ以上のテーブルが順番に生成されます。

注

バッチ演算子とフォーク演算子のために、このようなテーブルが複数存在する可能性があります。

多くの場合、次の 3 つのテーブルが生成されます。

  • クライアント視覚化命令 (@ExtendedPropertiesによって提供される情報)、クエリの有効なデータベース カーソルに関する情報、クエリのクエリ結果キャッシュの効果的な使用に関する情報など、追加の値を提供する テーブル。

    v1 プロトコルを使用して送信されたクエリの場合、テーブルには string 型の単一の列があり、その値は JSON でエンコードされた文字列です。次に示します。

    価値
    {"Visualization":"piechart",...}
    {"Cursor":"637239957206013576"}

    v2 プロトコルを使用して送信されたクエリの場合、テーブルには 3 つの列があります。(1) レコードが適用される結果セット内のテーブルを示すinteger呼び出されたTableId列。(2) レコードによって提供される情報の種類 (使用可能な値: string、Key、およびVisualization) を示すServerCacheと呼ばれるCursor列。(3) キーによって決定された情報を提供dynamicと呼ばれるValue列。

    TableId Key 価値
    1 ServerCache {"OriginalStartedOn":"2021-06-11T07:48:34.6201025Z",...}
    1 視覚化 {"Visualization":"piechart",...}
  • クエリ自体の実行に関する追加情報 (正常に完了したかどうか、クエリによって消費されたリソースなど) を提供する QueryStatus テーブル。

    このテーブルの構造は次のとおりです。

    タイムスタンプ Severity SeverityName ステータスコード ステータス説明 数える RequestId(リクエストID) 活動ID SubActivityId ClientActivityId
    2020-05-02 06:09:12.7052077 4 Info 0 クエリが正常に完了しました 1 ... ... ... ...

    重大度の値が 2 以下の場合は、エラーを示します。

  • 最後に作成された TableOfContents テーブル。結果内の他のテーブルが一覧表示されます。

    このテーブルの例を次に示します。

    序数 サブタイプ 名前 ID (アイディー) PrettyName
    0 QueryResult PrimaryResult db9520f9-0455-4cb5-b257-53068497605a
    1 QueryProperties @ExtendedProperties 908901f6-5319-4809-ae9e-009068c267c7
    2 クエリステータス クエリステータス 00000000-0000-0000-0000-000000000000