데이터베이스 매핑 및 ETL (추출, 변환, 적재) 프로세스

데이터베이스 또는 다른 데이터 형식 간의 데이터 매핑 및 변환

  • 모든 데이터베이스에 대한 ETL (추출, 변환, 적재) 솔루션
  • 모든 주요 데이터베이스에서 데이터베이스 쿼리를 실행할 수 있습니다
  • SQL 및 NoSQL 데이터베이스 지원
  • 하나의 데이터베이스 유형에서 다른 데이터베이스 유형으로의 변환
  • 지도 데이터베이스의 데이터를 다른 데이터 형식으로 변환하거나, 그 반대로 변환합니다
  • 데이터베이스 키 설정 지정
  • 출력 로깅 및 오류 처리
  • 데이터베이스 테이블 작업 정의
  • 데이터베이스를 직접 쿼리합니다
  • 데이터베이스 XML 파일을 테이블과 연결하고 매핑합니다
  • 데이터베이스 입력 구성 요소들을 정렬합니다

데이터베이스 매핑 도구들

MapForce는 데이터 통합 및 ETL(추출, 변환, 로드) 도구로서, 강력한 데이터베이스 변환 기능을 제공합니다. 이 도구를 사용하면 데이터베이스 데이터와 XML, JSON, PDF, CSV 등 다양한 형식의 파일, EDI, 엑셀, protobuf, XBRL, 웹 서비스, Shopify/GraphQL, 그리고 심지어 다른 데이터베이스 형식 간의 변환이 가능합니다.

디자인 창에 데이터베이스 구조를 불러오면, 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는 주요 관계형 데이터베이스는 물론, 널리 사용되는 NoSQL 데이터베이스도 지원하며, 이를 통해 데이터베이스의 원본 데이터, 데이터 처리 기능 및 필터, 그리고 다양한 유형의 다른 데이터 구조 간의 시각적인 데이터 매핑 설계를 만들 수 있습니다. 이를 통해 일반적인 데이터베이스 마이그레이션 시나리오를 지원할 수 있습니다. 예를 들어, 다음과 같은 경우에 유용합니다 MySQL에서 PostgreSQL로의 전환뿐만 아니라, 1대 다수의 데이터 처리 및 연쇄적인 데이터 변환 등 수많은 다른 가능성도 존재합니다.

데이터베이스 ETL 도구들

MapForce는 SQL 및 NoSQL 데이터베이스에 데이터를 저장하기 위한 강력한 ETL(추출, 변환, 로드) 도구를 제공합니다. 이 기능은 XML, JSON, Shopify/GraphQL 및 기타 데이터 형식을 데이터베이스로 변환하는 것뿐만 아니라, 합병 및 인수 또는 시스템 이전과 같이 한 종류의 데이터베이스에서 다른 종류의 데이터베이스로 데이터를 변환하는 기능도 포함합니다.

  • 추출: MapForce는 연결이 완료되면, 추출을 위해 지원되는 모든 데이터 소스 형식에서 데이터를 읽어들입니다.
  • 변환: MapForce는 문자열 조작, 수학 연산, 날짜 변환 등 다양한 변환 기능을 지원하며, 복잡한 변환을 처리하기 위한 사용자 정의 함수와 조건부 로직도 제공합니다.
  • 데이터 로드: MapForce는 대상 데이터베이스와의 연결을 쉽게 설정하고, 변환된 데이터를 삽입하기 위한 SQL 스크립트를 생성하며, 데이터 삽입, 수정 또는 삭제와 같은 작업을 설정하여 데이터가 어떻게 기록될지를 제어할 수 있습니다. 또한, 오류 처리 및 로깅을 위한 다양한 옵션을 제공합니다.

데이터베이스 데이터 필터링 및 처리

