

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

# 添加 AWS IoT SiteWise Edge 实时目的地
<a name="destinations-real-time"></a>

实时目标类型使您能够将物联网数据直接从设备和网关实时流式传输到 AWS IoT SiteWise 存储中。此选项非常适合需要在生成数据时立即摄取和处理数据，而无需进行批处理或缓冲的用例。您只能在每个网关中配置一个实时目的地，因为它会持续向其传输数据 AWS IoT SiteWise。

**注意**  
重复 TQVs 可能会导致双重充电。

**添加实时目的地**

使用 AWS IoT SiteWise 控制台或 AWS CLI 向支持 SiteWise Edge MQTT 的网关添加实时目的地。

------
#### [ Console ]

1. 打开 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. 在导航窗格中，选择 **Edge 网关**。

1. 选择要向其添加目的地的网关。

1. 在 “**目的地**” 部分中，选择**添加目的地**。

1. 在**添加目的地**页面上，输入**目的地详细信息**：

   1. 目的地名称字段中的**目的地名称**。

   1. 为**目标类型**选择**AWS IoT SiteWise 实时**。

1. 通过将发布顺序设置为 “先**发布**旧数据” 或 “先发布最新数据****” 来配置网关发布**顺**序。默认情况下，网关会先发布最旧的数据。

1. 使用**最大批处理等待时间**来设置发布者在向其发送批量数据之前等待的最长时间 AWS IoT SiteWise。此设置适用于每个别名。数据存储在本地，直到：
   + 设定的时间已过，或者
   + 已收到别名的 10 个 time-quality-value (TQV) 条目

   无论先满足哪个条件，都会触发将批次发送到云端。

1. 要压缩上传的数据，请选中 “**上传数据时激活压缩**” 复选框。让网关在将您的数据上传到云端之前对其进行压缩，可以减少带宽使用量。

1. 要筛选出过期的发布者数据，请选中 “**排除过期数据**” 复选框。此选择仅向发送活动和当前数据 AWS IoT SiteWise。

1. 在**截止时间段**字段中，输入数据集中应视为过期数据的频率。您可以确定数据是以分钟还是天为单位进行计数。最短截止时间为五分钟。最长截止期为七天。

1. （可选）配置**本地存储设置**：

   1. 设置**保留期**频率-网关在本地存储超过截止期限的数据的时间。最短保留期为一分钟。

      最长保留期为 30 天，且大于或等于轮换期。

   1. 设置**轮换周期**-保存超过单个文件截止时间段的数据时要指定的时间间隔。网关在每个轮换期结束时将一批数据传输到以下本地目录：`/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`。

      保留时间必须大于一分钟，且等于保留期。

   1. 提供**存储容量 (GB)** 值以设置本地存储的最大数据大小（以 GB 为单位）。如果数据超过确定的最大本地存储大小，网关将首先开始删除最旧的数据。网关会继续删除，直到本地存储的数据大小等于或小于配额。

      存储容量必须大于或等于 1 GB。

1. 为您的目的地添加路径过滤器。有关更多信息，请参阅[向 AWS IoT SiteWise Edge 目标添加路径过滤器](destinations-add-path-filters.md)。

