분류기 정의 및 관리 - AWS Glue

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

분류기 정의 및 관리

분류자는 데이터 스토어의 데이터를 읽습니다. 데이터 포맷을 인식하면 스키마를 생성합니다. 분류자는 확실성 숫자를 반환하여 포맷 인식이 어땠는지 보여줍니다.

AWS Glue에서 기본 분류자 세트를 제공하지만 사용자 지정 분류자를 생성할 수도 있습니다. AWS Glue는 크롤러 정의에 지정된 순서로 사용자 정의 분류자를 먼저 호출합니다. 사용자 분류자에서 반환된 결과에 따라 AWS Glue는 기본 설정 분류자도 시작할 수 있습니다. 분류자가 진행 중에 certainty=1.0을 반환하면 정확한 스키마를 생성할 수 있다는 100% 확실성을 나타냅니다. 이후 AWS Glue가 해당 분류자의 출력을 사용합니다.

어떠한 분류자도 certainty=1.0을 반환하지 않으면, AWS Glue는 높은 확실성이 있는 분류자 출력을 사용합니다. 어떠한 분류자도 0.0을 초과한 확실성을 반환하지 않으면, AWS Glue는 UNKNOWN의 기본 분류 문자열을 반환합니다.

언제 분류자를 사용하나요?

데이터 스토어를 크롤하여 AWS Glue Data Catalog에 메타데이터 테이블을 정의할 때 분류자를 사용합니다. 분류자의 순서가 있는 세트를 통해 크롤러를 설치할 수 있습니다. 크롤러가 분류자를 시작할 때 분류자는 데이터가 인식되었는지 결정합니다. 분류자가 데이터를 인식하지 못하거나 100% 확실성이 없다면 크롤러는 목록에서 다음 분류자를 시작하여 데이터를 인식하는지 결정합니다.

AWS Glue 콘솔을 사용한 분류자 생성에 대한 자세한 내용은 콘솔을 AWS Glue 사용하여 분류기 만들기을 참조하십시오.

사용자 지정 분류자

분류자의 출력은 파일 분류 혹은 포맷(예를 들어 json) 및 파일 스키마를 보여주는 문자열을 포함합니다. 사용자 지정 분류자의 경우, 분류자 유형을 기반으로 스키마를 생성하는 로직을 정의합니다. 분류기 유형에는 Grok 패턴, XML 태그 및 경로를 기반으로 스키마를 정의하는 것이 포함됩니다. JSON

분류자 정의를 변경하면 분류자를 사용하여 이전에 크롤링된 어떤 데이터도 재분류가 되지 않습니다. 크롤러는 이전에 크롤링된 데이터를 계속 추적합니다. 새로운 데이터는 업데이트된 스키마 결과를 낳을 수 있는 업데이트된 분류자로 분류됩니다. 데이터 스키마가 연관되면 크롤러를 실행할 때 분류자를 계정에 업데이트하여 스키마를 변경합니다. 부정확한 분류자를 바로 잡기 위해 데이터를 재분류하려면 업데이트된 분류자로 새로운 데이터를 생성합니다.

AWS Glue의 사용자 지정 분류자를 생성하는 방법에 대한 자세한 내용은 다양한 데이터 형식을 위한 사용자 지정 분류기 작성 섹션을 참조하십시오.

참고

데이터 포맷이 기본 설정 분류자 중 하나로 인식되면 사용자 지정 분류자를 생성할 필요가 없습니다.

내장 분류기

AWS Glue, JSONCSV, 웹 로그 및 여러 데이터베이스 시스템을 비롯한 다양한 형식을 위한 내장 분류기를 제공합니다.

AWS Glue가 100% 확실성의 입력 데이터 포맷에 맞는 사용자 지정 분류자를 찾을 수 없다면 다음 테이블에 보여진 것처럼 기본 설정 분류자를 시작합니다. 기본 설정 분류자는 포맷이 일치한지(certainty=1.0) 일치하지 않는지(certainty=0.0) 보여주는 결과를 반환합니다. certainty=1.0이 있는 첫 번째 분류자는 Data Catalog의 메타데이터 테이블의 분류 문자열 및 스키마를 제공합니다.

분류자 유형 분류 문자열 참고
Apache Avro avro 파일 시작 부분의 스키마를 읽어 포맷을 결정합니다.
아파치 ORC orc 파일 메타데이터를 읽어 포맷을 결정합니다.
Apache Parquet parquet 파일 끝 부분의 스키마를 읽어 포맷을 결정합니다.
JSON json 파일 시작 부분을 읽어 포맷을 결정합니다.
바이너리 JSON bson 파일 시작 부분을 읽어 포맷을 결정합니다.
XML xml 파일의 시작 부분을 읽고 형식을 결정합니다. AWS Glue문서의 XML 태그를 기반으로 테이블 스키마를 결정합니다.

문서에서 행을 지정하는 사용자 지정 XML 분류자를 만드는 방법에 대한 자세한 내용은 을 참조하십시오XML사용자 지정 분류기 작성.

