데이터베이스 마이그레이션 도구

데이터를 한 데이터베이스에서 다른 데이터베이스로 변환합니다

  • 데이터베이스 간 데이터 이동
  • 주요 관계형 데이터베이스 시스템을 모두 지원합니다
  • SQL 데이터베이스를 NoSQL 데이터베이스로 변환합니다
  • 코딩 없이, 그래픽 인터페이스를 통해 데이터 매핑을 수행합니다
  • 데이터베이스 키 설정 지정
  • 다양한 이름, 유형, 구조를 가진 열을 매핑합니다
  • 데이터베이스 테이블 작업 정의
  • SQL 저장 프로시저 지원
  • 출력 로깅 및 오류 처리 기능 (롤백 지원)
  • 데이터베이스를 직접 쿼리합니다
  • 데이터베이스 입력 구성 요소를 분류하고 필터링합니다
  • 빠른 변환 속도와 합리적인 가격의 자동화 옵션을 제공합니다

데이터베이스 마이그레이션 도구들

데이터베이스에서 다른 데이터베이스로 데이터를 이동하는 작업은 데이터 관리 분야에서 가장 흔한 작업 중 하나입니다. 이는 기업 합병 후 시스템 통합, 기존 시스템의 폐기, 단일 데이터베이스 벤더로의 전환, 또는 데스크톱 데이터베이스를 서버 데이터베이스로 이전하는 경우 등 다양한 상황에서 발생합니다. Altova MapForce는 이러한 데이터베이스 이전 작업을 시각적인 인터페이스와 드래그 앤 드롭 기능을 통해 처리하는 도구이며, 별도의 스크립트 작성 없이 데이터 변환을 수행할 수 있습니다.

MapForce는 소스 및 대상 데이터베이스에 연결하고, 두 데이터베이스의 스키마를 자동으로 읽어들입니다. 또한, 각 데이터베이스의 테이블과 컬럼 간의 연결을 설정하여 데이터 마이그레이션 규칙을 정의할 수 있습니다. 소스 및 대상 데이터베이스 간의 매핑이 명시적으로 이루어지기 때문에, 스키마가 완전히 동일하지 않아도 됩니다. 컬럼의 이름을 변경하거나, 필드를 분할하거나 결합하고, 데이터 유형을 변환하고, 행을 필터링하며, 대상 구조를 재구성하는 등 다양한 작업을 하나의 마이그레이션 과정에서 수행할 수 있습니다.

지원됨 관계적인 데이터베이스:

  • Firebird
  • IBM DB2 for iSeries®
  • IBM DB2®
  • Informix®
  • MariaDB
  • Microsoft Access™
  • Microsoft® Azure SQL
  • Microsoft® SQL Server®
  • MySQL®
  • Oracle®
  • PostgreSQL
  • Progress OpenEdge
  • SQLite
  • Sybase® ASE
  • Teradata

지원됨 NoSQL 데이터베이스:

  • MongoDB는 NoSQL 데이터베이스입니다
  • CouchDB
  • Microsoft Azure Cosmos DB

지원되는 모든 데이터베이스는 소스, 대상, 또는 둘 다로 사용될 수 있습니다. 이는 특정 데이터베이스 간의 고정된 마이그레이션 경로를 제공하는 것이 아니라, 위에 나열된 모든 소스-대상 조합을 지원하는 도구라는 의미입니다.

데이터베이스 간 변환이 어떻게 작동하는가

MapForce에서는 시각적인 인터페이스와 드래그 앤 드롭 기능을 활용하여 데이터베이스 마이그레이션 프로젝트를 쉽게 정의할 수 있습니다. 또한, 원본 및 대상 구조를 불러온 후 Altova AI를 사용하여 제안된 연결 방안을 확인할 수도 있습니다.

1. 소스 데이터베이스에 연결합니다. 데이터베이스 연결 마법사가 연결 과정을 안내합니다. SQLite 연결은 별도의 드라이버 없이 데이터베이스 파일에 직접 연결되는 방식으로 지원됩니다. 다른 데이터베이스는 ODBC, JDBC, ADO, ADO.NET과 같은 표준 인터페이스를 통해 또는 직접 연결될 수 있습니다.

 

데이터베이스에 연결하여 변환을 수행합니다

 

2. 대상 데이터베이스에 연결합니다. MapForce는 대상 스키마를 동일한 방식으로 로드하고, 사용 가능한 테이블, 뷰 및 관계를 표시합니다.