많은 데이터베이스 변환 작업은 소스 데이터와 대상 데이터 간의 데이터를 부울 조건 또는 SQL 및 SQL/XML 문을 기반으로 조작하는 것을 필요로 합니다. 논리 비교, 수학 연산, 문자열 처리 등을 수행하거나, 특정 값의 데이터베이스 데이터를 확인하고, 데이터에 대한 다른 수정 작업을 수행해야 할 수도 있습니다. 위 스크린샷에서 데이터 처리 기능은 소스 데이터 모델과 대상 데이터 모델을 연결하는 선들 사이에 나타나는 박스 형태로 표시됩니다.

데이터 처리 기능은 다양한 실제 데이터 변환 요구 사항에 맞춰 실시간으로 고급 데이터베이스 매핑을 수행할 수 있도록 지원합니다. 예를 들어, XML 또는 EDI 메시지를 사용하여 특정 필터 기준에 따라 XML 또는 EDI 요소에서 데이터베이스 레코드를 추출하는 데이터베이스 매핑을 구성할 수 있습니다.

실시간 데이터베이스 변환

매핑 작업이 완료되면, 내장된 MapForce 엔진을 통해 단 한 번의 클릭으로 결과를 확인하고 저장할 수 있습니다.

데이터베이스와 XML 간의 매핑은 XML 형식의 출력 문서를 생성하고, 데이터베이스와 일반 파일 간의 매핑은 CSV 형식 또는 고정 길이 텍스트 파일 형식으로 출력을 생성합니다. 또한, 데이터베이스와 EDI 간의 매핑은 EDIFACT, X12 또는 HL7 형식의 메시지를 생성할 수 있습니다. 데이터베이스 매핑은.. Excel Office Open XML (OOXML) 마크업을 생성하고, XBRL 매핑을 통해 XBRL 형식의 재무 보고서를 생성합니다.

데이터베이스 매핑 작업은 SQL 스크립트(예: SELECT, INSERT, UPDATE, DELETE 문) 또는 NoSQL 스크립트 형태로 결과를 생성하며, 이러한 스크립트는 MapForce 내에서 직접 대상 데이터베이스에 실행됩니다.

순간적인 변화 외에도, 고성능 ETL (추출, 변환, 적재) 솔루션 이는 MapForce Server를 통해 이용 가능합니다.

데이터베이스 출력 로깅 (추적)

데이터베이스 출력 추적 기능을 사용하면 매핑 또는 ETL 프로젝트가 데이터베이스에 적용되는 모든 변경 사항을 매핑 실행 중에 쉽게 기록할 수 있습니다.

추적 기능이 활성화되면, 데이터베이스에 데이터를 삽입하거나 수정하는 작업, 또는 오류와 같은 이벤트들이 XML 파일에 기록됩니다. 이 파일을 나중에 분석하거나, 자동화된 방식으로 추가적인 처리를 수행할 수 있습니다.

데이터베이스 추적 기능은 데이터베이스 구성 요소, 테이블, 저장 프로시저 또는 데이터베이스 필드 수준에서 활성화할 수 있습니다. 모든 메시지를 추적하거나 오류만 추적하도록 설정할 수도 있으며, 필요에 따라 추적 기능을 완전히 비활성화할 수도 있습니다.

원하는 추적 수준을 선택하면, 매핑 프로젝트에서 해당 데이터베이스 구성 요소에 로그 구조를 보여주는 XML 트리 형태로 정보가 추가됩니다. 만약 로그 파일을 XML 형식이 아닌 다른 형식으로 저장하고 싶다면, MapForce에서 지원하는 다른 데이터 형식(예: 텍스트 파일 또는 다른 데이터베이스)으로 데이터를 매핑할 수 있습니다.

매핑 결과를 미리보기 위해 "출력" 버튼을 클릭하면, 개발자는 매핑이 실행될 때 트레이스 로그가 어떻게 표시될지 미리 확인할 수 있습니다.

데이터베이스 ETL 과정에서 발생하는 이벤트를 기록하기 위한 데이터베이스 추적 기능

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

