Athena 콘솔의 양식을 사용하여 AWS Glue 테이블 추가 - Amazon Athena

Athena 콘솔의 양식을 사용하여 AWS Glue 테이블 추가

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

테이블 추가 및 양식을 사용하여 스키마 정보 입력
  1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

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

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

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

  5. 입력 데이터 세트 위치(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/).

  6. Data Format(데이터 형식)의 경우 다음과 같은 옵션 중에서 선택합니다.

    • Table type(테이블 유형)에서 Apache Hive, Apache Iceberg 또는 Delta Lake를 선택합니다. Athena에서는 Apache Hive 테이블 유형을 기본값으로 사용합니다. Athena의 Apache Iceberg 테이블 쿼리에 대한 내용은 Apache Iceberg 테이블 쿼리 단원을 참조하세요. Athena의 Delta Lake 테이블 사용에 대한 내용은 Linux Foundation Delta Lake 테이블 쿼리 단원을 참조하세요.

    • 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 로그 쿼리 단원을 참조하십시오.

      • CSV – 쉼표로 구분된 데이터에 큰따옴표로 묶인 값이 없거나 java.sql.Timestamp 형식을 사용하는 경우 LazySimpleSerDe를 선택합니다. 데이터에 따옴표가 있거나 TIMESTAMP에 UNIX 숫자 형식을 사용하는(예:1564610311) 경우 OpenCSVSerDe를 선택합니다. 자세한 내용은 CSV, TSV, 사용자 지정 구분 기호로 구분된 파일에 대한 Lazy Simple SerDeCSV 처리를 위한 Open CSV SerDe 섹션을 참조하세요.

      • JSONOpenX 또는 Hive JSON SerDe 라이브러리를 선택합니다. 두 형식 모두 각 JSON 문서가 한 줄의 텍스트에 있으며 해당 필드가 줄 바꿈 문자로 구분되지 않을 것으로 예상합니다. OpenX SerDe에서는 몇 가지 추가 속성을 제공합니다. 이러한 속성에 대한 자세한 내용은 OpenX JSON SerDe 단원을 참조하십시오. Hive SerDe에 대한 내용은 Hive JSON SerDe 섹션을 참조하세요.

      Athena의 SerDe 라이브러리 사용에 대한 자세한 내용은 데이터에 적합한 SerDe 선택 섹션을 참조하세요.

  7. SerDe properties(SerDe 속성)의 경우 사용 중인 SerDe 라이브러리와 자신의 요구 사항에 따라 속성과 값을 추가, 편집 또는 제거합니다.

    • SerDe 속성을 추가하려면 Add SerDe property(SerDe 속성 추가)를 선택합니다.

    • Name(이름) 필드에 속성의 이름을 입력합니다.

    • Value(값) 필드에 속성 값을 입력합니다.

    • SerDe 속성을 제거하려면 Remove(제거)를 선택합니다.

  8. Table properties(테이블 속성)의 경우 자신의 요구 사항에 따라 테이블 속성을 선택하거나 편집합니다.

    • Write compression(쓰기 압축)의 경우 압축 옵션을 선택합니다. 쓰기 압축 옵션과 사용 가능한 압축 옵션의 가용성은 데이터 형식에 따라 다릅니다. 자세한 내용은 Athena에서 압축 사용 단원을 참조하십시오.

    • Encryption(암호화)의 경우 Amazon S3에서 기본 데이터가 암호화되어 있으면 Encrypted data set(암호화된 데이터 세트)를 선택합니다. 이 옵션을 통해 CREATE TABLE 명령문의 has_encrypted_data 테이블 속성이 true로 설정됩니다.

  9. Column details(열 세부 정보)의 경우 테이블에 추가할 열의 이름과 데이터 유형을 입력합니다.

    • 열을 한 번에 하나씩 추가하려면 열 추가를 선택합니다.

    • 열을 빠르게 추가하려면 열 일괄 추가를 선택합니다. 텍스트 상자에 쉼표로 구분된 열 목록을 column_name data_type, column_name data_type[, ...], 형식으로 입력한 다음 추가(Add)를 선택합니다.

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

  11. (선택 사항) Bucketing(버킷팅) 경우 함께 그룹화하려는 행이 있는 하나 이상의 열을 지정한 다음에 해당 행을 여러 버킷에 넣을 수 있습니다. 이렇게 하면 버킷 열 값을 지정할 때 읽으려는 버킷만 쿼리할 수 있습니다.

    • Buckets(버킷)의 경우 고유 값(예: 프라이머리 키)이 많이 있고 쿼리의 데이터 필터링에 자주 사용되는 열을 하나 이상 선택합니다.

    • Number of buckets(버킷 수)의 경우 파일의 최적 크기가 허용되는 숫자를 입력합니다. 자세한 내용은 AWS 빅 데이터 블로그의 Top 10 Performance Tuning Tips for Amazon Athena(Amazon Athena의 성능 튜닝을 위한 10가지 팁)를 참조하세요.

    • 버킷된 열을 지정하기 위해 CREATE TABLE 명령문에서는 다음과 같은 구문을 사용합니다.

      CLUSTERED BY (bucketed_columns) INTO number_of_buckets BUCKETS
    참고

    Iceberg 테이블 유형에는 Bucketing(버킷팅) 옵션을 사용할 수 없습니다.

  12. 미리 보기 테이블 쿼리(Preview table query) 상자에는 양식에 입력한 정보로 생성된 CREATE TABLE 문이 표시됩니다. 미리 보기 문은 직접 편집할 수 없습니다. 명령문을 변경하려면 미리 보기 위의 양식 필드를 수정하거나 양식을 사용하지 않고 쿼리 편집기에서 직접 명령문을 생성합니다.

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