

AWS Data Pipeline 는 더 이상 신규 고객이 사용할 수 없습니다. 의 기존 고객은 평소와 같이 서비스를 계속 사용할 AWS Data Pipeline 수 있습니다. [자세히 알아보기](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 파이프라인 객체 참조
<a name="dp-pipeline-objects"></a>

파이프라인 정의에 다음 파이프라인 객체 및 구성요소를 사용할 수 있습니다.

**Topics**
+ [데이터 노드](dp-object-datanodes.md)
+ [활동](dp-object-activities.md)
+ [리소스](dp-object-resources.md)
+ [사전 조건](dp-object-preconditions.md)
+ [데이터베이스 수](dp-object-databases.md)
+ [데이터 형식](dp-object-dataformats.md)
+ [작업](dp-object-actions.md)
+ [일정](dp-object-schedule.md)
+ [유틸리티](dp-object-utilities.md)

**참고**  
 AWS Data Pipeline Java SDK를 사용하는 예제 애플리케이션은 GitHub의 [Data Pipeline DynamoDB Export Java Sample](https://github.com/awslabs/data-pipeline-samples/tree/master/samples/DynamoDBExportJava)을 참조하세요.

다음은의 객체 계층 구조입니다 AWS Data Pipeline.

![\[AWS Data Pipeline 객체 계층 구조\]](http://docs.aws.amazon.com/ko_kr/datapipeline/latest/DeveloperGuide/images/object_hierarchy.png)


# 데이터 노드
<a name="dp-object-datanodes"></a>

다음은 AWS Data Pipeline 데이터 노드 객체입니다.

**Topics**
+ [DynamoDBDataNode](dp-object-dynamodbdatanode.md)
+ [MySqlDataNode](dp-object-mysqldatanode.md)
+ [RedshiftDataNode](dp-object-redshiftdatanode.md)
+ [S3DataNode](dp-object-s3datanode.md)
+ [SqlDataNode](dp-object-sqldatanode.md)

# DynamoDBDataNode
<a name="dp-object-dynamodbdatanode"></a>

 `HiveActivity` 또는 `EMRActivity`객체에 대한 입력으로서 지정된 DynamoDB를 사용하여 데이터 노드를 정의합니다.

**참고**  
`DynamoDBDataNode` 객체는 `Exists` 사전 조건을 지원하지 않습니다.

## 예제
<a name="dynamodbdatanode-example"></a>

다음은 이 객체 유형의 예제입니다. 이 객체는 동일한 파이프라인 정의 파일에서 정의하려는 다른 두 객체를 참조합니다. `CopyPeriod`는 `Schedule` 객체이고 `Ready`는 사전 조건 객체입니다.

```
{
  "id" : "MyDynamoDBTable",
  "type" : "DynamoDBDataNode",
  "schedule" : { "ref" : "CopyPeriod" },
  "tableName" : "adEvents",
  "precondition" : { "ref" : "Ready" }
}
```

## 구문
<a name="dynamodbdatanode-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| tableName | DynamoDB 테이블. | 문자열 | 

 


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 사용자가 다른 객체로 일정 참조를 지정해야 합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 [일정](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html)을 참조하세요. | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정한 경우 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dataFormat | 이 데이터 노드로 기술된` 데이터의 DataFormat입니다. 현재 HiveActivity와 HiveCopyActivity가 지원됩니다. | 참조 객체, "dataFormat":\$1"ref":"myDynamoDBDataFormatId"\$1 | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정 | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| readThroughputPercent | DynamoDB 프로비저닝 처리 속도를 테이블에 할당된 범위로 유지하도록 읽기 작업 속도를 설정합니다. 값은 0.1\$11.0 사이의 배정밀도입니다. | 배정밀도 실수 | 
| 리전 | DynamoDB 테이블이 있는 리전의 코드입니다. 예를 들어 us-east-1입니다. Hive에서 DynamoDB 테이블 스테이징을 실행할 때 HiveActivity가 이것을 사용합니다. | 열거 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| runsOn | 활동 또는 명령을 실행할 전산 리소스입니다. Amazon EC2 인스턴스 또는 Amazon EMR 클러스터가 이에 해당합니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 
| writeThroughputPercent | DynamoDB 프로비저닝 처리 속도를 테이블에 할당된 범위로 유지하도록 쓰기 작업 속도를 설정합니다. 그 값은 0.1과 1.0 사이의 두 배입니다. | 배정밀도 실수 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# MySqlDataNode
<a name="dp-object-mysqldatanode"></a>

 MySQL를 사용하여 데이터 노드를 정의합니다.

**참고**  
`MySqlDataNode` 유형은 사용되지 않습니다. 그 대신 [SqlDataNode](dp-object-sqldatanode.md)를 사용할 것을 권장합니다.

## 예제
<a name="mysqldatanode-example"></a>

다음은 이 객체 유형의 예제입니다. 이 객체는 동일한 파이프라인 정의 파일에서 정의하려는 다른 두 객체를 참조합니다. `CopyPeriod`는 `Schedule` 객체이고 `Ready`는 사전 조건 객체입니다.

```
{
  "id" : "Sql Table",
  "type" : "MySqlDataNode",
  "schedule" : { "ref" : "CopyPeriod" },
  "table" : "adEvents",
  "username": "user_name",
  "*password": "my_password",
  "connectionString": "jdbc:mysql://mysqlinstance-rds.example.us-east-1.rds.amazonaws.com:3306/database_name",
  "selectQuery" : "select * from #{table} where eventTime >= '#{@scheduledStartTime.format('YYYY-MM-dd HH:mm:ss')}' and eventTime < '#{@scheduledEndTime.format('YYYY-MM-dd HH:mm:ss')}'",
  "precondition" : { "ref" : "Ready" }
}
```

### 구문
<a name="mysqldatanode-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 테이블 | MySQL 데이터베이스에 있는 테이블의 이름입니다. | 문자열 | 

 


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 사용자가 다른 객체로 일정 참조를 지정해야 합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| createTableSql | SQL은 테이블을 생성할 테이블 표현식을 생성합니다. | 문자열 | 
| 데이터베이스 | 데이터베이스의 이름입니다. | 참조 객체. 예: "database":\$1"ref":"myDatabaseId"\$1 | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| insertQuery | 테이블에 데이터를 삽입할 SQL 문입니다. | 문자열 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| runsOn | 활동 또는 명령을 실행할 전산 리소스입니다. Amazon EC2 인스턴스 또는 Amazon EMR 클러스터가 이에 해당합니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 
| schemaName | 테이블을 보유하는 스키마의 이름 | 문자열 | 
| selectQuery | 테이블에서 데이터를 가져올 SQL 문장입니다. | 문자열 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="mysqldatanode-seealso"></a>
+ [S3DataNode](dp-object-s3datanode.md)

# RedshiftDataNode
<a name="dp-object-redshiftdatanode"></a>

Amazon Redshift을 사용하여 데이터 노드를 정의합니다. `RedshiftDataNode`은(는) 파이프라인에서 사용하는 데이터베이스 내의 데이터 테이블과 같은 데이터 속성을 나타냅니다.

## 예제
<a name="redshiftdatanode-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "MyRedshiftDataNode",
  "type" : "RedshiftDataNode",
  "database": { "ref": "MyRedshiftDatabase" },
  "tableName": "adEvents",
  "schedule": { "ref": "Hour" }
}
```

## 구문
<a name="redshiftdatanode-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 데이터베이스 | 테이블이 상주하는 데이터베이스. | 참조 객체. 예: "database":\$1"ref":"myRedshiftDatabaseId"\$1 | 
| tableName | Amazon Redshift 테이블의 이름입니다. 이 테이블은 존재하지 않은 상태에서 createTableSql을 제공한 경우에 생성됩니다. | 문자열 | 

 


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 사용자가 다른 객체로 일정 참조를 지정해야 합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| createTableSql | 데이터베이스에서 테이블을 생성하는 SQL 표현식입니다. 테이블을 생성해야 하는 스키마를 지정하는 것이 좋습니다. 예를 들어 CREATE TABLE mySchema.myTable(bestColumn varchar(25) primary key distkey, numberOfWins integer sortKey)은 tableName으로 지정된 테이블이 schemaName 필드로 지정된 스키마에 없는 경우 createTableSql 필드에서 스크립트를 AWS Data Pipeline 실행합니다. 예를 들어, schemaName을 mySchema로 지정했는데 createTableSql 필드에 mySchema가 없는 경우 테이블이 잘못된 스키마에 생성됩니다(기본적으로 PUBLIC에 생성됨). 이것은 AWS Data Pipeline이 CREATE TABLE 구문을 분석하지 않기 때문에 발생합니다. | 문자열 | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정 | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수. | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| primaryKeys | RedShiftCopyActivity의 대상 테이블로 primaryKey를 지정하지 않을 경우 mergeKey 역할을 하게 될 primaryKey를 사용하여 칼럼 목록을 지정할 수 있습니다. 그러나 Amazon Redshift 테이블에 기존 primaryKey가 정의되어 있는 경우, 이 설정이 기존 키를 다시 정의합니다. | 문자열 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| runsOn | 활동 또는 명령을 실행할 전산 리소스입니다. Amazon EC2 인스턴스 또는 Amazon EMR 클러스터가 이에 해당합니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 
| schemaName | 이 선택 필드는 Amazon Redshift 테이블용 스키마의 이름을 지정합니다. 지정되지 않으면 스키마 이름이 PUBLIC이 되며, 이것은 Amazon Redshift의 기본 스키마입니다. 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서를 참조하세요. | 문자열 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# S3DataNode
<a name="dp-object-s3datanode"></a>

 Amazon S3를 사용하여 데이터 노드를 정의합니다. 기본적으로 S3DataNode는 서버 측 암호화를 사용합니다. 이를 비활성화하려면 s3EncryptionType을 NONE으로 설정합니다.

**참고**  
`S3DataNode`를 `CopyActivity`에 입력으로 사용하는 경우 CSV 및 TSV 데이터 형식만 지원됩니다.

## 예제
<a name="s3datanode-example"></a>

다음은 이 객체 유형의 예제입니다. 이 객체는 동일한 파이프라인 정의 파일에서 정의하려는 다른 객체를 참조합니다. `CopyPeriod`는 `Schedule` 객체입니다.

```
{
  "id" : "OutputData",
  "type" : "S3DataNode",
  "schedule" : { "ref" : "CopyPeriod" },
  "filePath" : "s3://amzn-s3-demo-bucket/#{@scheduledStartTime}.csv"
}
```

## 구문
<a name="s3datanode-syntax"></a>


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 사용자가 다른 객체로 일정 참조를 지정해야 합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| 압축 | S3DataNode가 기술하는 데이터의 압축 유형입니다. "none"은 압축되지 않은 것이며, "gzip"은 gzip 알고리즘으로 압축됩니다. 이 필드는 Amazon Redshift를 사용할 때와 S3DataNode를 CopyActivity와 함께 사용할 때만 지원됩니다. | 열거 | 
| dataFormat | 이 S3DataNode로 기술된` 데이터의 DataFormat입니다. | 참조 객체. 예: "dataFormat":\$1"ref":"myDataFormatId"\$1 | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정 | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| directoryPath | Amazon S3 디렉터리 경로, URI: s3://my-bucket/my-key-for-directory입니다. filePath 또는 directoryPath 값을 제공해야 합니다. | 문자열 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| filePath | Amazon S3의 객체 경로 URI입니다(예: s3://my-bucket/my-key-for-file). filePath 또는 directoryPath 값을 제공해야 합니다. 이는 폴더와 파일 이름을 나타냅니다. 디렉토리에 여러 파일을 담을 수 있도록 directoryPath 값을 사용합니다. | 문자열 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| manifestFilePath | Amazon Redshift에서 지원하는 형식의 매니페스트 파일에 대한 Amazon S3 경로입니다. 매니페스트 파일을 AWS Data Pipeline 사용하여 지정된 Amazon S3 파일을 테이블에 복사합니다. 이 필드는 RedShiftCopyActivity가 S3DataNode를 참조할 때만 유효합니다. | 문자열 | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| runsOn | 활동 또는 명령을 실행할 전산 리소스입니다. Amazon EC2 인스턴스 또는 Amazon EMR 클러스터가 이에 해당합니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| s3EncryptionType | Amazon S3 암호화 유형을 다시 정의합니다. 그 값은 SERVER\$1SIDE\$1ENCRYPTION 또는 NONE입니다. 기본적으로 서버 측 암호화가 활성화되어 있습니다. | 열거 | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="s3datanode-seealso"></a>
+ [MySqlDataNode](dp-object-mysqldatanode.md)

# SqlDataNode
<a name="dp-object-sqldatanode"></a>

 SQL을 사용하여 데이터 노드를 정의합니다.

## 예제
<a name="example-sql-data-node"></a>

다음은 이 객체 유형의 예제입니다. 이 객체는 동일한 파이프라인 정의 파일에서 정의하려는 다른 두 객체를 참조합니다. `CopyPeriod`는 `Schedule` 객체이고 `Ready`는 사전 조건 객체입니다.

```
{
  "id" : "Sql Table",
  "type" : "SqlDataNode",
  "schedule" : { "ref" : "CopyPeriod" },
  "table" : "adEvents",
  "database":"myDataBaseName",
  "selectQuery" : "select * from #{table} where eventTime >= '#{@scheduledStartTime.format('YYYY-MM-dd HH:mm:ss')}' and eventTime < '#{@scheduledEndTime.format('YYYY-MM-dd HH:mm:ss')}'",
  "precondition" : { "ref" : "Ready" }
}
```

## 구문
<a name="sql-data-node-slots"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 테이블 | SQL 데이터베이스에 있는 테이블의 이름입니다. | 문자열 | 

 


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 사용자가 다른 객체로 일정 참조를 지정해야 합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| createTableSql | SQL은 테이블을 생성할 테이블 표현식을 생성합니다. | 문자열 | 
| 데이터베이스 | 데이터베이스의 이름입니다. | 참조 객체. 예: "database":\$1"ref":"myDatabaseId"\$1 | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| insertQuery | 테이블에 데이터를 삽입할 SQL 문입니다. | 문자열 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| runsOn | 활동 또는 명령을 실행할 전산 리소스입니다. Amazon EC2 인스턴스 또는 Amazon EMR 클러스터가 이에 해당합니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 
| schemaName | 테이블을 보유하는 스키마의 이름 | 문자열 | 
| selectQuery | 테이블에서 데이터를 가져올 SQL 문장입니다. | 문자열 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="sql-data-node-see-also"></a>
+ [S3DataNode](dp-object-s3datanode.md)

# 활동
<a name="dp-object-activities"></a>

다음은 AWS Data Pipeline 활동 객체입니다.

**Topics**
+ [CopyActivity](dp-object-copyactivity.md)
+ [EmrActivity](dp-object-emractivity.md)
+ [HadoopActivity](dp-object-hadoopactivity.md)
+ [HiveActivity](dp-object-hiveactivity.md)
+ [HiveCopyActivity](dp-object-hivecopyactivity.md)
+ [PigActivity](dp-object-pigactivity.md)
+ [RedshiftCopyActivity](dp-object-redshiftcopyactivity.md)
+ [ShellCommandActivity](dp-object-shellcommandactivity.md)
+ [SqlActivity](dp-object-sqlactivity.md)

# CopyActivity
<a name="dp-object-copyactivity"></a>

한 위치에서 다른 위치로의 데이터를 복사합니다. `CopyActivity`는 [S3DataNode](dp-object-s3datanode.md)와 [SqlDataNode](dp-object-sqldatanode.md)를 입력 및 출력으로 지원하며 일반적으로 복사 작업은 레코드별로 수행됩니다. 그러나 `CopyActivity`은(는) 다음 조건이 모두 충족되면 고성능 Amazon S3에서 Amazon S3로의 복사를 제공합니다.
+ 입력 및 출력은 S3DataNodes입니다.
+ `dataFormat` 필드는 입력 및 출력이 동일합니다.

압축된 데이터 파일을 입력으로 제공하고 S3 데이터 노드에서 `compression` 필드를 사용하여 이를 나타내지 않으면 `CopyActivity`가 실패할 수도 있습니다. 이 경우 `CopyActivity`가 레코드 끝 문자를 제대로 감지하지 못하여 작업이 실패합니다. 또한 `CopyActivity`는 디렉터리에서 다른 디렉터리로의 복사와 디렉터리에 파일 복사를 지원하지만, 파일을 디렉터리에 복사하는 경우에는 레코드별로 복사합니다. 마지막으로 `CopyActivity`은(는) 멀티파트 Amazon S3 파일 복사를 지원하지 않습니다.

`CopyActivity`에는 해당 CSV 지원에 대한 특정 제한이 있습니다. `CopyActivity`의 입력으로 S3DataNode를 사용하는 경우에는 Amazon S3 입력 및 출력 필드에서 CSV 데이터 파일 형식의 Unix/Linux 변형만 사용할 수 있습니다. Unix/Linux 변형에는 다음 사항이 필요합니다.
+ 구분 기호는 ","(쉼표) 문자여야 합니다.
+ 레코드가 따옴표로 묶여있지 않습니다.
+ 기본 이스케이프 문자가 ASCII 값 92(백슬래시)입니다.
+ 레코드의 끝 식별자가 ASCII 값 10(또는 "\$1n")입니다.

일반적으로 Windows 기반 시스템에서는 다른 레코드 끝 문자 시퀀스를 사용하며 캐리지 리턴 및 줄 바꿈을 함께 사용합니다(ASCII 값 13, ASCII 값 10). `CopyActivity`가 레코드 끝을 제대로 감지할 수 있도록 추가 메커니즘(예: 입력 데이터를 수정하기 위한 사전 복사 스크립트)을 사용하여 이 차이를 수용해야 합니다. 그렇지 않으면 `CopyActivity`가 반복적으로 실패합니다.

`CopyActivity`를 사용하여 PostgreSQL RDS 객체에서 TSV 데이터 형식으로 내보낼 때 기본 NULL 문자는 \$1n입니다.

## 예제
<a name="copyactivity-example"></a>

다음은 이 객체 유형의 예제입니다. 이 객체는 동일한 파이프라인 정의 파일에서 정의하려는 다른 세 객체를 참조합니다. `CopyPeriod`는 `Schedule` 객체이고 `InputData` 및 `OutputData`는 데이터 노드 객체입니다.

```
{
  "id" : "S3ToS3Copy",
  "type" : "CopyActivity",
  "schedule" : { "ref" : "CopyPeriod" },
  "input" : { "ref" : "InputData" },
  "output" : { "ref" : "OutputData" },
  "runsOn" : { "ref" : "MyEc2Resource" }
}
```

## 구문
<a name="copyactivity-syntax"></a>


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 사용자가 다른 객체로 일정 참조를 지정해야 합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | 활동 또는 명령을 실행할 전산 리소스입니다. Amazon EC2 인스턴스 또는 Amazon EMR 클러스터가 이에 해당합니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| 입력 | 입력 데이터 소스입니다. | 참조 객체, 예: "input":\$1"ref":"myDataNodeId"\$1 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| output | 출력 데이터 소스입니다. | 참조 객체, 예: "output":\$1"ref":"myDataNodeId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="copyactivity-seealso"></a>
+ [ShellCommandActivity](dp-object-shellcommandactivity.md)
+ [EmrActivity](dp-object-emractivity.md)
+ [를 사용하여 MySQL 데이터를 Amazon S3로 내보내기 AWS Data Pipeline](dp-copydata-mysql.md)

# EmrActivity
<a name="dp-object-emractivity"></a>

 EMR 클러스터를 실행합니다.

AWS Data Pipeline 는 Amazon EMR과 다른 형식의 단계를 사용합니다. 예를 들어는 `EmrActivity` 단계 필드의 JAR 이름 뒤에 쉼표로 구분된 인수를 AWS Data Pipeline 사용합니다. 다음 예제에서는 해당 AWS Data Pipeline 형식의 단계에 이어 Amazon EMR 형식의 단계를 보여줍니다.

```
s3://amzn-s3-demo-bucket/MyWork.jar arg1 arg2 arg3
```

```
"s3://amzn-s3-demo-bucket/MyWork.jar,arg1,arg2,arg3"
```

## 예제
<a name="emractivity-example"></a>

다음은 이 객체 유형의 예제입니다. 이 예제에서는 이전 버전의 Amazon EMR을 사용합니다. 사용 중인 Amazon EMR 클러스터 버전과 비교하여 이 예제의 정확성을 확인합니다.

이 객체는 동일한 파이프라인 정의 파일에서 정의하려는 다른 세 객체를 참조합니다. `MyEmrCluster`는 `EmrCluster` 객체이고 `MyS3Input` 및 `MyS3Output`는 `S3DataNode` 객체입니다.

**참고**  
이 예제에서는 `step` 필드를 Pig 스크립트, Hadoop 스트리밍 클러스터, 파라미터를 포함하는 사용자 지정 JAR 등 원하는 클러스터 문자열로 바꿉니다.

Hadoop 2.x(AMI 3.x)

```
{
  "id" : "MyEmrActivity",
  "type" : "EmrActivity",
  "runsOn" : { "ref" : "MyEmrCluster" },
  "preStepCommand" : "scp remoteFiles localFiles",
  "step" : ["s3://amzn-s3-demo-bucket/myPath/myStep.jar,firstArg,secondArg,-files,s3://amzn-s3-demo-bucket/myPath/myFile.py,-input,s3://myinputbucket/path,-output,s3://myoutputbucket/path,-mapper,myFile.py,-reducer,reducerName","s3://amzn-s3-demo-bucket/myPath/myotherStep.jar,..."],
  "postStepCommand" : "scp localFiles remoteFiles",
  "input" : { "ref" : "MyS3Input" },
  "output" : { "ref" : "MyS3Output" }
}
```

**참고**  
한 단계에서 애플리케이션에 인수를 전달하려면 다음 예제와 같이 스크립트의 경로에 리전을 지정해야 합니다. 또한 전달하는 인수를 이스케이프해야 합니다. 예를 들어, `script-runner.jar`를 사용하여 셸 스크립트를 실행하고 인수를 스크립트에 전달하려면 이를 구분하는 쉼표를 이스케이프해야 합니다. 다음은 이를 수행하는 방법을 설명하는 단계 슬롯입니다.  

```
"step" : "s3://eu-west-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c"
```
이 단계에서는 `script-runner.jar`를 사용하여 `echo.sh` 셸 스크립트를 실행하고 `a`, `b` 및 `c`를 단일 인수로 스크립트에 전달합니다. 첫 번째 이스케이프 문자는 결과 인수에서 제거되므로 다시 이스케이프해야 할 수도 있습니다. 예를 들어 JSON에서 `File\.gz`를 인수로 가졌다면 `File\\\\.gz`를 사용하여 이스케이프할 수 있습니다. 그러나 첫 번째 이스케이프가 삭제되었기 때문에 `File\\\\\\\\.gz `를 사용해야 합니다.

## 구문
<a name="emractivity-syntax"></a>


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 다른 객체로 일정 참조를 지정합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | 이 작업이 실행될 Amazon EMR 클러스터입니다. | 참조 객체. 예: "runsOn":\$1"ref":"myEmrClusterId"\$1 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| 입력 | 입력 데이터의 위치입니다. | 참조 객체. 예: "input":\$1"ref":"myDataNodeId"\$1 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수. | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체가 성공하면 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| output | 출력 데이터의 위치입니다. | 참조 객체. 예: "output":\$1"ref":"myDataNodeId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 Amazon S3 URI(예: 's3://BucketName/Prefix/')입니다. | 문자열 | 
| postStepCommand | 모든 단계가 끝난 후에 실행될 셸 스크립트입니다. 스크립트를 여러 개(최대 255개) 지정하려면 postStepCommand 필드를 여러 개 추가합니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| preStepCommand | 임의 단계가 실행되기 전에 실행될 셸 스크립트입니다. 스크립트를 여러 개(최대 255개) 지정하려면 preStepCommand 필드를 여러 개 추가합니다. | 문자열 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| resizeClusterBeforeRunning |  이 활동을 수행하기 전에 입력 또는 출력으로 지정된 DynamoDB 테이블이 포함되도록 클러스터 크기를 조정합니다.  가를 입력 또는 출력 데이터 노드`DynamoDBDataNode`로 `EmrActivity` 사용하고를 `resizeClusterBeforeRunning`로 설정하면가 `m3.xlarge` 인스턴스 유형을 사용하여 `TRUE` AWS Data Pipeline 시작합니다. 그러면 해당 인스턴스 유형 선택을 `m3.xlarge`가 덮어써서 월 요금이 증가할 수 있습니다.   | 부울 | 
| resizeClusterMaxInstances | 크기 조정 알고리즘으로 요청할 수 있는 인스턴스의 최대 수에 대한 제한입니다. | Integer | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 값은 cron, ondemand 및 timeseries입니다. timeseries 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정됩니다. cron 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. ondemand 일정을 사용하면 활성화될 때마다 한 번씩 파이프라인을 실행할 수 있습니다. 그러므로 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. ondemand 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 scheduleType이어야 합니다. ondemand 파이프라인을 사용하려면 후속 실행마다 ActivatePipeline 작업을 호출합니다. | 열거 | 
| 단계 | 클러스터가 실행할 하나 이상의 단계입니다. 최대 255개까지 여러 단계를 지정하려면 여러 단계 필드를 추가합니다. JAR 이름 뒤에 쉼표로 구분된 인수를 사용합니다. 예: "s3://amzn-s3-demo-bucket/MyWork.jar,arg1,arg2,arg3" | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 Amazon EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="emractivity-seealso"></a>
+ [ShellCommandActivity](dp-object-shellcommandactivity.md)
+ [CopyActivity](dp-object-copyactivity.md)
+ [EmrCluster](dp-object-emrcluster.md)

# HadoopActivity
<a name="dp-object-hadoopactivity"></a>

 클러스터에서 MapReduce 작업을 실행합니다. 클러스터는 AWS Data Pipeline 으로 관리되는 EMR 클러스터이거나 TaskRunner를 사용하는 경우에는 다른 리소스일 수 있습니다. 병렬 방식으로 작업을 실행하는 경우 HadoopActivity를 사용하세요. 이를 통해 Hadoop 1에서 MapReduce 리소스 매니저 또는 YARN 프레임워크의 예약 리소스를 사용할 수 있습니다. Amazon EMR 단계 작업을 사용하여 순차적으로 작업을 진행하려는 경우에도 [EmrActivity](dp-object-emractivity.md)을(를) 여전히 사용할 수 있습니다.

## 예제
<a name="hadoopactivity-example"></a>

**에서 관리하는 EMR 클러스터를 사용한 HadoopActivity AWS Data Pipeline**  
다음 HadoopActivity 객체는 EmrCluster 리소스를 사용하여 프로그램을 실행합니다.

```
 {
   "name": "MyHadoopActivity",
   "schedule": {"ref": "ResourcePeriod"},
   "runsOn": {"ref": “MyEmrCluster”},
   "type": "HadoopActivity",
   "preActivityTaskConfig":{"ref":"preTaskScriptConfig”},   
   "jarUri": "/home/hadoop/contrib/streaming/hadoop-streaming.jar",
   "argument": [
     "-files",
     “s3://elasticmapreduce/samples/wordcount/wordSplitter.py“,
     "-mapper",
     "wordSplitter.py",
     "-reducer",
     "aggregate",
     "-input",
     "s3://elasticmapreduce/samples/wordcount/input/",
     "-output",
     “s3://amzn-s3-demo-bucket/MyHadoopActivity/#{@pipelineId}/#{format(@scheduledStartTime,'YYYY-MM-dd')}"
   ],
   "maximumRetries": "0",
   "postActivityTaskConfig":{"ref":"postTaskScriptConfig”},
   "hadoopQueue" : “high”
 }
```

다음은 Hadoop 2 기반 AMI용으로 YARN에서 FairScheduler 및 대기열을 구성하는 해당 *MyEmrCluster*입니다.

```
{
  "id" : "MyEmrCluster",
  "type" : "EmrCluster",
   "hadoopSchedulerType" : "PARALLEL_FAIR_SCHEDULING",
  “amiVersion” : “3.7.0”,
  "bootstrapAction" : ["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-z,yarn.scheduler.capacity.root.queues=low\,high\,default,-z,yarn.scheduler.capacity.root.high.capacity=50,-z,yarn.scheduler.capacity.root.low.capacity=10,-z,yarn.scheduler.capacity.root.default.capacity=30”]
}
```

Hadoop 1에서 FairScheduler를 구성하는 데 사용하는 EmrCluster입니다.

```
{
      "id": "MyEmrCluster",
      "type": "EmrCluster",    
      "hadoopSchedulerType": "PARALLEL_FAIR_SCHEDULING",
      "amiVersion": "2.4.8",
      "bootstrapAction": "s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-m,mapred.queue.names=low\\\\,high\\\\,default,-m,mapred.fairscheduler.poolnameproperty=mapred.job.queue.name"
          }
```

다음 EmrCluster는 Hadoop 2 기반 AMI의 CapacityScheduler를 구성합니다.

```
{
      "id": "MyEmrCluster",
      "type": "EmrCluster",
      "hadoopSchedulerType": "PARALLEL_CAPACITY_SCHEDULING",
      "amiVersion": "3.7.0",
      "bootstrapAction": "s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-z,yarn.scheduler.capacity.root.queues=low\\\\,high,-z,yarn.scheduler.capacity.root.high.capacity=40,-z,yarn.scheduler.capacity.root.low.capacity=60"
    }
```

**기존 EMR 클러스터를 사용한 HadoopActivity**  
이 예제에서는 workergroups 및 TaskRunner를 사용하여 기존 EMR 클러스터에서 프로그램을 실행합니다. 파이프라인 정의는 HadoopActivity를 사용하여 다음을 수행합니다.
+ *myWorkerGroup* 리소스에서만 MapReduce 프로그램을 실행합니다. 작업자 그룹에 대한 정보는 [Task Runner를 사용하여 기존 리소스에서 작업 실행](dp-how-task-runner-user-managed.md)를 참조하세요.
+ preActivityTaskConfig 및 postActivityTaskConfig를 실행합니다.

```
{
  "objects": [
    {
      "argument": [
        "-files",
        "s3://elasticmapreduce/samples/wordcount/wordSplitter.py",
        "-mapper",
        "wordSplitter.py",
        "-reducer",
        "aggregate",
        "-input",
        "s3://elasticmapreduce/samples/wordcount/input/",
        "-output",
        "s3://amzn-s3-demo-bucket/MyHadoopActivity/#{@pipelineId}/#{format(@scheduledStartTime,'YYYY-MM-dd')}"
      ],
      "id": "MyHadoopActivity",
      "jarUri": "/home/hadoop/contrib/streaming/hadoop-streaming.jar",
      "name": "MyHadoopActivity",
      "type": "HadoopActivity"
    },
    {
      "id": "SchedulePeriod",
      "startDateTime": "start_datetime",
      "name": "SchedulePeriod",
      "period": "1 day",
      "type": "Schedule",
      "endDateTime": "end_datetime"
    },
    {
      "id": "ShellScriptConfig",
      "scriptUri": "s3://amzn-s3-demo-bucket/scripts/preTaskScript.sh",
      "name": "preTaskScriptConfig",
      "scriptArgument": [
        "test",
        "argument"
      ],
      "type": "ShellScriptConfig"
    },
    {
      "id": "ShellScriptConfig",
      "scriptUri": "s3://amzn-s3-demo-bucket/scripts/postTaskScript.sh",
      "name": "postTaskScriptConfig",
      "scriptArgument": [
        "test",
        "argument"
      ],
      "type": "ShellScriptConfig"
    },
    {
      "id": "Default",
      "scheduleType": "cron",
      "schedule": {
        "ref": "SchedulePeriod"
      },
      "name": "Default",
      "pipelineLogUri": "s3://amzn-s3-demo-bucket/logs/2015-05-22T18:02:00.343Z642f3fe415",
      "maximumRetries": "0",    
      "workerGroup": "myWorkerGroup",
      "preActivityTaskConfig": {
        "ref": "preTaskScriptConfig"
      },
      "postActivityTaskConfig": {
        "ref": "postTaskScriptConfig"
      }    
    }
  ] 
}
```

## 구문
<a name="hadoopactivity-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| jarUri | Amazon S3 또는 클러스터의 로컬 파일 시스템에서 HadoopActivity와 함께 실행될 JAR의 위치입니다. | 문자열 | 

 


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 사용자가 다른 객체로 일정 참조를 지정해야 합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | 이 작업이 실행될 EMR 클러스터입니다. | 참조 객체. 예: "runsOn":\$1"ref":"myEmrClusterId"\$1 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 인수 | JAR에 전달할 인수입니다. | 문자열 | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| hadoopQueue | 활동이 제출될 Hadoop 스케줄러 대기열 이름입니다. | 문자열 | 
| 입력 | 입력 데이터의 위치입니다. | 참조 객체, 예: "input":\$1"ref":"myDataNodeId"\$1 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| mainClass | HadoopActivity과 함께 실행하는 JAR의 주 클래스입니다. | 문자열 | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| output | 출력 데이터의 위치입니다. | 참조 객체, 예: "output":\$1"ref":"myDataNodeId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| postActivityTaskConfig | 실행할 사후 활동 구성 스크립트입니다. 이것은 Amazon S3의 셸 스크립트 URI와 인수 목록으로 구성됩니다. | 참조 객체. 예: "postActivityTaskConfig":\$1"ref":"myShellScriptConfigId"\$1 | 
| preActivityTaskConfig | 실행할 사전 활동 구성 스크립트입니다. 이것은 Amazon S3의 셸 스크립트 URI와 인수 목록으로 구성됩니다. | 참조 객체. 예: "preActivityTaskConfig":\$1"ref":"myShellScriptConfigId"\$1 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="hadoopactivity-seealso"></a>
+ [ShellCommandActivity](dp-object-shellcommandactivity.md)
+ [CopyActivity](dp-object-copyactivity.md)
+ [EmrCluster](dp-object-emrcluster.md)

# HiveActivity
<a name="dp-object-hiveactivity"></a>

EMR 클러스터에서 Hive 쿼리를 실행합니다. `HiveActivity`을(를) 사용하면 Amazon EMR 활동을 보다 쉽게 설정하고 Amazon S3 또는 Amazon RDS에서 제공되는 입력 데이터를 기반으로 Hive 테이블을 자동으로 생성할 수 있습니다. 소스 데이터에서 실행할 HiveQL만 지정하면 됩니다.는 `HiveActivity` 객체의 입력 필드를 기반으로 `${input1}`, `${input2}`등으로 Hive 테이블을 AWS Data Pipeline 자동으로 생성합니다.

Amazon S3 입력의 경우 `dataFormat`필드를 사용하여 Hive 열 이름을 생성합니다.

MySQL(Amazon RDS) 입력의 경우 SQL 쿼리의 열 이름을 사용하여 Hive 열 이름을 생성합니다.

**참고**  
이 활동은 Hive [CSV Serde](https://cwiki.apache.org/confluence/display/Hive/CSV+Serde)를 사용합니다.

## 예제
<a name="hiveactivity-example"></a>

다음은 이 객체 유형의 예제입니다. 이 객체는 동일한 파이프라인 정의 파일에서 정의하는 다른 세 객체를 참조합니다. `MySchedule`는 `Schedule` 객체이고 `MyS3Input` 및 `MyS3Output`는 데이터 노드 객체입니다.

```
{
  "name" : "ProcessLogData",
  "id" : "MyHiveActivity",
  "type" : "HiveActivity",
  "schedule" : { "ref": "MySchedule" },
  "hiveScript" : "INSERT OVERWRITE TABLE ${output1} select host,user,time,request,status,size from ${input1};",
  "input" : { "ref": "MyS3Input" },
  "output" : { "ref": "MyS3Output" },
  "runsOn" : { "ref": "MyEmrCluster" }
}
```

## 구문
<a name="hiveactivity-syntax"></a>


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 다른 객체로 일정 참조를 지정합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| hiveScript | 실행할 Hive 스크립트입니다. | 문자열 | 
| scriptUri | 실행할 Hive 스크립트의 위치입니다(예: s3://scriptLocation). | 문자열 | 

 


****  

| 필수 그룹 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | 이 HiveActivity가 실행될 EMR 클러스터입니다. | 참조 객체. 예: "runsOn":\$1"ref":"myEmrClusterId"\$1 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 
| 입력 | 입력 데이터 소스입니다. | 참조 객체. 예: "input":\$1"ref":"myDataNodeId"\$1 | 
| output | 출력 데이터 소스입니다. | 참조 객체. 예: "output":\$1"ref":"myDataNodeId"\$1 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| hadoopQueue | 작업이 제출될 Hadoop 스케줄러 대기열 이름입니다. | 문자열 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수. | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| postActivityTaskConfig | 실행할 사후 활동 구성 스크립트입니다. 이것은 Amazon S3의 셸 스크립트 URI와 인수 목록으로 구성됩니다. | 참조 객체. 예: "postActivityTaskConfig":\$1"ref":"myShellScriptConfigId"\$1 | 
| preActivityTaskConfig | 실행할 사전 활동 구성 스크립트입니다. 이것은 Amazon S3의 셸 스크립트 URI와 인수 목록으로 구성됩니다. | 참조 객체. 예: "preActivityTaskConfig":\$1"ref":"myShellScriptConfigId"\$1 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| resizeClusterBeforeRunning | 이 활동을 수행하기 전에 입력 또는 출력으로 지정된 DynamoDB 데이터 노드가 포함되도록 클러스터 크기를 조정합니다. 활동이를 입력 또는 출력 데이터 노드`DynamoDBDataNode`로 사용하고를 `resizeClusterBeforeRunning`로 설정하면가 `m3.xlarge` 인스턴스 유형을 사용하여 `TRUE` AWS Data Pipeline 시작합니다. 그러면 해당 인스턴스 유형 선택을 `m3.xlarge`가 덮어써서 월 요금이 증가할 수 있습니다.  | 부울 | 
| resizeClusterMaxInstances | 크기 조정 알고리즘으로 요청할 수 있는 인스턴스의 최대 수에 대한 제한입니다. | Integer | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 
| scriptVariable | 스크립트 실행 중에 Hive로 전달할 Amazon EMR의 스크립트 변수를 지정합니다. 예를 들어 SAMPLE=s3://elasticmapreduce/samples/hive-ads 및 FILTER\$1DATE=\$1\$1format(@scheduledStartTime,'YYYY-MM-dd')\$1% 예제 스크립트 변수는 SAMPLE 및 FILTER\$1DATE 변수를 Hive에 전달합니다. 이 필드는 여러 개의 값을 허용하며 script 필드 및 scriptUri 필드와 연동합니다. 또한 scriptVariable은 스테이지가 true로 설정되든 false로 설정되든 상관없이 작동합니다. 이 필드는 특히 AWS Data Pipeline 표현식과 함수를 사용하여 Hive로 동적 값을 전송할 때 유용합니다. | 문자열 | 
| stage | 스크립트 실행 이전 또는 이후의 스테이징 활성화 여부를 결정합니다. Hive 11에는 허용되지 않으므로 Amazon EMR AMI 버전 3.2.0 이상을 사용해야 합니다. | 부울 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 Amazon EMR 단계 로그. | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="hiveactivity-seealso"></a>
+ [ShellCommandActivity](dp-object-shellcommandactivity.md)
+ [EmrActivity](dp-object-emractivity.md)

# HiveCopyActivity
<a name="dp-object-hivecopyactivity"></a>

EMR 클러스터에서 Hive 쿼리를 실행합니다. `HiveCopyActivity`을(를) 사용하면 DynamoDB 테이블 사이에서 데이터를 보다 쉽게 복사할 수 있습니다. `HiveCopyActivity`은(는) HiveQL 문을 사용하여 열 및 행 수준에서 DynamoDB의 입력 데이터를 필터링합니다.

## 예제
<a name="hivecopyactivity-example"></a>

다음 예제는 데이터를 필터링하는 동안 타임스탬프를 기반으로 `HiveCopyActivity` 및 `DynamoDBExportDataFormat`을 사용하여 한 `DynamoDBDataNode`에서 다른 로 데이터를 복사하는 방법을 보여줍니다.

```
{
  "objects": [
    {
      "id" : "DataFormat.1",
      "name" : "DataFormat.1",
      "type" : "DynamoDBExportDataFormat",
      "column" : "timeStamp BIGINT"
    },
    {
      "id" : "DataFormat.2",
      "name" : "DataFormat.2",
      "type" : "DynamoDBExportDataFormat"
    },
    {
      "id" : "DynamoDBDataNode.1",
      "name" : "DynamoDBDataNode.1",
      "type" : "DynamoDBDataNode",
      "tableName" : "item_mapped_table_restore_temp",
      "schedule" : { "ref" : "ResourcePeriod" },
      "dataFormat" : { "ref" : "DataFormat.1" }
    },
    {
      "id" : "DynamoDBDataNode.2",
      "name" : "DynamoDBDataNode.2",
      "type" : "DynamoDBDataNode",
      "tableName" : "restore_table",
      "region" : "us_west_1",
      "schedule" : { "ref" : "ResourcePeriod" },
      "dataFormat" : { "ref" : "DataFormat.2" }
    },
    {
      "id" : "EmrCluster.1",
      "name" : "EmrCluster.1",
      "type" : "EmrCluster",
      "schedule" : { "ref" : "ResourcePeriod" },
      "masterInstanceType" : "m1.xlarge",
      "coreInstanceCount" : "4"
    },
    {
      "id" : "HiveTransform.1",
      "name" : "Hive Copy Transform.1",
      "type" : "HiveCopyActivity",
      "input" : { "ref" : "DynamoDBDataNode.1" },
      "output" : { "ref" : "DynamoDBDataNode.2" },
      "schedule" :{ "ref" : "ResourcePeriod" },
      "runsOn" : { "ref" : "EmrCluster.1" },
      "filterSql" : "`timeStamp` > unix_timestamp(\"#{@scheduledStartTime}\", \"yyyy-MM-dd'T'HH:mm:ss\")"
    },
    {
      "id" : "ResourcePeriod",
      "name" : "ResourcePeriod",
      "type" : "Schedule",
      "period" : "1 Hour",
      "startDateTime" : "2013-06-04T00:00:00",
      "endDateTime" : "2013-06-04T01:00:00"
    }
  ]
}
```

## 구문
<a name="hivecopyactivity-syntax"></a>


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 사용자가 다른 객체로 일정 참조를 지정해야 합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | 실행할 클러스터를 지정합니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고한 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| filterSql | 복사할 DynamoDB 또는 Amazon S3 데이터의 하위 집합을 필터링하는 Hive SQL 문장의 일부입니다. 가 자동으로 AWS Data Pipeline 추가하기 때문에 필터에는 조건자만 포함되어야 하며 WHERE 절로 시작해서는 안 됩니다. | 문자열 | 
| 입력 | 입력 데이터 소스입니다. 이 값은 S3DataNode 또는 DynamoDBDataNode여야 합니다. DynamoDBNode를 사용하는 경우 DynamoDBExportDataFormat을 지정합니다. | 참조 객체, 예: "input":\$1"ref":"myDataNodeId"\$1 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수. | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| output | 출력 데이터 소스입니다. 입력이 S3DataNode인 경우 이 값은 DynamoDBDataNode여야 합니다. 그 외의 경우에는 S3DataNode 또는 DynamoDBDataNode가 될 수 있습니다. DynamoDBNode를 사용하는 경우 DynamoDBExportDataFormat을 지정합니다. | 참조 객체, 예: "output":\$1"ref":"myDataNodeId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 Amazon S3 URI(예:  's3://BucketName/Key/')입니다. | 문자열 | 
| postActivityTaskConfig | 실행할 사후 활동 구성 스크립트입니다. 이것은 Amazon S3의 셸 스크립트 URI와 인수 목록으로 구성됩니다. | 참조 객체. 예: "postActivityTaskConfig":\$1"ref":"myShellScriptConfigId"\$1 | 
| preActivityTaskConfig | 실행할 사전 활동 구성 스크립트입니다. 이것은 Amazon S3의 셸 스크립트 URI와 인수 목록으로 구성됩니다. | 참조 객체. 예: "preActivityTaskConfig":\$1"ref":"myShellScriptConfigId"\$1 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| resizeClusterBeforeRunning | 이 활동을 수행하기 전에 입력 또는 출력으로 지정된 DynamoDB 데이터 노드가 포함되도록 클러스터 크기를 조정합니다. 활동이를 입력 또는 출력 데이터 노드`DynamoDBDataNode`로 사용하고를 `resizeClusterBeforeRunning`로 설정하면가 `m3.xlarge` 인스턴스 유형을 사용하여 `TRUE` AWS Data Pipeline 시작합니다. 그러면 해당 인스턴스 유형 선택을 `m3.xlarge`가 덮어써서 월 요금이 증가할 수 있습니다.  | 부울 | 
| resizeClusterMaxInstances | 크기 조정 알고리즘으로 요청할 수 있는 인스턴스의 최대 수에 대한 제한입니다. | Integer | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 Amazon EMR 단계 로그. | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Object를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="hivecopyactivity-seealso"></a>
+ [ShellCommandActivity](dp-object-shellcommandactivity.md)
+ [EmrActivity](dp-object-emractivity.md)

# PigActivity
<a name="dp-object-pigactivity"></a>

PigActivity는 `ShellCommandActivity` 또는를 사용할 필요 AWS Data Pipeline 없이의 Pig 스크립트에 대한 기본 지원을 제공합니다`EmrActivity`. 그 밖에도 PigActivity는 데이터 스테이징을 지원합니다. 스테이지 필드가 true로 설정되면 AWS Data Pipeline 에서는 사용자의 추가 코드 없이 입력 데이터가 Pig의 스키마로 스테이징됩니다.

## 예제
<a name="pigactivity-example"></a>

다음 예제 파이프라인은 `PigActivity`를 사용하는 방법을 보여줍니다. 이 예제 파이프라인은 다음 단계를 수행합니다.
+ MyPigActivity1은 Amazon S3에서 데이터를 로드하고 몇 개의 데이터 열을 선택하여 Amazon S3에 업로드하는 Pig 스크립트를 실행합니다.
+ MyPigActivity2는 첫 번째 출력을 로드하고 데이터 열 몇 개와 데이터 행 3개를 선택하여 이를 두 번째 출력으로 Amazon S3에 업로드합니다.
+ MyPigActivity3은 두 번째 출력 데이터를 로드하고 두 개의 데이터 행과 "다섯 번째"라는 이름의 열만을 Amazon RDS에 삽입합니다.
+ MyPigActivity4는 Amazon RDS 데이터를 로드하고 데이터의 첫 번째 행을 선택하여 Amazon S3에 업로드합니다.

```
{
  "objects": [
    {
      "id": "MyInputData1",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "directoryPath": "s3://amzn-s3-demo-bucket/pigTestInput",
      "name": "MyInputData1",
      "dataFormat": {
        "ref": "MyInputDataType1"
      },
      "type": "S3DataNode"
    },
    {
      "id": "MyPigActivity4",
      "scheduleType": "CRON",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "input": {
        "ref": "MyOutputData3"
      },
      "pipelineLogUri": "s3://amzn-s3-demo-bucket/path/",
      "name": "MyPigActivity4",
      "runsOn": {
        "ref": "MyEmrResource"
      },
      "type": "PigActivity",
      "dependsOn": {
        "ref": "MyPigActivity3"
      },
      "output": {
        "ref": "MyOutputData4"
      },
      "script": "B = LIMIT ${input1} 1; ${output1} = FOREACH B GENERATE one;",
      "stage": "true"
    },
    {
      "id": "MyPigActivity3",
      "scheduleType": "CRON",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "input": {
        "ref": "MyOutputData2"
      },
      "pipelineLogUri": "s3://amzn-s3-demo-bucket/path",
      "name": "MyPigActivity3",
      "runsOn": {
        "ref": "MyEmrResource"
      },
      "script": "B = LIMIT ${input1} 2; ${output1} = FOREACH B GENERATE Fifth;",
      "type": "PigActivity",
      "dependsOn": {
        "ref": "MyPigActivity2"
      },
      "output": {
        "ref": "MyOutputData3"
      },
      "stage": "true"
    },
    {
      "id": "MyOutputData2",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "name": "MyOutputData2",
      "directoryPath": "s3://amzn-s3-demo-bucket/PigActivityOutput2",
      "dataFormat": {
        "ref": "MyOutputDataType2"
      },
      "type": "S3DataNode"
    },
    {
      "id": "MyOutputData1",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "name": "MyOutputData1",
      "directoryPath": "s3://amzn-s3-demo-bucket/PigActivityOutput1",
      "dataFormat": {
        "ref": "MyOutputDataType1"
      },
      "type": "S3DataNode"
    },
    {
      "id": "MyInputDataType1",
      "name": "MyInputDataType1",
      "column": [
        "First STRING",
        "Second STRING",
        "Third STRING",
        "Fourth STRING",
        "Fifth STRING",
        "Sixth STRING",
        "Seventh STRING",
        "Eighth STRING",
        "Ninth STRING",
        "Tenth STRING"
      ],
      "inputRegEx": "^(\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+) (\\\\S+)",
      "type": "RegEx"
    },
    {
      "id": "MyEmrResource",
      "region": "us-east-1",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "keyPair": "example-keypair",
      "masterInstanceType": "m1.small",
      "enableDebugging": "true",
      "name": "MyEmrResource",
      "actionOnTaskFailure": "continue",
      "type": "EmrCluster"
    },
    {
      "id": "MyOutputDataType4",
      "name": "MyOutputDataType4",
      "column": "one STRING",
      "type": "CSV"
    },
    {
      "id": "MyOutputData4",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "directoryPath": "s3://amzn-s3-demo-bucket/PigActivityOutput3",
      "name": "MyOutputData4",
      "dataFormat": {
        "ref": "MyOutputDataType4"
      },
      "type": "S3DataNode"
    },
    {
      "id": "MyOutputDataType1",
      "name": "MyOutputDataType1",
      "column": [
        "First STRING",
        "Second STRING",
        "Third STRING",
        "Fourth STRING",
        "Fifth STRING",
        "Sixth STRING",
        "Seventh STRING",
        "Eighth STRING"
      ],
      "columnSeparator": "*",
      "type": "Custom"
    },
    {
      "id": "MyOutputData3",
      "username": "___",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "insertQuery": "insert into #{table} (one) values (?)",
      "name": "MyOutputData3",
      "*password": "___",
      "runsOn": {
        "ref": "MyEmrResource"
      },
      "connectionString": "jdbc:mysql://example-database-instance:3306/example-database",
      "selectQuery": "select * from #{table}",
      "table": "example-table-name",
      "type": "MySqlDataNode"
    },
    {
      "id": "MyOutputDataType2",
      "name": "MyOutputDataType2",
      "column": [
        "Third STRING",
        "Fourth STRING",
        "Fifth STRING",
        "Sixth STRING",
        "Seventh STRING",
        "Eighth STRING"
      ],
      "type": "TSV"
    },
    {
      "id": "MyPigActivity2",
      "scheduleType": "CRON",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "input": {
        "ref": "MyOutputData1"
      },
      "pipelineLogUri": "s3://amzn-s3-demo-bucket/path",
      "name": "MyPigActivity2",
      "runsOn": {
        "ref": "MyEmrResource"
      },
      "dependsOn": {
        "ref": "MyPigActivity1"
      },
      "type": "PigActivity",
      "script": "B = LIMIT ${input1} 3; ${output1} = FOREACH B GENERATE Third, Fourth, Fifth, Sixth, Seventh, Eighth;",
      "output": {
        "ref": "MyOutputData2"
      },
      "stage": "true"
    },
    {
      "id": "MyEmrResourcePeriod",
      "startDateTime": "2013-05-20T00:00:00",
      "name": "MyEmrResourcePeriod",
      "period": "1 day",
      "type": "Schedule",
      "endDateTime": "2013-05-21T00:00:00"
    },
    {
      "id": "MyPigActivity1",
      "scheduleType": "CRON",
      "schedule": {
        "ref": "MyEmrResourcePeriod"
      },
      "input": {
        "ref": "MyInputData1"
      },
      "pipelineLogUri": "s3://amzn-s3-demo-bucket/path",
      "scriptUri": "s3://amzn-s3-demo-bucket/script/pigTestScipt.q",
      "name": "MyPigActivity1",
      "runsOn": {
        "ref": "MyEmrResource"
      },
      "scriptVariable": [
        "column1=First",
        "column2=Second",
        "three=3"
      ],
      "type": "PigActivity",
      "output": {
        "ref": "MyOutputData1"
      },
      "stage": "true"
    }
  ]
}
```

`pigTestScript.q`의 내용은 다음과 같습니다.

```
B = LIMIT ${input1} $three; ${output1} = FOREACH B GENERATE $column1, $column2, Third, Fourth, Fifth, Sixth, Seventh, Eighth;
```

## 구문
<a name="pigactivity-syntax"></a>


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 사용자가 다른 객체로 일정 참조를 지정해야 합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 스크립트 | 실행할 Pig 스크립트입니다. | 문자열 | 
| scriptUri | 실행할 Pig 스크립트의 위치입니다(예: s3://scriptLocation). | 문자열 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | 이 PigActivity가 실행될 EMR 클러스터입니다. | 참조 객체. 예: "runsOn":\$1"ref":"myEmrClusterId"\$1 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고한 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| 입력 | 입력 데이터 소스입니다. | 참조 객체. 예: "input":\$1"ref":"myDataNodeId"\$1 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수. | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| output | 출력 데이터 소스입니다. | 참조 객체. 예: "output":\$1"ref":"myDataNodeId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 Amazon S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| postActivityTaskConfig | 실행할 사후 활동 구성 스크립트입니다. 이것은 Amazon S33의 쉘 스크립트 URI와 인수 목록으로 구성됩니다. | 참조 객체. 예: "postActivityTaskConfig":\$1"ref":"myShellScriptConfigId"\$1 | 
| preActivityTaskConfig | 실행할 사전 활동 구성 스크립트입니다. 이것은 Amazon S3의 셸 스크립트 URI와 인수 목록으로 구성됩니다. | 참조 객체. 예: "preActivityTaskConfig":\$1"ref":"myShellScriptConfigId"\$1 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| resizeClusterBeforeRunning | 이 활동을 수행하기 전에 입력 또는 출력으로 지정된 DynamoDB 데이터 노드가 포함되도록 클러스터 크기를 조정합니다. 활동이를 입력 또는 출력 데이터 노드`DynamoDBDataNode`로 사용하고를 `resizeClusterBeforeRunning`로 설정하면가 `m3.xlarge` 인스턴스 유형을 사용하여 `TRUE` AWS Data Pipeline 시작합니다. 그러면 해당 인스턴스 유형 선택을 `m3.xlarge`가 덮어써서 월 요금이 증가할 수 있습니다.  | 부울 | 
| resizeClusterMaxInstances | 크기 조정 알고리즘으로 요청할 수 있는 인스턴스의 최대 수에 대한 제한입니다. | Integer | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 시계열 스타일 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정되고 Cron 스타일 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. 온디맨드 일정을 사용하면 파이프라인을 활성화될 때 한 번씩 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. 온디맨드 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 schuleType이어야 합니다. 온디맨드 파이프라인을 사용하려면 이후 실행할 때마다 ActivatePipeline 작업을 호출하면 됩니다. 값은 cron, ondemand 및 timeseries입니다. | 열거 | 
| scriptVariable | Pig 스크립트에 전달할 인수입니다. scriptVariable을 script 또는 scriptUri와 함께 사용할 수 있습니다. | 문자열 | 
| stage | 스테이징 활성화 여부를 결정하며, Pig 스크립트를 사용하여 \$1\$1INPUT1\$1 및 \$1\$1OUTPUT1\$1 같은 스테이징 데이터 테이블에 액세스할 수 있습니다. | 부울 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 Amazon EMR 단계 로그. | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="pigactivity-seealso"></a>
+ [ShellCommandActivity](dp-object-shellcommandactivity.md)
+ [EmrActivity](dp-object-emractivity.md)

# RedshiftCopyActivity
<a name="dp-object-redshiftcopyactivity"></a>

DynamoDB 또는 Amazon S3에서 Amazon Redshift로 데이터를 복사합니다. 데이터를 기존 테이블로 로드하거나 기존 테이블에 데이터를 쉽게 병합할 수 있습니다.

다음은 `RedshiftCopyActivity`를 사용할 사용 사례의 개요입니다.

1. 먼저 AWS Data Pipeline 를 사용하여 Amazon S3에서 데이터를 스테이징합니다.

1. `RedshiftCopyActivity`을(를) 사용하여 Amazon RDS 및 Amazon EMR에서 Amazon Redshift로 데이터를 이동합니다.

   이렇게 하면 Amazon Redshift에 데이터를 로드하여 데이터를 분석할 수 있습니다.

1. [SqlActivity](dp-object-sqlactivity.md)을(를) 사용하여 Amazon Redshift에 로드한 데이터에 대해 SQL 쿼리를 수행합니다.

 또한 `RedshiftCopyActivity`는 매니페스트 파일을 지원하므로 `S3DataNode` 작업을 할 수 있습니다. 자세한 내용은 [S3DataNode](dp-object-s3datanode.md) 단원을 참조하십시오.

## 예제
<a name="redshiftcopyactivity-example"></a>

다음은 이 객체 유형의 예제입니다.

형식 변환을 보장하기 위해, 이 예제에서는 [EMPTYASNULL](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html#copy-emptyasnull) 및 `commandOptions`의 [IGNOREBLANKLINES](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html#copy-ignoreblanklines) 특수 변환 파라미터를 사용합니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 가이드*의 [데이터 변환 파라미터](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html)를 참조하세요.

```
{
  "id" : "S3ToRedshiftCopyActivity",
  "type" : "RedshiftCopyActivity",
  "input" : { "ref": "MyS3DataNode" },
  "output" : { "ref": "MyRedshiftDataNode" },
  "insertMode" : "KEEP_EXISTING",
  "schedule" : { "ref": "Hour" },
  "runsOn" : { "ref": "MyEc2Resource" },
  "commandOptions": ["EMPTYASNULL", "IGNOREBLANKLINES"]
}
```

다음 예제 파이프라인 정의는 `APPEND` 삽입 모드를 사용하는 활동을 보여줍니다.

```
{
  "objects": [
    {
      "id": "CSVId1",
      "name": "DefaultCSV1",
      "type": "CSV"
    },
    {
      "id": "RedshiftDatabaseId1",
      "databaseName": "dbname",
      "username": "user",
      "name": "DefaultRedshiftDatabase1",
      "*password": "password",
      "type": "RedshiftDatabase",
      "clusterId": "redshiftclusterId"
    },
    {
      "id": "Default",
      "scheduleType": "timeseries",
      "failureAndRerunMode": "CASCADE",
      "name": "Default",
      "role": "DataPipelineDefaultRole",
      "resourceRole": "DataPipelineDefaultResourceRole"
    },
    {
      "id": "RedshiftDataNodeId1",
      "schedule": {
        "ref": "ScheduleId1"
      },
      "tableName": "orders",
      "name": "DefaultRedshiftDataNode1",
      "createTableSql": "create table StructuredLogs (requestBeginTime CHAR(30) PRIMARY KEY DISTKEY SORTKEY, requestEndTime CHAR(30), hostname CHAR(100), requestDate varchar(20));",
      "type": "RedshiftDataNode",
      "database": {
        "ref": "RedshiftDatabaseId1"
      }
    },
    {
      "id": "Ec2ResourceId1",
      "schedule": {
        "ref": "ScheduleId1"
      },
      "securityGroups": "MySecurityGroup",
      "name": "DefaultEc2Resource1",
      "role": "DataPipelineDefaultRole",
      "logUri": "s3://myLogs",
      "resourceRole": "DataPipelineDefaultResourceRole",
      "type": "Ec2Resource"
    },
    {
      "id": "ScheduleId1",
      "startDateTime": "yyyy-mm-ddT00:00:00",
      "name": "DefaultSchedule1",
      "type": "Schedule",
      "period": "period",
      "endDateTime": "yyyy-mm-ddT00:00:00"
    },
    {
      "id": "S3DataNodeId1",
      "schedule": {
        "ref": "ScheduleId1"
      },
      "filePath": "s3://datapipeline-us-east-1/samples/hive-ads-samples.csv",
      "name": "DefaultS3DataNode1",
      "dataFormat": {
        "ref": "CSVId1"
      },
      "type": "S3DataNode"
    },
    {
      "id": "RedshiftCopyActivityId1",
      "input": {
        "ref": "S3DataNodeId1"
      },
      "schedule": {
        "ref": "ScheduleId1"
      },
      "insertMode": "APPEND",
      "name": "DefaultRedshiftCopyActivity1",
      "runsOn": {
        "ref": "Ec2ResourceId1"
      },
      "type": "RedshiftCopyActivity",
      "output": {
        "ref": "RedshiftDataNodeId1"
      }
    }
  ]
}
```

`APPEND` 작업은 기본 키 또는 정렬 키에 관계 없이 테이블에 항목을 추가합니다. 예를 들어 다음 테이블이 있는 경우 동일한 ID와 사용자 값으로 레코드를 추가할 수 있습니다.

```
ID(PK)     USER
1          aaa
2          bbb
```

동일한 ID와 사용자 값으로 레코드를 추가할 수 있습니다.

```
ID(PK)     USER
1          aaa
2          bbb
1          aaa
```

**참고**  
`APPEND` 작업이 중단되었다가 재시도되는 경우, 결과 재실행 파이프라인이 처음부터 잠재적으로 추가됩니다. 이로 인해 더 많은 중복이 발생할 수 있으므로 특히 행 수를 계산하는 논리가 있는 경우에는 이 동작을 숙지하고 있어야 합니다.

자습서는 [를 사용하여 Amazon Redshift에 데이터 복사 AWS Data Pipeline](dp-copydata-redshift.md)을 참조하세요.

## 구문
<a name="redshiftcopyactivity-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| insertMode |   로드할 데이터의 행과 겹치는 대상 테이블의 기존 데이터로 AWS Data Pipeline 수행하는 작업을 결정합니다. 유효 값은 `KEEP_EXISTING`, `OVERWRITE_EXISTING`, `TRUNCATE` 및 `APPEND`입니다. `KEEP_EXISTING`은 테이블에 새 행을 추가하고, 기존 행은 그대로 둡니다. `KEEP_EXISTING`과 ` OVERWRITE_EXISTING`은 기본 키, 정렬 키 및 배포 키를 사용하여 어느 수신 행이 기존 행과 일치하는지 식별합니다. Amazon Redshift *데이터베이스 개발자 안내서*의 [새 데이터 업데이트 및 삽입](https://docs.aws.amazon.com/redshift/latest/dg/t_updating-inserting-using-staging-tables-.html)을 참조하세요. `TRUNCATE`는 새 데이터를 기록하기 전에 대상 테이블의 데이터를 모두 삭제합니다.  `APPEND`는 Redshift 테이블 끝에 모든 레코드를 추가합니다. `APPEND`는 기본, 배포 키 또는 정렬 키를 사용할 필요가 없어 중복 가능성이 있는 항목이 추가될 수 있습니다.  | 열거 | 

 


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule |  이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 다른 객체로 일정 참조를 지정합니다. 대부분의 경우, 모든 객체가 일정을 상속할 수 있도록 해당 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 예를 들어 `"schedule": {"ref": "DefaultSchedule"}`을 지정하여 객체에서 일정을 명시적으로 설정할 수 있습니다. 파이프라인의 마스터 일정에 중첩된 일정이 포함된 경우, 일정 참조가 있는 부모 객체를 생성합니다. 선택형 일정 구성 예제에 대한 자세한 내용은 [일정](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html)을 참조하세요.  |  "schedule":\$1"ref":"myScheduleId"\$1와 같은 참조 객체 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | 활동 또는 명령을 실행할 전산 리소스입니다. Amazon EC2 인스턴스 또는 Amazon EMR 클러스터가 이에 해당합니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| commandOptions |  `COPY` 작업 중에 Amazon Redshift 데이터 노드로 전달할 파라미터를 가져옵니다. 파라미터에 대한 내용을 알아보시려면 Amazon Redshift *데이터베이스 개발자 안내서*의 [COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html)를 참조하세요. `COPY`는 테이블을 로드할 때 문자열을 대상 열의 데이터 형식으로 묵시적으로 변환하려 시도합니다. 자동으로 이루어지는 기본 데이터 변환 외에도 오류가 수신되거나 다른 변환이 필요한 경우, 추가 변환 파라미터를 지정할 수 있습니다. 자세한 내용은 Amazon Redshift *데이터베이스 개발자 가이드*의 [데이터 변환 파라미터](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html)를 참조하세요. 데이터 형식이 입력 또는 출력 데이터 노드와 연결된 경우에는 제공된 파라미터는 무시됩니다. 복사 작업에서는 먼저 `COPY`를 사용하여 스테이징 테이블에 데이터를 삽입한 다음 `INSERT` 명령을 사용하여 스테이징 테이블의 데이터를 대상 테이블로 복사하기 때문에 테이블 자동 압축을 활성화할 수 있는 `COPY` 명령과 같은 일부 `COPY` 파라미터는 적용되지 않습니다. 압축이 필요할 경우에는 열 인코딩 세부 정보를 `CREATE TABLE` 문에 추가합니다. 또한 Amazon Redshift 클러스터에서 데이터를 언로드하고 Amazon S3 에서 파일을 생성해야 하는 경우, `RedshiftCopyActivity`은(는) Amazon Redshift의 `UNLOAD` 작업에 의존합니다. 복사 및 언로드 중에 성능을 개선하려면 `UNLOAD` 명령에서 `PARALLEL OFF` 파라미터를 지정합니다. 자세한 내용은 Amazon Redshift *데이터베이스 개발자 안내서*에서 [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html)를 참조하세요.  | 문자열 | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| 입력 | 입력 데이터 노드입니다. Amazon S3, DynamoDB 또는 Amazon Redshift가 데이터 소스가 될 수 있습니다. | 참조 객체:  "input":\$1"ref":"myDataNodeId"\$1 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체:  "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체:  "onSuccess":\$1"ref":"myActionId"\$1 | 
| output | 출력 데이터 노드입니다. Amazon S3 또는 Amazon Redshift가 출력 위치가 될 수 있습니다. | 참조 객체:  "output":\$1"ref":"myDataNodeId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| 대기열 |  Amazon Redshift에서 `query_group ` 설정에 해당하며, 이것을 사용하여 대기열 내 위치에 따라 동시 실행 활동을 할당하고 우선 순위를 정할 수 있습니다. Amazon Redshift는 동시 연결 수를 15로 제한합니다. 자세한 내용은 Amazon RDS *데이터베이스 개발자 안내서*의 [대기열에 쿼리 할당](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/cm-c-executing-queries.html)을 참조하세요.  | 문자열 | 
| reportProgressTimeout |  원격 작업에서 `reportProgress`를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다.  | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType |  파이프라인에서 객체에 대한 일정 조정을 지정할 수 있습니다. 값은 `cron`, `ondemand` 및 `timeseries`입니다. `timeseries` 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정됩니다. `Cron` 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. `ondemand` 일정을 사용하면 활성화될 때마다 한 번씩 파이프라인을 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다.  `ondemand` 파이프라인을 사용하려면 후속 실행마다 `ActivatePipeline` 작업을 호출합니다. `ondemand` 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 `scheduleType`이어야 합니다.  | 열거 | 
| transformSql |  입력 데이터를 변환할 때 사용되는 `SQL SELECT` 표현식입니다. `staging`이라는 테이블에서 `transformSql` 표현식을 실행합니다. DynamoDB 또는 Amazon S3의 데이터를 복사하면, AWS Data Pipeline 이 "스테이징"이라고 하는 테이블을 생성하고, 처음에는 여기에 데이터를 로드합니다. 이 테이블의 데이터는 대상 테이블을 업데이트할 때 사용됩니다. `transformSql`의 출력 스키마는 최종 대상 테이블의 스키마와 일치해야 합니다. `transformSql` 옵션을 지정하는 경우, 지정된 SQL 문에서 두 번째 스테이징 테이블이 생성됩니다. 이후 이 두 번째 스테이징 테이블은 최종 대상 테이블에서 업데이트됩니다.  | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체:  "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체:  "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 구입니다. 수명 주기상 객체의 위치를 나타냅니다. 예를 들어 구성 요소 객체가 인스턴스 객체를 트리거하고, 인스턴스 객체는 시도 객체를 실행합니다. | 문자열 | 

# ShellCommandActivity
<a name="dp-object-shellcommandactivity"></a>

 명령 또는 스크립트를 실행합니다. `ShellCommandActivity`를 사용하여 시계열 또는 Cron 같은 예약된 작업을 실행할 수 있습니다.

`stage` 필드가 참으로 설정되고 `S3DataNode`과(와) 함께 사용되는 경우 `ShellCommandActivity`은(는) 데이터 스테이징 개념을 지원합니다. 즉, Amazon S3에서 스테이지 위치(예: Amazon EC2 또는 로컬 환경)로 데이터를 이동하고 스크립트 및 `ShellCommandActivity`을(를) 사용하여 데이터에 대한 작업을 수행한 후 이를 다시 Amazon S3로 이동할 수 있습니다.

이 경우 셸 명령이 입력 `S3DataNode`에 연결되면 셸 스크립트는 `ShellCommandActivity` 입력 필드를 참조해 `${INPUT1_STAGING_DIR}`, `${INPUT2_STAGING_DIR}` 및 기타 필드를 사용하는 데이터에서 직접 작동할 수 있습니다.

마찬가지로 쉘 명령의 출력을 출력 디렉터리에서 스테이징하여 `${OUTPUT1_STAGING_DIR}`, `${OUTPUT2_STAGING_DIR}` 등에 의해 참조되는 Amazon S3에 자동으로 푸시할 수 있습니다.

이러한 표현식을 통해 데이터 변환 논리에 사용할 셸 명령에 명령줄 인수로 전달할 수 있습니다.

`ShellCommandActivity`는 Linux 스타일의 오류 코드 및 문자열을 반환합니다. `ShellCommandActivity`에서 오류가 발생하면 반환된 `error`는 0이 아닌 값이 됩니다.

## 예제
<a name="shellcommandactivity-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "CreateDirectory",
  "type" : "ShellCommandActivity",
  "command" : "mkdir new-directory"
}
```

## 구문
<a name="shellcommandactivity-syntax"></a>


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule |  이 객체는 `schedule` 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 다른 객체로 `schedule` 참조를 지정합니다. 이 요구 사항을 충족하려면, 예컨대 `"schedule": {"ref": "DefaultSchedule"}`을 지정하여 객체에서 `schedule`을 명시적으로 설정합니다. 대부분의 경우에는 모든 객체가 상속할 수 있도록 `schedule` 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 파이프라인이 일정 트리로 구성된 경우(마스터 일정 안의 일정) 일정 참조가 있는 부모 객체를 생성합니다. 로드를 분산하기 위해는 물리적 객체를 일정보다 약간 앞서 AWS Data Pipeline 생성하지만 일정에 따라 실행합니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html)  | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 명령 | 실행할 명령입니다. \$1을 사용하여 명령의 파라미터를 지정할 위치 파라미터와 scriptArgument를 참조합니다. 이 값 및 연결된 파라미터는 Task Runner를 실행 중인 환경에서 작동해야 합니다. | 문자열 | 
| scriptUri | 파일을 다운로드하여 셸 명령으로 실행할 Amazon S3 URI 경로입니다. 단 하나의 scriptUri 또는 command 필드만 지정합니다. scriptUri는 파라미터를 사용할 수 없으며, command를 사용합니다. | 문자열 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | Amazon EC2 인스턴스 또는 Amazon EMR 클러스터 등, 활동이나 명령을 실행할 전산 리소스입니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| workerGroup | 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고한 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 지정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| 입력 | 입력 데이터의 위치입니다. | 참조 객체, 예: "input":\$1"ref":"myDataNodeId"\$1 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수. | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| output | 출력 데이터의 위치입니다. | 참조 객체, 예: "output":\$1"ref":"myDataNodeId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 Amazon S3 URI(예:'s3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이것이 설정되면 지정 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주되어 재시도될 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType |  파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 값은 `cron`, `ondemand` 및 `timeseries`입니다. `timeseries`로 설정하면 각 간격이 종료될 때 인스턴스 일정이 지정됩니다. `Cron`로 설정하면 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. `ondemand`로 설정하면 활성화될 때마다 한 번씩 파이프라인을 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. `ondemand` 일정을 사용하려면 기본 객체에서 이것을 파이프라인의 객체에 유일한 `scheduleType`으로 지정합니다. `ondemand` 파이프라인을 사용하려면 후속 실행마다 `ActivatePipeline` 작업을 호출합니다.  | 열거 | 
| scriptArgument | 명령으로 지정된 명령에 전달할 문자열의 JSON 형식 어레이입니다. 예를 들어, 명령이 echo \$11 \$12인 경우 scriptArgument를 "param1", "param2"로 지정합니다. 여러 인수와 파라미터의 경우,  "scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2"와 같이 scriptArgument를 전달합니다. scriptArgument는 command와 함께 사용해야 하며 scriptUri 절과 함께 사용하면 오류가 발생합니다. | 문자열 | 
| stage | 스테이징 활성화 여부를 결정하며, 셸 명령을 사용하여 \$1\$1INPUT1\$1STAGING\$1DIR\$1 및  \$1\$1OUTPUT1\$1STAGING\$1DIR\$1 같은 스테이징 데이터 변수에 액세스할 수 있습니다. | 부울 | 
| stderr | 명령에서 리디렉션된 시스템 오류 메시지를 수신하는 경로입니다. runsOn 필드를 사용할 경우에는 활동을 실행할 리소스가 임시적이므로 Amazon S3 경로가 되어야 합니다. 그러나 workerGroup 필드를 지정할 경우에는 로컬 파일 경로가 허용됩니다. | 문자열 | 
| stdout | 명령에서 리디렉션된 출력을 수신하는 Amazon S3 경로입니다. runsOn 필드를 사용할 경우에는 활동을 실행할 리소스가 임시적이므로 Amazon S3 경로가 되어야 합니다. 그러나 workerGroup 필드를 지정할 경우에는 로컬 파일 경로가 허용됩니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패를 유발한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | Amazon EMR 활동 시도 시에만 사용할 수 있는 Amazon EMR 단계 로그. | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | Amazon EMR 기반 활동 시도 시에만 사용할 수 있는 Hadoop 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간입니다. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간입니다. | DateTime | 
| @상태 | 객체의 상태입니다. | 문자열 | 
| @version | 객체를 생성하는 데 사용되는 AWS Data Pipeline 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류입니다. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID입니다. | 문자열 | 
| @sphere | 수명 주기상 객체의 위치. 구성요소 객체가 인스턴스 객체를 트리거하고, 인스턴스 객체는 시도 객체를 실행합니다. | 문자열 | 

## 참고
<a name="shellcommandactivity-seealso"></a>
+ [CopyActivity](dp-object-copyactivity.md)
+ [EmrActivity](dp-object-emractivity.md)

# SqlActivity
<a name="dp-object-sqlactivity"></a>

데이터베이스에서 SQL 쿼리(스크립트)를 실행합니다.

## 예제
<a name="sqlactivity-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "MySqlActivity",
  "type" : "SqlActivity",
  "database" : { "ref": "MyDatabaseID" },
  "script" : "SQLQuery" | "scriptUri" : s3://scriptBucket/query.sql,
  "schedule" : { "ref": "MyScheduleID" },
}
```

## 구문
<a name="sqlactivity-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 데이터베이스 | 제공된 SQL 스크립트를 실행할 데이터베이스. | 참조 객체. 예: "database":\$1"ref":"myDatabaseId"\$1 | 

 


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule |  이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 다른 객체로 일정 참조를 지정해야 합니다. 예컨대 `"schedule": {"ref": "DefaultSchedule"}`을 지정하여 객체에서 일정을 명시적으로 설정할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 파이프라인에 마스터 일정 내에서 중첩된 일정 트리가 있는 경우, 일정 참조가 있는 부모 객체를 생성합니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html)  | 참조 객체. 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 스크립트 | 실행할 SQL 스크립트. script 또는 scriptUri를 지정해야 합니다. 스크립트가 Amazon S3에 저장되면, 해당 스크립트는 표현식으로 평가되지 않습니다. 스크립트가 Amazon S3에 저장되는 경우에는 scriptArgument에 대해 복수 값을 지정하는 것이 도움이 됩니다. | 문자열 | 
| scriptUri | 이 활동에서 실행할 SQL 스크립트의 위치를 지정하는 URI. | 문자열 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | 활동 또는 명령을 실행할 전산 리소스입니다. Amazon EC2 인스턴스 또는 Amazon EMR 클러스터가 이에 해당합니다. | 참조 객체. 예: "runsOn":\$1"ref":"myResourceId"\$1 | 
| workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":\$1"ref":"myActivityId"\$1 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| 입력 | 입력 데이터의 위치입니다. | 참조 객체, 예: "input":\$1"ref":"myDataNodeId"\$1 | 
| lateAfterTimeout | 객체 실행이 시작되어야 하는 예약된 파이프라인 시작 후 기간입니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 'lateAfterTimeout'에 의해 지정된 파이프라인의 예약된 시작 이후 기간 이내에 객체가 아직 예약되지 않았거나 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| output | 출력 데이터의 위치입니다. 이는 스크립트 내에서의 참조(에: \$1\$1output.tablename\$1) 및 출력 데이터 노드에서의 'createTableSql' 설정에 의한 출력 테이블 생성 목적에만 유효합니다. SQL 쿼리의 출력은 출력 데이터 노드에 기록되지 않습니다. | 참조 객체, 예: "output":\$1"ref":"myDataNodeId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":\$1"ref":"myPreconditionId"\$1 | 
| 대기열 | [Amazon Redshift만 해당] Amazon Redshift에서 쿼리 그룹 설정에 해당하며, 이것을 사용하여 쿼리 내 위치에 따라 동시 실행 활동을 할당하고 우선 순위를 정할 수 있습니다. Amazon Redshift는 동시 연결 수를 15로 제한합니다. 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 [대기열에 쿼리 할당](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-executing-queries.html)을 참조하세요. | 문자열 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType |  일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 값은 `cron`, `ondemand` 및 `timeseries`입니다.  `timeseries` 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정됩니다. `cron` 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. `ondemand` 일정을 사용하면 활성화될 때마다 한 번씩 파이프라인을 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. `ondemand` 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 `scheduleType`이어야 합니다. `ondemand` 파이프라인을 사용하려면 후속 실행마다 `ActivatePipeline` 작업을 호출합니다.  | 열거 | 
| scriptArgument | 스크립트에 사용되는 변수의 목록입니다. 아니면 표현식을 스크립트 영역에 직접 입력할 수도 있습니다. 스크립트가 Amazon S3에 저장되는 경우에는 scriptArgument에 대한 복수 값 지정이 도움이 됩니다. 예: \$1\$1format(@scheduledStartTime, "YY-MM-DD HH:MM:SS"\$1\$1n\$1\$1format(plusPeriod(@scheduledStartTime, "1 day"), "YY-MM-DD HH:MM:SS"\$1 | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# 리소스
<a name="dp-object-resources"></a>

다음은 AWS Data Pipeline 리소스 객체입니다.

**Topics**
+ [Ec2Resource](dp-object-ec2resource.md)
+ [EmrCluster](dp-object-emrcluster.md)
+ [HttpProxy](dp-object-httpproxy.md)

# Ec2Resource
<a name="dp-object-ec2resource"></a>

파이프라인 활동에 의해 정의된 작업을 수행하는 Amazon EC2 인스턴스입니다.

AWS Data Pipeline 는 이제 세션 지향 방법을 사용하여 인스턴스에서 메타데이터 정보를 검색할 때 인증을 더 잘 처리하는 Amazon EC2 인스턴스용 IMDSv2를 지원합니다. Amazon EC2 세션은 Amazon EC2 인스턴스에서 실행되는 소프트웨어가 로컬에 저장된 Amazon EC2 인스턴스 메타데이터 및 자격 증명에 액세스하는 데 사용하는 일련의 요청을 시작하고 종료합니다. 소프트웨어는 IMDSv2에 대한 간단한 HTTP PUT 요청으로 세션을 시작합니다. IMDSv2는 Amazon EC2 인스턴스에서 실행되는 소프트웨어에 비밀 토큰을 반환하며, 이 소프트웨어는 토큰을 암호로 사용하여 IMDSv2에 메타데이터 및 자격 증명을 요청합니다.

**참고**  
기본 AMI는 IMDSv2와 호환되지 않으므로 Amazon EC2 인스턴스에 IMDSv2를 사용하려면 설정을 수정해야 합니다. 다음 SSM 파라미터 `/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs`을(를) 통해 검색할 수 있는 새 AMI 버전을 지정할 수 있습니다.

인스턴스를 지정하지 않은 경우에서 AWS Data Pipeline 생성하는 기본 Amazon EC2 인스턴스에 대한 자세한 내용은 섹션을 참조하세요[AWS 리전에 의한 기본 Amazon EC2 인스턴스](dp-ec2-default-instance-types.md).

## 예제
<a name="ec2resource-example"></a>

**EC2-Classic**

**중요**  
2013년 12월 4일 이전에 생성된 AWS 계정만 EC2-Classic 플랫폼을 지원합니다. 이러한 계정 중 하나가 있는 경우 VPC보다 오히려 EC2-Classic 네트워크의 파이프라인에 대해 EC2Resource 객체를 생성할 수 있는 옵션이 있을 수 있습니다. VPC에서 모든 파이프라인의 리소스를 생성하는 것을 강력히 권장합니다. 또한 EC2-Classic에 기존 리소스가 있는 경우 이를 VPC로 마이그레이션하는 것이 좋습니다.

다음 예제 객체는 일부 옵션 필드가 설정된 EC2-Classic에서 EC2 인스턴스를 시작합니다.

```
{
  "id" : "MyEC2Resource",
  "type" : "Ec2Resource",
  "actionOnTaskFailure" : "terminate",
  "actionOnResourceFailure" : "retryAll",
  "maximumRetries" : "1",
  "instanceType" : "m5.large",
  "securityGroups" : [
    "test-group",
    "default"
  ],
  "keyPair" : "my-key-pair"
}
```

**EC2-VPC**

다음 예제 객체는 일부 옵션 필드가 설정된 기본이 아닌 VPC에서 EC2 인스턴스를 시작합니다.

```
{
  "id" : "MyEC2Resource",
  "type" : "Ec2Resource",
  "actionOnTaskFailure" : "terminate",
  "actionOnResourceFailure" : "retryAll",
  "maximumRetries" : "1",
  "instanceType" : "m5.large",
  "securityGroupIds" : [
    "sg-12345678",
    "sg-12345678"
  ],
  "subnetId": "subnet-12345678",
  "associatePublicIpAddress": "true",
  "keyPair" : "my-key-pair"
}
```

## 구문
<a name="ec2resource-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| resourceRole | Amazon EC2 인스턴스가 액세스할 수 있는 리소스를 제어하는 IAM 역할입니다. | 문자열 | 
| 역할 | 가 EC2 인스턴스를 생성하는 데 AWS Data Pipeline 사용하는 IAM 역할입니다. | 문자열 | 

 


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule |  이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 다른 객체로 일정 참조를 지정합니다. 이 작업을 다음 중 한 가지 방법으로 수행할 수 있습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/datapipeline/latest/DeveloperGuide/dp-object-ec2resource.html)  | 참조 객체, 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| actionOnResourceFailure | 이 리소스의 리소스 실패 후 취한 조치입니다. 유효 값은 "retryall" 및 "retrynone"입니다. | 문자열 | 
| actionOnTaskFailure | 이 리소스의 작업 실패 후 취한 조치입니다. 유효한 값은 "continue" 또는 "terminate"입니다. | 문자열 | 
| associatePublicIpAddress | 인터페이스로 퍼블릭 IP 주소를 할당할지 여부를 나타냅니다. 인스턴스가 Amazon EC2 또는 Amazon VPC에 포함된 경우 기본값은 true입니다. 그렇지 않은 경우 기본값은 false입니다. | 부울 | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 지정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| availabilityZone | Amazon EC2 인스턴스를 시작할 가용 영역입니다. | 문자열 | 
| disableIMDSv1 | 기본값은 false이며 IMDSv1 및 IMDSv2를 모두 활성화합니다. 이 값을 true로 설정하면 IMDSv1이 비활성화되고 IMDSv2만 제공됩니다. | 부울 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| httpProxy | 클라이언트가 AWS 서비스에 연결하는 데 사용하는 프록시 호스트입니다. | 참조 객체, 예: "httpProxy":\$1"ref":"myHttpProxyId"\$1 | 
| imageId | 인스턴스에 사용할 AMI의 ID입니다. 기본적으로 HVM AMI 가상화 유형을 AWS Data Pipeline 사용합니다. 사용되는 특정 AMI ID는 리전을 기반으로 합니다. HVM AMI를 선택 지정하여 기본 AMI를 겹쳐쓸 수 있습니다. AMI 유형에 대해 자세한 내용은, *Amazon EC2 사용 가이드*[Linux AMI 가상화 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html) 및 [Linux AMI 찾기](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)를 참조하세요.  | 문자열 | 
| initTimeout | 리소스가 시작되기 전까지의 대기 시간입니다. | Period | 
| instanceCount | 사용되지 않음. | Integer | 
| instanceType | 시작할 Amazon EC2 인스턴스의 유형입니다. | 문자열 | 
| keyPair | 키 페어 이름. 키 쌍을 지정하지 않고 Amazon EC2 인스턴스를 시작하면 인스턴스에 로그온되지 않습니다. | 문자열 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수. | Integer | 
| minInstanceCount | 사용되지 않음. | Integer | 
| onFail | 현재 객체에 장애가 있을 때 실행할 작업입니다. | 참조 객체, 예:  "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 계속 실행 중인 경우에 트리거되어야 하는 작업입니다. | 참조 객체, 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체가 성공하면 실행할 작업입니다. | 참조 객체, 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속해 올 현재 객체의 상위 객체입니다. | 참조 객체, 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 Amazon S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| 리전 |  Amazon EC2 인스턴스가 실행되어야 할 리전의 코드입니다. 기본적으로 인스턴스는 파이프라인과 동일한 리전에서 실행됩니다. 종속 데이터 세트와 동일한 리전에서 인스턴스를 실행할 수 있습니다. | 열거 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이것이 설정되면 지정 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주되어 재시도됩니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| runAsUser | TaskRunner를 실행할 사용자. | 문자열 | 
| runsOn | 이 객체에서는 이 필드가 허용되지 않습니다. | 참조 객체, 예:"runsOn":\$1"ref":"myResourceId"\$1 | 
| scheduleType |  일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로, 종료 시점으로 또는 필요할 때 지정할 수 있습니다. 유효한 값: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/datapipeline/latest/DeveloperGuide/dp-object-ec2resource.html)  | 열거 | 
| securityGroupIds | 리소스 풀의 인스턴스에 대해 사용할 하나 이상의 Amazon EC2 보안 그룹의 ID입니다. | 문자열 | 
| securityGroups | 리소스 풀의 인스턴스에 대해 사용할 하나 이상의 Amazon EC2 보안 그룹입니다. | 문자열 | 
| spotBidPrice | 스팟 인스턴스의 시간당 최대 금액(달러)이며, 0 초과 20.00 미만의 십진수 값입니다. | 문자열 | 
| subnetId | 인스턴스를 시작할 Amazon EC2 서브넷의 ID입니다. | 문자열 | 
| terminateAfter | 이 숫자만큼의 시간이 지난 뒤 리소스를 종료합니다. | Period | 
| useOnDemandOnLastAttempt | 스팟 인스턴스를 마지막으로 요청할 때 스팟 인스턴스가 아니라 온디맨드 인스턴스를 요청합니다. 이렇게 하면 이전의 시도가 모두 실패했어도 마지막 시도가 중단되지 않습니다. | 부울 | 
| workerGroup | 이 객체에서는 이 필드가 허용되지 않습니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체, 예:"activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체, 예:"cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | Amazon EMR 활동을 시도할 때만 사용할 수 있는 단계 로그. | 문자열 | 
| errorId | 이 객체가 실패한 경우의 오류 ID입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 오류 메시지입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @failureReason | 리소스 실패 이유입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | Amazon EMR 활동을 시도할 때 사용할 수 있는 Hadoop 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 나타내는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체를 생성할 당시의 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체, 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 수명 주기상 객체의 위치. 구성요소 객체가 인스턴스 객체를 트리거하고, 인스턴스 객체는 시도 객체를 실행합니다. | 문자열 | 

# EmrCluster
<a name="dp-object-emrcluster"></a>

Amazon EMR 클러스터의 구성을 나타냅니다. 이 객체는 [EmrActivity](dp-object-emractivity.md) 및 [HadoopActivity](dp-object-hadoopactivity.md)에 의해 클러스터를 시작합니다.

**Topics**
+ [스케줄러](#emrcluster-schedulers)
+ [Amazon EMR 릴리스 버전](#dp-emrcluster-release-versions)
+ [Amazon EMR 권한](#w2aac52c17b9c11)
+ [구문](#emrcluster-syntax)
+ [예제](emrcluster-example.md)
+ [참고](#emrcluster-seealso)

## 스케줄러
<a name="emrcluster-schedulers"></a>

스케줄러는 Hadoop 클러스터에서 리소스 할당 및 작업 우선 순위를 지정하는 방법을 제공합니다. 관리자 또는 사용자는 사용자 및 애플리케이션의 다양한 클래스에 대한 스케줄러를 선택할 수 있습니다. 스케줄러는 대기열을 사용하여 사용자 및 애플리케이션에 리소스를 할당할 수 있습니다. 클러스터를 생성할 때 이러한 대기열을 설정합니다. 그런 다음 특정 작업 유형 및 사용자에 우선순위를 설정할 수 있습니다. 이렇게 하면 클러스터 리소스를 효과적으로 사용할 수 있으며 둘 이상의 사용자가 클러스터에 작업을 제출할 수 있습니다. 세 가지 유형의 스케줄러를 사용할 수 있습니다.
+ [FairScheduler](https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/FairScheduler.html) — 상당한 기간 동안 리소스를 일정하게 예약을 시도하는 스케줄러입니다.
+ [CapacityScheduler](https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html) — 대기열을 사용하여 클러스터 관리자가 다양한 우선 순위 및 리소스 할당 대기열에 사용자를 할당할 수 있는 스케줄러입니다.
+ Default — 기본 스케줄러 사이트를 구성할 수 있는 클러스터에 사용되는 스케줄러입니다.

## Amazon EMR 릴리스 버전
<a name="dp-emrcluster-release-versions"></a>

Amazon EMR 릴리스는 빅 데이터 에코시스템의 오픈 소스 애플리케이션입니다. 각 릴리스는 클러스터를 생성할 때 Amazon EMR을 설치하고 구성하도록 선택한 여러 빅 데이터 애플리케이션, 구성 요소 및 기능으로 구성됩니다. 릴리스 레이블을 사용하여 릴리스 버전을 지정합니다. 릴리스 레이블은 `emr-x.x.x` 형식입니다. 예를 들어 `emr-5.30.0`입니다. 릴리스 레이블 `emr-4.0.0`을 기반으로 한 Amazon EMR 클러스터는 나중에 `releaseLabel` 속성을 사용하여 `EmrCluster` 객체의 릴리스 레이블을 지정합니다. 이전 버전에서는 `amiVersion` 속성을 사용합니다.

**중요**  
릴리스 버전 5.22.0 이상을 사용하여 생성된 모든 Amazon EMR 클러스터는 나중에 [서명 버전 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)를 사용하여 Amazon S3에 대한 요청을 인증합니다. 일부 이전 릴리스 버전에서는 서명 버전 2를 사용합니다. 서명 버전 2 지원이 중단되고 있습니다. 자세한 내용은 [Amazon S3 업데이트 — SigV2 사용 중단 기간 연장 및 수정](https://aws.amazon.com/blogs/aws/amazon-s3-update-sigv2-deprecation-period-extended-modified/)을 참조하세요. 서명 버전 4를 지원하는 Amazon EMR 릴리스 버전을 사용하는 것이 좋습니다. EMR 4.7.x부터 이전 릴리스 버전의 경우 시리즈의 최신 릴리스가 서명 버전 4를 지원하도록 업데이트되었습니다. 이전 버전의 EMR 릴리스를 사용하는 경우 시리즈의 최신 릴리스를 사용하는 것이 좋습니다. 또한 EMR 4.7.0 이전 릴리스는 사용하지 마십시오.

### 고려 사항 및 제한
<a name="dp-emrcluster-considerations"></a>

#### 최신 버전의 Task Runner 사용
<a name="dp-task-runner-latest"></a>

릴리스 레이블을 가지고 자체 관리형 `EmrCluster` 객체를 사용 중인 경우에는 최신 Task Runner를 사용합니다. 작업 실행기에 대한 정보는 [Task Runner로 작업하기](dp-using-task-runner.md)를 참조하세요. 모든 Amazon EMR 구성 분류에 대한 속성 값을 구성할 수 있습니다. 자세한 내용을 알아보려면 *Amazon EMR 릴리스 안내서*, [EmrConfiguration](dp-object-emrconfiguration.md) 및 [속성](dp-object-property.md) 객체 참조의 [구성 애플리케이션](https://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/emr-configure-apps.html)을 참조하세요.

#### IMDSv2에 대한 지원
<a name="dp-emr-imdsv2-support"></a>

이전에는 IMDSv1만 AWS Data Pipeline 지원되었습니다. 이제는 Amazon EMR 5.23.1, 5.27.1, 5.32 이상 및 Amazon EMR 6.2 이상에서 IMDSv2를 AWS Data Pipeline 지원합니다. IMDSv2는 세션 지향 방법을 사용하여 인스턴스에서 메타데이터 정보를 검색할 때 인증을 더 잘 처리합니다. TaskRunner-2.0을 사용하여 사용자 관리 리소스를 생성하여 IMDSv2 호출을 수행하도록 인스턴스를 구성해야 합니다.

#### Amazon EMR 5.32 이상 및 Amazon EMR 6.x
<a name="dp-emr-6-classpath"></a>

Amazon EMR 5.32 이상 및 6.x 릴리스 시리즈는 Hadoop 버전 3.x를 사용합니다. 이 버전에서는 Hadoop 버전 2.x와 비교하여 Hadoop의 클래스 경로를 평가하는 방식이 크게 변경되었습니다. Joda-Time과 같은 일반 라이브러리는 클래스 경로에서 제거되었습니다.

[EmrActivity](dp-object-emractivity.md) 또는 [HadoopActivity](dp-object-hadoopactivity.md)이(가) Hadoop 3.x에서 제거된 라이브러리에 대한 종속성이 있는 Jar 파일을 실행하는 경우, 단계는 오류 `java.lang.NoClassDefFoundError` 또는 `java.lang.ClassNotFoundException`이(가) 발생하면서 실패합니다. Amazon EMR 5.x 릴리스 버전을 사용하여 문제 없이 실행한 Jar 파일에서 이 문제가 발생할 수 있습니다.

문제를 해결하려면 `EmrActivity` 또는 `HadoopActivity`을(를) 시작하기 전에 Jar 파일 종속성을 `EmrCluster` 상의 객체의 Hadoop 클래스 경로에 복사해야 합니다. 이를 수행할 bash 스크립트를 제공합니다. bash 스크립트는와 같이 *MyRegion*이 `EmrCluster` 객체가 실행되는 AWS 리전인 다음 위치에서 사용할 수 있습니다`us-west-2`.

```
s3://datapipeline-MyRegion/MyRegion/bootstrap-actions/latest/TaskRunner/copy-jars-to-hadoop-classpath.sh
```

스크립트를 실행하는 방법은 `EmrActivity` 또는가에서 관리하는 리소스에서 `HadoopActivity` 실행되는지 AWS Data Pipeline 또는 자체 관리형 리소스에서 실행되는지에 따라 달라집니다.

에서 관리하는 리소스를 사용하는 경우 `EmrCluster` 객체`bootstrapAction`에를 AWS Data Pipeline추가합니다. `bootstrapAction`은(는) 복사할 스크립트와 Jar 파일을 인수로 지정합니다. `EmrCluster` 객체당 최대 255개의 `bootstrapAction` 필드를 추가할 수 있으며 `bootstrapAction` 필드를 이미 부트스트랩 작업이 있는 `EmrCluster` 객체에 추가할 수 있습니다.

이 스크립트를 부트스트랩 작업으로 지정하려면 다음 구문을 사용하세요. 여기서 `JarFileRegion`은(는) Jar 파일이 저장되는 리전이고, 각 *MyJarFile *n**은 Amazon S3에서 Hadoop 클래스 경로로 복사할 Jar 파일의 절대 경로입니다. 기본적으로 Hadoop 클래스 경로에 있는 Jar 파일은 지정하지 마십시오.

```
s3://datapipeline-MyRegion/MyRegion/bootstrap-actions/latest/TaskRunner/copy-jars-to-hadoop-classpath.sh,JarFileRegion,MyJarFile1,MyJarFile2[, ...]
```

다음 예제는 Amazon S3에 있는 Jar 파일 두 개(`my-jar-file.jar` 및 `emr-dynamodb-tool-4.14.0-jar-with-dependencies.jar`)를 복사하는 부트스트랩 작업을 지정합니다. 이 예에서 사용되는 리전은 us-west-2입니다.

```
{
  "id" : "MyEmrCluster",
  "type" : "EmrCluster",
  "keyPair" : "my-key-pair",
  "masterInstanceType" : "m5.xlarge",
  "coreInstanceType" : "m5.xlarge",
  "coreInstanceCount" : "2",
  "taskInstanceType" : "m5.xlarge",
  "taskInstanceCount": "2",
  "bootstrapAction" : ["s3://datapipeline-us-west-2/us-west-2/bootstrap-actions/latest/TaskRunner/copy-jars-to-hadoop-classpath.sh,us-west-2,s3://path/to/my-jar-file.jar,s3://dynamodb-dpl-us-west-2/emr-ddb-storage-handler/4.14.0/emr-dynamodb-tools-4.14.0-jar-with-dependencies.jar"]
}
```

파이프라인을 저장하고 활성화해야 새 `bootstrapAction`에 대한 변경 사항이 적용됩니다.

자체 관리형 리소스를 사용하는 경우, 스크립트를 클러스터 인스턴스로 다운로드하고 SSH를 사용하여 명령줄에서 실행할 수 있습니다. 스크립트는 `/etc/hadoop/conf/shellprofile.d`(이)라는 이름이 지정된 디렉터리와 해당 디렉터리에 `datapipeline-jars.sh`(이)라는 이름의 파일을 생성합니다. 명령줄 인수로 제공된 jar 파일은 스크립트에서 만든 `/home/hadoop/datapipeline_jars`(이)라는 디렉터리에 복사됩니다. 클러스터가 다르게 설정된 경우 스크립트를 다운로드한 후 적절하게 수정하세요.

명령줄에서 스크립트를 실행하는 구문은 이전 예제에 표시된 `bootstrapAction`을(를) 사용하는 것과 약간 다릅니다. 다음 예제에서 볼 수 있듯이 같이 인수 간에 쉼표 대신 스페이스를 사용합니다.

```
./copy-jars-to-hadoop-classpath.sh us-west-2 s3://path/to/my-jar-file.jar s3://dynamodb-dpl-us-west-2/emr-ddb-storage-handler/4.14.0/emr-dynamodb-tools-4.14.0-jar-with-dependencies.jar
```

## Amazon EMR 권한
<a name="w2aac52c17b9c11"></a>

사용자 지정 IAM 역할을 생성하는 경우, 작업을 수행하기 위해 클러스터에 필요한 최소 권한을 신중하게 고려하세요. Amazon S3에 있는 파일, Amazon RDS Amazon Redshift 또는 DynamoDB에 있는 데이터와 같은 필수 리소스에 권한을 부여해야 합니다. `visibleToAllUsers`를 false로 설정하려면 역할에 적절한 해당 권한이 있어야 합니다. `DataPipelineDefaultRole`에는 해당 권한이 없음을 참조하세요. `EmrCluster` 객체 역할로서 `DataPipelineDefaultRole` 역할 및 `DefaultDataPipelineResourceRole` 객체 역할의 조합을 제공하거나 이런 목적을 위해 직접 역할을 생성해야 합니다.

## 구문
<a name="emrcluster-syntax"></a>


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 다른 객체로 일정 참조를 지정합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": \$1"ref": "DefaultSchedule"\$1 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체, 예: "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| actionOnResourceFailure | 이 리소스의 리소스 실패 후 취한 조치입니다. 유효 값은 지정 시간 동안 클러스터의 모든 작업을 재시도하는 "retryall"과 "retrynone"입니다. | 문자열 | 
| actionOnTaskFailure | 이 리소스의 작업 실패 후 취한 조치입니다. 유효 값은 클러스터를 종료하지 않는 "continue"와 "terminate"입니다. | 문자열 | 
| additionalMasterSecurityGroupIds | EMR 클러스터의 추가 마스터 보안 그룹의 식별자로, sg-01XXXX6a 형식을 따릅니다. 자세한 내용은 Amazon EMR 관리 안내서의 [Amazon EMR 추가 보안 그룹](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-additional-sec-groups.html)을 참조하세요. | 문자열 | 
| additionalSlaveSecurityGroupIds | EMR 클러스터의 추가 슬레이브 보안 그룹의 식별자로, sg-01XXXX6a 형식을 따릅니다. | 문자열 | 
| amiVersion | 클러스터 노드를 설치할 때 Amazon EMR이 사용하는 Amazon Machine Image(AMI) 버전입니다. 자세한 내용은 [Amazon EMR 관리 안내서](https://docs.aws.amazon.com/emr/latest/ManagementGuide/)를 참조하세요. | 문자열 | 
| 애플리케이션 | 쉼표로 구분된 인수가 있는 클러스터에 설치하는 애플리케이션입니다. 기본적으로 Hive 및 Pig가 설치됩니다. 이 파라미터는 Amazon EMR 버전 4.0 이상에만 적용됩니다. | 문자열 | 
| attemptStatus | 원격 활동에서 가장 최근에 보고한 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| availabilityZone | 클러스터를 실행할 가용 영역입니다. | 문자열 | 
| bootstrapAction | 클러스터가 시작될 때 실행할 작업입니다. 쉼표로 구분된 인수를 지정할 수 있습니다. 최대 255개까지 여러 작업을 지정하려면 여러 bootstrapAction 필드를 추가합니다. 기본 동작은 부트스트랩 작업이 없는 클러스터를 시작하는 것입니다. | 문자열 | 
| 구성 | Amazon EMR에 대한 구성. 이 파라미터는 Amazon EMR 버전 4.0 이상에만 적용됩니다. | 참조 객체, 예:"configuration":\$1"ref":"myEmrConfigurationId"\$1 | 
| coreInstanceBidPrice | Amazon EC2 인스턴스에 대해 지불하고자 하는 최고 스팟 가격입니다. 입찰 가격이 정해지면 Amazon EMR은 인스턴스 그룹에 대해 스팟 인스턴스를 활성화합니다. 달러 단위로 지정됩니다. | 문자열 | 
| coreInstanceCount | 클러스터에 사용할 코어 노드의 수입니다. | Integer | 
| coreInstanceType | 코어 노드에 사용할 Amazon EC2 인스턴스의 유형입니다. [지원된 Amazon EMR 클러스터에 대한 Amazon EC2 인스턴스](dp-emr-supported-instance-types.md)을(를) 참조하세요. | 문자열 | 
| coreGroupConfiguration | Amazon EMR 클러스터 코어 인스턴스 그룹의 구성. 이 파라미터는 Amazon EMR 버전 4.0 이상에만 적용됩니다. | 참조 객체, 예: “configuration”: \$1“ref”: “myEmrConfigurationId”\$1 | 
| coreEbsConfiguration | Amazon EMR 클러스터의 코어 그룹에서 각 코어 노드에 연결될 Amazon EBS 볼륨의 구성입니다. 자세한 내용을 알아보려면 Amazon EC2 사용 설명서의 [EBS 최적화를 지원하는 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html)을 참조하세요. | 참조 객체, 예: “coreEbsConfiguration”: \$1“ref”: “myEbsConfiguration”\$1 | 
| customAmiId | Amazon EMR 릴리스 5.7.0 이상에만 적용됩니다. Amazon EMR이 Amazon EC2 인스턴스를 프로비저닝할 때 사용할 사용자 지정 AMI의 AMI ID를 지정합니다. 부트스트랩 작업 대신 클러스터 노드 구성을 사용자 지정하는 데 사용할 수도 있습니다. 자세한 내용은 Amazon EMR 관리 안내서에서 다음 항목을 참조하세요. [사용자 지정 AMI 사용](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html) | 문자열 | 
| EbsBlockDeviceConfig |  인스턴스 그룹과 연결된 요청한 Amazon EBS 블록 디바이스의 구성입니다. 인스턴스 그룹의 각 인스턴스와 연결될 지정된 개수의 볼륨을 포함합니다. `volumesPerInstance` 및 `volumeSpecification`을 포함합니다. 여기서, [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/datapipeline/latest/DeveloperGuide/dp-object-emrcluster.html)  | 참조 객체, 예: “EbsBlockDeviceConfig”: \$1“ref”: “myEbsBlockDeviceConfig”\$1 | 
| emrManagedMasterSecurityGroupId | Amazon EMR 클러스터의 마스터 보안 그룹 식별자로, sg-01XXXX6a 형식을 따릅니다. 자세한 내용을 알아보려면 Amazon EMR 관리 안내서의 [인스턴스 플릿 구성](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-groups.html)을 참조하세요. | 문자열 | 
| emrManagedSlaveSecurityGroupId | Amazon EMR 클러스터의 슬레이브 보안 그룹 식별자로, sg-01XXXX6a 형식을 따릅니다. | 문자열 | 
| enableDebugging | Amazon EMR 클러스터에서 디버깅을 활성화합니다. | 문자열 | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| hadoopSchedulerType | 클러스터의 스케줄러 유형입니다. 유효한 형식은  PARALLEL\$1FAIR\$1SCHEDULING, PARALLEL\$1CAPACITY\$1SCHEDULING, 및  DEFAULT\$1SCHEDULER입니다. | 열거 | 
| httpProxy | 클라이언트가 AWS 서비스에 연결할 때 사용할 프록시 호스트입니다. | 참조 객체. 예: "httpProxy":\$1"ref":"myHttpProxyId"\$1 | 
| initTimeout | 리소스가 시작되기 전까지의 대기 시간입니다. | Period | 
| keyPair | Amazon EMR 클러스터의 마스터 노드에 로그인할 때 사용하는 Amazon EC2 키 페어입니다. | 문자열 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| masterInstanceBidPrice | Amazon EC2 인스턴스에 대해 지불하고자 하는 최고 스팟 가격입니다. 0\$120.00 사이의 십진수 값을 지정합니다. 달러 단위로 지정됩니다. 이 값을 설정하면 Amazon EMR 클러스터 마스터 노드의 스팟 인스턴스가 활성화됩니다. 입찰 가격이 정해지면 Amazon EMR은 인스턴스 그룹에 대해 스팟 인스턴스를 활성화합니다. | 문자열 | 
| masterInstanceType | 마스터 노드에 사용할 Amazon EC2 인스턴스의 유형입니다. [지원된 Amazon EMR 클러스터에 대한 Amazon EC2 인스턴스](dp-emr-supported-instance-types.md)을(를) 참조하세요. | 문자열 | 
| masterGroupConfiguration | Amazon EMR 클러스터 마스터 인스턴스 그룹의 구성입니다. 이 파라미터는 Amazon EMR 버전 4.0 이상에만 적용됩니다. | 참조 객체, 예: “configuration”: \$1“ref”: “myEmrConfigurationId”\$1 | 
| masterEbsConfiguration | Amazon EMR 클러스터의 마스터 그룹에서 각 마스터 노드에 연결될 Amazon EBS 볼륨의 구성입니다. 자세한 내용을 알아보려면 Amazon EC2 사용 설명서의 [EBS 최적화를 지원하는 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html)을 참조하세요. | 참조 객체, 예: “masterEbsConfiguration”: \$1“ref”: “myEbsConfiguration”\$1 | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수. | Integer | 
| onFail | 현재 객체에 장애가 있을 때 실행할 작업입니다. | 참조 객체, 예:"onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 여전히 완료되지 않은 경우에 트리거해야 하는 작업입니다. | 참조 객체, 예:"onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체가 성공하면 실행할 작업입니다. | 참조 객체, 예:"onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속해 올 현재 객체의 상위 객체입니다. | 참조 객체, 예:"parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 Amazon S3 URI(예: 's3://BucketName/Key/')입니다. | 문자열 | 
| 리전 | Amazon EMR 클러스터가 실행되어야 할 리전의 코드입니다. 기본적으로 이 클러스터는 파이프라인과 동일한 리전에서 실행됩니다. 종속 데이터 세트와 동일한 리전에서 클러스터를 실행할 수 있습니다. | 열거 | 
| releaseLabel | EMR 클러스터용 릴리스 레이블. | 문자열 | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| resourceRole | 가 Amazon EMR 클러스터를 생성하는 데 AWS Data Pipeline 사용하는 IAM 역할입니다. 기본 역할은 DataPipelineDefaultRole입니다. | 문자열 | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| 역할 | EC2 노드를 생성하기 위해 Amazon EMR로 전달되는 IAM 역할입니다. | 문자열 | 
| runsOn | 이 객체에서는 이 필드가 허용되지 않습니다. | 참조 객체, 예:"runsOn":\$1"ref":"myResourceId"\$1 | 
| securityConfiguration | 클러스터에 적용된 EMR 보안 구성의 식별자 이름입니다. 이 파라미터는 Amazon EMR 버전 4.8.0. 이상에만 적용됩니다. | 문자열 | 
| serviceAccessSecurityGroupId | Amazon EMR 클러스터의 서비스 액세스 보안 그룹의 식별자입니다. | 문자열. sg-01XXXX6a 형식을 따릅니다. 예: sg-1234abcd. | 
| scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 값은 cron, ondemand 및 timeseries입니다. timeseries 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정됩니다. cron 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. ondemand 일정을 사용하면 활성화될 때마다 한 번씩 파이프라인을 실행할 수 있습니다. 그러므로 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. ondemand 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 scheduleType이어야 합니다. ondemand 파이프라인을 사용하려면 후속 실행마다 ActivatePipeline 작업을 호출합니다. | 열거 | 
| subnetId | Amazon EMR 클러스터를 시작할 서브넷의 식별자입니다. | 문자열 | 
| supportedProducts | Amazon EMR 클러스터에 타사 소프트웨어를 설치하는 파라미터입니다(예: 타사 Hadoop 배포 버전 설치). | 문자열 | 
| taskInstanceBidPrice | EC2 인스턴스에 대해 지불하고자 하는 최고 스팟 가격입니다. 0\$120.00 사이의 십진수 값을 지정합니다. 달러 단위로 지정됩니다. 입찰 가격이 정해지면 Amazon EMR은 인스턴스 그룹에 대해 스팟 인스턴스를 활성화합니다. | 문자열 | 
| taskInstanceCount | Amazon EMR 클러스터에 사용할 작업 노드의 수입니다. | Integer | 
| taskInstanceType | 작업 노드에 사용할 Amazon EC2 인스턴스의 유형입니다. | 문자열 | 
| taskGroupConfiguration | Amazon EMR 클러스터 작업 인스턴스 그룹의 구성입니다. 이 파라미터는 Amazon EMR 버전 4.0 이상에만 적용됩니다. | 참조 객체, 예: “configuration”: \$1“ref”: “myEmrConfigurationId”\$1 | 
| taskEbsConfiguration | Amazon EMR 클러스터의 작업 그룹에서 각 작업 노드에 연결될 Amazon EBS 볼륨의 구성입니다. 자세한 내용을 알아보려면 Amazon EC2 사용 설명서의 [EBS 최적화를 지원하는 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html)을 참조하세요. | 참조 객체, 예: “taskEbsConfiguration”: \$1“ref”: “myEbsConfiguration”\$1 | 
| terminateAfter | 이 여러 시간 이후에 리소스를 종료합니다. | Integer | 
| VolumeSpecification |   Amazon EMR 클러스터의 Amazon EC2 인스턴스에 연결된 Amazon EBS 볼륨에 대해 요청될 기비바이트(GiB)의 볼륨 유형, IOPS 및 크기 같은 Amazon EBS 볼륨 사양입니다. 이 노드는 코어, 마스터 또는 작업 노드일 수 있습니다. `VolumeSpecification`에는 다음이 포함됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/datapipeline/latest/DeveloperGuide/dp-object-emrcluster.html)  | 참조 객체, 예: “VolumeSpecification”: \$1“ref”: “myVolumeSpecification”\$1 | 
| useOnDemandOnLastAttempt | 리소스를 마지막으로 요청할 때 스팟 인스턴스가 아니라 온디맨드 인스턴스를 요청합니다. 이렇게 하면 이전의 시도가 모두 실패했어도 마지막 시도가 중단되지 않습니다. | 부울 | 
| workerGroup | 이 객체에서 허용되지 않는 필드. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | Amazon EMR 활동을 시도할 때만 사용할 수 있는 단계 로그. | 문자열 | 
| errorId | 이 객체가 실패한 경우의 오류 ID입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 오류 메시지입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @failureReason | 리소스 실패 이유입니다. | 문자열 | 
| @finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | Amazon EMR 활동을 시도할 때 사용할 수 있는 Hadoop 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 나타내는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체를 생성할 당시의 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 수명 주기상 객체의 위치. 구성요소 객체가 인스턴스 객체를 트리거하고, 인스턴스 객체는 시도 객체를 실행합니다. | 문자열 | 

# 예제
<a name="emrcluster-example"></a>

다음은 이 객체 유형의 예제입니다.

**Topics**
+ [hadoopVersion을 사용하여 Amazon EMR 클러스터 시작](emrcluster-example-launch.md)
+ [릴리스 레이블이 emr-4.x 이상인 Amazon EMR 클러스터를 시작합니다.](emrcluster-example-release-label.md)
+ [Amazon EMR 클러스터에 추가 소프트웨어 설치](emrcluster-example-install-software.md)
+ [3.x 릴리스에서 서버 측 암호화를 비활성화](emrcluster-example1-disable-encryption.md)
+ [4.x 릴리스에서 서버 측 암호화를 비활성화](emrcluster-example2-disable-encryption.md)
+ [Hadoop KMS ACL을 구성하고 HDFS에서 암호화 영역 생성](emrcluster-example-hadoop-kms.md)
+ [사용자 지정 IAM 역할을 지정](emrcluster-example-custom-iam-roles.md)
+ [AWS SDK for Java에서 EmrCluster 리소스 사용](emrcluster-example-java.md)
+ [프라이빗 서브넷에서 Amazon EMR 클러스터 구성](emrcluster-example-private-subnet.md)
+ [클러스터 노드에 EBS 볼륨 연결](emrcluster-example-ebs.md)

# hadoopVersion을 사용하여 Amazon EMR 클러스터 시작
<a name="emrcluster-example-launch"></a>

**Example**  <a name="example1"></a>
다음 예제는 AMI 버전 1.0 및 Hadoop 0.20.을 사용하여 Amazon EMR 클러스터를 시작합니다.  

```
{
  "id" : "MyEmrCluster",
  "type" : "EmrCluster",
  "hadoopVersion" : "0.20",
  "keyPair" : "my-key-pair",
  "masterInstanceType" : "m3.xlarge",
  "coreInstanceType" : "m3.xlarge",
  "coreInstanceCount" : "10",
  "taskInstanceType" : "m3.xlarge",
  "taskInstanceCount": "10",
  "bootstrapAction" : ["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,arg1,arg2,arg3","s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop/configure-other-stuff,arg1,arg2"]
}
```

# 릴리스 레이블이 emr-4.x 이상인 Amazon EMR 클러스터를 시작합니다.
<a name="emrcluster-example-release-label"></a>

**Example**  
다음 예제는 최신 `releaseLabel` 필드를 사용하여 Amazon EMR 클러스터를 시작합니다.  

```
{
  "id" : "MyEmrCluster",
  "type" : "EmrCluster",
  "keyPair" : "my-key-pair",
  "masterInstanceType" : "m3.xlarge",
  "coreInstanceType" : "m3.xlarge",
  "coreInstanceCount" : "10",
  "taskInstanceType" : "m3.xlarge",
  "taskInstanceCount": "10",
  "releaseLabel": "emr-4.1.0",
  "applications": ["spark", "hive", "pig"],
  "configuration": {"ref":"myConfiguration"}  
}
```

# Amazon EMR 클러스터에 추가 소프트웨어 설치
<a name="emrcluster-example-install-software"></a>

**Example**  <a name="example2"></a>
`EmrCluster`은(는) Amazon EMR 클러스터에 타사 소프트웨어를 설치하는 `supportedProducts` 필드를 제공합니다(예: MapR과 같은 Hadoop의 사용자 지정 배포 설치). 타사 소프트웨어의 쉼표로 분리된 인수 목록에 대한 읽기 및 실행을 허용합니다. 다음 예제는 `EmrCluster`의 `supportedProducts` 필드를 사용하여 설치된 Karmasphere Analytics로 사용자 지정 MapR M3 에디션 클러스터를 생성하고 이 클러스터에서 `EmrActivity` 객체를 실행하는 방법을 보여줍니다.  

```
{
    "id": "MyEmrActivity",
    "type": "EmrActivity",
    "schedule": {"ref": "ResourcePeriod"},
    "runsOn": {"ref": "MyEmrCluster"},
    "postStepCommand": "echo Ending job >> /mnt/var/log/stepCommand.txt",    
    "preStepCommand": "echo Starting job > /mnt/var/log/stepCommand.txt",
    "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output, \
     hdfs:///output32113/,-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate"
  },
  {    
    "id": "MyEmrCluster",
    "type": "EmrCluster",
    "schedule": {"ref": "ResourcePeriod"},
    "supportedProducts": ["mapr,--edition,m3,--version,1.2,--key1,value1","karmasphere-enterprise-utility"],
    "masterInstanceType": "m3.xlarge",
    "taskInstanceType": "m3.xlarge"
}
```

# 3.x 릴리스에서 서버 측 암호화를 비활성화
<a name="emrcluster-example1-disable-encryption"></a>

**Example**  <a name="example3"></a>
에서 생성한 하둡 버전 2.x를 사용하는 `EmrCluster` 활동은 기본적으로 서버 측 암호화를 AWS Data Pipeline 활성화합니다. 서버 측 암호화를 비활성화하려면 클러스터 객체 정의에서 부트스트랩 작업을 지정해야 합니다.  
다음 예제에서는 서버 측 암호화가 비활성화된 `EmrCluster` 활동을 만듭니다.  

```
{  
   "id":"NoSSEEmrCluster",
   "type":"EmrCluster",
   "hadoopVersion":"2.x",
   "keyPair":"my-key-pair",
   "masterInstanceType":"m3.xlarge",
   "coreInstanceType":"m3.large",
   "coreInstanceCount":"10",
   "taskInstanceType":"m3.large",
   "taskInstanceCount":"10",
   "bootstrapAction":["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-e, fs.s3.enableServerSideEncryption=false"]
}
```

# 4.x 릴리스에서 서버 측 암호화를 비활성화
<a name="emrcluster-example2-disable-encryption"></a>

**Example**  <a name="example4"></a>
`EmrConfiguration` 객체를 사용하여 서버 측 암호화를 비활성화해야 합니다.  
다음 예제에서는 서버 측 암호화가 비활성화된 `EmrCluster` 활동을 만듭니다.  

```
   {
      "name": "ReleaseLabelCluster",
      "releaseLabel": "emr-4.1.0",
      "applications": ["spark", "hive", "pig"],
      "id": "myResourceId",
      "type": "EmrCluster",
      "configuration": {
        "ref": "disableSSE"
      }
    },
    {
      "name": "disableSSE",
      "id": "disableSSE",
      "type": "EmrConfiguration",
      "classification": "emrfs-site",
      "property": [{
        "ref": "enableServerSideEncryption"
      }
      ]
    },
    {
      "name": "enableServerSideEncryption",
      "id": "enableServerSideEncryption",
      "type": "Property",
      "key": "fs.s3.enableServerSideEncryption",
      "value": "false"
    }
```

# Hadoop KMS ACL을 구성하고 HDFS에서 암호화 영역 생성
<a name="emrcluster-example-hadoop-kms"></a>

**Example**  <a name="example5"></a>
다음 객체는 Hadoop KMS에 대한 ACL을 생성하고 HDFS에서 암호화 영역과 해당 암호화 키를 생성합니다.  

```
{
      "name": "kmsAcls",
      "id": "kmsAcls",
      "type": "EmrConfiguration",
      "classification": "hadoop-kms-acls",
      "property": [
        {"ref":"kmsBlacklist"},
        {"ref":"kmsAcl"}
      ]
    },
    {
      "name": "hdfsEncryptionZone",
      "id": "hdfsEncryptionZone",
      "type": "EmrConfiguration",
      "classification": "hdfs-encryption-zones",
      "property": [
        {"ref":"hdfsPath1"},
        {"ref":"hdfsPath2"}
      ]
    },
    {
      "name": "kmsBlacklist",
      "id": "kmsBlacklist",
      "type": "Property",
      "key": "hadoop.kms.blacklist.CREATE",
      "value": "foo,myBannedUser"
    },
    {
      "name": "kmsAcl",
      "id": "kmsAcl",
      "type": "Property",
      "key": "hadoop.kms.acl.ROLLOVER",
      "value": "myAllowedUser"
    },
    {
      "name": "hdfsPath1",
      "id": "hdfsPath1",
      "type": "Property",
      "key": "/myHDFSPath1",
      "value": "path1_key"
    },
    {
      "name": "hdfsPath2",
      "id": "hdfsPath2",
      "type": "Property",
      "key": "/myHDFSPath2",
      "value": "path2_key"
    }
```

# 사용자 지정 IAM 역할을 지정
<a name="emrcluster-example-custom-iam-roles"></a>

**Example**  <a name="example6"></a>
기본적으로는 `DataPipelineDefaultRole` 사용자를 대신하여 리소스를 생성하기 위해 Amazon EMR 서비스 역할 및 Amazon EC2 인스턴스 프로파일`DataPipelineDefaultResourceRole`로 AWS Data Pipeline 전달합니다. 그러나 사용자 지정 Amazon EMR 서비스 역할과 사용자 지정 인스턴스 프로파일을 생성하고 대신 사용할 수 있습니다. AWS Data Pipeline 에는 사용자 지정 역할을 사용하여 클러스터를 생성할 수 있는 충분한 권한이 있어야 하며를 신뢰할 수 있는 엔 AWS Data Pipeline 터티로 추가해야 합니다.  
다음 예시 객체는 Amazon EMR 클러스터에 대한 사용자 지정 역할을 지정합니다.  

```
{  
   "id":"MyEmrCluster",
   "type":"EmrCluster",
   "hadoopVersion":"2.x",
   "keyPair":"my-key-pair",
   "masterInstanceType":"m3.xlarge",
   "coreInstanceType":"m3.large",
   "coreInstanceCount":"10",
   "taskInstanceType":"m3.large",
   "taskInstanceCount":"10",
   "role":"emrServiceRole",
   "resourceRole":"emrInstanceProfile"
}
```

# AWS SDK for Java에서 EmrCluster 리소스 사용
<a name="emrcluster-example-java"></a>

**Example**  <a name="example7"></a>
다음 예제에서는 `EmrCluster` 및 `EmrActivity`을(를) 사용하여 Amazon EMR 4.x 클러스터를 생성해 Java SDK를 사용하는 Spark 단계를 실행하는 방법을 알아봅니다.  

```
public class dataPipelineEmr4 {

  public static void main(String[] args) {
    
	AWSCredentials credentials = null;
	credentials = new ProfileCredentialsProvider("/path/to/AwsCredentials.properties","default").getCredentials();
	DataPipelineClient dp = new DataPipelineClient(credentials);
	CreatePipelineRequest createPipeline = new CreatePipelineRequest().withName("EMR4SDK").withUniqueId("unique");
	CreatePipelineResult createPipelineResult = dp.createPipeline(createPipeline);
	String pipelineId = createPipelineResult.getPipelineId();
    
	PipelineObject emrCluster = new PipelineObject()
	    .withName("EmrClusterObj")
	    .withId("EmrClusterObj")
	    .withFields(
			new Field().withKey("releaseLabel").withStringValue("emr-4.1.0"),
			new Field().withKey("coreInstanceCount").withStringValue("3"),
			new Field().withKey("applications").withStringValue("spark"),
			new Field().withKey("applications").withStringValue("Presto-Sandbox"),
			new Field().withKey("type").withStringValue("EmrCluster"),
			new Field().withKey("keyPair").withStringValue("myKeyName"),
			new Field().withKey("masterInstanceType").withStringValue("m3.xlarge"),
			new Field().withKey("coreInstanceType").withStringValue("m3.xlarge")        
			);
  
	PipelineObject emrActivity = new PipelineObject()
	    .withName("EmrActivityObj")
	    .withId("EmrActivityObj")
	    .withFields(
			new Field().withKey("step").withStringValue("command-runner.jar,spark-submit,--executor-memory,1g,--class,org.apache.spark.examples.SparkPi,/usr/lib/spark/lib/spark-examples.jar,10"),
			new Field().withKey("runsOn").withRefValue("EmrClusterObj"),
			new Field().withKey("type").withStringValue("EmrActivity")
			);
      
	PipelineObject schedule = new PipelineObject()
	    .withName("Every 15 Minutes")
	    .withId("DefaultSchedule")
	    .withFields(
			new Field().withKey("type").withStringValue("Schedule"),
			new Field().withKey("period").withStringValue("15 Minutes"),
			new Field().withKey("startAt").withStringValue("FIRST_ACTIVATION_DATE_TIME")
			);
      
	PipelineObject defaultObject = new PipelineObject()
	    .withName("Default")
	    .withId("Default")
	    .withFields(
			new Field().withKey("failureAndRerunMode").withStringValue("CASCADE"),
			new Field().withKey("schedule").withRefValue("DefaultSchedule"),
			new Field().withKey("resourceRole").withStringValue("DataPipelineDefaultResourceRole"),
			new Field().withKey("role").withStringValue("DataPipelineDefaultRole"),
			new Field().withKey("pipelineLogUri").withStringValue("s3://myLogUri"),
			new Field().withKey("scheduleType").withStringValue("cron")
			);     
      
	List<PipelineObject> pipelineObjects = new ArrayList<PipelineObject>();
    
	pipelineObjects.add(emrActivity);
	pipelineObjects.add(emrCluster);
	pipelineObjects.add(defaultObject);
	pipelineObjects.add(schedule);
    
	PutPipelineDefinitionRequest putPipelineDefintion = new PutPipelineDefinitionRequest()
	    .withPipelineId(pipelineId)
	    .withPipelineObjects(pipelineObjects);
    
	PutPipelineDefinitionResult putPipelineResult = dp.putPipelineDefinition(putPipelineDefintion);
	System.out.println(putPipelineResult);
    
	ActivatePipelineRequest activatePipelineReq = new ActivatePipelineRequest()
	    .withPipelineId(pipelineId);
	ActivatePipelineResult activatePipelineRes = dp.activatePipeline(activatePipelineReq);
	
      System.out.println(activatePipelineRes);
      System.out.println(pipelineId);
    
    }

}
```

# 프라이빗 서브넷에서 Amazon EMR 클러스터 구성
<a name="emrcluster-example-private-subnet"></a>

**Example**  <a name="example8"></a>
이 예제는 클러스터를 VPC의 프라이빗 서브넷에서 실행하는 구성을 포함합니다. 자세한 내용은 *Amazon EMR 관리 가이드*의 [Amazon EMR 클러스터를 VPC에서 시작](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-vpc-launching-job-flows.html)을 참조하세요. 이 구성은 선택 사항입니다. `EmrCluster` 객체를 사용하는 모든 파이프라인에서 이 구성을 사용할 수 있습니다.  
프라이빗 서브넷에서 Amazon EMR 클러스터를 실행하려면 `SubnetId`, `emrManagedMasterSecurityGroupId`, `emrManagedSlaveSecurityGroupId` 및 `serviceAccessSecurityGroupId`을(를) `EmrCluster` 구성에서 지정합니다.  

```
{
  "objects": [
    {
      "output": {
        "ref": "S3BackupLocation"
      },
      "input": {
        "ref": "DDBSourceTable"
      },
      "maximumRetries": "2",
      "name": "TableBackupActivity",
      "step": "s3://dynamodb-emr-#{myDDBRegion}/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#{output.directoryPath},#{input.tableName},#{input.readThroughputPercent}",
      "id": "TableBackupActivity",
      "runsOn": {
        "ref": "EmrClusterForBackup"
      },
      "type": "EmrActivity",
      "resizeClusterBeforeRunning": "false"
    },
    {
      "readThroughputPercent": "#{myDDBReadThroughputRatio}",
      "name": "DDBSourceTable",
      "id": "DDBSourceTable",
      "type": "DynamoDBDataNode",
      "tableName": "#{myDDBTableName}"
    },
    {
      "directoryPath": "#{myOutputS3Loc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}",
      "name": "S3BackupLocation",
      "id": "S3BackupLocation",
      "type": "S3DataNode"
    },
    {
      "name": "EmrClusterForBackup",
      "coreInstanceCount": "1",
      "taskInstanceCount": "1",
      "taskInstanceType": "m4.xlarge",
      "coreInstanceType": "m4.xlarge",
      "releaseLabel": "emr-4.7.0",
      "masterInstanceType": "m4.xlarge",
      "id": "EmrClusterForBackup",
      "subnetId": "#{mySubnetId}",
      "emrManagedMasterSecurityGroupId": "#{myMasterSecurityGroup}",
      "emrManagedSlaveSecurityGroupId": "#{mySlaveSecurityGroup}",
      "serviceAccessSecurityGroupId": "#{myServiceAccessSecurityGroup}",
      "region": "#{myDDBRegion}",
      "type": "EmrCluster",
      "keyPair": "user-key-pair"
    },
    {
      "failureAndRerunMode": "CASCADE",
      "resourceRole": "DataPipelineDefaultResourceRole",
      "role": "DataPipelineDefaultRole",
      "pipelineLogUri": "#{myPipelineLogUri}",
      "scheduleType": "ONDEMAND",
      "name": "Default",
      "id": "Default"
    }
  ],
  "parameters": [
    {
      "description": "Output S3 folder",
      "id": "myOutputS3Loc",
      "type": "AWS::S3::ObjectKey"
    },
    {
      "description": "Source DynamoDB table name",
      "id": "myDDBTableName",
      "type": "String"
    },
    {
      "default": "0.25",
      "watermark": "Enter value between 0.1-1.0",
      "description": "DynamoDB read throughput ratio",
      "id": "myDDBReadThroughputRatio",
      "type": "Double"
    },
    {
      "default": "us-east-1",
      "watermark": "us-east-1",
      "description": "Region of the DynamoDB table",
      "id": "myDDBRegion",
      "type": "String"
    }
  ],
  "values": {
     "myDDBRegion": "us-east-1",
      "myDDBTableName": "ddb_table",
      "myDDBReadThroughputRatio": "0.25",
      "myOutputS3Loc": "s3://s3_path",
      "mySubnetId": "subnet_id",
      "myServiceAccessSecurityGroup":  "service access security group",
      "mySlaveSecurityGroup": "slave security group",
      "myMasterSecurityGroup": "master security group",
      "myPipelineLogUri": "s3://s3_path"
  }
}
```

# 클러스터 노드에 EBS 볼륨 연결
<a name="emrcluster-example-ebs"></a>

**Example**  <a name="example8"></a>
EBS 볼륨을 파이프라인 내에서 EMR 클러스터의 노드 유형 하나에 연결할 수 있습니다. EBS 볼륨을 노드에 연결하려면 `EmrCluster` 구성에서 `coreEbsConfiguration`, `masterEbsConfiguration` 및 `TaskEbsConfiguration`을 사용합니다.  
이 Amazon EMR 클러스터 예제에는 마스터, 작업 및 코어 노드에 대해 Amazon EBS 볼륨이 사용됩니다. 자세한 내용을 알아보려면 *Amazon EMR 관리 안내서*의 [Using Automatic Scaling in Amazon EMR의 Amazon EBS 볼륨](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-storage.html)을 참조하세요.  
이러한 구성은 선택 사항입니다. `EmrCluster` 객체를 사용하는 모든 파이프라인에서 이러한 구성을 사용할 수 있습니다.  
파이프라인에서 `EmrCluster` 객체 구성을 클릭하고 **Master EBS Configuration**(마스터 EBS 구성), **Core EBS Configuration**(코어 EBS 구성) 또는 **Task EBS Configuration**(작업 EBS 구성) 중 하나를 선택한 후, 다음 예제와 비슷한 구성 세부 정보를 입력합니다.  

```
{
  "objects": [
    {
      "output": {
        "ref": "S3BackupLocation"
      },
      "input": {
        "ref": "DDBSourceTable"
      },
      "maximumRetries": "2",
      "name": "TableBackupActivity",
      "step": "s3://dynamodb-emr-#{myDDBRegion}/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#{output.directoryPath},#{input.tableName},#{input.readThroughputPercent}",
      "id": "TableBackupActivity",
      "runsOn": {
        "ref": "EmrClusterForBackup"
      },
      "type": "EmrActivity",
      "resizeClusterBeforeRunning": "false"
    },
    {
      "readThroughputPercent": "#{myDDBReadThroughputRatio}",
      "name": "DDBSourceTable",
      "id": "DDBSourceTable",
      "type": "DynamoDBDataNode",
      "tableName": "#{myDDBTableName}"
    },
    {
      "directoryPath": "#{myOutputS3Loc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}",
      "name": "S3BackupLocation",
      "id": "S3BackupLocation",
      "type": "S3DataNode"
    },
    {
      "name": "EmrClusterForBackup",
      "coreInstanceCount": "1",
      "taskInstanceCount": "1",
      "taskInstanceType": "m4.xlarge",
      "coreInstanceType": "m4.xlarge",
      "releaseLabel": "emr-4.7.0",
      "masterInstanceType": "m4.xlarge",
      "id": "EmrClusterForBackup",
      "subnetId": "#{mySubnetId}",
      "emrManagedMasterSecurityGroupId": "#{myMasterSecurityGroup}",
      "emrManagedSlaveSecurityGroupId": "#{mySlaveSecurityGroup}",
      "region": "#{myDDBRegion}",
      "type": "EmrCluster",
      "coreEbsConfiguration": {
        "ref": "EBSConfiguration"
      },
      "masterEbsConfiguration": {
        "ref": "EBSConfiguration"
      },
      "taskEbsConfiguration": {
        "ref": "EBSConfiguration"
      },
      "keyPair": "user-key-pair"
    },
    {
       "name": "EBSConfiguration",
        "id": "EBSConfiguration",
        "ebsOptimized": "true",
        "ebsBlockDeviceConfig" : [
            { "ref": "EbsBlockDeviceConfig" }
        ],
        "type": "EbsConfiguration"
    },
    {
        "name": "EbsBlockDeviceConfig",
        "id": "EbsBlockDeviceConfig",
        "type": "EbsBlockDeviceConfig",
        "volumesPerInstance" : "2",
        "volumeSpecification" : {
            "ref": "VolumeSpecification"
        }
    },
    {
      "name": "VolumeSpecification",
      "id": "VolumeSpecification",
      "type": "VolumeSpecification",
      "sizeInGB": "500",
      "volumeType": "io1",
      "iops": "1000"
    },
    {
      "failureAndRerunMode": "CASCADE",
      "resourceRole": "DataPipelineDefaultResourceRole",
      "role": "DataPipelineDefaultRole",
      "pipelineLogUri": "#{myPipelineLogUri}",
      "scheduleType": "ONDEMAND",
      "name": "Default",
      "id": "Default"
    }
  ],
  "parameters": [
    {
      "description": "Output S3 folder",
      "id": "myOutputS3Loc",
      "type": "AWS::S3::ObjectKey"
    },
    {
      "description": "Source DynamoDB table name",
      "id": "myDDBTableName",
      "type": "String"
    },
    {
      "default": "0.25",
      "watermark": "Enter value between 0.1-1.0",
      "description": "DynamoDB read throughput ratio",
      "id": "myDDBReadThroughputRatio",
      "type": "Double"
    },
    {
      "default": "us-east-1",
      "watermark": "us-east-1",
      "description": "Region of the DynamoDB table",
      "id": "myDDBRegion",
      "type": "String"
    }
  ],
  "values": {
     "myDDBRegion": "us-east-1",
      "myDDBTableName": "ddb_table",
      "myDDBReadThroughputRatio": "0.25",
      "myOutputS3Loc": "s3://s3_path",
      "mySubnetId": "subnet_id",
      "mySlaveSecurityGroup": "slave security group",
      "myMasterSecurityGroup": "master security group",
      "myPipelineLogUri": "s3://s3_path"
  }
}
```

## 참고
<a name="emrcluster-seealso"></a>
+ [EmrActivity](dp-object-emractivity.md)

# HttpProxy
<a name="dp-object-httpproxy"></a>

HttpProxy로 자체 프록시를 구성하고 이를 통해 Task Runner에서 AWS Data Pipeline 서비스에 액세스할 수 있습니다. 이 정보를 사용하여 실행 중인 Task Runner를 구성할 필요가 없습니다.

## TaskRunner의 HttpProxy 예제
<a name="example9"></a>

다음 파이프라인 정의는 `HttpProxy` 객체를 보여줍니다.

```
{
  "objects": [
    {
      "schedule": {
        "ref": "Once"
      },
      "pipelineLogUri": "s3://myDPLogUri/path",
      "name": "Default",
      "id": "Default"
    },
    {
      "name": "test_proxy",
      "hostname": "hostname",
      "port": "port",
      "username": "username",
      "*password": "password",
      "windowsDomain": "windowsDomain",
      "type": "HttpProxy",
      "id": "test_proxy",
    },
    {
      "name": "ShellCommand",
      "id": "ShellCommand",
      "runsOn": {
        "ref": "Resource"
      },
      "type": "ShellCommandActivity",
      "command": "echo 'hello world' "
    },
    {
      "period": "1 day",
      "startDateTime": "2013-03-09T00:00:00",
      "name": "Once",
      "id": "Once",
      "endDateTime": "2013-03-10T00:00:00",
      "type": "Schedule"
    },
    {
      "role": "dataPipelineRole",
      "httpProxy": {
        "ref": "test_proxy"
      },
      "actionOnResourceFailure": "retrynone",
      "maximumRetries": "0",
      "type": "Ec2Resource",
      "terminateAfter": "10 minutes",
      "resourceRole": "resourceRole",
      "name": "Resource",
      "actionOnTaskFailure": "terminate",
      "securityGroups": "securityGroups",
      "keyPair": "keyPair",
      "id": "Resource",
      "region": "us-east-1"
    }
  ],
  "parameters": []
}
```

## 구문
<a name="httpproxy-slots"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| hostname | 클라이언트가 AWS 서비스에 연결할 때 사용할 프록시의 호스트. | 문자열 | 
| 포트 | 클라이언트가 AWS 서비스에 연결할 때 사용할 프록시 호스트의 포트. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| \$1암호 | 프록시 비밀번호. | 문자열 | 
| s3NoProxy | Amazon S3에 연결할 때 HTTP 프록시 비활성화 | 부울 | 
| 사용자 이름 | 프록시의 사용자 이름입니다. | 문자열 | 
| windowsDomain | NTLM 프록시의 Windows 도메인 이름입니다. | 문자열 | 
| windowsWorkgroup | NTLM 프록시의 Windows 작업 그룹 이름입니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# 사전 조건
<a name="dp-object-preconditions"></a>

다음은 AWS Data Pipeline 사전 조건 객체입니다.

**Topics**
+ [DynamoDBDataExists](dp-dynamodbdataexists.md)
+ [DynamoDBTableExists](dp-dynamodbtableexists.md)
+ [존재함](dp-object-exists.md)
+ [S3KeyExists](dp-object-S3KeyExists.md)
+ [S3PrefixNotEmpty](dp-object-s3prefixnotempty.md)
+ [ShellCommandPrecondition](dp-object-shellcommandprecondition.md)

# DynamoDBDataExists
<a name="dp-dynamodbdataexists"></a>

 DynamoDB 테이블에 데이터가 존재하는지 확인하는 사전 조건입니다.

## 구문
<a name="dp-dynamodbdataexists-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 역할 | 사전 조건을 실행할 때 사용할 역할을 지정합니다. | 문자열 | 
| tableName | 점검할 DynamoDB 테이블입니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| preconditionTimeout | 아직 충족되지 않은 사전 조건이 '실패'로 표시되기 시작하는 기간 | Period | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| currentRetryCount | 이번 시도에서 사전 조건을 시도한 횟수 | 문자열 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| lastRetryTime | 이번 시도 안에서 사전 조건을 시도한 마지막 횟수 | 문자열 | 
| 노드 | 이 사전 조건이 실행 중인 노드 | 참조 객체. 예: "node":\$1"ref":"myRunnableObjectId"\$1 | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# DynamoDBTableExists
<a name="dp-dynamodbtableexists"></a>

 DynamoDB 테이블이 존재하는지 확인하는 사전 조건입니다.

## 구문
<a name="dp-dynamodbtableexists-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 역할 | 사전 조건을 실행할 때 사용할 역할을 지정합니다. | 문자열 | 
| tableName | 점검할 DynamoDB 테이블입니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| preconditionTimeout | 아직 충족되지 않은 사전 조건이 '실패'로 표시되기 시작하는 기간 | Period | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| currentRetryCount | 이번 시도에서 사전 조건을 시도한 횟수 | 문자열 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| lastRetryTime | 이번 시도 안에서 사전 조건을 시도한 마지막 횟수 | 문자열 | 
| 노드 | 이 사전 조건이 실행 중인 노드 | 참조 객체. 예: "node":\$1"ref":"myRunnableObjectId"\$1 | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# 존재함
<a name="dp-object-exists"></a>

 데이터 노드 객체가 존재하는지 확인합니다.

**참고**  
대신에 시스템이 관리하는 사전 조건을 사용할 것을 권장합니다. 자세한 내용은 [사전 조건](dp-concepts-preconditions.md) 단원을 참조하십시오.

## 예제
<a name="exists-example"></a>

다음은 이 객체 유형의 예제입니다. `InputData` 객체는 이 `Ready` 객체뿐 아니라 동일한 파이프라인 정의 파일에서 정의하려는 다른 객체를 참조합니다. `CopyPeriod`는 `Schedule` 객체입니다.

```
{
  "id" : "InputData",
  "type" : "S3DataNode",
  "schedule" : { "ref" : "CopyPeriod" },
  "filePath" : "s3://amzn-s3-demo-bucket/InputData/#{@scheduledStartTime.format('YYYY-MM-dd-hh:mm')}.csv",
  "precondition" : { "ref" : "Ready" }
},
{
  "id" : "Ready",
  "type" : "Exists"
}
```

## 구문
<a name="exists-syntax"></a>


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| preconditionTimeout | 아직 충족되지 않은 사전 조건이 '실패'로 표시되기 시작하는 기간 | Period | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| 노드 | 이 사전 조건이 실행 중인 노드. | 참조 객체. 예: "node":\$1"ref":"myRunnableObjectId"\$1 | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="exists-seealso"></a>
+ [ShellCommandPrecondition](dp-object-shellcommandprecondition.md)

# S3KeyExists
<a name="dp-object-S3KeyExists"></a>

 Amazon S3 데이터 노드에 키가 존재하는지 확인합니다.

## 예제
<a name="dp-object-S3KeyExists-example"></a>

다음은 이 객체 유형의 예제입니다. `s3Key` 파라미터가 참조하는 키인 `s3://amzn-s3-demo-bucket/mykey`가 존재하면 사전 조건이 트리거됩니다.

```
{
"id" : "InputReady",
"type" : "S3KeyExists",
"role" : "test-role",
"s3Key" : "s3://amzn-s3-demo-bucket/mykey"
}
```

첫 번째 파이프라인이 종료되기를 기다리는 두 번째 파이프라인에서 `S3KeyExists`를 사전 조건으로 사용할 수도 있습니다. 그렇게 하려면 다음을 수행하세요.

1. 첫 번째 파이프라인의 완료가 끝날 때 Amazon S3에 파일을 씁니다.

1. 두 번째 파이프라인에서 `S3KeyExists` 사전 조건을 생성합니다.

## 구문
<a name="S3KeyExists-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 역할 | 사전 조건을 실행할 때 사용할 역할을 지정합니다. | 문자열 | 
| s3Key | Amazon S3 키. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 한 번 더 원격 작업을 완료하기 전의 제한 시간입니다. 이 시간을 설정하면 시작 후 설정된 시간 내에 완료되지 않는 원격 활동이 다시 시도됩니다. | Period | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maximumRetries | 장애 시 시작되는 최대 시도 횟수입니다. | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| preconditionTimeout | 아직 충족되지 않은 사전 조건이 '실패'로 표시되기 시작하는 기간. | Period | 
| reportProgressTimeout | 원격 작업에서  reportProgress를 연속으로 호출하는 제한 시간입니다. 이것이 설정되면 지정 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주되어 재시도될 수 있습니다. | Period | 
| retryDelay | 두 번의 연속 시도 사이의 제한 시간 간격입니다. | Period | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| currentRetryCount | 이번 시도에서 사전 조건을 시도한 횟수 | 문자열 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| lastRetryTime | 이번 시도 안에서 사전 조건을 시도한 마지막 횟수 | 문자열 | 
| 노드 | 이 사전 조건이 실행 중인 노드 | 참조 객체. 예: "node":\$1"ref":"myRunnableObjectId"\$1 | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="S3KeyExists-seealso"></a>
+ [ShellCommandPrecondition](dp-object-shellcommandprecondition.md)

# S3PrefixNotEmpty
<a name="dp-object-s3prefixnotempty"></a>

지정된 접두사(URI로 표시됨)가 있는 Amazon S3 객체가 존재하는지 확인하는 사전 조건입니다.

## 예제
<a name="s3prefixnotempty-example"></a>

다음은 필수, 선택 및 표현식 필드를 사용하는 이 객체 유형의 에입니다.

```
{
  "id" : "InputReady",
  "type" : "S3PrefixNotEmpty",
  "role" : "test-role",
  "s3Prefix" : "#{node.filePath}"
}
```

## 구문
<a name="s3prefixnotempty-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 역할 | 사전 조건을 실행할 때 사용할 역할을 지정합니다. | 문자열 | 
| s3Prefix | 객체의 존재 여부를 확인하는 Amazon S3 접두사입니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| preconditionTimeout | 아직 충족되지 않은 사전 조건이 '실패'로 표시되기 시작하는 기간 | Period | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| currentRetryCount | 이번 시도에서 사전 조건을 시도한 횟수 | 문자열 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| lastRetryTime | 이번 시도 안에서 사전 조건을 시도한 마지막 횟수 | 문자열 | 
| 노드 | 이 사전 조건이 실행 중인 노드. | 참조 객체. 예: "node":\$1"ref":"myRunnableObjectId"\$1 | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간. | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="s3prefixnotempty-seealso"></a>
+ [ShellCommandPrecondition](dp-object-shellcommandprecondition.md)

# ShellCommandPrecondition
<a name="dp-object-shellcommandprecondition"></a>

 사전 조건으로 실행할 수 있는 Unix/Linux 셸 명령입니다.

## 예제
<a name="shellcommandprecondition-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "VerifyDataReadiness",
  "type" : "ShellCommandPrecondition",
  "command" : "perl check-data-ready.pl"
}
```

## 구문
<a name="shellcommandprecondition-syntax"></a>


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 명령 | 실행할 명령입니다. 이 값 및 연결된 파라미터는 Task Runner를 실행 중인 환경에서 작동해야 합니다. | 문자열 | 
| scriptUri | 파일을 다운로드하여 셸 명령으로 실행할 Amazon S3 URI 경로입니다. 단 하나의 scriptUri 또는 command 필드만 지정합니다. scriptUri는 파라미터를 사용할 수 없으며, command를 사용합니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maximumRetries | 장애 시 재시도 최대 횟수 | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| preconditionTimeout | 아직 충족되지 않은 사전 조건이 '실패'로 표시되기 시작하는 기간 | Period | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scriptArgument | 셸 스크립트로 전달될 인수 | 문자열 | 
| stderr | 명령에서 리디렉션된 시스템 오류 메시지를 수신하는 Amazon S3 경로입니다. runsOn 필드를 사용할 경우에는 활동을 실행할 리소스가 임시적이므로 Amazon S3 경로가 되어야 합니다. 그러나 workerGroup 필드를 지정할 경우에는 로컬 파일 경로가 허용됩니다. | 문자열 | 
| stdout | 명령에서 리디렉션된 출력을 수신하는 Amazon S3 경로입니다. runsOn 필드를 사용할 경우에는 활동을 실행할 리소스가 임시적이므로 Amazon S3 경로가 되어야 합니다. 그러나 workerGroup 필드를 지정할 경우에는 로컬 파일 경로가 허용됩니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | EMR 활동 시도 시에만 사용할 수 있는 EMR 단계 로그 | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| hadoopJobLog | EMR 기반 활동 시도 시에만 사용할 수 있는 하둡 작업 로그. | 문자열 | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| 노드 | 이 사전 조건이 실행 중인 노드 | 참조 객체. 예: "node":\$1"ref":"myRunnableObjectId"\$1 | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간 | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간 | DateTime | 
| @상태 | 이 객체의 상태입니다. | 문자열 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="shellcommandprecondition-seealso"></a>
+ [ShellCommandActivity](dp-object-shellcommandactivity.md)
+ [존재함](dp-object-exists.md)

# 데이터베이스 수
<a name="dp-object-databases"></a>

다음은 AWS Data Pipeline 데이터베이스 객체입니다.

**Topics**
+ [JdbcDatabase](dp-object-jdbcdatabase.md)
+ [RdsDatabase](dp-object-rdsdatabase.md)
+ [RedshiftDatabase](dp-object-redshiftdatabase.md)

# JdbcDatabase
<a name="dp-object-jdbcdatabase"></a>

JDBC 데이터베이스를 정의합니다.

## 예제
<a name="jdbcdatabase-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "MyJdbcDatabase",
  "type" : "JdbcDatabase",
  "connectionString" : "jdbc:redshift://hostname:portnumber/dbname",
  "jdbcDriverClass" : "com.amazon.redshift.jdbc41.Driver",
  "jdbcDriverJarUri" : "s3://redshift-downloads/drivers/RedshiftJDBC41-1.1.6.1006.jar",
  "username" : "user_name",
  "*password" : "my_password"
}
```

## 구문
<a name="jdbcdatabase-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| connectionString | 데이터베이스에 액세스할 JDBC 연결 문자열입니다. | 문자열 | 
| jdbcDriverClass | JDBC 연결 전에 로드할 드라이버 클래스입니다. | 문자열 | 
| \$1암호 | 제공할 비밀번호. | 문자열 | 
| 사용자 이름 | 데이터베이스에 연결할 때 제공하는 사용자 이름. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| databaseName | 연결할 논리 데이터베이스의 이름 | 문자열 | 
| jdbcDriverJarUri | 데이터베이스 연결에 사용되는 JDBC 드라이버 JAR 파일의 Amazon S3 내 위치입니다. AWS Data Pipeline은 이 JAR 파일을 읽을 수 있는 권한이 있어야 합니다. | 문자열 | 
| jdbcProperties | 이 데이터베이스의 JDBC 연결에서 속성으로 설정될 A=B 형식 쌍. | 문자열 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# RdsDatabase
<a name="dp-object-rdsdatabase"></a>

Amazon RDS 데이터베이스를 정의합니다.

**참고**  
RdsDatabse는 Aurora를 지원하지 않습니다. Aurora 대신에 [JdbcDatabase](dp-object-jdbcdatabase.md)을(를) 사용하세요.

## 예제
<a name="rdsdatabase-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "MyRdsDatabase",
  "type" : "RdsDatabase",
  "region" : "us-east-1",
  "username" : "user_name",
  "*password" : "my_password",
  "rdsInstanceId" : "my_db_instance_identifier"
}
```

Oracle 엔진의 경우 `jdbcDriverJarUri` 필드가 필수적이며 다음 드라이버를 지정할 수 있습니다. `http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html` SQL Server 엔진의 경우 `jdbcDriverJarUri` 필드가 필수적이며 다음 드라이버를 지정할 수 있습니다. `https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774` MySQL 및 PostgreSQL 엔진의 경우 `jdbcDriverJarUri` 필드는 선택 사항입니다.

## 구문
<a name="rdsdatabase-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| \$1암호 | 제공할 비밀번호. | 문자열 | 
| rdsInstanceId | DB 인스턴스의 DBInstanceIdentifier 속성. | 문자열 | 
| 사용자 이름 | 데이터베이스에 연결할 때 제공하는 사용자 이름. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| databaseName | 연결할 논리 데이터베이스의 이름 | 문자열 | 
| jdbcDriverJarUri | 데이터베이스 연결에 사용되는 JDBC 드라이버 JAR 파일의 Amazon S3 내 위치입니다. AWS Data Pipeline은 이 JAR 파일을 읽을 수 있는 권한이 있어야 합니다. MySQL 및 PostgreSQL 엔진은 이 필드가 지정되지 않은 경우 기본 드라이버로 사용되지만 이 필드를 사용하여 기본값을 다시 지정할 수 있습니다. Oracle 및 SQL Server 엔진은 이 필드가 필수 필드입니다. | 문자열 | 
| jdbcProperties | 이 데이터베이스의 JDBC 연결에서 속성으로 설정될 A=B 형식 쌍. | 문자열 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| 리전 | 데이터베이스가 존재하는 리전의 코드입니다. 예를 들어 us-east-1입니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# RedshiftDatabase
<a name="dp-object-redshiftdatabase"></a>

Amazon Redshift 데이터베이스를 정의합니다. `RedshiftDatabase`은(는) 파이프라인에서 사용되는 데이터베이스의 속성을 나타냅니다.

## 예제
<a name="redshiftdatabase-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "MyRedshiftDatabase",
  "type" : "RedshiftDatabase",
  "clusterId" : "myRedshiftClusterId",
  "username" : "user_name",
  "*password" : "my_password",
  "databaseName" : "database_name"
}
```

기본적으로 객체는 `clusterId` 필드가 필요한 Postgres 드라이버를 사용합니다. Amazon Redshift 드라이버를 사용하려면 `connectionString` 필드에 Amazon Redshift 콘솔에서 "jdbc:redshift:"로 시작하는 Amazon Redshift 데이터베이스 연결 문자열을 대신 지정하세요.

## 구문
<a name="redshiftdatabase-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| \$1암호 | 제공할 비밀번호. | 문자열 | 
| 사용자 이름 | 데이터베이스에 연결할 때 제공하는 사용자 이름. | 문자열 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| clusterId | Amazon Redshift 클러스터가 생성될 때 사용자가 제공한 식별자입니다. 예를 들어, Amazon Redshift 클러스터의 엔드포인트가 mydb.example.us-east-1.redshift.amazonaws.com일 경우에 정확한 식별자는 mydb입니다. Amazon Redshift 콘솔에서는 클러스터 식별자 또는 클러스터 이름에서 이 값을 가져올 수 있습니다. | 문자열 | 
| connectionString | 파이프라인과 다른 계정이 소유한 Amazon Redshift 인스턴스에 연결할 JDBC 엔드포인트입니다. connectionString 및 clusterId를 둘 다 지정할 수 없습니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| databaseName | 연결할 논리 데이터베이스의 이름. | 문자열 | 
| jdbcProperties | 이 데이터베이스의 JDBC 연결에서 속성으로 설정될 A=B 형식 페어. | 문자열 | 
| parent | 슬롯을 상속해 올 현재 객체의 상위 객체입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| 리전 | 데이터베이스가 존재하는 리전의 코드입니다. 예를 들어 us-east-1입니다. | 열거 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# 데이터 형식
<a name="dp-object-dataformats"></a>

다음은 AWS Data Pipeline 데이터 형식 객체입니다.

**Topics**
+ [CSV 데이터 형식](dp-object-csv.md)
+ [사용자 지정 데이터 형식](dp-object-custom.md)
+ [DynamoDBDataFormat](dp-object-dynamodbdataformat.md)
+ [DynamoDBExportDataFormat](dp-object-dynamodbexportdataformat.md)
+ [RegEx 데이터 형식](dp-object-regex.md)
+ [TSV 데이터 형식](dp-object-tsv.md)

# CSV 데이터 형식
<a name="dp-object-csv"></a>

열 구분 기호가 쉼표이고 레코드 구분 기호가 줄 바꿈 문자인 위치의 쉼표로 구분된 데이터 형식입니다.

## 예제
<a name="csv-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "MyOutputDataType",
  "type" : "CSV",
  "column" : [
    "Name STRING",
    "Score INT",
    "DateOfBirth TIMESTAMP"
  ]
}
```

## 구문
<a name="csv-syntax"></a>


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 열 | 이 데이터 노드가 설명하는 데이터의 필드별로 지정된 데이터 형식이 있는 열 이름입니다. 예: 호스트 이름 STRING 값이 여러 개인 경우에는 스페이스로 분리된 열 이름과 데이터 형식을 사용합니다. | 문자열 | 
| escapeChar | 파서에게 다음 문자를 무시하라고 지시하는 문자(예: "\$1")입니다. | 문자열 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# 사용자 지정 데이터 형식
<a name="dp-object-custom"></a>

특정 열 구분 기호, 레코드 구분 기호 및 이스케이프 문자의 조합으로 정의되는 사용자 정의 데이터 형식입니다.

## 예제
<a name="custom-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "MyOutputDataType",
  "type" : "Custom",
  "columnSeparator" : ",",
  "recordSeparator" : "\n",
  "column" : [
    "Name STRING",
    "Score INT",
    "DateOfBirth TIMESTAMP"
  ]
}
```

## 구문
<a name="custom-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| columnSeparator | 데이터 파일에서 열 끝을 나타내는 문자입니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 열 | 이 데이터 노드가 설명하는 데이터의 필드별로 지정된 데이터 형식이 있는 열 이름입니다. 예: 호스트 이름 STRING 값이 여러 개인 경우에는 스페이스로 분리된 열 이름과 데이터 형식을 사용합니다. | 문자열 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| recordSeparator | 데이터 파일에서 행의 끝을 나타내는 문자입니다(예: "\$1n"). 단일 문자만 지원됩니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# DynamoDBDataFormat
<a name="dp-object-dynamodbdataformat"></a>

DynamoDB 테이블에 스키마를 적용하여 Hive 쿼리를 통해 액세스할 수 있습니다. `DynamoDBDataFormat`은(는) `HiveActivity` 객체와 `DynamoDBDataNode` 입력 및 출력과 함께 사용됩니다. `DynamoDBDataFormat`에서는 Hive 쿼리의 모든 열을 지정해야 합니다. Hive 쿼리에서 특정 열을 얼마나 유연하게 지정하는지에 대한 내용이나 Amazon S3 지원에 대한 내용은 [DynamoDBExportDataFormat](dp-object-dynamodbexportdataformat.md)을(를) 참조하세요.

**참고**  
DynamoDB Boolean 유형은 Hive Boolean 유형에 매핑하지 않습니다. 그러나 0 또는 1의 DynamoDB 정수 값을 Hive Boolean 유형에 매핑할 수 있습니다.

## 예제
<a name="dynamodbdataformat-example"></a>

다음 예제에서는 `DynamoDBDataFormat`을 사용하여 스키마를 `DynamoDBDataNode` 입력에 할당하는 방법을 보여주고 명명된 열을 사용해 `HiveActivity` 객체가 데이터를 액세스하고 `DynamoDBDataNode` 출력에 데이터를 복사합니다.

```
{
  "objects": [
    {
      "id" : "Exists.1",
      "name" : "Exists.1",
      "type" : "Exists"
    },
    {
      "id" : "DataFormat.1",
      "name" : "DataFormat.1",
      "type" : "DynamoDBDataFormat",
      "column" : [ 
         "hash STRING", 
        "range STRING" 
      ]
    },
    {
      "id" : "DynamoDBDataNode.1",
      "name" : "DynamoDBDataNode.1",
      "type" : "DynamoDBDataNode",
      "tableName" : "$INPUT_TABLE_NAME",
      "schedule" : { "ref" : "ResourcePeriod" },
      "dataFormat" : { "ref" : "DataFormat.1" }
    },
    {
      "id" : "DynamoDBDataNode.2",
      "name" : "DynamoDBDataNode.2",
      "type" : "DynamoDBDataNode",
      "tableName" : "$OUTPUT_TABLE_NAME",
      "schedule" : { "ref" : "ResourcePeriod" },
      "dataFormat" : { "ref" : "DataFormat.1" }
    },
    {
      "id" : "EmrCluster.1",
      "name" : "EmrCluster.1",
      "type" : "EmrCluster",
      "schedule" : { "ref" : "ResourcePeriod" },
      "masterInstanceType" : "m1.small",
      "keyPair" : "$KEYPAIR"
    },
    {
      "id" : "HiveActivity.1",
      "name" : "HiveActivity.1",
      "type" : "HiveActivity",
      "input" : { "ref" : "DynamoDBDataNode.1" },
      "output" : { "ref" : "DynamoDBDataNode.2" },
      "schedule" : { "ref" : "ResourcePeriod" },
      "runsOn" : { "ref" : "EmrCluster.1" },
      "hiveScript" : "insert overwrite table ${output1} select * from ${input1} ;"
    },
    {
      "id" : "ResourcePeriod",
      "name" : "ResourcePeriod",
      "type" : "Schedule",
      "period" : "1 day",
      "startDateTime" : "2012-05-04T00:00:00",
      "endDateTime" : "2012-05-05T00:00:00"
    }
  ]
}
```

## 구문
<a name="dynamodbdataformat-syntax"></a>


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 열 | 이 데이터 노드가 설명하는 데이터의 필드별로 지정된 데이터 형식이 있는 열 이름입니다. 예를 들어 hostname STRING입니다. 예: 여러 값의 경우, 스페이스로 분리된 열 이름과 데이터 형식을 사용합니다. | 문자열 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 파이프라인 버전에서 객체를 생성하는 데 사용합니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류입니다. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID입니다. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# DynamoDBExportDataFormat
<a name="dp-object-dynamodbexportdataformat"></a>

Amazon DynamoDB 테이블에 스키마를 적용하여 Hive 쿼리를 통해 액세스할 수 있습니다. `HiveCopyActivity` 객체와 `DynamoDBDataNode` 또는 `S3DataNode` 입력 및 출력에 `DynamoDBExportDataFormat`을 사용합니다. `DynamoDBExportDataFormat`에는 다음 장점이 있습니다.
+ DynamoDB와 Amazon S3 지원을 모두 제공합니다.
+ Hive 쿼리의 특정 열로 데이터를 필터링할 수 있음
+ 스파스 스키마가 있는 경우에도 DynamoDB 의 모든 속성을 내보냄

**참고**  
DynamoDB Boolean 유형은 Hive Boolean 유형에 매핑하지 않습니다. 그러나 0 또는 1의 DynamoDB 정수 값을 Hive Boolean 유형에 매핑할 수 있습니다.

## 예제
<a name="dynamodbexportdataformat-example"></a>

다음 예제에서는 타임스탬프에 기반하여 필터링을 하는 동안 `HiveCopyActivity`와 `DynamoDBExportDataFormat`을 사용하여 하나의 `DynamoDBDataNode`에서 다른 로 데이터를 복사하는 방법을 보여줍니다.

```
{
  "objects": [
    {
      "id" : "DataFormat.1",
      "name" : "DataFormat.1",
      "type" : "DynamoDBExportDataFormat",
      "column" : "timeStamp BIGINT"
    },
    {
      "id" : "DataFormat.2",
      "name" : "DataFormat.2",
      "type" : "DynamoDBExportDataFormat"
    },
    {
      "id" : "DynamoDBDataNode.1",
      "name" : "DynamoDBDataNode.1",
      "type" : "DynamoDBDataNode",
      "tableName" : "item_mapped_table_restore_temp",
      "schedule" : { "ref" : "ResourcePeriod" },
      "dataFormat" : { "ref" : "DataFormat.1" }
    },
    {
      "id" : "DynamoDBDataNode.2",
      "name" : "DynamoDBDataNode.2",
      "type" : "DynamoDBDataNode",
      "tableName" : "restore_table",
      "region" : "us_west_1",
      "schedule" : { "ref" : "ResourcePeriod" },
      "dataFormat" : { "ref" : "DataFormat.2" }
    },
    {
      "id" : "EmrCluster.1",
      "name" : "EmrCluster.1",
      "type" : "EmrCluster",
      "schedule" : { "ref" : "ResourcePeriod" },
      "masterInstanceType" : "m1.xlarge",
      "coreInstanceCount" : "4"
    },
    {
      "id" : "HiveTransform.1",
      "name" : "Hive Copy Transform.1",
      "type" : "HiveCopyActivity",
      "input" : { "ref" : "DynamoDBDataNode.1" },
      "output" : { "ref" : "DynamoDBDataNode.2" },
      "schedule" : { "ref" : "ResourcePeriod" },
      "runsOn" : { "ref" : "EmrCluster.1" },
      "filterSql" : "`timeStamp` > unix_timestamp(\"#{@scheduledStartTime}\", \"yyyy-MM-dd'T'HH:mm:ss\")"
    },
    {
      "id" : "ResourcePeriod",
      "name" : "ResourcePeriod",
      "type" : "Schedule",
      "period" : "1 Hour",
      "startDateTime" : "2013-06-04T00:00:00",
      "endDateTime" : "2013-06-04T01:00:00"
    }
  ]
}
```

## 구문
<a name="dynamodbexportdataformat-syntax"></a>


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 열 | 이 데이터 노드가 설명하는 데이터의 필드별로 지정된 데이터 형식이 있는 열 이름입니다. 예: 호스트이름 STRING | 문자열 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# RegEx 데이터 형식
<a name="dp-object-regex"></a>

정규식에 의해 정의된 사용자 지정 데이터 형식입니다.

## 예제
<a name="regex-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "MyInputDataType",
  "type" : "RegEx",
  "inputRegEx" : "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\"[^\"]*\") ([^ \"]*|\"[^\"]*\"))?",
  "outputFormat" : "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s",
  "column" : [
    "host STRING",
    "identity STRING",
    "user STRING",
    "time STRING",
    "request STRING",
    "status STRING",
    "size STRING",
    "referer STRING",
    "agent STRING"
  ]
}
```

## 구문
<a name="regex-syntax"></a>


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 열 | 이 데이터 노드가 설명하는 데이터의 필드별로 지정된 데이터 형식이 있는 열 이름입니다. 예: 호스트 이름 STRING 값이 여러 개인 경우에는 스페이스로 분리된 열 이름과 데이터 형식을 사용합니다. | 문자열 | 
| inputRegEx | S3 입력 파일의 구문을 분석할 정규식입니다. inputRegEx를 사용하여 파일에서 상대적으로 비정형 데이터의 열을 검색합니다. | 문자열 | 
| outputFormat | inputRegEx로 검색하고, Java 포맷터 구문을 사용하여 %1\$1s %2\$1s로 참조되는 열 필드입니다. | 문자열 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# TSV 데이터 형식
<a name="dp-object-tsv"></a>

열 구분 기호가 탭 문자이고 레코드 구분 기호가 줄 바꿈 문자인 위치의 쉼표로 구분된 데이터 형식입니다.

## 예제
<a name="tsv-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "MyOutputDataType",
  "type" : "TSV",
  "column" : [
    "Name STRING",
    "Score INT",
    "DateOfBirth TIMESTAMP"
  ]
}
```

