我很是认同前百度数据工程师、现神策分析创始人桑老师最近谈到的数据分析三重境界:html
统计计数前端
多维分析python
机器学习mysql
数据分析的统计计数和多维分析,咱们一般称之为数据探索式分析,这个步骤旨在了解数据的特性,有助于咱们进一步挖掘数据的价值。而基于咱们对数据的理解,再引入机器学习的算法对数据作出预测就变得水到渠成了。react
现实世界里,大部分的公司更多时间其实没有这个精力去搭建复杂的数据分析平台,面对快速变化的业务需求,不少数据工程师都把本身的青春埋葬在SQL里了。(其实我也是埋葬在SQL里的)webpack
这几年,所谓的无埋点技术、自助式分析等等概念开始兴起,得益于数据领域的快速发展,国内外也涌现了大量基于数据分析平台的start-ups,而随着技术的发展,许多创业公司也是抱团取暖组成一个更大的团体。git
考虑到国内数据安全性的问题,即便咱们使用大厂好比百度的网站分析服务也很难保证数据安全性,私有化部署才是不少企业级解决方案的王道。github
随着 Superset 被Airbnb的数据科学部门开源了,我看到的是有许多数据分析平台的创业公司或许要转变方向了,自助式分析将再也不依赖于各大厂商!web
Superset的中文翻译是快船,而Superset实际上是一个自助式数据分析工具,它的主要目标是简化咱们的数据探索分析操做,它的强大之处在于整个过程一鼓作气,几乎不用片刻的等待。算法
Superset经过让用户建立而且分享仪表盘的方式为数据分析人员提供一个快速的数据可视化功能。
在你用这种丰富的数据可视化方案来分析你的数据的同时,Superset还能够兼顾数据格式的拓展性、数据模型的高粒度保证、快速的复杂规则查询、兼容主流鉴权模式(数据库、OpenID、LDAP、OAuth或者基于Flask AppBuilder的REMOTE_USER)
经过一个定义字段、下拉聚合规则的简单的语法层操做就让咱们能够将数据源在U上丰富地呈现。Superset还深度整合了Druid以保证咱们在操做超大、实时数据的分片和切分都能行云流水。
Superset 是基于 Druid.io 设计的,可是又支持横向到像 SQLAlchemy 这样的常见Python ORM框架上面。
Druid 是一个基于分布式的快速列式存储,也是一个为BI设计的开源数据存储查询工具。Druid提供了一种实时数据低延迟的插入、灵活的数据探索和快速数据聚合。现有的Druid已经能够支持扩展到TB级别的事件和PB级的数据了,Druid是BI应用的最佳搭档。
想必,你已经受够了Hive那个龟速查询,火烧眉毛想体验一下这种酣畅淋漓的快感了吧!
既然,要行云流水,没有Docker是不行的,想要了解一下Docker能够参考以前的文章:海纳百川 有容乃大:SparkR与Docker的机器学习实战
这里我默认你已经具有了使用Daocloud加速Docker的知识。
下载镜像:
docker pull index.tenxcloud.com/7harryprince/Superset
跑容器
docker run -p 8088:8088 -d index.tenxcloud.com/7harryprince/Superset
查询一下你的docekr ip
docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default - virtualbox Running tcp://192.168.99.100:2376 v1.9.1 dev - virtualbox Saved Unknown
这里能够看到个人默认Docker的IP是192.168.99.100
因此须要在浏览器中访问 192.168.99.100:8088
这样咱们又是三行代码搞定了一个大数据分析神器。
须要注意到,这个 Superset 容器里的默认鉴权配置是:
username: admin password: Superset_admin
下面我提供了Superset的一个在线Demo:
http://52.33.104.157:8088/login/
下面是仪表盘的交互式分析页面:
咱们能够导出JSON、CSV文件、直接获得SQL语句甚至分享页面连接。
下面是全球人口的一个分析仪表盘,感受再改动一下就能够作信息图了,大数据分析也不在话下。
下面是我最喜欢的sankey chart:
看到如此惊艳的数据产品,想必你也很想本身动手作一个吧!让咱们一块儿看看总体的架构。
整个项目的后端是基于Python的,用到了Flask、Pandas、SqlAlchemy。
Flask AppBuilder(鉴权、CRUD、规则)
Pandas(分析)
SqlAlchemy(数据库ORM)
此外,也关注到Superset的缓存机制值得咱们学习:
采用memcache和Redis做为缓存
级联超时配置
UI具备时效性控制
容许强制刷新
天然前端是JS的天下,用到了npm、react、webpack,这意味着你能够在手机也能够流畅使用。
d3 (数据可视化)
nvd3.org(可重用图表)
Superset的可视化,目前只支持每次可视化一张表,对于多表join的状况还无能为力
依赖于数据库的快速响应,若是数据库自己太慢Superset也没什么办法
语义层的封装还须要完善,由于druid原生只支持部分sql。
神策目前提供私有化的数据分析平台解决方案,根据桑老师的说法,如今考虑到安全性的问题,尚未作到Docker部署,只能远程部署(大概半个小时),这里有一丝淡淡的遗憾。
做为分享主义者(sharism),本人全部互联网发布的图文均听从CC版权,转载请保留做者信息并注明做者 Harry Zhu 的 FinanceR专栏:https://segmentfault.com/blog...,若是涉及源代码请注明GitHub地址:https://github.com/harryprince。微信号: harryzhustudio商业使用请联系做者。