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

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*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的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
3月前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
243 1
|
3月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
151 0
|
20天前
|
SQL 人工智能 自然语言处理
DataWorks年度发布:智能化湖仓一体数据开发与治理平台的演进
阿里云在过去15年中持续为268集团提供数据服务,积累了丰富的实践经验,并连续三年在IDC中国数据治理市场份额中排名第一。新一代智能数据开发平台DateWorks推出了全新的DateStudio IDE,支持湖仓一体化开发,新增Flink计算引擎和全面适配locs,优化工作流程系统和数据目录管理。同时,阿里云正式推出个人开发环境模式和个人Notebook,提升开发者体验和效率。此外,DateWorks Copilot通过自然语言生成SQL、代码补全等功能,显著提升了数据开发与分析的效率,已累计帮助开发者生成超过3200万行代码。
|
2月前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
308 3
【赵渝强老师】基于大数据组件的平台架构
|
3月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
289 6
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
3月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
56 9
|
3月前
|
机器学习/深度学习 监控 搜索推荐
电商平台如何精准抓住你的心?揭秘大数据背后的神秘推荐系统!
【10月更文挑战第12天】在信息爆炸时代,数据驱动决策成为企业优化决策的关键方法。本文以某大型电商平台的商品推荐系统为例,介绍其通过收集用户行为数据,经过预处理、特征工程、模型选择与训练、评估优化及部署监控等步骤,实现个性化商品推荐,提升用户体验和销售额的过程。
129 1
|
2月前
|
SQL 分布式计算 大数据
【赵渝强老师】大数据生态圈中的组件
本文介绍了大数据体系架构中的主要组件,包括Hadoop、Spark和Flink生态圈中的数据存储、计算和分析组件。数据存储组件包括HDFS、HBase、Hive和Kafka;计算组件包括MapReduce、Spark Core、Flink DataSet、Spark Streaming和Flink DataStream;分析组件包括Hive、Spark SQL和Flink SQL。文中还提供了相关组件的详细介绍和视频讲解。
|
3月前
|
消息中间件 监控 Java
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
96 1
|
4月前
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
173 11

热门文章

最新文章