## 구문
<a name="tsv-syntax"></a>


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 열 | 이 데이터 노드에 의해 설명된 데이터의 열 이름과 데이터 형식입니다. 예를 들어, "Name STRING"은 데이터 형식 STRING 필드에서 Name로 명명된 열을 가리킵니다. 쉼표로 구분되는 별도의 복수 열 이름 및 데이터 형식 페어(예 참조)입니다. | 문자열 | 
| columnSeparator | 한 열의 필드를 다음 열의 필드와 분리하는 문자입니다. 기본값은 '\$1t'입니다. | 문자열 | 
| escapeChar | 파서에게 다음 문자를 무시하라고 지시하는 문자(예: "\$1")입니다. | 문자열 | 
| parent | 슬롯을 상속해 올 현재 객체의 상위 객체입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| recordSeparator | 레코드를 분리하는 문자입니다. 기본값은 '\$1n'입니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# 작업
<a name="dp-object-actions"></a>

다음은 AWS Data Pipeline 작업 객체입니다.

**Topics**
+ [SnsAlarm](dp-object-snsalarm.md)
+ [Terminate](dp-object-terminate.md)

# SnsAlarm
<a name="dp-object-snsalarm"></a>

 활동이 실패하거나 성공적으로 끝나면 Amazon SNS 알림 메시지를 전송합니다.

