Amazon S3 이벤트 알림을 사용하여 크롤링 가속화 - AWS Glue

Amazon S3 이벤트 알림을 사용하여 크롤링 가속화

Amazon S3 또는 데이터 카탈로그 대상의 객체를 나열하는 대신 Amazon S3 이벤트를 사용하여 변경 사항을 찾도록 크롤러를 구성할 수 있습니다. 이 기능은 전체 Amazon S3 또는 데이터 카탈로그 대상을 나열하는 대신 Amazon S3 이벤트를 통해 이벤트를 트리거한 하위 폴더의 모든 파일을 나열하여 두 크롤링 간의 변경 사항을 식별하므로 다시 크롤링하는 시간이 단축됩니다.

첫 번째 크롤링은 대상의 모든 Amazon S3 객체를 나열합니다. 첫 번째 크롤링이 성공한 후에는 수동으로 또는 정해진 일정에 따라 다시 크롤링하도록 선택할 수 있습니다. 크롤러는 모든 객체를 나열하지 않고 해당 이벤트의 객체만 나열합니다.

대상이 데이터 카탈로그 테이블인 경우 크롤러는 변경 내용을 사용하여 데이터 카탈로그의 기존 테이블을 업데이트합니다(예: 테이블의 추가 파티션).

Amazon S3 이벤트 기반 크롤러로 이동할 경우의 이점은 다음과 같습니다.

  • 대상의 모든 객체를 나열할 필요 없이 객체가 추가되거나 삭제되는 특정 폴더가 나열되므로 더 빠르게 다시 크롤링할 수 있습니다.

  • 객체가 추가되거나 삭제되는 특정 폴더가 나열되므로 전체 크롤링 비용이 절감됩니다.

Amazon S3 이벤트 크롤링은 크롤러 일정에 따라 SQS 대기열의 Amazon S3 이벤트를 사용하여 실행됩니다. 대기열에 이벤트가 없으면 비용이 발생하지 않습니다. SQS 대기열이나 여러 소비자가 동일한 이벤트를 필요로 하는 경우 SNS와 SQS의 조합으로 바로 이동하도록 Amazon S3 이벤트를 구성할 수 있습니다. 자세한 내용은 Amazon S3 이벤트 알림을 위해 계정 설정 섹션을 참조하세요.

이벤트 모드로 크롤러를 생성하고 구성한 후 첫 번째 크롤링은 Amazon S3 또는 데이터 카탈로그 대상을 모두 나열하여 목록 모드로 실행됩니다. "크롤링이 Amazon S3 이벤트를 사용하여 실행되고 있습니다."라는 로그는 첫 번째 크롤링이 성공적으로 끝난 후 크롤링이 Amazon S3 이벤트를 사용하여 작동하고 있음을 확인합니다.

Amazon S3 이벤트 크롤링을 생성하고 크롤링에 영향을 줄 수 있는 크롤러 속성을 업데이트하면 크롤링이 목록 모드로 작동하고 "크롤링이 S3 이벤트 모드로 실행되고 있지 않습니다."라는 로그가 추가됩니다.

참고

사용할 수 있는 최대 메시지 수는 크롤링당 100,000개입니다.

고려 사항 및 제한 사항

Amazon S3 이벤트 알림을 사용하여 변경 사항을 찾도록 크롤러를 구성할 때 다음 고려 사항과 제한 사항이 적용됩니다.

  • 삭제된 파티션의 중요 동작

    Data Catalog 테이블에서 Amazon S3 이벤트 크롤러를 사용하는 경우:

    • DeletePartition API 직접 호출을 사용하여 파티션을 삭제하는 경우 해당 파티션의 모든 S3 객체도 삭제하고, S3 이벤트 알림을 구성할 때 모든 객체 제거 이벤트를 선택해야 합니다. 삭제 이벤트가 구성되지 않은 경우 크롤러는 다음 실행 도중 삭제된 파티션을 다시 생성합니다.

  • Amazon S3 대상이든 Data Catalog 대상이든 크롤러는 단일 대상만 지원합니다.

  • 프라이빗 VPC의 SQS는 지원되지 않습니다.

  • Amazon S3 샘플링은 지원되지 않습니다.

  • 크롤러 대상은 Amazon S3 대상의 폴더이거나 데이터 카탈로그 대상에 대한 하나 이상의 AWS Glue 데이터 카탈로그 테이블이어야 합니다.

  • 'everything' 경로 와일드카드는 지원되지 않습니다(s3://%).

  • 데이터 카탈로그 대상의 경우 모든 카탈로그 테이블은 Amazon S3 이벤트 모드에 대해 동일한 Amazon S3 버킷을 가리켜야 합니다.

  • 데이터 카탈로그 대상의 경우 카탈로그 테이블은 Delta Lake 형식(_symlink 폴더 포함 또는 카탈로그 테이블의 InputFormat 확인)의 Amazon S3 위치를 가리키지 않아야 합니다.

Amazon S3 이벤트 알림을 위해 계정 설정

다음 설정 태스크를 완료합니다. 괄호 안의 값은 스크립트에서 구성 가능한 설정을 가리킵니다.

  1. Amazon S3 버킷의 이벤트 알림을 설정해야 합니다.

    자세한 내용은 Amazon S3 이벤트 알림을 참조하세요.

  2. Amazon S3 이벤트 기반 크롤러를 사용하려면 S3 대상 및 SQS의 스토어와 동일한 접두사에서 필터링된 이벤트를 사용하여 Amazon S3 버킷에서 이벤트 알림을 사용해야 합니다. 연습: 알림용 버킷 구성 단계에 따라 콘솔을 통해 SQS와 이벤트 알림을 설정할 수 있습니다.

  3. 크롤러가 사용하는 역할에 다음 SQS 정책을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ListDeadLetterSourceQueues", "sqs:ReceiveMessage", "sqs:GetQueueAttributes", "sqs:ListQueueTags", "sqs:SetQueueAttributes", "sqs:PurgeQueue" ], "Resource": "arn:aws:sqs:{region}:{accountID}:cfn-sqs-queue" } ] }