通过 REST API 发送 T-SQL 查询

适用于:✅Azure 数据资源管理器

本文介绍如何使用 T-SQL 语言的子集通过 REST API 发送 T-SQL 查询。

请求结构

若要将 T-SQL 查询发送到 API,请使用以下组件创建 POST 请求。

若要复制 URI,请在 Azure 门户中转到群集的概述页面,然后选择该 URI。 https://<your_cluster>.kusto.chinacloudapi.cn/MyDatabase? web=0&query=KustoLogs+%7c+where+Timestamp+>+ago({Period})+%7c+count&Period=1h 将 <your_cluster> 替换为 Azure 数据资源管理器群集的名称。

  • 请求 URL:URL 的格式应为 https://<cluster_uri>/v1/rest/query,其中 <cluster_uri> 是包含要查询的表的群集或数据库的 URI。

  • 标头:设置以下标头。 将 <cluster_uri><bearer_token> 替换为特定群集或数据库 URI 和持有者令牌值。

    Accept:application/json
    Content-Type:application/json; charset=utf-8
    Host:<cluster_uri>
    Authorization: Bearer <bearer_token>
    
  • 正文:将 csl 属性设置为 T-SQL 查询的文本,并将客户端请求属性 query_language 设置为 sql

    {
        "csl": "<t_sql_query>",
        "properties": {
            "Options": {
                "query_language": "sql"
            }
        }
    }
    

示例

以下示例显示了一个请求正文,在 csl 字段中包含 T-SQL 查询,并且 query_language 客户端请求属性设置为 sql

{
    "db": "MyDatabase",
    "csl": "SELECT top(10) * FROM MyTable",
    "properties": {
        "Options": {
            "query_language": "sql"
        }
    }
}

响应采用类似于下面的格式。

{
    "Tables": [
        {
            "TableName": "Table_0",
            "Columns": [
                {
                    "ColumnName": "rf_id",
                    "DataType": "String",
                    "ColumnType": "string"
                },
                ...
            ],
            "Rows": [
                [
                    "b9b84d3451b4d3183d0640df455399a9",
                    ...
                ],
                ...
            ]
        }
    ]
}