자동 로더란?
자동 로더는 추가 설정 없이 클라우드 스토리지에 도착하는 새로운 데이터 파일을 점진적이고 효율적으로 처리합니다.
자동 로더는 어떻게 작동하나요?
자동 로더는 새로운 데이터 파일이 클라우드 스토리지에 도착하면 점진적이고 효율적으로 처리합니다. 구조적 스트리밍 원본인 cloudFiles
를 제공합니다. 클라우드 파일 스토리지의 입력 디렉터리 경로가 주어지면 cloudFiles
원본은 새 파일이 도착하면 자동으로 처리하며 해당 디렉터리의 기존 파일도 처리할 수 있습니다. 자동 로더는 Delta Live Tables에서 Python 및 SQL을 모두 지원합니다.
자동 로더를 사용하여 수십억 개의 파일을 처리하여 테이블을 마이그레이션하거나 백필할 수 있습니다. 자동 로더는 시간당 수백만 개의 파일을 거의 실시간으로 수집할 수 있도록 확장됩니다.
지원되는 자동 로더 원본
자동 로더는 다음 원본에서 데이터 파일을 로드할 수 있습니다.
Amazon S3(
s3://
)Azure Data Lake Storage Gen2(ADLS Gen2,
abfss://
)Google Cloud Storage(GCS,
gs://
)Azure Blob Storage(
wasbs://
)참고 항목
레거시 WASB(Windows Azure Storage Blob 드라이버)는 더 이상 사용되지 않습니다. ABFS는 WASB보다 많은 이점을 제공합니다. ABFS에 대한 Azure 설명서를 참조하세요. 레거시 WASB 드라이버 작업에 대한 설명서는 WASB를 사용하여 Azure Blob Storage에 연결(레거시)을 참조하세요.
ADLS Gen1(
adl://
)참고 항목
Azure는 Azure Data Lake Storage Gen1의 사용 중지를 발표했습니다. Databricks는 모든 데이터를 Azure Data Lake Storage Gen1에서 Azure Data Lake Storage Gen2로 마이그레이션하는 것이 좋습니다. 아직 마이그레이션하지 않은 경우 Azure Databricks에서 Azure Data Lake Storage Gen1에 액세스를 참조하세요.
Databricks 파일 시스템(DBFS,
dbfs:/
).
자동 로더는 ,, CSV
XML
, ORC
PARQUET
AVRO
TEXT
, 및 BINARYFILE
파일 형식을 수집JSON
할 수 있습니다.
자동 로더는 수집 진행률을 어떻게 추적하나요?
파일이 검색되면 해당 메타데이터는 자동 로더 파이프라인의 검사점 위치에 있는 확장 가능한 키-값 저장소(RocksDB)에 유지됩니다. 이 키-값 저장소는 데이터가 정확히 한 번 처리되도록 합니다.
장애가 발생한 경우 자동 로더는 검사점 위치에 저장된 정보로 중단된 위치에서 다시 시작할 수 있으며 Delta Lake에 데이터를 쓸 때 정확히 한 번 보장을 계속 제공할 수 있습니다. 내결함성 또는 정확히 한 번 의미 체계를 달성하기 위해 상태를 직접 유지하거나 관리할 필요가 없습니다.
델타 라이브 테이블과 함께 자동 로더를 사용하여 증분 수집
Databricks는 증분 데이터 수집을 위해 Delta Live Tables의 자동 로더를 권장합니다. Delta Live Tables는 Apache Spark Structured Streaming의 기능을 확장하며 다음과 같이 몇 줄의 선언적 Python 또는 SQL을 작성하여 프로덕션 품질 데이터 파이프라인을 배포할 수 있게 해줍니다.
Delta Live Tables에서 파이프라인에 대한 이러한 설정을 자동으로 관리하므로 사용자는 스키마 또는 검사점 위치를 제공할 필요가 없습니다. Delta Live Tables를 사용하여 데이터 로드를 참조 하세요.
또한 Databricks는 Apache Spark 구조적 스트리밍을 사용하여 클라우드 개체 스토리지에서 데이터를 수집할 때마다 자동 로더를 권장합니다. API는 Python 및 Scala에서 사용할 수 있습니다.
Databricks 자동 로더 시작
델타 라이브 테이블과 함께 자동 로더를 사용하여 증분 데이터 수집 구성을 시작하려면 다음 문서를 참조하세요.
자습서: 샘플 데이터(Python, SQL Notebook)를 사용하여 Databricks에서 첫 번째 ETL 워크로드 실행
자동 로더를 사용하여 클라우드 개체 스토리지에서 스트리밍 테이블로 데이터 로드(Notebook: Python, SQL)
자동 로더를 사용하여 클라우드 개체 스토리지에서 스트리밍 테이블로 데이터 로드(Databricks SQL 편집기)
예: 일반적인 자동 로더 패턴
일반적인 자동 로더 패턴의 예는 공통 데이터 로드 패턴을 참조 하세요.
자동 로더 옵션 구성
데이터 볼륨, 다양성 및 속도에 따라 자동 로더를 튜닝할 수 있습니다.
자동 로더 옵션의 전체 목록은 다음을 참조하세요.
예기치 않은 성능이 발생하면 FAQ를 참조하세요.
자동 로더 파일 탐지 모드 구성
자동 로더는 두 가지 파일 탐지 모드를 지원합니다. 참조
파일에서 직접 구조적 스트리밍을 사용하는 자동 로더의 이점
Apache Spark에서는 spark.readStream.format(fileFormat).load(directory)
를 사용하여 파일을 점진적으로 읽을 수 있습니다. 자동 로더는 파일 원본에 비해 다음과 같은 이점을 제공합니다.
- 확장성: 자동 로더는 수십억 개의 파일을 효율적으로 검색할 수 있습니다. 백필은 컴퓨팅 리소스 낭비를 방지하기 위해 비동기식으로 수행할 수 있습니다.
- 성능: 자동 로더를 사용하여 파일을 검색하는 비용은 파일이 들어갈 수 있는 디렉터리 수 대신 수집되는 파일 수에 따라 조정됩니다. 자동 로더 디렉터리 나열 모드란?을 참조하세요.
- 스키마 유추 및 진화 지원: 자동 로더는 스키마 드리프트를 검색하고, 스키마 변경이 발생하면 알려주고, 그렇지 않으면 무시되거나 손실되었을 데이터를 복구할 수 있습니다. 자동 로더 스키마 유추는 어떻게 작동하나요?를 참조하세요.
- 비용: 자동 로더는 네이티브 클라우드 API를 사용하여 스토리지에 있는 파일 목록을 가져옵니다. 또한 자동 로더의 파일 알림 모드는 디렉터리 목록을 완전히 피함으로써 클라우드 비용을 더욱 절감하는 데 도움이 될 수 있습니다. 자동 로더는 파일 검색을 훨씬 저렴하게 하기 위해 스토리지에 파일 Notification Services를 자동으로 설정할 수 있습니다.