查询/管理 HTTP 请求
适用于:✅Azure 数据资源管理器
请求谓词和资源
操作 | HTTP 谓词 | HTTP 资源 |
---|---|---|
查询 | GET | /v1/rest/query |
查询 | POST | /v1/rest/query |
查询 v2 | GET | /v2/rest/query |
查询 v2 | POST | /v2/rest/query |
管理 | POST | /v1/rest/mgmt |
例如,若要将管理命令(“management”)发送到服务终结点,请使用以下请求行:
POST https://help.chinaeast2.kusto.chinacloudapi.cn/v1/rest/mgmt HTTP/1.1
请求标头
下表包含用于查询和管理操作的常用标头。
标准标头 | 说明 | 必需/可选 |
---|---|---|
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.chinaeast2.kusto.chinacloudapi.cn 。 |
必须 |
下表包含用于查询和管理操作的常用自定义标头。 除非特别说明,否则这些标头仅用于遥测目的,而不会影响功能。
所有标头都是可选项。 但是,我们建议指定 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 请求时,查询参数会指定请求参数。
Body
使用 POST 时,请求正文包含一个 UTF-8 编码的单个 JSON 文档,其中包含请求参数的值。
示例
以下示例显示查询的 HTTP POST 请求。
POST https://help.chinaeast2.kusto.chinacloudapi.cn/v2/rest/query HTTP/1.1
请求标头
Accept: application/json
Authorization: Bearer ...AzureActiveDirectoryAccessToken...
Accept-Encoding: deflate
Content-Type: application/json; charset=utf-8
Host: help.chinaeast2.kusto.chinacloudapi.cn
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.partner.microsoftonline.cn/AAD_TENANT_NAME_OR_ID/oauth2/token" \ -F "grant_type=client_credentials" \ -F "resource=https://help.chinaeast2.kusto.chinacloudapi.cn" \ -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.chinaeast2.kusto.chinacloudapi.cn", "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.chinaeast2.kusto.chinacloudapi.cn" \ -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.chinaeast2.kusto.chinacloudapi.cn/v2/rest/query
根据 响应状态代码读取响应。
设置客户端请求属性和查询参数
在以下请求正文示例中,csl
字段中的查询声明 n
和 d
这两个参数。 这些查询参数的值在请求正文中 properties
字段下的 Parameters
字段中进行指定。 Options
字段定义客户端请求属性。
注意
非字符串和非长参数必须表示为字符串格式的 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\"])"
}
}
}
有关详细信息,请参阅支持的请求属性。
发送 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"
}
}
}