KR101573663B1 - 데이터 통합 방법 및 시스템 - Google Patents

데이터 통합 방법 및 시스템 Download PDF

Info

Publication number
KR101573663B1
KR101573663B1 KR1020150103228A KR20150103228A KR101573663B1 KR 101573663 B1 KR101573663 B1 KR 101573663B1 KR 1020150103228 A KR1020150103228 A KR 1020150103228A KR 20150103228 A KR20150103228 A KR 20150103228A KR 101573663 B1 KR101573663 B1 KR 101573663B1
Authority
KR
South Korea
Prior art keywords
data
change set
generating
sql
generate
Prior art date
Application number
KR1020150103228A
Other languages
English (en)
Inventor
김선권
Original Assignee
한다시스템 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한다시스템 주식회사 filed Critical 한다시스템 주식회사
Priority to KR1020150103228A priority Critical patent/KR101573663B1/ko
Application granted granted Critical
Publication of KR101573663B1 publication Critical patent/KR101573663B1/ko
Priority to US14/971,330 priority patent/US20170024438A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

제1 데이터 및 제2 데이터에 접근하는 단계와, 제1 데이터로부터 통합 대상이 되는 정보를 추출하여 제1 테이블을 생성하는 단계와, 제2 데이터로부터 통합 대상이 되는 정보를 추출하여 제2 테이블을 생성하는 단계와, 집합 연산을 포함하는 적어도 하나의 SQL(structured query language) 쿼리를 이용하여 제1 테이블과 제2 테이블의 비교를 수행함으로써 적어도 하나의 변경 셋을 생성하는 단계와, 생성된 적어도 하나의 변경 셋을 제2 데이터에 적용하는 단계를 포함하는 데이터 통합 방법 및 시스템이 개시된다.

Description

