如何用开源组件“攒”出一个大数据建模平台?

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 如何用开源组件“攒”出一个大数据建模平台?

一、食用须知

终于又可以名正言顺的发一篇聊天吹水。。。哦不是,是技术杂谈类的文章了,官方有活动?那必须跟上啊!咳~那么闲言少叙,下面是食用须知:

  1. 本文并非标题党,将介绍构建一个基于Web界面可操作的大数据建模平台相关的技术,以及各组件之间的关系。这是一个企业中真实存在的项目,并已实现商用,本人作为核心开发者之一,也是见证了整个平台的成长。
  2. 由于篇幅有限,不会涉及到特别具体的代码,但会尽量说明各组件与业务场景、数据处理流程的关系,其中也会穿插大数据领域相关的知识。
  3. 由于在培训领域深耕多年,如有废话和浅陋之处还请多多包涵。如果你还是一个学习者或者是一位刚刚踏入大数据领域的开发者,那么这篇文章很值得你收藏。

二、项目背景

项目的诞生可以追溯到三四年以前,在阿里巴巴的数加平台还在免费试用的时候,我们所做的大数据建模平台就已经实现商用并成单,并且曾经与华为联通达成合作并进入联通沃创空间,先来一张图感受一下:

那么,此时应有路人甲站出来说一句:你们能实现商用完全是因为大厂还没有打造好能碾压你们的产品而已~对此我只能说:emmm,你。。。说的对!

但是其实一款产品是否能够实现商用有多方面的原因,大厂在各方面的优势十分明显,但是这并不代表其他产品没有机会,除了技术实力、团队规模、项目资金外,产品定位、市场环境等同样重要。

我在接手项目的时候已经是一个半成品了,所谓大数据建模平台其实是一个通用型的产品定位,更多的是功能的整合,可以说是标准的大数据开发,团队的主要构成都是开发者,当然也会包含数据分析师。

整个产品的核心功能就是为了实现:数据采集、数据源管理、数据清洗、统计分析、机器学习、数据可视化的完整流程,难点在于形成数据流,流程可控,易被管理。即使是在多年以后,我也依然觉得这个项目虽然没有涉及到复杂的场景和各种数据分析优化解决方案,但是对我的帮助绝对是最大的,它让我真实了解并操作了数据分析的每一个流程,也可以说打通了任督二脉,以后做的任何东西其实只不过是其中某个环节的优化或者是在某一特定场景下固定的数据流程,毕竟通用的东西都做出来了,某个固定指标的指标计算或是模型训练还会是问题吗?

以后每次谈起这段项目去面试,对方都会说:这个小伙子赶上了好项目。当然,项目本身是一方面,自己的总结归纳同时重要,借着当时临近毕业,也是逼着自己去彻底的吃透这个项目,不仅仅是技术方面,同时还有产品、设计等等方面,于是乎我把他变成了我的硕士论文,当然是获得了软件著作权之后(后来发现只是毕业论文的话好像并没有什么相关)。

背景介绍到此为止,下面正片开始,如果你确定这就是你想要的,请在阅读完成之后点赞、关注,略表支持,也欢迎收藏和在评论区说出你的想法。

三、遇见技术栈

为了方便场景介绍和相关技术的处理,将会按照不同的功能模块来进行划分,首先给出完整的项目架构图。

现在看这张图,架构不免有些陈旧,但是我想历史就应该被真实的还原,当时大前端相关技术才刚刚起爆,而且这个项目在我接手之前就已经被开发了一段时间了,所以这就是它当时应有的样子,也代表了那一段艰辛打拼的岁月。

回想起那个时候大数据方面的资料和落地的项目案例真的少之又少,大部分都是拿着PPT吹牛皮,大厂中的一些和大数据相关的核心技术又不是我等草民可以接触到的,所以也算是在摸索中前进。

1. 功能模块框架

由于文章篇幅有限,只会介绍大数据建模平台的部分功能,如果你对某些环节的处理技术感兴趣,可以扫描文章底部的二维码加入微信群(CSDN官方为内容合伙人提供的正经微信群),会定期面向粉丝直播互动。

在真实的项目中,由于是企业级应用,必然会存在部门、员工等一系列的权限管理功能,本文只是侧重介绍大数据处理相关流程,所以删去了部分不太重要的部分。

2. 数据源管理

对于数据源的管理部分,要分析的数据全部存储在HDFS上,同时由于主要是进行统计分析,所以处理的数据全部是结构化的离线数据:可以从关系数据库中拉取、也可以用户自行上传,在上传完成后都是以Hive表的形式存在,在平台中只记录数据源的名称、所属、以及对应的Hive表的信息,而且后续的数据流程不会对原始数据做修改,所以同一份数据有可能被应用在多个数据流程中,所以已存在的Hive表可以声明为多个数据源,其实就是建立了多个关联关系,在建模平台中展现给用户的都是一个一个的数据源节点。

在进行关系型数据库拉取时使用了Sqoop组件,根据用户填写的数据库连接参数拼接为一个完整的命令,在服务器上执行。对于用户上传的数据文件,需要指定列名、列的类型、列与行的分隔符,根据信息自动建立对应结构的Hive表,这样导入数据以后才能够保证数据能够被正常识别。

3. 数据处理流程

对于建模平台,一个最基本的功能就是能够让用户自定义数据流程,可以应用在企业或者高校教学。我们采取的办法是将常见的一些统计分析功能和完善的机器学习库进行封装,变成一个一个的功能节点(主要通过Hive QL、Spark的Mllib,RHive实现),每一个节点都会有对应的配置参数,用户需要做的就是拖拽、组合,配置,运行。

