数据源接入
数据源定义了报表中心「从哪里取数」。所有数据源在「报表中心 → 数据源」(/report/datasources)维护,可被多个数据集复用。
支持的数据源类型
| 类型 | 说明 | 取数方式 |
|---|---|---|
| 内置只读主库(sql) | 应用自身的 PostgreSQL 主库,开箱即用,无需任何连接配置 | 只读事务执行 SQL |
| API(api) | 远程 HTTP 接口返回的 JSON 数组 | 走统一 HTTP 客户端(防 SSRF),按数组路径提取 |
| MySQL | 外部 MySQL 数据库 | 只读连接池 + 行上限 + 语句超时 |
| PostgreSQL | 外部 PostgreSQL 数据库 | 只读连接(连接级 statement_timeout + read_only) |
| SQL Server | 外部 Microsoft SQL Server | 只读连接池 + SET ROWCOUNT 行上限 |
| 静态数据(static) | 内置容器,承载粘贴的 JSON 或上传的 Excel/CSV | 直接读取内联数据 |
内置「内置主库」「静态数据」两个数据源由系统预置,可直接使用。
新建内置库 / SQL 数据源
内置主库无需连接信息,选择类型「SQL(内置只读主库)」即可保存。SQL 语句在数据集中编写,而非数据源。这是最快的上手方式 —— 直接查询应用自身的业务表(用户、菜单、订单等)。
新建外部数据库(MySQL / PostgreSQL / SQL Server)
点击「新增」,类型选择对应外部库。
填写连接信息:
字段 说明 host 数据库主机地址 port 端口(默认 MySQL 3306 / PostgreSQL 5432 / SQL Server 1433) database 库名 user 账号 password 密码(AES‑256‑GCM 加密存储,列表/详情接口返回时脱敏为 ******)SSL 是否启用 SSL 连接 点击「测试连接」验证连通性(返回延迟毫秒数)。
保存。编辑时密码留空表示不修改、沿用原密码。
安全说明
外部库取数强制只读:仅允许 SELECT / WITH 查询,自动包裹行数上限(默认 5000),并设置语句超时(15s)。连接按 类型+主机+库+账号 缓存复用,空闲自动回收。
新建 API 数据源
- 类型选「API(远程 HTTP)」。
- 填写:
- URL:以
http://或https://开头。 - 方法:GET / POST。
- 请求头:选填 JSON 键值,如
{ "Authorization": "Bearer xxx" }。
- URL:以
- 保存。具体「数组路径」「附加参数」在数据集中配置。
密钥保护
请求头中的敏感字段(Authorization、Cookie、X-Api-Key、Token 等)会被加密存储,读取时脱敏为 ******,仅在实际取数时解密发送。编辑时保留 ****** 即沿用原值。
静态数据 / 文件数据源
类型「静态数据」是一个容器,本身无连接配置。真正的数据在数据集里维护:
- 直接粘贴一段 JSON 数组,或
- 上传 Excel(
.xlsx/.xls)/ CSV 文件,系统解析为表格。
适合无数据库的临时报表、外部导出数据的快速可视化。详见 数据集与数据加工。
状态与删除
- 每个数据源可「启用 / 停用」。停用后不可用于新的取数。
- 被数据集引用的数据源无法删除,需先删除或改绑相关数据集。
权限
| 操作 | 权限码 |
|---|---|
| 查看 / 测试连接 | report:datasource:list / report:datasource:create |
| 新增 | report:datasource:create |
| 编辑 | report:datasource:update |
| 删除 | report:datasource:delete |