步骤 2:导出之前摄取的数据 - Amazon IoT Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

终止支持通知: Amazon 将于 2025 年 12 月 15 日终止对的支持 Amazon IoT Analytics。2025 年 12 月 15 日之后,您将无法再访问 Amazon IoT Analytics 控制台或 Amazon IoT Analytics 资源。如需了解更多信息,请访问此支持Amazon IoT Analytics 终端

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

步骤 2:导出之前摄取的数据

对于之前提取并存储在中的数据 Amazon IoT Analytics,您需要将其导出到 Amazon S3。为了简化此过程,您可以使用 Amazon CloudFormation 模板来自动执行整个数据导出工作流程。您可以使用该脚本进行部分(基于时间范围)的数据提取。

用于导出先前摄取的数据的架构 CloudFormation

Amazon CloudFormation 用于将数据导出到 Amazon S3 的模板

上图说明了使用 Amazon CloudFormation 模板在同一数据 Amazon IoT Analytics 存储中创建数据集,从而允许基于时间戳进行选择的过程。这允许用户在所需的时间范围内检索特定的数据点。此外,还创建了内容传输规则,用于将数据导出到 Amazon S3 存储桶。

以下步骤说明了这些步骤。

  1. 准备好 Amazon CloudFormation 模板并将其另存为 YAML 文件。例如 migrate-datasource.yaml

    # Cloudformation Template to migrate an AWS IoT Analytics datastore to an external dataset AWSTemplateFormatVersion: 2010-09-09 Description: Migrate an AWS IoT Analytics datastore to an external dataset Parameters: DatastoreName: Type: String Description: The name of the datastore to migrate. AllowedPattern: ^[a-zA-Z0-9_]+$ TimeRange: Type: String Description: | This is an optional argument to split the source data into multiple files. The value should follow the SQL syntax of WHERE clause. E.g. WHERE DATE(Item_TimeStamp) BETWEEN '09/16/2010 05:00:00' and '09/21/2010 09:00:00'. Default: '' MigrationS3Bucket: Type: String Description: The S3 Bucket where the datastore will be migrated to. AllowedPattern: (?!(^xn--|.+-s3alias$))^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$ MigrationS3BucketPrefix: Type: String Description: The prefix of the S3 Bucket where the datastore will be migrated to. Default: '' AllowedPattern: (^([a-zA-Z0-9.\-_]*\/)*$)|(^$) Resources: # IAM Role to be assumed by the AWS IoT Analytics service to access the external dataset DatastoreMigrationRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: iotanalytics.amazonaws.com Action: sts:AssumeRole Policies: - PolicyName: AllowAccessToExternalDataset PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - s3:GetBucketLocation - s3:GetObject - s3:ListBucket - s3:ListBucketMultipartUploads - s3:ListMultipartUploadParts - s3:AbortMultipartUpload - s3:PutObject - s3:DeleteObject Resource: - !Sub arn:aws:s3:::${MigrationS3Bucket} - !Sub arn:aws:s3:::${MigrationS3Bucket}/${MigrationS3BucketPrefix}* # This dataset that will be created in the external S3 Export MigratedDataset: Type: AWS::IoTAnalytics::Dataset Properties: DatasetName: !Sub ${DatastoreName}_generated Actions: - ActionName: SqlAction QueryAction: SqlQuery: !Sub SELECT * FROM ${DatastoreName} ${TimeRange} ContentDeliveryRules: - Destination: S3DestinationConfiguration: Bucket: !Ref MigrationS3Bucket Key: !Sub ${MigrationS3BucketPrefix}${DatastoreName}/!{iotanalytics:scheduleTime}/!{iotanalytics:versionId}.csv RoleArn: !GetAtt DatastoreMigrationRole.Arn RetentionPeriod: Unlimited: true VersioningConfiguration: Unlimited: true
  2. 确定需要导出数据的数据存 Amazon IoT Analytics 储。在本指南中,我们将使用名iot_analytics_datastore为的示例数据存储。

    识别 Amazon IoT Analytics 数据存储:
  3. 创建或确定要将数据导出到的 Amazon S3 存储桶。在本指南中,我们将使用iot-analytics-export存储桶。

    创建或识别 Amazon S3 存储桶
  4. 创建 Amazon CloudFormation 堆栈。

    上传到 CFN 控制台
  5. 输入堆栈名称并提供以下参数:

    • DatastoreName:要迁移 Amazon IoT Analytics 的数据存储的名称。

    • m@@ igrations3Bucket:存储迁移数据的 Amazon S3 存储桶。

    • M@@ igrationS3 BucketPrefix(可选):Amazon S3 存储桶的前缀。

    • TimeRange(可选):用于筛选正在导出的数据的SQL WHERE子句,允许根据指定的时间范围将源数据拆分为多个文件。

    CFN 控制台堆栈详细信息
  6. 在 “配置堆栈选项” 屏幕上单击 “下一步”。

  7. 选中复选框以确认创建 IAM 资源,然后单击 “提交”。

    CFN 控制台堆栈详细信息
  8. 在 “事件” 选项卡上查看堆栈创建完成情况。

    “事件” 选项卡
  9. 成功完成堆栈后,导航至 Amazon IoT Analytics → 数据集以查看迁移的数据集。

    查看数据集
  10. 选择生成的数据集,然后单击 “立即运行” 导出数据集。

    运行数据集
  11. 可以在数据集的内容选项卡上查看内容。

    “内容数据集” 选项卡
  12. 最后,通过在 Amazon S3 控制台中打开iot-analytics-export存储桶来查看导出的内容。

    “事件” 选项卡