背景

在目前我接触过的轻量级BI工具中,我最喜欢的是MS Power BI。

喜欢的理由粗暴直接:

  • 自带轻量级ETL工具Power Query,在数据仓库不完善的场景下特别有用;

  • 可视化的建模方式,拖拉放,所见即所得;

  • 强大的DAX,不但能定义Measure,还可以编写循环等高级查询;

  • 通过Embed方式嵌入Web应用,无缝集成在自己的应用中;

如果只是个人使用,我觉得这简直是一个完美的工具了。但是,凡事就怕但是,在企业级应用中,当前版本的Power BI有几个不太方便的地方。对我而言,最不能忍的一点就是数据需要完全导入到PBI文件之后才能使用(官方提供了Direct Query模式,仅支持部分数据源)。

所以呢,一直想要寻找一款趁手好用的轻量级开源BI产品。虽然尝试过Superset,Metabase等知名产品后,但总觉得有各种不方便。最近看到一款国内开发的产品CBoard,简单使用之后,觉得还是挺惊艳的。虽然目前CBoard还有各种不完美的地方,但是我仍然觉得值得一试。

准备及安装工作

JDK1.8

Maven 3

CBoard项目需要使用maven编译,所以先安装maven

# 解压maven
cd /usr/local
tar zxvf apache-maven-3.3.9-bin.tar.gz# 设置环境变量
vi /etc/profile #增加下列配置export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=${MAVEN_HOME}/bin:${PATH}# 配置好maven仓库,这里推荐一个阿里云的maven镜像
vi /usr/local/apache-maven-3.3.9/conf/settings.xml<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>

PhantomJS 2

如果要使用看板导出和邮件功能,需要安装PhantomJS 2.1

# 需要依赖的包,主要是fontconfig-devel
yum install -y gcc gcc-c   make git openssl-devel freetype-devel fontconfig-devel# 用phantomjs去截取中文页面可能会出现乱码的情况,安装字体可以解决
yum install -y bitmap-fonts bitmap-fonts-cjk# 解压
tar xvf phantomjs-2.1.1-linux-x86_64.tar.bz2# 创建软链接
ln -sf /usr/local/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs

下载源代码

使用的版本是0.4.2

git clone https://github.com/yzhang921/CBoard.git
git checkout branch-0.4.2

初始化元数据

当前版本(0.4)的元数据存储仅支持MySQL,Oracle,所以先使用MySQL。官方提供了两个样本文件来初始化演示内容,也可以使用空白数据库自己从新创建。因为已经尝试过演示库,所以这一次从零开始创建。

create database cboard;
use cboard;
source sql/mysql/mysql.sql;

修改配置文件

在正式编译代码之前,可以先修改配置文件。需要修改的部分包括

  • 元数据连接信息(本例中是MySQL 的 cboard库)
  • 邮件服务器配置(用于导出看板的定时任务)
vi src/main/resources/config.properties

选择平台默认显示语言为中文

vi src\main\webapp\org\cboard\Settings.js
# 修改参数为cn
// CBoard settings
var settings = {preferredLanguage: "en" // 可选值en/cn: cn切换中文
}

由于源代码依赖中默认包含了SQLServer的JDBC驱动,但是该驱动在公有的Maven仓库中不存在。我的使用环境中不涉及SQLServer数据库,所以把pom中的下面依赖移除

vi pom.xml
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>sqljdbc4</artifactId><version>4.0</version>
</dependency>

编译源代码

mvn clean package

部署

  • 拷贝CBoard\target\cboard.war到tomcat的webapp目录

  • 启动tomcat

  • 默认登录用户名和密码: admin/root123

使用CBoard

在官方中文手册中,对每一个步骤都有很详细的说明。所以我这里只把自己测试过程中的部分环节记录下来。这里还是要赞扬一下,国产的开源软件在文档上能做到这个程度,真的很不错。

数据源

CBoard支持多种数据源(JDBC,Kylin,Saiku,等),不过我们目前最常用的还是JDBC。按照标准的JDBC连接字符串格式填入参数即可,如下图我使用的是PostgreSQL作为数据仓库。

