ETL(추출, 변환, 적재)은 하나 이상의 소스에서 데이터 웨어하우스, 데이터 레이크 또는 운영 데이터 스토어와 같은 대상 데이터 컨테이너로 데이터를 통합하는 데 사용되는 3단계 컴퓨팅 프로세스입니다. 이 프로세스는 소스 시스템에서 원시 데이터를 추출하고, 정리 및 재구성을 통해 변환하며, 대상에 적재하는 것을 포함합니다. ETL은 일반적으로 소프트웨어 애플리케이션에 의해 자동화되지만, 시스템 운영자가 수동으로 수행할 수도 있습니다. 이는 데이터 웨어하우징의 기초 기술이며 클라우드 기반 및 실시간 스트리밍 시나리오를 지원하도록 진화했습니다.
ETL 시스템은 데이터 품질과 일관성을 강화하도록 설계되었습니다. 이들은 이기종 소스에서 데이터를 추출하고, 검증 및 변환 규칙을 적용하며, 출력이 대상 스키마를 준수하도록 보장합니다. 잘 설계된 ETL 파이프라인은 프레젠테이션 준비가 된 데이터를 제공하여 애플리케이션 개발자와 최종 사용자가 추가 처리 없이 결정을 내릴 수 있게 합니다. 이 프로세스는 종종 서로 다른 공급업체가 개발하거나 별도의 하드웨어에서 호스팅하고 서로 다른 이해관계자가 관리하는 여러 애플리케이션의 데이터를 결합하는 데 사용됩니다. 예를 들어, 원가 회계 시스템은 급여, 판매 및 구매 시스템의 데이터를 통합할 수 있습니다.
단계
ETL은 추출, 변환, 적재의 세 가지 별개의 단계로 구성됩니다. 각 단계는 특정 목표와 과제를 가지며, 함께 소스에서 대상으로 데이터를 이동하는 파이프라인을 형성합니다.
추출
추출 단계는 소스 시스템에서 데이터를 가져오는 것을 포함합니다. 이는 종종 가장 중요한 단계로, 데이터를 올바르게 추출하는 것이 다운스트림 프로세스의 토대를 마련합니다. 소스에는 관계형 데이터베이스, 플랫 파일, XML, JSON, IBM Information Management System과 같은 비관계형 구조, 또는 VSAM(가상 저장 접근 방식) 및 ISAM(색인 순차 접근 방식)과 같은 형식이 포함될 수 있습니다. 데이터는 웹 크롤러나 데이터 스크래핑을 통해 외부 소스에서 가져올 수도 있습니다. 경우에 따라 ETL은 중간 저장 없이 소스에서 대상으로 데이터를 직접 스트리밍할 수 있습니다.
추출의 본질적인 부분은 데이터 검증으로, 데이터가 패턴, 기본값 또는 목록과 같은 주어진 도메인에서 예상 값을 가지고 있는지 확인합니다. 데이터가 검증 규칙을 통과하지 못하면 전체 또는 부분적으로 거부될 수 있습니다. 거부된 데이터는 이상적으로 소스 시스템에 다시 보고되어 분석 및 수정되며, 이 프로세스를 데이터 랭글링이라고도 합니다.
변환
변환 단계에서는 추출된 데이터에 일련의 규칙이나 함수가 적용되어 적재를 준비합니다. 데이터 정제는 핵심 기능으로, 적절한 데이터만 대상으로 전달되도록 보장합니다. 서로 다른 시스템이 호환되지 않는 문자 집합이나 형식을 사용할 때 과제가 발생합니다. 일반적인 변환 유형은 다음과 같습니다:
- 적재할 특정 열만 선택하거나 누락된 값이 있는 레코드를 무시합니다.
- 성별 코드를 "1"/"2"에서 "M"/"F"로 변환하는 등 코드 값을 변환합니다.
- "Male"을 "M"으로 매핑하는 등 자유 형식 값을 인코딩합니다.
- sale_amount = qty * unit_price와 같은 새 계산 값을 도출합니다.
- 검색 성능을 개선하기 위해 데이터를 정렬합니다.
- 여러 소스의 데이터를 조인하고 레코드를 중복 제거합니다.
- 매장 또는 지역별 총 판매 요약과 같은 데이터를 집계합니다.
- 대리 키 값을 생성합니다.
- 데이터를 전치하거나 피벗하고, 열을 분할하거나 반복 열을 분해합니다.
- 참조 테이블에서 데이터를 조회하고 검증합니다.
실패한 검증은 규칙 설계 및 예외 처리에 따라 전체 거부, 부분 거부 또는 거부 없음이 발생할 수 있습니다. 코드 변환이 알 수 없는 코드를 만나는 경우와 같이 많은 변환이 예외를 생성할 수 있습니다.
적재
적재 단계는 변환된 데이터를 대상에 삽입하며, 이는 단순한 구분 플랫 파일 또는 복잡한 데이터 웨어하우스일 수 있습니다. 프로세스는 조직 요구 사항에 따라 다릅니다. 일부 웨어하우스는 누적 데이터로 기존 정보를 덮어쓰며, 종종 일별, 주별 또는 월별 일정으로 수행합니다. 다른 웨어하우스는 시간별과 같은 정기적인 간격으로 기록 형태로 새 데이터를 추가합니다. 예를 들어, 지난 1년간의 판매 기록을 유지하는 웨어하우스는 1년보다 오래된 데이터를 덮어쓰고, 현재 연도의 데이터는 기록 방식으로 유지할 수 있습니다. 교체 또는 추가의 시기와 범위는 시간과 비즈니스 요구에 따른 전략적 선택입니다. 더 복잡한 시스템은 모든 변경 사항의 기록과 감사 추적을 유지할 수 있습니다.
적재 중에는 스키마에 정의된 데이터베이스 제약 조건(예: 고유성, 참조 무결성, 필수 필드)이 적용됩니다. 데이터 적재 시 활성화되는 트리거도 이러한 규칙을 적용하며, 이로 인해 잘못된 레코드가 거부될 수 있습니다.
변형 및 현대적 사용
ETL에는 ELT(추출, 적재, 변환)라는 변형이 있으며, 여기서 데이터는 변환 전에 대상에 적재됩니다. 이 접근 방식은 대상 시스템이 강력한 처리 능력을 가진 클라우드 기반 데이터 웨어하우징에서 점점 더 사용됩니다. ETL과 ELT 모두 배치 처리뿐만 아니라 실시간 스트리밍 시나리오에도 적용되어 거의 즉각적인 데이터 통합을 가능하게 합니다.
현대 ETL 도구는 종종 Amazon Web Services, Microsoft Azure, Google Cloud와 같은 클라우드 플랫폼을 지원하며 다양한 소스의 대량 데이터를 처리할 수 있습니다. 인공지능과 머신러닝의 부상도 ETL에 영향을 미쳤으며, 데이터 파이프라인이 점점 더 분석 및 모델 훈련 시스템에 공급되고 있습니다.
과제 및 모범 사례
효과적인 ETL 시스템을 설계하려면 신중한 계획이 필요합니다. 주요 과제에는 데이터 품질 문제 처리, 스키마 변경 관리, 대규모 성능 보장이 포함됩니다. 모범 사례는 다음과 같습니다:
- 명확한 데이터 검증 규칙과 예외 처리를 정의합니다.
- 유지 관리를 위해 변환 로직을 문서화합니다.
- 증분 적재를 사용하여 처리 시간을 줄입니다.
- 실패 및 성능 병목 현상에 대해 ETL 작업을 모니터링합니다.
- 추출 및 적재 중 데이터 보안과 규정 준수를 보장합니다.
ETL은 운영 시스템과 분석 환경 사이의 격차를 해소하는 데이터 통합 전략의 핵심 구성 요소로 남아 있습니다. 데이터 볼륨이 증가하고 소스가 다양해짐에 따라 ETL 프로세스는 현대적 요구를 충족하기 위해 스트리밍 및 클라우드 네이티브 기술을 통합하며 계속 진화하고 있습니다.