3. 테이블과 열을 매핑합니다. 소스에서 타겟으로 연결선을 드래그하거나, Altova AI를 사용하여 매핑을 시작합니다. MapForce는 테이블 간의 관계를 자동으로 인식하므로, 관련된 테이블은 해당 구조를 매핑에 그대로 반영합니다.

4. 필요에 따라 데이터를 변환합니다. 원본 데이터와 대상 데이터 사이에 필터, 조건 및 데이터 처리 기능을 추가하여 데이터 유형을 변환하고, 값의 형식을 변경하고, 필드를 연결하거나 분리하며, 마이그레이션하지 않으려는 행을 제외할 수 있습니다.

 

MapForce에서 데이터베이스 마이그레이션하기

 

5. 미리 보기 및 실행. 내장된 MapForce 엔진을 사용하면 대상 데이터베이스에 SQL 스크립트(SELECT, INSERT, UPDATE, DELETE 문)를 실행하기 전에 "출력" 탭에서 해당 스크립트를 미리 확인할 수 있습니다.

MapForce에서 데이터베이스 마이그레이션을 위한 SQL 결과 미리보기

이주 경로

다음은 가장 흔하게 요청되는 데이터베이스 간 마이그레이션 작업 몇 가지를 설명합니다. 동일한 접근 방식은 지원되는 다른 데이터베이스 조합에도 적용됩니다.

오라클에서 PostgreSQL로의 데이터베이스 이전

오라클에서 PostgreSQL로 전환하는 경우, 테이블 데이터를 두 가지 다른 엔진 간에 이동해야 하는데, 이 두 엔진은 컬럼의 이름과 유형을 다르게 사용합니다. MapForce는 데이터베이스 연결 마법사를 사용하여 JDBC 또는 ODBC를 통해 오라클에 연결하고, 네이티브 연결 또는 드라이버 기반 연결을 통해 PostgreSQL에 연결합니다. 그런 다음, MapForce는 두 스키마를 매핑 창에 로드하고, 여기서 오라클 테이블을 해당 PostgreSQL 테이블에 연결하기 위해 드래그 앤 드롭을 사용하거나 Altova AI를 호출할 수 있습니다.

데이터 처리 기능을 드래그 앤 드롭하여 오라클과 PostgreSQL 데이터 유형 간의 값 변환, 날짜 및 타임스탬프 형식 변경, 그리고 관련된 데이터베이스의 규칙에 따라 NULL 값을 적절하게 처리할 수 있습니다. 데이터베이스 키 설정에서는 기본 키와 외래 키 값이 오라클 소스에서 가져올지, 아니면 PostgreSQL에서 삽입 시 생성될지를 결정할 수 있습니다.

MySQL에서 PostgreSQL로의 데이터베이스 이전

MapForce를 사용하여 MySQL 데이터베이스를 PostgreSQL로 전환하는 것은 가장 흔한 작업 중 하나입니다. 두 데이터베이스의 구조를 불러온 후, MapForce는 각 스키마를 분석하고, 사용 가능한 테이블과 뷰를 표시하며, 이들 간의 관계를 파악합니다. 마우스로 원본 구조와 대상 구조를 연결하는 선을 그리고, MySQL과 PostgreSQL의 데이터 유형이나 규칙이 다른 부분에서는 데이터 처리 기능을 추가하여 마이그레이션을 완료할 수 있습니다.

데이터 매핑은 재사용 가능한 디자인으로 저장되므로, 원본 데이터가 변경될 때마다 (예: 단계적 전환 과정 중 또는 주기적인 데이터 로드 시) 동일한 MySQL에서 PostgreSQL로의 데이터 이전 작업을 다시 실행할 수 있습니다.

SQLite에서 MySQL로의 데이터베이스 이전

SQLite 데이터베이스는 종종 로컬 또는 임베디드 환경에서 데이터를 저장하는 데 사용되며, 나중에 공유 MySQL 서버로 데이터를 이전해야 하는 경우가 많습니다.

SQLite의 유연한 데이터 타입은 이번 마이그레이션에서 가장 중요한 고려 사항입니다. SQLite가 저장하는 느슨한 형태의 데이터는 명시적으로 정의된 MySQL 컬럼에 매핑되어야 합니다. MapForce의 데이터 처리 기능은 매핑 과정 내에서 이러한 변환을 수행하므로, 정확하게 타입이 지정된 데이터가 MySQL 대상에 기록됩니다.

SQL Server에서 MySQL로의 데이터베이스 이전