MapForce는 데이터베이스 변환 과정에서 오류가 발생했을 때, 영향을 받은 데이터베이스 부분만 되돌리고, 필요에 따라 나머지 매핑 작업은 계속 진행할 수 있는 데이터베이스 트랜잭션 처리 기능을 제공합니다.

때로는 데이터베이스 매핑 과정에서 오류가 발생하지만, 이로 인해 전체 매핑 작업이 중단되지는 않습니다. 예를 들어, 특정 데이터베이스 제약 조건 때문에 ETL(추출, 변환, 적재) 프로세스가 유효하지 않은 데이터를 삽입하거나 업데이트하는 것을 방지하는 경우에도 전체 작업은 계속될 수 있습니다.

데이터베이스 트랜잭션 처리를 활성화하면 데이터베이스 컴포넌트에서 수행되는 모든 변경 사항이 트랜잭션 내에 포함됩니다. 오류가 발생하면 이 트랜잭션이 롤백됩니다. 사용자는 오류 발생 시 매핑의 나머지 부분을 계속 진행하거나, 매핑 실행을 중단하도록 선택할 수 있습니다. 트랜잭션은 데이터베이스 컴포넌트 수준과 테이블 작업 수준에서 모두 활성화할 수 있습니다.

오류 처리를 위한 데이터베이스 트랜잭션 활성화

이 기능은 매핑 설계자가 유효한 입력 데이터를 정확하게 처리하고, 유효하지 않은 데이터는 무시하고자 할 때 매우 유용합니다.

고급 데이터베이스 매핑 및 ETL (추출, 변환, 적재) 솔루션

SQL을 사용하는 사용자를 위해 MapForce는 데이터베이스에 직접 쿼리를 수행할 수 있는 "데이터베이스 쿼리" 탭을 제공합니다. "데이터베이스 쿼리" 탭을 사용하여 데이터베이스에 연결하면, MapForce는 해당 데이터베이스의 테이블들을 계층 구조 트리 형태로 브라우저 창에 표시합니다.

데이터베이스 변환 매핑을 정의하는 동시에 데이터베이스를 쿼리합니다

SQL 편집기 탭을 사용하여 기존 SQL 파일을 열거나, 드래그 앤 드롭 기능과 자동 완성 기능을 활용하여 SQL 또는 SQL/XML 문장을 직접 작성하고, 이를 표시, 편집 및 실행할 수 있습니다.

SQL 스크립트를 실행하고 결과를 표 형식으로 확인할 수 있으며, 검색된 데이터와 SQL 스크립트를 각각 별도의 파일로 저장할 수 있습니다.

데이터베이스 키 설정

MapForce의 데이터베이스 키 설정은 데이터 매핑 대상이 되는 데이터베이스에 기본 키와 외래 키 값을 어떻게 추가할지 사용자 정의할 수 있도록 해줍니다. 사용자는 MapForce 내에서 직접 키 값을 제공하거나, 데이터베이스 시스템이 자동으로 값을 생성하도록 설정할 수 있습니다.

데이터베이스 테이블에서 기본 키 또는 외래 키 관계가 명시적으로 정의되어 있지 않은 경우, MapForce를 사용하면 원본 데이터에 영향을 주지 않고 해당 관계를 직접 정의할 수 있습니다.

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

데이터베이스에 데이터를 매핑할 때, MapForce를 사용하면 데이터베이스 테이블 작업(database table actions)을 선택하여 데이터가 데이터베이스에 어떻게 저장될지 제어할 수 있습니다. 이를 통해 가장 복잡한 데이터 관리 작업을 자동화할 수 있는 완벽한 유연성을 제공합니다.

사용하기 쉬운 "데이터베이스 테이블 작업" 대화 상자를 통해, 선택한 테이블 내의 특정 열을 지정하여 데이터베이스에서 어떤 작업(삽입, 수정, 삭제)을 수행할지 설정할 수 있습니다.

