实时计算平台
实时计算平台是一种为构建一体化、实时处理大数据的处理平台而设计的系统。传统的离线计算方式存在数据反馈不及时、多业务端工作存在信息交互壁垒等问题。实时计算平台的功能旨在为现代企业组织提供:

集成式的实时计算软件环境,将不同业务系统和数据源无缝集成,实现跨系统实时数据交互和处理

统一化的实时计算环境,打破业务系统和数据源之间的信息壁垒,实现数据的实时流转和共享

通过实时计算和处理海量数据,助力企业在数字化转型进程中:
- 降低运营成本
- 提高运营效率
- 实现精益化运营
- 提升决策效率
实时计算平台的核心是实时采集、处理和分析来自各种数据源(如业务系统、物联网设备等)的数据流,并将处理结果实时反馈给下游应用系统或决策系统,从而支持企业实时监控业务状态、实时优化业务流程、实时分析用户行为等实时应用场景。实时计算平台通常采用分布式流式计算架构,具有高吞吐、低延迟、容错、可扩展等特性,能够实时处理大规模数据流。
实时计算引擎
实时计算引擎是专门为满足即时性和低延迟计算业务场景而设计的数据流处理框架。随着实时计算引擎技术及生态系统的不断完善和持续迭代,它已经历了以下四代引擎技术的变革和升级:

MapReduce、Tez 和 Oozie
这是最早期的大数据处理框架,主要用于批处理任务,无法满足实时计算的需求。

Apache Spark
Spark 在微批处理和连续流处理方面表现出色,但由于其微批处理的本质,无法满足低延迟的实时计算需求。

Apache Flink
Flink 被认为是真正的实时计算引擎,具有卓越的图计算和机器学习功能。它能够实现毫秒级的低延迟计算,非常适合实时数据处理场景。

其他实时计算引擎
除了 Spark 和 Flink 之外,还有一些其他的实时计算引擎,如 Apache Storm、Apache Samza 等,但在开发者社区中不如前两者受欢迎。
目前,Apache Spark 和 Apache Flink 是开源实时计算引擎领域最受欢迎的两大引擎。它们各自具有不同的优势:

Spark 擅长微批处理和连续流处理,适合对延迟要求不太严格的场景。

Flink 则专注于真正的实时计算,能够实现毫秒级的低延迟,非常适合对延迟要求极高的实时数据处理场景,同时也具备强大的图计算和机器学习功能。
实时计算架构
实时计算是指对实时数据进行快速处理和分析的计算架构。以下是一些常用的实时计算架构组件:
Flume
Flume 是一个分布式、高可靠、高容错的日志聚合框架,用于收集、聚合和移动大量的日志数据。它能够灵活地处理实时数据流,并提供可靠性机制和故障转移、恢复机制。Flume 在处理数据后,会将数据写入到不同的接收端。
Redis
Redis 是一种流行的高性能键值对数据库,使用 ANSI C 语言编写。它保持开源,同时支持数据的持久化存储。Redis 提供两种持久化方式:快照(半持久)和 AOF(提高安全性)。
Kafka
Kafka 是一个基于发布订阅模式的分布式消息系统,由 Apache 软件基金会开发。它能够出色地解决峰值流量压力、异步消息传递和系统解耦等问题。在处理实时数据时,Kafka 构建了一个一体化、高吞吐、低延迟的分发平台。
Echarts
Echarts 是一个功能丰富的数据可视化图表库,广泛应用于各行业。它支持个性化定制,提供直观的交互体验,并且可以在 PC 和移动设备上顺畅运行,兼容绝大多数浏览器。
Storm
Storm 是一个开源的分布式实时计算系统,被称为 "实时版 Hadoop"。它通过高效、易用的原语构建了抽象层 Trident(类似于 Hadoop 的 Pig),提高了开发效率,缩短了开发周期。Storm 已成为流计算领域的主流框架。
上述架构组件为实时计算提供了数据收集、传输、存储、处理和可视化等全方位支持,构建了高效、可靠的实时计算解决方案。
亚马逊云科技实时计算的优势

实时处理
Amazon Kinesis Data Streams 是一项实时计算服务,可让您更加便于实时处理数据流。它允许您在数据生成时持续收集和处理数据,从而迅速对关键的业务和运营信息作出反应。通过实时计算,您可以实现以下功能:
实时监控和分析数据流,如网站点击流、物联网传感器数据等
实时检测异常和异常模式,触发警报或自动化操作
实时处理和转换数据,以便进行存储、可视化或进一步分析
实时更新仪表板和报告,提供最新的业务洞察力
实时计算使您能够从不断产生的数据中获取价值,而不必等待批量处理或离线分析。这对于需要快速响应和决策的应用程序至关重要。