MSSQL에서 MySQL로 데이터를 이전할 때, MapForce는 두 데이터베이스 엔진 간의 스키마 차이점을 매핑 과정에서 자동으로 처리합니다. 컬럼 이름 변경, 데이터 타입 변환, 값 형식 지정 등은 복잡한 스크립트 작성 대신 그래픽 인터페이스를 통해 간편하게 수행됩니다. 테이블 작업 기능을 통해 데이터 매핑 방식을 세밀하게 제어할 수 있습니다. 각 테이블별로 삽입(INSERT), 수정(UPDATE), 삭제(DELETE) 작업을 선택하고, MapForce가 대상 행이 이미 존재하는지 판단하는 데 사용할 컬럼을 지정할 수 있습니다.

Microsoft Access에서 SQL Server로의 데이터베이스 이전

데스크톱 환경을 초과하여 확장된 데이터베이스는 일반적으로 SQL Server로 이전됩니다. MapForce는 ADO를 통해 Microsoft Access와 SQL Server에 연결하고, 두 데이터베이스의 스키마를 모두 불러온 후, Access 테이블과 쿼리를 SQL Server 테이블에 매핑할 수 있도록 지원합니다.

Access와 SQL Server는 데이터 유형, 키 처리 방식, 그리고 명명 규칙에서 차이가 있습니다. 이러한 차이점을 시각적으로 매핑하면 명확하게 확인할 수 있으며, 데이터를 직접 수정하는 대신 매핑 과정에서 한 번에 수정할 수 있습니다. 데이터베이스 키 설정은 Access에서 생성된 자동 번호(AutoNumber) 값이 SQL Server의 식별자(identity) 값으로 그대로 유지되는지, 아니면 대체되는지를 결정합니다.

Access (ACCDB) 파일을 SQLite 데이터베이스로 변환하는 방법

ACCDB 파일을 SQLite 형식으로 변환하면 Access 데이터베이스를 가볍고 파일 기반의 형식으로 변경하여 어디서든 사용할 수 있게 됩니다. MapForce는 ADO를 통해 Access 데이터베이스를 읽고, 네이티브 연결을 통해 SQLite 파일에 데이터를 씁니다. 다른 MapForce 변환 작업과 마찬가지로, 원본과 대상 스키마가 일치할 필요는 없습니다. Access 데이터 구조를 SQLite로 변환할 때, 데이터를 단순화하거나, 이름을 변경하거나, 일부만 추출할 수 있습니다.

MariaDB에서 MySQL로의 마이그레이션

MariaDB와 MySQL은 밀접하게 관련되어 있지만, 이들 간의 데이터베이스 이전에는 데이터 유형, 키, 그리고 서로 다른 열 정의 등을 고려해야 합니다. 스키마가 동일한 경우, 데이터 매핑은 단순한 연결 관계를 갖습니다. 반면, 스키마가 다른 경우에는 다른 데이터베이스 이전 과정에서 사용되는 동일한 필터와 함수들이 적용됩니다.

SQL 데이터베이스에서 NoSQL 데이터베이스로의 전환

MapForce는 관계형 데이터베이스에 저장된 데이터를 MongoDB, CouchDB, Microsoft Azure Cosmos DB와 같은 NoSQL 데이터베이스로 이전하는 기능도 제공합니다. 관계형 데이터의 행과 관련된 테이블을 시각적으로 문서 구조로 매핑하여, 정규화된 SQL 스키마를 별도의 변환 과정 없이 데이터 이전 과정에서 문서 형태로 재구성할 수 있습니다.

데이터 필터링 및 처리

대부분의 실제 데이터 마이그레이션은 단순한 열 단위의 매핑이 아닙니다. MapForce는 다음과 같은 기능을 제공합니다 데이터 처리 기능 라이브러리 논리적인 비교, 수학적 계산, 문자열 처리, 날짜 및 시간 관리 기능을 제공하며, 또한 어떤 행이 최종 결과에 포함될지를 결정하는 필터와 조건을 사용할 수 있습니다.

이는 소스 데이터의 일부만 마이그레이션하거나, 두 개의 소스 열을 하나의 대상 열로 병합하거나, 하나의 소스 열을 여러 개의 대상 열로 분할하거나, 값을 검색하고 대체하거나, 마이그레이션 과정에서 비즈니스 규칙을 적용하는 등 다양한 작업을 동일한 시각적 매핑 환경 내에서 수행할 수 있다는 의미입니다.

데이터베이스 키 설정

