QueryData - 查询数据

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

接口说明

前提条件

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

使用限制

  • 数据服务功能仅针对专业版客户开放。

  • 数据服务 API 调用,接口超时时间为 60s,单个 API 的 QPS 为 10 次/秒。

  • 数据服务 API 所引用数据集,如果开启了行级权限,API 调用的时候也会被行级权限策略拦截。

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

quickbi-public:QueryData

get

*全部资源

*

请求参数

名称

类型

必填

描述

示例值

ApiId

string

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

f4cc43bc3***

UserId

string

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

说明

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

重要 参数不传、传空字符串、传 null 等情况,默认传入的 userId 为当前 Quick BI 组织的 owner

b5d8fd9348cc4327****afb604

Conditions

string

数据服务的查询条件,以 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": ["test", "test"], "shopping_date": "2019Q1", }

ReturnFields

string

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

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

返回参数

名称

类型

描述

示例值

object

Success

boolean

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

  • true:请求成功

  • false:请求失败

true

RequestId

string

请求 ID。

a4d1a221d-41za1-****

Result

object

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

  • true:执行成功

  • false:执行失败

Headers

array<object>

列头。

object

Aggregator

string

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

  • SUM:求和

  • MAX:最大值

  • MIN:最小值

  • AVG:平均值

  • COUNT:计数

  • COUNTD:去重计数

  • STDDEV_POP:总体标准差

  • STDDEV_SAMP:样本标准差

  • VAR_POP:样本标准差

  • VAR_SAMP:样本方差

SUM

Column

string

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

test

DataType

string

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

  • number:数值

  • string:字符串

  • date:日期

  • time:时间

  • datetime:日期时间

string

Granularity

string

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

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

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

REGION

Label

string

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

area

Type

string

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

  • Dimension:维度

  • Measure:度量

Dimension

OriginalColumn

string

数据集里对应的字段原名。

area

Sql

string

请求查询的 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 '%test%' GROUP BY COMPANY_T_1_.`area`, COMPANY_T_1_.`city` HAVING SUM(COMPANY_T_1_.`order_amt`) > 1 LIMIT 0, 10

Values

array<object>

返回查询到的结果。

object

返回数据的行和列。

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

[{"area":"test","city":"test"},{"area":"test","city":"test"}]

示例

正常返回示例

JSON格式

{
  "Success": true,
  "RequestId": "a4d1a221d-41za1-****",
  "Result": {
    "Headers": [
      {
        "Aggregator": "SUM",
        "Column": "test",
        "DataType": "string",
        "Granularity": "REGION",
        "Label": "area",
        "Type": "Dimension",
        "OriginalColumn": "area"
      }
    ],
    "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 '%test%' GROUP BY COMPANY_T_1_.`area`, COMPANY_T_1_.`city` HAVING SUM(COMPANY_T_1_.`order_amt`) > 1 LIMIT 0, 10",
    "Values": [
      [
        {
          "area": "test",
          "city": "test"
        },
        {
          "area": "test",
          "city": "test"
        }
      ]
    ]
  }
}

错误码

HTTP status code

错误码

错误信息

描述

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

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

变更历史

更多信息,参考变更详情