데이터 통합 방법 및 시스템 {Method and system for data integration}
본 발명은 데이터 통합에 대한 것으로, 더욱 구체적으로는 원본 데이터를 저장하고 있는 소스 데이터 시스템(source data system)과 사본 데이터를 저장하고 있는 타겟 데이터 시스템(target data system)을 고속으로 통합하기 위한 데이터 통합 방법 및 이를 위한 데이터 통합 시스템에 대한 것이다.
고객 데이터 통합(Customer data integration)은 기업 내부 및 외부에 있는 고객 데이터의 다양한 소스, 데이터베이스(DB) 및 각 사업부서에서 입수하는 고객에 관한 정보를 통합하고 관리하는 과정으로서, CRM(Customer Relationship Management) 시스템 즉 고객 관계 관리 시스템의 중요 핵심 구성 요소이며 중요한 이슈이다.
고객 정보는 빈번하게 바뀌거나 없어지거나 새로 발생한다. CRM 시스템의 운영비와 마케팅 경비를 절감하면서도 고객 만족도를 높이고 새로운 고객을 발굴해 매출 확대의 기반을 다지기 위해서는 물리적 또는 논리적으로 여러 곳에서 나뉘어 관리되던 정보를 신속하고 정확하게 통합할 필요가 있다.
데이터의 통합(data integration)이란 없어진 레코드를 삭제하고 새로 더해진 레코드는 추가하고 동일한 키값을 가진 레코드인데 내용이 다른 레코드는 업데이트하는 것을 말한다. 기존의 고객 정보 중 변경된 부분만 업데이트 해주는 과정이 데이터 통합 소요 시간의 대부분을 차지한다.
종래의 CRM 데이터 통합 시스템인 인포메티카나 스크라이브는 변경 데이터 업데이트를 위해 루프를 돌리는데, 이러한 방법에 따르면 수십, 수백만건의 레코드를 통합하는데 시간이 너무 많이 걸린다는 문제가 있다.
한편, 최근에는 기존의 관계형 데이터베이스 대신 분산 파일 시스템의 형태를 가지는 빅데이터 시스템의 사용이 늘어나고 있다. 빅데이터 시스템은 수개의 컴퓨터 시스템을 데이터 클러스터로 연결하여 데이터를 구조화 또는 비구조화된 형태로 관리한다.
이러한 빅데이터 시스템에서 여러 컴퓨터에 산재해 있는 고객 데이터를 통합할 수 있는 효율적인 데이터 통합 방법이 필요하다.
본 발명은 상기와 같은 종래 기술의 문제점을 해소하기 위한 것으로, 복수의 데이터 시스템에서 관리되고 있는 데이터를 짧은 시간 내에 통합할 수 있는 데이터 통합 방법 및 시스템을 제공하기 위한 것이다.
또한, 본 발명은 서로 다른 구조의 데이터 시스템들이 관리하고 있는 데이터를 짧은 시간 내에 통합할 수 있는 데이터 통합 방법 및 시스템을 제공하기 위한 것이다.
또한, 본 발명은 빅데이터 시스템과 같이 관계형 데이터베이스 이외의 형태로 관리되는 대용량 데이터의 통합을 짧은 시간 내에 수행할 수 있는 데이터 통합 방법 및 시스템을 제공하기 위한 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 데이터 통합 방법은, 제1 데이터 및 제2 데이터에 접근하는 단계와, 상기 제1 데이터로부터 통합 대상이 되는 정보를 추출하여 제1 테이블을 생성하는 단계와, 상기 제2 데이터로부터 통합 대상이 되는 정보를 추출하여 제2 테이블을 생성하는 단계와, 집합 연산을 포함하는 적어도 하나의 SQL(structured query language) 쿼리를 이용하여 상기 제1 테이블과 상기 제2 테이블의 비교를 수행함으로써 적어도 하나의 변경 셋을 생성하는 단계와, 상기 생성된 적어도 하나의 변경 셋을 상기 제2 데이터에 적용하는 단계를 포함할 수 있다.
상기 변경 셋을 생성하는 단계는, 집합 연산을 포함하는 적어도 하나의 SQL을 실행하여 상기 제1 테이블 및 상기 제2 테이블의 데이터로부터 추가 변경 셋, 삭제 변경 셋 및 업데이트 변경 셋 중 적어도 하나를 생성하는 단계를 포함할 수 있다.
상기 변경 셋을 생성하는 단계는, 상기 제1 테이블의 데이터에서 상기 제2 테이블의 데이터을 뺌으로써 상기 제2 데이터에 추가할 제1 변경 셋을 생성하는 단계와, 상기 제2 테이블의 데이터에서 상기 제1 테이블의 데이터를 뺌으로써 상기 제2 데이터로부터 삭제할 제2 변경 셋을 생성하는 단계와, 상기 제1 테이블과 상기 제2 테이블의 키 값은 동일하나 다른 필드의 값은 동일하지 않은 레코드를 추출함으로써 상기 제2 데이터에서 수정할 제3 변경 셋을 생성하는 단계를 포함할 수 있다.
상기 데이터 통합 방법은, 상기 제1 테이블과 상기 제2 테이블의 매핑 구조를 참조하여 상기 적어도 하나의 변경 셋을 생성하기 위한 상기 적어도 하나의 SQL 쿼리를 생성하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시예에 따른 데이터 통합 시스템은, 제1 데이터 및/또는 제2 데이터에 접근하기 위한 통신부와, 관계형 데이터베이스와, 상기 관계형 데이터베이스를 이용하여 상기 제1 데이터 및 상기 제2 데이터를 통합하기 위한 제어부를 포함하고, 상기 제어부는, 상기 제1 데이터 및 상기 제2 데이터로부터 통합 대상이 되는 정보를 추출하여 제1 테이블 및 제2 테이블을 각각 생성하고, 집합 연산을 포함하는 적어도 하나의 SQL(structured query language) 쿼리를 이용하여 상기 제1 테이블과 상기 제2 테이블의 비교를 수행함으로써 적어도 하나의 변경 셋을 생성하고, 상기 생성된 적어도 하나의 변경 셋을 상기 제2 데이터에 적용할 수 있다.
상기와 같은 본 발명에 의하면, 동기화 작업을 진행하기 전에 미리 변경된 데이터 셋을 확정하고 소량의 변경 셋 만을 대상으로 동기화하기 때문에 복수의 데이터 시스템에서 관리되고 있는 데이터를 통합하는데 시간 및 비용을 절약할 수 있다.
또한, 본 발명에 의하면 서로 다른 구조의 데이터 시스템들이 관리하고 있는 데이터를 짧은 시간 내에 통합할 수 있다.
또한, 본 발명에 의하면 빅데이터 시스템과 같이 관계형 데이터베이스 이외의 형태로 관리되는 대용량 데이터의 통합을 짧은 시간 내에 수행할 수 있다.
또한, 본 발명에 의하면 업데이트가 필요한 데이터가 관계형 데이터베이스의 테이블 형태로 출력되므로 활용도가 높으며, 출력되는 테이블 데이터를 이용하여 관련 웹 서비스도 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터 통합 시스템의 구성을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 데이터 통합 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 통합 방법에서 사용되는 원본 데이터와 사본 데이터의 예를 도시한 것이다.
도 4는 본 발명의 일 실시예에 따라 소스 데이터와 타겟 데이터를 매핑하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따라 매핑 구조를 참조하여 자동으로 생성된 변경 셋 생성 쿼리의 예를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 변경 셋의 예를 도시한 도면이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...수단", "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 일 실시예에 따른 데이터 통합 시스템의 구성을 설명하기 위한 블록도이다.
본 발명의 일 실시예에 따른 데이터 통합 시스템(100)은 소스 데이터 시스템(110)이 가지고 있는 소스 데이터(111) 및/또는 타겟 데이터 시스템(120)이 가지고 있는 타겟 데이터(121)에 접근하기 위해 소스 데이터 시스템(110) 및/또는 타겟 데이터 시스템(120)과 통신하기 위한 통신부(103), 데이터 통합을 위한 작업 테이블과 변경 셋을 생성하는데 사용되는 관계형 데이터베이스 시스템(102), 관계형 데이터베이스 시스템(102)을 이용하여 소스 데이터(111) 및 타겟 데이터(121)를 통합하기 위한 일련의 과정을 수행하기 위한 제어부(101)를 포함하는 컴퓨팅 장치이다.
또한, 데이터 통합 시스템(100)은 사용자(데이터 통합 관리자)로부터 데이터 및/또는 지시를 수신하기 위한 입력 수단인 입력부(104), 사용자의 입력에 따라 현재의 상태, 각 처리 및 동작 상태를 표시하며 데이터 통합 시스템(100)에서 발생하는 각종 출력 데이터를 표시하기 위한 표시부(105), 데이터 통합 시스템(100)의 동작을 제어하기 위한 프로그램 및 데이터를 저장하기 위한 메모리(106)를 포함할 수 있다.
소스 데이터(111)는 데이터의 원본이고 타겟 데이터(121)는 데이터의 사본으로서, 데이터 통합 과정에서 소스 데이터(111)에 포함된 최신 데이터로 타겟 데이터(121)가 변경될 수 있다.
제어부(101)는, 소스 데이터(111) 및 타겟 데이터(121)로부터 통합 대상이 되는 정보를 추출하여 제1 테이블 및 제2 테이블을 각각 생성하고, 집합 연산을 포함하는 적어도 하나의 SQL(structured query language) 쿼리를 이용하여 상기 제1 테이블과 상기 제2 테이블의 비교를 수행함으로써 적어도 하나의 변경 셋을 생성하고, 상기 생성된 적어도 하나의 변경 셋을 타겟 데이터(121)에 적용한다.
이와 같이 데이터 통합 시스템(100)은 관계형 데이터베이스 시스템(102) 내부에 비교 대상 테이블들(제1 테이블 및 제2 테이블)을 생성함으로써 데이터 통합을 수행한다. 그러나, 소스 데이터 시스템(110)의 소스 데이터(111)와 타겟 데이터 시스템(120)의 타겟 데이터(121)는 관계형 데이터베이스의 테이블 데이터로 한정되지 않으며 빅데이터 등 다른 형태의 데이터일 수 있다. 제어부(101)의 동작 및 역할에 대해서는 도 2 내지 도 6을 참조하여 상세히 후술하기로 한다.
한편, 도 1에서는 데이터 통합 시스템(100)이 소스 데이터 시스템(110) 및 타겟 데이터 시스템(120)과 별도의 시스템으로 구현되는 것으로 도시하고 있으나, 실시예에 따라 데이터 통합 소프트웨어 및/또는 데이터 통합에 이용되는 관계형 데이터베이스가 소스 데이터 시스템(110)이나 타겟 데이터 시스템(120) 내부에서 동작되도록 구현할 수 있다. 이 경우 소스 데이터 시스템(110)이나 타겟 데이터 시스템(120)과의 데이터 송수신, 구체적으로는 매핑 대상이 되는 정보의 복사시 한쪽 시스템으로부터만 복사하면 되기 때문에 데이터 통합 처리 속도가 더 빨라질 수 있다.
또한, 도 1에서는 데이터 통합 시스템(100)이 구비하고 있는 관계형 데이터베이스(102)를 이용하는 것으로 도시하고 있으나, 실시예에 따라서는 소스 데이터 시스템(110)이 구비하고 있는 관계형 데이터베이스나 타겟 데이터 시스템(120)이 구비하고 있는 관계형 데이터베이스에 비교 대상 테이블들을 생성하여 데이터 통합을 처리할 수도 있다.
데이터 통합 시스템(100)과, 소스 데이터 시스템(110) 및 타겟 데이터 시스템(120) 간의 통신을 위하여 유선 또는 무선 통신 방식이 이용될 수 있으며, 근거리 통신망(Local Area Network: LAN), 광역 통신망(Wide Area Network: WAN) 등의 유선 네트워크나, 이동 통신망, 위성 통신망, WIFI, 블루투스 등의 무선 네트워크가 사용될 수 있으나, 어느 한 형태의 통신망으로 제한되지 않는다.
도 2는 본 발명의 일 실시예에 따른 데이터 통합 방법을 설명하기 위한 흐름도이고, 도 3은 본 발명의 일 실시예에 따른 데이터 통합 방법에서 사용되는 원본 데이터와 사본 데이터의 예이고, 도 4는 본 발명의 일 실시예에 따라 소스 데이터와 타겟 데이터를 매핑하는 방법을 설명하기 위한 도면이고, 도 5는 본 발명의 일 실시예에 따라 매핑 구조를 참조하여 자동으로 생성된 변경 셋 생성 쿼리의 예이고, 도 6은 본 발명의 일 실시예에 따른 변경 셋의 예를 도시한 것이다.
도 2를 참조하면, 먼저 통합의 대상인 제1 데이터 및 제2 데이터에 접근한다(S202). 제1 데이터는 소스 데이터 시스템(110)이 가지고 있는 소스 데이터(111)이고 제2 데이터는 타겟 시스템(120)이 가지고 있는 타겟 데이터(121)이다. 본 발명의 데이터 통합 시스템(100)과, 소스 데이터 시스템(110) 및 타겟 데이터 시스템(120) 간의 연결 또는 통신 방식에 따라 각 시스템(110, 120)과 연결하여 각 데이터(111, 121)에 접근한다.
다음으로, 제1 데이터로부터 통합 대상이 되는 정보를 추출하여 관계형 데이터베이스(102) 내에 제1 테이블을 생성하고(S204), 제2 데이터로부터 통합 대상이 되는 정보를 추출하여 관계형 데이터베이스(102) 내에 제2 테이블을 생성한다(S206). 이때, 제1 데이터와 제2 데이터가 가지고 있는 모든 정보 또는 필드를 추출하는 것이 아니라, 미리 매핑이 약속된 정보 또는 필드만을 복사해와 타블라 데이터(tabular data)로 변환한다. 제1 데이터나 제2 데이터가 원해 타블라 데이터인 경우는 변환없이 미리 정해진 필드를 가져와 사용하면 된다.
도 3(a)는 소스 데이터로부터 매핑 대상 정보를 추출해 생성한 제1 테이블(원본 테이블)의 예이고, 도 3(b)는 타겟 데이터로부터 매핑 대상 정보를 추출해 생성한 제2 테이블(사본 테이블)의 예이다. 도 3의 예와 같이 소스 데이터의 필드 명과 타겟 데이터의 필드명이 다른 경우 도 4와 같이 소스 데이터와 타겟 데이터의 매핑 과정이 필요하다.
물론, 필드명이 같을 때에도 매핑은 필요하다. 다만, 필드명이 같다면 매핑을 자동화하여 처리하는 것이 가능하다.
도 4를 참조하면, 사용자에 의해 소스 데이터의 'Grade'와 타겟 데이터의 '학년', 소스 데이터의 'Class'와 타겟 데이터의 '반', 소스 데이터의 'Deskno'와 타겟 데이터의 '책상번호', 소스 데이터의 'Name'와 타겟 데이터의 '학생명', 소스 데이터의 'Korean'와 타겟 데이터의 '국어', 소스 데이터의 'English'와 타겟 데이터의 '영어', 소스 데이터의 'Math'와 타겟 데이터의 '수학' 필드가 서로 매핑되는 정보이고, Grade(학년)-Class(반)-Deskno(책상번호)가 각 레코드의 키 값임을 알 수 있다. 즉, Grade(학년), Class(반), Deskno(책상번호)는 키 필드(410)이고, Name(학생명), Korean(국어), English(영어), Math(수학)은 데이터 필드(420)이다.
다시 도 3을 참조하면, 키 값이 1-1-2인 레코드가 소스 데이터에는 존재하지만 타겟 데이터에 없으므로 타겟 데이터에 추가할 레코드(310)이고, 키 값이 2-1-1인 레코드는 타겟 데이터에는 존재하지만 소스 데이터에는 존재하지 않으므로 타겟 데이터로부터 삭제할 레코드(320)이며, 키 값이 1-2-1인 레코드는 그 내용이 변경되었으므로 수정해야 할 레코드(330)이다.
도 3에 도시된 바와 같은 추가할 레코드(310), 삭제할 레코드(320), 수정할 레코드(330)를 판별하기 위해, 제1 테이블과 제2 테이블이 서로 같은지 비교하는 대사 단계를 수행한다.
대사 단계에서는, 집합 연산을 포함하는 적어도 하나의 SQL(structured query language) 쿼리를 이용하여 제1 테이블과 제2 테이블의 비교를 수행하며, 그 결과로써 적어도 하나의 변경 셋이 생성된다(S208).
변경 셋은 3개의 변경 셋으로 구성될 수 있으며, 각 변경 셋은 타겟 데이터에 추가해야할 레코드, 타겟 데이터로부터 삭제해야 할 레코드 또는 타겟 데이터에서 업데이트해야 할 레코드를 포함한다.
본 발명에서는 변경 셋 생성을 위해 차집합 연산을 포함하는 적어도 하나의 SQL을 실행하며, 추가 변경 셋, 삭제 변경 셋 및 업데이트 변경 셋 중 적어도 하나가 제1 테이블 및 제2 테이블의 데이터로부터 생성된다.
구체적으로, 제1 테이블의 데이터에서 제2 테이블의 데이터을 뺌으로써 상기 제2 데이터에 추가할 추가 변경 셋을 생성하고, 제2 테이블의 데이터에서 제1 테이블의 데이터를 뺌으로써 제2 데이터로부터 삭제할 삭제 변경 셋을 생성하고, 제1 테이블과 제2 테이블의 키 값은 동일하나 다른 필드의 값은 동일하지 않은 레코드를 추출함으로써 제2 데이터에서 수정할 업데이트 변경 셋을 생성한다. 추가 변경 셋과 삭제 변경 셋의 생성을 위해서는 키 필드(들)만 가지고 차집합 연산을 수행하며, 업데이트 변경 셋의 생성을 위해서는 키 값을 일치시킨 다음 데이터 필드끼리의 차집합 연산을 수행하여 결과로 남는 레코드(들)을 업데이트 변경 셋으로 하면 된다.
본 발명의 일 실시예에 따르면, 제1 테이블과 제2 테이블의 매핑 구조를 참조하여 변경 셋을 생성하기 위한 SQL 쿼리를 자동으로 생성할 수 있다.
도 5는 자동 생성된 SQL 쿼리들의 예이다. 첫번째 쿼리(510)는, 차집합 연산을 포함하여 제1 테이블(소스)에서 제2 테이블(타겟)을 뺀 추가 변경 셋과 제2 테이블(타겟)에서 제1 테이블(소스)을 뺀 식제 변경 셋을 생성할 수 있는 쿼리이다. 두번째 쿼리(520)는 집합 연산을 포함하여 키 필드 값은 서로 일치하나 데이터 필드가 다른 레코드를 추출하여 업데이트 변경 셋을 생성할 수 있는 쿼리이다.
도 5와 같은 집합 연산을 포함하는 SQL 쿼리들을 실행한 결과로 도 6에 도시된 바와 같은 변경 셋들이 타블라 데이터로 출력된다.
도 6(a)를 참조하면, 키 ?이 1-1-2인 레코드로 구성되는 추가 변경 셋(610)과, 키 값이 1-2-1인 레코드로 구성되는 업데이트 변경 셋(620)이 생성되었다. 또 도 6(b)를 참조하면, 타겟 테이블에만 존재하여 삭제되어야 하는 레코드의 식별정보로 구성되는 삭제 변경 셋(630)이 생성되었다.
본 발명에 따르면, 제1 데이터(소스 데이터)와 제2 데이터(타겟 데이터)의 내용에 따라 추가 변경 셋, 삭제 변경 셋, 업데이트 변경 셋 중 적어도 하나가 생성될 것이며, 생성된 적어도 하나의 변경 셋을 제2 데이터에 적용하면 데이터 통합이 완료된다(S210).
구체적으로, 추가 변경 셋에 포함된 레코드(들)을 제2 데이터에 추가하고, 삭제 변경 셋에 포함된 레코드(들)을 제2 데이터로부터 삭제하고, 업데이트 변경 셋에 포함된 레코드(들)에 대해서는 각 레코드의 키 값에 대응하는 제2 데이터의 레코드를 업데이트 변경 셋의 데이터 필드의 데이터 값으로 수정한다.
이와 같은 데이터 동기화는 타겟 데이터 시스템(120)에서 지원하는 데이터 트랜잭션 호출 방법(쿼리, API: Application Programming Interface, RPC: Remote Peocedure Call)에 따라 수행될 수 있다.
한편, 대사 단계(S208)에서 데이터 통합의 방향을 사용자가 설정하도록 할 수 있다. 상기에서는 소스 데이터(원본 데이터)가 타겟 데이터(사본 데이터)를 업데이트 하는 인바운드 모드를 설명하였으나, 아웃바운드 모드에서는 반대로 사본 데이터가 원본 데이터를 업데이트하게 된다.
종래 기술인 인포메티카나 스크라이브는 대사 단계에서 에어전트가 레코드를 5000건씩 패치해와서 전부 비교하는 방식을 사용하므로 처리 시간이 오래 걸린다.
반면, 상술한 바와 같이 본 발명에 따른 데이터 통합 방법은 소스 데이터나 타겟 데이터의 형태에 상관 없이 대사 단계(S208)에서 관계형 데이터베이스 시스템을 사용함으로써, 데이터의 이동 시간만 소요될 뿐 대사에는 시간이 거의 걸리지 않아 종래 기술에 비해 20~150배 빨리 데이터 통합을 처리할 수 있다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
100: 데이터 통합 시스템
101: 제어부
102: 관계형 데이터베이스
103: 통신부
104: 입력부
105: 표시부
106: 메모리
110: 소스 데이터 시스템
111: 소스 데이터
120: 타겟 데이터 시스템
121: 타겟 데이터