MapForce의 데이터베이스 키 설정 기능을 사용하면 데이터 마이그레이션 과정에서 기본 키와 외래 키 값이 대상 데이터베이스에 어떻게 추가될지 사용자 정의할 수 있습니다. 사용자는 MapForce 내에서 키 값을 직접 제공하여 원본 시스템에서 사용된 식별자를 유지하거나, 대상 데이터베이스 시스템이 자동으로 값을 생성하도록 설정할 수 있습니다.

데이터베이스 테이블 작업 정의

데이터베이스 테이블 작업 대화 상자는 각 대상 테이블에 데이터가 어떻게 기록되는지를 제어합니다. 어떤 작업(삽입, 업데이트, 삭제)을 수행할지 선택하고, MapForce가 대상 레코드를 매칭하는 데 사용하는 열을 정의합니다. 이 대화 상자는 NULL 값 비교를 지원하므로, 데이터베이스의 규칙에 따라 NULL 값을 고려하여 데이터를 비교하도록 마이그레이션을 구성할 수 있습니다.

 

데이터베이스 매핑 과정에서 데이터가 어떻게 기록되는지 제어합니다

 

SQL 저장 프로시저 지원

MapForce는 다음 기능들을 포함합니다 저장 프로시저 지원 입력 또는 출력 구성 요소로 사용되거나, 함수 호출처럼 활용될 수 있습니다. 즉, 입력 데이터를 제공하고, 특정 절차를 실행하며, 출력 데이터를 다른 구성 요소에 연결하는 방식으로 작동합니다. 저장 프로시저는 또한 데이터 마이그레이션 과정에서 중요한 값을 생성하는 데에도 사용될 수 있습니다.

데이터베이스 출력 로깅/추적 기능

데이터베이스 출력 추적 기능은 마이그레이션 실행 과정에서 발생하는 모든 변경 사항을 기록합니다. 추적 기능을 활성화하면 데이터베이스에 삽입 또는 업데이트되는 작업, 그리고 오류 등이 XML 파일에 기록되며, 이후에 해당 파일을 분석하거나 추가적인 처리를 수행할 수 있습니다. 출력 로깅은 마이그레이션 과정에서 어떤 작업이 수행되었는지 기록하는 데 유용합니다.

데이터베이스 트랜잭션 오류 처리

MapForce는 데이터베이스 변환 과정에서 오류가 발생했을 때, 영향을 받은 부분만 되돌리고 나머지 매핑 작업은 계속 진행할 수 있는 데이터베이스 트랜잭션 처리 기능을 제공합니다. 이를 통해 부분적인 오류가 발생하더라도 대상 데이터베이스가 일관성 없는 상태로 남는 것을 방지할 수 있습니다.

데이터베이스를 직접 쿼리합니다

`데이터베이스 쿼리 탭을 사용하면 MapForce 내에서 SQL 편집기를 통해 소스 또는 대상 데이터베이스에 대해 SQL 쿼리를 실행할 수 있습니다. 이는 매핑 설계를 시작하기 전에 소스 데이터를 확인하거나, 데이터 마이그레이션이 완료된 후 대상 데이터를 검증하는 데 유용합니다.

 

데이터 변환 과정에서 데이터베이스에 질의를 수행하는 경우

 

데이터베이스 입력 구성 요소 정렬

특정 순서로 입력 데이터가 필요한 데이터베이스 마이그레이션의 경우, SQL-WHERE/ORDER 구성 요소는 데이터베이스 입력 구성 요소에 대한 추가적인 정렬 및 필터링 옵션을 제공합니다.

MapForce Server를 사용하여 데이터 마이그레이션 작업을 자동화하고 확장하세요

MapForce에서 마이그레이션 매핑을 설계하고 테스트한 후, Altova MapForce Server 명령줄에서 호출하거나, API를 통해 프로그래밍 방식으로 제어하거나, 또는 특정 작업 관리 시스템에 의해 관리되는 작업 단계로 활용될 수 있는 고성능 자동화 기능을 제공합니다 FlowForce Server 정해진 조건과 일정에 따라 작동합니다.

MapForce Server는 병렬 처리 및 멀티 스레딩, 대량 SQL 삽입, 그리고 다양한 운영체제를 지원하므로, 대규모 데이터 이전 작업과 반복적인 데이터 로딩 작업이 수동 작업보다 훨씬 빠르게 진행됩니다. 특히, 동일한 테이블을 여러 번 이동하는 단계적 데이터 이전의 경우, 이 기능을 통해 일회성 매핑 작업을 반복 가능하고 예약 가능한 작업으로 만들 수 있습니다.