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

데이터 웨어하우스의 다양한 데이터 추출 방법 총정리

데이터 추출 방식은 원본 시스템의 규칙과 대상 데이터 웨어하우스 환경의 비즈니스 요구 사항에 따라 크게 달라집니다. 또한 추출해야 할 데이터의 예상 규모와 ETL 프로세스의 단계(초기 적재인지, 지속적인 유지 관리인지) 역시 논리적·물리적 관점에서 어떤 방식으로 추출할지 결정하는 데 중요한 영향을 미칩니다.

데이터 추출 방법은 크게 논리적 추출 방법(Logical Extraction)물리적 추출 방법(Physical Extraction) 두 가지로 나눌 수 있습니다.

논리적 추출 방법

논리적 추출은 다시 두 가지 방식으로 구분됩니다.

1. 전체 추출(Full Extraction)

전체 추출은 원본 시스템에 있는 모든 데이터를 통째로 가져오는 방식입니다. 원본 시스템에서 접근 가능한 모든 데이터를 그대로 추출하기 때문에, 마지막 성공적인 추출 이후 데이터 변경 여부를 별도로 추적할 필요가 없습니다.

원본 데이터는 있는 그대로 제공되며, 타임스탬프 같은 추가적인 논리 정보를 원본 측에 마련해 둘 필요도 없습니다. 전체 추출의 대표적인 예로는 특정 테이블의 내보내기(export) 파일 생성이나, 원본 테이블 전체를 조회하는 원격 SQL 문 실행을 들 수 있습니다.

2. 증분 추출(Incremental Extraction)

증분 추출은 과거의 특정 시점(이벤트) 이후 변경된 데이터만 추출하는 방식입니다. 이 기준 시점은 마지막 추출 시각일 수도 있고, 회계 기간의 마지막 예약일처럼 더 복잡한 비즈니스 이벤트일 수도 있습니다.

변경분(delta)을 정확히 식별하려면 해당 시점 이후에 변경된 모든 데이터를 판별할 수 있는 체계가 필요합니다. 이러한 정보는 원본 데이터 자체에 최종 변경 시각을 기록하는 컬럼(타임스탬프)을 두거나, 일반 트랜잭션과 함께 변경 이력을 별도 구조로 관리하는 변경 테이블(change table)을 통해 확보할 수 있습니다. 후자의 방식을 사용할 경우에는 일반적으로 원본 시스템에 추출 로직을 추가해야 합니다.

물리적 추출 방법

선택한 논리적 추출 방식과 원본 시스템의 용량 및 환경 조건에 따라, 실제 데이터는 온라인 또는 오프라인이라는 두 가지 물리적 구조로 추출될 수 있습니다. 오프라인 메커니즘은 이미 존재하는 것을 활용할 수도 있고, 추출 루틴을 통해 새로 만들 수도 있습니다.

1. 온라인 추출(Online Extraction)

온라인 추출은 데이터를 원본 시스템에서 직접 가져오는 방식입니다. 추출 프로세스가 원본 시스템에 직접 연결되어 원본 테이블에 접근하거나, 스냅샷 로그(snapshot log)나 변경 테이블처럼 미리 정의된 형태로 데이터를 저장해 두는 중간 시스템을 통해 데이터를 읽어옵니다.

2. 오프라인 추출(Offline Extraction)

오프라인 추출은 데이터를 원본 시스템에서 직접 가져오지 않고, 원본 시스템 외부에서 별도로 수행하는 방식입니다. 이때 사용되는 데이터는 리두 로그(redo log), 아카이브 로그(archive log), 전송 가능 테이블스페이스(transportable tablespace)처럼 이미 존재하는 구조이거나, 추출 루틴에 의해 생성된 결과물입니다.

마무리

정리하면, 논리적 추출에서 '전체'와 '증분' 중 무엇을 선택할지는 데이터 변경 빈도와 변경 이력 추적 가능 여부에 달려 있습니다. 물리적으로는 원본 시스템에 가해지는 부하를 고려하여 온라인 방식과 오프라인 방식을 결정하게 됩니다. 일반적으로 초기 적재에는 전체 추출이, 이후의 지속적인 갱신에는 증분 추출이 활용됩니다.