Claims (10)

  1. 컴퓨터가,
    제1 데이터 및 제2 데이터에 접근하는 단계와,
    상기 제1 데이터로부터 통합 대상이 되는 정보를 추출하여 제1 테이블을 생성하는 단계와,
    상기 제2 데이터로부터 통합 대상이 되는 정보를 추출하여 제2 테이블을 생성하는 단계와,
    집합 연산을 포함하는 적어도 하나의 SQL(structured query language) 쿼리를 이용하여 상기 제1 테이블과 상기 제2 테이블의 비교를 수행함으로써 적어도 하나의 변경 셋을 생성하는 단계와,
    상기 생성된 적어도 하나의 변경 셋을 상기 제2 데이터에 적용하는 단계를 포함하는 것을 특징으로 하는 데이터 통합 방법.
  2. 제1항에 있어서,
    상기 변경 셋을 생성하는 단계는,
    집합 연산을 포함하는 적어도 하나의 SQL을 실행하여 상기 제1 테이블 및 상기 제2 테이블의 데이터로부터 추가 변경 셋, 삭제 변경 셋 및 업데이트 변경 셋 중 적어도 하나를 생성하는 단계를 포함하는 것을 특징으로 하는 데이터 통합 방법.
  3. 제1항에 있어서,
    상기 변경 셋을 생성하는 단계는,
    상기 제1 테이블의 데이터에서 상기 제2 테이블의 데이터을 뺌으로써 상기 제2 데이터에 추가할 제1 변경 셋을 생성하는 단계와,
    상기 제2 테이블의 데이터에서 상기 제1 테이블의 데이터를 뺌으로써 상기 제2 데이터로부터 삭제할 제2 변경 셋을 생성하는 단계와,
    상기 제1 테이블과 상기 제2 테이블의 키 값은 동일하나 다른 필드의 값은 동일하지 않은 레코드를 추출함으로써 상기 제2 데이터에서 수정할 제3 변경 셋을 생성하는 단계를 포함하는 것을 특징으로 하는 데이터 통합 방법.
  4. 제1항에 있어서,
    상기 제1 테이블과 상기 제2 테이블의 매핑 구조를 참조하여 상기 적어도 하나의 변경 셋을 생성하기 위한 상기 적어도 하나의 SQL 쿼리를 생성하는 단계를 더 포함하는 것을 특징으로 하는 데이터 통합 방법.
  5. 데이터 통합 방법을 실행하기 위해 컴퓨터로 판독가능한 기록매체에 기록된 컴퓨터 프로그램에 있어서, 상기 방법은 컴퓨터가,
    제1 데이터 및 제2 데이터에 접근하는 단계와,
    상기 제1 데이터로부터 통합 대상이 되는 정보를 추출하여 제1 테이블을 생성하는 단계와,
    상기 제2 데이터로부터 통합 대상이 되는 정보를 추출하여 제2 테이블을 생성하는 단계와,
    집합 연산을 포함하는 적어도 하나의 SQL(structured query language) 쿼리를 이용하여 상기 제1 테이블과 상기 제2 테이블의 비교를 수행함으로써 적어도 하나의 변경 셋을 생성하는 단계와,
    상기 생성된 적어도 하나의 변경 셋을 상기 제2 데이터에 적용하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  6. 제1 데이터 및/또는 제2 데이터에 접근하기 위한 통신부와,
    관계형 데이터베이스와,
    상기 관계형 데이터베이스를 이용하여 상기 제1 데이터 및 상기 제2 데이터를 통합하기 위한 제어부를 포함하고,
    상기 제어부는, 상기 제1 데이터 및 상기 제2 데이터로부터 통합 대상이 되는 정보를 추출하여 제1 테이블 및 제2 테이블을 각각 생성하고, 집합 연산을 포함하는 적어도 하나의 SQL(structured query language) 쿼리를 이용하여 상기 제1 테이블과 상기 제2 테이블의 비교를 수행함으로써 적어도 하나의 변경 셋을 생성하고, 상기 생성된 적어도 하나의 변경 셋을 상기 제2 데이터에 적용하는 것을 특징으로 하는 데이터 통합 시스템.
  7. 제6항에 있어서,
    상기 제어부는, 집합 연산을 포함하는 적어도 하나의 SQL을 실행하여 상기 제1 테이블 및 상기 제2 테이블의 데이터로부터 추가 변경 셋, 삭제 변경 셋 및 업데이트 변경 셋 중 적어도 하나를 생성하는 것을 특징으로 하는 데이터 통합 시스템.
  8. 제6항에 있어서,
    상기 제어부는, 상기 제1 테이블의 데이터에서 상기 제2 테이블의 데이터을 뺌으로써 상기 제2 데이터에 추가할 제1 변경 셋을 생성하고, 상기 제2 테이블의 데이터에서 상기 제1 테이블의 데이터를 뺌으로써 상기 제2 데이터로부터 삭제할 제2 변경 셋을 생성하고, 상기 제1 테이블과 상기 제2 테이블의 키 값은 동일하나 다른 필드의 값은 동일하지 않은 레코드를 추출함으로써 상기 제2 데이터에서 수정할 제3 변경 셋을 생성하는 것을 특징으로 하는 데이터 통합 시스템.
  9. 제6항에 있어서,
    상기 제어부는, 상기 제1 테이블과 상기 제2 테이블의 매핑 구조를 참조하여 상기 적어도 하나의 변경 셋을 생성하기 위한 상기 적어도 하나의 SQL 쿼리를 자동으로 생성하는 것을 특징으로 하는 데이터 통합 시스템.
  10. 제6항에 있어서,
    상기 제1 데이터를 저장한 소스 데이터 시스템이나 상기 제2 데이터를 저장한 타겟 데이터 시스템 내부에 구현되거나, 또는 별도의 시스템으로 구현되는 것을 특징으로 하는 데이터 통합 시스템.
