Quick BI 数据集实现方式与直接读取数据 · 调研报告

日期:2026-08-16 目标:搞清楚 Quick BI「数据集」底层是怎么实现的,以及能否直接读取数据集中的数据


1. 结论摘要(TL;DR)

Quick BI 的「数据集」本质是逻辑建模层,不是物理表。数据本身要么留在源端(直连模式),要么被抽取到阿里云的 OLAP 加速引擎(抽取模式)。

要「直接读取数据集中的数据」,有 4 条路径,按推荐度排序:

优先级 路径 可行性 说明
⭐ 首选 直连底层数据源 高,通用 绕过 Quick BI,直接查数据集背后的物理表
次选 数据服务 API(QueryData) 官方支持,但仅专业版 把数据集发布成 API 后调用
备选 直查加速引擎物化表 依赖抽取模式 找到物化表后直接 SQL 查
不可行 OpenAPI 直接读数据行 OpenAPI 只能读元数据,读不了数据

2. 数据集是什么:一个「逻辑建模层」

Quick BI 的数据集不是一个存放数据的物理表,而是对底层数据源的一次逻辑封装,它定义的是:

关键认知:你在 Quick BI 里看到的「数据集」,本质是一份「如何从底层数据源取数、如何建模」的元数据定义。真正查数时,Quick BI 会根据这份定义 + 你的可视化配置,动态生成 SQL 去底层取数。


3. 两种数据模式(数据的真实去向)

数据集的数据实际落在哪里,取决于创建时选的是「直连」还是「抽取」:

3.1 直连模式(Direct Query)

3.2 抽取模式(Extract / 加速)


4. 数据实际存储在哪(实现方式核心)

模式 数据物理位置 能否直接访问
直连模式 就在底层数据源(RDS / MaxCompute / Hologres 等) ✅ 用数据源自己的方式直接查
抽取模式 抽取到 Quick BI 的加速引擎,物化为物理表 ⚠️ 需找到物化表名

加速引擎的底层

Quick BI 的「抽取加速」功能,底层依赖阿里云的 OLAP 分析引擎,常见为:

抽取时,Quick BI 会在对应引擎里创建物化表(表名通常是 Quick BI 内部生成的、带数据集标识的表)。找到这个物化表后,就可以用该引擎的 SDK/SQL 直接查。

⚠️ 物化表的表名映射关系,官方文档未完全公开,需要结合加速任务信息(OpenAPI 的 AllotDatasetAccelerationTask 等)或控制台查看,才能精确定位到物理表。


5. 直接读取数据的 4 条路径详解

路径 A:直连底层数据源(⭐ 首选,推荐)

数据集的「直连」本质就是查底层数据源。既然数据就在源端,最直接的方式是绕过 Quick BI,用数据源自己的接口查。

优点:通用、无版本限制、无 QPS 限制、实时、可做任意复杂查询。 缺点:需要自己知道底层数据源在哪、表结构如何(数据集的字段映射要自己重建)。

路径 B:数据服务 API(QueryData,官方支持但有限制)

Quick BI 的「数据服务」功能,可以把数据集发布成 API,然后通过 OpenAPI 的 QueryData 调用拿数据。

优点:官方支持、不用碰底层数据源、权限由 Quick BI 统一管控。 缺点:仅专业版、QPS 低、适合低频小批量取数,不适合高频/大数据量。

路径 C:直查加速引擎物化表(备选)

如果数据集开了「抽取加速」,数据已物化到 MaxCompute/Hologres/AnalyticDB 的物理表。找到物化表后,直接查。

优点:绕过 Quick BI 查询层,性能好,可做任意 SQL。 缺点:需要先定位物化表名(映射关系不透明);数据是快照,有延迟。

路径 D:OpenAPI 读元数据(❌ 不能读数据行)

Quick BI 开放平台的 QueryDatasetList / QueryDatasetInfo / QueryDatasetDetailInfo 等接口,只能拿到数据集的元数据(名称、字段定义、维度度量、类型),不能返回数据行


6. 路径对比总表

维度 A 直连数据源 B 数据服务 API C 加速引擎物化表 D OpenAPI
能否读数据行 ❌ 仅元数据
版本要求 专业版 需抽取模式
QPS 限制 10 次/秒 有(API 通用)
实时性 实时 视数据服务配置 快照(有延迟) -
实现成本 中(要懂数据源) 低(配置为主) 中(要定位物化表)
大数据量 ✅ 支持 ⚠️ 受 60s 超时限制 ✅ 支持 -

7. 推荐方案

结论:优先走「路径 A — 直连底层数据源」,这是最通用、最不受限制的方案。

结合你的实际情况(已有 MaxCompute SDK 封装能力):

  1. 如果数据集底层是 MaxCompute → 直接用你封装的 MaxComputeQueryService 直查,绕开 Quick BI
  2. 如果数据集底层是 RDS/Hologres → 用 JDBC 直连查询
  3. 只有当你无法接触底层数据源(比如数据源是别人管理的、你只有 Quick BI 权限) → 才考虑路径 B 数据服务 API(需专业版)或路径 C 加速引擎物化表

落地第一步:用 OpenAPI 的 QueryDatasetDetailInfo 拿到数据集的底层数据源连接信息 + 字段定义(这些元数据是能读的),据此定位底层表,再用路径 A 直查。


附:实证确认过的 API 清单

以下接口为本次调研前已通过阿里云 OpenAPI 文档(next.api.aliyun.com,quickbi-public / 2022-01-01)实证确认存在:

注:加速引擎底层具体为 MaxCompute 还是 Hologres/AnalyticDB,取决于账号开通的加速引擎类型,需在控制台或通过加速任务接口确认,本报告该部分为架构性说明,落地时建议以控制台实际配置为准。