有关更多信息，请参阅 [目标类型](gw-destinations.md#destination-types)。

------
#### [ AWS CLI ]

**Example : 创建新的 AWS IoT SiteWise 实时目的地**  
使用 [UpdateGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateGatewayCapabilityConfiguration.html)API 配置发布者。  
将 `capabilityNamespace` 参数设置为 `iotsitewise:publisher:3`。  

```
{
    "sources": [
        {
            "type": "MQTT"
        }
    ],
    "destinations": [
        {
            "type": "SITEWISE_REALTIME",
            "name": "your-destination-name",
            "config": {
                "publishingOrder": "TIME_ORDER",
                "enableCompression": true,
                "maxBatchWaitTime": "10s"
            },
            "filters": [
                {
                    "type": "PATH",
                    "config": {
                        "paths": [
                            "#"
                        ]
                    }
                }
            ]
        }
    ]
}
```

要更新现有的 AWS IoT SiteWise 实时目的地，请先使用 `DescribeGatewayCapabilityConfiguration` API 查找`destinationId`。

**Example : 更新 AWS IoT SiteWise 实时目的地**  
使用 [UpdateGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateGatewayCapabilityConfiguration.html)API 配置发布者。  
将 `capabilityNamespace` 参数设置为 `iotsitewise:publisher:3`。  

```
{
    "sources": [
        {
            "type": "MQTT"
        }
    ],
    "destinations": [
        {
            "id": "your-existing-destination-id",
            "type": "SITEWISE_REALTIME",
            "name": "your-destination-name",
            "config": {
                "publishingOrder": "TIME_ORDER",
                "enableCompression": true,
                "dropPolicy": {
                    "cutoffAge": "7d",
                    "exportPolicy": {
                        "retentionPeriod": "7d",
                        "rotationPeriod": "6h",
                        "exportSizeLimitGB": 10
                    }
                },
                "maxBatchWaitTime": "10s"
            },
            "filters": [
                {
                    "type": "PATH",
                    "config": {
                        "paths": [
                            "#"
                        ]
                    }
                }
            ]
        }
    ]
}
```

以下配置选项特定于使用`iotsitewise:publisher:3`命名空间的网关。

`sources`  
定义要将数据从工业设备传输到的数据源 AWS IoT SiteWise。对于支持 MQTT 的网关，请使用。`MQTT`  
类型： 对象数组  
是否必需：是

`destinations`  
定义向何处发送数据。目的地要么是实时的，要么是使用 Amazon S3 进行缓冲的。至少需要一个目标对象，但你可以添加一个空数组。每个网关可以有一个实时目的地。有关更多信息，请参阅 [了解 AWS IoT SiteWise 边缘目的地](gw-destinations.md#source-destination)。  
类型： 对象数组  
是否必需：是    
`id`  
目的地的唯一标识符。您可以提供现有的目的地 ID，也可以将其留空。如果您未指定 ID，则默认情况下会生成 UUID。  
类型：字符串  
必需：否  
`type`  
目标类型。选项包括：`SITEWISE_REALTIME`和`SITEWISE_BUFFERED`。  
+ `SITEWISE_REALTIME`— 实时将数据直接发送到 AWS IoT SiteWise 存储器。
+ `SITEWISE_BUFFERED`— 以 Parquet 格式将数据批量发送到 Amazon S3，然后导入 AWS IoT SiteWise 存储。
类型：字符串  
是否必需：是  
`name`  
目的地的唯一名称。  
类型：字符串  
是否必需：是  
`config`  
特定于目标类型的配置，采用 JSON 格式。配置因实时目的地和缓冲目的地而异。  
类型：对象  
是否必需：是    
发布顺序  
确定数据的发布顺序。数据根据其时间戳发布。选项包括`TIME_ORDER`和`RECENT_DATA`。  
+ `TIME_ORDER`（默认）-先发布较旧的数据。
+ `RECENT_DATA`— 首先发布最新数据。
类型：字符串  
必需：否  
启用压缩  
如果设置为`true`，则在将数据发送到之前启用数据压缩 AWS IoT SiteWise。让网关在将您的数据上传到云端之前对其进行压缩，可以减少带宽使用量。默认值为 `true`。  
类型：布尔值  
必需：否  
丢弃政策  
定义如何处理较旧的数据。  
类型： 对象  
必需：否  
+ `cutoffAge`

  要发布的数据的最大期限，以天、小时和分钟为单位指定。例如，`7d` 或 `1d7h16m`。不会将早于您指定时间的数据发送到 AWS IoT SiteWise。

  早于截止期的数据不会发布到云端。截止期必须介于 5 分钟到 7 天之间。

  当您指定截止期时，可以使用 `m`、`h` 和 `d`。请注意，`m` 表示分钟，`h` 表示小时，`d` 表示天。

  类型：字符串

  是否必需：是
+ `exportPolicy`

  定义如何处理超过截止时间的数据。

  类型：对象

  必需：否
  + `retentionPeriod`

    您的 SiteWise Edge 网关在存储指定保留期后，会从本地存储中删除所有早于截止期限的数据。保留期必须介于 1 分钟到 30 天之间，且大于或等于轮换期。

    当您指定保留期时，可以使用 `m`、`h` 和 `d`。请注意，`m` 表示分钟，`h` 表示小时，`d` 表示天。

    类型：字符串

    必需：否
  + `rotationPeriod`

    将早于截止期的数据进行批处理和保存至单个文件的时间间隔。 SiteWise Edge 网关在每个轮换周期结束时将一批数据传输到以下本地目录:`/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`. 轮换期必须多于 1 分钟，且等于或小于保留期。

    当您指定轮换期时，可以使用 `m`、`h` 和 `d`。请注意，`m` 表示分钟，`h` 表示小时，`d` 表示天。

    类型：字符串

    必需：否
  + `exportSizeLimitGB`

    允许存储在本地的数据最大以 GB 为单位。如果超过此配额， SiteWise Edge 网关会开始删除最早的数据，直到本地存储的数据大小等于或小于配额。该参数值必须大于或等于 1。

    类型：整数

    必需：否  
`maxBatchWaitTime`  
设置发布者在向其发送批量数据之前等待的最长时间 AWS IoT SiteWise。此设置适用于每个别名。数据存储在本地，直到：  
+ 设定的时间已过，或者 
+ 已收到别名的 10 个 time-quality-value (TQV) 条目
使用`m``h`、和`d`来指定截止时间。请注意，`m` 表示分钟，`h` 表示小时，`d` 表示天。  
类型：字符串  
必需：否

`filters`  
要应用于数据的筛选器。至少需要一个过滤器。  
类型：字符串  
是否必需：是    
`type`  
过滤器的类型。使用 `PATH`。  
类型：字符串  
是否必需：是  
`config`  
特定于过滤器类型的配置，采用 JSON 格式。至少需要一个对象，但数组可以为空。  
类型：对象  
是否必需：是  
+ `paths`

  路径过滤器数组。有关更多信息，请参阅 [了解 AWS IoT SiteWise Edge 目标的路径过滤器了解路径筛选条件](gw-destinations.md#destinations-path-filters)。默认路径为 `#`。

  类型：字符串数组

  是否必需：是

------