다음을 통해 공유


파일 이벤트가 있는 자동 로더 개요

효율적인 파일 검색을 제공하는 Auto Loader 옵션에 대해 알아봅니다.

파일 이벤트가 있는 자동 로더는 어떻게 작동하나요?

파일 이벤트가 있는 자동 로더는 클라우드 공급업체에서 제공하는 파일 이벤트 알림 기능을 사용합니다. 새 파일 만들기 및 수정과 같은 파일 이벤트에 알림을 게시하도록 클라우드 스토리지 컨테이너를 구성할 수 있습니다. 예를 들어 Amazon S3 이벤트 알림을 사용하면 새 파일 도착이 Amazon SNS 토픽에 대한 알림을 트리거할 수 있습니다. 그런 다음, 이벤트의 비동기 처리를 위해 Amazon SQS 큐를 SNS 토픽에 구독할 수 있습니다.

다음 다이어그램에서는 이 패턴을 보여 줍니다.

클라우드 스토리지 이벤트 알림 시스템

Databricks 파일 이벤트는 파일 이벤트를 수신 대기하도록 클라우드 리소스를 설정하는 서비스입니다. 또는 클라우드 리소스를 직접 설정하고 고유한 스토리지 큐를 제공할 수 있습니다.

클라우드 리소스가 구성되면 서비스는 파일 이벤트를 수신 대기하고 파일 메타데이터 정보를 캐시합니다. 자동 로더는 cloudFiles.useManagedFileEventstrue으로 설정된 상태에서 실행될 때 이 캐시를 사용하여 파일을 검색합니다.

다음 다이어그램에서는 이러한 상호 작용을 보여 줍니다.

파일 이벤트가 있는 자동 로더

스트림이 처음으로 cloudFiles.useManagedFileEvents이/가 true로 설정되어 실행될 때, 자동 로더는 로드 경로의 모든 파일을 찾고 최신 상태로 만들기 위해 전체 디렉터리 목록을 수행하며, 파일 이벤트 캐시를 통해 유효한 읽기 위치를 확보하고 스트림의 검사점에 저장합니다. 자동 로더의 후속 실행은 저장된 읽기 위치를 사용하여 파일 이벤트 캐시에서 직접 읽어 새 파일을 검색하며 디렉터리 목록이 필요하지 않습니다.

캐시에서 증분 파일 검색을 활용하려면 7일마다 한 번 이상 자동 로더 스트림을 실행하는 것이 좋습니다. 자동 로더를 자주 실행하지 않으면 저장된 읽기 위치가 잘못되고 자동 로더가 전체 디렉터리 목록을 수행하여 파일 이벤트 캐시를 최신 상태로 만들어야 합니다.

파일 이벤트가 있는 자동 로더는 언제 디렉터리 목록을 사용하나요?

자동 로더는 다음과 같은 경우 전체 디렉터리 목록을 수행합니다.

  • 새 스트림 시작
  • 디렉터리 목록 또는 레거시 파일 알림에서 스트림 마이그레이션
  • 스트림의 로드 경로가 변경됨
  • 파일 이벤트가 있는 자동 로더는 7일 이상 실행되지 않습니다.
  • 자동 로더의 읽기 위치를 무효화하는 외부 위치에 대한 업데이트가 수행됩니다. 예를 들어 파일 이벤트가 꺼지고 다시 켜지는 경우, 외부 위치의 경로가 변경되거나 외부 위치에 대해 다른 큐가 제공될 때 등이 있습니다.

자동 로더는 includeExistingFilesfalse로 설정된 경우에도 첫 번째 실행 시 항상 전체 목록을 수행합니다. 이 플래그를 사용하면 스트림의 시작 시간 후에 만들어진 모든 파일을 수집할 수 있습니다. 자동 로더는 스트림의 시작 시간 이후에 생성된 모든 파일을 검색하고, 파일 이벤트 캐시에서 읽기 위치를 보호하고, 검사점에 저장하는 전체 디렉터리를 나열합니다. 후속 실행은 파일 이벤트 캐시에서 직접 읽고 디렉터리 목록이 필요하지 않습니다.

또한 Databricks 파일 이벤트 서비스는 외부 위치에서 정기적으로 전체 디렉터리 목록을 수행하여 파일을 놓치지 않았는지 확인합니다(예: 제공된 큐가 잘못 구성된 경우). 첫 번째 전체 디렉터리 목록은 외부 위치에서 파일 이벤트가 활성화되는 즉시 시작됩니다. 파일 이벤트를 사용하여 데이터를 수집하는 자동 로더 스트림이 하나 이상 있는 한 후속 목록은 주기적으로 발생합니다.

파일 이벤트가 있는 자동 로더에 대한 모범 사례

파일 이벤트와 함께 자동 로더를 사용할 때 성능 및 안정성을 최적화하려면 다음 모범 사례를 따릅니다.

최적의 파일 검색을 위해 볼륨 사용

