# cboard-extend
**Repository Path**: binaryniz/cboard-extend
## Basic Information
- **Project Name**: cboard-extend
- **Description**: 对cboard进行扩展,增加Redis数据源,暂时仅支持hash形式的数据
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-04
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 介绍
CBoard由[上海楚果信息技术有限公司](http://www.chuguotech.com/)主导开源, 它不仅仅是一款**自助BI数据分析**产品, 还是开放的**BI产品开发**平台:
- **用户**只需简单妥妥拽拽就能自助完成数据多维分析与报表设计
- **开发者**能够简单扩展连接所有你的Java程序能够触及的数据
## CBoard社区版用户
希望你们logo出现在此, [请点击登记@Github](https://github.com/TuiQiao/CBoard/issues/122), 或者[请点击登记@Gitee](https://gitee.com/tuiqiao/CBoard/issues/IMLIJ)提供一张无底色logo图片
## 架构图
轻量级的技术架构, 与国内开发者耳熟能详的技术栈, **自研多维分析引擎**, 完成您在数据分析最后一棒的重要接力. 清晰的性能优化线路, 小应用撬动大数据!
## 产品特性
* 简洁美观的界面, 简单友好的交互模式
* 交互式自服务拖拽多维分析用户体验, 数据切块, 切片, 排序无所不能
* 一个数据集根据您的拖拽衍生无数不同粒度数据聚合 + 20余种不同展现形式的图表
* 图表数据准实时刷新
* 图表级别权限控制
* 支持多图表数据看板与看板定时邮件发送
* 多种数据源接入
* JDBC(几乎所有实现了JDBC协议的数据库或数据产品都能轻松接入)
* 多版本原生Elasticsearch: 1.x, 2.x, 5.x
* 多版本原生Kylin接入: 1.6, 2.0, 2.1
* 离线文本文件, JSON文本
* 轻量级的技术架构, 简洁的业务代码, 不依赖任何第三方多维分析引擎, 如果您还在纠结很难玩转Mondrian, 那么CBoard绝对是您很好的一个替代方案
* 数据源轻松扩展接入, 大数据时代纷繁的数据产品层出不穷, 任何昂贵的商业产品也做不到出厂遍支持所有类型数据源的连接, 但是如果你能用Java程序获取您的数据, 那么恭喜你有80%的概率能够把数据源接到CBoard了
?> 更多企业级的功能与特性请访问我们官网: [上海楚果信息技术有限公司](http://www.chuguotech.com/)
:books: 更多文档
- [:cn: 帮助文档](http://peter_zhang921.gitee.io/cboard_docsify/#/zh-cn/)
- [:uk: Document](https://tuiqiao.github.io/CBoardDoc/#/en-us/)
### -------------分割线---------------------
以上是原项目的readme
以下是我的
由于工作需要,这里对数据源进行自定义扩展,官方文档已经说明:`用户可以在不用更改前端界面的前提下继承DataProvider接口,返回普通二维数组即可,交互所需参数前端自动生成相应交互界面。`
我在这里参照jdbc和elasticsearch进行Redis的数据扩展,目前只扩展到 Redis 的hash类型。
创建一个 :RedisDataProvider,然后继承`DataProvider`,实现 `Aggregatable`.
```
// 这里是数据源所需参数,直接对应前端页面中配置数据源的参数选项
@DatasourceParameter(label = "{{'DATAPROVIDER.REDIS.HOST'|translate}} *",
type = DatasourceParameter.Type.Input,
required = true,
order = 1)
private String HOST = "host";
```
```
// 创建数据源时候,测试连接用
@Override
public void test() throws Exception {
}
```
```
// 创建数据集时候,读取数据(维度数据)
@Override
public String[] getColumn() throws Exception {
}
```
```
// 待研究
@Override
public String[][] getData(){
}
```
```
// 创建图表时,预览选项
@Override
public AggregateResult queryAggData(AggConfig config) throws Exception {
}
```