错误处理 - Amazon Kinesis Data Analytics 开发者指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

错误处理

Amazon Kinesis Data Analytics 会直接向您返回 API 或 SQL 错误。有关 API 操作的更多信息,请参阅操作。有关处理 SQL 错误的更多信息,请参阅 Amazon Kinesis Data Analytics SQL 参考

Amazon Kinesis Data Analytics 使用名为的应用程序内错误流报告运行时错误error_stream

使用应用程序内部错误流报告错误

Amazon Kinesis Data Analytics 向名为的应用程序内错误流报告运行时错误error_stream。下面是可能出现的错误的示例:

  • 从流式传输源读取的一个记录不符合输入架构。

  • 您的应用程序代码指定被零除。

  • 行顺序错误(例如,流中出现的一个记录具有 ROWTIME 值,一个用户修改该值后导致记录顺序错误)。

  • 源流中的数据无法转换为架构中指定的数据类型 (强制转换错误)。有关可转换的数据类型的信息,请参阅将 JSON 数据类型映射到 SQL 数据类型

建议以编程方式在 SQL 代码中处理这些错误或将错误流上的数据永久保存到外部目标。这需要将输出配置添加到您的应用程序 (请参阅配置应用程序输出)。要查看应用程序内错误流工作方式的示例,请参阅示例:探索应用程序内部错误流

注意

您的 Kinesis 数据分析应用程序无法以编程方式访问或修改错误流,因为错误流是使用系统帐户创建的。必须使用错误输出来确定应用程序可能遇到的错误。然后,编写应用程序的 SQL 代码来处理预期的错误情况。

错误流架构

错误流具有以下架构:

字段

数据类型

备注

ERROR_TIME

TIMESTAMP

错误出现的时间

ERROR_LEVEL

VARCHAR(10)

ERROR_NAME

VARCHAR(32)

MESSAGE

VARCHAR(4096)

DATA_ROWTIME

TIMESTAMP

传入记录的行时间

DATA_ROW

VARCHAR(49152)

原始行中的十六进制编码数据. 您可以使用标准库对此值进行十六进制解码,也可以使用 Web 资源,如 Hex to String Converter

PUMP_NAME

VARCHAR(128)

利用 CREATE PUMP 定义的原始泵