dataease源码解读
背景介绍
数据的展示,是数据的核心产出之一。很多企业通过自建、或者购买第三方的可视化平台,去实现数据的可视化。目前开源代码dataease,就能实现这一功能。
DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便地与他人分享。
- 丰富的数据源连接
dataease支持jdbc数据库, 并且支持非关系型数据库- hive
- mysql
- oracle
- es
- api接口
- 文件
- 快速制作图表
能快速的获取表结构,并且通过托拉拽,快速生产sql获取数据。
架构
下图可以看出,数据源、数据集的管理是底座核心模块。

dataease源码解读
- 丰富的数据源连接,主要是数据源的管理
- 快速制作图表,数据集的管理
数据源管理代码解读
主要是解读DatasourceController中的接口

新增数据源
@RequiresPermissions("datasource:read")
@DePermission(type = DePermissionType.DATASOURCE, value = "id")
@ApiOperation("新增数据源")
@PostMapping("/add")
@DeLog(
operatetype = SysLogConstants.OPERATE_TYPE.CREATE,
sourcetype = SysLogConstants.SOURCE_TYPE.DATASOURCE,
positionIndex = 0, positionKey = "type",
value = "id"
)
public Datasource addDatasource(@RequestBody Datasource datasource) throws Exception {
return datasourceService.addDatasource(datasource);
}
DatasourceService,主要有两个步骤检查数据源状态、增加本地线程池
检查数据源状态

检查数据源状态 - 获取provider
如果是doris、mysql引擎的话,直接用jdbc。基于类型分别选择es、api、jdbc。最后找不到类型的话选择该类型的bean。

检查数据源状态 apiProvider的检查实现
对于api类型的provider,执行http请求


检查数据源状态 esProvider的检查实现
对于es类型的provider,直接对es的节点做一个get请求


检查数据源状态 jdbcProvider的检查实现
对于jdbc类型的provider,查看相应的show tables 的sql(但是并没有保存结果,感觉不如

最低0.47元/天 解锁文章
5317

被折叠的 条评论
为什么被折叠?



