对于新项目,我们建议您使用新的 Kinesis Data Analytics 工作室,而不是 SQL 应用程序的 Kinesis Data Analytics。Kinesis Data Analytics Studio 将易用性与高级分析功能相结合,使您能够在几分钟内构建复杂的流处理应用程序。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将应用程序输出永久保存到外部目标的传输模型
Amazon Kinesis Data Analytics 使用 “至少一次” 交付模型将应用程序输出到配置的目的地。当应用程序运行时,Kinesis Data Analytics 会使用内部检查点。这些检查点是指将输出记录传输到目标并且未丢失数据的时间点。该服务根据需要使用检查点以确保至少向配置的目标传输一次应用程序输出。
在正常情况下,您的应用程序会持续处理传入的数据。Kinesis Data Analytics 将输出写入配置的目标位置,例如 Kinesis 数据流或 Kinesis Data Firehose 传输流。不过,您的应用程序偶尔可能会中断,例如:
-
您选择停止应用程序并稍后重新启动。
-
您删除了 Kinesis Data Analytics 将应用程序输出写入配置目标所需的 IAM 角色。如果没有 IAM 角色,Kinesis Data Analytics 就没有任何权限代表你写入外部目标。
-
网络中断或其他内部服务故障导致应用程序暂时停止运行。
当您的应用程序重新启动时,Kinesis Data Analytics 可确保它继续处理和写入故障发生之前或等于故障发生时点的输出。这有助于确保它将所有应用程序输出传输到配置的目标,而不会遗漏任何内容。
假设您从同一应用程序内部流中配置多个目标。应用程序从故障中恢复后,Kinesis Data Analytics 将从传送到最慢目的地的最后一条记录恢复到配置目标的持久输出。这可能会导致相同的输出记录多次传送到其他目的地。在这种情况下,您必须在外部处理目标中的潜在重复项。