이 문서는 데이터 엔지니어링 섹션의 일부입니다.
왜 옵션 설정이 중요한가?
Auto Loader는 기본 설정만으로도 동작하지만, 프로덕션 환경에서는 파일 발견 모드, 스키마 처리, 에러 핸들링, 성능 튜닝 등을 세밀하게 조정해야 합니다. 잘못된 옵션 설정은 데이터 유실, 성능 저하, 예상치 못한 비용 증가로 이어질 수 있습니다.💡 Auto Loader 옵션 체계: 모든 Auto Loader 옵션은cloudFiles.접두사로 시작합니다 (예:cloudFiles.format,cloudFiles.schemaLocation). 포맷별 옵션(예: CSV의header, JSON의multiLine)은 접두사 없이 사용합니다.
파일 발견 모드
Auto Loader가 새 파일을 감지하는 방식에는 Directory Listing 과 File Notification 두 가지가 있습니다.모드 비교
Directory Listing 모드 (기본값)
File Notification 모드
💡 자동 리소스 프로비저닝: File Notification 모드를 처음 사용하면 Auto Loader가 자동으로 클라우드 이벤트 알림 인프라(AWS: SQS+SNS, Azure: Event Grid+Queue)를 생성합니다. 적절한 IAM 권한이 필요합니다.
모드 선택 기준
⚠️ Incremental Listing: Directory Listing 모드에서cloudFiles.useIncrementalListing을true로 설정하면, 이전 스캔 이후 수정된 파일만 확인하여 성능을 크게 개선할 수 있습니다. 단, 파일이 시간순으로 정렬된 디렉토리 구조(예:/year=2025/month=03/)에서만 효과적입니다.
포맷별 옵션 상세
JSON
CSV
Parquet / Avro
XML
Binary (이미지, PDF 등)
스키마 추론 및 진화 옵션
Auto Loader의 가장 강력한 기능 중 하나는 자동 스키마 추론과 스키마 진화입니다.스키마 관련 핵심 옵션
스키마 진화 모드 (schemaEvolutionMode)
💡 schemaHints 활용: 자동 추론이 부정확한 컬럼(예: ID가 BIGINT인데 STRING으로 추론)에 대해 힌트를 제공하면, 추론 결과를 덮어쓸 수 있습니다.
체크포인트 관리
Auto Loader는 체크포인트(Checkpoint) 를 통해 어떤 파일을 이미 처리했는지 추적합니다.💡 체크포인트 란 Structured Streaming이 진행 상태를 기록하는 저장소입니다. 스트림이 재시작되면 체크포인트에서 마지막 처리 위치를 읽어 이어서 처리합니다.
⚠️ 체크포인트 삭제 주의: 체크포인트를 삭제하면 처리 상태가 초기화되어 모든 파일을 처음부터 다시 처리하게 됩니다. 데이터 중복이 발생할 수 있으므로, MERGE 또는 멱등 처리 로직을 사용해야 합니다.
파일 필터링
경로 기반 필터링
시간 기반 필터링
성능 튜닝 옵션
💡 Trigger 모드와 성능:trigger(availableNow=True)를 사용하면 현재 도착한 모든 파일을 배치 단위로 처리합니다.maxFilesPerTrigger와 함께 사용하면 각 마이크로배치의 크기를 제어할 수 있습니다.