검수요청.png검수요청.png

티비마이그레이터

위키원
이동: 둘러보기, 검색
티베로(Tibero)

티비마이그레이터(tbMigrator)는 오라클(Oracle) 등 다른 DBMS로 작성된 데이터베이스티베로(Tibero) DBMS로 마이그레이션하는 이다. tb마이그레이터라고도 쓴다.

개요

티비마이그레이터는 이름에서 유추할 수 있듯, 데이터베이스 테이블(tb prefix) 간의 마이그레이션(Migration)을 지원하는 자동화 도구 또는 스크립트이다. 보통 다음과 같은 시나리오에서 사용된다:

  • 데이터베이스 스키마 변경에 따른 기존 데이터 이전
  • 운영 환경 간 데이터 이전 (ex. dev → prod)
  • 이기종 데이터베이스 간 마이그레이션 (ex. MySQL → PostgreSQL)
  • 시계열 데이터, 로그 데이터 등의 정기적 백업 및 이동

주요 기능

다중 DBMS 지원
  • MySQL ↔ Oracle, PostgreSQL ↔ SQL Server 등 이기종 DB 호환
증분 마이그레이션
  • CDC(Change Data Capture) 기반 실시간 동기화
테이블 구조 추출 및 생성
  • 기존 테이블의 DDL(데이터 정의 언어) 을 추출하여 타깃 시스템에 적용
  • 인덱스, 제약 조건, 외래 키 등을 유지
데이터 추출 및 적재
  • SELECT * FROM source_table 형태의 데이터 덤프
  • 대량의 데이터를 효율적으로 전송 (배치 처리, 청크 기반 처리 등)
데이터 변환(Transform)
  • 컬럼 이름 변경, 타입 변환 (ex. INT → BIGINT)
  • 날짜 형식 표준화
  • enum 또는 코드 매핑
데이터 검증(Validation)
  • 레코드 수 비교
  • 샘플 해시 비교
  • 외래 키/제약 조건 일관성 체크
에러 로깅 및 롤백 처리
  • 실패 시 재시도 또는 롤백 로직 내장
  • 마이그레이션 로그 생성 및 저장
스키마 변환
  • 자동 데이터 타입 매핑 (예: VARCHAR → TEXT)
병렬 처리
  • 멀티스레드로 대용량 데이터 빠르게 처리

사용 방식 예시

bash

tbMigrator --source-db mysql://user:pass@localhost/db1 \
           --target-db postgres://user:pass@localhost/db2 \
           --tables users,orders,products \
           --mode transform-and-load \
           --log-level info

위와 같이 CLI 형태로 사용될 수 있으며, .yaml, .json, .toml 등 설정 파일 기반으로도 동작할 수 있다.

아키텍처 구성 예시

plaintext

[Source DB]
   ↓
[Extract Layer]
   ↓
[Transform Layer]
   ↓
[Validation Layer]
   ↓
[Target DB]
모듈 구성 예시
  • SourceConnector : MySQL, MSSQL, Oracle 등에서 데이터 추출
  • Transformer : 컬럼 매핑, 데이터 정제
  • TargetWriter : PostgreSQL, BigQuery 등 타깃에 쓰기 수행
  • Logger : 이력 저장, 에러 추적
  • CLI Runner : 파라미터 처리 및 전체 실행 흐름 제어

설치 및 사용법

환경 요구사항
  • Java 11+ 또는 Python 3.8+
  • 소스/타겟 DB 드라이버
기본 명령어
bash
# 설정 파일 기반 실행
python tbmigrator.py --config config.yaml

# 직접 파라미터 지정
tbmigrator \
  --source jdbc:mysql://localhost:3306/source_db \
  --target jdbc:postgresql://target_host:5432/target_db \
  --table employees

설정 파일 예시 (YAML)

yaml
source:
  type: mysql
  url: jdbc:mysql://src_host:3306/hr
  username: admin
  password: secure123

target:
  type: postgresql
  url: jdbc:postgresql://tgt_host:5432/hr_archive
  schema: public

tables:
  - name: employees
    chunk_size: 10000  # 배치 단위
    columns:
      emp_id: INT → BIGINT  # 타입 재정의
  - name: departments
    skip_errors: true  # 오류 무시 옵션

성능 최적화 전략

  1. 인덱스 일시 제거: 타겟 DB에서 로드 전 인덱스 비활성화
  2. 배치 크기 조정: 메모리 오버헤드 방지를 위해 chunk_size 조절
  3. 네트워크 압축: 대역폭 제약 시 SSL/TLS 압축 활성화

주요 사용 사례

Case 1
클라우드 DB 이전
온프레미스 Oracle → AWS RDS(PostgreSQL) 마이그레이션
  • 특징: 2TB 데이터, 99.9% 데이터 무결성 유지
Case 2
데이터 웨어하우스 구축
운영 DB(MySQL) → 분석용 Redshift 이관
  • 주기: 매일 새벽 2시 증분 동기화

한계 및 주의사항

  • LOB 데이터: BLOB/CLOB은 별도 처리 필요
  • 트리거/제약조건: 마이그레이션 중 일시 해제 권장
  • 버전 호환성: 일부 구형 DBMS 미지원

대안 도구 비교

도구 장점 단점
tbMigrator 경량화, 실시간 동기화 GUI 부재
AWS DMS 완전관리형 서비스 비용 발생
Talend 시각적 ETL 디자인 리소스 소모 큼


같이 보기


  질문.png 이 문서는 로고 수정이 필요합니다.  

  검수요청.png검수요청.png 이 티비마이그레이터 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.