配置应用程序输出 - SQL适用于应用程序的 Amazon Kinesis Data Analytics 开发者指南

经过仔细考虑,我们决定分两个步骤停止使用亚马逊 Kinesis Data Analytics SQL 的应用程序:

1. 从 2025 年 10 月 15 日起,您将无法为应用程序创建新的 Kinesis Data Analytic SQL s。

2. 我们将从 2026 年 1 月 27 日起删除您的申请。您将无法启动或操作适用于应用程序的 Amazon Kinesis Data Analytic SQL s。从那时起,亚马逊 Kinesis Data Analytics SQL 将不再提供支持。有关更多信息,请参阅 适用于应用程序的 Amazon Kinesis Data Analytic SQL s 停产

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

配置应用程序输出

在应用程序代码中,您可以将SQL语句的输出写入一个或多个应用程序内流。您可以选择向应用程序添加输出配置。以将写入应用程序内流的所有内容保存到外部目标,例如 Amazon Kinesis 数据流、Firehose 传输流或函数。 AWS Lambda

可以用来永久保存应用程序输出的外部目标的数量有限制。有关更多信息,请参阅 限制

注意

建议用一个外部目标来永久保存应用程序内部错误流数据,以方便调查错误。

在所有这些输出配置中,可以提供以下内容:

  • 应用程序内部流名称 - 要永久保存到外部目标的流。

    Kinesis Data Firehose 查找在输出配置中指定的应用程序内部流。(流名称区分大小写,并且必须完全匹配)。确保应用程序代码创建了这一应用程序内部流。

  • 外部目标-您可以将数据保存到 Kinesis 数据流、Firehose 传输流或 Lambda 函数中。您提供直播或函数的 Amazon 资源名称 (ARN)。你还提供了一个IAM角色,Kinesis Data Analytics 可以代替你写入直播或函数。您向 Kinesis Data Analytics 描述了写入外部目标时要使用的记录格式 (JSON,CSV)。

如果 Kinesis Data Analytics 无法写入到流或 Lambda 目标,该服务将继续无限期地进行尝试。这将产生反向压力,导致您的应用程序滞后。如果不能解决这一问题,您的应用程序最终将停止处理新数据。您可以监控 Kinesis Data Analytics 指标并设置故障警报。有关指标和警报的更多信息,请参阅使用亚马逊 CloudWatch指标创建亚马逊 CloudWatch警报

您可以使用 AWS Management Console配置应用程序输出。控制台发出保存配置的API呼叫。

使用创建输出 AWS CLI

此部分介绍如何为 CreateApplicationAddApplicationOutput 操作创建请求正文的 Outputs 部分。

创建 Kinesis 流输出

以下JSON片段显示了CreateApplication请求正Outputs文中用于创建 Amazon Kinesis 数据流目标的部分。

"Outputs": [ { "DestinationSchema": { "RecordFormatType": "string" }, "KinesisStreamsOutput": { "ResourceARN": "string", "RoleARN": "string" }, "Name": "string" } ]

创建 Firehose 传送流输出

以下JSON片段显示了CreateApplication请求正Outputs文中用于创建 Amazon Data Firehose 传输流目标的部分。

"Outputs": [ { "DestinationSchema": { "RecordFormatType": "string" }, "KinesisFirehoseOutput": { "ResourceARN": "string", "RoleARN": "string" }, "Name": "string" } ]

创建 Lambda 函数输出

以下JSON片段显示了CreateApplication请求正文中用于创建 AWS Lambda 函数目标的Outputs部分。

"Outputs": [ { "DestinationSchema": { "RecordFormatType": "string" }, "LambdaOutput": { "ResourceARN": "string", "RoleARN": "string" }, "Name": "string" } ]