AWS Kinesis Data Analytics 允许你进行实时的数据流分析与处理。 这项服务使得构建实时分析仪表板成为可能,同时还可以扫描日志文件以发现潜在问题,并进行异常情况的检测。
这有助于你从数据中提取有价值的见解,快速识别问题,并以极短的延迟做出反应。 本文旨在全面介绍使用 AWS Kinesis Data Analytics 所需掌握的所有关键信息。
什么是 AWS Kinesis 数据分析?
来源:aws.amazon.com
AWS Kinesis Data Analytics 是一项完全由 AWS 托管的服务,它是 AWS Kinesis 服务家族中的一员。 它可以让你处理实时接收到的流数据。 这些数据流持续不断地来自各种来源,例如物联网设备、点击流和广告应用程序的日志。 AWS Kinesis Data Analytics 在 AWS 云上提供托管的 Apache Flink 实例,这些实例在后台运行于 EC2 实例上。
该服务家族中的其他成员包括 Kinesis Data Streams、Kinesis Data Firehose 和 Kinesis Video Streams。 该服务家族的核心目标是为流数据的采集和处理提供全面的解决方案。
什么是流数据?
流数据指的是那些不断流入系统,并且随着新信息的添加而持续变化的数据。 它与那些在时间推移中保持不变的静态数据集形成鲜明对比。
AWS Kinesis 可以帮助你处理有界和无界的数据集。 有界数据集具有明确的开始和结束,而无界数据集虽然有开始,却没有明确的结束。
AWS Kinesis Data Analytics 的功能
除了其他重要特性之外,AWS Kinesis Data Analytics 还提供以下功能:
- 对流数据进行实时分析
- 使用基于 SQL 的编辑器编写脚本来执行分析
- 自动扩展以实现高可用性和可靠性
- 与其他 AWS 服务无缝集成
Kinesis Data Analytics 对业务的重要性
- Kinesis Data Analytics 使你能够轻松获取所需信息,从而更快地做出决策。 如果没有数据分析,数据采集并汇总成有意义的信息将耗费大量时间,从而减缓决策过程。
- 它还能更迅速地检测出异常情况,从而加快问题解决的速度。 例如,业务交易处理可以标记出可能表明欺诈的可疑活动,从而迅速解决这一异常情况。
- 业务运营可以实现实时监控和控制。 数据可以从多种来源收集,如网站事件、物联网设备测量值以及来自各种传感器的数据。
AWS Kinesis Data Analytics 的架构
与任何处理系统一样,AWS Kinesis Data Analytics 包含多个组件,这些组件负责接收数据、处理数据,以及输出修改后的数据。 AWS Kinesis 的架构同样包含数据源、处理应用程序、输出目标,以及用于在系统内传输数据的应用程序内部数据流。
数据源可以是任何流数据来源。 这可能包括 Firehose、S3 存储桶以及 Kinesis Data Streams 等 AWS 服务。 数据源也可以位于 AWS 之外,例如时间序列数据。
处理应用程序指的是你创建的 AWS Kinesis 应用程序。 这些应用程序会将接收到的数据转化为更有意义、更具洞察力的输出数据。 这些应用程序使用 SQL 编写,并重复应用从数据源获取数据的查询。
已处理数据的输出目标包括数据流、Firehose、S3 存储桶和 Amazon MSK。 目标也可以是分析仪表板。
Kinesis Data Analytics 还使用应用程序内的数据流来管理不同处理阶段之间的数据流。 这些数据流充当在应用程序内的 SQL 查询或 Flink 操作之间传输数据的通道。
AWS Kinesis Data Analytics 的关键组件
AWS Kinesis Data Analytics 由三个主要组件构成。 在本节中,我们将详细讨论这些组件及其各自的功能。
阿帕奇弗林克
AWS Kinesis Data Analytics 平台是 Apache Flink 的托管实例。 它托管在 Amazon 云基础设施上,特别是那些能够根据实际使用情况自动扩展的 EC2 实例。 Apache Flink 是一个用于构建高可用性且精确的流应用程序的框架。
它适用于无界和有界的数据。 该框架作为一个分布式系统运行在集群计算系统上。 Apache Flink 可以并行化应用程序,并将其分布在集群中进行计算。
Kinesis 数据分析工作室
来源:aws.amazon.com
Kinesis Data Analytics Studio 允许你使用笔记本创建可视化效果并运行查询。 这些笔记本在相同的开发环境中支持 SQL、Python 和 Scala。
这种支持包括语法高亮显示和验证。 你可以使用 API 来创建对这些笔记本中的流数据执行的查询。
Data Analytics Studio Notebooks 托管在能够自动扩展的 EC2 实例上。 这意味着你永远无需担心底层基础设施,因为它是一个无服务器解决方案。
Kinesis Data Analytics SQL 应用程序
来源:docs.aws.amazon.com
数据分析 SQL 应用程序与数据流和 Firehose 集成,使你能够提取数据,使用 SQL 处理数据,并将结果发送回 AWS 服务。
该组件提供了一个基于控制台的编辑器,用于构建和编写 SQL 查询。 除了编写查询外,你还可以使用预先构建的模板来进行常见操作,从而避免一切从头开始,加快工作速度。
为什么要使用 Kinesis Data Analytics
#1. 可扩展性
该服务是一个托管的 Apache Flink 实例。 Apache Flink 使用并行集群计算来分配要完成的工作。 AWS 会根据需要自动调整底层计算集群的大小。 这使得 Kinesis Data Analytics 可以自动扩展,以处理非常大的数据流。
#2. 表现
Apache Flink 在处理大量数据时表现出极高的性能,因为它运行在一个可以大规模扩展的并行计算网络上。 几乎所有的操作都在内存或高效的磁盘数据结构中执行。 这在执行操作时提供了亚秒级的延迟。
#3. 优化
该平台还可以进行定制,从而最大限度地提高性能。 例如,你可以更改窗口时间、窗口大小,以及滚动或滑动窗口来优化性能。 你还可以过滤数据,以便专注于你感兴趣的属性。 在编写 SQL 时,你也可以通过优化查询来提高其性能。
#4. 安全
AWS Kinesis Data Analytics 提供了 AWS 云的安全保障。 这包括对传输中的数据进行加密,管理对数据和分析的访问,以及定期更新和补丁的能力,这是你从云中的托管服务所期望得到的。
#5. 遵守
该服务还可以帮助你遵守数据和隐私法规。 它可以轻松地定义数据保留和删除策略。 此外,你还可以利用 AWS 服务来帮助你实时识别威胁和事件。 这确保了数据得到正确和适当的处理。
Kinesis Data Analytics 的用例和应用
总的来说,AWS Kinesis Data Analytics 使你能够编写代码,以连续读取、处理和存储从实时数据流接收到的数据。 这非常有用,因为它允许你构建各种应用,例如:
- 构建分析仪表板,以便快速处理接收到的数据。 这些数据可能来自你的网站/平台上的事件,你希望对其进行处理,以更好地理解用户是如何与之交互的。
- 在将数据流式传输到其他 AWS 服务(如 Amazon S3 存储桶、Amazon Kinesis Data Streams 或 Amazon MSK)之前,对数据进行处理,使其更具意义。
- 处理来自物联网设备的数据并进行实时存储。
案例研究和成功故事
数量
Arity 是一家专注于交通领域的科技公司。 他们的目标是让交通更安全、更快捷、更智能。 这需要从大量流式的驾驶数据中获取见解。 借助 AWS Kinesis Data Analytics,他们能够实现这一目标。 此外,他们还将解决挑战所需的时间从几个季度缩短到了几周。
隔壁
Nextdoor 是一款用于本地化社交网络的应用程序。 该应用程序提供当地社区新闻、提示和当地企业信息。 事实证明,AWS Kinesis Data Analytics 在获取诸如客户在不同参与渠道中的效率等见解时,对他们来说具有无可估量的价值。
欧特克
Autodesk 是设计和工程软件的创建者。 这包括在技术绘图中使用的流行产品,如 AutoCAD 和 Revit。 他们使用 AWS Kinesis Data Analytics 来分析日志,从而更好地理解客户如何使用他们的产品,并改进他们开发的软件。
学习资源
#1. AWS Kinesis 数据分析资源
AWS 提供的 AWS Kinesis 数据分析资源是一系列高质量的资源,可以帮助你入门 AWS Kinesis。 你也可以相信他们会提供最新且最全面的指南。 他们还有涵盖平台不同方面的详尽文档。
#2. AWS Kinesis 初学者教程 – YouTube
YouTube 上也有很多教程,例如这个。
最后的话
本文介绍了 AWS Kinesis Data Analytics。 目的是向你介绍这项服务,说明你可能想要使用它的原因,以及它在哪里最有帮助。
接下来,你可能想阅读我们关于 Apache Cassandra 的文章。