如何搭建一套数据分析平台? | 人人都是产品经理


本站和网页 http://www.woshipm.com/data-analysis/760397.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

如何搭建一套数据分析平台? | 人人都是产品经理
首页
培训课程
分类浏览
业界动态
25001篇文章
产品设计
16671篇文章
产品运营
13490篇文章
产品经理
9345篇文章
职场攻略
4576篇文章
营销推广
3756篇文章
交互体验
3615篇文章
分析评测
3018篇文章
创业学院
1943篇文章
用户研究
1561篇文章
数据分析
1531篇文章
原型设计
1355篇文章
活动讲座
问答
企业培训
圈子
快讯
搜索
APP
起点课堂会员权益
1000+专题课程
50G学习资料包
专项技能课程
全年48场直播
会员专属社群
产品经理大会
荣耀标识
特权持续新增中
{{ userInfo.member ? '查看权益' : '开通会员' }}
发布
注册 | 登录
如何搭建一套数据分析平台?
秦路
2017-08-21
10 评论
8.3万 浏览
242 收藏
19 分钟
释放双眼,带上耳机,听听看~!
00:00
00:00
文章分享了一个简单的数据分析平台搭建教程,希望能够对你带来些帮助。
今天教大家如何搭建一套数据分析平台。
它可能是最简单的搭建教程,有一点Python基础都能完成。比起动辄研发数月的成熟系统,借助开源工具,整个时间能压缩在一小时内完成。
优秀的数据分析平台,首先要满足数据查询、统计、多维分析、数据报表等功能。可惜很多分析师,工作的第一年,都是埋葬在SQL语句中,以SQL+Excel的形式完成工作,却用不上高效率的工具。
说Excel也很好用的同学,请先回避一下。
另外一方面,以互联网为代表的公司越来越重视数据,数据获取不再是难点,难点是怎样敏捷分析获得洞察。
市面上已经有不少公司推出企业级的分析平台和BI,可惜它们都是收费的。我相信不少读者听说过,但一直没有机会体验,或者老板们囊中羞涩。现在,完完全全能免费建立一套BI系统,即可以单机版用以分析,也能私有化部署到服务器,成为自家公司的分析工具。
这一切,只需要一小时。
Superset
Superset是一款轻量级的BI工具,由Airbnb的数据部门开源。整个项目基于Python框架,不是Python我也不会推荐了,它集成了Flask、D3、Pandas、SqlAlchemy等。
这是官网的案例(本来是动图的,可惜压缩后也超过微信图片大小限制,吐槽下),想必设计界面已经能秒杀一批市面上的产品了,很多BI真的是浓烈的中国式报表风……因为它的前端基于D3,所以绝大部分的可视化图表都支持,甚至更强大。
Superset本身集成了数据查询功能,查询对分析师那是常有的事。它支持各类主流数据库,包括MySQL、PostgresSQL、Oracle、Impala、SparkSQL等,深度支持Druid。
后台支持权限分配管理,针对数据源分配账户。所以它在部署服务器后,分析师们可以通过它查询数据,也能通过数据建立Dashboard报表。
介绍了这么多,想必大家已经想要安装了吧。
安装
Superset同时支持Python2和Python3, 我这里以Python3作为演示。它支持pip形式的下载,不过我不建议直接安装,因为Superset的依赖包较多,如果直接安装,很容易和现有的模块产生冲突。
这里需要先搭建Python的虚拟环境。虚拟环境可以帮助我们在单机上建立多个版本的Python。简而言之,即可以Python2和Python3共存,也能Python3.3、3.4、3.5共济一堂,彼此间互相独立。
虚拟环境的安装方式很多,pyenv和virtualenv等。这里用Anaconda自带的conda工具。打开电脑终端/cmd,输入以下命令。
conda create -n superset python=3.4
conda create是创建虚拟环境的命令。-n是环境的命名参数,在这里,我们创建了名为superset的环境,它安装在Anaconda的envs目录下。python版本为3.4(superset暂时不支持3.6)。
该命令只会安装基础包,如果需要额外安装其他包,在命令行后加上想要的包名字即可,如python=3.4 numpy pandas。
安装很迅速,完成后,我们的Python环境还是默认版本,现在需要激活虚拟环境。
source activate superset
source activate是激活命令,superset为想要激活的虚拟环境名。windows和mac的命令不一样,win只要activate superset 。如果要退出,则是source deactivate或者deactivate。
激活成功后,命令行前面会多出一个前缀(superset),表明切换到了新的虚拟环境。接下来安装superset。
pip install superset
pip会自动安装所有的依赖,速度可能有点慢,建议更改pip源。
命令行后加上 -i https://pypi.douban.com/simple ,我这里用了豆瓣的镜像源,速度嗖嗖的。
如果安装过程中报错,是部分程序缺失,像系统比较老旧的win用户,需要安装新版的visual c++,网上搜索教程即可。在官网的教程中,还要求pip install cryptography==1.7.2,我没有安装也没有影响,供大家参考。其他报错,都可以通过搜索解决。
安装成功后,需要进行初始化配置,也是在命令行输入。
fabmanager create-admin –app superset
首先用命令行创建一个admin管理员账户,也是后续的登陆账号。会依次提示输入账户名,账户使用者的first name、last name、邮箱、以及确认密码。fabmanager是flask的权限管理命令,如果大家忘了密码,也能重新设立。
superset db upgrade
初始化数据源。
superset load_examples
载入案例数据,这里的案例数据是世界卫生组织的数据,也是上文演示的各类可视化图表,大家登陆后能够直接看到。下载速度还行。
superset init
初始化默认的用户角色和权限。
superset runserver
最后一步骤,启动Superset服务。因为我们是本地环境,所以在浏览器输入 http://localhost:8088 即可。在runserver后面添加 -p XXXX 可更改为其他端口。
进入登陆界面,输入登陆密码,大功告成。
使用
先别急着使用,因为Superset是英文,我们先把它汉化了。Superset自身支持语言切换。
进入到Superset所在目录文件,按我之前的步骤,应该在anaconda/envs/superset/lib/python3.4/site-packages/superset中,路径视各位情况可能有差异。
在目录下有一个叫config.py的文件,打开它,找到Setup default language这一行,修改变量。
BABEL_DEFAULT_LOCALE调整为zh,这样界面默认为中文。languages字典中zh前面的注释#去掉。保存后退出。
接下来还是在Superset的目录下新创建文件夹,按translations/zh/LC_MESSAGES的路径依次创建三个。Superset官网提供了汉化包,在最大的同性交友网站github上下载,目录为:
https://github.com/apache/incubator-superset/blob/master/superset/translations/zh/LC_MESSAGES/messages.mo
网址路径有点长,下载后把mo文件放在LC_MESSAGES文件下。清除浏览器的缓存,重新登陆localhost。
搞定!
需要注意的是,它并非完全汉化,而是汉化了superset相关的部分。部分文字被写入在flask app的文件中,汉化起来比较麻烦。
Superset分为多个模块,安全模块是账号管理相关,包括角色列表,视图权限控制,操作日志等。管理模块没什么用,主要是设计元素。
数据源可以访问和连接数据库,切片是各类数据可视化,均是单图;看板即为Dashboard,是切片的集合,Superset提供了三个初始案例,SQL工具箱是数据查询平台。
麻雀虽小,五脏俱全,对于大部分中小型的企业,Superset足以应付数据分析工作。
先学习连接数据库,这里以我电脑中的数据库为准,如果大家学习过早前的教程,那么数据库中都应该有数据分析师的练习数据,我这里不重复了,可以看历史文章。也可用自带的卫生数据照着练习。
Superset使用了sqlalchemy框架,使用前需要安装数据库驱动程序,先退出runserver,进入superset虚拟环境,安装Python中的MySQL驱动程序。
 pip install pymysql