MapForce를 통해 XML, 데이터베이스, EDI, XBRL, 일반 파일, 엑셀, JSON, JSON5, 웹 서비스 또는 기타 데이터베이스 데이터를 활용하여 데이터베이스의 행을 이전에는 불가능했던 수준으로 자유롭게 조작할 수 있습니다.

SQL 저장 프로시저 지원

MapForce는 저장 프로시저를 입력 구성 요소(결과를 제공하는 프로시저) 또는 출력 구성 요소(데이터를 삽입하거나 업데이트하는 프로시저)로 강력하게 지원합니다. 또한, 저장 프로시저를 함수처럼 호출하여 사용할 수도 있습니다. 이 경우 사용자는 입력 데이터를 제공하고, 저장 프로시저를 실행한 후, 출력 데이터를 다른 구성 요소에 연결하거나 활용할 수 있습니다.

이 스크린샷은 SQL Server에서 저장 프로시저를 사용하여 XML 파일을 생성하는 과정을 보여줍니다. 이 프로시저에서는 입력 매개변수로 제공된 특정 직원 ID(이 예에서는 상수 67)보다 상위 계층에 있는 모든 관리자들의 정보를 담은 테이블을 반환합니다.

이 파라미터는 계산된 값으로 제공될 수도 있고, 데이터베이스의 다른 부분에서 가져온 데이터 요소로 제공될 수도 있습니다.

MapForce는 컨텍스트 메뉴를 제공하여 사용자가 저장된 프로시저를 실행하고, 매핑에 필요한 데이터 구조를 확인할 수 있도록 합니다. 제시된 매핑을 실행하면 XML 형식의 결과물이 생성됩니다.

고급 데이터 매핑 도구에는 저장 프로시저 지원 기능이 포함되어 있습니다

지도 XML 데이터가 데이터베이스 필드에 저장됨

MapForce는 관계형 데이터베이스 필드에 저장된 XML 데이터를 연결하고 매핑할 수 있습니다 (현재 SQL Server 및 IBM DB2를 지원). 사용자는 데이터베이스에 등록된 XML 스키마 또는 로컬 파일 시스템의 스키마를 해당 필드에 할당하면, MapForce는 해당 스키마를 데이터베이스 필드의 하위 트리로 렌더링하여 매핑 작업을 수행할 수 있도록 합니다.

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

데이터베이스 내에서 실행되는 SQL 쿼리는 복잡한 데이터 매핑 작업에 항상 충분하지 않을 수 있습니다. MapForce는 SQL-WHERE/ORDER 컴포넌트를 통해 데이터베이스 입력에 대한 추가적인 정렬 기능을 제공합니다. 이는 추가적인 처리가 필요한 경우, 또는 매핑 과정에서 다른 데이터나 조건이 데이터 행의 정렬 순서에 영향을 미치는 경우에 유용합니다.

데이터베이스 테이블 작업에서 NULL 값 지원

데이터베이스 테이블 작업 대화 상자는 NULL 값 비교를 지원합니다. NULL 값을 고려한 비교 기능은 NULL 값이 포함된 데이터베이스를 처리하는 데 더 효과적인 방법을 제공합니다. MapForce 사용자는 데이터 비교를 NULL 값을 고려하여 수행하도록 데이터베이스 매핑을 설정할 수 있으며, 이는 매핑에 관련된 데이터베이스 유형에 적용되는 규칙에 따라 이루어집니다.

오른쪽에 표시된 데이터 매핑은 중복 항목을 삽입하지 않고 대상 테이블을 업데이트하는 데 사용됩니다. 두 테이블 모두 "이메일" 필드가 NULL 값을 가질 수 있도록 정의되어 있으므로, 각 테이블에서 이름은 동일하지만 이메일 필드가 NULL인 항목이 존재할 수 있습니다.

