

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

# 创建 AWS IoT SiteWise 批量导入任务 (AWS CLI)
<a name="CreateBulkImportJob"></a>

使用 [CreateBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateBulkImportJob.html)API 操作将数据从 Amazon S3 传输到 AWS IoT SiteWise。[CreateBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateBulkImportJob.html)API 支持摄取大量历史数据，并支持小批量缓冲摄取分析数据流。是一种经济高效的数据摄取机制。下面的示例使用了 AWS CLI。

**重要**  
在创建批量导入任务之前，必须启用 AWS IoT SiteWise 热层或 AWS IoT SiteWise 冷层。有关更多信息，请参阅 [在中配置存储设置 AWS IoT SiteWise](configure-storage.md)。  
 [CreateBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateBulkImportJob.html)API 支持将历史数据提取到， AWS IoT SiteWise 并可以选择设置参数。 adaptive-ingestion-flag  
在设置为 `false` 时，该 API 会在不触发计算或通知的情况下摄取历史数据。
在设置为 `true` 时，该 API 会在七天内摄取新数据、计算指标并转换数据，以优化持续分析和通知。

运行如下命令。{{file-name}}替换为包含批量导入任务配置的文件的名称。

```
aws iotsitewise create-bulk-import-job --cli-input-json file://{{file-name}}.json
```

**Example 批量导入作业配置**  
以下是配置设置示例：  
+ 将 {{adaptive-ingestion-flag}} 替换为 `true` 或 `false`。
  + 如果设置为 `false`，则批量导入作业会将历史数据摄取到 AWS IoT SiteWise。
  + 如果设置为 `true`，则批量导入作业会执行以下操作：
    + 将新数据摄入。 AWS IoT SiteWise
    + 计算指标和转换，并支持对时间戳在七天内的数据发出通知。
+ {{delete-files-after-import-flag}}替换`true`为可在将数据摄入到 AWS IoT SiteWise 温层存储后从 Amazon S3 数据存储桶中删除。
+ 将 amzn-s3-demo-bucket 替换为发送与此批量导入任务相关的错误的 Amazon S3 存储桶的{{-for-errors}}名称。
+ 将 amzn-s3-demo-bucket 替换为发送与此批量导入任务相关的错误的 Amazon S3 存储桶{{-for-errors-prefix}}的前缀。

  Amazon S3 使用前缀作为文件夹名称来整理存储桶中的数据。每个 Amazon S3 对象都有一个键，作为对象在存储桶中的唯一标识符。桶内的每个对象都只能有一个键。前缀必须以正斜杠（/）结尾。有关更多信息，请参阅 *Amazon Simple Storage Service 用户指南*中的[使用前缀整理对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)。
+ 将 amzn-s3-demo-bucket 替换为从中导入数据的 Amazon S3 存储桶的{{-data}}名称。
+ {{data-bucket-key}}替换为包含您的数据的 Amazon S3 对象的密钥。每个对象都有一个作为唯一标识符的键。每个对象有且只有一个键。
+ {{data-bucket-version-id}}替换为版本 ID，以识别包含您的数据的 Amazon S3 对象的特定版本。此参数为可选的。
+ {{column-name}}替换为.csv 文件中指定的列名。
+ {{job-name}}替换为标识批量导入任务的唯一名称。
+ {{job-role-arn}}替换为允许 AWS IoT SiteWise 读取 Amazon S3 数据的 IAM 角色。
确保您的角色具有以下示例中显示的权限。将 amzn-s3-demo-bucket 替换为包含您的数据的 Amazon S3 存储桶的{{-data}}名称。此外，请{{amzn-s3-demo-bucket-for-errors}}替换为发送与此批量导入任务相关的错误的 Amazon S3 存储桶的名称。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket{{-data}}",
                "arn:aws:s3:::amzn-s3-demo-bucket{{-data}}/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket{{-for-errors}}",
                "arn:aws:s3:::amzn-s3-demo-bucket{{-for-errors}}/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

```
{
   "adaptiveIngestion": adaptive-ingestion-flag,
   "deleteFilesAfterImport": delete-files-after-import-flag,       
   "errorReportLocation": { 
      "bucket": "amzn-s3-demo-bucket{{-for-errors}}",
      "prefix": "amzn-s3-demo-bucket{{-for-errors-prefix}}"
   },
   "files": [ 
      { 
         "bucket": "{{amzn-s3-demo-bucket-data}}",
         "key": "{{data-bucket-key}}",
         "versionId": "{{data-bucket-version-id}}"
      }
   ],
   "jobConfiguration": { 
      "fileFormat": { 
         "csv": { 
            "columnNames": [ "{{column-name}}" ]
         }
      }
   },
   "jobName": "{{job-name}}",
   "jobRoleArn": "{{job-role-arn}}"    
}
```

**Example 响应**  

```
{
   "jobId":"f8c031d0-01d1-4b94-90b1-afe8bb93b7e5",
   "jobStatus":"PENDING",
   "jobName":"myBulkImportJob"
}
```