简单易用
Amazon Kinesis Data Streams 的设置和使用非常简单。只需数秒,您即可在 亚马逊云科技 管理控制台中创建一个 Kinesis 数据流。然后,您可以借助 Amazon Kinesis Producer Library (KPL) 和 Kinesis Client Library (KCL) 轻松地向 Kinesis 数据流添加数据和构建处理应用程序。
KPL 是一个用于发布记录的库,可以自动进行重试、批处理和压缩等优化
KCL 是一个用于构建 Kinesis 应用程序的库,可以从流中读取数据并进行处理
通过这些库和工具,您无需担心底层的流管理和扩展细节,可以专注于构建实时计算应用程序的业务逻辑。

并行处理
Amazon Kinesis Data Streams 支持并行处理同一个数据流。您可以让多个 Kinesis 应用程序同时从同一个流中读取和处理数据。这种并行处理能力使您可以:
运行多个实时分析任务,如实时指标计算、机器学习模型评分等
将数据发送到不同的目的地进行存储、可视化或进一步处理
实现管道式处理,将一个应用程序的输出作为另一个应用程序的输入
通过并行处理,您可以充分利用计算资源,加快实时计算的处理速度。同时,不同的应用程序可以独立扩展,满足不同的性能需求。

弹性动态
Amazon Kinesis Data Streams 具有出色的弹性和动态扩展能力。它可以将流的吞吐量从每小时数 MB 扩展为每小时数 TB,并将每秒支持的写入记录数从数千个扩展为数百万个。您可以根据输入数据量的变化随时动态调整流的吞吐量。
这种弹性扩展能力确保了实时计算的高性能和可扩展性。无论数据量如何增长,Kinesis 都能够处理高吞吐量的数据流,满足实时计算的需求。同时,您只需为所使用的资源付费,可以优化成本。
通过弹性动态扩展,实时计算应用程序可以轻松应对突发流量和长期增长。您无需预先配置静态资源,也无需手动扩展基础设施。Kinesis 会自动管理所需的资源,确保实时计算的高可用性和可靠性。
实时计算的类型
实时计算系统主要分为两大类型:硬实时系统和软实时系统。
硬实时系统
硬实时数据库系统与实时操作系统协同工作,通过强制执行数据库事务截止时间来确保数据的时间有效性。它们包含一种机制,如事务调度策略,以最大化成功提交的事务数量,最小化回滚的事务数量。硬实时数据库系统的性能指标是提交与中止事务的比率,目标是 100% 满足截止时间。
软实时系统
另一方面,软实时系统可以容忍偶尔错过事件。这一类别通常包括音频或多媒体系统,以及智能手机等。与硬实时系统相比,软实时系统对时间约束的要求相对宽松,但仍需在一定时间范围内响应并处理事件。
总的来说,硬实时计算系统对时间约束的满足度要求极为严格,而软实时计算系统则可以在一定程度上容忍偶尔违反时间约束。两者的区分主要取决于应用场景对时间响应的敏感程度。
实时计算的组成部分
实时计算系统需要非常快速和可靠的硬件基础设施,如用于控制航天飞机发射的系统。为实现这一点,需要选择合适的实时计算语言,并在独立的硬件上运行多个冗余且独立生成的程序副本,同时交叉检查结果以满足可靠性需求。实时数据库是传统数据库的一种扩展,能够提供可靠的响应,而硬实时数据库系统则与实时操作系统协同工作,通过强制执行数据库事务截止时间来确保数据的时间有效性。硬实时数据库系统的性能指标是提交与中止事务的比率,最终目标是 100% 满足截止时间。
实时计算与批处理的区别
实时计算与批处理是两种不同的数据处理方式,具有明显区别。

处理方式
批处理是指将大量数据集中起来,一次性地进行处理。它通常在预定时间或按需执行,适用于高容量、重复性的任务,如更新数据库、生成报告和打印文档等。而实时计算则是对用户输入或外部事件立即做出响应,具有低延迟的特点。实时系统旨在提供即时结果,而批处理则可以容忍较长的处理时间,只要能在业务期限内可靠地完成整个任务即可。

应用场景
批处理适用于需要处理所有记录数据的应用程序,例如计算总数等,必须完成整个批处理后才能获得可用结果。而实时系统更适合只需要单个输入数据的应用程序,对低延迟的要求更高。

架构设计
现代批处理应用程序通常利用网格计算和其他可扩展架构,将批处理作业分配到多个处理器上,以提高吞吐量。而实时系统则更注重响应性和低延迟处理。

延迟要求
批处理的延迟通常在分钟到小时的范围内,而实时计算需要在秒或毫秒级别的延迟。批处理可以处理大量数据,而实时计算则处理单个记录或微批次数据。

