对于新项目,我们建议您使用新的 Kinesis Data Analytics 工作室,而不是 SQL 应用程序的 Kinesis Data Analytics。Kinesis Data Analytics Studio 将易用性与高级分析功能相结合,使您能够在几分钟内构建复杂的流处理应用程序。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
示例:探索应用程序内部错误流
Amazon Kinesis Data Analytics 为您创建的每个应用程序提供应用程序内错误流。应用程序无法处理的所有行将发送到此错误流。您可以考虑将错误流数据保存到外部目标以便于调查。
您将在控制台中执行以下练习。在这些示例中,您将通过编辑由发现过程推断的架构将错误引入输入配置中,然后验证已发送到错误流的行。
引入分析错误
在本练习中,您引入了分析错误。
-
按照 Kinesis 数据分析入门练习中的说明创建 Kinesis Data Analytics 应用程序。
-
在应用程序详细信息页面上,选择 Connect streaming data (连接流数据)。
-
如果已完成入门练习,则账户中会有一个演示流 (
kinesis-analytics-demo-stream)。在 Connect to source (连接到源) 页面上,选择此演示流。 -
Kinesis Data Analytics 从演示流中提取样本,以推断其创建的应用程序内输入流的架构。控制台在 Formatted stream sample 选项卡中显示推断的架构和示例数据。
-
接下来,可以编辑架构并修改列类型以引入分析错误。选择 Edit schema。
-
将
TICKER_SYMBOL列类型从VARCHAR(4)更改为INTEGER。现在创建的应用程序内架构的列类型无效,Kinesis Data Analytics 无法在应用程序内流中导入数据。而只能将行发送到错误流。
-
选择 Save schema。
-
选择 Refresh schema samples。
请注意,Formatted stream 示例中没有行。不过,Error stream 选项卡将显示数据与错误消息。Error stream 选项卡将显示已发送到应用程序内部错误流的数据。
由于您更改了列数据类型,Kinesis Data Analytics 无法将数据导入应用程序内输入流。而只能将数据发送到错误流。
引入被零除错误
在本练习中,您将更新应用程序代码以引入运行时错误 (被零除)。请注意,Amazon Kinesis Data Analytics 将生成的行发送到DESTINATION_SQL_STREAM应用程序内错误流,而不是发送到应该写入结果的应用程序内流。
-
按照 Kinesis 数据分析入门练习中的说明创建 Kinesis Data Analytics 应用程序。
验证 Real-time analytics 选项卡上的结果,如下所示:
Sour
-
在应用程序代码中更新
SELECT语句以引入被零除;例如:SELECT STREAM ticker_symbol, sector, change, (price / 0) as ProblemColumn FROM "SOURCE_SQL_STREAM_001" WHERE sector SIMILAR TO '%TECH%'; -
运行应用程序。
由于会出现除以零的运行时错误,因此 Kinesis Data Analytics 不会将结果写入到,而是将行发送到应用程序内错误流。
DESTINATION_SQL_STREAM在 Real-time analytics (实时分析) 选项卡上,选择错误流,随后应用程序内部错误流中将显示行。