Amazon Ion ion 파일 시작 부분을 읽어 포맷을 결정합니다.
통합된 Apache Log combined_apache grok 패턴을 통해 로그 포맷을 결정합니다.
Apache log apache grok 패턴을 통해 로그 포맷을 결정합니다.
Linux kernel log linux_kernel grok 패턴을 통해 로그 포맷을 결정합니다.
Microsoft log microsoft_log grok 패턴을 통해 로그 포맷을 결정합니다.
Ruby log ruby_logger 파일 시작 부분을 읽어 포맷을 결정합니다.
Squid 3.x log squid 파일 시작 부분을 읽어 포맷을 결정합니다.
Redis monitor log redismonlog 파일 시작 부분을 읽어 포맷을 결정합니다.
Redis log redislog 파일 시작 부분을 읽어 포맷을 결정합니다.
CSV csv 콤마(,) 혹은 파이프(|), 탭(\t), 세미콜론(;), Ctrl+A(\u0001)의 다음 구획 문자를 확인합니다. Ctrl-A는 Start Of Heading용 유니코드 관리 문자입니다.
Amazon Redshift redshift JDBC연결을 사용하여 메타데이터를 가져옵니다.
내 SQL mysql JDBC연결을 사용하여 메타데이터를 가져옵니다.
Postgre SQL postgresql JDBC연결을 사용하여 메타데이터를 가져옵니다.
Oracle 데이터베이스 oracle JDBC연결을 사용하여 메타데이터를 가져옵니다.
마이크로소프트 SQL 서버 sqlserver JDBC연결을 사용하여 메타데이터를 가져옵니다.
Amazon DynamoDB dynamodb DynamoDB 테이블에서 데이터를 읽습니다.

다음 형식의 파일은 분류될 수 있습니다.

  • ZIP(단일 파일만 포함하는 아카이브에 지원됨). 다른 서비스에서는 Zip이 잘 지원되지 않습니다(아카이브 때문에).

  • BZIP

  • GZIP

  • LZ4

  • Snappy(표준 및 Hadoop 네이티브 Snappy 형식 모두에서 지원됨)

내장 CSV 분류기

내장 CSV 분류기는 CSV 파일 내용을 분석하여 테이블의 스키마를 결정합니다. AWS Glue 이 분류자는 다음 구분 기호를 확인합니다.

  • 쉼표(,)

  • 파이프(|)

  • 탭(\t)

  • 세미콜론(;)

  • Ctrl-A (\u0001)

    Ctrl-A는 Start Of Heading용 유니코드 관리 문자입니다.

테이블 스키마로 CSV 분류되려면 최소 두 개의 열과 두 개의 데이터 행이 있어야 합니다. CSV분류기는 여러 가지 발견적 방법을 사용하여 주어진 파일에 헤더가 있는지 여부를 확인합니다. 분류자가 데이터의 첫 번째 행에서 헤더를 결정하지 못하면 열 헤더는 col1, col2, col3 등으로 보여집니다. 내장 CSV 분류기는 파일의 다음 특성을 평가하여 헤더를 유추할지 여부를 결정합니다.

  • 잠재적 헤더의 모든 열은 데이터 유형으로 파싱됩니다. STRING

  • 마지막 열을 제외하면 잠재적 헤더의 모든 열은 150 문자보다 적습니다. 후행 구분 기호를 허용하기 위해서는 마지막 열이 파일 전체로 비어 있을 수 있습니다.

  • 잠재적 헤더의 모든 열은 열 이름 때문에 AWS Glue regex 요구 사항과 일치해야 합니다.

  • 헤더는 데이터 행과 많이 달라야 합니다. 이를 확인하려면 하나 이상의 행을 유형이 아닌 STRING 다른 유형으로 파싱해야 합니다. 모든 열의 유형이 STRING 다음과 같으면 첫 번째 데이터 행이 머리글로 사용될 후속 행과 충분히 다르지 않은 것입니다.

참고

내장 CSV 분류기가 AWS Glue 테이블을 원하는 대로 만들지 않는 경우 다음 대안 중 하나를 사용할 수 있습니다.

  • 데이터 카탈로그에서 열 이름을 변경하고 를 SchemaChangePolicy 로 LOG 설정하고 파티션 출력 구성을 향후 크롤러 InheritFromTable 실행에 맞게 설정합니다.

  • 사용자 지정 grok 분류자를 생성하여 데이터를 파싱하고 원하는 열을 지정합니다.

  • 기본 제공 CSV 분류기는 를 직렬화 라이브러리로 참조하는 테이블을 생성하므로 형식 유추에 적합합니다. LazySimpleSerDe 그러나 CSV 데이터에 따옴표로 묶인 문자열이 포함된 경우 테이블 정의를 편집하고 라이브러리를 로 변경하십시오. SerDe OpenCSVSerDe 추론된 유형을 로 STRING 조정하고 SchemaChangePolicy 를 로 LOG 설정하고 향후 크롤러 실행에 InheritFromTable 사용할 파티션 출력 구성을 로 설정합니다. SerDe 라이브러리에 대한 자세한 내용은 Amazon Athena 사용 설명서의 SerDe 참조를 참조하십시오.