将应用程序输出永久保存到外部目标的传输模型 - 适用于 SQL 应用程序的 Amazon Kinesis Data Analytics 开发人员指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

对于新项目,建议您使用新的适用于 Apache Flink Studio 的托管服务,而不是使用适用于 SQL 应用程序的 Kinesis Data Analytics。Managed Service for Apache Flink Studio 不仅操作简单,还具有高级分析功能,使您能够在几分钟内构建复杂的流处理应用程序。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将应用程序输出永久保存到外部目标的传输模型

Amazon Kinesis Data Analytics 使用“至少一次”传输模型将应用程序输出传输到配置的目标。在应用程序运行时,Kinesis Data Analytics 使用内部检查点。这些检查点是指将输出记录传输到目标并且未丢失数据的时间点。该服务根据需要使用检查点以确保至少向配置的目标传输一次应用程序输出。

在正常情况下,您的应用程序会持续处理传入的数据。Kinesis Data Analytics 将输出写入配置的目的地,例如 Kinesis 数据流或 Firehose 传输流。不过,您的应用程序偶尔可能会中断,例如:

  • 您选择停止应用程序并稍后重新启动。

  • 您删除 Kinesis Data Analytics 在将应用程序输出写入到配置的目标时所需的 IAM 角色。在没有 IAM 角色的情况下,Kinesis Data Analytics 无权代表您写入到外部目标。

  • 网络中断或其他内部服务故障导致应用程序暂时停止运行。

在您的应用程序重新启动时,Kinesis Data Analytics 确保它从发生故障之前或发生故障时起继续处理和写入输出。这有助于确保它将所有应用程序输出传输到配置的目标,而不会遗漏任何内容。

假设您从同一应用程序内部流中配置多个目标。在应用程序从故障恢复后,Kinesis Data Analytics 会从传输到最慢目标的最后一条记录开始继续将输出永久保存到配置的目标中。这可能会导致将同一输出记录多次传输到其他目标。在这种情况下,您必须在外部处理目标中的潜在重复项。