MySQL的驱动程序很多,除了pymysql,还有mysqlclient等。安装好后,进入数据源,新建一个database连接。
在SQLAlchemy URL中加入数据库的地址,格式为:
mysql+pymysql://root:xxxx@localhost:3306/qin?charset=utf8
mysql是数据库类型,pymysql是驱动程序,表示用pymysql连接mysql数据库,+号不能省略。
另外,root是数据库登陆账号,xxxx为密码,这个按大家自己设立的来。localhost是数据库地址,因为我的是本地环境,所以localhost即可,也可以是127.0.0.1。3306是端口,一般默认这个。qin是需要连接的数据库,也是我自己设的名字。后面带参数charset=utf8,表示编码,因为表里面有中文。
其他数据库的连接大同小异,图中绿色的连接是相关教程。
如果大家在公司网络,拥有内网访问数据库的权限,也可以尝试连接,应该是可以的,这样就能在个人电脑上实行敏捷的BI分析。
格式命名好后,点击测试,出现seems ok,表示成功访问。在选项下面还有个Expose in SQL Lab,允许我们在SQL工具箱查询,要打上勾。
进入到SQL工具箱,左边选择table为DataAnalyst。
直接出来了数据库的数据预览。连查询平台的颜值都那么高。大家的SQL技能应该都很不错,有兴趣可以在这里练习一下,语法和MySQL一致。其他数据库则是其他数据库的语法。
执行一段SQL语句,它支持下载为CSV,我没试过支持最大文件的大小,但作为日常的查询平台是绰绰有余了。
选择Visualize,进入切片绘图模式。
这里自动匹配支持的图表选项,包括Bar Chart条形图,Pir Chart饼图等。下面的选项是定义维度,我们将city,education,postitionName,salary,workYear都勾选为维度。agg_func是聚合功能,这里将职位ID求和,改成count(),点击生成图表。
这里按城市生成了各职位ID求和获得的条形图,也就是不同城市的分析师人数。
左边Chart Options可以调整分析需要的维度。Metrics是分析的度量,这里是count(positionId),Series是条形图中的类别,Breakdowns可以认为是分组或者分桶。这里将Series改成workYear,Breakdowns改成city,点击Query执行。
条形图变更为按工作年限和城市细分的多维条形图。点击Stacked Bars,则切换成堆积柱形图。操作不难。
左侧的选项栏还有其他功能,这里就不多做介绍了,和市面上常见的BI没有多大区别,琢磨一下也就会了。
Superset支持的图表很丰富,如果具备开发能力,也能以D3和Flask为基础做二次开发。Airbnb官方也会不断加入新的图表。不同图表,其左侧的操作选项也不同。
上图是以数据分析师职位名称为基础绘制的词云图,生成的速度会比较慢。我们选择save保存。完成的图表均存放在切片下。
Dashboard通过多个切片组合完成,每个切片连接不同的数据源,这是BI的基本逻辑。进入看板界面,新建一个Dashboard。
设置看板相应的配置选项,因为我偷懒了,所以只做了两个切片,大家有兴趣可以继续增加。其他选项忽略,都是自动生成的。点击save,到这一步,BI最重要的Dashboard就完成了。
浏览一下最终的成果吧。
关于Superset的新手教学结束了,要是部署到公司,账号和权限多研究下。它和市面上的其他BI没有太多区别,不过它是我们用Python从零到有一手建立,这个感觉可比用Excel爽不少。虽然我的演示以单机版为主,将其建立在linux服务器上大同小异。
从零开始搭建到现在,排除掉下载花费的时间,大家可以计算是不是真的只用一个小时就搭建好一个数据分析平台?没骗你们吧。
通过搭建Superset,数据分析新手对BI应该也有一个大概的了解,市面上的BI大同小异,只是侧重点不同。在Superset的基础上,往底层完成埋点采集和数据ETL,往上拓展报表监控,CRM等,这些也有不少开源软件可用。至于机器学习,以及Hadoop和Spark更是一个大生态,把这些都算上,则是真正完整的大数据分析平台了。
Superset也有缺陷,它使用的是ORM框架,虽然它能连接众多的数据库,但是它有一个关系映射过程,将SQL数据转化为Python中的对象,这也造成它在大数据量的处理效率不如专业的BI软件。在使用SQL工具箱时,应该尽量避免超大表之间的关联,以及复杂的group by。
我个人的建议是,它只是一款轻量级的BI,复杂的数据关联,应该在ETL过程中完成,Superset只需要执行最终结果表的读取即可。它足够支撑TB级别的数据源读取。技术比较成熟的团队,也能尝试将Superset和Kylin整合,这样OLAP的能力又能上一个台阶。
另外,Superset中的表都是独立的,所以多图表间的复杂联动并不支持,仅支持过滤,这点比较可惜。不知道Airbnb后续会不会支持。
好消息是,这个开源项目一直在更新,github什么也有很多新的功能特性待开发,比如dashboard上加入tab切换栏等。可以star一下关注。
如果搭建过程有疑问,欢迎留言。
#专栏作家#
秦路,微信公众号ID:tracykanc,人人都是产品经理专栏作家。
本文由 @秦路 原创发布于人人都是产品经理。未经许可,禁止转载。
给作者打赏,鼓励TA抓紧创作!
赞赏5人打赏
更多精彩内容,请关注人人都是产品经理微信公众号或下载App
Python数据分析平台
收藏已收藏 | {{ postmeta.bookmark }}
点赞已赞 | {{ postmeta.postlike }}
秦路
小角色,公众号:tracykanc
47篇作品
2.4m总阅读量
为你推荐
产品经理“人身安全”指南:项目管理的理论和实践
08-043460 浏览
初创公司高效转化客户的办法:长期宽泛的软广,短暂高频的硬广
09-222245 浏览
在信息过载的世界里,如何找到“突破性信息”
03-022617 浏览
数字化转型:数据可视化赋能销售管理
05-174213 浏览
2022年,10件令人印象深刻的互联网大事
12-194421 浏览
评论
评论请登录
Alan.
老师 我安装完了后,到了登录那边后 我初始出来的账号和密码输入进去总是提示无效的账号,就是上面会出现一个黄条提示账号无效,我不知道是啥问题,我看控制台显示200 其实已经请求成功了但是就是登录不上去,求指点啊 不知道为什么
2020-05-26
来自北京 回复
软件定制 小黎
找我们吧 我们公司主负责软件定制开发 希望能帮到你 ww520buli
2019-08-20
来自浙江 回复
Darwin
求教大佬,为什么运行第一条命令就报错 我的python版本是3.2
Solving environment: failed
CondaHTTPError: HTTP 404 NOT FOUND for url
Elapsed: 00:00.016626
The remote server could not find the noarch directory for the
requested channel with url: https://pypi.tuna.tsinghua.edu.cn/simple
As of conda 4.3, a valid channel must contain a `noarch/repodata.json` and
associated `noarch/repodata.json.bz2` file, even if `noarch/repodata.json` is
empty. please request that the channel administrator create
`noarch/repodata.json` and associated `noarch/repodata.json.bz2` files.
$ mkdir noarch
$ echo ‘{}’ > noarch/repodata.json
$ bzip2 -k noarch/repodata.json
You will need to adjust your conda configuration to proceed.
Use `conda config –show channels` to view your configuration’s current state.
Further configuration help can be found at .
2019-06-24
来自北京 回复
上上签
这种分析用tableau岂不更好
2018-12-20
来自北京 回复
小祁爱数据
靴靴
写的很好
2018-11-05
来自辽宁 回复
fdzj1989
在运行sql编辑器出现“module” object has no attribute ‘SIGALRM’这个问题怎么解决,我是在win7系统安装的,我按照网上的说法把utils文件里面的signal所在行都注释,下面再加一个pass,但是还是有错误,急求解决办法
2018-04-11
来自浙江 回复
大口九
大神,我在设置mysql+pymysql://root:xxxx@localhost:3306/qin?charset=utf8时 测试链接提示错误,请问该怎么办呢?错误代码“ERROR: {“error”: “Connection failed!\n\nThe error message returned was:\n(_mysql_exceptions.OperationalError) (1049, \”Unknown database ‘qin’\”)”}” 求指导
2017-12-21
来自浙江 回复
震哥
回复大口九
这个错误不就是告诉连接失败吗?没有这个数据库qin
2018-05-24
来自四川 回复
baby boy
额 这个有什么用啊。。。
2017-08-22
来自浙江 回复
鼻涕龟
测的
2017-08-21
回复
为你推荐
医药行业分析之医疗改革中政治经济学
02-183118 浏览
我做中台这5年:转转中台发展的整体回顾
06-214004 浏览
“金三银四”遇冷?求职者路在何方
03-242909 浏览
快讯
查看更多
热门文章
产品周报212期 | 字节推出“头条号外”App,抖音爱奇艺宣布达成合作
07-22
为什么销售数据不好,关键在于不会构筑攻防体系
11-21
3个诀窍,浅谈酒店行业的客户体验提升
04-07
线上配镜新方式:眼镜直通车竞品分析报告
08-30
一个持续多年的疑问:为什么中国没有电商独立站的土壤?
11-16
《梦华录》点映风波:不赚钱的爆款,不正常的业态
06-26
文章导航
Superset
安装
使用
关于
人人都是产品经理(woshipm.com)是以产品经理、运营为核心的学习、交流、分享平台,集媒体、培训、社群为一体,全方位服务产品人和运营人,成立12年举办在线讲座1000+期,线下分享会500+场,产品经理大会、运营大会50+场,覆盖北上广深杭成都等20个城市,在行业有较高的影响力和知名度。平台聚集了众多BAT美团京东滴滴360小米网易等知名互联网公司产品总监和运营总监,他们在这里与你一起成长。
合作伙伴
链接
隐私政策
投稿须知
意见反馈
公众号
视频号
友情链接
PM265
产品经理导航
起点课堂
拉勾网
猪八戒网
25学堂
互联网的一些事
人才热线
伙伴云表格
学UI网
网易易盾
个推
友盟+
粮仓
创业邦
每日报告
鸟哥笔记
慕课网
旗下品牌: 起点课堂 | 运营派 | 粮仓企微管家
©2010-2020 - 人人都是产品经理 - 粤ICP备14037330号-粤公网安备 44030502001309号
广播电视节目制作经营许可证(粤)字第03109号 版权所有 © 深圳聚力创想信息科技有限公司
企业内训/课程咨询和合作: 18682011582
其他合作/投诉/意见反馈: 18123776760