## 예제
<a name="snsalarm-example"></a>

다음은 이 객체 유형의 예제입니다. `node.input` 및 `node.output` 값은 해당 `onSuccess` 필드에서 이 객체를 참조하는 데이터 노드 또는 활동에서 나옵니다.

```
{
  "id" : "SuccessNotify",
  "name" : "SuccessNotify",
  "type" : "SnsAlarm",
  "topicArn" : "arn:aws:sns:us-east-1:28619EXAMPLE:ExampleTopic",
  "subject" : "COPY SUCCESS: #{node.@scheduledStartTime}",
  "message" : "Files were copied from #{node.input} to #{node.output}."
}
```

## 구문
<a name="snsalarm-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| message | Amazon SNS 알림 본문입니다. | 문자열 | 
| 역할 | Amazon SNS 알람을 생성할 때 사용하는 IAM 역할입니다. | 문자열 | 
| subject | Amazon SNS 알림 메시지의 제목 줄입니다. | 문자열 | 
| topicArn | 메시지의 대상 Amazon SNS 항목 ARN입니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 노드 | 이 작업이 실행 중인 노드. | 참조 객체. 예: "node":\$1"ref":"myRunnableObjectId"\$1 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# Terminate
<a name="dp-object-terminate"></a>

보류 중이거나 완료되지 않은 활동, 리소스 또는 데이터 노드의 취소를 트리거하는 작업입니다. `lateAfterTimeout` 값으로 시작하지 않으면는 활동, 리소스 또는 데이터 노드를 CANCELLED 상태로 전환하려고 AWS Data Pipeline 시도합니다.