성능 향상을 위해 Databricks는 자동 로더가 데이터를 로드하는 각 경로 또는 하위 디렉터리에 대한 외부 볼륨을 만들고 클라우드 경로(예: )가 아닌 자동 로더에 볼륨 경로(예/Volumes/someCatalog/someSchema/someVolumes3://bucket/path/to/volume: )를 제공하는 것이 좋습니다. 자동 로더는 최적화된 데이터 액세스 패턴을 사용하여 볼륨을 나열할 수 있으므로 파일 검색을 최적화합니다.

이벤트 기반 파이프라인에 대한 파일 도착 트리거 고려

이벤트 기반 데이터 처리의 경우 연속 파이프라인 대신 파일 도착 트리거 를 사용하는 것이 좋습니다. 새 파일이 도착하면 파일 도착 트리거가 자동으로 파이프라인을 시작하므로 처리할 새 파일이 있을 때만 클러스터가 실행되므로 리소스 사용률 및 비용 효율성이 향상됩니다.

연속 트리거를 사용하여 적절한 간격 구성

파일 도착 트리거를 사용하여 도착하는 즉시 파일을 처리하는 것이 좋습니다. 그러나 사용 사례에 다음과 같은 Trigger.ProcessingTime연속 트리거를 사용해야 하는 경우 트리거 간격 1 minute 을 그 이상으로 구성하는 것이 좋습니다(Lakeflow Spark 선언적 파이프라인을 사용하는 경우를 사용하여 pipelines.trigger.interval 설정). 이렇게 하면 폴링 빈도를 낮추어 새 파일이 도착했는지 확인하고 작업 영역에서 더 많은 수의 스트림을 동시에 실행할 수 있습니다.

파일 이벤트가 있는 자동 로더의 제한 사항

  • 경로 다시 쓰기는 지원되지 않습니다. 경로 다시 쓰기는 사용되지 않는 사용 패턴인 DBFS 아래에 여러 버킷 또는 컨테이너가 탑재될 때 사용됩니다.

파일 이벤트 제한의 일반적인 목록은 파일 이벤트 제한을 참조하세요.

FAQ

파일 이벤트가 있는 자동 로더에 대한 질문과 대답을 찾습니다.

파일 이벤트가 올바르게 설정되었는지 확인하려면 어떻게 해야 하나요?

외부 위치 페이지에서 연결 테스트 단추를 클릭합니다. 파일 이벤트가 올바르게 설정되면 파일 이벤트 읽기 항목에 대한 녹색 확인 표시가 표시됩니다. 방금 외부 위치를 만들고 Automatic 모드에서 파일 이벤트를 활성화한 경우, Databricks가 외부 위치에 대한 알림을 설정하는 동안 테스트가 Skipped로 표시됩니다. 몇 분 정도 기다린 다음 연결 테스트를 다시 클릭합니다. Databricks에 파일 이벤트를 설정하거나 읽는 데 필요한 권한이 없는 경우 파일 이벤트 읽기 항목에 대한 오류가 표시됩니다.

초기 실행 중에 전체 디렉터리 목록을 방지할 수 있나요?

아니요. includeExistingFilesfalse로 설정되어도, 자동 로더는 스트림 시작 이후 생성된 파일을 찾기 위해 디렉터리 목록을 작성하고, 파일 이벤트 캐시(캐시에서 유효한 읽기 위치를 확보하고 이를 스트림의 체크포인트에 저장)를 최신 상태로 유지합니다.

파일 누락을 방지하도록 설정 cloudFiles.backfillInterval 해야 하나요?

아니요. 클라우드 스토리지 알림 시스템에서 누락되거나 늦게 도착하는 파일이 발생할 수 있으므로 이 설정은 레거시 파일 알림 모드에 권장되었습니다. 이제 Databricks는 외부 위치에서 정기적으로 전체 디렉터리 목록을 수행합니다. 첫 번째 전체 디렉터리 목록은 외부 위치에서 파일 이벤트가 활성화되는 즉시 시작됩니다. 파일 이벤트를 사용하여 데이터를 수집하는 자동 로더 스트림이 하나 이상 있는 한 후속 목록은 주기적으로 나열됩니다.

제공된 스토리지 큐를 사용하여 파일 이벤트를 설정했지만 큐가 잘못 구성되고 파일이 누락되었습니다. 큐가 잘못 구성되었을 때 자동 로더가 누락된 파일을 수집하도록 하려면 어떻게 해야 하나요?

먼저 제공된 큐의 잘못된 구성이 수정되었는지 확인합니다. 확인하려면 외부 위치 페이지에서 연결 테스트 단추를 클릭합니다. 파일 이벤트가 올바르게 설정되면 파일 이벤트 읽기 항목에 대한 녹색 확인 표시가 표시됩니다.

Databricks는 파일 이벤트를 사용하도록 설정된 외부 위치에 대한 전체 디렉터리 목록을 수행합니다. 이 디렉터리 목록은 잘못된 구성 기간 동안 누락된 파일을 검색하여 파일 이벤트 캐시에 저장합니다.

잘못된 구성이 수정되고 Databricks가 디렉터리 목록을 완료하면 자동 로더는 파일 이벤트 캐시에서 계속 읽고 잘못된 구성 기간 동안 누락된 파일을 자동으로 수집합니다.

Databricks는 클라우드 리소스를 만들고 큐에서 메시지를 읽고 삭제할 수 있는 권한을 어떻게 얻나요?

Databricks는 파일 이벤트가 사용되는 외부 위치와 연결된 스토리지 자격 증명에 부여된 권한을 사용합니다.