错误处理 - Amazon Kinesis Data Analytics for SQL 应用程序开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

错误处理

Amazon Kinesis Data Analytics 将 API 或 SQL 错误直接返回给您。有关 API 操作的更多信息,请参阅Actions。有关处理 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 定义的原始泵