配置存储设置 - AWS IoT SiteWise

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

配置存储设置

您可以配置存储设置以选择为托管的温层存储提供服务,也可以将数据复制到冷层。要详细了解温暖和热门等级的保留期,请参阅数据保留的影响。配置存储设置时,请执行以下操作:

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

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

注意

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

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

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

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

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

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

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

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

  3. 在右上角,选择 编辑

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

  5. 对于热门等级设置,请执行以下操作:

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

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

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

  6. (推荐)对于 Warm 等级设置,请执行以下操作:

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

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

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

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

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

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

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

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

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

  • 已禁用-禁用暖层存储。

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

您可以使用 AWS 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:::bucket-name/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" }

使用配置暖层的存储设置 AWS CLI

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

aws iotsitewise put-storage-configuration --cli-input-json file://file-name.json
例 AWS 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" } }

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

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

使用 AWS CLI 现有冷层存储配置存储设置
  • 运行以下命令来配置存储设置。Replace(替换) file-name 使用包含 AWS IoT SiteWise 存储配置的文件的名称。

    aws iotsitewise put-storage-configuration --cli-input-json file://file-name.json
    例 AWS IoT SiteWise 存储配置
    • Replace(替换) bucket-name 使用您的 Amazon S3 存储桶名称。

    • Replace(替换) prefix 使用您的亚马逊 S3 前缀。

    • Replace(替换) aws-account-id 使用您的 AWS 账户 ID。

    • Replace(替换) role-name 使用允许 AWS IoT SiteWise 向 Amazon S3 发送数据的 Amazon S3 访问角色的名称。

    • Replace(替换) hot-tier-retention-in-days 整数大于或等于 30 天。

    • Replace(替换) warm-tier-retention-in-days 整数大于或等于 365 天。

    注意

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

    { "storageType": "MULTI_LAYER_STORAGE", "multiLayerStorage": { "customerManagedS3Storage": { "s3ResourceArn": "arn:aws:s3:::bucket-name/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" } }

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

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

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

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

  3. 在右上角,选择 编辑

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

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

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

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

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

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

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

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

        注意
        • 您必须使用与上一步和IAM策略中相同的 Amaz on S3 存储桶名称作为 S3 存储桶位置

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

          例 权限策略:
          { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

          Replace(替换) bucket-name 使用您的 Amazon S3 存储桶的名称。

        • 如果使用客户托管KMS密钥对 S3 存储桶进行加密,则该KMS密钥必须具有具有IAM角色kms:Decryptkms:GenerateDataKey操作的访问策略。

    4. 要设置热门等级,请参阅中的步骤 5 配置暖层(控制台)的存储设置

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

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

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

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

    6. 选择保存

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

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

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

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

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

配置冷层的存储设置 (AWS CLI)

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

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

    aws iotsitewise put-storage-configuration --cli-input-json file://file-name.json
    例 AWS IoT SiteWise 存储配置
    • Replace(替换) bucket-name 使用您的 Amazon S3 存储桶名称。

    • Replace(替换) prefix 使用您的亚马逊 S3 前缀。

    • Replace(替换) aws-account-id 使用您的 AWS 账户 ID。

    • Replace(替换) role-name 使用允许 AWS IoT SiteWise 向 Amazon S3 发送数据的 Amazon S3 访问角色的名称。

    • Replace(替换) retention-in-days 整数大于或等于 30 天。

    { "storageType": "MULTI_LAYER_STORAGE", "multiLayerStorage": { "customerManagedS3Storage": { "s3ResourceArn": "arn:aws:s3:::bucket-name/prefix/", "roleArn": "arn:aws:iam::aws-account-id:role/role-name" } }, "retentionPeriod": { "numberOfDays": retention-in-days, "unlimited": false } }
    注意
    • 您必须在存储配置和IAM策略中使用相同的 Amazon S3 AWS IoT SiteWise 存储桶名称。

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

      例 权限策略:
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

      Replace(替换) bucket-name 使用您的 Amazon S3 存储桶的名称。

    • 如果使用客户托管KMS密钥对 S3 存储桶进行加密,则该KMS密钥必须具有具有IAM角色kms:Decryptkms:GenerateDataKey操作的访问策略。

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

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

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

    aws iotsitewise describe-storage-configuration
    例 响应
    { "storageType": "MULTI_LAYER_STORAGE", "multiLayerStorage": { "customerManagedS3Storage": { "s3ResourceArn": "arn:aws:s3:::DOC-EXAMPLE-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
    注意

    默认情况下,您的数据仅存储在热门层中 AWS 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" }

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

AWS IoT Analytics 数据存储是一种可扩展且可查询的存储库,用于接收和存储数据。您可以使用 AWS IoT SiteWise 控制台或 AWS IoT Analytics APIs创建 AWS IoT Analytics 数据存储来保存 AWS IoT SiteWise 数据。要查询数据,请使用创建数据集 AWS IoT Analytics。有关更多信息,请参阅《AWS IoT Analytics 用户指南》中的使用 AWS IoT SiteWise 数据

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

若要创建数据集,运行以下命令。Replace(替换) file-name 使用包含数据存储配置的文件的名称。

aws iotanalytics create-datastore --cli-input-json file://file-name.json
注意
  • 您必须指定现有 Amazon S3 存储桶的名称。如果没有 Amazon S3 存储桶,请先创建一个。有关更多信息,请参阅 Amazon S3 用户指南中的创建您的第一个 S3 存储桶

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

例 AWS IoT Analytics 数据存储配置

Replace(替换) data-store-name 以及 s3-bucket-name 包含您的 AWS IoT Analytics 数据存储名称和 Amazon S3 存储桶名称。

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