`onSuccess`, `OnFail` 또는 `onLateAction` 리소스를 포함하는 작업은 종료할 수 없습니다.

## 예제
<a name="terminate-example"></a>

다음은 이 객체 유형의 예제입니다. 이 예제에서 `MyActivity`의 `onLateAction` 필드는 작업 `DefaultAction1`에 대한 참조를 포함합니다. `onLateAction`에 대한 작업을 제공하는 경우 `lateAfterTimeout` 값을 제공하여 활동이 만료되었다고 간주된 파이프라인의 예약된 시작 이후 경과한 기간도 표시해야 합니다.

```
{
  "name" : "MyActivity",
  "id" : "DefaultActivity1",
  "schedule" : {
    "ref" : "MySchedule"
  },
  "runsOn" : {
    "ref" : "MyEmrCluster"
  },
  "lateAfterTimeout" : "1 Hours",
  "type" : "EmrActivity",
  "onLateAction" : {
    "ref" : "DefaultAction1"
  },
  "step" : [
    "s3://amzn-s3-demo-bucket/myPath/myStep.jar,firstArg,secondArg",
    "s3://amzn-s3-demo-bucket/myPath/myOtherStep.jar,anotherArg"
  ]
},
{
  "name" : "TerminateTasks",
  "id" : "DefaultAction1",
  "type" : "Terminate"
}
```

