网站首页 > 技术文章 正文
作者:流川疯
同步发表于:https://season.blog.csdn.net/article/details/88071469
1. BI 技术选型对比
假如客户有一堆数据要分析,没有太多行业知识的你需要在一周之内给出基本的可视化展现怎么办?别担心,有BI软件来帮你
1.1 总体对比
除了上述提到的一些产品外,我们还有国产的一家厂商:
- FineBI
- http://www.finebi.com/
- Google Data Studio
- https://developers.google.cn/datastudio/?hl=de
1.2 硬件要求
上述BI 组件的硬件需求基本可以参考Tableau给出的
Tableau Server 的系统要求:(最高版需求)
最低系统要求
- 2 核
- 64 位处理器
- 8 GB 系统内存
- 至少 15 GB 可用磁盘空间
建议要求
- 8 个物理内核,2.0 GHz 或更高频率的 CPU
- 64 位处理器
- 32 GB 系统内存
- 至少 50 GB 可用磁盘空间
2. docker 安装Superset
下面我们选择Superset 来实战一下,看看效果到底怎么样。
2.1 Centos 安装docker
参照官网的安装简介
git clone https : //github.com/apache/incubator-superset/ cd incubator - superset / contrib / docker # prefix with SUPERSET_LOAD_EXAMPLES=yes to load examples: docker - compose run -- rm superset ./ docker - init . sh # you can run this command everytime you need to start superset now: docker - compose up
实在不想用windows 下面那个hyper-v 的docker 我就在virtual box 中安装 一个CentOS7 搞一搞 docker
过程无非是:
sudo yum update yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo https : //download.docker.com/linux/centos/docker-ce.repo yum list docker - ce -- showduplicates | sort - r sudo yum install docker - ce yum install docker - ce - 18.06 . 2.ce systemctl start docker systemctl enable docker docker version
具体可以参考
https://www.cnblogs.com/yufeng218/p/8370670.html
2.2 参照SuperSet 官网编译官网版docker
装好docker 后就是安装python 主要是为了使用python 然后docker-compose 结果直接报错:
Step 13 / 21 : COPY -- chown = superset : superset superset superset ERROR : Service 'superset' failed to build : Unknown flag : chown
参考解决方案:(可能是docker 更新了,Surperset的docker file 还没有更新?)
https://forums.docker.com/t/copy-chown-fails-in-automated-build-unknown-flag-chown/43059
修改成如下形式,继续运行,ok
运行命令:
接着报错,一看就是权限问题,TMD
superset_superset_1 exited with code 243 superset_1 | npm ERR ! path / home / superset / superset / assets / node_modules superset_1 | npm ERR ! code EACCES superset_1 | npm ERR ! errno - 13 superset_1 | npm ERR ! syscall mkdir superset_1 | npm ERR ! Error : EACCES : permission denied , mkdir '/home/superset/superset/assets/node_modules' superset_1 | npm ERR !
解决方案:
https://stackoverflow.com/questions/54049266/superset-npm-eacces-permission-denied-mkdir
结果没好,暴力加个权限:
chmod 777 (superset的当前目录及上一级目录)
其实主要是docker 里面没有操作他挂载目录中的权限,提升一下权限就好了。
结果页面成这样了
调试一下,304 错误,我前端没什么储备,等高手来救场了。
2.3 使用其他人制作好的docker
还是用别人搞好的吧,参考:
https://www.jianshu.com/p/d5978b439080
命令如下
# 0e9131be7e49 为docker ps 中的id # 先建一个/data文件夹方便映射 docker run -d -p 8088:8088-v /data:/home/superset amancevice/superset:0.28.1docker exec - it 0e9131be7e49 fabmanager create - admin -- app superset docker exec - it 0e9131be7e49 superset db upgrade # 加载例子,这一步我看日志还要数据库建立索引啥的,时间较长,不需要可以不用 docker exec - it 0e9131be7e49 superset load_examples docker exec - it 0e9131be7e49 superset init docker exec - it 0e9131be7e49 superset runserver
自带世界银行数据的BI看板,效果爆炸有木有
2.4 使用自己的sqllite 数据源分析
假如客户给了一个数据库,或者一堆csv怎么办,别担心,我们的superset 对外接数据源支持还是非常出色的,对于中小型关注成本的企业来说,BI无压力。csv ,sqllite,mysql 通通连上来。
下面我们用sqllite来小试牛刀。
由于sqllite不支持远程链接,我们的docker 之前挂载到宿主机的一个目录上面
这个数据库是我在NLP系列里面用爬虫爬的我自己的博客,主要包括标签,发表时间,点赞数,评论数等内容。
链接字符串如下
sqlite:////home/superset/NLP_demo.db
记得点击可以在 SQL 工具箱中公开,这样我们才可以在SQL工具箱中加载并找到这个数据库。
点击测试,seems ok 说明正常。
打开sql工具箱,写完sql 就可以用这个子数据集进行一些BI分析了,但是由于我之前的数据库很多列的格式没有统计,所以画图会有一些问题,这一点superset 在导入数据库数据时候似乎不能很友好的再次修改。
我选择饼图,统计一下博客中那一个标签下面发的文章最多,毫无疑问 OpenCV,尽管最近都基本没有再发过了。
参考文献
- 数据可视化的开源方案: Superset vs Redash vs Metabase (一)
- 数据可视化的开源方案: Superset vs Redash vs Metabase (二)
猜你喜欢
- 2024-10-15 微软推广XB1新招:拉朋友入伙奖一年EA Access会籍!
- 2024-10-15 EA Access很可能在年内登陆PS4(ea access hub)
- 2024-10-15 雅虎日本欲32亿美元收购eAccess(雅虎 收购)
- 2024-10-15 EA统一旗下订阅服务名称 "EA Play"更加专注玩家体验
- 2024-10-15 Windows 10 Microsfot Store新增订阅和Timeline功能
- 2024-10-15 EA Access登陆PS4平台 每月5美元 大作无限畅玩
- 2024-10-15 《FIFA15》正式登陆EA Access服务免费游戏库
- 2024-10-15 EA Access会员已可提前游玩《极品飞车 热度》
- 2024-10-15 手摸手带你 Docker 从入门到实践(dockerl)
- 2024-10-15 嵌入式学习总结5(嵌入式课程总结与体会)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)