

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

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

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

**重要**  
在创建批量导入任务之前，必须启用 Amazon IoT SiteWise 热层或 Amazon IoT SiteWise 冷层。有关更多信息，请参阅 [在中配置存储设置 Amazon IoT SiteWise](configure-storage.md)。  
 [CreateBulkImportJob](https://docs.amazonaws.cn/iot-sitewise/latest/APIReference/API_CreateBulkImportJob.html)API 支持将历史数据提取到， Amazon 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`，则批量导入作业会将历史数据摄取到 Amazon IoT SiteWise。
  + 如果设置为 `true`，则批量导入作业会执行以下操作：
    + 将新数据摄入。 Amazon IoT SiteWise
    + 计算指标和转换，并支持对时间戳在七天内的数据发出通知。
+ *delete-files-after-import-flag*替换`true`为可在将数据摄入到 Amazon 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.amazonaws.cn/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*替换为允许 Amazon 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"
}
```