配置应用程序输出 - Amazon Kinesis Data Analytics 开发人员指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

配置应用程序输出

警告

对于新项目,我们建议您使用新的 Kinesis Data Analytics 工作室,而不是 SQL 应用程序的 Kinesis Data Analytics。Kinesis Data Analytics Studio 将易用性与高级分析功能相结合,使您能够在几分钟内构建复杂的流处理应用程序。

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

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

注意

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

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

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

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

  • 外部目标 — 您可以将数据保存到 Kinesis 数据流、Kinesis Data Firehose 传输流或 Lambda 函数。您需要提供流或函数的 Amazon 资源名称 (ARN)。您还提供可由 Kinesis Data Analytics 可以代入以代表您对流或函数进行写入的 AM 角色。您可以向 Kinesis Data Analytics 描述写入外部目标时要使用的记录格式(JSON、CSV)。

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

您可以使用 Amazon Web Services Management Console配置应用程序输出。控制台将调用 API 以保存配置。

使用 Amazon CLI 创建输出

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

创建 Kinesis 流输出

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

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

创建 Kinesis Data Firehose 传输流输出

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

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

创建 Lambda 函数输出

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

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