image-20180718103546409

数据集

CBoard中的数据集,就是Cube。所以创建数据集的过程,也就是设计维度,层次,度量的过程。

和其他BI平台不同,CBoard中并不需要指定维度表和事实表,而是直接使用查询语句得到的星型模型结果。作为一个轻量级BI,我认为这种方式是很合适的,带来的直接好处是,不需要依赖数据仓库层的主题模型,甚至在没有星型模型的场景下,也可以使用SQL获取数据,并且随时根据需求变化来调整SQL语句。

设计数据集步骤如下图

image-20180718105633495
  1. 提供SQL语句获取星型模型的结果,这里我直接使用了视图。
  2. 如果提供了实时间隔,那么这个数据集会自动刷新,假如我在SQL中使用时间函数获取5分钟内的数据,就需要在这里设置一个刷新周期。
  3. 查询结果的所有字段,是维度和指标的候选项。
  4. 维度同时支持单一维度(如上图中日期)和层次维度(如上图中YQMD),了解OLAP的都知道是啥区别。
  5. 指标列中不需要指定计算方式,即只提供字段,不提供聚合函数。这里也体现出轻量级的设计思路,把选取聚合函数的动作放到使用时确定,好处是指标数量会变得比较少。
  6. 可选表达式可以执行简单的计算,如 sum(A)/count(B)这种计算,但是无法实现同比环比等复杂操作。
  7. 设置常用过滤条件,在后面设计图表的时候很方便。

图表设计

图表设计非常简单,就和设计EXCEL透视表一样,拖放行,列,指标,然后预览微调。有透视表使用经验即可快速上手,如下图

image-20180718112334658

看板设计

当前版本中,我觉得看板设计是一个比较大的缺憾。因为没有提供所见即所得的拖放操作,所以在设计看板的过程中感觉总是有点别扭。CBoard中的做法是,把页面划分为行,然后在每一行中划分列,通过指定列的宽度来实现同一行放置多个图表。这种方式可以实现粗放的设计意图,但是对于一些精细化的设计就无能无力了。

如下图分别显示了设计阶段和展示阶段的看板,可以看到看板上的元素是如何对应位置的

image-20180718113011108
image-20180718113018611

定时任务

定时任务可以实现在固定的时间把看板内容作为邮件发送,这个功能非常实用。不过我发现的一个问题是,发送的看板数据会忽略看板级别的参数,只使用数据集和图表级别的参数。

定时任务设置非常简单,我这里就不截图了。

缺憾

在我测试的版本(0.4.2)中,我还发现几个不太完善的地方,希望在后续的版本中可以改进。

  • 数据集中不能直接设置同比环比等操作。对轻量级BI来说这个要求要点高,我目前知道可以在Cube层直接设置之中复杂指标的只有MDX和DAX两种方法。
  • 看板设计中还没有实现拖放,所以有一些精细化的布局不能实现。虽然新增加的全屏监控看板,已经可以实现拖放式布局(我还没有深入使用这个功能)。
  • 导出/邮件功能,不能根据看板上设置的过滤器来导出。我在测试中每次导出的邮件都是完整的数据集内容,没有找到仅导出一部分数据的办法。不知道是不是我的操作姿势不对。

更多专业前端知识,请上 【猿2048】www.mk2048.com