"작업" 아이콘을 클릭하면 대상 데이터베이스 테이블 옆에 "데이터베이스 작업" 대화 상자가 열립니다. 이메일 필드 옆에 있는 "NULL 값 동일" 확인란을 선택하면, 매핑 과정에서 소스 및 대상 데이터베이스의 NULL 값을 동일한 것으로 간주할 수 있습니다. 이는 데이터베이스 규칙상 NULL 값은 동일하지 않더라도, 데이터 매핑의 편의를 위해 설정하는 기능입니다.

MapForce에서 NULL 값을 고려한 데이터베이스 매핑 기능

데이터베이스를 XML 형식으로 변환

MapForce는 XML 스키마 또는 DTD 콘텐츠 모델을 기반으로 XML과 데이터베이스 간의 매핑을 지원합니다. XML과 데이터베이스 간의 매핑을 개발하려면, XML 스키마와 데이터베이스를 MapForce에 불러온 후, XML 노드와 데이터베이스 객체 간에 연결선을 드래그하여 연결하면 됩니다.

XML 인스턴스 문서에 연결된 스키마가 없는 경우, MapForce는 해당 XML 인스턴스 문서로부터 XML 스키마를 생성합니다.

MapForce XML 데이터베이스 매핑 기능

XML 와일드카드 지원

XML 스키마 설계에서 `<xs:any>` 요소와 `<xs:anyAttribute>`는 XML 스키마에 정의되지 않은 새로운 요소나 속성을 해당 위치에 XML 인스턴스 문서에 추가할 수 있도록 합니다. 이를 "XML 와일드카드"라고 부르며, 다양한 산업 분야의 표준을 지원하는 많은 XML 스키마에서 어느 정도의 사용자 정의를 가능하게 하는 널리 사용되는 방법입니다.

MapForce는 XML 또는 다른 출력 형식으로 데이터를 변환할 때 `<xs:any>` 및 `<xs:anyAttribute>`를 지원합니다. XML 매핑 입력 구성 요소에서 `<xs:any>` 또는 `<xs:anyAttribute>` 옆에 있는 새 선택 버튼을 클릭하면 와일드카드 선택 대화 상자가 열립니다.

`<xs:any>` 요소와 `<xs:anyAttribute>` 요소는 XML 스키마 설계에서 흔히 사용되며, MapForce에서 이러한 기능에 대한 사용자들의 요청이 꾸준히 있었습니다.

MapForce를 사용하여 데이터베이스 데이터를 XML 및 기타 형식으로 변환하는 방법을 알아보세요

JSON 데이터베이스 매핑

MapForce는 JSON(JavaScript Object Notation) 모델을 기반으로 데이터베이스 매핑을 정의하고 실행하는 기능을 지원합니다. 데이터베이스 매핑의 소스 또는 대상 구성 요소로 JSON 인스턴스 파일 또는 JSON 스키마 파일을 추가할 수 있습니다. MapForce는 JSON Draft 04 스키마를 기반으로 JSON 파일을 읽고 씁니다.

아래와 같이, JSON 구성 요소는 적절한 요소 구문으로 표시되며, 각 데이터 유형이 명확하게 나타납니다.

MapForce에서 데이터베이스 데이터를 JSON 형식으로 변환합니다

MapForce 함수 라이브러리에 포함된 데이터 처리 함수들은 다른 구성 요소들과 마찬가지로 JSON 데이터를 변환하는 데에도 그대로 적용될 수 있습니다.

자동으로 JSON 스키마 생성

데이터베이스 매핑에 JSON 또는 JSON5 파일을 추가하면, MapForce는 해당 파일이 스키마 파일인지, 아니면 데이터 파일인지 자동으로 감지합니다. JSON 또는 JSON5 데이터 파일의 경우, MapForce는 스키마 파일을 선택하거나 자동으로 생성하도록 안내합니다. MapForce는 JSON 또는 JSON5 스키마를 사용하여 컴포넌트의 구조를 구축합니다.

