

终止支持通知： Amazon 将于 2025 年 12 月 15 日终止对的支持 Amazon IoT Analytics。2025 年 12 月 15 日之后，您将无法再访问 Amazon IoT Analytics 控制台或 Amazon IoT Analytics 资源。有关更多信息，请参阅[Amazon IoT Analytics 终止支持](https://docs.amazonaws.cn/iotanalytics/latest/userguide/iotanalytics-end-of-support.html)。

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

# 重新处理通道消息
<a name="reprocessing"></a>

Amazon IoT Analytics 使您能够重新处理频道数据。这在以下情况下很有用：
+ 您希望重放现有已提取的数据，而不是重新开始。
+ 您对管道进行了更新，并希望将现有数据 up-to-date与更改一起使用。
+ 您希望包含在更改客户托管存储选项、通道权限或数据存储之前提取的数据。

## 参数
<a name="reprocess-parameters"></a>

使用通过管道重新处理频道消息时 Amazon IoT Analytics，必须指定以下信息：

`StartPipelineReprocessing`  
启动通过管道重新处理通道消息。    
`ChannelMessages`  
指定要重新处理的一组或多组通道消息。  
如果使用 `channelMessages` 对象，则不得为 `startTime` 和 `endTime` 指定值。    
`s3Paths`  
指定一个或多个密钥，用于标识保存通道消息的 Amazon Simple Storage Service (Amazon S3)对象。您必须使用该密钥的完整路径。  
路径示例：`00:00:00/1582940490000_1582940520000_123456789012_mychannel_0_2118.0.json.gz`  
类型：字符串数组  
数组成员限制：1-100 项。  
长度限制：1-1024 个字符。  
`endTime`  
重新处理的通道数据的结束时间 (不含)。  
如果为 `endTime` 参数指定值，则不得使用 `channelMessages` 对象。  
类型：时间戳  
`startTime`  
重新处理的原始消息数据的开始时间 (含)。  
如果为 `startTime` 参数指定值，则不得使用 `channelMessages` 对象。  
类型：时间戳

`pipelineName`  
要开始重新处理的管道的名称。  
类型：字符串  
长度限制：1-128 个字符。

## 重新处理通道消息（控制台）
<a name="reprocessing-console"></a>

本教程向您展示如何在 Amazon IoT Analytics 控制台中重新处理存储在指定 Amazon S3 对象中的频道数据。

在开始之前，请确保将要重新处理的通道消息保存在客户托管的 Amazon S3 存储桶中。

1. 登录 [Amazon IoT Analytics 控制台](https://console.amazonaws.cn/iotanalytics/)。

1. 在导航窗格中，选择**管道**。

1. 选择您的目标管道。

1. 从**操作**中选择**重新处理消息**。

1. 在**管道重新处理**页面上，为**重新处理消息**选择 **S3 对象**。

    Amazon IoT Analytics 控制台还提供以下选项：
   + **所有可用范围** - 重新处理通道中的所有有效数据。
   + **最近 120 天** - 重新处理最近 120 天到达的数据。
   + **最近 90 天** - 重新处理最近 90 天到达的数据。
   + **最近 30 天** - 重新处理最近 30 天到达的数据。
   + **自定义范围** - 重新处理在指定时间范围内到达的数据。您可以选择任何时间范围。

1. 输入用于存储通道消息的 Amazon S3 对象的密钥。

   要查找密钥，请执行以下操作：

   1. 前往 [Amazon S3 控制台](https://console.amazonaws.cn/s3/)。

   1. 选择目标 Amazon S3 对象。

   1. 在**属性**下的**对象概述**部分中，复制密钥。

1. 选择**开始重新处理**。

## 重新处理通道消息(API)
<a name="reprocessing-api"></a>

在使用 `StartPipelineReprocessing` API 时，请注意以下几点：
+ `startTime` 和 `endTime` 参数指定提取原始数据的时间，不过这些是粗略估计的时间。您可以舍入到最接近的小时。`startTime` 含本数，但 `endTime` 不含本数。
+ 该命令异步启动重新处理并立即返回。
+ 不保证重新处理消息的顺序与接收时的顺序相同。这大致相同，但不完全一致。
+ 每 24 小时最多可发出 1000 个 `StartPipelineReprocessing` API 请求，用于通过管道重新处理相同的通道消息。
+ 重新处理原始数据将产生额外的费用。

有关更多信息，请参阅 [StartPipelineReprocessing](https://docs.amazonaws.cn/iotanalytics/latest/APIReference/API_StartPipelineReprocessing.html)API *参考中的Amazon IoT Analytics API*。

## 取消通道重新处理活动
<a name="cancel-reprocessing"></a>

要取消管道再处理活动，请使用 [CancelPipelineReprocessing](https://docs.amazonaws.cn/iotanalytics/latest/APIReference/API_CancelPipelineReprocessing.html)API 或在控制台的 “**活动**” 页面上选择 “**取消重新处理**”。 Amazon IoT Analytics 如果取消重新处理，则不会重新处理剩余的数据。您必须启动另一个重新处理请求。

使用 [DescribePipeline](https://docs.amazonaws.cn/iotanalytics/latest/APIReference/API_DeletePipeline.html)API 检查重新处理的状态。参阅响应中的 `reprocessingSummaries` 字段。