

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

# AWS Glue DataBrew레시피 작업 생성 및 작업
<a name="jobs.recipe"></a>

DataBrew *레시피 작업을* 사용하여 DataBrew 데이터 세트의 데이터를 정리 및 정규화하고 원하는 출력 위치에 결과를 작성합니다. 레시피 작업을 실행해도 데이터 세트 또는 기본 소스 데이터에는 영향을 주지 않습니다. 작업이 실행되면 읽기 전용 방식으로 소스 데이터에 연결됩니다. 작업 출력은 Amazon S3 AWS Glue Data Catalog, 또는 지원되는 JDBC 데이터베이스에서 정의한 출력 위치에 기록됩니다.

다음 절차에 따라 DataBrew 레시피 작업을 생성합니다.

**레시피 작업을 생성하려면**

1. 에 로그인AWS Management Console하고 [https://console.aws.amazon.com/databrew/](https://console.aws.amazon.com/glue/) DataBrew 콘솔을 엽니다.

1. 탐색 창에서 **JOBS**를 선택하고 **레시피 작업** 탭을 선택한 다음 **작업 생성을** 선택합니다.

1. 작업 이름을 입력한 다음 **레시피 작업 생성을** 선택합니다.

1. **작업 입력**에 생성하려는 작업에 대한 세부 정보, 즉 처리할 데이터 세트의 이름 및 사용할 레시피를 입력합니다.

   레시피 작업은 DataBrew 레시피를 사용하여 데이터 세트를 변환합니다. 레시피를 사용하려면 먼저 레시피를 게시해야 합니다.

1. 작업 출력 설정을 구성합니다.

   작업 출력의 대상을 제공합니다. 출력 대상에 대해 DataBrew 연결이 구성되어 있지 않은 경우에 설명된 대로 **데이터 세트** 탭에서 먼저 구성합니다[데이터 소스 및 출력에 지원되는 연결](supported-data-connection-sources.md). 다음 출력 대상 중 하나를 선택합니다.
   + Amazon S3,AWS Glue Data Catalog지원 여부에 관계없이
   + Amazon Redshift,AWS Glue Data Catalog지원 여부에 관계없이
   + JDBC
   + Snowflake 테이블
   + 가AWS Glue Data Catalog지원되는 Amazon RDS 데이터베이스 테이블. Amazon RDS 데이터베이스 테이블은 다음 데이터베이스 엔진을 지원합니다.
     + Amazon Aurora
     + MySQL
     + Oracle
     + PostgreSQL
     + Microsoft SQL Server
   + AWS Glue Data Catalog Amazon S3 지원.

   기반AWS Glue Data Catalog출력의 경우AWS Lake Formation DataBrew는 기존 파일 교체만 지원합니다. 이 접근 방식에서는 파일이 대체되어 데이터 액세스 역할에 대한 기존 Lake Formation 권한을 그대로 유지합니다. 또한 DataBrew는 테이블의 Amazon S3 위치에AWS Glue Data Catalog우선 순위를 부여합니다. 따라서 레시피 작업을 생성할 때 Amazon S3 위치를 재정의할 수 없습니다.

   경우에 따라 작업 출력의 Amazon S3 위치가 데이터 카탈로그 테이블의 Amazon S3 위치와 다릅니다. 이러한 경우 DataBrew는 카탈로그 테이블의 Amazon S3 위치로 작업 정의를 자동으로 업데이트합니다. 기존 작업을 업데이트하거나 시작할 때이 작업을 수행합니다.

1. Amazon S3 출력 대상의 경우에만 추가 선택 사항이 있습니다.

   1. Amazon S3에 사용할 수 있는 데이터 출력 형식 중 하나, 선택적 압축 및 선택적 사용자 지정 구분 기호를 선택합니다. 출력 파일에 지원되는 구분 기호는 쉼표, 콜론, 세미콜론, 파이프, 탭, 캐럿, 백슬래시, 스페이스 등 입력용 구분 기호와 동일합니다. 서식 세부 정보는 다음 표를 참조하세요.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/databrew/latest/dg/jobs.recipe.html)

   1. <a name="singlefileoutput"></a>단일 파일을 출력할지 아니면 여러 파일을 출력할지 선택합니다. Amazon S3를 사용한 파일 출력에는 세 가지 옵션이 있습니다.
      + **파일 자동 생성(권장)** - DataBrew에서 최적의 출력 파일 수를 결정합니다.
      + **단일 파일 출력** - 단일 출력 파일이 생성됩니다. 사후 처리가 필요하므로이 옵션을 사용하면 추가 작업 실행 시간이 발생할 수 있습니다.
      + **다중 파일 출력** - 작업 출력의 파일 수를 지정했는지 여부입니다. 유효한 값은 2\~999입니다. 열 파티셔닝을 사용하거나 출력의 행 수가 지정한 파일 수보다 적은 경우 지정한 것보다 적은 파일이 출력될 수 있습니다.

   1. <a name="columnpartioning"></a>(선택 사항) 레시피 작업 출력에 대한 열 파티셔닝을 선택합니다.

      열 파티셔닝은 레시피 작업 출력을 여러 파일로 파티셔닝하는 또 다른 방법을 제공합니다. 열 파티셔닝은 새 또는 기존 Amazon S3 출력 또는 새 Data Catalog Amazon S3 출력과 함께 사용할 수 있습니다. 기존 Data Catalog Amazon S3 테이블에서는 사용할 수 없습니다. 출력 파일은 지정한 열 이름의 값을 기반으로 합니다. 지정한 열 이름이 고유한 경우 결과 Amazon S3 폴더 경로는 열 이름의 순서를 기반으로 합니다.

      열 파티셔닝의 예는 다음 단원[열 파티셔닝의 예](#jobs.recipe-column-partition-example)을 참조하십시오.

1. (선택 사항) DataBrew가 **출력 위치에 쓰는 작업 출력을 암호화하려면 작업 출력에 암호화 활성화**를 선택한 다음 암호화 방법을 선택합니다.
   + **SSE-S3 암호화 사용** - 출력은 Amazon S3 관리형 암호화 키를 사용한 서버 측 암호화를 사용하여 암호화됩니다.
   + **Use AWS Key Management Service(AWS KMS)** - 출력은를 사용하여 암호화됩니다AWS KMS. 이 옵션을 사용하려면 사용하려는AWS KMS키의 Amazon 리소스 이름(ARN)을 선택합니다.AWS KMS키가 없는 경우 키 생성을 선택하여 **AWS KMS키를 생성할 수 있습니다**.

1. **액세스 권한**에서 DataBrew가 출력 위치에 쓸 수 있도록 허용하는AWS Identity and Access Management(IAM) 역할을 선택합니다. 계정이 소유한 위치의 경우 `AwsGlueDataBrewDataAccessRole` 서비스 관리형 역할을 선택할 수 있습니다AWS. 이렇게 하면 DataBrew가 사용자가 소유한AWS리소스에 액세스할 수 있습니다.

1. **고급 작업 설정** 창에서 작업 실행 방법에 대한 추가 옵션을 선택할 수 있습니다.
   + **최대 단위 수** - DataBrew는 병렬로 실행되는 여러 컴퓨팅 노드를 사용하여 작업을 처리합니다. 기본 노드 수는 5개입니다. 최대 노드 수는 149개입니다.
   + **작업 제한 시간 - **작업 실행에 설정한 분 이상 걸리는 경우 제한 시간 오류와 함께 작업이 실패합니다. 기본값은 2,880분 또는 48시간입니다.
   + **재시도 횟수 **- 실행 중에 작업이 실패하면 DataBrew는 다시 실행을 시도할 수 있습니다. 기본적으로 작업은 재시도되지 않습니다.
   + **작업에 Amazon CloudWatch Logs 활성화** - DataBrew가 진단 정보를 CloudWatch Logs에 게시하도록 허용합니다. 이러한 로그는 문제 해결이나 작업 처리 방법에 대한 자세한 정보를 제공하는 데 유용할 수 있습니다.

1. **일정 작업**의 경우 작업이 특정 시간에 또는 반복적으로 실행되도록 DataBrew 작업 일정을 적용할 수 있습니다. 자세한 내용은 [일정에 따라 작업 실행 자동화](#jobs.scheduling) 단원을 참조하십시오.

1. 설정이 원하는 대로 되면 **작업 생성을** 선택합니다. 또는 작업을 즉시 실행하려면 **작업 생성 및 실행**을 선택합니다.

작업이 실행되는 동안 상태를 확인하여 작업 진행 상황을 모니터링할 수 있습니다. 작업 실행이 완료되면 상태가 **성공**으로 변경됩니다. 이제 선택한 출력 위치에서 작업 출력을 사용할 수 있습니다.

DataBrew는 나중에 동일한 작업을 실행할 수 있도록 작업 정의를 저장합니다. 작업을 다시 실행하려면 탐색 창에서 **작업을** 선택합니다. 작업할 작업을 선택한 다음 **작업 실행**을 선택합니다.

## 열 파티셔닝의 예
<a name="jobs.recipe-column-partition-example"></a>

열 분할의 예로 3개의 열을 지정한다고 가정합니다. 각 열의 행에는 두 개의 가능한 값 중 하나가 포함됩니다. `Dept` 열에는 `Admin` 또는 값이 있을 수 있습니다`Eng`. `Staff-type` 열에는 `Part-time` 또는 값이 있을 수 있습니다`Full-time`. `Location` 열에는 `Office1` 또는 값이 있을 수 있습니다`Office2`. 작업 출력의 Amazon S3 버킷은 다음과 같습니다.

```
s3://bucket/output-folder/Dept=Admin/Staff-type=Part-time/Area=Office1/jobId_timestamp_part0001.csv
s3://bucket/output-folder/Dept=Admin/Staff-type=Part-time/Location=Office2/jobId_timestamp_part0002.csv
s3://bucket/output-folder/Dept=Admin/Staff-type=Full-time/Location=Office1/jobId_timestamp_part0003.csv
s3://bucket/output-folder/Dept=Admin/Staff-type=Full-time/Location=Office2/jobId_timestamp_part0004.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Part-time/Location=Office1/jobId_timestamp_part0005.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Part-time/Location=Office2/jobId_timestamp_part0006.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Full-time/Location=Office1/jobId_timestamp_part0007.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Full-time/Location=Office2/jobId_timestamp_part0008.csv
```

## 일정에 따라 작업 실행 자동화
<a name="jobs.scheduling"></a>

언제든지 DataBrew 작업을 다시 실행하고 일정에 따라 DataBrew 작업 실행을 자동화할 수도 있습니다.

**DataBrew 작업을 다시 실행하려면**

1. 에 로그인AWS Management Console하고 [https://console.aws.amazon.com/databrew/](https://console.aws.amazon.com/databrew/) DataBrew 콘솔을 엽니다.

1. 탐색 창에서 **작업을** 선택합니다. 실행할 작업을 선택한 다음 **작업 실행**을 선택합니다.

특정 시간에 또는 반복적으로 DataBrew 작업을 실행하려면 DataBrew 작업 일정을 생성합니다. 그런 다음 일정에 따라 실행되도록 작업을 설정할 수 있습니다.

**DataBrew 작업 일정을 생성하려면**

1. DataBrew 콘솔의 탐색 창에서 **작업을** 선택합니다. **일정** 탭을 선택하고 **일정 추가**를 선택합니다.

1. 일정 이름을 입력한 다음 **실행 빈도** 값을 선택합니다.
   + **반복 **- 작업을 실행할 빈도를 선택합니다(예: 12시간마다). 그런 다음 작업을 실행할 요일을 선택합니다. 선택적으로 작업이 실행되는 시간을 입력할 수 있습니다.
   + **특정 시간 **- 작업을 실행할 시간을 입력합니다. 그런 다음 작업을 실행할 요일을 선택합니다.
   + **CRON 입력** - 유효한 cron 표현식을 입력하여 작업 일정을 정의합니다. 자세한 내용은 [레시피 작업에 대한 cron 표현식 작업](#jobs.cron) 단원을 참조하십시오.

1. 원하는 대로 설정되었으면 [**Save**]를 선택합니다.

**작업을 일정과 연결하려면**

1. 탐색 창에서 **작업을** 선택합니다.

1. 작업할 작업을 선택한 다음 **작업**에서 **편집을 선택합니다**.

1. **일정 작업** 창에서 **일정 연결을** 선택합니다. 사용할 일정의 이름을 선택합니다.

1. 원하는 대로 설정되었으면 [**Save**]를 선택합니다.

## 레시피 작업에 대한 cron 표현식 작업
<a name="jobs.cron"></a>

cron 표현식에는 각각 공백으로 구분되는 필수 필드 6개가 있습니다. 구문은 다음과 같습니다.

```
{{Minutes}} {{Hours}} {{Day-of-month}} {{Month}} {{Day-of-week}} {{Year}}
```

앞의 구문에서는 표시된 필드에 다음 값과 와일드카드가 사용됩니다.


| **필드** | **값** | **와일드카드** | 
| --- | --- | --- | 
| Minutes | 0\~59 | , - \* / | 
| Hours | 0\~23 | , - \* / | 
| Day-of-month | 1\~31 | , - \* ? / L W | 
| 월 | 1\~12 또는 JAN-DEC | , - \* / | 
| 요일 | 1\~7 또는 SUN\~SAT | , - \* ? / L | 
| 연도 | 1970\~2199 | , - \* / | 

다음과 같이 이러한 와일드카드를 사용합니다.
+ **,**(쉼표) 와일드카드는 추가 값을 포함합니다. `Month` 필드에는 1월, 2월, 3월을 `JAN,FEB,MAR` 포함합니다.
+ **-(**en dash) 와일드카드는 범위를 지정합니다. `Day` 필드에서 1\~15에는 지정된 달의 1\~15일이 포함됩니다.
+ **\***(별표) 와일드카드는 필드의 모든 값을 포함합니다. `Hours` 필드에서 **\***는 매시간을 포함합니다.
+ **/**(슬래시) 와일드카드로 증분을 지정합니다. `Minutes` 필드에 **1/10**를 입력하여 매 10분마다 지정할 수 있습니다. 첫 1분부터 시작합니다(예: 11분, 21분, 31분).
+ **?**(물음표) 와일드카드는 어떤 한 가지나 다른 것을 지정합니다. 예를 들어 `Day-of-month` 필드에 **7**을 입력한다고 가정해 보겠습니다. 일곱 번째 주중의 요일을 신경쓰지 않았다면를 입력할 수 있습니까**?** `Day-of-week` 필드에를 입력합니다.
+ `Day-of-month` 또는 `Day-of-week` 필드의 **L** 와일드카드는 월 또는 주의 마지막 날짜를 지정합니다.
+ ] 필드에서는 **W** 와일드카드로 어떤 한 평일을 지정할 수 있습니다. `Day-of-month` `Day-of-month` 필드에서 `3W`를 해당 월의 세 번째 평일에 가장 가까운 날을 지정할 수 있습니다.

이러한 필드 및 값에는 다음과 같은 제한 사항이 있습니다.
+ 동일한 cron 표현식에 `Day-of-month`와 `Day-of-week` 필드를 지정할 수 없습니다. 이 필드 중 하나에 값을 지정하는 경우에는 다른 필드에서 반드시 **?**(물음표)를 사용해야 합니다.
+ 5분보다 빠른 속도로 이어지는 Cron 표현식은 지원되지 않습니다.

일정을 생성할 때는 다음과 같은 Cron 문자열을 사용할 수 있습니다.


| 분 | 시간 | 일 | 월 | 요일 | 연도 | 의미 | 
| --- | --- | --- | --- | --- | --- | --- | 
| 0 | 10 | \* | \* | ? | \* | 매일 오전 10시(UTC)에 실행 | 
| 15 | 12 | \* | \* | ? | \* | 매일 오후 12시 15분(UTC)에 실행 | 
| 0 | 18 | ? | \* | 월-금 | \* | 매주 월요일부터 금요일까지 오후 6시(UTC)에 실행 | 
| 0 | 8 | 1 | \* | ? | \* | 매월 1일 오전 8시(UTC)에 실행 | 
| 0/15 | \* | \* | \* | ? | \* | 15분마다 실행 | 
| 0/10 | \* | ? | \* | 월-금 | \* | 월요일부터 금요일까지 10분마다 실행 | 
| 0/5 | 8\~17 | ? | \* | 월-금 | \* | 월요일부터 금요일까지 오전 8시부터 오후 5시 55분(UTC) 사이에 5분마다 실행 | 

예를 들어 다음 cron 표현식을 사용하여 매일 12:15 UTC에 작업을 실행할 수 있습니다.

```
15 12 * * ? *
```

## 작업 및 작업 일정 삭제
<a name="jobs.deleting"></a>

작업 또는 작업 일정이 더 이상 필요하지 않은 경우 삭제할 수 있습니다.

**작업 삭제**

1. 탐색 창에서 **작업을** 선택합니다.

1. 삭제할 작업을 선택한 다음 **작업**에서 **삭제를 선택합니다**.

**작업 일정을 삭제하려면**

1. 탐색 창에서 **작업을** 선택한 다음 **일정** 탭을 선택합니다.

1. 삭제할 일정을 선택한 다음 **작업**에서 **삭제를 선택합니다**.