KR1020150103228A 2015-07-21 2015-07-21 데이터 통합 방법 및 시스템 KR101573663B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150103228A KR101573663B1 (ko) 2015-07-21 2015-07-21 데이터 통합 방법 및 시스템
US14/971,330 US20170024438A1 (en) 2015-07-21 2015-12-16 Method and system for data integration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150103228A KR101573663B1 (ko) 2015-07-21 2015-07-21 데이터 통합 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101573663B1 true KR101573663B1 (ko) 2015-12-01

Family

ID=54882891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150103228A KR101573663B1 (ko) 2015-07-21 2015-07-21 데이터 통합 방법 및 시스템

Country Status (2)

Country Link
US (1) US20170024438A1 (ko)
KR (1) KR101573663B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768853B2 (en) * 2021-11-04 2023-09-26 Sap Se System to copy database client data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389839B1 (ko) 1999-12-14 2003-07-02 삼성전자주식회사 데이터 동기화 시스템 및 운용 방법
JP2012511773A (ja) 2008-12-10 2012-05-24 アリババ・グループ・ホールディング・リミテッド 効率的なデータ同期化のための方法及びシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959310B2 (en) * 2002-02-15 2005-10-25 International Business Machines Corporation Generating data set of the first file system by determining a set of changes between data stored in first snapshot of the first file system, and data stored in second snapshot of the first file system
US9251226B2 (en) * 2013-03-15 2016-02-02 International Business Machines Corporation Data integration using automated data processing based on target metadata
WO2015019953A1 (ja) * 2013-08-08 2015-02-12 田中貴金属工業株式会社 固体高分子形燃料電池用の触媒及びその製造方法
MY188208A (en) * 2014-06-26 2021-11-24 Mimos Berhad System and method for managing change data in database

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389839B1 (ko) 1999-12-14 2003-07-02 삼성전자주식회사 데이터 동기화 시스템 및 운용 방법
JP2012511773A (ja) 2008-12-10 2012-05-24 アリババ・グループ・ホールディング・リミテッド 効率的なデータ同期化のための方法及びシステム

