AWS Glue 크롤러가 장시간 실행되는 이유는 무엇입니까?

최종 업데이트 날짜: 2019년 9월 24일

AWS Glue 크롤러가 몇 시간 이상 실행되었지만 내 데이터 스토어에서 스키마를 식별할 수 없습니다. 크롤러 실행이 너무 오래 걸리고 속도를 높이려면 어떻게 해야 합니까?

간략한 설명

크롤러 실행 시간이 긴 일반적인 원인은 다음과 같습니다.

  • 새 데이터 자주 추가: 첫 번째 크롤러가 실행되는 동안 크롤러는 각 파일의 첫 번째 메가바이트를 읽어 스키마를 유추합니다. 후속 크롤러가 실행되는 동안 크롤러는 대상의 파일(최초 실행 중에 크롤링된 파일 포함)을 나열하고 새 파일의 첫 번째 메가바이트를 읽습니다. 크롤러는 이전 크롤러 실행에서 읽은 파일을 읽지 않습니다. 따라서 후속 크롤러 실행이 더 빠른 경우가 많습니다. 하지만 크롤러 실행 간에 데이터 스토어에 많은 파일이나 폴더를 추가하면 매번 실행 시간이 증가합니다.
  • 압축 파일 크롤링: 압축 파일은 크롤링하는 데 더 오래 걸립니다. 크롤러가 첫 번째 메가바이트를 읽거나 파일을 나열하기 전에 파일을 다운로드하고 압축을 해제해야 하기 때문입니다.
    참고: Apache Parquet, Apache Avro 및 Apache Orc 파일의 경우 크롤러는 첫 번째 메가바이트를 크롤링하지 않습니다. 대신 크롤러는 각 파일에 저장된 메타데이터를 읽습니다.

해결 방법

문제 해결을 시작하기 전에 크롤러를 실행해야 하는지 여부를 고려하십시오. AWS Glue 데이터 카탈로그에 테이블을 생성하고 ETL 작업 또는 Amazon Athena와 같은 다운스트림 서비스에서 테이블을 사용할 필요가 없다면 크롤러를 실행할 필요가 없습니다. ETL 작업의 경우 from_options를 사용하여 데이터 스토어에서 직접 데이터를 읽고 DynamicFrame의 변환을 사용할 수 있습니다. 이렇게 하면 ETL 파이프라인에 크롤러가 필요하지 않습니다. 크롤러가 사용 사례에 적합하다고 판단되면 다음 방법 중 하나 이상을 사용하여 크롤러 실행 시간을 줄입니다.

제외 패턴 사용

제외 패턴은 크롤러에게 특정 파일 또는 경로를 건너뛰도록 지시합니다. 제외 패턴은 크롤러가 나열해야 하는 파일 수를 줄입니다. 즉, 크롤러가 더 빠르게 실행됩니다. 예를 들어, 제외 패턴을 사용하여 이미 크롤링된 메타 파일과 파일을 제외합니다. 제외 패턴의 예를 포함한 자세한 내용은 패턴 포함 및 제외를 참조하십시오.

여러 크롤러 실행

전체 데이터 스토어에서 하나의 크롤러를 실행하는 대신 여러 개의 크롤러를 실행하는 것이 좋습니다. 짧은 시간 동안 여러 크롤러를 실행하는 것이 크롤러 하나를 장시간 실행하는 것보다 낫습니다. 예를 들어, 데이터를 연도별로 파티셔닝하고 각 파티션에 대량의 데이터가 포함되어 있다고 가정합니다. 각 파티션에서 매년 다른 크롤러를 실행하면 크롤러가 더 빨리 완료됩니다.

더 작은 파일을 결합하여 더 큰 파일을 만듭니다.

소수의 대용량 파일보다 많은 수의 작은 파일을 크롤링하는 데 더 많은 시간이 걸립니다. 크롤러가 각 파일을 나열해야 하고 각 새 파일의 첫 번째 메가바이트를 읽어야 하기 때문입니다.