对于前端的流程设计UI组件,我们选用的是GooFlow,数据流程可以进行保存和修改,体现在数据库中其实就是一个大JSON,里面记录了线的指向,节点的配置等等,再次打开流程的时候画布将得以还原,同时要保存整个流程各个节点的配置信息等等。

在项目流程开始以后,每一步都会生成一个结果表,作为下一步操作的数据源,最终的运行结果会生成一个结果表,可以直接以表格显示,下载结果数据,也可以拖拽一个可视化组件,配置后显示。

这里需要注意的是,GooFlow是一个需要授权使用的组件,大家也可以选择其他的组件来替代,目前网络上公开的只是试用版,要么就是带有挖矿程序的防盗版,所以大家想使用的话还是联系作者大大吧。

4. 其他功能模块

对于一些其他的功能,都是比较常规的Web应用开发。比如可视化展示的部分,就是基于对Echarts的option配置的封装,让用户可以通过界面的方式来配置图表的效果。要展示的数据从Hive当中查询,比较简单的方式就是HiveJDBC

前后端的数据交互,使用的是基于JSP标签和Ajax结合的方式,比较古老了。持久层使用的是Hibernate,虽然我个人更偏爱MyBatis,但是凭我一己之力也不可能实现重构,踏踏实实干活儿就好。

因为是介绍技术栈的文章,我没有用过多的文字,觉得用架构图、流程图来展现会更加的清晰和直接。大家有想要继续讨论的内容,可以在评论区留言~

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
30天前
|
数据可视化 关系型数据库 MySQL
基于python大数据的的海洋气象数据可视化平台
针对海洋气象数据量大、维度多的挑战,设计基于ECharts的可视化平台,结合Python、Django与MySQL,实现数据高效展示与交互分析,提升科研与决策效率。
|
4月前
|
数据采集 人工智能 大数据
10倍处理效率提升!阿里云大数据AI平台发布智能驾驶数据预处理解决方案
阿里云大数据AI平台推出智能驾驶数据预处理解决方案,助力车企构建高效稳定的数据处理流程。相比自建方案,数据包处理效率提升10倍以上,推理任务提速超1倍,产能翻番,显著提高自动驾驶模型产出效率。该方案已服务80%以上中国车企,支持多模态数据处理与百万级任务调度,全面赋能智驾技术落地。
469 0
|
1月前
|
传感器 人工智能 监控
拔俗多模态跨尺度大数据AI分析平台:让复杂数据“开口说话”的智能引擎
在数字化时代,多模态跨尺度大数据AI分析平台应运而生,打破数据孤岛,融合图像、文本、视频等多源信息,贯通微观与宏观尺度,实现智能诊断、预测与决策,广泛应用于医疗、制造、金融等领域,推动AI从“看懂”到“会思考”的跃迁。
|
4月前
|
分布式计算 算法 大数据
大数据时代的智能研发平台需求与阿里云DIDE的定位
阿里云DIDE是一站式智能大数据开发与治理平台,致力于解决传统大数据开发中的效率低、协同难等问题。通过全面整合资源、高度抽象化设计及流程自动化,DIDE显著提升数据处理效率,降低使用门槛,适用于多行业、多场景的数据开发需求,助力企业实现数字化转型与智能化升级。
128 1
|
9月前
|
存储 SQL 大数据
【重磅发布】AllData数据中台核心功能:湖仓一体化平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
【重磅发布】AllData数据中台核心功能:湖仓一体化平台
|
9月前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
本文整理自鹰角网络大数据开发工程师朱正军在Flink Forward Asia 2024上的分享,主要涵盖四个方面:鹰角数据平台架构、数据湖选型、湖仓一体建设及未来展望。文章详细介绍了鹰角如何构建基于Paimon的数据湖,解决了Hudi入湖的痛点,并通过Trino引擎和Ranger权限管理实现高效的数据查询与管控。此外,还探讨了湖仓一体平台的落地效果及未来技术发展方向,包括Trino与Paimon的集成增强、StarRocks的应用以及Paimon全面替换Hive的计划。
1036 1
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
|
8月前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
566 2
|
9月前
|
SQL 人工智能 大数据
【4月重点功能发布】阿里云大数据+ AI 一体化平台
【4月重点功能发布】阿里云大数据+ AI 一体化平台
224 0
|
9月前
|
SQL 人工智能 分布式计算
【3月重点功能发布】阿里云大数据+ AI 一体化平台
【3月重点功能发布】阿里云大数据+ AI 一体化平台
205 0
|
11月前
|
SQL 人工智能 自然语言处理
DataWorks年度发布:智能化湖仓一体数据开发与治理平台的演进
阿里云在过去15年中持续为268集团提供数据服务,积累了丰富的实践经验,并连续三年在IDC中国数据治理市场份额中排名第一。新一代智能数据开发平台DateWorks推出了全新的DateStudio IDE,支持湖仓一体化开发,新增Flink计算引擎和全面适配locs,优化工作流程系统和数据目录管理。同时,阿里云正式推出个人开发环境模式和个人Notebook,提升开发者体验和效率。此外,DateWorks Copilot通过自然语言生成SQL、代码补全等功能,显著提升了数据开发与分析的效率,已累计帮助开发者生成超过3200万行代码。

热门文章

最新文章