

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

# 在中配置存储设置 Amazon IoT SiteWise
<a name="configure-storage"></a>

您可以配置存储设置，以启用服务托管的温层存储，并将数据复制到冷层。要详细了解温层和热层的保留期，请参阅[数据留存的影响](#retention-period)。配置存储设置时，请执行以下操作：
+  **热层保留** — 设置保留期，规定数据在删除之前在热层中存储多长时间，然后根据您的存储设置将其移至服务托管的温层存储或冷层存储。 Amazon IoT SiteWise 将删除在保留期结束之前存在的热门层中的所有数据。如果未设置保留期，则数据将无限期存储在热层中。
+  **热层保留** — 设置保留期，规定您的数据在从存储中删除并移至客户管理的冷层 Amazon IoT SiteWise 存储之前在温层中存储多长时间。 Amazon IoT SiteWise 从保留期结束之前存在的暖层中删除所有数据。如果未设置保留期，则数据将无限期存储在温层中。

**注意**  
要提高查询性能，请使用温层存储设置热层保留期。

## 数据留存在热层和温层存储中的影响
<a name="retention-period"></a>
+  缩短热层存储的保留期时，数据将从热层永久迁移到温层或冷层。缩短温层的保留期时，数据将移至冷层，并从温层中永久删除。
+  当您延长热层或温层存储的保留期时，更改会影响 Amazon IoT SiteWise 从那时起发送到的数据。 Amazon IoT SiteWise 不会从温存储或冷存储中检索数据以填充热层。例如，如果热层存储的保留期最初设置为 30 天，然后增加到 60 天，则热层存储需要 30 天才能包含 60 天的数据。

**Topics**
+ [

## 数据留存在热层和温层存储中的影响
](#retention-period)
+ [

## 为温层配置存储设置（控制台）
](#configure-storage-console-warm)
+ [

## 为温层配置存储设置（Amazon CLI）
](#configure-storage-cli-warm)
+ [

## 配置冷层的存储设置（控制台）
](#configure-storage-console)
+ [

## 为冷层配置存储设置（Amazon CLI）
](#configure-storage-cli)

## 为温层配置存储设置（控制台）
<a name="configure-storage-console-warm"></a>

以下过程向您展示如何在 Amazon IoT SiteWise 控制台中配置存储设置以将数据复制到温层。

**若要配置控制台中的存储设置**

1. 导航至 [Amazon IoT SiteWise 控制台](https://console.amazonaws.cn/iotsitewise/)。

1. 在导航窗格中的**设置**下，选择**存储**。

1. 在右上角，选择 **编辑**。

1. 在**编辑存储**页面中，执行以下操作：

1. 对于**热层设置**，执行以下操作：
   + 如果要在数据被删除并迁移至服务托管的温层存储中前，为数据在热层中的存储时间设置保留期，请选择**启用保留期**。
   +  要配置保留期，请输入整数并选择单位。保留期必须大于或等于 30 天。

   Amazon IoT SiteWise 删除热门层中所有早于保留期的数据。如果未设置保留期，则数据将无限期存储。

1. （推荐）对于**温层设置**，请执行以下操作：
   + 要选择加入温层存储，请选择**我确认选择加入温层存储**，选择加入温层存储。
   +  （可选）要配置保留期，请输入一个整数并选择单位。保留期必须大于或等于 365 天。

   Amazon IoT SiteWise 删除在保留期之前存在的温层中的数据。如果未设置保留期，则数据将无限期存储。
**注意**  
当您选择使用温层时，配置仅显示一次。
要设置热层保留期，您必须有温层或冷层存储。为了提高成本效益和检索历史数据， Amazon IoT SiteWise 建议您将长期数据存储在温层。
要设置温层保留，您必须有冷层存储。

1. 选择**保存**以保存您的存储设置。

在 **Amazon IoT SiteWise 存储**部分中，**温层存储**处于以下状态之一：
+ **已启用** - 如果您的数据在热层保留期之前就已存在，则 Amazon IoT SiteWise 会将数据移至温层。
+ **已禁用** – 温层存储已禁用。

## 为温层配置存储设置（Amazon CLI）
<a name="configure-storage-cli-warm"></a>

您可以使用 Amazon CLI 和以下命令配置存储设置以将数据移动到温层。

为防止覆盖现有配置，请运行以下命令来检索当前的存储配置信息：

```
aws iotsitewise describe-storage-configuration
```

**Example 无现有冷层配置的响应**  

```
{
          "storageType": "SITEWISE_DEFAULT_STORAGE",
          "disassociatedDataStorage": "ENABLED",
          "configurationStatus": {
              "state": "ACTIVE"
          },
          "lastUpdateDate": "2021-10-14T15:53:35-07:00",
          "warmTier": "DISABLED"
}
```

**Example 包含现有冷层配置的响应**  

```
{             
      "storageType": "MULTI_LAYER_STORAGE",
          "multiLayerStorage": {
            "customerManagedS3Storage": {
            "s3ResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/",
            "roleArn": "arn:aws:iam::aws-account-id:role/role-name"
            }
          },
      "disassociatedDataStorage": "ENABLED",
      "retentionPeriod": {
      "numberOfDays": retention-in-days
      },
       "configurationStatus": {
       "state": "ACTIVE"
      },
      "lastUpdateDate": "2023-10-25T15:59:46-07:00",
      "warmTier": "DISABLED"
}
```

### 使用配置暖层的存储设置 Amazon CLI
<a name="configure-storage-cli-warm-tier"></a>

要配置存储设置，请运行以下命令。`file-name`替换为包含 Amazon IoT SiteWise 存储配置的文件的名称。

```
aws iotsitewise put-storage-configuration --cli-input-json file://file-name.json
```

**Example Amazon IoT SiteWise 带热层和温层的配置**  

```
{
             "storageType": "SITEWISE_DEFAULT_STORAGE",
             "disassociatedDataStorage": "ENABLED",
             "warmTier": "ENABLED",
             "retentionPeriod": {
                "numberOfDays": hot-tier-retention-in-days
              } 
              
}
```
`hot-tier-retention-in-days` 必须是大于或等于 30 天的整数。

**Example 响应**  

```
{
             "storageType": "SITEWISE_DEFAULT_STORAGE",
             "configurationStatus": {
             "state": "UPDATE_IN_PROGRESS"
             }
}
```

如果您启用了冷层存储，请参阅[使用 Amazon CLI 和现有冷层配置存储设置](#configure-storage-cli-existing-cold)。

### 使用 Amazon CLI 和现有冷层配置存储设置
<a name="configure-storage-cli-existing-cold"></a>

**使用 Amazon CLI 现有冷层存储配置存储设置**
+ 要配置存储设置，请运行以下命令。将 *file-name* 替换为包含 Amazon IoT SiteWise 存储配置的文件的名称。

  ```
  aws iotsitewise put-storage-configuration --cli-input-json file://file-name.json
  ```  
**Example Amazon IoT SiteWise 存储配置**  
  + 将 *amzn-s3-demo-bucket* 替换为您的 Amazon S3 桶名称。
  + *prefix*替换为您的 Amazon S3 前缀。
  + *aws-account-id*替换为您的 Amazon 账户 ID。
  + *role-name*替换为允许 Amazon IoT SiteWise 向 Amazon S3 发送数据的 Amazon S3 访问角色的名称。
  + *hot-tier-retention-in-days*替换为大于或等于 30 天的整数。
  + *warm-tier-retention-in-days*替换为大于或等于 365 天的整数。
**注意**  
Amazon IoT SiteWise 将删除温层中所有早于冷层保留期的数据。如果未设置保留期，则数据将无限期存储。

  ```
  {
        "storageType": "MULTI_LAYER_STORAGE",
          "multiLayerStorage": {
            "customerManagedS3Storage": {
                "s3ResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/",
                "roleArn": "arn:aws:iam::aws-account-id:role/role-name"
                }
            },
      "disassociatedDataStorage": "ENABLED",
      "retentionPeriod": {
        "numberOfDays": hot-tier-retention-in-days
      },
      "warmTier": "ENABLED",
      "warmTierRetentionPeriod": {
        "numberOfDays": warm-tier-retention-in-days
      }
  }
  ```  
**Example 响应**  

  ```
  {
        "storageType": "MULTI_LAYER_STORAGE",
        "configurationStatus": {
          "state": "UPDATE_IN_PROGRESS"
         }
  }
  ```

## 配置冷层的存储设置（控制台）
<a name="configure-storage-console"></a>

以下过程向您展示如何在 Amazon IoT SiteWise 控制台中配置存储设置以将数据复制到冷层。

**若要配置控制台中的存储设置**

1. 导航至 [Amazon IoT SiteWise 控制台](https://console.amazonaws.cn/iotsitewise/)。

1. 在导航窗格中的**设置**下，选择**存储**。

1. 在右上角，选择 **编辑**。

1. 在**编辑存储**页面中，执行以下操作：

   1. 对于 **存储设置**，选择 **启用冷层存储**。默认情况下，冷层存储处于禁用状态。

   1. 对于 **S3 存储桶位置**，输入现有 Amazon S3 存储桶的名称和前缀。
**注意**  
Amazon S3 使用前缀作为 Amazon S3 存储桶中的文件夹名称。前缀必须包含 1-255 个字符，并以正斜杠 (/) 结尾。您的 Amazon IoT SiteWise 数据将保存在此文件夹中。
如果您没有 Amazon S3 存储桶，请选择 **查看**，然后在 Amazon S3 控制台中创建一个存储桶。有关更多信息，请参阅 *Amazon S3 用户指南*中的[创建您的第一个 S3 存储桶](https://docs.amazonaws.cn/AmazonS3/latest/userguide/GetStartedWithS3.html#creating-bucket)。

   1. 对于 **S3 访问角色**，执行下列操作之一：
      + 选择**从 Amazon 托管模板创建角色**， Amazon 自动创建允许向 Amazon S3 Amazon IoT SiteWise 发送数据的 IAM 角色。
      + 选择**使用现有角色**，然后从列表中选择您创建的角色。
**注意**  
您必须对 **S3 存储桶位置**使用与您在上一步和 IAM Policy 中使用的相同的 Amazon S3 存储桶名称。
确保您的角色具有以下示例中显示的权限。  

**Example 权限策略：**    
****  

          ```
          {
                "Version":"2012-10-17",		 	 	 
                "Statement": [
                    {
                        "Effect": "Allow",
                        "Action": [
                            "s3:PutObject",
                            "s3:GetObject",
                            "s3:DeleteObject",
                            "s3:GetBucketLocation",
                            "s3:ListBucket"
                        ],
                        "Resource": [
                            "arn:aws:s3:::amzn-s3-demo-bucket",
                            "arn:aws:s3:::amzn-s3-demo-bucket/*"
                        ]
                    }
                ]
            }
          ```
将 amzn-s3-demo-bucket 替换为您的 Amazon S3 存储桶的名称。
 如果使用客户托管的 KMS 密钥对 Amazon S3 存储桶进行加密，那么 KMS 密钥必须具有访问策略，该策略必须具有 IAM 角色`kms:Decrypt`和`kms:GenerateDataKey`操作。

   1. 要设置热层，请参阅[为温层配置存储设置（控制台）](#configure-storage-console-warm)中的步骤 5。

   1. （可选）对于 **Amazon IoT Analytics 集成**，请执行以下操作。
**注意**  
终止支持通知： 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)。

      1. 如果要使用 Amazon IoT Analytics 来查询数据，请选择**已启用 Amazon IoT Analytics 数据存储**。

      1. Amazon IoT SiteWise 为您的数据存储生成一个名称，也可以输入其他名称。

      Amazon IoT SiteWise 自动在中创建数据存储 Amazon IoT Analytics 以保存您的数据。要查询数据，您可以使用 Amazon IoT Analytics 创建数据集。有关更多信息，请参阅《*Amazon IoT Analytics 用户指南》*中的[使用 Amazon IoT SiteWise 数据](https://docs.amazonaws.cn/iotanalytics/latest/userguide/dataset-itsw.html)。

   1. 选择**保存**。

在 **Amazon IoT SiteWise 存储**部分中，**冷层存储**可以是以下值之一：
+ **已启用**- Amazon IoT SiteWise 将您的数据复制到指定的 Amazon S3 存储桶。
+ **启用**- Amazon IoT SiteWise 正在处理您的启用冷层存储的请求。此过程可能需要几分钟才能完成。
+ **Enable\$1Failed — Amazon IoT SiteWise 无法**处理您的启用冷层存储的请求。如果您启用 Amazon IoT SiteWise 向 Amazon Logs 发送 CloudWatch 日志，则可以使用这些日志来解决问题。有关更多信息，请参阅 [使用 Amazon CloudWatch 日志进行监控](monitor-cloudwatch-logs.md)。
+ **已禁用** – 冷层存储已禁用。

## 为冷层配置存储设置（Amazon CLI）
<a name="configure-storage-cli"></a>

以下过程演示如何配置存储设置以使用 Amazon CLI将数据复制到冷层。

**要使用配置存储设置 Amazon CLI**

1. 要将数据导出到您账户中的 Amazon S3 存储桶，请运行以下命令以配置存储设置。*file-name*替换为包含 Amazon IoT SiteWise 存储配置的文件的名称。

   ```
   aws iotsitewise put-storage-configuration --cli-input-json file://file-name.json
   ```  
**Example Amazon IoT SiteWise 存储配置**  
   + 将 *amzn-s3-demo-bucket* 替换为您的 Amazon S3 桶名称。
   + *prefix*替换为您的 Amazon S3 前缀。
   + *aws-account-id*替换为您的 Amazon 账户 ID。
   + *role-name*替换为允许 Amazon IoT SiteWise 向 Amazon S3 发送数据的 Amazon S3 访问角色的名称。
   + *retention-in-days*替换为大于或等于 30 天的整数。

   ```
   {
         "storageType": "MULTI_LAYER_STORAGE",
         "multiLayerStorage": {
             "customerManagedS3Storage": {
                 "s3ResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/",
                 "roleArn": "arn:aws:iam::aws-account-id:role/role-name"
             }
         }, 
         "retentionPeriod": { 
             "numberOfDays": retention-in-days,
             "unlimited": false
         }
     }
   ```
**注意**  
您必须在存储配置和 IAM 策略中使用相同的 Amazon S3 Amazon IoT SiteWise 存储桶名称。
确保您的角色具有以下示例中显示的权限。  

**Example 权限策略：**    
****  

     ```
     {
           "Version":"2012-10-17",		 	 	 
           "Statement": [
               {
                   "Effect": "Allow",
                   "Action": [
                       "s3:PutObject",
                       "s3:GetObject",
                       "s3:DeleteObject",
                       "s3:GetBucketLocation",
                       "s3:ListBucket"
                   ],
                   "Resource": [
                       "arn:aws:s3:::amzn-s3-demo-bucket",
                       "arn:aws:s3:::amzn-s3-demo-bucket/*"
                   ]
               }
           ]
       }
     ```
将 amzn-s3-demo-bucket 替换为您的 Amazon S3 存储桶的名称。
 如果使用客户托管的 KMS 密钥对 Amazon S3 存储桶进行加密，那么 KMS 密钥必须具有访问策略，该策略必须具有 IAM 角色`kms:Decrypt`和`kms:GenerateDataKey`操作。  
**Example 响应**  

   ```
   {
       "storageType": "MULTI_LAYER_STORAGE",
       "retentionPeriod": {
           "numberOfDays": 100,
           "unlimited": false
       },
       "configurationStatus": {
           "state": "UPDATE_IN_PROGRESS"
       }
   }
   ```
**注意**  
更新存储配置可能需要几分钟。 Amazon IoT SiteWise 

1. 若要检索存储配置信息，请运行以下命令。

   ```
   aws iotsitewise describe-storage-configuration
   ```  
**Example 响应**  

   ```
   {
         "storageType": "MULTI_LAYER_STORAGE",
         "multiLayerStorage": {
             "customerManagedS3Storage": {
                 "s3ResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket/torque/",
                 "roleArn": "arn:aws:iam::123456789012:role/SWAccessS3Role"
             }
         },
         "retentionPeriod": { 
             "numberOfDays": 100,
             "unlimited": false
         },
         "configurationStatus": {
             "state": "ACTIVE"
         },
         "lastUpdateDate": "2021-03-30T15:54:14-07:00"
     }
   ```

1. 要停止将数据导出到 Amazon S3 存储桶，请运行以下命令以配置存储设置。

   ```
   aws iotsitewise put-storage-configuration --storage-type SITEWISE_DEFAULT_STORAGE
   ```
**注意**  
默认情况下，您的数据仅存储在热门层中 Amazon IoT SiteWise。  
**Example 响应**  

   ```
   {
         "storageType": "SITEWISE_DEFAULT_STORAGE",
         "configurationStatus": {
             "state": "UPDATE_IN_PROGRESS"
         }
     }
   ```

1. 若要检索存储配置信息，请运行以下命令。

   ```
   aws iotsitewise describe-storage-configuration
   ```  
**Example 响应**  

   ```
   {
         "storageType": "SITEWISE_DEFAULT_STORAGE",
         "configurationStatus": {
             "state": "ACTIVE"
         },
         "lastUpdateDate": "2021-03-30T15:57:14-07:00"
     }
   ```

### （可选）创建 Amazon IoT Analytics 数据存储 (Amazon CLI)
<a name="create-iotanalytics-data-store-cli"></a>

**注意**  
终止支持通知： 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)。

 Amazon IoT Analytics 数据存储是一种可扩展且可查询的存储库，用于接收和存储数据。您可以使用 Amazon IoT SiteWise 控制台或 Amazon IoT Analytics APIs 创建 Amazon IoT Analytics 数据存储来保存 Amazon IoT SiteWise 数据。要查询数据，请使用创建数据集 Amazon IoT Analytics。有关更多信息，请参阅*《Amazon IoT Analytics 用户指南》*中的[使用 Amazon IoT SiteWise 数据](https://docs.amazonaws.cn/iotanalytics/latest/userguide/dataset-itsw.html)。

以下步骤 Amazon CLI 用于在中创建数据存储 Amazon IoT Analytics。

若要创建数据集，运行以下命令。*file-name*替换为包含数据存储配置的文件的名称。

```
aws iotanalytics create-datastore --cli-input-json file://file-name.json
```

**注意**  
您必须指定现有 Amazon S3 存储桶的名称。如果没有 Amazon S3 存储桶，请先创建一个。有关更多信息，请参阅 *Amazon S3 用户指南*中的[创建您的第一个 S3 存储桶](https://docs.amazonaws.cn/AmazonS3/latest/userguide/GetStartedWithS3.html#creating-bucket)。
您必须在存储配置、IAM 策略和 Amazon IoT Analytics 数据 Amazon IoT SiteWise 存储配置中使用相同的 Amazon S3 存储桶名称。

**Example Amazon IoT Analytics 数据存储配置**  
将*data-store-name*和*amzn-s3-demo-bucket*替换为您的 Amazon IoT Analytics 数据存储名称和 Amazon S3 存储桶名称。  

```
{
      "datastoreName": "data-store-name",
      "datastoreStorage": {
          "iotSiteWiseMultiLayerStorage": {
              "customerManagedS3Storage": {
                  "bucket": "amzn-s3-demo-bucket"
              }
          }
      },
      "retentionPeriod": {
          "numberOfDays": 90
      }
  }
```

**Example 响应**  

```
{
      "datastoreName": "datastore_IoTSiteWise_demo",
      "datastoreArn": "arn:aws:iotanalytics:us-west-2:123456789012:datastore/datastore_IoTSiteWise_demo",
      "retentionPeriod": {
          "numberOfDays": 90,
          "unlimited": false
      }
  }
```