一般性问题

问:什么是适用于 Apache Flink 的亚马逊托管服务?
借助适用于 Apache Flink 的亚马逊托管服务,您可以使用 Apache Flink 实时转换和分析串流数据。Apache Flink 是一种处理数据流的开源框架和引擎。适用于 Apache Flink 的亚马逊托管服务降低了构建、管理 Apache Flink 应用程序以及与其他 AWS 服务集成的复杂性。
 
适用于 Apache Flink 的亚马逊托管服务会处理持续运行串流应用程序所需的任何事项,且会自动扩展以匹配传入数据的数量和吞吐量。使用适用于 Apache Flink 的亚马逊托管服务无需管理服务器,没有最低费用或设置成本,且只需为串流应用程序使用的资源付费。
 
问:什么是实时流处理?为什么我需要使用它?
由于实时数据来源的爆发式增长,各家公司正以前所未有的速度获取着数据。无论您是需要处理来自移动应用程序和 Web 应用程序的日志数据、来自电子商务平台的购买数据,还是来自 IoT 设备的传感器数据,实时获取数据都有助于您了解客户、组织和业务的实时动态的消息。
 
问:我可以使用适用于 Apache Flink 的亚马逊托管服务做什么?
您可以在许多使用案例中使用适用于 Apache Flink 的亚马逊托管服务来连续处理数据,并在几秒钟或几分钟内获得洞察,而不需要等待几天甚至几周。 适用于 Apache Flink 的亚马逊托管服务让您能够快速构建端到端流处理应用程序,以用于日志分析、点击流分析、物联网(IoT)、广告技术和游戏等等。四种最常见的使用案例流式抽取-转换-加载(ETL)、持续指标生成、响应实时分析以及数据流的交互式查询。
 
流式 ETL
借助流式 ETL 应用程序,您能够在加载数据湖或数据仓库之前实时清理、扩充、组织和转换原始数据,减少或消除批处理 ETL 步骤。这些应用程序可以在交付之前将小记录缓冲到更大的文件中,并在各个流和表之间建立复杂的连接。例如,您可以构建一个应用程序,以连续读取存储在 Amazon Managed Streaming for Apache Kafka (Amazon MSK)中的 IoT 传感器数据,按传感器类型组织数据,删除重复数据,按照指定架构规范化数据,然后将数据交付到 Amazon Simple Storage Service(Amazon S3)。
 
持续指标生成
借助持续指标生成应用程序,您可以监控和了解您的数据在一段时间内的趋势。您的应用程序可以将串流数据汇总为关键信息,并将其与报表数据库和监控服务无缝集成,从而实时为您的应用程序和用户服务。借助适用于 Apache Flink 的亚马逊托管服务,您可以使用 Apache Flink 代码(采用 Java、Scala、Python 或 SQL 语言)在时间窗口内持续生成时间序列分析。例如,您可以通过计算每分钟排名靠前的玩家并将结果发送至 Amazon DynamoDB,来创建手机游戏的实时排行榜。您还可以通过每五分钟计算一次唯一身份网站访客的数量并将处理结果发送至 Amazon Redshift 来跟踪网站的流量。
 
响应实时分析
响应实时分析应用程序在某些指标达到预定义阈值时(或者更超前的情况是,在您的应用程序使用机器学习(ML)算法检测到异常情况时)发送实时警报或通知。借助这些应用程序,您可以即刻对业务变化做出响应,例如,预测移动应用的用户弃用趋势,以及识别降级系统。例如,这种应用程序可计算一段时间内面向客户的 API 的可用性或成功率,然后将相应结果发送至 Amazon CloudWatch。您还可以构建另一种应用程序,以查找满足某些条件的事件,然后使用 Amazon Kinesis Data Streams 和 Amazon Simple Notification Service(Amazon SNS)自动通知相应客户。
 
数据流交互式分析
交互式分析可帮助您实时探索流数据。借助专属查询或程序,您可以从 Amazon MSK 或 Amazon Kinesis Data Streams 查看数据流,并将数据在这些流中的活动情况可视化。例如,您可以查看在一个时间窗口内计算平均值的实时指标的行为,并将经过整合的数据发送到您选择的目标。交互式分析还有助于流处理应用程序的迭代开发。您所搭建的查询将随着新数据的到来持续更新。借助适用于 Apache Flink 的亚马逊托管服务,您可以部署这些查询以使其持续运行,同时启用自动扩缩和持久状态备份。 
 

