在中配置存储设置 Amazon IoT SiteWise - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在中配置存储设置 Amazon IoT SiteWise

您可以配置存储设置,以启用服务托管的温层存储,并将数据复制到冷层。要详细了解温层和热层的保留期,请参阅数据留存的影响。配置存储设置时,请执行以下操作:

  • 热层保留 — 设置保留期,规定数据在删除之前在热层中存储多长时间,然后根据您的存储设置将其移至服务托管的温层存储或冷层存储。 Amazon IoT SiteWise 将删除在保留期结束之前存在的热门层中的所有数据。如果未设置保留期,则数据将无限期存储在热层中。

  • 热层保留 — 设置保留期,规定您的数据在从存储中删除并移至客户管理的冷层 Amazon IoT SiteWise 存储之前在温层中存储多长时间。 Amazon IoT SiteWise 从保留期结束之前存在的暖层中删除所有数据。如果未设置保留期,则数据将无限期存储在温层中。

注意

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

数据留存在热层和温层存储中的影响

  • 缩短热层存储的保留期时,数据将从热层永久迁移到温层或冷层。缩短温层的保留期时,数据将移至冷层,并从温层中永久删除。

  • 当您延长热层或温层存储的保留期时,更改会影响 Amazon IoT SiteWise 从那时起发送到的数据。 Amazon IoT SiteWise 不会从温存储或冷存储中检索数据以填充热层。例如,如果热层存储的保留期最初设置为 30 天,然后增加到 60 天,则热层存储需要 30 天才能包含 60 天的数据。

为温层配置存储设置(控制台)

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

若要配置控制台中的存储设置
  1. 导航至 Amazon IoT SiteWise 控制台

  2. 在导航窗格中的设置下,选择存储

  3. 在右上角,选择 编辑

  4. 编辑存储页面中,执行以下操作:

  5. 对于热层设置,执行以下操作:

    • 如果要在数据被删除并迁移至服务托管的温层存储中前,为数据在热层中的存储时间设置保留期,请选择启用保留期

    • 要配置保留期,请输入整数并选择单位。保留期必须大于或等于 30 天。

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

  6. (推荐)对于温层设置,请执行以下操作:

    • 要选择加入温层存储,请选择我确认选择加入温层存储,选择加入温层存储。

    • (可选)要配置保留期,请输入一个整数并选择单位。保留期必须大于或等于 365 天。

    Amazon IoT SiteWise 删除在保留期之前存在的温层中的数据。如果未设置保留期,则数据将无限期存储。

    注意
    • 当您选择使用温层时,配置仅显示一次。

    • 要设置热层保留期,您必须有温层或冷层存储。为了提高成本效益和检索历史数据, Amazon IoT SiteWise 建议您将长期数据存储在温层。

    • 要设置温层保留,您必须有冷层存储。

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

Amazon IoT SiteWise 存储部分中,温层存储处于以下状态之一:

  • 已启用 - 如果您的数据在热层保留期之前就已存在,则 Amazon IoT SiteWise 会将数据移至温层。

  • 已禁用 – 温层存储已禁用。

为温层配置存储设置(Amazon CLI)

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

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

aws iotsitewise describe-storage-configuration
例 无现有冷层配置的响应
{ "storageType": "SITEWISE_DEFAULT_STORAGE", "disassociatedDataStorage": "ENABLED", "configurationStatus": { "state": "ACTIVE" }, "lastUpdateDate": "2021-10-14T15:53:35-07:00", "warmTier": "DISABLED" }
例 包含现有冷层配置的响应
{ "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

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

aws iotsitewise put-storage-configuration --cli-input-json file://file-name.json
例 Amazon IoT SiteWise 带热层和温层的配置
{ "storageType": "SITEWISE_DEFAULT_STORAGE", "disassociatedDataStorage": "ENABLED", "warmTier": "ENABLED", "retentionPeriod": { "numberOfDays": hot-tier-retention-in-days } }

hot-tier-retention-in-days 必须是大于或等于 30 天的整数。

例 响应
{ "storageType": "SITEWISE_DEFAULT_STORAGE", "configurationStatus": { "state": "UPDATE_IN_PROGRESS" } }

如果您启用了冷层存储,请参阅使用 Amazon CLI 和现有冷层配置存储设置

使用 Amazon CLI 和现有冷层配置存储设置

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

    aws iotsitewise put-storage-configuration --cli-input-json file://file-name.json
    例 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 } }
    例 响应
    { "storageType": "MULTI_LAYER_STORAGE", "configurationStatus": { "state": "UPDATE_IN_PROGRESS" } }

配置冷层的存储设置(控制台)

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