总结
批处理适用于对大型数据集进行复杂分析和查询,而实时计算则更适合需要快速响应传入数据的实时分析和响应功能。
实时计算的发展历程
实时计算是一种新兴的计算范式,旨在实现对大量数据流的实时处理和分析。实时计算的发展历程可以追溯到 20 世纪 90 年代,当时出现了一些早期的流处理系统,如 Aurora 和 Borealis。随着大数据时代的到来,实时计算逐渐成为一种重要的数据处理方式。近年来,实时计算技术得到了长足发展,涌现出了诸如 Apache Storm、Apache Spark Streaming、Apache Flink 等流行的实时计算框架和系统。这些系统能够高效地处理来自各种来源的数据流,并实现低延迟的实时分析,为实时决策提供支持。实时计算在物联网、金融交易、网络安全等领域发挥着重要作用,未来将会在更多领域得到广泛应用。
实时计算的挑战
实时计算的主要挑战在于确保数据的时间有效性,同时最大化成功提交的事务数量,并将回滚的事务数量降至最低。硬实时数据库系统与实时操作系统协同工作,以强制执行数据库事务截止日期,并使用事务调度策略来实现这一目标。硬实时数据库系统的性能指标是提交的事务与中止的事务的比率,这表明了事务调度策略在 100% 满足截止日期方面的有效性。与大多数数据库系统以吞吐量或每秒事务数为典型性能指标不同,实时数据库使用传统数据库的扩展来提供可靠的响应。
如何实现实时计算
实时计算是实现元宇宙等新兴应用的关键技术之一。要实现真正的实时计算,我们需要克服一些重大挑战:

提高计算效率
根据英特尔高级副总裁 Raja Koduri 的说法,实现可供数十亿人实时访问的持久沉浸式计算,需要将当前最先进的计算效率提高 1000 倍。这对硬件和软件基础设施都提出了极高要求。

打造开放平台
目前,缺乏开放的硬件和软件基础设施、垄断性的平台开发模式以及缺乏明确的治理标准,阻碍了元宇宙等应用的大规模发展。我们需要建立开放、共享的平台,促进生态系统繁荣。

优化数据处理
实时计算需要持续低延迟地处理数据,这与传统的批量处理模式不同。要实现实时计算,组织需要具备支持连续实时数据处理的计算资源和基础设施。

加强治理机制
缺乏明确的治理标准也是当前阻碍元宇宙等应用发展的一大障碍。我们需要建立健全的治理机制,规范平台运营,保护用户权益。
总之,实现真正的实时计算仍然任重道远。我们需要在硬件、软件、平台、数据处理和治理等多个层面进行创新和突破,才能最终实现这一目标。
实时计算的应用场景
实时计算广泛应用于各种场景,为移动用户提供实时交互体验。移动云计算(MCC)使得媒体娱乐领域的实时应用成为可能,如金融行情播报、在线投票和音乐流媒体等,都需要实时向终端用户共享信息。基于用户实时位置的位置感知功能,如地理营销或附近地点地图搜索,也需要实时计算的支持。移动社交网络用户可以实时分享和访问大型数据文件如图像和视频,云应用提供数据处理功能。许多移动商务和银行应用利用云计算高效满足移动用户需求,将数据存储在云端,只向用户呈现所需信息。总之,实时计算为移动场景带来了高效的实时交互体验。
欢迎加入亚马逊云科技培训中心
欢迎加入亚马逊云科技培训中心
-
快速上手训练营
-
账单设置与查看
-
动手实操
-
快速上手训练营
-
第一课:亚马逊云科技简介
本课程帮助您初步了解云平台与本地环境的差异,以及亚马逊云科技平台的基础设施和部分核心服务,包括亚马逊云科技平台上的弹性高可用架构,架构设计准则和本地架构迁移上云的基本知识。
亚马逊云科技技术讲师:李锦鸿第二课:存储与数据库服务
您将在本课程中学习到亚马逊云科技上的三个存储服务分别是什么。我们也将在这个模块中为您介绍亚马逊云科技上的关系型数据库服务 Amazon Relational Database Service (RDS)。
亚马逊云科技资深技术讲师:周一川第三课:安全、身份和访问管理
在这个模块,您将学习到保护您在亚马逊云科技上构建的应用的安全相关知识,责任共担模型以及身份和访问管理服务, Identity and Access Management (IAM) 。同时,通过讲师演示,您将学会如何授权给 EC2 实例,允许其访问 S3 上的资源。
亚马逊云科技技术讲师:马仲凯 -
账单设置与查看
-
-
动手实操
-
快速注册账号 享用免费套餐
快速注册账号 享用免费套餐
-
1 进入注册页面
-
2 设置用户名及密码
-
3 填写企业信息
-
4 企业信息验证
-
5 完成手机验证
-
6 选择支持计划
-
1 进入注册页面
-
注:该链接中的内容显示语言 是与您的网页浏览器设置相一致的,您可以根据需要自行调整语言栏。 *图片点击可放大
-
2 设置用户名及密码
-
3 填写企业信息
-
*图片可点击放大
-
4 企业信息验证
-
*图片可点击放大
-
5 完成手机验证
-
6 选择支持计划