

# SQL 쿼리를 사용하여 데이터 변환
<a name="transforms-sql"></a>

**SQL** 변환을 사용하여 SQL 쿼리 형식으로 고유한 변환을 작성할 수 있습니다.

SQL 변환 노드는 여러 데이터 집합을 입력으로 가질 수 있지만 출력으로 단일 데이터 집합만 생성합니다. Apache SparkSQL 쿼리를 입력하는 텍스트 필드가 있습니다. 단순히 SQL 쿼리를 돕기 위해 입력으로 사용되는 각 데이터 집합에 별칭을 할당할 수 있습니다. SQL 구문에 대한 자세한 내용은 [Spark SQL 설명서](https://spark.apache.org/docs/latest/sql-ref.html)를 참조하세요.

**참고**  
VPC에 위치한 데이터 원본으로 Spark SQL 변환을 사용하는 경우 데이터 원본이 포함된 VPC에 AWS Glue VPC 엔드포인트를 추가합니다. 개발 엔드포인트 구성에 대한 자세한 내용은 *AWS Glue Developer Guide*의 [Adding a Development Endpoint](https://docs.aws.amazon.com/glue/latest/dg/add-dev-endpoint.html), [Setting Up Your Environment for Development Endpoints](https://docs.aws.amazon.com/glue/latest/dg/start-development-endpoint.html), and [Accessing Your Development Endpoint](https://docs.aws.amazon.com/glue/latest/dg/dev-endpoint-elastic-ip.html)를 참조하세요.

**작업 다이어그램에서 SQL 변환 노드를 사용하려면**

1. (선택 사항) 필요한 경우 작업 다이어그램에 변환 노드를 추가합니다. 노드 유형으로 **SQL Query**를 선택합니다.
**참고**  
 데이터 미리 보기 세션과 사용자 지정 SQL 또는 사용자 지정 코드 노드를 사용하는 경우 데이터 미리 보기 세션은 전체 데이터세트에 대해 SQL 또는 코드 블록을 있는 그대로 실행합니다.

1. [**노드 속성(Node properties)**] 탭에서 작업 다이어그램에 노드 이름을 입력합니다. 노드 상위 항목이 아직 선택되지 않았거나 SQL 변환에 대해 여러 입력을 원하는 경우 [**노드 상위 항목(Node parents)**] 목록에서 변환의 입력 소스로 사용할 노드를 선택합니다. 필요에 따라 상위 노드를 추가합니다.

1. 노드 세부 정보 패널에서 [**변환(Transform)**] 탭을 선택합니다.

1. SQL 쿼리의 소스 데이터 집합은 각 노드의 [**이름(Name)**] 필드에 지정한 이름으로 식별됩니다. 이러한 이름을 사용하지 않으려는 경우나 이름이 SQL 쿼리에 적합하지 않은 경우 각 데이터 집합에 이름을 연결할 수 있습니다. 콘솔은 `MyDataSource`와 같은 기본 별칭을 제공합니다.

   예를 들어, SQL 변환 노드의 상위 노드 이름이 `Rename Org PK field`인 경우 `org_table`이라는 이름을 이 데이터 집합과 연결할 수 있습니다. 그런 다음 이 별칭을 노드 이름 대신 SQL 쿼리에서 사용할 수 있습니다.

1. 머리글 [**코드 블록(Code block)**] 아래의 텍스트 입력 필드에 SQL 쿼리를 붙여넣거나 입력합니다. 텍스트 필드에는 SQL 구문 강조 표시 및 키워드 제안 사항이 표시됩니다.

1. SQL 변환 노드를 선택한 상태에서 [**출력 스키마(Output schema)**] 탭을 선택한 다음 [**편집(Edit)**]을 선택합니다. SQL 쿼리의 출력 필드를 설명하는 열과 데이터 유형을 제공합니다.

   페이지의 [**출력 스키마(Output schema)**] 섹션에서 다음 작업을 사용하여 스키마를 지정합니다.
   + 열 이름을 바꾸려면 열의 [**키(Key)**] 텍스트 상자(*필드* 또는 *속성 키*라고도 함)에 커서를 놓고 새 이름을 입력합니다.
   + 열의 데이터 유형을 변경하려면 드롭다운 목록에서 열의 새 데이터 유형을 선택합니다.
   + 스키마에 새 최상위 열을 추가하려면 오버플로(![A rectangle with an ellipsis (...) in the center](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/edit-schema-actions-button.png)) 버튼을 선택한 다음 [**루트 키 추가(Add root key)**]를 선택합니다. 새 열이 스키마 맨 위에 추가됩니다.
   + 스키마에서 열을 제거하려면 키 이름의 맨 오른쪽에 있는 삭제 아이콘(![An outline of a trash can](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/delete-icon-black.png))을 선택합니다.

1. 출력 스키마 지정을 마치면 [**적용(Apply)**]을 선택하여 변경 사항을 저장하고 스키마 편집기를 종료합니다. 변경 사항을 저장하지 않으려면 [**취소(Cancel)**]를 선택하여 스키마 편집기를 편집합니다.

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