KR20200092095A - 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법 - Google Patents

관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법 Download PDF

Info

Publication number
KR20200092095A
KR20200092095A KR1020190009227A KR20190009227A KR20200092095A KR 20200092095 A KR20200092095 A KR 20200092095A KR 1020190009227 A KR1020190009227 A KR 1020190009227A KR 20190009227 A KR20190009227 A KR 20190009227A KR 20200092095 A KR20200092095 A KR 20200092095A
Authority
KR
South Korea
Prior art keywords
nosql
data
transaction
rdbms
dml
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020190009227A
Other languages
English (en)
Other versions
KR102174957B1 (ko
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 KR1020190009227A priority Critical patent/KR102174957B1/ko
Publication of KR20200092095A publication Critical patent/KR20200092095A/ko
Application granted granted Critical
Publication of KR102174957B1 publication Critical patent/KR102174957B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일실시예는 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법을 개시한다. 개시된 트랜잭션 제어 방법은, 동기화 프록시 서버가 소스 RDBMS의 트랜잭션 DML 데이터를 NoSQL DBMS로 동기화하는 방법에 있어서, 상기 동기화 프록시 서버가 소스 RDBMS의 메타정보, 복구이력을 위한 Sync_iid와 Sync_uid 컬럼을 추가하고, 트랜잭션을 제어하기 위한 저장소와 자료구조를 생성하며, 복제 NoSQL DBMS로 적재하기 위한 저장소와 자료구조를 생성하여 동기화 동작의 초기화 작업을 수행하는 준비 단계; 상기 동기화 프록시 서버가 네트워크에서 패킷을 수신하여 분석한 후, NoSQL 데이터 변환 실패 처리를 위해 INSERT, UPDATE의 DML을 변경하여 소스 RDBMS의 트랜잭션을 내부적으로 관리하고 처리하는 트랜잭션 제어 단계; 상기 동기화 프록시 서버가 트랜잭션의 커밋(Commit) 연산된 데이터가 클라이언트에게 전송완료된 후에 해당 NoSQL 변환을 처리하는 NoSQL 변환 단계; 및 상기 NoSQL 변환 단계에서 변환된 DML NoSQL 데이터를 복제 NoSQL DBMS에 적재하는 NoSQL 적재 단계를 포함한다.

Description

관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법{Transaction control method to synchronize DML statements in relational database to NoSQL database}
본 발명은 이기종 데이터베이스 시스템의 동기화 기술에 관한 것으로, 더욱 상세하게는 RDBMS의 트랜잭션 변경 데이터를 NoSQL 데이터베이스로 복제 시 RDBMS의 스키마, 컬럼의 고정된 포맷의 데이터를 형식이 자유로운 NoSQL 데이터베이스에 저장하기 위해 트랜잭션 제어 방법에 관한 것이다.
일반적으로, 데이터베이스시스템(DBMS)은 트랜잭션을 통한 안정적인 데이터 관리가 중요한 이슈였기 때문에 데이터를 저장하는 데에는 주로 관계형 데이터베이스(RDBMS)가 사용되었다. 하지만 최근들어 웹 2.0 환경과 빅데이터가 등장하면서 RDBMS는 '데이터를 처리하는 데 필요한 비용의 증가'라는 난관에 부딪히게 되었다. 즉, 데이터와 트래픽의 양이 기하급수적으로 증가함에 따라 한 대에서 실행되도록 설계된 관계형 데이터베이스를 사용할 경우 장비의 성능을 향상시키는 데(Scale-up: 수직적 확장) 비용이 기하급수적으로 증가하게 되었다.
이러한 문제점을 해결하기 위해 기존의 RDBMS가 보장하는 분산 컴퓨팅 시스템의 특징인 일관성(Consistency)과 유효성(Availablity) 중 일부를 포기하되 파티션 허용치(Partition tolerance)를 보장함으로써 RDBMS와 달리 수평적 확장(Scale-out)이 가능한 NoSQL(Not Only SQL)이라는 기술이 나타나게 되었다.
그러나 NoSQL은 일관성과 유효성 중 일부를 포기함으로써 ACID(Atomicity: 원자성, Consistenty: 일관성, Isolation: 고립성, Durability: 지속성) 특성을 갖는 트랜잭션을 제공하지 못하는 문제점이 발생하게 되었다.
이러한 문제점을 해결하기 위해 대한민국특허청 등록특허공보(B1)에 등록번호 제10-1755276호로 공고된 'NoSQL에 기반한 트랜잭션 관리 방법 및 시스템'은 데이터베이스에 저장되어 있는 데이터를 데이터베이스가 제공하는 인터페이스를 이용해 접근할 수 있는 물리키와 물리키에 대응해서 트랜잭션 관리 시스템 내에서 관리되고 트랜잭션 관리 시스템이 제공하는 인터페이스를 이용해 해당 데이터를 접근할 수 있는 가상키의 관계 정보를 관리하는 가상의 데이터베이스인 도메인을 관리하는 도메인 관리부와, 각 도메인 내에 관리되는 복수의 가상키와 이에 대응하는 물리키 관계를 저장하는 키매칭맵을 데이터로 갖는 매칭블록을 관리하는 매칭블록관리부와, 어느 하나의 도메인에서 작업단위를 구성하는 일련의 연산들의 집합인 트랜잭션에 따라 연산을 수행하는 트랜잭션수행부와, 데이터의 추가 및 변경 작업 중 적어도 하나를 포함하는 트랜잭션의 수행에 이용되는 복수의 가상키와 이에 대응하는 물리키 관계를 저장하는 작업키맵을 관리하는 작업키관리부와, 트랜잭션의 수행에 따라 삭제되는 가상키에 대한 정보인 삭제키목록을 관리하는 삭제키관리부로 구성된다.
상기 등록특허는 NoSQL을 기반으로 가상키(Vitual Key)를 관리하는 가상의 DBMS인 도메인을 통해 사용자가 접근하도록 하여 다수의 키에 대한 데이터 정합성을 지원하는 트랜잭션 기능을 제공하는 방식이므로, 프록시 서버를 통해 RDBMS 원본 데이터를 NoSQL DBMS로 변환하여 복제 및 동기화시키는데 적용할 수 없는 문제점이 있다.
본 발명의 목적은 RDBMS의 트랜잭션 변경 데이터를 NoSQL 데이터베이스로 복제 시 원본과 전혀 다른 데이터가 복제될 수 있으므로 이러한 문제를 해결하고, RDBMS의 스키마, 컬럼의 고정된 포맷의 데이터를 형식이 자유로운 NoSQL 데이터베이스로 저장하기 위하여 관계형 데이터베이스의 데이터 조작 언어(DML:Data Manipulation Language) 문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법을 제공하는 것이다.
본 발명의 일실시예는 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법을 개시한다.
개시된 트랜잭션 제어 방법은, 동기화 프록시 서버가 RDBMS의 트랜잭션 DML 데이터를 NoSQL DBMS로 동기화하는 방법에 있어서, 상기 동기화 프록시 서버가 RDBMS의 메타정보, 복구이력을 위한 sync_iid와 sync_uid 컬럼을 추가하고, 트랜잭션을 제어하기 위한 저장소와 자료구조를 생성하며, NoSQL DBMS로 적재하기 위한 저장소와 자료구조를 생성하여 동기화 동작의 초기화 작업을 수행하는 준비 단계; 상기 동기화 프록시 서버가 네트워크에서 패킷을 수신하여 분석한 후, NoSQL 데이터 변환 실패 처리를 위해 INSERT, UPDATE의 DML을 변경하여 RDBMS의 트랜잭션을 내부적으로 관리하고 처리하는 트랜잭션 제어 단계; 상기 동기화 프록시 서버가 트랜잭션의 커밋(Commit) 연산된 데이터가 클라이언트에게 전송완료된 후에 해당 NoSQL 변환을 처리하는 NoSQL 변환 단계; 및 상기 NoSQL 변환 단계에서 변환된 DML NoSQL 데이터를 NoSQL DBMS에 적재하는 NoSQL 적재 단계를 포함하는 것을 특징으로 한다.
상기 준비 단계는 소스 RDBMS의 메타 정보, 복구 이력을 위한 Sync_iid와 Sync_uid 컬럼을 추가하는 단계와, 소스 RDBMS의 트랜잭션을 제어하기 위한 저장소와 자료 구조 생성하는 단계와, 복제 NoSQL DBM로 적재하기 위한 저장소와 자료 구조를 생성하는 단계를 포함한다.
또한, 상기 트랜잭션 제어 단계는 동기화 프록시 서버가 네트워크로부터 소스 RDBMS의 패킷을 수집하여 분석하는 단계와, 신규 세션이면, 세션키를 생성하여 세션 단위 트랜잭션 관리 데이터 저장소(TR-SESSION-MAP)에 저장하는 단계와, 신규 세션이 아니면, 데이터 조작 언어(DML)인지를 판단하여 데이터 조작 언어(DML)가 아니면 부분 롤백(Roll Back)이나 커밋(COMMIT) 혹은 롤백(Roll Back)을 처리하는 단계와, INSERT 데이터 조작 언어(DML)이면 수신 패킷에 Sync_iid 컬럼을 추가하고, 값(VALUE)에 Table.sync_iid를 추가한 확장패킷으로 변경하는 단계와, UPDATE 데이터 조작 언어(DML)이면, 수신 패킷에 Sync_uid 컬럼을 추가하고, 값(VALUE)에 Table.sync_uid를 추가한 확장패킷으로 변경하는 단계와, RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)가 할당되어 있지 않으면 RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)의 영역을 할당하고, 세션 단위 트랜잭션 관리 데이터 저장소(TR-SESSION-MAP)에 RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)의 할당 영역에 접근할 참조값을 생성하는 단계와, RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)의 할당 영역에 해당 DML 데이터와 DML 타입에 따른 Sync_iid 또는 Sync_uid값을 함께 저장한 후 확장패킷을 소스 RDBMS로 전송하는 단계를 포함한다.
상기 NoSQL 변환 단계는 트랜잭션 제어기로부터 트랜잭션 데이터 처리신호가 수신되면, RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)에서 해당 트랜잭션 데이터를 하나씩 읽어 오는 단계와, 읽어온 트랜잭션 데이터가 INSERT이면, NoSQL INSERT 문장 변환기를 불러와 INSERT NoSQL 변환 절차를 수행하고, 변환된 소스 RDBMS의 ROW 데이터의 Sync-iid 값을 Table.commit_iid값으로 갱신하는 단계와, 읽어온 트랜잭션 데이터가 UPDATE이면, NoSQL UPDATE 문장 변환기를 불러와 UPDATE NoSQL 변환 절차를 수행하고, 변환된 소스 RDBMS의 ROW 데이터의 Sync-uid 값을 Table.commit_uid값으로 갱신하는 단계와, 읽어온 트랜잭션 데이터가 DELETE이면, NoSQL DELETE 문장 변환기를 불러와 DELETE NoSQL 변환 절차를 수행하는 단계를 포함하고, 읽어온 트랜잭션 데이터가 마지막(End)이면, NoSQL 적재기에 적재 신호를 전송하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면, RDBMS의 트랜잭션 변경 데이터를 NoSQL 데이터베이스로 복제 시, RDBMS의 스키마, 컬럼의 고정된 데이터 포맷의 데이터를, 형식이 자유로운 NoSQL 데이터베이스로 변환하여 관계형 데이터베이스의 DML 문장을 NoSQL 데이터베이스로 동기화할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 이기종 데이터베이스의 동기화 시스템의 전체 구성을 도시한 개략도,
도 2는 본 발명의 실시예에 따라 관계형 데이터베이스의 DML 문장을 NoSQL 데이터베이스로 동기화하기 위한 전체 절차를 도시한 순서도,
도 3a 및 3b는 도 2에 도시된 준비단계의 세부 절차를 도시한 순서도,
도 4a 및 4b는 도 2에 도시된 트랜잭션 제어 단계의 세부 절차를 도시한 순서도,
도 5는 도 2에 도시된 NoSQL 변환 단계의 세부 절차를 도시한 순서도,
도 6은 도 5에 도시된 INSERT NoSQL 변환 절차를 도시한 순서도,
도 7은 도 5에 도시된 UPDATE NoSQL 변환 절차를 도시한 순서도,
도 8은 도 5에 도시된 DELETE NoSQL 변환 절차를 도시한 순서도,
도 9는 본 발명의 실시예에 따른 NoSQL 변환 실패시 처리 절차를 도시한 순서도,
도 10은 도 2에 도시된 NoSQL 적재 단계의 세부 절차를 도시한 순서도,
도 11은 본 발명의 실시예에 따라 소스 RDBMS가 NoSQL Document로 변환된 예이다.
본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다.
도 1은 본 발명의 실시예에 따른 이기종 데이터베이스의 동기화 시스템의 전체 구성을 도시한 개략도로서, 소스 데이터베이스인 관계형 데이터베이스(RDBMS;30)의 데이터와 이를 복제한 복제대상 NoSQL DBMS(40)의 데이터를 동기화시키는 것이다.
도 1을 참조하면, RDBMS DML 발생 클라이언트(10)는 RDBMS 방식의 업무용 PC들과 서버들로서, RDBMS DML 트랜잭션이 발생하면 동기화 프록시 서버(20)에 트랜잭션의 반영이나 취소를 요청한다(S1). 여기서, DML(Data Manipulation Language)은 데이터베이스 내의 데이터를 검색, 저장, 수정 및 삭제를 하는데 사용되는 일련의 명령어들로서, 본 발명의 실시예에서는 INSERT, UPDATE, DELETE를 예로들어 설명한다.
동기화 프록시 서버(20)는 준비모듈(22), 트랜잭션 제어기(24), NoSQL 변환기(26), NoSQL 적재기(28)를 포함하고, 클라이언트(10)에서 발생되는 DML 트랜잭션 패킷을 수신하면 이를 분석하여 INSERT나 UPDATE 데이터이면 Sync_id 데이터를 추가한 후 소스 RDBMS(30)로 전송한다(S2). 여기서, Sync_id는 본 발명의 실시예에서 데이터 복제를 위해 DML 트랜잭션을 구분하기 위한 식별자로서, INSERT이면 Sync_iid로, UPDATE이면 Sync_uid로 표시한다.
그리고 소스 RDBMS(30)로부터 트랜잭션 완료 결과를 수신하면(S3), 그 결과를 클라이언트(10)로 전송(S4)한 후 DML 트랜잭션 데이터를 NoSQL 데이터로 변환하여 NoSQL DBMS(40)에 저장(S5)하여 소스 RDBMS(30)와 복제대상 NoSQL DBMS(40)의 데이터를 동기화시킨다. 여기서, 프록시 서버(proxy server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터나 응용 프로그램으로서, 서버와 클라이언트 사이에서 중계기로서 대리로 통신을 수행하는 기능을 한다.
소스 RDBMS(30)는 ACID(원자성, 일관성, 고립성, 지속성)의 트랜잭션을 제공하는 전통적인 관계형 데이터베이스이다. 관계형 데이터베이스로는 Oracle, DB2, MSsql, MySQL 등이 있다. 여기서, 원자성(Atomicity)은 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이고, 일관성(Consistency)은 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미하며, 고립성(Isolation)은 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미하고, 지속성(Durability)은 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. 전형적으로 모든 트랜잭션은 로그로 남고, 시스템 장애 발생 전 상태로 되돌릴 수 있으며, 트랜잭션은 로그에 모든 것이 저장된 후에만 커밋(commit) 상태로 간주될 수 있다.
복제대상 NoSQL DBMS(40)는 소스 RDBMS(30)를 복제한 복제 DBMS로서, 소스 DBMS인 관계형 데이터베이스 관리시스템(RDBMS)과는 다르게 설계된 비관계형(non-relational) DBMS이다. 노에스큐엘(NoSQL)은 테이블-컬럼과 같은 스키마 없이, 분산 환경에서 단순 검색 및 추가 작업을 위한 키 값을 최적화하고, 지연(latency)과 처리율(throughput)이 우수하다. 그리고 대규모 확대가 가능한 수평적인 확장성의 특징을 가지고 있다. 예컨대, NoSQL Document Store는 Document-oriented database라고 불리가도 하며, 테이블 스키마가 정적이지 않고 유동적이어서 레코드마다 다른 스키마를 가질 수 있다. 일반적으로 JSON같은 document를 이용해 record를 저장하므로 RDBS와 달리 트리형 구조를 저장하거나 찾는데 용이하다. NoSQL Document Store 방식의 대표적인 DB로는 MongoDB, Amazone의 DynamoDB, CouchBase 등이 있다.
본 발명의 실시예에 따라 소스 RDBMS(30)와 복제대상 NoSQL DBMS(40)를 동기화하는 프로세스는 기본적으로 프록시 서버(Proxy Server) 모드로 동작한다. 즉, 동기화 프록시 서버(20)가 소스 RDBMS(30)의 네트워크 패킷을 중계하면서 DML(INSERT, UPDATE) 패킷을 복사하고, 패킷을 수정하여 확장패킷을 소스 RDBMS(30)로 전송한다. 그리고 소스 RDBMS(30)의 트랜잭션이 완료된 경우, 동기화 프록시 서버(20)는 저장된 DML 트랜잭션 데이터를 NoSQL DBMS(40)의 Document 저장 데이터 포맷으로 변환하여 복제대상 NoSQL DBMS(40)에 저장한다.
도 2는 본 발명의 실시예에 따라 관계형 데이터베이스의 DML 문장을 NoSQL 데이터베이스로 동기화하기 위한 전체 절차를 도시한 순서도이다.
도 2를 참조하면, 준비 단계(S11)는 동기화 동작을 하기 위한 초기화 작업을 진행하는 단계로서, 소스 RDBMS(30)의 메타정보, 복구이력을 위해 DML 패킷에 sync_id(sync-iid 혹은 sync_uid) 컬럼을 추가하고, 다음 표 1과 같이 트랜잭션을 제어하기 위한 저장소와 자료구조를 생성하며, 복제대상 NoSQL DBMS(40)로 적재하기 위한 저장소와 자료구조를 생성한다.
저장소 식별자 저장소 기능
RDB-META-MAP RDBMS 의 테이블 메타정보 저장소
RDB-TR-DATA RDBMS 트랜잭션 데이터 저장소
RDB-SYNC-MAP RDBMS의 대상 테이블 동기화정보 저장소
TR-SESSION-MAP 세션 단위의 트랜잭션 관리 데이터 저장소
NoSQL-TR-DATA NoSQL의 복제 데이터 저장소
트랜잭션 제어 단계(S12)는 프록시 서버 방식으로 네트워크에서 패킷을 수신하여 분석한 후, 소스 RDBMS(30)의 트랜잭션을 내부적으로 관리하고 처리하는 단계로서, NoSQL 데이터 변환 실패 처리를 위해 INSERT, UPDATE와 같은 DML 패킷에 Sync_id 컬럼을 부가한 확장패킷을 소스 RDBMS(30)로 전송한다. 또한 DELETE 변환 실패시 복구를 위해 레코드 삭제시 Sync-iid 컬럼을 저장하는 트리거(trigger)를 생성한다. 여기서, 트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산집합으로서, 작업의 단위가 된다. 트랙잭션 연산중 롤백(Rollback)은 트랜잭션 중 오류가 발생되어 트랜잭션을 무효로 하기 위해 완료된 데이터베이스 수정사항을 원래상태로 되돌리는 연산이고, 커밋(Commit)은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산이다.
NoSQL 변환 단계(S13)는 트랜잭션의 커밋(Commit) 연산된 데이터가 클라이언트(10)에게 전송완료된 후에 해당 NoSQL 변환을 처리하는 단계로서, RDBMS의 트랜잭션 DML을 해당 INSERT NoSQL Document Store, UPDATE NoSQL Document Store, DELETE NoSQL Document Store 저장 방식으로 변환하는 것이다.
NoSQL 적재 단계(S14)는 NoSQL 변환 단계(S13)에서 변환된 DML NoSQL 데이터를 복제대상 NoSQL DBMS(40)에 적재하는 단계이다.
도 3a 및 도 3b는 도 2에 도시된 준비 단계(S11)의 세부 절차를 도시한 순서도이다. 준비 단계(S11)에서는 기본적으로 동기화 동작하기 위한 초기화 작업을 진행한다. 기본적으로 소스 RDBMS(30)와 복제대상 NoSQL DBMS(40)의 동기화을 위한 초기화 작업 진행한다. 첫번째로, 소스 RDBMS(30)의 메타 정보, 복구 이력을 위한 sync_iid와 sync_uid 컬럼을 추가하고, 두번째로 소스 RDBMS(30)의 트랜잭션을 제어하기 위한 저장소와 자료 구조 생성하며, 세번째로 복제대상 NoSQL DBMS(40)로 적재하기 위한 저장소와 자료 구조를 생성한다.
도 3a 및 도 3b를 참조하면, 동기화 프록시 서버(20)가 복제대상 NoSQL DBMS(40)로부터 데이터베이스 테이블 목록(항목)과 복제 대상 테이블 정보를 가져온다(S101).
이어 동기화 프록시 서버(20)가 가져온 복제대상 정보에 근거하여 소스 RDBMS(30)로부터 RDBMS의 메타정보를 가져와 RDBMS 메타 정보 저장소(RDB-META-MAP)에 저장한다(S102). 통상적으로 메타 정보 저장소(RDB-META-MAP)는 신속히 접근할 수 있도록 해쉬(HASH) 메모리 형태로 저장한다.
그리고 INSERT와 UPDATE 복구를 위해 소스 RDMBS(30)의 복제 대상 테이블마다 Sync_iid와 Sync_uid 컬럼을 추가하고, 디폴트(default) 값을 0으로 설정한다. DELETE 복구를 위해서는 Record 삭제시 Sync-iid 컬럼을 저장하는 트리거(trigger)를 생성한다(S103).
이어, RDBMS 함수, 연산자, 조건 구문을 NoSQL 함수, 연산자, 조건 구문으로 변환하는 NoSQL 변환기(26)를 로드하고, RDBMS 메타 정보를 바탕으로 복제 대상 NoSQL 테이블을 동기화한다(S104,S105).
이어 Mongo DB Document JSON 변환모듈이나 DynamoDB Document JSON 변환 모듈과 같이 복제대상 NoSQL DBMS 종류에 따른 데이터 변환 엔진모듈을 로드하고, RDBMS 트랜잭션 데이터를 저장하기 위한 저장소(RDB-TR-DATA)를 매모리와 디스크에 생성한다(S106,S107).
이어 세션 단위로 트랜잭션을 관리하기 위한 저장소(TR-SESSION-MAP)를 생성하고, 최종적으로 NoSQL 변환된 복제 데이터를 저장하기 위한 NoSQL 복제 데이터 저장소(NoSQL-TR-DATA)를 생성한다(S108,S109).
그리고 RDBMS의 대상 테이블 동기화 정보 저장소(RDB-SYNC-MAP)을 생성한 후 RDBMS의 대상 테이블의 마지막 동기화 정보(sync_id)를 가져와 동기화 정보 저장소(RDB-SYNC-MAP)에 저장한다. 없을 경우 'KEY = TABLE명 + sync_id'로 키값을 생성한다(S110).
이어 트랜잭션 제어기(24), NoSQL 변환기(26), NoSQL 적재기(28) 등을 생성 및 시작한다(S111).
도 4a 및 4b는 도 2에 도시된 트랜잭션 제어 단계(S12)의 세부 절차를 도시한 순서도이다. 트랜잭션 제어 단계(S12)는 동기화 프록시 서버(20)가 네트워크에서 패킷을 수신하여 분석한 후 소스 RDBMS(30)의 트랜잭션을 내부적으로 관리하고 처리하는 것이며, NoSQL 데이터 변환 실패 처리를 위해 INSERT, UPDATE DML 패킷을 변경하여 소스 RDBMS(30)으로 전송한다.
도 4a 및 도 4b를 참조하면, 동기화 프록시 서버(20)가 네트워크로부터 프록시 모드로 RDBMS(30)의 패킷을 수집하고, 수집된 패킷을 분석한다(S201,S202).
분석결과, 신규 세션인가를 판단하여 신규 세션이면 세션키를 생성하여 세션 단위 트랜잭션 관리 데이터 저장소(TR-SESSION-MAP)에 저장한 후, 프록시 서버 모드로 수집된 패킷을 소스 RDBMS(30)로 전송한다(S203~S205).
신규 세션이 아니면, 데이터 조작 언어(DML)인지를 판단하여 DML이 아니면 부분 롤백(Roll Back)인지를 판단하여 부분 롤백(Roll Back)이면 RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)의 해당 위치에 롤백 마킹을 처리한 후, 프록시 서버 모드로 수집된 패킷을 소스 RDBMS(30)로 전송한다(S206~S208).
부분 롤백이 아니면 커밋(COMMIT)인지를 판단하여 커밋(COMMIT)이면 부분 롤백이 있는 경우 해당 롤백 데이터를 RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)에서 삭제 처리한 후, NoSQL 변환기(26)에 세션키와 RDB-TR-DATA 참조값을 포함하는 처리신호를 전송하고, 세션 단위 트랜잭션 관리 데이터 저장소(TR-SESSION-MAP)에서 RDB-TR-DATA 참조값을 삭제한 후 프록시 서버 모드로 수집된 패킷을 소스 RDBMS(30)로 전송한다(S209~S212).
커밋(COMMIT)인지를 판단하여 커밋(COMMIT)이 아니면, 롤백(Roll Back)인지를 판단하여 롤백(Roll Back)이면 해당 세션의 RDBMS 트랜잭션 데이터 자장소(RDB-TR-DATA)의 모든 데이터를 삭제하고, 세션 단위 트랜잭션 관리 데이터 저장소(TR-SESSION-MAP)에서 RDB-TR-DATA 참조값을 삭제한 후 프록시 서버 모드로 수집된 패킷을 소스 RDBMS(30)로 전송한다(S213~S215).
한편, 데이터 조작 언어(DML)인지를 판단하는 단계(S206)에서 DML이면, 도 4b에 도시된 바와 같이, INSERT인지를 판단하여 INSERT이면, 수신 패킷에 Sync_iid 컬럼을 추가하고, 값에 Table.sync_iid를 추가한 확장패킷으로 변경한다(S216,S217).
INSERT가 아니면 UPDATE인지를 판단하여 UPDATE이면, 수신 패킷에 Sync_uid 컬럼을 추가하고, 값(VALUE)에 Table.sync_uid를 추가한 확장패킷으로 변경한다(S218,S219).
UPDATE가 아니거나 수신 패킷을 확장패킷으로 변경한 후, DML에 따른 Table.sync-iid 또는 Table.sync_uid 값을 1 증가시킨다(S220).
이어, RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)가 할당되었는지를 판단하여 RDB-TR-DATA가 할당되어 있지 않으면 RDB-TR-DATA 영역의 저장소를 할당받고, 세션 단위 트랜잭션 관리 데이터 저장소(TR-SESSION-MAP)에 RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)의 할당 영역에 접근할 참조값(인덱스)을 생성한다(S221,S222).
그리고 RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)의 할당 데이터 영역에 해당 DML 데이터와 DML 타입에 따른 Sync_iid 또는 Sync_uid값을 함께 저장한 후 변경된 확장패킷을 소스 RDBMS(30)로 전송한다(S223).
도 5는 도 2에 도시된 NoSQL 변환 단계의 세부 절차를 도시한 순서도이고, 도 6은 도 5에 도시된 INSERT NoSQL 변환 절차를 도시한 순서도이며, 도 7은 도 5에 도시된 UPDATE NoSQL 변환 절차를 도시한 순서도이고, 도 8은 도 5에 도시된 DELETE NoSQL 변환 절차를 도시한 순서도이며, 도 9는 도 5에 도시된 변환 실패 처리 절차를 도시한 순서도이다. NoSQL 변환 단계(S13)는 소스 RDBMS(30)에서 해당 트랜잭션 데이터 처리가 커밋(COMMIT)된 데이터가 클라이언트에게 전송 완료된 후 NoSQL 변환기(26)에 의해 수행된다. 변환 처리는 크게 INSERT, UPDATE, DELETE RDBMS 데이터를 INSERT, UPDATE, DELETE NoSQL Document store 형식으로 변환하는 것이다.
도 5를 참조하면, NoSQL 변환기(26)는 트랜잭션 제어기(24)로부터 변환 처리신호를 대기하다가 트랜잭션 데이터 처리신호가 수신되면, RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)에서 해당 트랜잭션 데이터를 하나씩 읽어 온다(S301,S302).
읽어온 트랜잭션 데이터가 INSERT이면 NoSQL INSERT 문장 변환기를 불러와 도 6에 도시된 바와 같이 INSERT NoSQL 변환 절차를 수행하고, 변환된 RDBMS의 ROW 데이터의 Sync-iid 값을 Table.commit_iid값으로 갱신한다(S305~S307).
도 6을 참조하면, NoSQL INSERT 문장 변환기는 Sync_iid가 commit_iid 보다 작은 경우에는 이미 처리된 데이터이므로 리턴하고, Sync_iid가 commit_iid 보다 클 경우 SQL 파싱 및 분석하여 SQL 구문 트리를 생성한다(S401,S402). 이어 테이블 정보 추출하고, View 테이블이면 실제 테이블 명을 사용한다(S403). 소스 RDBMS 메타 정보 저장소(RDB-META-MAP)에서 해당 테이블의 메타 정보를 가져온다(S404).
이어 파싱 분석과 메타 정보 등으로부터 해당 SQL 문장(함수, 프로시저, View)을 NoSQL Document로 변환 가능한지를 검사하여 변환 가능하면, INSERT 쿼리(Query)에서 메타 정보를 추출한다(S405,S406).
이어 INSERT 퀴리(Query)나 바인드(Bind) 형식에서 데이터를 추출하고, 추출된 메타 정보와 추출된 데이터를 바탕으로 복제대상 NoSQL DBMS 저장 형태의 Document 데이터를 생성한다(S407,S408). 예컨대, 복제대상 NoSQL DBMS(40)가 Mongo DB이면 추출된 메타 정보와 추출된 데이터를 Mongo DB Documnet 데이터로 생성하고, 복제대상 NoSQL DBMS(40)가 Dynamo DB이면 추출된 메타 정보와 추출된 데이터를 Dynamo DB Documnet 데이터로 생성한다.
그리고 생성된 NoSQL Document 데이터를 세션 키값으로 NoSQL 복제 데이터 저장소(NoSQL-TR-DATA)에 저장한다(S409).
한편, 해당 SQL 문장(함수, 프로시저, View)을 NoSQL Document로 변환할 수 없으면, 변환 실패 처리기를 호출하여 table, insert, Sync-iid와 같은 인자를 전달하고, 변환 실패 처리기는 도 9에 도시된 바와 같이 변환 실패 처리절차를 수행한다(S410).
다시 도 5를 참조하면, 읽어온 트랜잭션 데이터가 UPDATE이면, NoSQL UPDATE 문장 변환기를 불러와 도 7에 도시된 바와 같이 UPDATE NoSQL 변환 절차를 수행하고, 변환된 RDBMS의 ROW 데이터의 Sync-uid 값을 Table.commit_uid값으로 갱신한다(S308~S310).
도 7을 참조하면, NoSQL UPDATE 문장 변환기는 Sync_uid가 commit_uid 보다 작은 경우에는 이미 처리된 데이터이므로 리턴하고, Sync_uid가 commit_uid 보다 클 경우 SQL 파싱 및 분석하여 SQL 구문 트리를 생성한다(S501,S502). 이어 테이블 정보 추출하고, View 테이블이면 실제 테이블 명을 사용한다(S503). RDBMS 메타 정보 저장소(RDB-META-MAP)에서 해당 테이블의 메타 정보를 가져온다(S504).
이어 파싱 분석과 메타 정보 등으로부터 해당 SQL 문장(함수, 프로시저, View)을 NoSQL Document로 변환 가능한지를 검사하여 변환 가능하면, SET절과 WHERE 절에서 메타 정보를 추출한다(S505,S506).
이어 UPDATE 퀴리(Query)나 바인드(Bind) 형식에서 데이터를 추출하고, 추출된 메타 정보와 추출된 데이터를 바탕으로 복제대상 NoSQL DBMS 저장형태의 Document 데이터를 생성한다(S507,S508). 예컨대, 복제대상 NoSQL DBMS(40)가 Mongo DB이면 추출된 메타 정보와 추출된 데이터를 Mongo DB Documnet 데이터로 생성하고, 복제대상 NoSQL DBMS(40)가 Dynamo DB이면 추출된 메타 정보와 추출된 데이터를 Dynamo DB Documnet 데이터로 생성한다.
그리고 세션 키값으로 NoSQL 복제 데이터 저장소(NoSQL-TR-DATA)에 생성된 NoSQL Document 데이터를 저장한다(S509).
한편, 해당 SQL 문장(함수, 프로시저, View)을 NoSQL Document로 변환할 수 없으면, 변환 실패 처리기를 호출하여 table, update, Sync-uid와 같은 인자를 전달하고, 변환 실패 처리기는 도 9에 도시된 바와 같이 변환 실패 처리절차를 수행한다(S510).
다시 도 5를 참조하면, 읽어온 트랜잭션 데이터가 DELETE이면, NoSQL DELETE 문장 변환기를 불러와 도 8에 도시된 바와 같이 DELETE NoSQL 변환 절차를 수행한다(S311,S312). 그리고 읽어온 트랜잭션 데이터가 마지막(End)이면, NoSQL 적재기(28)에 적재 신호를 보낸다(S303,S304).
도 8을 참조하면, NoSQL DELETE 문장 변환기는 SQL 파싱 및 분석하여 SQL 구문 트리를 생성한다(S601). 이때, Sync_iid가 commit_iid 보다 작은 경우에는 이미 처리된 데이터이므로 리턴하고, Sync_iid가 commit_iid 보다 클 경우에만 수행하는 것이 바람직하다. 즉, DELETE 문장은 레코드 삭제시 Sync-iid 컬럼을 저장하는 트리거(trigger)를 생성하므로 Sync_iid를 이용할 수 있다.
이어 테이블 정보 추출하고, View 테이블이면 실제 테이블 명을 사용한다(S602). 소스 RDBMS 메타 정보 저장소(RDB-META-MAP)에서 해당 테이블의 메타 정보를 가져온다(S603).
이어 파싱 분석 결과와 테이블의 메타 정보 등을 이용하여 해당 SQL 문장(함수, 프로시저, View)을 NoSQL Document로 변환 가능한지를 검사하여 변환 가능하면, WHERE 절에서 메타 정보를 추출한다. WHERE 절이 없는 경우에는 전체 데이터 삭제로 처리한다(S604~S606).
이어 추출된 메타 정보를 바탕으로 복제대상 NoSQL DBMS 저장 형태의 Document 데이터를 생성한다(S607). 예컨대, 복제대상 NoSQL DBMS(40)가 Mongo DB이면 추출된 메타 정보를 Mongo DB Documnet 데이터로 생성하고, 복제대상 NoSQL DBMS(40)가 Dynamo DB이면 추출된 메타 정보를 Dynamo DB Documnet 데이터로 생성한다.
그리고 세션 키값으로 NoSQL 복제 데이터 저장소(NoSQL-TR-DATA)에 생성된 NoSQL Document 데이터를 저장한다(S608).
한편, 해당 SQL 문장(함수, 프로시저, View)을 NoSQL Document로 변환할 수 없으면, 변환 실패 처리기를 호출하여 table, delete와 같은 인자를 전달하고, 변환 실패 처리기는 도 9에 도시된 바와 같이 변환 실패 처리절차를 수행한다(S609).
도 9를 참조하면, 변환 실패 처리기는 INSERT, UPDATE, DELETE 변환 실패시 소스 RDBMS(30)에서 해당 복구 데이터를 가져와 동기화 한다.
변환 실패 처리기는 변환 실패 DML 절차로부터 NoSQL-TR-DATA 세션키, table 명, DML type, sync_id(sync_iid/uid) 등과 같은 인자를 수신한다(S701).
수신된 인자가 DML INSERT이면, 복구 Sync_iid 값(복구범위)을 계산한 후 복구범위에 해당하는 소스 RDBMS의 해당 테이블의 Sync_iid가 복구 Sync_iid보다 작은 데이터를 모두 가져온다(S702~S704).
이어 테이블의 메타 정보와 소스 RDBMS(30)에서 가져온 데이터를 바탕으로 INSERT 형식의 NoSQL Document 데이터를 생성하고, NoSQL 복제 데이터 저장소(NoSQL-TR-DATA)에 세션 키값으로 생성된 NoSQL Document 데이터를 저장한다(S705).
수신된 인자가 DML UPDATE이면, 복구 Sync_uid 범위값을 계산하고, 소스 DBMS(30)의 해당 테이블에서 Sync_uid가 복구 Sync_uid 보다 작은 데이터를 모두 가져온다(S706~S708).
이어 테이블의 메타 정보와 소스 RDBMS(30)에서 가져온 데이터를 바탕으로 UPDATE 형식의 NoSQL Document 데이터를 생성한다(S709). 이때 갱신조건은 프라이머리 키(PK)를 사용하는 것이 바람직하다.
그리고 NoSQL 복제 데이터 저장소(NoSQL-TR-DATA)에 세션 키값으로 생성된 NoSQL Document 데이터를 저장한다(S713).
수신된 인자가 DML DELETE 이면, 소스 RDBMS(30)의 해당 테이블의 트리거 테이블에서 삭제된 정보(Sync_iid) 목록을 가져온다(S710,S711).
이어 테이블의 메타 정보와 소스 RDBMS(30)에서 가져온 데이터를 바탕으로 DELETE 형식의 NoSQL Document 데이터를 생성한다(S712). 이때 삭제 조건은 트리거 테이블의 Sync_iid를 사용한다.
그리고 NoSQL 복제 데이터 저장소(NoSQL-TR-DATA)에 세션 키값으로 생성된 NoSQL Document 데이터를 저장한다(S713).
도 10은 도 2에 도시된 NoSQL 적재 단계의 세부 절차를 도시한 순서도이다.
도 10을 참조하면, NoSQL 적재기(28)는 NOSQL 적재신호가 수신되면, 복제대상 NoSQL DBMS(40)에 접속한다(S801,S802).
NoSQL 복제 데이터 저장소(NoSQL-TR-DATA)에서 세션 키와 트랜잭션 키의 조합에 해당하는 Document 데이터를 하나씩 순차적으로 읽어 온다(S803).
읽어온 데이터가 있으면 읽어온 데이터를 해당 NoSQL DBMS(40)에 적재하고, 모든 데이터를 읽어와 더 이상 읽어올 데이터가 없으면 해당 NoSQL 복제 데이터 저장소(NoSQL-TR-DATA)에 저장된 Document 데이터를 삭제한다(S804~S806).
도 11은 본 발명의 실시예에 따라 소스 RDBMS가 NoSQL Document로 변환된 예이다. 도 11을 참조하면, RDBMS의 INSERT와 UPDATE 문장이 트랜잭션 제어를 통해 NoSQL Document 형식으로 변환된 것을 알 수 있다.
이상에서 본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
10: RDBMS DML 발생 클라이언트 20: 동기화 프록시 서버
22: 준비모듈 24: 트랜잭션 제어기
26: NoSQL 변환기 28: NoSQL 적재기
30: 소스 RDBMS 40: 복제대상 NoSQL DBMS