开始使用

问:如何开始使用适用于 Apache Flink 的亚马逊托管服务的 Apache Flink 应用程序?
登录适用于 Apache Flink 的亚马逊托管服务控制台并创建新的流处理应用程序。也可以使用 AWS CLI 和 AWS SDK。创建应用程序之后,选择首选的集成式开发环境,连接到 AWS,并安装使用您所选语言的开源 Apache Flink 库和 AWS SDK。Apache Flink 是一种处理数据流的开源框架和引擎,也是 AWS SDK。可扩展库包括超过 25 个预构建的流式处理运算符(如窗口和汇总)以及 AWS 服务集成(如 Amazon MSK、Amazon Kinesis Data Streams、Amazon DynamoDB 和 Amazon Kinesis Data Firehose)。构建完成后,将您的代码上传到适用于 Apache Flink 的亚马逊托管服务。然后,该服务会处理持续运行实时应用程序所需的任何事项,包括自动扩展以匹配传入数据的大小和吞吐量。 
 
问:如何开始将 Apache Beam 应用程序与适用于 Apache Flink 的亚马逊托管服务结合使用?
使用 Apache Beam 创建适用于 Apache Flink 应用程序的亚马逊托管服务的方法与开始使用 Apache Flink 的方法非常相似。可以按照上面问题中的说明进行操作。确保按照开发人员指南中的说明安装在 Apache Beam 上运行应用程序所需的所有组件。请注意,只有在 Apache Beam 上运行时,适用于 Apache Flink 的亚马逊托管服务才支持 Java SDK。 
 
问:如何开始使用适用于 Apache Flink Studio 的亚马逊托管服务
您可以从适用于 Apache Flink 的亚马逊托管服务控制台开始创建新的 Studio 笔记本。等您开启了笔记本后,便可以在 Apache Zeppelin 中打开,从而迅速以 SQL、Python 或 Scala 语言写代码了。您可以通过内置集成以及 Apache Flink 支持的具有自定义连接器的源和目标,通过 Amazon Kinesis Data Streams、Amazon MSK 和 Amazon S3 的笔记本界面以交互方式开发应用程序。您可以在 Flink SQL 和 Table API 中使用 Apache Flink 支持的所有运算符来执行数据流的临时查询,以及开发您的流处理应用程序。准备就绪后,只需几个步骤即可构建代码并将其提升为具有自动扩缩和持久状态的持续运行的流处理应用程序。 
 
问:适用于 Apache Flink 的亚马逊托管服务有什么限制?
适用于 Apache Flink 的亚马逊托管服务可对应用程序进行弹性扩展,以适应源流的数据吞吐量和大多数情况下的查询复杂性。有关 Apache Flink 应用程序服务限制的详细信息,请查看《适用于 Apache Flink 的亚马逊托管服务开发人员指南》中的“限制”部分。 
 
问:适用于 Apache Flink 的亚马逊托管服务是否支持架构注册?
是,通过使用 Apache Flink DataStream 连接器,适用于 Apache Flink 应用程序的亚马逊托管服务可以使用 AWS Glue Schema Registry,这是 AWS Glue 的一项无服务器功能。您可以将 Apache Kafka/Amazon MSK 和 Amazon Kinesis Data Streams 作为接收器和源与适用于 Apache Flink 的亚马逊托管服务工作负载集成。请访问 《AWS Glue Schema Registry 开发人员指南》以开始使用并了解更多信息。 

重要概念

问:什么是适用于 Apache Flink 应用程序的亚马逊托管服务?
应用程序是您使用的适用于 Apache Flink 的亚马逊托管服务实体。适用于 Apache Flink 应用程序的亚马逊托管服务可以持续实时读取和处理串流数据。您可以使用 Apache Flink 支持的语言编写应用程序代码,以处理传入的串流数据并生成输出。然后,适用于 Apache Flink 的亚马逊托管服务将输出写入配置的目的地。
 
