QueryData - 查询数据

对数据服务中已创建的API进行调用。

接口说明

前提条件

您需先通过 Quick BI 的数据服务,创建数据服务的 API,具体请参见:数据服务

使用限制

  • 数据服务功能仅针对专业版客户开放。
  • 数据服务 API 调用,接口超时时间为 60s,单个 API 的 QPS 为 10 次/秒。
  • 数据服务 API 所引用数据集,如果开启了行级权限,API 调用的时候也会被行级权限策略拦截。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

当前API暂无授权信息透出。

请求参数

名称类型必填描述示例值
ApiIdstring

数据服务中的 API ID,请参见:数据服务

f4cc43bc3***
UserIdstring

Quick BI 中的 userId。如何获取 userId,请参见:根据账号查询用户信息接口

说明 该参数用于指定具体使用数据服务的人的身份,可结合数据集的行列权限配置使用

注意 参数不传、传空字符串、传 null 等情况,默认传入的 userId 为当前 QuickBI 组织的 owner

b5d8fd9348cc4327****afb604
Conditionsstring

数据服务的查询条件,以 Key 和 Value 的形式传入。map 类型的字符串。其中,Key 为请求参数的参数名,Value 为请求参数的参数值。Key 和 Value 必须成对出现。

说明:

  • 请求参数的操作符设置为枚举筛选时支持 value 包含多个值,此时 value 值的格式是 JSON 形式的 List。例如: area=["华东","华北","华南"]

  • 对于日期,根据类型不同,提供不同的入参格式:

    • 年:2019

    • 季:2019Q1

    • 月:201901 (携带 0)

    • 周:2019-52

    • 日:20190101

    • 时:14:00:00 (分、秒为 00)

    • 分:14:12:00 (秒为 00)

    • 秒:14:34:34

{ "area": ["华东", "华北"], "shopping_date": "2019Q1", }
ReturnFieldsstring

返回参数的参数名列表,List 类型字符串。

["area", "city", "price", "date"]

返回参数

名称类型描述示例值
object
RequestIdstring

请求 ID。

a4d1a221d-41za1-****
Resultobject

返回接口执行结果。取值范围:

  • true:执行成功
  • false:执行失败
Headersarray<object>

列头。

Headersobject
Aggregatorstring

聚合操作符。度量字段才会有,例如 SUM、AVG 和 MAX。

  • SUM:求和
  • MAX:最大值
  • MIN:最小值
  • AVG:平均值
  • COUNT:计数
  • COUNTD:去重计数
  • STDDEV_POP:总体标准差
  • STDDEV_SAMP:样本标准差
  • VAR_POP:样本标准差
  • VAR_SAMP:样本方差
SUM
Columnstring

字段名,对应物理表字段名。

具体的物理字段名
DataTypestring

字段的数据类型。一般有:

  • number:数值
  • string:字符串
  • date:日期
  • time:时间
  • datetime:日期时间
string
Granularitystring

维度字段的粒度。 当请求字段为日期维度或地理维度字段,才会返回该字段,取值范围:

  • 日期粒度:yearRegion(年)、 monthRegion(月)、weekRegion(周)、dayRegion(日)、hourRegion(时)、minRegion(分)、secRegion(秒)

  • 地理信息粒度:COUNTRY("国际级")、PROVINCE("省级")、CITY("市级")、XIAN("区县")、REGION("区域")

REGION
Labelstring

字段别名,结果参数 values 中 map 数据行的 key。

area
Typestring

字段类型,用于区分是字段类型为维度或度量字段。

  • Dimension:维度
  • Measure:度量
Dimension
Sqlstring

请求查询的 SQL。

说明 返回的 sql 语句中的过滤条件除了当前接口的传参条件外,还会带上行列权限的配置信息
SELECT COMPANY_T_1_.`area` AS D_AREA_2_, COMPANY_T_1_.`city` AS D_CITY_3_, SUM(COMPANY_T_1_.`profit_amt`) AS D_PROFIT_4_ FROM `quickbi_test`.`company_sales_record_copy` AS COMPANY_T_1_ WHERE COMPANY_T_1_.`area` LIKE '%华东%' GROUP BY COMPANY_T_1_.`area`, COMPANY_T_1_.`city` HAVING SUM(COMPANY_T_1_.`order_amt`) > 1 LIMIT 0, 10
Valuesarray<object>

返回查询到的结果。

Valuesobject

返回数据的行和列。

此参数为 List结构,每个 Map 即一行数据。其中 Map 中的 Key 对应 Headers#Label 字段。

[{"area":"华东","city":"三明市"},{"area":"华东","city":"上海市"}]
Successboolean

是否请求成功。取值范围:

  • true:请求成功
  • false:请求失败
true

示例

正常返回示例

JSON格式

{
  "RequestId": "a4d1a221d-41za1-****",
  "Result": {
    "Headers": [
      {
        "Aggregator": "SUM",
        "Column": "具体的物理字段名",
        "DataType": "string",
        "Granularity": "REGION",
        "Label": "area",
        "Type": "Dimension"
      }
    ],
    "Sql": "SELECT COMPANY_T_1_.`area` AS D_AREA_2_, COMPANY_T_1_.`city` AS D_CITY_3_, SUM(COMPANY_T_1_.`profit_amt`) AS D_PROFIT_4_ FROM `quickbi_test`.`company_sales_record_copy` AS COMPANY_T_1_ WHERE COMPANY_T_1_.`area` LIKE '%华东%' GROUP BY COMPANY_T_1_.`area`, COMPANY_T_1_.`city` HAVING SUM(COMPANY_T_1_.`order_amt`) > 1 LIMIT 0, 10",
    "Values": [
      [
        {
          "area": "华东",
          "city": "三明市"
        },
        {
          "area": "华东",
          "city": "上海市"
        }
      ]
    ]
  },
  "Success": true
}

错误码

HTTP status code错误码错误信息描述
400API.No.PermissionYou are not authorized to call the data service API operation.您无权调用此数据服务API。
400API.Not.ExistThe data service API operation does not exist.数据服务 API 不存在。
400Cube.Not.ExistThe Cube does not exist.数据集不存在。
400Invalid.Parameter.ConditionsThe specified Conditions is invalid. %s is not defined.参数 Conditions 错误:%s 未在模型中定义。
400Invalid.Parameter.ReturnFieldsThe specified returnFields is invalid. %s is not defined. 参数ReturnFields错误:%s 未在模型中定义。
400Missing.ConditionsThe specified Conditions is invalid. You must specify %s.输入参数Conditions 错误: %s 是必须项。
400Missing.Dimension.MeasureThe dimension or measure %s does not exist in Cube. Cube 模型中缺少维度或度量 %s 。
400Rowlevel.Permission.ForbbidenThe request is denied by row level permission. The dataset is %s, %s %s.请求被行级权限限制,数据集为%s,%s %s。
400Datasource.Sql.ExecuteFailedFailed to execute the SQL statement in the data source.数据源执行SQL失败。

访问错误中心查看更多错误码。