目录
1. 背景
随着越来越多的公司开始重视数据的积累和产品的敏捷开发,数据量的不断增加和开发周期的不断缩短,就形成了一对明显的矛盾。所以一些列高效的开发工具,就变得尤为重要。
对于业务数据已经上云的企业来讲,阿里云的数加平台就提供了一套高效的云上开发平台。本文通过数据挖掘业务的处理流程,简单介绍一下数加平台中各主要工具在数据挖掘项目中的实践。
2. 数据源
数加平台可以通过【数据集成】工具,将保存在阿里云上不同类型数据库中(例如RDS等)的数据同步到数加平台的【DataHub】中,也支持将本地客户端的数据上传到【DataHub】中。如下图所示。
数据集成工具
3. 数据处理
数加平台的数据处理工具相对比较丰富,喜欢使用IntelliJ这类静态编译IDE的小伙伴,可以使用MaxCompute Studio。这个IDE就是基于IntelliJ开发的,所以功能比较全面,既支持开发SQL程序,也支持开发Java程序和Python程序,关于这款IDE的详细用户手册,大家可以参考以下网址:
https://help.aliyun.com/document_detail/50889.html?spm=a2c4g.11186623.3.3.61af3baaBgHbf2
当然,对于喜欢使用Jupyter Notebook这类REPL方式的IDE,同时也喜欢使用Python这类动态编程语言进行数据处理的小伙伴,更是可以在Jupyter Notebook上高效使用【PyODPS】这款神器快速处理数据。关于这款神器的使用,我之前有一篇博客作了比较详细的介绍,这里就不赘述了,请大家出门左转,去看【浅谈PyODPS】那篇博客。网址如下:
https://yq.aliyun.com/articles/292672?spm=a2c4e.11155435.0.0.8dd83312JISqNK
不过,以上两种方式都需要在本地电脑上预先安装IDE环境,如果本地电脑上没有安装相应的IDE开发环境,也没有关系,阿里云十分贴心的在云端给开发者们安装了IDE环境,开发者可以直接通过浏览器,在云端进行数据处理及模型开发。只要在数加平台的【DataWorks】页面点击【进入数据开发】的按钮,就可以直接进入IDE环境【DataStudio】进行开发了。这个IDE的开发环境是拖拽式的可视化开发环境,界面非常美观大方,以工作流的方式呈现,非常便于理解。而且DataWorks 2.0版本的【DataStudio】开发环境,还把【PyODPS】和【机器学习(PAI)】这两大神器集成进工作流,完成了从读取数据,到数据预处理、特征工程,再到模型训练及预测的数据挖掘项目中除可视化呈现以外的全工作流程。此外,【DataStudio】还增加了对【跨租户节点】和【OSS对象检查】的控制,进一步增强了整个工作流的实用性。【DataStudio】的界面如下图所示。
【DataStudio】界面
4. 模型训练及预测
作为一名数据挖掘工程师,我对数加平台的【机器学习PAI】平台,也是非常的喜爱。因为它既可以使用拖拽式的可视化建模,也可以使用Notebook建模;而且无论使用传统机器学习的算法库,还是使用深度学习算法库,都可以开箱即用,节省了大量安装各种算法库及各种依赖的时间。尤其是深度学习框架,【机器学习PAI】平台支持的深度学习框架非常多,TensorFlow、Caffee、MXNet、PyTorch等主流的框架都支持,而且底层还是通过GPU集群来支持深度学习运算的,使用起来非常的舒服。回想起当初自己在本地集群上安装TensorFlow、Keras时,踩的各种系统底层依赖关系的坑,之后又遇到各种版本不兼容的坑,真的是不堪回首……
不过,如此高效的【机器学习PAI】平台,收费标准也是值得留意的,尤其是对个人账户在使用此服务的时候。详细价格的网址如下:
https://www.aliyun.com/price/product?spm=a2c0j.7906784.0.0.826662dcGnkgfV#/pai/detail
以下两图是在【机器学习PAI】平台上,使用不同算法,针对不同业务场景建立的模型。
时间序列预测模型
分类算法预测模型
5. 数据可视化
作为数据挖掘的产品,最终呈现给客户的大部分是可视化的报表或者大屏。当然,也可以是作为下一步自动化处置的输入或者触发条件,从而形成全自动化或者有部分人工干预的智能化决策系统的一环。但是作为产品,都离不开可视化的部分。
数加平台的可视化产品【QuickBI】和【DataV】都是会让我上瘾的产品。使用【QuickBI】制作报表,真的是非常的Quick!而且美观大方,2018年新增加的【数据门户】功能,更是可以将不同业务场景的报表汇集起来,制作成一个门户网站,炫酷极了。不过我们公司的业务报表就没办法贴出来了,只能简单的放一张全国地理分布图让大家有个印象了。
【QuickBI】中地理分布图的一种
【QuickBI】跟线下的商业级BI报表软件(例如Tableau)相比,操作的简便性和使用的流畅性都非常的好,而且从价格上比,【QuickBI】对企业用户就显得亲民多了。对个人账号来说,【标准版】一年大概500元人民币的价格,其实也算不上贵,不过我还是没舍得……工资的增长曲线的斜率远小于物价增长曲线的斜率……就在将要发博客的今天,我又得知一个噩耗,原本公司许诺的10W元优秀团队的奖金突然变成了2K元,落到每个人手里就变成了一张100元的京东购物卡……回想起驻场开发期间那些连续包宿奋战的日日夜夜,我也只能默默流泪了……走远啦!继续!
不过,我还是以一年51元的价格,愉快的购买了【DataV】的基础版,这个能制作炫酷大屏的神器。【DataV】的操作也非常的简便,拖拽的方式,所见即所得的页面,再加上现在越来越支持个性化的发展趋势,以及很容易入手的价格,真有点让人欲罢不能。下图是我之前保存的【DataV】中的一个示例,大家可以感受一下炫酷的效果。
【DataV】示例
6. 总结
至此,一个数据挖掘项目的全部流程就走完了。在数加平台上,整个数据挖掘项目可以实现敏捷开发,快速上线。但是如果是在本地集群上开发,前期需要完成比较沉重且繁琐的Hadoop、Spark等组件的部署,IDE开发环境的搭建,以及在此基础上各种算法类库和深度学习框架的安装工作;之后,才能根据具体的业务需求,开始数据挖掘工作;在经过上百行甚至上千行代码的Coding & Debugging之后,完成建模的工作,准备进入产品可视化的阶段;这时,如果想要以报表的形式输出数据挖掘成果,就要选择一款生成BI报表的软件,这其中比较User Friendly的软件多半都是商业级的,而且都价格不菲。不过单从技术角度来说,一般的数据挖掘工程师还都是能应付得来的。可是,如果想要以页面大屏的形式展现数据挖掘的成果,那么多半都会需要UI工程师和前端工程师帮忙了,这之后撕逼期的长短,就看每个团队自己的造化了。这样一来,如果想要达到跟在【数加平台】上开发相近效率和速度,不光需要数据挖掘工程师有较高的工程师素养,对整个数据挖掘项目团队的战斗力要求也是比较高的。简单来说,也可以用下面两个等式近似的作一个比较。
在对同一业务场景有相同理解的前提下,
通过上述比较,可以很明显的看出数据业务上云的好处了吧。不过也有很多用户的数据是没办法上云的,至少在比较长的一段时间内是没办法上云的,比如说众多的中央企业、政府部门等。针对这些客户的数据挖掘项目,阿里云也正在通过各种开源项目为开发者们提供着各种敏捷开发的工具,比如用于大规模科学计算的引擎【Mars】,国内首个工业级的图深度学习框架【Euler】,还有鼎鼎大名的流式计算框架【Blink】,等等等等。今天,阿里已经不仅仅是上云的代名词,对于一个数据挖掘工程师来说,阿里,更是大数据技术发展趋势的风向标。
我现在正在学习和参与内测阿里的一些很棒的开源项目,下面是【Mars】和【Euler】的Github地址,【Blink】的地址等到开源之后也会贴出来。
【Mars】:https://github.com/mars-project/mars
【Euler】:https://github.com/alibaba/euler
希望有更多做开发的小伙伴们能够把这些开源框架应用到自己的敏捷项目开发中,在提高自己项目开发效率的同时,也帮助这些开源项目更好的成长。在大数据领域中,为世界贡献一个中国的阿里!