每个应用程序包括三个主要的组件:
 
  1. 输入:输入是应用程序的串流源。在输入配置中,您需要将串流源映射到数据流。数据从您的数据来源流入您的数据流。您可以使用应用程序代码处理来自这些数据流的数据,然后将处理后的数据发送到后续的数据流或目的地。您可以在 Apache Flink 应用程序和 Studio 笔记本的应用程序代码中添加输入,也可以通过适用于 Apache Flink 的亚马逊托管服务应用程序的 API 添加输入。 
  2. 应用程序代码:应用程序代码是一系列用于处理输入并生成输出的 Apache Flink 运算符。最简单的的应用程序代码可以是单个 Apache Flink 运算符,它从与串流源关联的数据流中读取数据,然后写入与输出关联的另一个数据流。对于 Studio 笔记本,这可以是一个简单的 Flink SQL 选择查询,结果将显示在笔记本的上下文中。您可以使用适用于 Apache Flink 的亚马逊托管服务应用程序或 Studio 笔记本支持的语言为其编写 Apache Flink 代码。
  3. 输出:然后,您可以选择配置应用程序输出以将数据保存到外部目标。您可以将这些输出添加到适用于 Apache Flink 的亚马逊托管服务应用程序和 Studio 笔记本的应用程序代码中。 

问:支持何种应用程序代码?

适用于 Apache Flink 的亚马逊托管服务支持通过 Java、Scala 和 Python、使用开源 Apache Flink 库和您自己的自定义代码构建的应用程序。适用于 Apache Flink 的亚马逊托管服务还支持通过 Java、使用开源 Apache Beam 库和您自己的客户代码构建的应用程序。适用于 Apache Flink 的亚马逊托管服务支持使用兼容 Apache Flink 的 SQL、Python 和 Scala 构建的代码。

管理应用程序

问:如何监控适用于 Apache Flink 应用程序的亚马逊托管服务的运行和性能?
AWS 提供各种工具供您监控适用于 Apache Flink 应用程序的亚马逊托管服务,包括对适用于 Apache Flink 应用程序的 Flink 控制面板的访问。您可以配置其中的一些工具以便进行监控。有关如何监控应用程序的更多信息,请浏览以下开发人员指南: 
 

问:如何管理和控制对我的适用于 Apache Flink 应用程序的亚马逊托管服务的访问权限?

适用于 Apache Flink 的亚马逊托管服务需要获取相应权限,才能从您在应用程序中指定的串流数据来源中读取记录。此外,适用于 Apache Flink 的亚马逊托管服务还需要获取相应权限,才能将应用程序输出写入您在应用程序输出配置中指定的目标位置。您可以通过创建适用于 Apache Flink 的亚马逊托管服务可以担任的 AWS Identity and Access Management(IAM)角色来授予这些权限。您授予该角色的权限决定了适用于 Apache Flink 的亚马逊托管服务在担任该角色时可以执行的操作。有关更多信息,请参阅以下开发人员指南:

  • 《适用于 Apache Flink 的亚马逊托管服务开发人员指南》中的授予权限
  • 《适用于 Apache Flink Studio 的亚马逊托管服务开发人员指南》中的授予权限

问:适用于 Apache Flink 的亚马逊托管服务如何扩展我的应用程序?

适用于 Apache Flink 的亚马逊托管服务可对应用程序进行弹性扩展,以适应源流的数据吞吐量和大多数情况下的查询复杂性。适用于 Apache Flink 的亚马逊托管服务以 Amazon KPU 的形式配置容量。一个 KPU 为您提供 1 个 vCPU 和 4GB 内存。 

对于 Apache Flink 应用程序以及 Studio 笔记本,适用于 Apache Flink 的亚马逊托管服务每 KPU 分配 50GB 的运行应用程序存储空间,您的应用程序将这些存储空间用于检查点,也可以通过临时磁盘使用它们。检查点是正在运行的应用程序的最新备份,应用程序中断时可立即使用检查点来恢复。您还可以使用 API 中的 Parallelism 和 ParallelismPerKPU 参数,控制适用于 Apache Flink 应用程序的亚马逊托管服务任务(例如从源中读取或执行运算符)的并行执行。Parallelism 定义任务并发实例的数量。所有运算符、源和接收器都按定义的并行数量运行,默认情况下是 1。Parallelism per KPU 定义应用程序每 KPU 可以调度的并行任务数量,默认情况下是 1。有关更多信息,请参阅《适用于 Apache Flink 的亚马逊托管服务开发人员指南》中的“扩展”。 
 
问:与构建和管理适用于 Apache Flink 的亚马逊托管服务应用程序相关的最佳实践有哪些?
有关 Apache Flink 最佳实践的信息,请参阅《适用于 Apache Flink 的亚马逊托管服务开发人员指南》中的 最佳实践部分。这部分将讨论容错能力、性能、日志记录、编码等方面的最佳实践。 
 