## 구문
<a name="terminate-syntax"></a>


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| parent | 슬롯을 상속해 올 현재 객체의 상위 객체입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 노드 | 이 작업이 실행 중인 노드. | 참조 객체. 예: "node":\$1"ref":"myRunnableObjectId"\$1 | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# 일정
<a name="dp-object-schedule"></a>

예약된 이벤트의 타이밍을 정의합니다(예: 활동 실행 시점).

**참고**  
일정의 시작 시간이 과거인 경우는 파이프라인을 AWS Data Pipeline 채우고 지정된 시작 시간부터 즉시 실행 예약을 시작합니다. 테스트/개발의 경우 상대적으로 짧은 간격을 사용합니다. 그렇지 않으면는 해당 간격 동안 파이프라인의 모든 실행을 대기열에 추가하고 예약하려고 AWS Data Pipeline 시도합니다. `scheduledStartTime`는 파이프라인 활성화를 차단하여 파이프라인 구성 요소가 1일 이전인 경우 실수로 채우지 않도록 AWS Data Pipeline 합니다.

## 예제
<a name="schedule-example"></a>

다음은 이 객체 유형의 예제입니다. 이 예제에서는 매 시간 2012-09-01 00:00:00시에 시작되고 2012-10-01 00:00:00시에 종료되는 일정을 정의합니다. 처음 기간은 2012-09-01 01:00:00시에 종료됩니다.

