

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

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

# 활동
<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를 야기합니다. | 문자열 | 