Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

ETL이란 무엇인가? 데이터 추출·변환·적재 프로세스 완벽 이해

ETL의 정의

ETL은 Extract(추출), Transform(변환), Load(적재)의 약자로, 데이터 기반 조직이 여러 소스에서 데이터를 수집하고 이를 하나로 통합하여 탐색, 보고, 분석 및 의사결정을 지원하는 데 활용하는 핵심 프로세스입니다.

데이터 소스는 유형, 형식, 볼륨, 신뢰성 측면에서 매우 다양할 수 있습니다. 따라서 서로 다른 데이터를 함께 제공했을 때 실질적으로 유용하게 활용하려면 적절한 가공 과정이 반드시 필요합니다. 최종 데이터가 저장되는 대상 저장소는 목적과 기술적 실행 방식에 따라 데이터베이스, 데이터 웨어하우스 또는 데이터 레이크가 될 수 있습니다. ETL은 크게 다음 세 단계로 진행됩니다.

1단계: 추출(Extract)

추출 단계에서 ETL은 원본 소스에서 데이터를 식별하고 복제하여 대상 데이터 저장소로 전송할 수 있도록 준비합니다. 데이터는 파일, 이메일, 비즈니스 소프트웨어, 데이터베이스, 장비, 센서, 서드파티 등 구조화된 소스와 비구조화된 소스 모두에서 발생할 수 있습니다.

추출을 수행하는 방식은 크게 세 가지로 나눌 수 있습니다.

부분 추출(Partial Extraction)

정보에 접근하는 가장 간단한 방식입니다. 소스 시스템이 레코드가 수정되었을 때 이를 알려주는 경우, 해당 레코드만 선택적으로 추출할 수 있습니다.

업데이트 알림을 포함한 부분 추출(Partial Extraction with Update Notification)

모든 시스템이 업데이트 발생 시 실시간 알림을 제공할 수 있는 것은 아닙니다. 하지만 일부 시스템은 변경된 레코드에 표시를 남겨두고, 해당 레코드만 추출할 수 있도록 지원합니다.

전체 추출(Full Extract)

일부 시스템은 어떤 데이터가 변경되었는지 전혀 식별하지 못합니다. 이 경우 전체 추출이 시스템에서 레코드를 가져올 수 있는 유일한 방법입니다. 이 방식을 사용하려면 변경 사항을 비교·식별할 수 있도록 마지막 추출본을 동일한 형식으로 보관해 두어야 합니다.

2단계: 변환(Transform)

두 번째 단계는 소스에서 추출한 원시(raw) 데이터를 여러 애플리케이션에서 사용할 수 있는 형식으로 변환하는 작업입니다. 이 단계에서 데이터는 정제(cleansing)되고, 매핑되며, 특정 스키마에 맞게 변환되어 운영상의 요구사항을 충족하도록 만들어집니다.

이 과정에는 데이터의 품질과 무결성을 보장하기 위한 다양한 유형의 변환이 포함됩니다. 데이터는 일반적으로 대상 데이터 저장소에 바로 적재되지 않고, 스테이징(staging) 데이터베이스에 먼저 업로드되는 경우가 많습니다.

스테이징 단계를 거치면 프로세스가 계획대로 진행되지 않았을 때 빠르게 롤백(rollback)할 수 있습니다. 또한 이 단계에서는 규제 준수를 위한 감사 문서를 생성하거나, 데이터 문제를 진단하고 수정하는 작업도 수행할 수 있습니다.

3단계: 적재(Load)

마지막으로 ETL은 변환된 데이터를 대상 데이터 저장소로 이동시킵니다. 이 단계에서는 모든 소스 데이터를 처음부터 한 번에 적재할 수도 있고, 소스 데이터의 증분(incremental) 변경 사항만 적재할 수도 있습니다. 데이터는 실시간으로 적재하거나, 예약된 배치(batch) 단위로 주기적으로 적재할 수 있습니다.