

# Athena 콘솔의 양식을 사용하여 AWS Glue 테이블 추가
<a name="data-sources-glue-manual-table"></a>

다음 절차에서는 Athena 콘솔을 사용하여 **S3 버킷 데이터에서 테이블 생성(Create Table From S3 bucket data)** 양식을 사용하여 테이블을 추가하는 방법을 보여줍니다.

**테이블 추가 및 양식을 사용하여 스키마 정보 입력**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 쿼리 편집기에서 **테이블 및 뷰(Tables and views)** 옆에 있는 **생성(Create)**을 선택한 다음 **S3 버킷 데이터(S3 bucket data)**를 선택합니다.

1. **S3 버킷 데이터에서 테이블 생성(Create Table From S3 bucket data)** 양식에서 **테이블 이름(Table name)**에 테이블 이름을 입력합니다. Athena에서 데이터베이스 이름, 테이블 이름 및 열 이름에 사용할 수 있는 문자에 대한 자세한 내용은 [이름 데이터베이스, 테이블 및 열](tables-databases-columns-names.md) 섹션을 참조하세요.

1. **데이터베이스 구성(Database configuration)**에서 기존 데이터베이스를 선택하거나 새 데이터베이스를 생성합니다.

1. **입력 데이터 세트 위치(Location of Input Data Set)**에는 처리할 데이터 세트가 들어 있는 폴더의 Amazon S3 경로를 지정합니다. 경로에 파일 이름을 포함하지 마세요. 지정하는 폴더에 있는 파일을 Athena에서 모두 스캔합니다. 데이터가 이미 파티셔닝된 경우(예: 

    s3://amzn-s3-demo-bucket/logs/year=2004/month=12/day=11/), 기본 경로만 입력합니다(예: s3://amzn-s3-demo-bucket/logs/).

1. **Data Format**(데이터 형식)의 경우 다음과 같은 옵션 중에서 선택합니다.
   + **Table type**(테이블 유형)에서 **Apache Hive**, **Apache Iceberg** 또는 **Delta Lake**를 선택합니다. Athena에서는 Apache Hive 테이블 유형을 기본값으로 사용합니다. Athena의 Apache Iceberg 테이블 쿼리에 대한 내용은 [Apache Iceberg 테이블 쿼리](querying-iceberg.md) 단원을 참조하세요. Athena의 Delta Lake 테이블 사용에 대한 내용은 [Linux Foundation Delta Lake 테이블 쿼리](delta-lake-tables.md) 단원을 참조하세요.
   + **File format**(파일 형식)의 경우 데이터가 들어 있는 파일 또는 로그 형식을 선택합니다.
     + **사용자 지정 구분 기호가 있는 텍스트 파일** 옵션의 경우 **필드 종결자**(즉, 열 구분 기호)를 지정합니다. 선택 사항으로, 배열 유형의 끝을 표시하는 **Collection terminator**(컬렉션 종결자) 또는 맵 데이터 유형의 끝을 표시하는 **Collection terminator**(컬렉션 종결자)를 지정할 수 있습니다.
   + **SerDe library**(SerDe 라이브러리) – SerDe(serializer-deserializer) 라이브러리에서는 Athena에서 특정 데이터 형식의 테이블을 생성할 수 있도록 구문을 분석합니다. 대다수 형식에 기본 SerDe 라이브러리가 선택되어 있습니다. 다음과 같은 형식의 경우 요구 사항에 따라 라이브러리를 선택합니다.
     + **Apache Web Logs**(Apache 웹 로그) – **RegexSerDe** 또는 **GrokSerDe** 라이브러리를 선택합니다. RegexSerDe의 경우 **Regex definition**(정규식 정의) 상자에 정규 표현식을 입력합니다. GrokSerDe의 경우 `input.format` SerDe 속성에 대해 이름이 지정된 일련의 정규 표현식을 입력합니다. 이름이 지정된 정규 표현식은 정규 표현식보다 읽고 유지 관리하기 쉽습니다. 자세한 내용은 [Amazon S3에 저장된 Apache 로그 쿼리](querying-apache-logs.md) 섹션을 참조하세요.
     + **CSV** – 쉼표로 구분된 데이터에 큰따옴표로 묶인 값이 없거나 `java.sql.Timestamp` 형식을 사용하는 경우 **LazySimpleSerDe**를 선택합니다. 데이터에 따옴표가 있거나 `TIMESTAMP`에 UNIX 숫자 형식을 사용하는(예:`1564610311`) 경우 **OpenCSVSerDe**를 선택합니다. 자세한 내용은 [CSV, TSV, 사용자 지정 구분 기호로 구분된 파일에 대한 Lazy Simple SerDe](lazy-simple-serde.md) 및 [CSV 처리를 위한 Open CSV SerDe](csv-serde.md) 섹션을 참조하세요.
     + **JSON** – **OpenX** 또는 **Hive** JSON SerDe 라이브러리를 선택합니다. 두 형식 모두 각 JSON 문서가 한 줄의 텍스트에 있으며 해당 필드가 줄 바꿈 문자로 구분되지 않을 것으로 예상합니다. OpenX SerDe에서는 몇 가지 추가 속성을 제공합니다. 이러한 속성에 대한 자세한 내용은 [OpenX JSON SerDe](openx-json-serde.md) 단원을 참조하십시오. Hive SerDe에 대한 내용은 [Hive JSON SerDe](hive-json-serde.md) 섹션을 참조하세요.

     Athena의 SerDe 라이브러리 사용에 대한 자세한 내용은 [데이터에 적합한 SerDe 선택](supported-serdes.md) 섹션을 참조하세요.

1. **SerDe properties**(SerDe 속성)의 경우 사용 중인 SerDe 라이브러리와 자신의 요구 사항에 따라 속성과 값을 추가, 편집 또는 제거합니다.
   + SerDe 속성을 추가하려면 **Add SerDe property**(SerDe 속성 추가)를 선택합니다.
   + **Name**(이름) 필드에 속성의 이름을 입력합니다.
   + **Value**(값) 필드에 속성 값을 입력합니다.
   + SerDe 속성을 제거하려면 **Remove**(제거)를 선택합니다.

1. **Table properties**(테이블 속성)의 경우 자신의 요구 사항에 따라 테이블 속성을 선택하거나 편집합니다.
   + **Write compression**(쓰기 압축)의 경우 압축 옵션을 선택합니다. 쓰기 압축 옵션과 사용 가능한 압축 옵션의 가용성은 데이터 형식에 따라 다릅니다. 자세한 내용은 [Athena에서 압축 사용](compression-formats.md) 섹션을 참조하세요.
   + **Encryption**(암호화)의 경우 Amazon S3에서 기본 데이터가 암호화되어 있으면 **Encrypted data set**(암호화된 데이터 세트)를 선택합니다. 이 옵션을 통해 `CREATE TABLE` 명령문의 `has_encrypted_data` 테이블 속성이 true로 설정됩니다.

1. **Column details**(열 세부 정보)의 경우 테이블에 추가할 열의 이름과 데이터 유형을 입력합니다.
   + 열을 한 번에 하나씩 추가하려면 **열 추가**를 선택합니다.
   + 열을 빠르게 추가하려면 **열 일괄 추가**를 선택합니다. 텍스트 상자에 쉼표로 구분된 열 목록을 {{column\_name}} {{data\_type}}, {{column\_name}} {{data\_type}}[, ...], 형식으로 입력한 다음 **추가(Add)**를 선택합니다.

1. (선택 사항) **파티션 세부 정보(Partition details)**에 대해 하나 이상의 열 이름과 데이터 형식을 추가합니다. 파티셔닝은 열 값을 기준으로 관련 데이터가 함께 유지되므로 쿼리당 스캔되는 데이터의 양을 줄이는 데 도움이 될 수 있습니다. 파티셔닝에 대한 자세한 내용은 [데이터 파티셔닝](partitions.md) 섹션을 참조하세요.

1. (선택 사항) **Bucketing**(버킷팅) 경우 함께 그룹화하려는 행이 있는 하나 이상의 열을 지정한 다음에 해당 행을 여러 버킷에 넣을 수 있습니다. 이렇게 하면 버킷 열 값을 지정할 때 읽으려는 버킷만 쿼리할 수 있습니다.
   + **Buckets**(버킷)의 경우 고유 값(예: 프라이머리 키)이 많이 있고 쿼리의 데이터 필터링에 자주 사용되는 열을 하나 이상 선택합니다.
   + **Number of buckets**(버킷 수)의 경우 파일의 최적 크기가 허용되는 숫자를 입력합니다. 자세한 내용은 AWS 빅 데이터 블로그의 [Top 10 Performance Tuning Tips for Amazon Athena](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/)(Amazon Athena의 성능 튜닝을 위한 10가지 팁)를 참조하세요.
   + 버킷된 열을 지정하기 위해 `CREATE TABLE` 명령문에서는 다음과 같은 구문을 사용합니다.

     ```
     CLUSTERED BY ({{bucketed_columns}}) INTO {{number_of_buckets}} BUCKETS
     ```
**참고**  
**Iceberg** 테이블 유형에는 **Bucketing**(버킷팅) 옵션을 사용할 수 없습니다.

1. **미리 보기 테이블 쿼리(Preview table query)** 상자에는 양식에 입력한 정보로 생성된 `CREATE TABLE` 문이 표시됩니다. 미리 보기 문은 직접 편집할 수 없습니다. 명령문을 변경하려면 미리 보기 위의 양식 필드를 수정하거나 양식을 사용하지 않고 쿼리 편집기에서 [직접 명령문을 생성](creating-tables-how-to.md#to-create-a-table-using-hive-ddl)합니다.

1. **테이블 생성(Create table)**을 선택하여 쿼리 편집기에서 생성된 문을 실행하고 테이블을 생성합니다.