国产轻量级BI平台CBoard的安装和初步使用介绍相关推荐

  1. 百度BI平台 BiPlatform windows安装问题随笔

    2019独角兽企业重金招聘Python工程师标准>>> 官方给的构建流程: clone项目到本地指定目录 分别在fileserver.tesseract.designer目录下执行 ...

  2. Webug靶场平台下载以及安装教程

    Webug靶场平台下载以及安装教程 一.基础介绍 WeBug 名称定义为"我们的漏洞"靶场环境 ,基础环境是基于 PHP/mysql 制作搭建而成,中级环境与高级环境分别都是由互联 ...

  3. Linux平台下二进制安装FastDDS

    1. Linux平台下二进制安装 该页面主要介绍在linux环境下,使用二进制release安装 eProsima公司的 Fast DDSThe. 安装 内容 运行应用 在一个CMake项目中包含Fa ...

  4. 龙芯平台下软件安装(怎么寻找龙芯下的package)

    不同Linux操作系统发行版的一大区别就是软件包管理不同,比如Fedora/RHEL系的rpm,Centos/Debian的deb.在龙芯等自主平台上软件有两类来源一类是国内商业软件如wps.QQ等, ...

  5. 轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级)

    轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级) 实验室所在的课题组以研究云计算为主,但所有的研究都是在基于理论的凭空想像,缺少分布式环境的平台的实践,云计算神马的都是浮云了.因此,我 ...

  6. 深入解读Gartner 2021年《分析与BI平台魔力象限》

    近日,Gartner发布了2021年度的分析与商业智能平台魔力象限报告.作为业内的权威报告,魔力象限在分析与BI平台(以下简称ABI平台)供应商和用户中受到了非常广泛的关注,可以说是行业风向标.帆软数 ...

  7. 最强盘点!国产数据分析BI工具怎么选?看这篇就够了

    经常在后台收到粉丝留言,说公司准备上BI了,但苦于市面上BI工具太多,不知道该怎么选,让我帮忙出出主意. 这个其实说来话长,市场上的BI工具侧重点有所不同,有的以报表为主,有的以可视化为主,有的以查询 ...

  8. >>技术开发:轻量级BI工具Superset

    轻量级BI工具Superset Mac OS of Superset 前言 Superset是一款可视化的BI工具,主要依赖于python环境. pip 是一个Python包安装与管理工具. 操作步骤 ...

  9. bi平台怎么选,一文详解

    bi平台怎么选?选bi平台不是一个照搬照抄的事情,企业在选bi的时候要考虑的不止是bi平台本身,企业的所属行业.具体业务.发展和管理水平.信息化水平.人员技术背景等都会影响到最后选择,没有最对的bi平 ...

最新文章

  1. python程序加密license_怎么解决pycharm license Acti的方法
  2. 【Mongodb】 Replica set的自动故障切换
  3. Jena文档《An Introduction to RDF and the Jena RDF API》的译文
  4. 【Android开发学习笔记之一】5大布局方式详解
  5. Winform控件拖动
  6. 打印图片预览时图片显示不出来_办公小技巧:深入挖掘实用的Excel打印秘诀
  7. 第十一章:配置和安全---IntelliMorph
  8. 简单的文件上传功能实现(java)
  9. 前后端分离djangorestframework——序列化与反序列化数据
  10. websocket如何保持连接压力测试统计最后断开了几个链接
  11. 杂项:HTML5-3/3-技术要点
  12. SPQuery如何消除重复记录(实现联动性)
  13. yarn install命令运行报错:无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  14. VIIRS-NPP夜间灯光遥感数据下载和预处理
  15. 第十课◆ Newland Edu Li nearI ayout和Re lati vel ayout
  16. 【考研英语语法】名词性从句
  17. exe msdt 无法上网_msdt.exe文件下载
  18. 12306网站专家:拟采取办法应对抢票软件
  19. ABAP 生产订单的创建与修改函数
  20. 技术的理想该继续吗?

热门文章

  1. 使用层次聚类在结构点云中进行平面的快速提取
  2. LRU使用LinkedHashMap实现(主要分析LinkedHashMap的原理)
  3. 中国铁路 12306 网站的高并发架构带来的思考?研究分析后,果然超牛逼…
  4. 嵌入式系统求职回忆录
  5. Unity接入ChatGPT基于Python.Runtime的实现
  6. 学生管理系统(链表)
  7. 三面阿里拿下Offer,总结与面试官交锋两个半小时的面经。
  8. [数据讨论][解包相关]下江小春也能轻松掌握的碧蓝档案提取工具
  9. CentOS7安装Jenkins教程
  10. C语言整数转字符串-递归算法