若要配置控制台中的存储设置
  1. 导航至 Amazon IoT SiteWise 控制台

  2. 在导航窗格中的设置下,选择存储

  3. 在右上角,选择 编辑

  4. 编辑存储页面中,执行以下操作:

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

    2. 对于 S3 存储桶位置,输入现有 Amazon S3 存储桶的名称和前缀。

      注意
      • Amazon S3 使用前缀作为 Amazon S3 存储桶中的文件夹名称。前缀必须包含 1-255 个字符,并以正斜杠 (/) 结尾。您的 Amazon IoT SiteWise 数据将保存在此文件夹中。

      • 如果您没有 Amazon S3 存储桶,请选择 查看,然后在 Amazon S3 控制台中创建一个存储桶。有关更多信息,请参阅 Amazon S3 用户指南中的创建您的第一个 S3 存储桶

    3. 对于 S3 访问角色,执行下列操作之一:

      • 选择从 Amazon 托管模板创建角色, Amazon 自动创建允许向 Amazon S3 Amazon IoT SiteWise 发送数据的 IAM 角色。

      • 选择使用现有角色,然后从列表中选择您创建的角色。

        注意
        • 您必须对 S3 存储桶位置使用与您在上一步和 IAM Policy 中使用的相同的 Amazon S3 存储桶名称。

        • 确保您的角色具有以下示例中显示的权限。

          例 权限策略:
          { "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:Decryptkms:GenerateDataKey操作。

    4. 要设置热层,请参阅为温层配置存储设置(控制台)中的步骤 5。

    5. (可选)对于 Amazon IoT Analytics 集成,请执行以下操作。

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

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

      Amazon IoT SiteWise 自动在中创建数据存储 Amazon IoT Analytics 以保存您的数据。要查询数据,您可以使用 Amazon IoT Analytics 创建数据集。有关更多信息,请参阅《Amazon IoT Analytics 用户指南》中的使用 Amazon IoT SiteWise 数据

    6. 选择保存

Amazon IoT SiteWise 存储部分中,冷层存储可以是以下值之一:

  • 已启用- Amazon IoT SiteWise 将您的数据复制到指定的 Amazon S3 存储桶。

  • 启用- Amazon IoT SiteWise 正在处理您的启用冷层存储的请求。此过程可能需要几分钟才能完成。

  • Enable_Failed — Amazon IoT SiteWise 无法处理您的启用冷层存储的请求。如果您启用 Amazon IoT SiteWise 向 Amazon Logs 发送 CloudWatch 日志,则可以使用这些日志来解决问题。有关更多信息,请参阅 使用 Amazon CloudWatch 日志进行监控

  • 已禁用 – 冷层存储已禁用。

为冷层配置存储设置(Amazon CLI)

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

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

    aws iotsitewise put-storage-configuration --cli-input-json file://file-name.json
    例 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 存储桶名称。

    • 确保您的角色具有以下示例中显示的权限。

      例 权限策略:
      { "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:Decryptkms:GenerateDataKey操作。

    例 响应
    { "storageType": "MULTI_LAYER_STORAGE", "retentionPeriod": { "numberOfDays": 100, "unlimited": false }, "configurationStatus": { "state": "UPDATE_IN_PROGRESS" } }
    注意

    更新存储配置可能需要几分钟。 Amazon IoT SiteWise

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

    aws iotsitewise describe-storage-configuration
    例 响应
    { "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" }
  3. 要停止将数据导出到 Amazon S3 存储桶,请运行以下命令以配置存储设置。

    aws iotsitewise put-storage-configuration --storage-type SITEWISE_DEFAULT_STORAGE
    注意

    默认情况下,您的数据仅存储在热门层中 Amazon IoT SiteWise。

    例 响应
    { "storageType": "SITEWISE_DEFAULT_STORAGE", "configurationStatus": { "state": "UPDATE_IN_PROGRESS" } }
  4. 若要检索存储配置信息,请运行以下命令。

    aws iotsitewise describe-storage-configuration
    例 响应
    { "storageType": "SITEWISE_DEFAULT_STORAGE", "configurationStatus": { "state": "ACTIVE" }, "lastUpdateDate": "2021-03-30T15:57:14-07:00" }

(可选)创建 Amazon IoT Analytics 数据存储 (Amazon CLI)

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 数据

以下步骤 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 存储桶

  • 您必须在存储配置、IAM 策略和 Amazon IoT Analytics 数据 Amazon IoT SiteWise 存储配置中使用相同的 Amazon S3 存储桶名称。

例 Amazon IoT Analytics 数据存储配置

data-store-nameamzn-s3-demo-bucket替换为您的 Amazon IoT Analytics 数据存储名称和 Amazon S3 存储桶名称。

{ "datastoreName": "data-store-name", "datastoreStorage": { "iotSiteWiseMultiLayerStorage": { "customerManagedS3Storage": { "bucket": "amzn-s3-demo-bucket" } } }, "retentionPeriod": { "numberOfDays": 90 } }
例 响应
{ "datastoreName": "datastore_IoTSiteWise_demo", "datastoreArn": "arn:aws:iotanalytics:us-west-2:123456789012:datastore/datastore_IoTSiteWise_demo", "retentionPeriod": { "numberOfDays": 90, "unlimited": false } }