大数据量快速处理的架构设计

大数据量快速处理的架构设计,第1张

数据量快速处理的架构设计

在业务数据的处理过程中,经常会遇到夜间批次处理大量的数据,而且会有时效的要求。特别是当应用系统跑了2年以上时,就会有大表或者特大表的操作了,数据量达到百万甚至上亿。 这时回顾前期的设计,就会发现好多问题。 可能是数据模型设计的时候没有考虑表的分区和及时归档、sql的设计没有考虑索引或全表扫描、数据的处理没有考虑及时的分批切分、并发处理的多线程可配置化等等, 为了以后的设计不要走相同的错路。这里暂时简要总结一下。

1 最初要考虑归档和分区。所有可能的大表设计,都要在最初的时候考虑归档和分区。

数据冲上高水位(HighWaterMark)后,即使有归档也不会降低高水位,性能可能也存在消耗,所以要及时归档转移数据。 最好是设置分区表,这样分区表可以进行及时的truncate或者drop再重新add分区。 可以灵活的控制存储。

2 sql条件精准定位。大的关联sql查询,一定要尽量的精准抽取数据范围,不要模糊抽取过多数据,含好多无用的后面再过滤,这很可能影响数据库的执行计划判断导致性能下降。

3 快速定位数据,分批支持流水并发。大批量数据处理,首先要用最简单的方式找到目标最小集群的数据,从大范围中抽出来,并进行切分。切分的目的是可以使用多线程并发处理数据,并且隔离各分区的数据不会重复,也不能有遗漏,这样并发时不会造成数据干扰。

4 流水线并发处理提升时效。

采用3的切分多批+多线程并发的方式,就可以针对有多个步骤的业务逻辑处理时,不用瀑布模式等待执行,而是可以流水线样的多条执行,实现了多并发,无时间和空间的浪费。 对于有高时效的任务处理,具有可观的价值。

在IT公司里,大数据部门的成员,一般可分为4种:(以房子为例)

先用一张图,帮助大家理解一下~~

出道题目,我们公司的大数据部门,目前有这些岗位,你能一一推测出他们的所在位置吗?

【数据应用工程师】、【数据可视化工程师】、【数据可视化设计师】、【数据平台工程师】、【算法工程师】、【数据分析师】

建房子地基(埋在地下)的那群人

他们就是 平台组/架构组 的那群人,他们负责搭建一套大数据的平台架构体系。一般你肉眼看不到他们的产出,但是当某一堵墙壁歪了的时候,或者你进屋打水但水龙头却流不出来水的时候,你就会意识到他们工作的重要性。

平台组的常见发展路径

平台初期,很多公司会用自己的服务器搭一个 私有集群 ,将数据维护起来,开始构建数据平台的第一步。这个,也是原始的大数据平台。(当然,现在有很多公司也是直接上云服务器)

当平台进入高速发展期,考虑到不断扩充的数据量和服务器的维护成本上升,很多公司会迁移平台到 云服务 上,比如阿里云,华为云。云服务的选择要解决的是选择平台所提供的服务,成本,数据通道的维护。【我们公司目前正处于这一阶段,选择了云服务。当前,经过考量也正在由阿里云迁移到华为云】

还有一个阶段,你发现云服务的费用太高,虽然省了你很多事,或者是考虑到敏感数据的安全问题(当然,私有集群也不是百分百安全),然后又开始往 私有集群 迁移。这时候,鉴于数据规模,你大概需要一个靠谱的团队,设计网络布局、设计运维规范、架设监控、建立机房,值班团队走起7*24小时随时准备出台。

至此,产生了平台组,真的大数据平台来了

建屋子(砌墙盖瓦)的那群人 :

应用组 的那群人,他们负责建设各类系统/应用。他们搬砖砌墙,建好房子,还要铺设各类管道线路,把地基里面的数据抽出来,放在房子里,让用户们推开门就可以享用。

应用组,有哪些应用?

这块不太好讲。不过,为了尽量让大家看懂,用 从大到小的思路 尝试下:

在整个社会层面,大数据已应用于各行各业,比如:金融行业/地产行业/零售行业/医疗行业/农业/物流行业/城市管理等等……有哪一个行业,可以脱离数据而生存?有哪一个行业可以不依赖数据而发展?

那么,在一个企业中,数据必然是无法避免的会应用到,不管是1个员工的皮包公司,还是10万员工的跨国集团。so,我们来讲讲具体有哪些应用呢?

一般而言,数据应用分为3类:分别是面向企业内部, 面向企业外部以及面向用户这三种。

这里,鉴于今天的主题,我们只讲 面向企业内部 的大数据应用。

进入正题了:

企业内部产品中,可以从2个角度来看待具体有哪些应用:

策略类 的方向较多,常见的有:

这些有时候会有部分或全部不划在大数据部门下面,但都需要比较规范的数据基础,以及着重与利用数据分析调整产品策略。

做企业内部的大数据应用产品,常常有些心酸的地方:

屋子里面的人 :

产品组 的那群人,主要是一群产品经理(我们公司,目前就半个,由一个分析师兼职着,所以,我们公司没有产品组哦),负责数据类的应用产品设计。他们和上面建房子的工程师们,是紧密的团队关系。鉴于上面对数据应用产品已做了很多阐述,关于他们工作产出的应用具体有哪些,这里就不再赘述。

讲一讲, 数据产品经理 的从业人员得有几个素质:

屋子外面的人 :

分析组 的那群人,一般会有3类:数据分析师、算法工程师 (类似数据挖掘) 、数据科学家 (我们公司没有) 。他们工作的日常:为你提取一份EXCEL数据、制作一张报表数据、用算法模型分析一个问题、训练出一套算法模型等等工作,但不局限于此。

他们常常需要与各个部门打交道,接待很多业务的数据需求,与业务关系紧密。在一些公司,分析组不一定都设置在大数据部门下,他们可能分散在不同的业务部门,为各自部门服务。但是,他们终究也是需要从大数据平台来获取所需的业务数据,做分析处理,得到相关结论~

据我所知,我们公司的业务部门,(好像)也是有自己的分析人员。

简单概括一下这些职位的特点:

【数据分析师】

业务线,负责通过数据分析手段发现和分析业务问题,为决策作支持。

【算法工程师】/【数据挖掘工程师】

偏技术线,负责通过建立模型、算法、预测等提供一些通用的解决方案,当然也有针对某业务的。

【数据科学家】

数据科学家是使用专业知识构建机器学习模型,再以此做出预测并对关键业务问题进行解答的专家。数据科学家仍然需要对数据进行清洗、分析以及可视化处理,这一点和数据分析师是一致的。不过数据科学家在专业技能方面有者更深的研究,涉猎范围也更广,同时他们也能够对机器学习模型进行训练与优化。

至此,整篇文章,已经讲差不多了。

最后总结下,本质上,围绕房子的这4拨人,做的是同一件事情: 提供数据服务

完结~


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/436832.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-29
下一篇2023-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存