有关适用于 Apache Flink Studio 的亚马逊托管服务的最佳实践的信息,请参阅《适用于 Apache Flink Studio 的亚马逊托管服务开发人员指南》的“最佳实践”部分。除最佳实践外,该部分还包含 SQL、Python 和 Scala 应用程序的最佳实践、将您的代码部署为持续运行流处理应用程序的要求、性能、日志记录等更多信息。
 
问:我可以通过适用于 Apache Flink 应用程序的亚马逊托管服务访问 Amazon VPC 后端的资源吗?
可以。您可以访问 Amazon VPC 后端的资源。您可以在《Amazon Kinesis Data Analytics 开发人员指南》的 使用 Amazon VPC 部分了解如何针对 VPC 访问配置应用程序。
 
问:单个适用于 Apache Flink 的亚马逊托管服务应用程序可以访问多个 VPC 吗?
不可以。如果指定多个子网,则所有子网都必须位于同一个 VPC 中。您可以通过在 VPC 之间建立对等连接来连接到其他 VPC。
 
问:连接到 VPC 的适用于 Apache Flink 应用程序的亚马逊托管服务能否访问互联网和 AWS 服务端点?
在默认配置下,配置为可访问特定 VPC 中资源的适用于 Apache Flink 应用程序的亚马逊托管服务和适用于 Apache Flink Studio 笔记本的亚马逊托管服务无法访问互联网。您可以在《适用于 Apache Flink 的亚马逊托管服务开发人员指南》的 互联网和服务访问部分了解如何为您的应用程序配置互联网访问权限。

定价与计费

问:适用于 Apache Flink 的亚马逊托管服务如何收费?
使用适用于 Apache Flink 的亚马逊托管服务,您只需为实际使用量付费。使用适用于 Apache Flink 的亚马逊托管服务无需预置资源,也没有前期成本。 

我们根据用于运行串流应用程序的 Amazon KPU 的数量,按小时收取费用。一个 KPU 表示一个流处理容量单元,由 1 个 vCPU 计算和 4GB 内存组成。适用于 Apache Flink 的亚马逊托管服务会自动调整串流应用程序所需的 KPU 数量,因为内存和计算需求会因处理复杂性和处理串流数据的吞吐量而异。 
 
对于 Apache Flink 和 Apache Beam 应用程序,每个应用程序要为应用程序编排收取一个额外的 KPU 费用。Apache Flink 和 Apache Beam 应用程序会被收取运行应用程序存储和持久应用程序备份的费用。运行应用程序存储用于适用于 Apache Flink 的亚马逊托管服务中的有状态处理功能,并按每月每 GB 收费。持久应用程序备份是可选项,按每月每 GB 收费,并为应用程序提供基于时间点恢复功能。 
 
对于适用于 Apache Flink Studio 的亚马逊托管服务,在开发或交互模式下,您需要为应用程序编排所用的额外 KPU 付费,交互式开发也需要使用 1 个 KPU。您还需要为运营应用程序存储空间付费。对于持久应用程序备份,您无需承担费用。
 
有关更多定价信息,请参阅适用于 Apache Flink 的亚马逊托管服务的 定价页面
 
问:我是否需要为处于运行状态但未处理来自源的任何数据的适用于 Apache Flink 应用程序的亚马逊托管服务付费?
对于 Apache Flink 和 Apache Beam 应用程序,如果您的适用于 Apache Flink 应用程序的亚马逊托管服务处于运行状态,则您最低需要支付 2 个 KPU 和 50GB 运行应用程序存储的费用。
 
对于适用于 Apache Flink Studio 笔记本的亚马逊托管服务,如果您的应用程序处于运行状态,则您最低需要支付 3 个 KPU 和 50GB 运行应用程序存储的费用。
 
问:除了适用于 Apache Flink 的亚马逊托管服务费用之外,我还可能产生其他费用吗?
适用于 Apache Flink 的亚马逊托管服务是一个完全托管的流处理解决方案,独立于其从中读取数据的串流源和向其中写入处理数据的目标。对于在应用程序中读取和写入的服务,将另行收费。
 
