如何将个性化需求变成大数据解决方案

简介: 大数据的技术日新月异,解决了很多传统的方法所无法解决的问题,为软件实现上提供了新思路。目前已经有很多企业已经基于大数据的相关技术已经搭建了很多系统。 在系统的搭建过程中,需要解决一个的问题:“我的这个需求,用大数据的技术如何实现”。

前言

大数据的技术日新月异,解决了很多传统的方法所无法解决的问题,为软件实现上提供了新思路。目前已经有很多企业已经基于大数据的相关技术已经搭建了很多系统。
在系统的搭建过程中,需要解决一个的问题:“我的这个需求,用大数据的技术如何实现”。这个问题需要个同时对业务和大数据技术都比较了解的人来做设计。本文就我在平时工作中总结出来的一些思路,希望对大家能有所帮助。

需求分析

在此之前首先需要先考虑,这个需求是否有必要用大数据手段来解决。一些大数据的典型场景,比如大规模离线计算、周期性的报表、机器学习算法等,目前大数据已经有非常成熟的方案,在考虑实现的时候,我们可以用通用的大数据技术来实现。但是大数据也不是万能的,有一些场景可能用其他的方法更加合适。也有一些场景,看起来和大数据似乎没啥关系,但是细细分析下来,这个需求是大数据擅长解决的场景。所以我们只是需要把大数据当成解决问题的一种工具。在找对工具之前,我们需要先对需求做一些分析。

这里举个例子,地铁站里的人流,不停有人进来和出去。需要统计当前的地铁站的人数,从而判断是否启动紧急措施进行分流限流,从而实现智能调度(这个需求是我自己想的,不过我确实在杭州看到人流高峰有一些地铁站只准出不准入,另外也可以动态增加一些班次)。地铁有运营时间,假设到晚上11时30分结束,所以0点可以近似认为地铁里没有乘客。

流程梳理

每天0定初始化人数为0,然后人数增加时(乘客从入口增加或者从地铁上下来)增加人数,在人数减少时(乘客从出口离开或者乘坐地铁离开)减少人数,最终实时或者近似实时得统计当前的站点内的人数。
这个需求的实现包含以下几个部分功能模块:

  1. 数据采集。包括人员增加和减少场景下相关数据的采集。从入口进入和从出口离开比较容易,闸机上比较容易获得通过人数,当人员通过闸机时,根据闸机的类型(出口还是入口)写一条记录。而上下地铁可能需要用到一些诸如传感器或者摄像头配合图像识别算法来实现。
  2. 数据计算。根据数据的增加和减少,在满足时效性需求的前提下,计算出当前的人数。这个典型的实现方法有两种。一种是用数据库的SQL来实现,把数据增减写到数据库里,最后通过计算时间做过滤后,对增加人数和减少人数分别求和后相减得到最终的人数。这个计算方式比较容易被理解,实现上比较简单,但是缺点是每次计算当前的人数需要把当天全部的人数重新统计一次,计算量比较大。另外一种方法是计算的时候,对于实时数据进入系统的时候,在原来的计算结果的基础上,再做增量计算。比如当前有100人,增加1个,那就是100+1=101,又出去两个人,就是101-2=99。中间的计算只涉及增量的数据计算,而不会把全部的数据重新算一次。
  3. 数据消费。计算出来的结果,可能需要对接到业务系统里,这个需要看业务系统的对接方式。一个比较通用的方法是把计算结果实时写入到数据库里供业务系统对接。另外也可能是需要以图表的形式进行展示以便直观地对数据进行理解。

功能实现

功能实现上,我比较喜欢从计算引擎上入手设计实现方法。就如这里的数据计算部分,考虑到地铁的人流量比较高(城市有多个地铁站,而在人流高峰的时候进出较多),为了保证计算性能,我比较偏向于用相对计算复杂度较低的流式计算的方案从而获得高并发和高性能。但是如果人流量比较少而且时效性要求很低,比如把这个场景变成某饭店/门诊科室的人流量统计/排队量统计,我可能会考虑用数据库查询+缓存的方式来实现。
计算引擎确定用流计算的方案后,对应的数据写入就需要使用流计算引擎支持的流式数据上传方式进行写入。而流计算后的结果,可以通用的写入到数据库供后续调用,或者写到消息中间件进行业务系统调用。

产品方案

以阿里云的云产品为例,流计算产品(StreamCompute)能比较好的满足计算引擎的需求。而数据可以用SDK写入到Datahub。考虑到可能用到传感器,这时候可以使用物联网套件。最终的数据消费,可以写入到RDS供业务系统调用/供DataV做可视化展示,也可以写入到消息队列/函数计算。