Claims (5)

  1. 동기화 프록시 서버가 RDBMS의 트랜잭션 DML 데이터를 NoSQL DBMS로 동기화하는 방법에 있어서,
    상기 동기화 프록시 서버가 RDBMS의 메타정보, 복구이력을 위한 Sync_iid와 Sync_uid 컬럼을 추가하고, 트랜잭션을 제어하기 위한 저장소와 자료구조를 생성하며, NoSQL DBMS로 적재하기 위한 저장소와 자료구조를 생성하여 동기화 동작의 초기화 작업을 수행하는 준비 단계;
    상기 동기화 프록시 서버가 네트워크에서 패킷을 수신하여 분석한 후, NoSQL 데이터 변환 실패 처리를 위해 INSERT, UPDATE의 DML을 변경하여 RDBMS의 트랜잭션을 내부적으로 관리하고 처리하는 트랜잭션 제어 단계;
    상기 동기화 프록시 서버가 트랜잭션의 커밋(Commit) 연산된 데이터가 클라이언트에게 전송완료된 후에 해당 NoSQL 변환을 처리하는 NoSQL 변환 단계; 및
    상기 NoSQL 변환 단계에서 변환된 DML NoSQL 데이터를 복제 NoSQL DBMS에 적재하는 NoSQL 적재 단계를 포함하는 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법.
  2. 제1항에 있어서, 상기 준비 단계는
    소스 RDBMS의 메타 정보, 복구 이력을 위한 Sync_iid와 Sync_uid 컬럼을 추가하는 단계와, RDBMS의 트랜잭션을 제어하기 위한 저장소와 자료 구조 생성하는 단계와, NoSQL DBMS로 적재하기 위한 저장소와 자료 구조를 생성하는 단계를 포함하는 것을 특징으로 하는 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법.
  3. 제1항에 있어서, 상기 트랜잭션 제어 단계는
    동기화 프록시 서버가 네트워크로부터 RDBMS의 패킷을 수집하여 분석하는 단계와,
    신규 세션이면, 세션키를 생성하여 세션 단위 트랜잭션 관리 데이터 저장소(TR-SESSION-MAP)에 저장하는 단계와,
    신규 세션이 아니면, 데이터 조작 언어(DML)인지를 판단하여 데이터 조작 언어(DML)가 아니면 부분 롤백(Roll Back)이나 커밋(COMMIT) 혹은 롤백(Roll Back)을 처리하는 단계와,
    INSERT 데이터 조작 언어(DML)이면 수신 패킷에 Sync_iid 컬럼을 추가하고, 값(VALUE)에 Table.sync_iid를 추가한 확장패킷으로 변경하는 단계와,
    UPDATE 데이터 조작 언어(DML)이면, 수신 패킷에 Sync_uid 컬럼을 추가하고, 값(VALUE)에 Table.sync_uid를 추가한 확장패킷으로 변경하는 단계와,
    RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)가 할당되어 있지 않으면 RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)의 영역을 할당하고, 세션 단위 트랜잭션 관리 데이터 저장소(TR-SESSION-MAP)에 RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)의 할당 영역에 접근할 참조값을 생성하는 단계와,
    RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)의 할당 영역에 해당 DML 데이터와 DML 타입에 따른 Sync_iid 또는 Sync_uid값을 함께 저장한 후 확장패킷을 소스 RDBMS로 전송하는 단계를 포함하는 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법.
  4. 제1항에 있어서, 상기 NoSQL 변환 단계는
    트랜잭션 제어기로부터 트랜잭션 데이터 처리신호가 수신되면, RDBMS 트랜잭션 데이터 저장소(RDB-TR-DATA)에서 해당 트랜잭션 데이터를 하나씩 읽어 오는 단계와,
    읽어온 트랜잭션 데이터가 INSERT이면, NoSQL INSERT 문장 변환기를 불러와 INSERT NoSQL 변환 절차를 수행하고, 변환된 소스 RDBMS의 ROW 데이터의 Sync-iid 값을 Table.commit_iid값으로 갱신하는 단계와,
    읽어온 트랜잭션 데이터가 UPDATE이면, NoSQL UPDATE 문장 변환기를 불러와 UPDATE NoSQL 변환 절차를 수행하고, 변환된 소스 RDBMS의 ROW 데이터의 Sync-uid 값을 Table.commit_uid값으로 갱신하는 단계와,
    읽어온 트랜잭션 데이터가 DELETE이면, NoSQL DELETE 문장 변환기를 불러와 DELETE NoSQL 변환 절차를 수행하는 단계를 포함하는 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법.
  5. 제4항에 있어서, 상기 NoSQL 변환 단계는
    읽어온 트랜잭션 데이터가 마지막(End)이면, NoSQL 적재기에 적재 신호를 전송하는 단계를 더 포함하는 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법.