```
{
  "id" : "Hourly",
  "type" : "Schedule",
  "period" : "1 hours",
  "startDateTime" : "2012-09-01T00:00:00",
  "endDateTime" : "2012-10-01T00:00:00"
}
```

다음 파이프라인은 `FIRST_ACTIVATION_DATE_TIME`에 시작하고 2014-04-25 22:00:00시까지 매 시간 실행됩니다.

```
{
     "id": "SchedulePeriod",
     "name": "SchedulePeriod",
     "startAt": "FIRST_ACTIVATION_DATE_TIME",
     "period": "1 hours",
     "type": "Schedule",
     "endDateTime": "2014-04-25T22:00:00"
   }
```

다음 파이프라인은 `FIRST_ACTIVATION_DATE_TIME`에 시작하고 매 시간 실행되어 세 번 작동한 후에 완료됩니다.

```
{
     "id": "SchedulePeriod",
     "name": "SchedulePeriod",
     "startAt": "FIRST_ACTIVATION_DATE_TIME",
     "period": "1 hours",
     "type": "Schedule",
     "occurrences": "3"
   }
```

다음 파이프라인은 2014-04-25 22:00:00에 시작하고 매 시간 실행되어 세 번 작동한 후에 종료됩니다.

```
{
     "id": "SchedulePeriod",
     "name": "SchedulePeriod",
     "startDateTime": "2014-04-25T22:00:00",
     "period": "1 hours",
     "type": "Schedule",
     "occurrences": "3"
   }
```

