温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
AWS
微服
架构
联网
数据
分析
系统
设计
徐瀚杰
数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering212车联网是利用传感和视觉技术感知车辆的状态信息,并借助无线互联网使用大数据分析和分布式云计算处理实现交通运输的智能化管理,以及交通信息服务的智能决策和车辆的智能化控制。随着大数据和云计算技术的进步,在车联网领域中基于大数据的采集、存储、处理、分析、预测和可视化的技术方法,能够有效满足客户的需求。通过对车联网运营数据动态和实时的分析和挖掘,平台运营方能够更为精准的为客户提供增值服务。基于微服务架构的车联网大数据分析系统,使用微服务架构的分布式服务治理平台,对数据进行采集、转换计算存储、检索分析并进行可视化页面展示。整个数据流使用分布式服务治理的基础设施进行统一的配置管理和服务监控,根据需要对微服务弹性扩容,使用消息中间件对数据采集服务和转换计算存储服务进行模块解耦,提高了数据流的吞吐量和处理速度,从而完成车联网大数据的存储和实时分析。使得本方案具备扩展性好、易于监控、便于管理、吞吐量大、处理迅速的特点。本系统采用微服务架构并通过 AWS 云组件设计和实现车联网数据的收集、处理和分析,并以可视化方式展示多个维度的数据分析结果。方案既对历史数据进行回测,同时对未来趋势进行预测,对于车辆物联网的大数据智能化分析具有重要的意义。1 项目背景和应用场景1.1 项目背景大数据指庞大复杂的数据集,数据来源包括结构化数据、半结构化数据和非结构化数据,数据价值需要分析和挖掘,处理速度近实时,大数据的特征主要有四个方面,分别是数据规模大、数据流传快、数据类型多以及数据密度价值大。云计算是“分布式”计算的一种,通过数据的处理程序分解成多个微服务组件,然后通过分布式服务器系统进行处理和分析,最后得到结果再返还给用户。车联网信息融合系统通过计算、通信和控制三大领域的技术,影响和改变着智能交通的发展。随着车联网数据的日益增长,以及大数据技术的不断发展,使得大数据在车联网信息融合系统的应用越来越重要。大数据中潜在的价值对提高车联网智能化、改善用户出行体验等方面有很大帮助。然而,爆发式增加的数据量使得车联网在数据的处理、存储和分析方面面临着挑战。本文以车联网行业数据管理与分析应用出发,以数据采集、数据传输、数据保存、数据处理和数据分析为流程,采用微服务的分布式架构,对大数据进行深度挖掘,抽取和统计出有效和有意义的信息,并动态对方案调整和优化。1.2 应用场景互联网大数据的发展使得物联网、云计算、移动互联网、车联网等网终数据紧密地连成一体。车联网是全球网络数据中重要的环节,车联网在对各种车辆行驶时的多方面数据采集后,全面分析驾驶员的操作状态、车辆自身的运行状态以及路况情况,最后用准确的数据表述出来。在传统的中小型车辆物联网平台的日常运营中,往往采用的是与本地数据中心集群连接,数据在本地服务器中进行处理,相应的冗杂、容错以及灾备都集中在本地数据中心。在实时数据源呈现出爆发式的增长下,数基于 AWS 微服务架构的车联网大数据分析系统的设计徐瀚杰(四川大学 四川省成都市 610065)摘要:本文探讨了车联网大数据分析系统的整体设计与实现。车联网行业正面临实时数据源的爆发式增长,大数据和云计算的应用可以实现平台和用户实时监测业务动态并运用智能分析辅助决策。系统通过在微服务架构下使用 AWS 组件进行数据采集、处理、存储、分析、机器学习预测和可视化等,实现海量数据源下的实时数据分析和智能决策。关键词:车联网;大数据分析系统;数据采集;机器学习;AWS数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering213据的获取和处理速度需要不断的提升,在可扩展性、冗余、容错、灾备等方面也遇到瓶颈,基于预测的可视化提供方面也难以适应数据爆炸的时代。出于对面临问题的解决和应对未来发展的需要,平台将其数据分析通道解耦并使用云原生技术,用微服务架构的组件重新搭建分布式系统。系统能够满足以下需求:平台需要承载运营车辆超过 10 万辆,日订单数据数百万单。系统能够完成实时的数据摄取、处理、分析,这种数据获取具有科学性和准确性。系统可以实时的基于历史的可视化和基于趋势预测(机器学习)的可视化,能够随时对车辆的各种数据进行收集和使用。实现智能交通调度,实时确定用车需求量大的热点区域,引导空载的网约车过去哪里,可以保证提供精准的服务。根据预测(机器学习)估计用车需求量大的热点区域,引导空载的网约车提前准备。根据实时和预测的交通拥堵情况,为车辆推荐行车路线等。可以在不同分组中对数据表授予细粒度的访问权限,不同城市的运营和市场组只能看到自己所在城市的数据。设定预设监测指标阈值,可以在未达到指定阈值时发出警报并保持响应和处理的速度。可以按需配置组件和精准的构建采集和处理通道,根据热点和流量大小弹性的扩展或缩小系统容量和处理通道,既避免整体性能不足也避免过度配置,使成本处于受控状态。2 系统的架构设计和方案应用2.1 系统整体架构在充分考量了具体的场景和应用环境,进行需求分析后,笔者设计了基于 Amazon AWS 和 Apache Flink 组件的微服务分布式架构来实现大数据分析系统。架构由提取、转换、加载(ETL)服务,分析服务,存储服务,可视化及智能决策服务 4 部分组成。在新的环境中,数据采集的数量和速度都大大提升,基于这种状况需要进行连续的数据采集,还要保证工作的负载要求,采用了 Kinesis Data Firehose 组件服务作为摄取车辆 IoT 数据、点击流数据和 Web 订单数据等的工具,这样就能够保证系统在第一时间反应,可以说是近乎实时。在 Kinesis Data Firehose 提取数据后,使用 Lambda 转换数据,使用 Apache Flink(Kinesis Data Analytics for Java)来分析和筛选数据以检测热点。在具体的分析和筛选后,使用 Kinesis Data Firehose 将数据加载到列式数据仓库 Redshift 中。QuickSight 用于大数据的可视化并构建可与组织中其他用户共享的控制面板。系统根据机器学习 ML 进行趋势预测和智能调度决策,同时在监控指标未达阈值时通过 SNS 向运营人员发出报警信息。图 1:系统架构图数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering2142.2 提取、转换、加载(ETL)服务数十万个联网的车辆设备和传感器创建的 IoT 数据连同点击流日志等流数据,需要连续实时采集。流数据通过读取大量较小的事件进行分类,IoT 设备和传感器不断发出 1 KB 有效负载连续写入流。然后按时间、事件量或特定段绑定流数据,以分配要处理的数据量,实时发出结果。流数据处理是采集高频热数据,实时转换和加载这些数据的较佳方案。Kinesis Data Firehose 能够完成从数十万个来源中捕获、转换大量流数据,是一项提取、转换、加载(ETL)的服务。它将流式处理 IoT 和点击数据以可靠方式捕获、转换和加载到数据仓库、数据存储和分析服务中。它同时调用无服务器、事件驱动型的计算服务 Lambda 函数来转换传入的订单源数据并交付转换数据到目标地,并将其加载到 Kinesis Data Analytics 和 Redshift 等,这种分析和洞察力能够第一时间传达,可以说是近乎实时。尽管 Glue ETL 也能够进行相应的数据转换,代替数据转换功能,但是在批量处理环境中,ETL 任务间隔时间相对来说比较长,至少需要 5 分钟,而这就超出了近乎实时的处理需求。Kinesis Data Firehose 则能够完成比较快的处理,间隔仅仅最短 60 秒,实现了近实时的数据延迟。在进行 Kinesis Data Firehose 启用过程中,数据转换速度能够大大加快,Kinesis Data Firehose 能够对传入的数据进行相应的缓冲,并异步调用每个缓冲批处理的指定 AWS Lambda 函数。转换后的数据从 Lambda 发送到Kinesis Data Firehose进行缓冲,最后完成目标的传送。2.3 分析服务由于实时数据源的爆发式增长,车联网大数据平台正以前所未有的速度获取着数据。无论是需要处理来自 IoT 设备的传感器数据,移动应用程序和 Web 应用程序的日志数据,还是电子商务平台的订单数据,实时获取数据能够有助于平台和合作伙伴及时了解客户、组织和业务的实时动态消息。Apache Flink 在本质上是一种处理数据流的开源框架和引擎。它的应用价值主要是来源于其能够提供功能强大的运算符,能够解决包括准确复制处理过程等核心流问题,这样能够大大的简化流应用程序,避免出现冗杂结构。Apache Flink 能够为数据流创造更好的环境,可以让数据流上的分布式计算具备数据分发、通信和容错能力。Kinesis Data Analytics for Java 使用无服务器的完全托管式 Apache Flink 从串流数据中获得实时转换和分析。与此同时,能够以亚秒级延迟处理平台来自Kinesis Data Firehose 等数据源的数据,能够完成对具体时间的实时响应。下载 AWS SDK、Apache Flink 和AWS 服务连接器,使用数据流和流运算符编写 Apache Flink 车联网大数据分析的逻辑程序代码。应用逻辑程序数据流使用应用程序代码执行处理所依据的数据结构,数据不断地从源流向应用程序数据流,一个或多个流运算符用于定义对应用程序数据流的处理。将代码部署为持续运行的流处理应用程序后,部署的大数据分析应用程序将成为适用于 Apache Flink 的 Kinesis Data Analytics 应用程序,其本身还具备持久性状态和自动缩放功能。能够对源、目标位置、日志记录和监控层级等内容进行更改。在预先设定指标的前提下,可以通过 CloudWatch和 SNS 监测在未达到指定阈值的情况下,完成警报发出动作,还能够保持响应和处理的速度。Kinesis Data Firehose 收集相应的数据,并且将数据传输到 Kinesis Data Analytics,在 Kinesis Data Analytics 中创建参考数据源以临时存储来自 S3 的阈值,在这个过程中,还要完成特定计数与其对应的指标阈值的比较工作,如果并没有达到阈值,使用 Simple Notification Service(SNS)进行相关通知的传递。2.4 存储服务系统会根据自身的需求,对存储流数据的 Redshift数据仓库进行频繁访问,同时对数据源在 S3 存储桶中做备份。在用 Apache Flink 进行分析和筛选后,可将数据加载到列式数据仓库 Redshift 中。系统平台启用Redshift 中的机器学习 ML 功能在工作负载或并发用户活动各不相同的情况下提供高吞吐量和高性能。基于传入查询的运行时间和资源要求,平台利用复杂的算法来对其进行预测和分类,从而动态管理性能和并发性,同时帮助确定关键业务型工作负载的优先顺序。启用短查询加速(SQA)从控制面板等应用程序中将短查询发送到快速队列进行即时处理,启用自动工作负载管理(WLM)使用机器学习来动态管理内存和并发性,有助于最大限数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering215度地提高查询吞吐量。平台还使用 IAM 与 Redshift 结合使用,允许用户通过 SAML 2.0 身份提供程序使用联合单点登录(SSO)访问数据仓库。部分收集数据放在S3 存储桶中,S3 存储桶是对象存储,存