데이터 마이그레이션(Data Migration)은 한 시스템, 저장소, 형식 또는 애플리케이션에서 다른 시스템으로 데이터를 이동하는 과정을 의미합니다. 주로 다음과 같은 경우에 이루어집니다:
- 시스템 업그레이드: 기존의 레거시 시스템에서 최신 시스템으로 전환할 때.
- 데이터베이스 변경: MySQL에서 PostgreSQL로 DBMS를 변경하거나, 온프레미스 DB에서 클라우드 기반 DB로 이전할 때.
- 애플리케이션 통합: 서로 다른 애플리케이션 간 데이터를 통합할 때.
- 스토리지 교체: 로컬 스토리지에서 클라우드 스토리지(AWS S3 등)로 이동할 때.
데이터 마이그레이션 단계
- 계획: 마이그레이션 범위, 영향도, 일정 등을 수립.
- 데이터 분석: 기존 데이터 구조, 품질, 양 등을 분석.
- 데이터 매핑: 이전 시스템과 새로운 시스템 간의 데이터 구조를 매핑.
- 데이터 변환: 필요 시 새로운 시스템에 맞게 데이터 변환.
- 이전(마이그레이션): 실제 데이터 이전 수행.
- 검증 및 테스트: 데이터 무결성 검증, 애플리케이션 정상 작동 확인.
- 운영 및 모니터링: 마이그레이션 후 시스템 안정화 모니터링.
데이터 마이그레이션 유형
- Storage Migration: 스토리지 장비나 위치 변경.
- Database Migration: 데이터베이스 관리 시스템(DBMS) 변경.
- Application Migration: 한 애플리케이션에서 다른 애플리케이션으로 데이터 이동.
- Cloud Migration: 온프레미스에서 클라우드(AWS, GCP, Azure 등)로 이전.
데이터 마이그레이션 도구 예시
- AWS DMS(AWS Database Migration Service)
- Flyway, Liquibase (데이터베이스 마이그레이션 도구)
- Apache NiFi, Talend (ETL 기반 데이터 이전 도구)
1. 계획(Planning)
- 목표 설정: 무엇을, 왜, 어떻게 마이그레이션할 것인지 정의합니다.
- 예: 온프레미스 MySQL 데이터를 AWS RDS로 이전한다.
- 범위 정의: 어떤 데이터, 시스템, 애플리케이션이 영향을 받는지 파악합니다.
- 리스크 분석: 데이터 손실, 시스템 중단 등 잠재적 문제를 식별하고 대비책 마련.
- 일정 수립: 각 단계별로 세부 일정을 계획합니다.
- 팀 구성: 마이그레이션을 수행할 팀과 역할을 지정합니다.
- 예: DBA, 개발자, 시스템 관리자, QA 담당자 등.
2. 데이터 분석(Assessment and Analysis)
- 기존 데이터 검토: 마이그레이션할 데이터의 양, 구조, 품질, 중복 여부 등을 분석.
- 데이터 관계 파악: 테이블 간 관계, 외래 키(Foreign Key), 제약 조건(Constraints) 등을 확인.
- 소스 시스템 이해: 현재 시스템이 어떻게 데이터를 저장하고 처리하는지 분석.
- 타겟 시스템 분석: 새로운 시스템에서 요구하는 데이터 구조와 형식을 파악.
3. 데이터 매핑(Data Mapping)
- 소스와 타겟 간 매핑: 기존 데이터 구조를 새로운 데이터 구조에 어떻게 매핑할지 결정.
- 예: 소스 DB의 user_info 테이블이 타겟 DB의 users 테이블로 매핑.
- 데이터 변환 규칙 설정: 데이터 타입 변환, 값 매핑, NULL 처리 방안 등을 정의.
- 예: VARCHAR(255)를 TEXT로 변환, status=1이면 active로 변환.
4. 데이터 변환(Transformation)
- 스키마 변환: 새로운 시스템에 맞게 데이터베이스 스키마를 변경.
- 데이터 클렌징: 중복 제거, NULL 값 처리, 형식 변환 등 데이터 품질 개선.
- 데이터 마스킹(옵션): 민감한 데이터를 마스킹하여 보안 유지.
- ETL 프로세스 수행: 추출(Extract) → 변환(Transform) → 적재(Load) 과정을 거침.
- 도구 예시: AWS DMS, Apache NiFi, Talend 등.
5. 데이터 이전(Migration Execution)
- 마이그레이션 실행: 실제 데이터를 소스에서 타겟으로 이동.
- 테스트 마이그레이션 수행: 본격적인 이전 전에 샘플 데이터를 사용해 테스트.
- 전체 마이그레이션 진행: 문제없이 테스트가 완료되면 전체 데이터 마이그레이션 진행.
- 모니터링: 마이그레이션 도중 오류 발생 여부, 데이터 유실 여부 등을 모니터링.
6. 검증 및 테스트(Validation and Testing)
- 데이터 무결성 검증: 데이터가 손실 없이, 변형 없이 이전되었는지 확인.
- 예: 이전 후 데이터 개수, 테이블 구조, 외래 키 관계 검증.
- 애플리케이션 테스트: 데이터베이스와 연동된 애플리케이션이 정상적으로 작동하는지 테스트.
- 성능 테스트: 마이그레이션 후 시스템의 성능을 확인하고 최적화 필요 여부 파악.
- 회귀 테스트: 마이그레이션으로 인해 기존 기능에 문제가 생기지 않았는지 테스트.
7. 운영 및 모니터링(Deployment and Monitoring)
- 운영 환경 적용: 최종 데이터 이전 완료 후, 시스템을 운영 환경에 적용.
- 모니터링: 마이그레이션 이후 시스템 안정성, 성능, 데이터 무결성 등을 지속적으로 모니터링.
- 백업 수행: 데이터 손실 방지를 위해 운영 환경 데이터를 정기적으로 백업.
- 문서화: 마이그레이션 과정, 문제 해결 방안, 향후 개선 사항 등을 문서로 정리.
추가 팁
- 점진적 마이그레이션: 한 번에 전체 데이터를 이전하는 것이 아니라, 단계별로 나눠서 이전하는 방법을 고려하세요.
- 롤백 계획: 마이그레이션 실패 시, 빠르게 원래 상태로 복구할 수 있는 롤백 방안을 반드시 마련하세요.
'개발공부 > Database' 카테고리의 다른 글
MSSQL -> MySQL 데이터 마이그레이션- 2.데이터 분석 (0) | 2025.02.17 |
---|---|
MSSQL -> MySQL 데이터 마이그레이션- 1.계획 (0) | 2025.02.14 |
데이터 웨어하우스(DW) vs 데이터 레이크(Data Lake) 의 장단점과 차이점 (1) | 2025.02.13 |
데이터 웨어하우스(DW) (0) | 2025.02.13 |
ORACLE (오라클) 테이블 생성 쿼리 (0) | 2023.06.18 |