

# 데이터 집합 조인
<a name="transforms-configure-join"></a>

*Join* 변환을 사용하면 2개의 데이터 집합을 하나로 결합 할 수 있습니다. 비교할 각 데이터 집합의 스키마에 키 이름을 지정합니다. 출력 `DynamicFrame`에는 키가 조인 조건을 충족하는 행이 포함됩니다. 조인 조건을 충족하는 각 데이터 집합의 행은 두 데이터 집합에서 찾은 모든 열을 포함하는 출력 `DynamicFrame`의 단일 행으로 결합됩니다.

**작업 다이어그램에 Join 변환 노드를 추가하려면**

1. 사용 가능한 데이터 원본이 하나만 있는 경우 작업 다이어그램에 새 데이터 원본 노드를 추가해야 합니다.

1. 조인을 위한 소스 노드 중 하나를 선택합니다. 리소스 패널을 열고 **Join**을 선택하여 작업 다이어그램에 새 변환을 추가합니다.

1. [**노드 속성(Node properties)**] 탭에서 작업 다이어그램에 노드 이름을 입력합니다.

1. 조인에 대한 입력을 제공하는 2개의 데이터 집합이 있도록 [**노드 속성(Node properties)**] 탭의 머리글 [**노드 상위 항목(Node parents)**] 아래에서 상위 노드를 추가합니다. 상위 항목은 데이터 원본 노드 또는 변환 노드일 수 있습니다.
**참고**  
조인은 2개의 상위 노드만 가질 수 있습니다.

1. [**변환(Transform)**] 탭을 선택합니다.

   충돌하는 키 이름이 있다는 메시지가 나타나면 다음 중 하나를 수행할 수 있습니다.
   + 작업 다이어그램에 *ApplyMapping* 변환 노드를 자동으로 추가하려면 [**해결(Resolve it)**]을 선택합니다. ApplyMapping 노드는 다른 데이터 집합의 키와 이름이 같은 데이터 집합의 모든 키에 접두사를 추가합니다. 예를 들어 기본값인 **right**를 사용하면 왼쪽 데이터 집합의 키와 이름이 같은 오른쪽 데이터 집합의 모든 키 이름이 `(right)key name`으로 바뀝니다.
   + 충돌하는 키를 제거하거나 이름을 바꾸려면 작업 다이어그램 앞부분에 변환 노드를 수동으로 추가합니다.

1. [**조인 유형(Join type)**] 목록에서 조인 유형을 선택합니다.
   + [**내부 조인(Inner join)**]: 조인 조건에 따라 모든 일치 항목에 대해 두 데이터 집합의 열이 있는 행을 반환합니다. 조인 조건을 만족하지 않는 행은 반환되지 않습니다.
   + [**왼쪽 조인(Left join)**]: 왼쪽 데이터 집합의 모든 행과 조인 조건을 충족하는 오른쪽 데이터 집합의 행만.
   + [**오른쪽 조인(Right join)**]: 오른쪽 데이터 집합의 모든 행과 조인 조건을 충족하는 왼쪽 데이터 집합의 행만.
   + [**외부 조인(Outer join)**]: 두 데이터 집합의 모든 행.
   + [**왼쪽 세미 조인(Left semi join)**]: 조인 조건에 따라 오른쪽 데이터 집합과 일치하는 왼쪽 데이터 집합의 모든 행.
   + [**왼쪽 안티 조인(Left semi join)**]: 조인 조건에 따라 오른쪽 데이터 집합과 일치하지 않는 왼쪽 데이터 집합의 모든 행.

1. [**변환(Transform)**] 탭의 [**조인 조건(Join conditions)**] 아래에서 [**조건 추가(Add condition)**]를 선택합니다. 각 데이터 집합에서 비교할 속성 키를 선택합니다. 비교 연산자의 왼쪽에 있는 속성 키를 왼쪽 데이터 집합이라고 하고 오른쪽에 있는 속성 키를 오른쪽 데이터 집합이라고 합니다.

   더 복잡한 조인 조건의 경우 [**조건 추가(Add condition)**]를 두 번 이상 선택하여 일치하는 키를 추가할 수 있습니다. 실수로 조건을 추가한 경우 삭제 아이콘(![\[\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/delete-icon-black.png))을 클릭하여 제거할 수 있습니다.

1. (선택 사항) 변환 노드 속성을 구성한 후 노드 세부 정보 패널에서 [**출력 스키마(Output schema)**] 탭을 선택하여 데이터에 대해 수정된 스키마를 볼 수 있습니다. 작업의 노드에 대해 이 탭을 처음 선택하면 데이터 액세스를 위해 IAM 역할을 제공하라는 메시지가 나타납니다. [**작업 세부 정보(Job details)**] 탭에서 IAM 역할을 지정하지 않은 경우 여기에 IAM 역할을 입력하라는 메시지가 나타납니다.

1. (선택 사항) 노드 속성과 변환 속성을 구성한 후 노드 세부 정보 패널에서 [**데이터 미리 보기(Data preview)**] 탭을 선택하여 수정된 데이터 집합을 미리 볼 수 있습니다. 작업의 노드에 대해 이 탭을 처음 선택하면 데이터 액세스를 위해 IAM 역할을 제공하라는 메시지가 나타납니다. 이 기능 사용과 관련된 비용이 있으며 IAM 역할을 제공하는 즉시 결제가 시작됩니다.

조인 출력 스키마의 예를 들어 다음 속성 키를 사용하여 두 데이터 집합 간의 조인을 고려합니다.

```
Left: {id, dept, hire_date, salary, employment_status}
Right: {id, first_name, last_name, hire_date, title}
```

조인은 `=` 비교 연산자를 사용하여 `id` 및 `hire_date` 키에서 일치하도록 구성됩니다.

두 데이터 집합 모두 `id` 및 `hire_date` 키를 포함하므로 [**해결(Resolve it)**]을 선택하여 올바른 데이터 집합의 키에 접두사 **right**를 자동으로 추가합니다.

출력 스키마의 키는 다음과 같습니다.

```
{id, dept, hire_date, salary, employment_status, 
(right)id, first_name, last_name, (right)hire_date, title}
```