KR1020190009227A 2019-01-24 2019-01-24 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법 Active KR102174957B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190009227A KR102174957B1 (ko) 2019-01-24 2019-01-24 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190009227A KR102174957B1 (ko) 2019-01-24 2019-01-24 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법

Publications (2)

Publication Number Publication Date
KR20200092095A true KR20200092095A (ko) 2020-08-03
KR102174957B1 KR102174957B1 (ko) 2020-11-05

Family

ID=72042972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190009227A Active KR102174957B1 (ko) 2019-01-24 2019-01-24 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법

Country Status (1)

Country Link
KR (1) KR102174957B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210110123A (ko) * 2020-02-28 2021-09-07 (주)시즐 관계형 데이터베이스 구조를 이용한 비관계형 데이터베이스 장치 및 데이터 정형화 방법
CN115391457A (zh) * 2022-08-23 2022-11-25 昆仑数智科技有限责任公司 跨数据库的数据同步方法、装置及存储介质
CN116303789A (zh) * 2023-03-21 2023-06-23 天津南大通用数据技术股份有限公司 多分片多副本数据库并行同步方法、装置及可读介质
CN116644086A (zh) * 2023-05-24 2023-08-25 上海沄熹科技有限公司 一种基于SST的Insert SQL语句实现方法
CN117349371A (zh) * 2023-09-15 2024-01-05 武汉达梦数据库股份有限公司 一种静态修改数据同步分组的方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220099380A (ko) 2021-01-06 2022-07-13 주식회사 에비드넷 순서도의 데이터베이스 구축 방법 및 그 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140488A (ja) * 2012-01-04 2013-07-18 Hitachi Ltd システム性能解析装置、システム性能解析方法、およびシステム性能解析プログラム
KR101672724B1 (ko) * 2015-05-08 2016-11-04 주식회사 엘지유플러스 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법
KR20170075092A (ko) * 2015-12-22 2017-07-03 주식회사 와이즈넛 분산파일시스템 기반 NoSQL 데이터베이스의 데이터 안정성을 향상시키기 위한 트랜잭션 관리방법
KR101917806B1 (ko) * 2017-12-22 2018-11-12 주식회사 웨어밸리 Sql 패킷분석을 통한 이기종 데이터베이스의 데이터 복제 및 동기화 오류 탐지 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140488A (ja) * 2012-01-04 2013-07-18 Hitachi Ltd システム性能解析装置、システム性能解析方法、およびシステム性能解析プログラム
KR101672724B1 (ko) * 2015-05-08 2016-11-04 주식회사 엘지유플러스 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법
KR20170075092A (ko) * 2015-12-22 2017-07-03 주식회사 와이즈넛 분산파일시스템 기반 NoSQL 데이터베이스의 데이터 안정성을 향상시키기 위한 트랜잭션 관리방법
KR101917806B1 (ko) * 2017-12-22 2018-11-12 주식회사 웨어밸리 Sql 패킷분석을 통한 이기종 데이터베이스의 데이터 복제 및 동기화 오류 탐지 방법 및 시스템

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210110123A (ko) * 2020-02-28 2021-09-07 (주)시즐 관계형 데이터베이스 구조를 이용한 비관계형 데이터베이스 장치 및 데이터 정형화 방법
CN115391457A (zh) * 2022-08-23 2022-11-25 昆仑数智科技有限责任公司 跨数据库的数据同步方法、装置及存储介质
CN115391457B (zh) * 2022-08-23 2023-09-12 昆仑数智科技有限责任公司 跨数据库的数据同步方法、装置及存储介质
CN116303789A (zh) * 2023-03-21 2023-06-23 天津南大通用数据技术股份有限公司 多分片多副本数据库并行同步方法、装置及可读介质
CN116644086A (zh) * 2023-05-24 2023-08-25 上海沄熹科技有限公司 一种基于SST的Insert SQL语句实现方法
CN116644086B (zh) * 2023-05-24 2024-02-20 上海沄熹科技有限公司 一种基于SST的Insert SQL语句实现方法
CN117349371A (zh) * 2023-09-15 2024-01-05 武汉达梦数据库股份有限公司 一种静态修改数据同步分组的方法和装置

