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

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 大数据的技术日新月异,解决了很多传统的方法所无法解决的问题,为软件实现上提供了新思路。目前已经有很多企业已经基于大数据的相关技术已经搭建了很多系统。 在系统的搭建过程中,需要解决一个的问题:“我的这个需求,用大数据的技术如何实现”。

前言

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

需求分析

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

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

流程梳理

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

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

功能实现

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

产品方案

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

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

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
打赏
0
0
0
0
79047
分享
相关文章
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
Echarts高级进阶教程(2):appendData异步加载大数据量分片加载数据和增量渲染的解决方案
Echarts高级进阶教程(2):appendData异步加载大数据量分片加载数据和增量渲染的解决方案
1253 0
大数据与医疗健康:个性化治疗的未来
【10月更文挑战第31天】大数据正以前所未有的方式重塑医疗健康领域,推动个性化治疗从理论走向现实。本文探讨了大数据在医疗健康中的应用,特别是在推动个性化治疗发展方面的潜力与挑战,包括数据挖掘、电子健康记录、远程医疗等方面的技术创新,以及面临的数据安全和隐私保护等问题。未来,大数据将助力医疗健康领域更加智能和人性化。
"SQLTask携手Tunnel:打造高效海量数据导出解决方案,轻松应对大数据挑战
【8月更文挑战第22天】SQLTask搭配Tunnel实现高效海量数据导出。SQLTask擅长执行复杂查询,但直接导出受限(约1万条)。Tunnel专注数据传输,无大小限制。二者结合,先用SQLTask获取数据,再通过Tunnel高效导出至目标位置(如CSV、OSS等),适用于大数据场景,需配置节点及连接,示例代码展示全过程,满足企业级数据处理需求。
113 2
阿里云ECS以其强大的弹性计算与存储能力,为大数据处理提供了灵活、高效、成本优化的解决方案
阿里云ECS在大数据处理中发挥关键作用,提供多样化实例规格适应不同需求,如大数据型实例适合离线计算。ECS与OSS集成实现大规模存储,通过Auto Scaling动态调整资源,确保高效运算。案例显示,使用ECS处理TB级数据,速度提升3倍,成本降低40%,展现其在弹性、效率和成本优化方面的优势。结合阿里云生态系统,ECS助力企业数据驱动创新。
136 1
数加产品家族图解:一站式大数据处理与分析解决方案
数加产品家族作为阿里云一站式大数据处理与分析解决方案的重要组成部分,以其全面的功能和强大的性能,为企业提供了从数据采集、存储、处理到分析的全链路解决方案。通过图解的形式,我们深入解析了数加产品家族的各个组成部分和优势特点,展现了其在大数据处理与分析领域的独特魅力。未来,随着大数据技术的不断发展和应用场景的不断拓展,数加产品家族将继续发挥其重要作用,为企业
MongoDB分片:打造高性能大数据与高并发处理的完美解决方案
MongoDB分片:打造高性能大数据与高并发处理的完美解决方案
359 0
【阿里云云原生专栏】云原生下的数据湖建设:阿里云MaxCompute与DataWorks解决方案
【5月更文挑战第26天】在数字化时代,数据成为企业创新的关键。阿里云MaxCompute和DataWorks提供了一种构建高效、可扩展数据湖的解决方案。数据湖允许存储和分析大量多格式数据,具备高灵活性和扩展性。MaxCompute是PB级数据仓库服务,擅长结构化数据处理;DataWorks则是一站式大数据协同平台,支持数据集成、ETL和治理。通过DataWorks收集数据,MaxCompute存储和处理,企业可以实现高效的数据分析和挖掘,从而提升业务洞察和竞争力。
488 0
Spring Batch:处理大数据和批量任务的解决方案
Spring Batch:处理大数据和批量任务的解决方案
423 0