Also Published As

Publication number Publication date
US20170024438A1 (en) 2017-01-26

Similar Documents

Publication Publication Date Title
US20200327107A1 (en) Data Processing Method, Apparatus, and System
RU2458399C2 (ru) Кэширование в памяти совместно используемых настраиваемых данных множества арендаторов
EP3428811A1 (en) Database interface agent for a tenant-based upgrade system
JP5792594B2 (ja) 仮想パーティションを用いたデータベース再分配
US9678835B2 (en) Plural architecture master data management
US9715535B2 (en) Plural architecture master data management with supplemental attributes
US20120158795A1 (en) Entity triggers for materialized view maintenance
CN108829746B (zh) 一种基于内存数据库的主数据管理系统及装置
US10762068B2 (en) Virtual columns to expose row specific details for query execution in column store databases
US20130275369A1 (en) Data record collapse and split functionality
US11226982B2 (en) Synchronization of offline instances
US20130013633A1 (en) Context-and-Version-Aware Facade for Database Queries
US11150996B2 (en) Method for optimizing index, master database node and subscriber database node
CN110858194A (zh) 一种数据库扩容的方法和装置
US9009110B2 (en) Declarative view objects
US20230099501A1 (en) Masking shard operations in distributed database systems
US8650534B2 (en) Metaobject enhancement objects
KR101573663B1 (ko) 데이터 통합 방법 및 시스템
US11914612B2 (en) Selective synchronization of linked records
US10963451B2 (en) Global database durable transaction controlling and synchronization system
CN115510072A (zh) 一种基于多租户SaaS应用平台的主数据引擎
CN116028517A (zh) 一种融合数据库系统及电子设备
US11334600B1 (en) Partial reloading in data synchronization
US11494504B2 (en) Access to data in multiple instances through a single record
CN112527911A (zh) 一种数据存储方法、装置、设备及介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180917

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191211

Year of fee payment: 5