

经过仔细考虑，我们决定停用适用于 SQL 应用程序的 Amazon Kinesis Data Analytics：

1. 从 **2025年9月1日起，**我们将不再为适用于SQL应用程序的Amazon Kinesis Data Analytics Data Analytics提供任何错误修复，因为鉴于即将停产，我们对其的支持将有限。

2. 从 **2025 年 10 月 15 日**起，您将无法为 SQL 应用程序创建新的 Kinesis Data Analytics。

3. 从 **2026 年 1 月 27 日**起，我们将删除您的应用程序。您将无法启动或操作 Amazon Kinesis Data Analytics for SQL 应用程序。从那时起，将不再提供对 Amazon Kinesis Data Analytics for SQL 的支持。有关更多信息，请参阅 [Amazon Kinesis Data Analytics for SQL 应用程序停用](discontinuation.md)。

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

# 错误处理
<a name="error-handling"></a>

Amazon Kinesis Data Analytics 会直接向您返回 API 或 SQL 错误。有关 API 操作的更多信息，请参阅[操作](API_Operations.md)。有关处理 SQL 错误的更多信息，请参阅 [Amazon Kinesis Data Analytics SQL 参考](https://docs.amazonaws.cn/kinesisanalytics/latest/sqlref/analytics-sql-reference.html)。

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



## 使用应用程序内部错误流报告错误
<a name="error-handling-errorstream"></a>

Amazon Kinesis Data Analytics 向名为 `error_stream` 的应用程序内部错误流报告运行时错误。下面是可能出现的错误的示例：
+ 从流式传输源读取的一个记录不符合输入架构。
+ 您的应用程序代码指定被零除。
+ 行顺序错误（例如，流中出现的一个记录具有 `ROWTIME` 值，一个用户修改该值后导致记录顺序错误）。
+ 源流中的数据无法转换为架构中指定的数据类型 (强制转换错误)。有关可转换的数据类型的信息，请参阅[将 JSON 数据类型映射到 SQL 数据类型](sch-mapping.md#sch-mapping-datatypes)。

建议以编程方式在 SQL 代码中处理这些错误或将错误流上的数据永久保存到外部目标。这需要将输出配置添加到您的应用程序 (请参阅[配置应用程序输出](how-it-works-output.md))。要查看应用程序内错误流工作方式的示例，请参阅[示例：探索应用程序内部错误流](app-explore-error-stream.md)。

**注意**  
由于错误流是使用系统账户创建的，因此，Kinesis Data Analytics 应用程序无法以编程方式访问或修改错误流。必须使用错误输出来确定应用程序可能遇到的错误。然后，编写应用程序的 SQL 代码来处理预期的错误情况。

### 错误流架构
<a name="error-handling-errorstream-schema"></a>

错误流具有以下架构：


****  

|  |  |  | 
| --- |--- |--- |
| *字段* | *数据类型* | *备注* | 
| ERROR\$1TIME | TIMESTAMP | 错误出现的时间 | 
| ERROR\$1LEVEL | VARCHAR(10) |  | 
| ERROR\$1NAME | VARCHAR(32) |  | 
| MESSAGE | VARCHAR(4096) |  | 
| DATA\$1ROWTIME | TIMESTAMP | 传入记录的行时间 | 
| DATA\$1ROW | VARCHAR(49152) |  原始行中的十六进制编码数据。您可以使用标准库对此值进行十六进制解码，也可以使用 Web 资源，如 [Hex to String Converter](http://string-functions.com/hex-string.aspx)。 | 
| PUMP\$1NAME | VARCHAR(128) |  利用 `CREATE PUMP` 定义的原始泵 | 