クエリ/管理の HTTP 要求
要求動詞とリソース
アクション | HTTP 動詞 | HTTP リソース |
---|---|---|
クエリ | GET | /v1/rest/query |
クエリ | 投稿 | /v1/rest/query |
Query v2 | GET | /v2/rest/query |
Query v2 | 投稿 | /v2/rest/query |
管理 | 投稿 | /v1/rest/mgmt |
たとえば、管理コマンド ("management") をサービス エンドポイントに送信するには、次の要求行を使用します。
POST https://help.kusto.windows.net/v1/rest/mgmt HTTP/1.1
含める内容については、 Request ヘッダー および Body を参照してください。
要求ヘッダー
次の表は、クエリーおよび管理操作に使用される一般的なヘッダーをまとめたものです。
標準ヘッダー | 説明 | 必須/省略可能 |
---|---|---|
Accept |
クライアントが受け取るメディアの種類。 application/json に設定します。 |
必須 |
Accept-Encoding |
サポートされているコンテンツ エンコード。 サポートされているエンコードは、gzip と deflate です。 |
省略可能 |
Authorization |
認証資格情報。 詳細については、 認証を参照してください。 | 必須 |
Connection |
操作後も接続を開いたままにするかどうかを指定します。 Connection を Keep-Alive に設定することをお勧めします。 |
省略可能 |
Content-Length |
要求本文のサイズ。 既知の場合は、要求本文の長さを指定します。 | 省略可能 |
Content-Type |
要求本文のメディアの種類。 charset=utf-8 でapplication/json に設定します。 |
必須 |
Expect |
サーバーからの予期される応答。 100-Continue に設定できます。 |
省略可能 |
Host |
要求が送信された修飾ドメイン名。 たとえば、help.kusto.windows.net のようにします。 |
必須 |
次の表は、クエリーおよび管理操作に使用される一般的なカスタムヘッダーです。 特に明記されていない限り、これらのヘッダーはテレメトリの目的でのみ使用され、機能には影響しません。
すべてのヘッダーは省略可能です。 ただし、 x-ms-client-request-id
カスタム ヘッダーを指定することをお勧めします。
実行中のクエリの取り消しなど、一部のシナリオでは、要求の識別に使用されるため、 x-ms-client-request-id
が必要です。
カスタム ヘッダー | 説明 |
---|---|
x-ms-app |
要求を行うアプリケーションのフレンドリ名。 |
x-ms-user |
要求を行うユーザーのフレンドリ名。 |
x-ms-user-id |
x-ms-user と同じフレンドリ名。 |
x-ms-client-request-id |
要求の一意の識別子。 |
x-ms-client-version |
要求を行うクライアントのフレンドリ バージョン識別子。 |
x-ms-readonly |
指定した場合、要求は強制的に読み取り専用モードで実行され、要求がデータを変更できなくなります。 |
要求パラメーター
要求には、以下のパラメータを渡すことができます。 GET と POST の使用に応じて、クエリ パラメーターとして、または本文の一部として要求でエンコードされます。
パラメーター | 説明 | 必須/省略可能 |
---|---|---|
csl |
実行するクエリまたは管理コマンドのテキスト。 | 必須 |
db |
クエリまたは管理コマンドのターゲットとなるデータベースの名前。 | 一部の管理コマンドでは省略可能です。 すべてのクエリとその他のすべてのコマンドに必要です。 |
properties |
要求の処理方法とその結果を変更する要求プロパティ。 詳しくは、「要求プロパティ」をご覧ください。 | 省略可能 |
GET クエリパラメータ
GET 要求を使用する場合、クエリ パラメーターは要求パラメーターを指定します。
本文
POST 要求が使用されると、要求の本文には、要求パラメーターの値を含む UTF-8 でエンコードされた JSON ドキュメントが 1 つ含まれます。
例
次の例は、クエリの HTTP POST 要求を示しています。
POST https://help.kusto.windows.net/v2/rest/query HTTP/1.1
要求ヘッダー
Accept: application/json
Authorization: Bearer ...AzureActiveDirectoryAccessToken...
Accept-Encoding: deflate
Content-Type: application/json; charset=utf-8
Host: help.kusto.windows.net
x-ms-client-request-id: MyApp.Query;e9f884e4-90f0-404a-8e8b-01d883023bf1
x-ms-user-id: EARTH\davidbg
x-ms-app: MyApp
要求本文
{
"db":"Samples",
"csl":"print Test=\"Hello, World!\"",
"properties":"{\"Options\":{\"queryconsistency\":\"strongconsistency\"},\"Parameters\":{},\"ClientRequestId\":\"MyApp.Query;e9f884e4-90f0-404a-8e8b-01d883023bf1\"}"
}
次の例では、 curl を使用して、前のクエリを送信する要求を作成する方法を示します。
認証用のトークンを取得します。
Microsoft Entra アプリケーション認証設定した後、
AAD_TENANT_NAME_OR_ID
、AAD_APPLICATION_ID
、およびAAD_APPLICATION_KEY
を関連する値に置き換えます。curl "https://login.microsoftonline.com/AAD_TENANT_NAME_OR_ID/oauth2/token" \ -F "grant_type=client_credentials" \ -F "resource=https://help.kusto.windows.net" \ -F "client_id=AAD_APPLICATION_ID" \ -F "client_secret=AAD_APPLICATION_KEY"
このコード スニペットでは、ベアラー トークンを提供します。
{ "token_type": "Bearer", "expires_in": "3599", "ext_expires_in":"3599", "expires_on":"1578439805", "not_before":"1578435905", "resource":"https://help.kusto.windows.net", "access_token":"eyJ0...uXOQ" }
クエリ エンドポイントへの要求でベアラー トークンを使用します。
curl -d '{"db":"Samples","csl":"print Test=\"Hello, World!\"","properties":"{\"Options\":{\"queryconsistency\":\"strongconsistency\"}}"}"' \ -H "Accept: application/json" \ -H "Authorization: Bearer eyJ0...uXOQ" \ -H "Content-Type: application/json; charset=utf-8" \ -H "Host: help.kusto.windows.net" \ -H "x-ms-client-request-id: MyApp.Query;e9f884e4-90f0-404a-8e8b-01d883023bf1" \ -H "x-ms-user-id: EARTH\davidbg" \ -H "x-ms-app: MyApp" \ -X POST https://help.kusto.windows.net/v2/rest/query
応答の状態コード に従って応答を読み取。
クライアント要求のプロパティとクエリ パラメーターを設定する
次の要求本文の例では、 csl
フィールドのクエリで、 n
と d
という名前の 2 つのパラメーターが宣言されています。 これらのクエリ パラメーターの値は、要求本文の properties
フィールドの下の Parameters
フィールド内で指定されます。 Options
フィールドは、client 要求プロパティを定義します。
Note
文字列以外のパラメーターと長でないパラメーターは、文字列形式で KQL リテラルとして表す必要があります。
{
"db": "Samples",
"csl": "declare query_parameters (n:long, d:dynamic); StormEvents | where State in (d) | top n by StartTime asc",
"properties": {
"Options": {
"maxmemoryconsumptionperiterator": 68719476736,
"max_memory_consumption_per_query_per_node": 68719476736,
"servertimeout": "50m"
},
"Parameters": {
"n": 10, "d": "dynamic([\"ATLANTIC SOUTH\"])"
}
}
}
詳細については、「 サポートされる要求プロパティ」を参照してください。
Send show database caching policy コマンド
次の例では、 Samples
データベース キャッシュ ポリシーを表示する要求を送信します。
{
"db": "Samples",
"csl": ".show database Samples policy caching",
"properties": {
"Options": {
"maxmemoryconsumptionperiterator": 68719476736,
"max_memory_consumption_per_query_per_node": 68719476736,
"servertimeout": "50m"
}
}
}