开源BI平台的选择
开源BI平台都有哪些?
对于初创企业而言,在业务刚刚起步的时候,数据量并没有那么大,此时选择付费的BI服务并不合适,在业务的起步阶段,有很多开源的BI平台可以选择。
https://mp.weixin.qq.com/s/au8RMr_eUcY5lAahCnWv_g
偶然间找到了这篇文章,关于BI平台的介绍很清楚。
一、superset
选择superset其实并没有经过太多的思考,可供选择的成熟的BI工具其实有很多,PowerBI、tableau、网易有数、QuickBI等等,但是这些成熟的BI工具价格真的有些高。选择superset的理由并没有那么多,开源的BI本来就没有几个,冲着Apache和Airbnb的名号,最终选择了superset。
部署过程非常简单,有比较多的docker可以选择,虚拟化部署的好处就是非常简单,我们的运维同事几分钟就搞定了,但是在部署完成之后也遇到了几个问题,首先是在superset环境中通过SQL查询之后,下载的文件格式是csv的,编码格式是utf-8,这样就会造成excel打开csv文件的时候中文会出现乱码,在搜索一番之后找到了解决方案,修改导出csv文件的源码,详细解决方式见链接
https://segmentfault.com/a/1190000019281242
遇到的第二个问题是superset的权限管理,我刚开始以为public角色有最基础的查看权限,分配测试完发现该角色没有任何的权限,需要自己添加。Superset中的安全性由Flask AppBuilder(FAB)处理,提供身份验证,用户管理,权限和角色。superset通过权限管理可以定义多种角色,角色和角色之间的区别是通过赋予不同的权限来控制的,初始有5个角色:
- Admin 管理员权限,拥有superset中的所有权限
- Public 默认没有任何权限需要进行配置,
- Alpha 可以修改添加访问所有数据源,但无法授予或撤销其他用户的访问权限
- Gamma 访问查看分配给他们的数据源制作的切片和仪表板,可以理解为是业务查看方,可以创建查看切片和仪表板,
- granter
- sql_lab sql_lab角色用于授予需要访问sql lab的用户,而管理员用户可以访问所有的数据库,默认情况下,Alpha和Gamma用户需要一个数据库的访问权限
除了以上角色之外,superset可以定义多种角色,这样对数据过程中的权限管理就做到了控制。
我目前采用的权限管理方案是gamma角色+浏览数据源的角色结合控制每个人的权限,但是这样遇到一个问题,sqllab权限虽然开了,但是用户无法在其中执行sql语句,一直显示没有数据源的权限,但是这个权限我明明是开通了的。
public权限如下:
遇到的第3个问题,连接阿里云的数据库的时候总是报错,1045, Access denied for user ,这个报错的意思是密码错误,但是核对了好几遍,密码都是对的,最终发现是SqlAlchemy连接方式的问题,密码中存在@符号,最终导致密码会被意外截断,所以只需要就修改下密码去除@符号即可正确连接。
另外,superset支持及表关联查询,这个查询的前提是在在chart表权限中开启,
目前尝试的最好的方法是一张dashboard单独建立一个表。
如何实现Dashboard或者slice定时发送邮件?
http://superset.apache.org/installation.html#email-reports
根据官网的文档,实现的方式是使用python爬虫的方式实现,这就很迷了,理论上添加这个功能应该不难,不知道为什么没有添加?
我们这里先按照官网的方式实现下:
1 | Schedules are defined in crontab format and each schedule can have a list of recipients (all of them can receive a single mail, or separate mails). For audit purposes, all outgoing mails can have a mandatory bcc. |
注意这句话,通过crontab方式定义发送时间,
二、redash
redash有什么特点?就一句话,把SQL可视化,redash的自定义好一些。
这些国外的开源BI软件的见面都很素雅的感觉,接下来介绍一个国内的开源BI平台
三、davinci开源BI平台
https://github.com/edp963/davinci
最后
以上这些开源BI平台在初始阶段可以满足基础的使用,但是一旦报表达到了一定的数量之后,就必须考虑更换更加好的收费平台或者对开源BI平台进行自定义了。