고성능 데이터 통합 및 ETL 자동화

Altova MapForce Server 다음은 MapForce를 위해 개발된 내장 데이터 변환 엔진을 포함하며, 서버 환경에서 작동하도록 크게 개선되었습니다. MapForce Server는 다음과 같은 기능을 수행합니다 데이터 변환 XML, PDF, 데이터베이스, EDI, XBRL, 일반 파일, 엑셀, JSON, 그리고/또는 웹 서비스 등 다양한 형식의 데이터를 처리하기 위해, 실행 파일에 저장된 사전 처리 및 최적화된 데이터 매핑을 활용합니다 MapForce에서 정의된 데이터 매핑 정보MapForce Server는 서버 기능을 통해 데이터 ETL(추출, 변환, 적재) 작업을 한 단계 더 발전시킵니다. 이 서버는 병렬 처리, 멀티 스레딩, 대량 SQL 데이터 삽입, 다양한 운영체제 지원 등 다양한 기능을 제공합니다.

사전 처리는 대부분의 데이터 매핑 작업에서 더 빠른 성능과 더 적은 메모리 사용량을 제공합니다. MapForce Server는 FlowForce Server의 관리 하에 작동하며, 독립적인 구성으로 명령줄에서 실행하거나, API를 통해 프로그래밍 방식으로 사용할 수 있습니다.

MapForce 매핑 작업이 설계 및 테스트를 거치면, MapForce 서버를 통해 반복적인 데이터 변환이 필요한 업무 프로세스를 자동화할 수 있습니다.

MapForce를 사용하여 데이터베이스 매핑 작업을 자동화하세요

MapForce는 데이터 매핑 작업을 미리 처리하고 최적화하며, 이러한 매핑 정보를 MapForce Server 실행 파일에 저장하여 MapForce Server가 명령줄을 통해 실행할 수 있도록 합니다. 또한, 이러한 매핑 정보를 FlowForce Server 작업에서 사용할 수 있도록 업로드합니다.

MapForce Server가 FlowForce Server의 관리 하에 운영될 때, 데이터 매핑 및 ETL 프로세스는 FlowForce Server 작업의 일부로 정의된 트리거에 따라 실행됩니다. 예를 들어, 새로운 XBRL 인스턴스 문서가 특정 폴더에 저장되면, 이를 트리거로 하여 여러 단계로 구성된 FlowForce Server 작업이 실행됩니다. 이 작업은 먼저 RaptorXML+XBRL Server를 사용하여 파일을 검증하고, 그 다음 MapForce Server를 실행하여 XBRL 데이터에서 특정 정보를 추출하여 데이터베이스에 삽입합니다.

MapForce 서버는 데이터베이스에 대량 데이터를 한 번에 삽입하는 기능을 지원합니다

대량 삽입(Bulk Insert)은 특정 데이터베이스에서 제공하는 기능으로, 여러 행의 데이터를 개별적인 INSERT 문을 사용하는 대신, 단일 SQL 문을 통해 데이터베이스 테이블에 대량으로 삽입할 수 있습니다. 데이터베이스 엔진의 처리 부담이 크게 줄어들기 때문에 성능이 훨씬 빠릅니다. MapForce Server를 몇 가지 예제를 통해 테스트한 결과, 대량 삽입은 개별 INSERT 문보다 10배 이상 빠른 성능을 보여주었습니다.

대량 삽입(Bulk Insert)은 다중 사용자 환경에서도 장점을 가집니다. 한 사용자가 데이터베이스에 전송하는 일련의 삽입 명령이 다른 사용자가 동일한 테이블에 대해 선택(Select) 요청을 보내는 경우 중단될 수 있습니다. 이 경우 삽입 작업은 계속되지만, 선택 작업은 불완전하거나 유효하지 않은 데이터를 반환할 수 있습니다.