기본 객체를 사용하는 온디맨드

```
{
  "name": "Default",
  "resourceRole": "DataPipelineDefaultResourceRole",
  "role": "DataPipelineDefaultRole",
  "scheduleType": "ondemand"
}
```

명시적 일정 객체를 사용하는 온디맨드

```
{
  "name": "Default",
  "resourceRole": "DataPipelineDefaultResourceRole",
  "role": "DataPipelineDefaultRole",
  "scheduleType": "ondemand"
},
{
  "name": "DefaultSchedule",
  "type": "Schedule",
  "id": "DefaultSchedule",
  "period": "ONDEMAND_PERIOD",
  "startAt": "ONDEMAND_ACTIVATION_TIME"
},
```

다음 예제에서는 기본 객체에서 일정을 상속하는 방법, 해당 객체에 대해 명시적으로 일정을 설정하는 방법, 상위 참조에서 일정을 지정하는 방법을 보여줍니다.

기본 객체에서 상속된 일정

```
{
  "objects": [
  {       
      "id": "Default",
      "failureAndRerunMode":"cascade",
      "resourceRole": "DataPipelineDefaultResourceRole",
      "role": "DataPipelineDefaultRole",
      "pipelineLogUri": "s3://myLogsbucket",
      "scheduleType": "cron",
      "schedule": {
        "ref": "DefaultSchedule"
      }
   },
   {
      "type": "Schedule",
      "id": "DefaultSchedule",
      "occurrences": "1",
      "period": "1 Day",
      "startAt": "FIRST_ACTIVATION_DATE_TIME"
    },
    { 
      "id": "A_Fresh_NewEC2Instance",
      "type": "Ec2Resource",
      "terminateAfter": "1 Hour"
    },
    {
      "id": "ShellCommandActivity_HelloWorld",
      "runsOn": {
        "ref": "A_Fresh_NewEC2Instance"
      },
      "type": "ShellCommandActivity",
      "command": "echo 'Hello World!'"
    }
  ]
}
```