基于这个梳理,最终的架构图可以使用IOT的标准架构图
image

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
6月前
|
XML Java 大数据
Spring Batch:处理大数据和批量任务的解决方案
Spring Batch:处理大数据和批量任务的解决方案
184 0
|
7月前
|
分布式计算 资源调度 大数据
大数据数据倾斜问题与企业级解决方案
大数据数据倾斜问题与企业级解决方案
41 0
|
7月前
|
SQL 存储 分布式计算
大数据Hadoop小文件问题与企业级解决方案
大数据Hadoop小文件问题与企业级解决方案
44 0
|
7月前
|
运维 大数据 数据挖掘
SelectDB x 白鲸开源金融大数据解决方案正式发布!
飞轮科技联合白鲸开源,针对金融行业大数据实时分析的场景共同推出高效实用的解决方案。
|
9月前
|
前端开发
大数据量学习:ajax获取数据后将数组重新分组后分批定时渲染的解决方案
大数据量学习:ajax获取数据后将数组重新分组后分批定时渲染的解决方案
64 0
|
10月前
|
存储 人工智能 达摩院
带你读《云存储应用白皮书》之29:2. 物联网大数据存储解决方案
带你读《云存储应用白皮书》之29:2. 物联网大数据存储解决方案
269 1
|
SQL 运维 Oracle
【大数据开发运维解决方案】记一次同事不慎用root起动weblogic以及启动日志卡在The server started in RUNNING mode 问题解决过程
最近因为单位换了新版本HD集群,有一些业务数据存在于hive数据库中。而有一些Smartbi的报表数据源是连接的华为HD Hive,因为变更了集群,需要将SmartBi的数据源改为新集群的。我将Kerberos认证凭据和新版本Hive jdbc驱动以及新的jdbc连接串给了同事,也将实施文档给了同事,但是同事在操作完成后,Smarbi节点无法正常起来(后台日志卡在:The server started in RUNNING mode,Server state changed to RUNNING),要么起来了就是无法联通Hive。
【大数据开发运维解决方案】记一次同事不慎用root起动weblogic以及启动日志卡在The server started in RUNNING mode 问题解决过程
|
消息中间件 SQL JSON
【大数据开发运维解决方案】Kylin消费Kafka数据流式构建cube
文章开始之前先说明环境情况,这里kylin消费的kafka数据是从Oracle 数据库用Ogg For Bigdata以json格式将数据投递到kafka topic的,投递的时候,关于insert和update 之前的数据投递到名为 ZTVOUCHER_INS 的topic,而delete和update之后的数据投递到名为 ZTVOUCHER_DEL 的topic中,这里主要介绍kylin如何消费数据创建流式cube。
【大数据开发运维解决方案】Kylin消费Kafka数据流式构建cube
|
分布式计算 运维 Hadoop
【大数据开发运维解决方案】Hadoop2.7.6+Spark单机伪分布式安装
一、安装spark依赖的Scala 1.1 下载和解压缩Scala 下载地址: 点此下载 或则直接去官网挑选下载: 官网连接 在Linux服务器的opt目录下新建一个名为scala的文件夹,并将下载的压缩包上载上去: [root@hadoop opt]# cd /usr/ [root@hadoop usr]# mkdir scala [root@hadoop usr]# cd scala/ [ro...
【大数据开发运维解决方案】Hadoop2.7.6+Spark单机伪分布式安装
|
SQL 消息中间件 分布式计算
【大数据开发运维解决方案】Hadoop2.7.6+Spark2.4.4+Scala2.11.12+Hudi0.5.2单机伪分布式安装
1、本文档使用的基础hadoop环境是基于本人写的另一篇文章的基础上新增的spark和hudi的安装部署文档,基础环境部署文档 2、整篇文章配置相对简单,走了一些坑,没有写在文档里,为了像我一样的小白看我的文档,按着错误的路径走了,文章整体写的较为详细,按照文章整体过程来做应该不会出错,如果需要搭建基础大数据环境的,可以看上面本人写的hadoop环境部署文档,写的较为详细。 3、关于spark和hudi的介绍这里不再赘述,网上和官方文档有很多的文字介绍,本文所有安装所需的介质或官方文档均已给出可以直接下载或跳转的路径,方便各位免费下载与我文章安装的一致版本的介质。 4、下面是本实验安装完成后本
【大数据开发运维解决方案】Hadoop2.7.6+Spark2.4.4+Scala2.11.12+Hudi0.5.2单机伪分布式安装

热门文章

最新文章