发布于: Jul 22, 2022

 

流数据技术已经融入我们生活的方方面面。下文我们就介绍几例常见的应用。Amazon Kinesis 、Kinesis Data Streams、Kinesis Data Firehose、Kinesis Data Analytics

 

流数据技术已经融入我们生活的方方面面。下文我们就介绍几例常见的应用。Amazon Kinesis 是完全托管的云服务,用于对大型分布式数据流进行实时数据处理。Kinesis Data Streams 可以捕获、处理和存储数据流,Kinesis Data Firehose 将数据流加载到 Amazon Web Services 数据存储、分析工具中(如 S3、Redshift、Elasticsearch),Kinesis Data Analytics 使用 SQL 或 Java 分析数据流,可以提供亚秒级的端到端处理延迟。这三者可以高效的配合使用,提供完整的流式数据处理服务。Kinesis 服务属于无服务器产品,不需要设置和管理复杂的基础设施,且会自动扩展以匹配传入数据的大小和吞吐量。使用时只需要为流应用程序消耗付费,没有最低消费和设置费用。

使用 Kinesis Data Analytics 可以非常简便地分析流数据、获得对数据的洞察,对于没有编程经验的业务人员可通过 SQL 模板和交互式 SQL 编辑器快速实现业务目标,可针对各类应用场景,定义相应的计算规则,轻松查询流数据或构建整个流应用程序。对经验丰富的 Java 开发人员可以使用开源 Java 库和 Amazon Web Services 集成快速构建复杂的流应用程序,以转换和实时分析数据,而不用维护实时数据分析系统。

对于 Kinesis Data Analytics 来说,常见的三类应用是:

  • 流式 ETL(数据管道)
  • 持续指标生成
  • 事件驱动型应用(实时响应分析)
 

流式 ETL 数据管道是以持续流模式运行,而非周期性触发,可以从一个不断生成数据的源头读取记录,并将它们以低延迟移动到终点。例如:您可以连续读取存储在 Amazon Managed Streaming for Apache Kafka 中的 IoT 传感器数据,按传感器类型组织数据,删除重复数据,按照指定架构规范化数据,然后将数据交付到 Amazon S3。

另一个应用可能会将事件流物化到数据库或增量构建和优化查询索引。您能够在加载数据仓库之前实时清理、扩充、组织和转换原始数据,减少或消除批处理 ETL 步骤。

例如下面链接中的说明,您具有一个可接收两种类型 (Order 和 Trade) 记录的流式传输源 SOURCE_ STREAM,通过 KDA 将订单记录,并将订单保存到 Order_Stream,将 Trade 记录保存到 Trade_Stream,并计算时长一分钟的滚动窗口中交易数,并将结果保存到另一个流 DESTINATION_ STREAM。

 

借助持续指标生成应用程序,您可以监控和了解您的数据在一段时间内的趋势。您的应用程序可以将流数据聚合为关键信息,并将其与报表数据库和监测服务无缝集成,从而实时地为您的应用程序和用户服务。借助 Kinesis Data Analytics,您可以使用 SQL 或 Java 代码在一段时间内持续生成时间序列分析。例如,您可以通过计算每分钟的顶级玩家并将结果发送至 Amazon DynamoDB 来创建手机游戏的实时排行榜。或者,您可以每五分钟计算一次唯一身份网站访客的数量并将处理结果发送至 Amazon Redshift 来跟踪网站的流量。类似的应用还有网络质量监控、对消费者的实时数据即席分析等。下面就是两个应用的例子:

Gunosy 是一个手机新闻阅读应用,他使用 Amazon Kinesis Data Analytics、Amazon Kinesis Data Firehose 实时处理用户活动日志,分析用户属性,例如性别和年龄,以及过去的活动日志,例如点击率(CTR)。并将此信息与文章属性结合起来,为用户提供趋势,个性化的新闻文章。

Amazon Kinesis Analytics architecture at Gunosy

Palringo 是聊天和游戏的结合应用程序开发商,使用 Amazon Kinesis Analytics 实时处理用户活动并将这些统计信息提供给客户来提高其应用参与度。客户可以更好地查看群聊统计信息,例如按类型随时间推移发送的消息数或总消息数。此外,关于哪些游戏在哪个聊天组中以及哪个组最活跃的内部度量标准为产品经理和游戏开发人员提供了更好的见解,从而增加了游戏的采用率和游戏时间。详见:

Amazon Kinesis Analytics architecture at Palringo

下面这个 blog 则介绍了使用 Kinesis Data Analytics 和 QuickSight 生成 IOT 设备仪表盘的方案,使用 Kinesis Data Analytics 编写 SQL 查询,从传入的数据流中提取特定的数据并对其执行实时 ETL,来汇总每分钟传感器的最低和最高温度值,之后将其加载到 Amazon QuickSight 中创建监视仪表板,来检查设备在使用过程中是否过热或冷却。还可以在分析中提取每个设备的位置、温度、湿度和时间等参数,以在可视化仪表板上展示。

 

事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。实时响应分析应用程序在某些指标达到预定义阈值时(或者更超前的情况是,在您的应用程序使用机器学习算法检测到异常情况时)发送实时警报或通知。这些应用程序让您能够即刻对业务变化做出响应,例如,预测移动应用的用户弃用趋势,以及识别降级系统。典型的事件驱动型应用有异常检测、反欺诈、基于规则的报警、业务流程监控等。下面就是几个应用的例子:

Autodesk 是 3D 设计和工程软件的开发商,为确保确保其数百万的全球用户具有运行该软件的最佳体验,Autodesk 在 Amazon Web Services 上构建统一日志分析解决方案,目的是改善软件产品并为客户提供更好的服务。Kinesis Data Analytics 用于发现实时监控指标,例如响应时间和错误率峰值。日志数据通过此管道后,将被发送到 Amazon CloudWatch,显示在整个企业的标准化仪表板中。

Amazon Kinesis Analytics architecture at Autodesk

数字营销人员需要监控点阅率以了解特定广告的效果,从而优化广告的展示位置。他们还对低点击率异常感兴趣,这个 blog 就给出了使用 Kinesis Data Analytics 进行实时分析点击流数据分析,并进行异常检测的说明,其中就使用了 Kinesis Data Analytics 内置的 RANDOM_CUT_FOREST 函数。

Real-time Clickstream Anomaly Detection with Amazon Kinesis Analytics

在出租车车队的实时数据分析的案例中,通过构建可扩展且高度可用的流式架构来优化车队运营,当识别当前存在大量打车请求的区域时,就会将信息实时展现在企业运营仪表盘上,其中使用 Kinesis Data Analytics for Java Applications 部署、操作和扩展 Flink 应用程序。

 

下表从行业的维度给出一些典型应用的总结,Amazon Kinesis 系列服务可以很好的满足这些需求。

行业 实时分析 近实时分析
持续指标生成 实时响应分析 流式 ETL

广告和营销

广告覆盖率,收益率和转化率等指标

用户与广告互动,优化出价/购买引擎

发布者、投标者数据汇总

IOT

运作指标和仪表板

设备操作智能和警报(OTA 车辆管理)

传感器,设备遥测,数据摄取

游戏

大型多人在线游戏(MMOG)实时仪表板

排行榜,玩家技能匹配

在线数据汇总; 例如,前 10 名玩家

在线门户、电商

页面浏览量之类的指标

推荐引擎,A/B 测试

点击流分析

运营监控

订阅 Amazon CloudWatch 日志并实时分析日志

异常检测

提取 VPC 流日志

 

相关文章