问:适用于 Apache Flink 的亚马逊托管服务是否在 AWS Free Tier 中提供?
不。适用于 Apache Flink 的亚马逊托管服务目前不在 AWS Free Tier 中提供。
问:什么是 Apache Flink?
Apache Flink 是一种开源框架和引擎,用于流和批量数据处理。由于它提供了功能强大的运算符,解决了核心串流问题,例如复制处理过程,因此能轻松构建串流应用程序。Apache Flink 为数据流上的分布式计算提供了数据分发、通信和容错能力。
 
问:如何开发应用程序?
首先下载开源库,包括 AWS SDK、Apache Flink 和 AWS 服务连接器。请参阅 《适用于 Apache Flink 的亚马逊托管服务开发人员指南》,获取关于如何下载库并创建您的首个应用程序的说明。
 
问:应用程序代码是怎样的?
使用数据流和流运算符编写 Apache Flink 代码。应用程序数据流是您使用代码执行处理所依据的数据结构。数据不断地从源流向应用程序数据流。一个或多个流运算符用于定义对应用程序数据流的处理,包括转换、分区、聚合、连接和输出。数据流和运算符可在串行和并行链中中连接。请参考下方所示的使用伪代码的简短示例。
DataStream <GameEvent> rawEvents = env.addSource(
 New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
 rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId, 
   event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
            .keyBy(1)
            .window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
            .apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
问:如何使用 Apache Flink 运算符?
运算符以应用程序数据流作为输入,将处理过的数据作为输出发送至应用程序数据流。运算符可以连接在一起,通过多个步骤构建应用程序,并且不需要具备丰富的分布式系统知识即可实现和运算。
 
问:支持哪些运算符?
适用于 Apache Flink 的亚马逊托管服务支持 Apache Flink 中的所有运算符,这些运算符可用于解决各种各样的使用案例问题,包括映射、KeyBy、聚合、Window Join 等。例如,映射运算符允许您执行任意处理,从传入的数据流中获取一个元素并生成另一个元素。KeyBy 使用指定的键有逻辑地组织数据,让您能够同时处理类似的数据点。聚合跨多个键(如 sum、min 和 max)进行处理。Window Join 在给定的键和窗口上将两个数据流连接在一起。 

如果这些运算符不能满足您的需求,您可以构建自定义运算符。更多示例请参阅《适用于 Apache Flink 的亚马逊托管服务开发人员指南》的“运算符”部分。您可以在 Apache Flink 文档中查看完整的 Apache Flink 运算符列表。 
 
问:适用于 Apache Flink 应用程序的亚马逊托管服务支持哪些集成?
您可以使用最少的代码设置 Apache Flink 提供的预构建集成,或者构建您自己的集成来连接几乎任何数据来源。基于 Apache Flink 的开源库支持流源和目标(或接收器)来处理数据交付。还包括通过异步 I/O 连接器来支持数据扩充。其中一些连接器包括:
 
  • 串流数据来源:Amazon Managed Streaming for Apache Kafka(Amazon MSK)、Amazon Kinesis Data Streams 目标位置或接收器:Amazon Kinesis Data Streams
  • Amazon Kinesis Data Firehose、Amazon DynamoDB、Amazon Elasticsearch Service 和 Amazon S3(通过文件接收器集成)

问:适用于 Apache Flink 应用程序的亚马逊托管服务能否跨流和主题复制数据?

可以。您可以使用适用于 Apache Flink 应用程序的亚马逊托管服务在 Amazon Kinesis Data Streams、Amazon MSK 和其他系统之间复制数据。 我们的文档中提供的 示例说明了如何从一个 Amazon MSK 主题读取数据,然后写入另一个主题。
 
问:是否支持自定义集成?
您可以通过构建一组原语向应用程序添加源或目标,这些原语使您能够从文件、目录、套接字或通过网络访问的任何对象进行读写。Apache Flink 为 数据源 数据接收器提供这些原语。这些原语自带一些配置,例如,能够连续或一次、异步或同步读取和写入数据。例如,您可以通过扩展基于现有文件的源集成来设置一个应用程序,以连续从 Amazon S3 读取数据。
 
问:适用于 Apache Flink 应用程序的亚马逊托管服务提供哪种交付和处理模型?
如果应用程序是使用幂等运算符(包括源和 sink)构建的,那么适用于 Apache Flink 的亚马逊托管服务中的 Apache Flink 应用程序将使用“仅一次”交付模型。这意味着处理后的数据只会对下游结果产生一次影响。
 
默认情况下,适用于 Apache Flink 应用程序的亚马逊托管服务使用 Apache Flink 的“仅一次”语义。如果您使用采用 Apache Flink 的仅一次语义的源、运算符和接收器来设计应用程序,那么您的应用程序将支持“仅一次”处理语义。
 
问:我能够从应用程序存储访问本地存储吗?
可以。适用于 Apache Flink 应用程序的亚马逊托管服务为您的应用程序提供每 KPU 50GB 的运行应用程序存储空间。适用于 Apache Flink 的亚马逊托管服务可根据您的应用程序扩展存储空间。运行应用程序存储使用检查点保存应用程序状态。也可以供您的应用程序代码访问以用作临时磁盘,用于缓存数据或用于任何其他目的。适用于 Apache Flink 的亚马逊托管服务可以随时从运行的应用程序存储中删除未通过检查点(例如操作员、源、接收器)保存的数据。所有存储在运行应用程序存储中的数据都会在闲置时加密。
 
问:适用于 Apache Flink 的亚马逊托管服务如何自动备份我的应用程序?
适用于 Apache Flink 的亚马逊托管服务使用检查点和快照自动备份正在运行的应用程序的状态。检查点保存当前应用程序状态,并使适用于 Apache Flink 应用程序的亚马逊托管服务能够恢复应用程序的状态,从而提供与无故障执行相同的语义。检查点使用正在运行的应用程序存储。适用于 Apache Flink 应用程序的检查点通过 Apache Flink 的 设置检查点功能提供。快照可以保存应用程序的时间点恢复点,并使用持久应用程序备份。快照与 Flink 保存点类似。
 
问:何为应用程序快照?
快照让您能够创建并将应用程序恢复到先前某个时间点的状态。您可以保留之前的应用程序状态并随时回滚应用程序。您可以控制控制拥有的快照数量,从 0 个到数千个不等。快照使用持久的应用程序备份,适用于 Apache Flink 的亚马逊托管服务根据其大小向您收费。默认情况下,适用于 Apache Flink 的亚马逊托管服务会加密快照中保存的数据。您可以通过 API 删除单个快照,通过删除应用程序删除所有快照。
 
问:支持哪些版本的 Apache Flink?
要了解有关支持的 Apache Flink 版本的更多信息,请访问 适用于 Apache Flink 的亚马逊托管服务发行说明页面。本页还包括适用于 Apache Flink 的亚马逊托管服务支持的 Apache Beam、Java、Scala、Python 和 AWS SDK 的版本。 
 
问:适用于 Apache Flink 应用程序的亚马逊托管服务能否运行 Apache Beam?
能,适用于 Apache Flink 的亚马逊托管服务支持使用 Apache Beam 构建的串流应用程序。您可以使用 Java 构建 Apache Beam 串流应用程序并在不同的引擎和服务中运行它们,包括在适用于 Apache Flink 的亚马逊托管服务上使用 Apache Flink。您可以在 《适用于 Apache Flink 的亚马逊托管服务开发人员指南》中找到有关支持的 Apache Flink 和 Apache Beam 版本的信息。 

问:如何开发应用程序?
您可以从适用于 Apache Flink Studio 的亚马逊托管服务、Amazon Kinesis Data Streams 或 Amazon MSK 控制台开始,只需几步即可启动一个无服务器笔记本,从而迅速查询数据流并开展交互式数据分析。
 
交互式数据分析:您可以使用 SQL、Python 或 Scala 等语言在笔记本中编写代码,以同您的流式数据交互,查询将在数秒内响应。您可以使用内置的可视化功能在您的笔记本内部探索数据、查看流式数据的实时见解,并开发出由 Apache Flink 提供支持的流处理应用程序。

当您的代码已准备好作为生产应用程序运营时,只需一步,就能转化成流处理应用程序,每秒可处理数 GB 的数据,并且无需服务器。

流处理应用程序:准备好将代码推广到生产环境后,您可以通过单击笔记本界面中的“作为流处理应用程序部署”,或者在 CLI 中发出单个命令来构建代码。Studio 会处理大规模运行流处理应用程序所需的所有基础设施管理,并启用自动扩缩功能和持久状态,就像在适用于 Apache Flink 应用程序的亚马逊托管服务中一样。

问:应用程序代码是怎样的?
您可以借助 Apache Flink 的 Table API,利用您偏好的语言(如 SQL、Python 或 Scala)在笔记本中编写代码。Table API 是一种高度抽象化、关系化的 API,能够支持 SQL 能力的超集。它将提供诸多熟悉的运营功能,例如选择、筛选、加入、按条件分组、整合等,此外还有窗口化等流式特定概念。您可以使用 % 来指定需要在笔记本部分中使用的语言,在不同语言之间切换。编译程序是 Apache Zeppelin 的插件,让您可以为笔记本的各个部分指定语言或数据处理引擎。您还可以打造由用户定义的功能,并引用这些功能来提升代码的功能。

问:服务支持哪些 SQL 操作?
您可以执行如下所示的 SQL 操作:

  • 扫描和筛选(SELECT、WHERE) 
  • 聚合(GROUP BY、GROUP BY WINDOW、HAVING) 
  • 设置(UNION、UNIONALL、INTERSECT、IN、EXISTS) 
  • 排序(ORDER BY、LIMIT) 
  • 联接(INNER、OUTER、Timed Window — BETWEEN、AND、与暂存表联接 — 跟踪一段时间内的变化的表)
  • 前 N 个
  • 去重复
  • 模式识别 

其中某些查询功能,诸如 GROUP BY、OUTER JOIN 和 前 N 个均为串流数据的“结果更新”,意味着在处理串流数据时,这些结果将持续更新。此外,还支持 CREATE、ALTER 和 DROP 等其他 DDL 语句。有关查询和示例的完整列表,请参阅 Apache Flink 查询文档

问:服务能为 Python 和 Scala 提供哪些支持?

Apache Flink 的 Table API 能够采用 Python 语句和 Scala 表达通过语言整合为 Python 和 Scala 提供支持。其所支持的操作与 SQL 操作十分类似,包括选择、排序、分组、加入、筛选和窗口化。我们的开发人员指南中包含操作和示例的完整列表。

问:支持哪些版本的 Apache Flink 和 Apache Zepplin?

要了解有关支持的 Apache Flink 版本的更多信息,请访问适用于 Apache Flink 的亚马逊托管服务发行说明页面。本页还包括适用于 Apache Flink 的亚马逊托管服务支持的 Apache Zeppelin、Apache Beam、Java、Scala、Python 和 AWS SDK 的版本。

问:适用于 Apache Flink Studio 应用程序的亚马逊托管服务默认支持哪些集成?

  • 数据来源:Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis Data Streams、Amazon S3 
  • 目标位置,或 sink:Amazon MSK、Amazon Kinesis Data Streams 和 Amazon S3

问:是否支持自定义集成?
您可以通过更多步骤和几行 Apache Flink 代码(Python、Scala 或 Java)来配置其他集成,以定义与所有 Apache Flink 支持的集成的连接。这包括 Amazon OpenSearch Service、Amazon ElastiCache for Redis、Amazon Aurora、Amazon Redshift、Amazon DynamoDB、Amazon Keyspaces 等目标。当您创建或配置适用于 Apache Flink 应用程序的亚马逊托管服务时,您可以为这些自定义的连接器附加可执行文件。

服务水平协议

问:适用于 Apache Flink 的亚马逊托管服务 SLA 提供哪些保证?

我们的服务水平协议(SLA)保证适用于 Apache Flink 的亚马逊托管服务的月度正常运行时间百分比至少达到 99.9%。

问:怎样确定我是否有资格获得 SLA 服务抵扣?

对于您运行任务所在的可用区,如果同一个 AWS 区域内有一个以上的可用区在任何月度账单周期内的月度正常运行时间百分比没有达到 99.9%,那么您就有资格获得适用于 Apache Flink 的亚马逊托管服务 SLA 规定的适用于 Apache Flink 的亚马逊托管服务的 SLA 服务抵扣金。如需所有 SLA 条款与条件的完整详细信息,以及如何提交索赔的详细信息,请访问适用于 Apache Flink 的亚马逊托管服务 SLA 详细信息页面

Amazon Kinesis Data Analytics 入门

访问 Kinesis Data Analytics 定价页面
计算成本

访问 Amazon Kinesis Data Analytics 定价页面

Read the documentation
查看入门指南

通过分步指南了解如何使用 Amazon Kinesis Data Analytics for SQL 或 Amazon Kinesis Data Analytics for Apache Flink

开始在控制台中构建
开始构建流式处理应用程序

从 Amazon Kinesis Data Analytics 控制台构建第一个流应用程序。