객체에서의 명시적 일정

```
{
  "objects": [
  {       
      "id": "Default",
      "failureAndRerunMode":"cascade",
      "resourceRole": "DataPipelineDefaultResourceRole",
      "role": "DataPipelineDefaultRole",
      "pipelineLogUri": "s3://myLogsbucket",
      "scheduleType": "cron"
      
   },
   {
      "type": "Schedule",
      "id": "DefaultSchedule",
      "occurrences": "1",
      "period": "1 Day",
      "startAt": "FIRST_ACTIVATION_DATE_TIME"
    },
    { 
      "id": "A_Fresh_NewEC2Instance",
      "type": "Ec2Resource",
      "terminateAfter": "1 Hour"
    },
    {
      "id": "ShellCommandActivity_HelloWorld",
      "runsOn": {
        "ref": "A_Fresh_NewEC2Instance"
      },
      "schedule": {
        "ref": "DefaultSchedule"
      },
      "type": "ShellCommandActivity",
      "command": "echo 'Hello World!'"
    }
  ]
}
```

상위 참조의 일정

```
{
  "objects": [
  {       
      "id": "Default",
      "failureAndRerunMode":"cascade",
      "resourceRole": "DataPipelineDefaultResourceRole",
      "role": "DataPipelineDefaultRole",
      "pipelineLogUri": "s3://myLogsbucket",
      "scheduleType": "cron"
      
   },
   {       
      "id": "parent1",
      "schedule": {
        "ref": "DefaultSchedule"
      }
      
   },
   {
      "type": "Schedule",
      "id": "DefaultSchedule",
      "occurrences": "1",
      "period": "1 Day",
      "startAt": "FIRST_ACTIVATION_DATE_TIME"
    },
    { 
      "id": "A_Fresh_NewEC2Instance",
      "type": "Ec2Resource",
      "terminateAfter": "1 Hour"
    },
    {
      "id": "ShellCommandActivity_HelloWorld",
      "runsOn": {
        "ref": "A_Fresh_NewEC2Instance"
      },
      "parent": {
        "ref": "parent1"
      },
      "type": "ShellCommandActivity",
      "command": "echo 'Hello World!'"
    }
  ]
}
```

## 구문
<a name="schedule-syntax"></a>


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 기간 | 파이프라인을 실행해야 하는 빈도입니다. 형식은 "N [분\$1시\$1일\$1주\$1월]"이며, 여기서 N은 시간 지정자 중 하나가 뒤에 붙는 숫자입니다. 예를 들어, "15분"은 15분마다 파이프라인을 실행합니다. 최소 기간은 15분이며, 최대 기간은 3년입니다. | Period | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| startAt | 예약된 파이프라인 실행을 시작하는 날짜와 시간입니다. 유효 값은 FIRST\$1ACTIVATION\$1DATE\$1TIME이며, 이것은 온디맨드 파이프라인 생성을 위해 사용되지 않습니다. | 열거 | 
| startDateTime | 예약 실행이 시작되는 날짜 및 시간입니다. startDateTime 또는 startAt 중 하나만 사용해야 합니다. | DateTime | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| endDateTime | 예약 실행이 종료되는 날짜 및 시간입니다. startDateTime 또는 startAt 값 이후의 날짜와 시간이어야 합니다. 기본 행동은 파이프라인이 종료될 때까지 실행을 예약하는 것입니다. | DateTime | 
| occurrences | 활성화된 파이프라인을 실행하는 횟수입니다. occurrences를 endDateTime과 함께 사용할 수 없습니다. | Integer | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @firstActivationTime | 객체 생성 시간입니다. | DateTime | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# 유틸리티
<a name="dp-object-utilities"></a>

다음 유틸리티 객체는 다른 파이프라인 객체를 구성합니다.

**Topics**
+ [ShellScriptConfig](dp-object-shellscriptconfig.md)
+ [EmrConfiguration](dp-object-emrconfiguration.md)
+ [속성](dp-object-property.md)

# ShellScriptConfig
<a name="dp-object-shellscriptconfig"></a>

활동을 사용하여 preActivityTaskConfig 및 postActivityTaskConfig에 대한 셸 스크립트를 실행합니다. 이 객체는 [HadoopActivity](dp-object-hadoopactivity.md), [HiveActivity](dp-object-hiveactivity.md), [HiveCopyActivity](dp-object-hivecopyactivity.md) 및 [PigActivity](dp-object-pigactivity.md)에 사용할 수 있습니다. 스크립트에 대해 인수 목록과 S3 URI를 지정합니다.

## 예제
<a name="shellscriptconfig-example"></a>

인수를 사용하는 ShellScriptConfig:

```
{
   "id" : "ShellScriptConfig_1”,
   "name" : “prescript”,
   "type" : "ShellScriptConfig",
   "scriptUri": “s3://my-bucket/shell-cleanup.sh”,
   "scriptArgument" : ["arg1","arg2"]
 }
```

## 구문
<a name="shellscriptconfig-syntax"></a>

이 객체에는 다음 필드가 포함됩니다.


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| parent | 슬롯을 상속해 올 현재 객체의 상위 객체입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| scriptArgument | shell 스크립트와 함께 사용할 인수 목록입니다. | 문자열 | 
| scriptUri | 다운로드하여 실행해야 하는 Amazon S3 내 스크립트 URI입니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

# EmrConfiguration
<a name="dp-object-emrconfiguration"></a>

EmrConfiguration 객체는 릴리스 4.0.0 또는 이상 버전을 사용하는 EMR 클러스터에 사용되는 구성입니다. 구성(목록)은 RunJobFlow API를 호출하는 파라미터입니다. Amazon EMR용 구성 API는 분류 및 속성을 사용합니다.는 해당하는 속성 객체와 함께 EmrConfiguration을 AWS Data Pipeline 사용하여 파이프라인 실행에서 시작된 EMR 클러스터의 하둡, Hive, Spark 또는 Pig와 같은 [EmrCluster](dp-object-emrcluster.md) 애플리케이션을 구성합니다. 구성은 새로운 클러스터로 변경될 수 있기 때문에 기존 리소스에 EmrConfiguration 객체를 제공할 수 없습니다. 자세한 내용은 [https://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/](https://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/) 단원을 참조하십시오.

## 예제
<a name="emrconfiguration-example"></a>

다음 구성 객체는 `core-site.xml`으로 `io.file.buffer.size` 및 `fs.s3.block.size` 속성을 설정합니다.

```
[
   {  
      "classification":"core-site",
      "properties":
      {
         "io.file.buffer.size": "4096",
         "fs.s3.block.size": "67108864"
      }
   }
]
```

해당 파이프라인 객체 정의는 `property` 필드의 속성 객체 목록 및 EmrConfiguration 객체를 사용합니다.

```
{
  "objects": [
    {
      "name": "ReleaseLabelCluster",
      "releaseLabel": "emr-4.1.0",
      "applications": ["spark", "hive", "pig"],
      "id": "ResourceId_I1mCc",
      "type": "EmrCluster",
      "configuration": {
        "ref": "coresite"
      }
    },
    {
      "name": "coresite",
      "id": "coresite",
      "type": "EmrConfiguration",
      "classification": "core-site",
      "property": [{
        "ref": "io-file-buffer-size"
      },
      {
        "ref": "fs-s3-block-size"
      }
      ]
    },
    {
      "name": "io-file-buffer-size",
      "id": "io-file-buffer-size",
      "type": "Property",
      "key": "io.file.buffer.size",
      "value": "4096"
    },
    {
      "name": "fs-s3-block-size",
      "id": "fs-s3-block-size",
      "type": "Property",
      "key": "fs.s3.block.size",
      "value": "67108864"
    }
  ]
}
```

다음 예제는 `hadoop-env` 분류를 사용하여 Hadoop 환경을 설정하도록 사용된 중첩 구성입니다.

```
[
  {
    "classification": "hadoop-env",
    "properties": {},
    "configurations": [
      {
        "classification": "export",
        "properties": {
          "YARN_PROXYSERVER_HEAPSIZE": "2396"
        }
      }
    ]
  }
]
```

다음은 이 구성을 사용하는 해당 파이프라인 정의 객체입니다.

```
{
  "objects": [
    {
      "name": "ReleaseLabelCluster",
      "releaseLabel": "emr-4.0.0",
      "applications": ["spark", "hive", "pig"],
      "id": "ResourceId_I1mCc",
      "type": "EmrCluster",
      "configuration": {
        "ref": "hadoop-env"
      }
    },
    {
      "name": "hadoop-env",
      "id": "hadoop-env",
      "type": "EmrConfiguration",
      "classification": "hadoop-env",
      "configuration": {
        "ref": "export"
      }
    },
    {
      "name": "export",
      "id": "export",
      "type": "EmrConfiguration",
      "classification": "export",
      "property": {
        "ref": "yarn-proxyserver-heapsize"
      }
    },
    {
      "name": "yarn-proxyserver-heapsize",
      "id": "yarn-proxyserver-heapsize",
      "type": "Property",
      "key": "YARN_PROXYSERVER_HEAPSIZE",
      "value": "2396"
    },
  ]
}
```

다음 예에서는 EMR 클러스터의 Hive 지정 속성을 수정합니다.

```
{
    "objects": [
        {
            "name": "hivesite",
            "id": "hivesite",
            "type": "EmrConfiguration",
            "classification": "hive-site",
            "property": [
                {
                    "ref": "hive-client-timeout"
                }
            ]
        },
        {
            "name": "hive-client-timeout",
            "id": "hive-client-timeout",
            "type": "Property",
            "key": "hive.metastore.client.socket.timeout",
            "value": "2400s"
        }
    ]
}
```

## 구문
<a name="emrconfiguration-syntax"></a>

이 객체에는 다음 필드가 포함됩니다.


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 분류 | 구성에 대한 분류입니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 구성 | 이 구성의 하위 구성입니다. | 참조 객체. 예: "configuration":\$1"ref":"myEmrConfigurationId"\$1 | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 
| 속성 | 구성 속성입니다. | 참조 객체. 예: "property":\$1"ref":"myPropertyId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류 | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="emrconfiguration-seealso"></a>
+ [EmrCluster](dp-object-emrcluster.md)
+ [속성](dp-object-property.md)
+ [Amazon EMR 릴리즈 가이드](https://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/)

# 속성
<a name="dp-object-property"></a>

EmrConfiguration 객체에서 사용할 단일 키값 속성입니다.

## 예제
<a name="property-example"></a>

다음 파이프라인 정의는 EmrConfiguration 객체 및 launch an EmrCluster를 시작하는 해당 속성 객체를 보여줍니다.

```
{
  "objects": [
    {
      "name": "ReleaseLabelCluster",
      "releaseLabel": "emr-4.1.0",
      "applications": ["spark", "hive", "pig"],
      "id": "ResourceId_I1mCc",
      "type": "EmrCluster",
      "configuration": {
        "ref": "coresite"
      }
    },
    {
      "name": "coresite",
      "id": "coresite",
      "type": "EmrConfiguration",
      "classification": "core-site",
      "property": [{
        "ref": "io-file-buffer-size"
      },
      {
        "ref": "fs-s3-block-size"
      }
      ]
    },
    {
      "name": "io-file-buffer-size",
      "id": "io-file-buffer-size",
      "type": "Property",
      "key": "io.file.buffer.size",
      "value": "4096"
    },
    {
      "name": "fs-s3-block-size",
      "id": "fs-s3-block-size",
      "type": "Property",
      "key": "fs.s3.block.size",
      "value": "67108864"
    }
  ]
}
```

## 구문
<a name="property-syntax"></a>

이 객체에는 다음 필드가 포함됩니다.


****  

| 필수 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 키 | 키 | 문자열 | 
| 값 | 값 | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| parent | 슬롯을 상속해 올 현재 객체의 상위 객체입니다. | 참조 객체. 예: "parent":\$1"ref":"myBaseObjectId"\$1 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @version | 객체와 함께 생성된 파이프라인 버전입니다. | 문자열 | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID. | 문자열 | 
| @sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | 문자열 | 

## 참고
<a name="property-seealso"></a>
+ [EmrCluster](dp-object-emrcluster.md)
+ [EmrConfiguration](dp-object-emrconfiguration.md)
+ [Amazon EMR 릴리즈 가이드](https://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/)