Also Published As

Publication number Publication date
KR102174957B1 (ko) 2020-11-05

Similar Documents

Publication Publication Date Title
KR102174957B1 (ko) 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법
US11263236B2 (en) Real-time cross-system database replication for hybrid-cloud elastic scaling and high-performance data virtualization
CN111797121B (zh) 读写分离架构业务系统的强一致性查询方法、装置及系统
US20090012932A1 (en) Method and System For Data Storage And Management
CN109144994B (zh) 索引更新方法、系统及相关装置
US9009116B2 (en) Systems and methods for synchronizing data in a cache and database
US10191932B2 (en) Dependency-aware transaction batching for data replication
US6622152B1 (en) Remote log based replication solution
US8117153B2 (en) Systems and methods for a distributed cache
US8892509B2 (en) Systems and methods for a distributed in-memory database
US7421443B2 (en) Filestream data storage attribute
EP1840766A2 (en) Systems and methods for a distributed in-memory database and distributed cache
EP2380090B1 (en) Data integrity in a database environment through background synchronization
CN111984696A (zh) 一种新型数据库和方法
EP3532945A1 (en) Facilitating operations on pluggable databases using separate logical timestamp services
WO2022127866A1 (zh) 数据处理方法、装置、电子设备、存储介质
EP4418138A1 (en) Data processing method and apparatus, and electronic device, storage medium and program product
US20230376485A1 (en) Distributed query plan generation
JP2017534986A (ja) オンライン・スキームおよびデーター変換
US20180150544A1 (en) Synchronized updates across multiple database partitions
WO2024027459A1 (zh) 一种分布式数据库中创建全局二级索引的方法及装置
CN116578395B (zh) 事务处理方法、系统、装置、电子设备及存储介质
EP4141686B1 (en) Using self-maintaining structure information for faster data access
US12197460B2 (en) Transport of master data dependent customizations
JP4137366B2 (ja) データベース管理方法及びデータベース管理装置

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 6