본문 바로가기
TALEND

Data Migration 업무를 수행하고

by escaper101 2021. 4. 6.

 

배경

 

운이 좋게도 Data 관련 프로젝트 중 Data Migration 업무를 수행할 기회가 생겼다. Data Migration (데이터 이관)이란 크게 보자면 기존의 데이터 소스를 새로운 스토리지, 시스템 또는 파일 형식으로 변경하는 것을 뜻한다. 데이터는 기업에서 매우 중요하게 다루는 자산일 뿐 아니라 한번 시스템을 구축하고 나면 좀처럼 그 구조를 변경하지 않는다. 구조 변경에 시간과 비용이 많이 들고 전체적인 운영 시스템의 기반이 되는 데이터를 살짝 건들이는 작업이 기존 시스템에 큰 영향을 줄 수 있기 때문이다. 따라서 데이터 이관 작업은 꼼꼼한 사전 계획을 요구하고 데이터 퀄리티에 대한 철저한 검증, 결과에 대한 유효성 테스트 등 까다로운 업무가 뒤따르는 작업이다. 쉽게 경험할 수 없는 위와 같은 작업을 요하는 프로젝트를 수행하게 된 것은 큰 행운이었고 작업을 하면서 정말 많은 것을 배울 수 있었다. 

 

 

Data Migration 케이스 

 

Data Migration은 다음과 같은 상황에서 수행하게 된다. 

1. 레거시 소프트웨어 고도화 및 업그레이드가 필요한 경우

2. 운영 시스템 또는 데이터 저장 공간의 확장이 필요한 경우

3. 기존 시스템을 유지한 채 추가적인 시스템을 구축이 필요한 경우 

4. 여러 영역으로 구분된 시스템의 상호성을 높이고 영역 별 데이터를 한번에 관리하기 위한 DW를 구축하는 경우

5. 기존 IT 서버를 클라우드로 이관하는 경우

 

위의 다섯개 중 나의 경우는 마지막 케이스로 온 프레미스 서버를 클라우드로 이관하는 업무를 수행하였다. 

 

 

Data Migration 종류 

 

Database는 데이터를 저장하는 수단을 넘어 비즈니스 로직에 맞게 데이터를 구조화하는 시스템의 기초라고 볼 수 있다. 이는 DBMS의 종류와 비즈니스 영역, DB를 기반으로하여 구축할 소프트웨어의 성격에 맞게 선택되어야 한다. 대부분의 경우 Data migration 작업 전 DBMS를 파악하는 것이 중요하다. 

기존 DBMS를 유지하고 버전을 업그레이드하는 경우를 동종 데이터 이관 (homogeneous data migration)이라고 하고, 그 반대의 경우 즉, 다른 DBMS로 데이터를 이관하는 것을 이기종 데이터 이관(heterogeneous date migration)이라고 한다. 이기종 데이터 이관의 경우 서로 다른 DBMS의 성격, sql 문법 등을 잘 파악하고 있어야 한다는 점에서 전자에 비해 높은 난이도가 요구된다. 나는 운좋게도 두 경우를 모두 경험해 볼 수 있었다. 

 

Cloud Migration

 

AWS를 시작으로 big tech 기업들이 클라우드 사업에 뛰어들고 있다. 클라우드를 활용하여 손쉽게 서버리스 어플리케이션을 만드는 등 소규모 회사들이 비교적 저렴한 비용과 낮은 진입장벽으로 서버를 구축할 수 있게 되었다. 사내의 서버실을 두고있던 이전과 달리 보다 규모가 있는 회사들 역시 기존에 구축된 서버를 매몰비용으로 감안하고서라도 클라우드로 서버를 옮기고 있는 추세이다. 가트너 사의 한 조사에 따르면 기업들이 데이터 시스템에 소요되는 비용이 줄어들고 있는 2022년까지 반면 클라우드에 사용되는 비용이 크게 늘 전망이라고 한다. 또한 이는 코로나로 인해 가속화될 전망이다. 내가 프로젝트를 진행한 회사 역시 국내의 규모있는 회사였다. 이러한 현상은 점차 소규모 회사들에게 까지 영향을 줄 것이고 클라우드 마이그레이션은 세계적 흐름이라고 보여진다. 

 

 

Data Migration Process

 

Data Migration의 과정으로 다음의 네 단계를 들 수 있다. 

1. 계획

2. 설계

3. 실행

4. 검증 

 

데이터 이관 과정

1. 첫번째 단계인 계획 단계에서는 작업 범위를 파악하는 것이 중요하다. 데이터의 성격에 따라 모든 데이터를 이관할 필요가 없을 수 있고 기존과 다른 방식으로 데이터 재구조화가 필요한 경우 예상했던 것보다 작업 시간이 오래걸릴 수 있기 때문이다. 따라서 소스 시스템과 타겟 시스템에 대한 접근 권한을 부여받아 철저히 두 시스템을 분석하여 작업 범위를 파악해야 한다. 또한 데이터 퀄리티를 표준화 하기위한 기준을 설정하는 작업이 필요하다. 모든 데이터가 예상처럼 깔끔하게 DB에 저장되어 있지 않을 수 있다. 이런 경우 이관 작업을 수행하면서 데이터 무결성을 재검증할 필요가 있다. 중복 데이터의 제거, 데이터 형식 통일, 비즈니스 로직에 맞도록 데이터 보정 등의 작업의 경우 그 작업 표준을 꼼꼼히 파악해야 추후 이관이 완료된 후에도 이슈 없이 동일 시스템을 유지할 수 있다. 

 

2. 설계 단계에서는 소스에서 데이터를 가져온 후 해당 데이터에 대한 cleansing 작업에 대한 규칙을 정의하는 단계이다. 이는 단순 1:1 테이블 이관을 제외한 모든 경우에 이루어지는 작업으로 기존 DB에 저장되어 있던 데이터를 타겟 시스템에 맞게 수정 및 보정하는 작업을 말한다. 이 외에도 소스와 타겟 시스템을 테이블 별로 매핑하고 더 세분화하여 칼럼 별로 매핑하며 작업 이행 전 설계를 수행한다. 

 

3. 실행 단계에서 가장 중요한 것은 소스 데이터를 백업하는 작업이다. 소스 데이터는 작업의 기준이 되고 작업 후 검증의 기준이 될 것이기 때문이다. 백업을 완료했다면 계획과 설계를 마친 내용을 바탕으로 이관 작업을 수행한다. 이때 오류가 발생한 경우 이를 파악하고 데이터를 재보정하는 작업이 요구된다. 

 

4. 마지막 검증까지 마쳐야 데이터 이관이 마무리된다. 검증의 기준은 계획과 설계 단계에서 파악한 cleansing rule, 이미 백업해 둔 소스 데이터 및 데이터 퀄리티 정의서를 바탕으로 진행된다. 

 

위와 같이 데이터 이관의 큰 흐름을 네 단계로 구분하여 살펴보았다. 하지만 실제 작업은 말처럼 간단하지 않다. 앞으로 블로그 포스팅을 통해 내가 작업하면서 활용한 툴(Talend)과 여러 시나리오에서 적용한 팁들을 공유할 예정이다.