You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
12 KiB
Markdown

2 years ago
# 31 | 最先进的数据分析工具展望
数据给你一双看透本质的眼睛,这里是《数据分析思维课》,我是郭炜。
在第[27节课](https://time.geekbang.org/column/article/424564)里,我给你分享了我常用的数据分析工具图谱,我们今天再进一步来看看,到底这些工具图谱里最新的技术工具长什么样子?
在这节课里我会给你介绍2021年企业里最常用的比较先进的工具等将来出现了更好的工具我会在后续的加餐里再做更新。
整个大数据分析框架离不开三个基础技术部分:数据存储、数据处理和数据展示。接下来我就根据这三个基础技术,选三个比较新的开源免费的工具与你分享,我们一块来看看最新的技术可以达到什么的样子。
## 数据存储与分析引擎——ClickHouse
在数据存储的部分我给你介绍一下现在全球最流行的专门针对数据分析打造的引擎ClickHouse。
ClickHouse专门为数据分析师打造。为什么这么讲呢
**第一它使用的不是非常复杂的NoSQL编程语言而是用的很简单的SQL语言**这样数据分析师、产品经理和运营人员都会非常熟悉。
**第二,它的宽表查询速度非常快,全球第一。**我们做最后数据分析1公里的时候大多数情况都可以用一个或者几个大宽表来解决问题。传统的大数据工具因为要适配各种情况经常在数据量增大时整体数据处理的速度变得非常慢。你往往是要填写一个需求单给数据开发和工程部门让他们转化成复杂的编程语言或者在大数据平台上面提交一个任务才行。这样一来少则半个小时多则数天你才可以拿到你想要的结果。
而ClickHouse这个引擎数秒之内就可以针对百亿条的数据进行复杂的SQL查询。无论是我们需要做分组聚合、明细过滤还是基于文本的条件筛选它的速度都是秒甚至毫秒级别出结果。这样你在做数据分析的时候就可以不停地快速进行数据探查不会打断你的数据分析思路。而不是在提交各种各样的任务后喝杯咖啡甚至休息几小时之后再看到结果。
**第三ClickHouse整体部署和维护安装比较简单在数据量不是特别大的时候一台服务器就可以搞定普通的运维人员就可以维护。**对于更复杂的情况你可以使用集群版或者相关的商业版本来提高维护效率。所以ClickHouse这个数据引擎特别适合做数据分析现在已经成为互联网公司的标配数据分析引擎了下图的这些公司都在使用ClickHouse作为它的分析引擎来分析数据。
![](https://static001.geekbang.org/resource/image/63/de/63fe0d040e134ae247cc1dcd7194e5de.png?wh=1579x620)
那ClickHouse到底怎么来用的呢我这里举三个公司对外分享的实例给你分享一下ClickHouse都能干什么。
首先是喜马拉雅的例子这是2019年喜马拉雅Alex黄在ClickHouse Meetup的时候分享的案例。你能看到在喜马拉雅ClickHouse作为一个典型的数据查询平台来使用它既做用户行为分析也就是我们网上的各种各样的APP和网络日志的查询也做用户画像的数据分析你可以对不同用户画像标签的圈选人群进行人群探查、投放效果预测它还可以用于各种服务器日志的监控报警当服务出现问题的时候管理可以快速找到相关问题的原因整体架构图可以参考下面这个样子。
![](https://static001.geekbang.org/resource/image/57/d1/57eeeb609bfd89b64966fc7c4ac8e1d1.png?wh=1267x685 "喜马拉雅 AlexHuang 2019.10.27 ClickHouse Shanghai Meetup")
下面一个例子我们来看看腾讯音乐是怎么使用ClickHouse的。
腾讯音乐把ClickHouse作为了实时分析数据仓库你在使用腾讯音乐的推荐和点击的时候背后的大数据平台就是ClickHouse来提供的。
腾讯把数据放到消息队列里然后通过一个叫做Flink的工具实时装载到ClickHouse当中同时把一些离线文件传入传统的数据仓库里。最终我们数据分析师使用的数据看到的是实时的数据既可以看到上一秒的系统情况还可以做各种自定义的SQL查询数据还是秒回。这样帮助腾讯音乐自助进行汇总、筛选查询也能快速地响应各种各样的原始数据变更。
其实所有互联网大厂里使用ClickHouse都可以实现针对数据用户日志的秒级查询不再需要数据运营和产品团队自己跑复杂的脚本任务和处理了。
![](https://static001.geekbang.org/resource/image/4d/a1/4dc5a8d704f393b1391ec027c4ea88a1.png?wh=1618x728 "腾讯音乐 吴泽君 2021.2.6 On-line Meetup")
最后一个例子我们来看看新浪。ClickHouse在新浪用于监控整个数据平台。这个例子有意思的地方是新浪每天有300亿条的数据直接进入到ClickHouse平台里而新浪在做监控的时候是通过算法来进行监控和处理的每日有800万次的查询每次几乎是毫秒级返回。
这就像前面数据算法基础这一章提到的,开始时还是用人在做分析,当技术发展到一定程度,我们就可以通过算法和机器来进行分析。现在的数据底层的技术可以已经可以非常容易地做到用算法取代人工,最终高效地实现整体的数据分析和告警。
![](https://static001.geekbang.org/resource/image/91/eb/912c91062d4baee0536e7486e37da1eb.png?wh=1366x689 "新浪 JackGao 2019.10.27 ClickHouse Beijing Meetup")
数据存储还有很多各种各样的引擎比如Spark SQL、Presto、Impala等等这些引擎都可以很好地处理数据分析我只是介绍其中的一种让你体验下最新的数据存储技术是什么样子。
每个数据分析师可以根据自己数据团队的情况选择最合适自己公司的开源产品来使用我录了一个视频让你体会下ClickHouse到底有多快一台机器10亿条数据复杂查询4秒就出结果而同样的数据Presto集群若干台机器还要40秒才可以出结果你要是感兴趣可以关注ClickHouseGroup微信号来看到最新的ClickHouse中国社区 Meetup信息和中文材料。
## 数据处理与调度平台——Apache DolphinScheduler
数据我们都已经存储好了SQL你也写好了如果这是一个日常都要做的任务你肯定不希望每次都需要人来运行它要可以自动调度把数据处理到我们目标的数据表里才是最好。这个时候就需要数据运营平台的数据调度和处理引擎了。
这里我给你介绍一个我当年主导开源的数据处理与调度平台它也是一个Apache顶级项目Apache DolphinScheduler。
它源于我上一家公司易观给内部数据分析师和数据开发人员使用的调度工具。它的优点是全部是可视化的配置数据分析师最爱而且超级稳定易扩展。在数据平台人员安装完成之后你不需要懂得服务器脚本或任何的大数据平台语言你只需要拖拽把你熟悉的SQL脚本放到这个调度平台里把这些表之间的逻辑关系通过连线把它连起来你就可以得到一个非常方便使用的大数据调度处理流程了。
底层它采用的是云原生的技术扩展性和稳定性都是非常优秀的所以它也是Apache基金会的顶级项目。它在我们数据逻辑脚本比较清晰的情况下可以不用写代码直接配置。我在下面这个视频演示了几个复杂的脚本之间有逻辑关系怎么样可以不用编程序来快速实现自动化调度启停。
Apache DolphinScheduler也得到了很多的用户使用。
![](https://static001.geekbang.org/resource/image/94/c3/94a02de86590a9byy6d7b5eca64a1ac3.png?wh=1330x680)
其中一个互联网用户叫做“奇安信”他是这样反馈的Apache DolphinScheduler是一个可视化非常好的工具无需代码就可以调度任务。降低使用门槛它底层用了分布式、易扩展的方式实现了集群高可用所有的资源文件都是在线的不用登陆带服务器就可以看到日志错误调试脚本、管理上传的脚本文件同时它的支持多租户也支持权限管理分给不同部门使用。
总之Apache DolphinScheduler是一个非常好的数据处理与调度工具你要是感兴趣可以访问[官网](http://DolphinScheduler.Apache.Org)来看最新的信息。
![](https://static001.geekbang.org/resource/image/a3/fa/a3846147968a65b47ae9058846d460fa.png?wh=1123x586)
除了Apache DolphinScheduler类似的还有美国AirB&B开源的Apache Airflow和Cloudera 开源的Apache OOzie等等这些都还需要编一部分代码来执行相关的任务所以**你可以根据自己的情况去测试一下哪个工具最适合你的场景,最后通过数据平台部门来帮你实现。**
## 数据展示工具——EChart
数据存储好了也处理好了最后还需要非常方便地展示出来这就不得不提国内的最牛的数据展示工具——Apache ECharts。在前面的课程里我们看过Excel各种展示图形的方式如果你觉得还不够你可以看一下ECharts这个图形展示工具它是目前市面上最全的展示工具之一。
只不过如果它要变成具体可使用的界面,还需要你请前端小伙伴编一些程序,不过看下图这么酷炫的展示,我觉得你还是值得去要一些前端开发资源的。
![](https://static001.geekbang.org/resource/image/5a/1f/5accc7942155fe13baf53da519a4301f.png?wh=1293x1097)
![](https://static001.geekbang.org/resource/image/af/66/af3faa0dc67dcd4176cf9b58102f0866.png?wh=1408x1225)
![](https://static001.geekbang.org/resource/image/e6/69/e66ab175735551064ca1672aefeb6069.png?wh=1419x1098)
我在下面这个视频里面给你介绍一下所有ECharts支持的图像你能看到非常全面几乎你所用数据想要的结果在这里都可以找到。而且它大部分图形支持手机演示也就是你的数据可以在手机上给所有相关人员展示。同样你如果感兴趣可以点击[这里](https://echarts.apache.org/zh/index.html),访问官网了解更多信息。
当然类似像Echarts这样的工具海外还有D3或者是一些其他的收费工具数据分析最后的颜面还是要找一个漂亮的图形让更多人喜爱。
## 小结
今天给你介绍了几个比较先进的数据分析工具,你应该能感觉到现在的技术已经非常发达了,只有你想不到,没有做不到的技术工具——无论是单机版实时数据分析引擎,还是无代码的数据逻辑工作流,或是动态酷炫的数据效果,现在都可以通过比较简单的程序化方式实现。
我们现在需要做的是用第三章[如何用数据说话](https://time.geekbang.org/column/article/418334)的方法捋好自己的数据分析思路和内容,用我们第二章讲到的[数据算法基础](https://time.geekbang.org/column/article/410422)扩展数据结论,同时你要注意第一章[数据分析基础](https://time.geekbang.org/column/article/400764)的内容,不要错用数据分析基础知识。最终,你就可以通过这些工具展现一个完整的动态数据分析系统,给公司老板和大多数的用户一起来使用。
基于正确的数据分析思路,使用这些工具打造的数据平台就像一个放大器,可以帮我们快速推广想法,能够帮你将已成型的数据分析思维放大给更多的人迅速使用。
需要注意的是,我们不要沉浸在先进的工具里不能自拔,工具永远只是我们拓展数据实践半径让更多的人认可数据思维的手段,所以你会发现在工具这一部分,我没有给你推荐非常多酷炫的工具,因为我觉得**对数据分析思维来说最重要的还是思维。具体用什么武器其实只要顺手它哪怕是一个小小的Excel也可以使出非常好的数据分析效果来。**如果你没有好的数据分析思维,你的展示再酷炫也是没有意义的。
数据给你一双看透本质的眼睛,数据分析核心在思维,酷炫的工具就像是美颜滤镜,底子好不好,见到真人还是要原形毕露的,所以多花心思在数据分析思路上。
## 课后思考
你还看到过什么顺手的数据分析工具?分享出来我们一起提高。