KR20190063835A - 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템 - Google Patents

인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템 Download PDF

Info

Publication number
KR20190063835A
KR20190063835A KR1020170162901A KR20170162901A KR20190063835A KR 20190063835 A KR20190063835 A KR 20190063835A KR 1020170162901 A KR1020170162901 A KR 1020170162901A KR 20170162901 A KR20170162901 A KR 20170162901A KR 20190063835 A KR20190063835 A KR 20190063835A
Authority
KR
South Korea
Prior art keywords
data
change
log file
metadata
log
Prior art date
Application number
KR1020170162901A
Other languages
English (en)
Other versions
KR102038529B1 (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 KR1020170162901A priority Critical patent/KR102038529B1/ko
Publication of KR20190063835A publication Critical patent/KR20190063835A/ko
Application granted granted Critical
Publication of KR102038529B1 publication Critical patent/KR102038529B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3086Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Abstract

본 발명은 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 관한 것으로서, 인-메모리 데이터베이스 내에서 변경된 데이터를 관리하기 위한 변경 데이터 캡쳐(Changed Data Capture, CDC) 기능을 제공하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 있어서, 상기 CDC 기능을 제공하기 위한 시스템 테이블 형태의 메타데이터를 관리하고, CDC 설정 기능 및 재구동시 이전 정보에 대한 복원 기능을 제공하는 메타데이터 매니저; 및 데이터베이스 값의 변경시 데이터베이스가 기록한 로그 파일을 이용하여 변경된 데이터를 확인한 후 상기 변경된 데이터에 따라 삽입/업데이트/삭제 트랜잭션을 결정하여 변경 테이블에 기록하고, 상기 변경된 데이터의 접근을 위한 구독 뷰를 생성하여 사용자에게 제공하는 로그캡쳐 매니저를 포함한다. 따라서, 본 발명은 인-메모리 데이터베이스에서 별도의 처리 없이 기존에 기록하던 로그 파일을 읽어 변경된 데이터를 동적으로 확인할 수 있고, 타 응용 프로그램에서 쉽게 변경된 데이터를 관리할 수 있도록 메타데이터 및 관련 프로시저들을 지원함으로써 데이터 동기화 도구 및 ETL 툴들이 기존의 트리거 방식에 비해 인-메모리 데이터베이스의 부하를 상당히 감소시키면서 변경된 데이터를 활용할 수 있으며, 전체적으로 시스템 성능 향상 및 변경된 데이터의 관리를 용이하게 수행할 수 있어 전체 시스템 개발 비용이 감소될 수 있다.

Description

인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템{SYSTEM FOR PROCESSING REAL-TIME DATA MODIFICATION OF IN-MEMORY DATABASE}
본 발명은 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 관한 것으로, 보다 상세하게는 인-메모리 데이터베이스에서 타 응용 프로그램에 의해 변경된 데이터를 효율적으로 확인 및 관리할 수 있는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 관한 것이다.
대용량 데이터 실시간 처리에 대한 요구사항이 증가하면서 더욱 빠른 속도의 데이터 연산뿐만 아니라 다량의 데이터에 대한 입출력에 대한 요구사항이 증가함에 따라, 기존 디스크 기반의 방식에서 벗어나 로우레이턴시(Low Latency)를 강조하는 인메모리 DBMS의 수요가 증가하고 있다.
시스템간 데이터 레이턴시(Data Latency)를 최소화하기 위하여 CDC 활용도가 급증하였으며, 데이터 동기화 성능을 개선하기 위해 타임스탬프 방식에서 아카이브 로그를 기반으로 하는 기법으로 변경되고 있고, 트랜잭션발생 이후 데이터 분석까지의 시간을 줄이기 위하여 데이터 동기화 시간을 단축하는 것이 필요하며, 기존 DBMS 정보들의 처리뿐만 아니라 비정형 데이터에 대해 처리 요구사항이 발생하고 있다.
이와 같이, IT 환경이 복잡해지고 여러 시스템의 데이터 통합 요구가 증가함에 따라 여러 DB에 있는 데이터를 실시간으로 동기화하려는 변경데이터관리(Change Data Capture, 이하 CDC))에 대한 요구가 커지고 있다.
여기서, CDC(Change Data Capture)는 데이터베이스 내 데이터에 대한 변경을 식별해 필요한 후속 처리(데이터 전송/공유 등)를 자동화하는 기술 또는 설계 기법이자 구조다. CDC는 실시간 또는 근접 실시간 데이터 통합을 기반으로 하는 데이터 웨어하우스 및 기타 데이터 저장소 구축에 폭 넓게 활용된다.
CDC는 스토리지 하드웨어 계층에서부터 애플리케이션 계층에 이르기까지 다양한 계층에서 다양한 기술을 통해 구현될 수 있다.
종래에 인-메모리 DBMS에서 데이터 변경을 확인하기 위해서는 DBMS의 트리거 기능을 이용하여 변경된 데이터를 확인하였다. 인-메모리 DBMS에서 매번 트리거 기능을 이용하여 변경된 데이터를 확인하기 때문에 대용량의 데이터를 처리하는 경우에 DBMS 자체에 대한 부하 부담이 가해져 DBMS의 삽입/삭제/업데이트 연산 등의 전체적인 성능 저하가 발생될 수 있는 문제점이 있다. 그로 인해, 해당 DBMS를 이용하는 타 응용 프로그램의 성능에 역시 영향을 주어 전체적인 시스템의 성능을 저하시키고, 타 응용 프로그램에서 변경된 데이터를 관리해야 하는 어려움이 있어 사용이 쉽지 않은 문제점이 있다.
선행 기술로서, 한국등록특허 제10-1605455호는 데이터베이스에 운영중에 발생하는 트랜잭션에 의해 생성되는 리두 로그를 원격지로 실시간 송신하여 이중화(Replication)함으로써, 데이터베이스 시스템 운영중에 발생할 수 있는 비정상 운영 및 비정상 종료 등의 장애에 실시간 사전 대비할 수 있고, 데이터의 변경사항이 기록된 로그만을 전송하여 네트워크부하 및 복제부하를 최소화하는 방법 및 시스템을 기술하고 있다.
상기한 데이터베이스 리두 로그 이중화 기술은 네트워크를 이용하기 때문에 데이터 충돌 및 지연의 문제가 발생할 수 있다. 즉, 데이터베이스 리두 로그 이중화 기술은 디스크공유 방식과는 다르게 로컬트랜잭션의 발생 시 다른 노드의 데이터에 대한 변경을 고려하지 않기 때문에 서로 간섭이 발생하지 않지만 이로 인해 데이터가 서로 다르게 존재할 수 있는 데이터의 충돌(Conflict)현상이 발생하게 되는 문제점이 있다.
또한, 데이터베이스 리두 로그 이중화 기술은 상대편 노드로의 전송 속도보다 송신노드의 변경 트랜잭션 로그의 누적속도가 빠를 경우, 특정시점에 송신노드와 수신노드에서의 데이터의 조회결과가 다를 수 있다는 문제점이 있다. 즉, 미처 네트워크를 통해 상대편 노드로 전송하지 못한 트랜잭션 로그가 송신노드에 누적되어 있는 경우를 의미하며 이를 이중화의 갭(Gap)이라고 부른다.
한국등록특허 제10-1605455호 " 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템 "
본 발명은 인-메모리 데이터베이스에서 변경된 데이터를 로그 파일로부터 동적으로 확인하여 변경 테이블에 기록할 수 있도록 CDC 처리 기술을 제공하고, 데이터 변경 확인에 의한 데이터 베이스의 부하를 줄이고, 타 응용 프로그램에서 쉽게 변경된 데이터를 관리할 수 있도록 메타데이터 및 관련 프러시저들을 지원하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템을 제공한다.
실시예들 중에서, 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은, 인-메모리 데이터베이스 내에서 변경된 데이터를 관리하기 위한 변경 데이터 캡쳐(Changed Data Capture, CDC) 기능을 제공하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 있어서, 상기 CDC 기능을 제공하기 위한 시스템 테이블 형태의 메타데이터를 관리하고, CDC 설정 기능 및 재구동시 이전 정보에 대한 복원 기능을 제공하는 메타데이터 매니저; 및 데이터베이스 값의 변경시 데이터베이스가 기록한 로그 파일을 이용하여 변경된 데이터를 확인한 후 상기 변경된 데이터에 따라 삽입/업데이트/삭제 트랜잭션을 결정하여 변경 테이블에 기록하고, 상기 변경된 데이터의 접근을 위한 구독 뷰를 생성하여 사용자에게 제공하는 로그캡쳐 매니저를 포함하는 것을 특징으로 한다.
상기 메타데이터 매니저는, 상기 CDC 기능 수행시 적어도 하나 이상의 변경 테이블을 생성하고, 상기 변경 테이블을 관리하는 변경 세트(Change Set)에 대한 정보를 저장 및 관리하는 변경 세트 메타데이터; 상기 변경 테이블에 대한 정보를 저장 및 관리하는 변경 테이블 메타데이터; 상기 CDC 서비스 수행중인 소스 테이블의 정보, 연관된 변경 테이블의 정보를 저장 및 관리하는 소스 테이블 메타데이터; 상기 변경된 데이터에 대한 정보를 칼럼(column) 단위로 저장 및 관리하는 발간 컬럼 메타데이터; 상기 CDC에서 이용하는 구독 객체에 대한 정보를 저장하는 구독 메타데이터; 상기 구독 및 구독 뷰의 정보, 상기 변경된 데이터의 관리 번호를 저장 및 관리하는 구독 테이블 메타데이터; 및 상기 CDC 기능을 통해 실시간 데이터 변경을 확인하는 컬럼에 대한 정보를 저장 및 관리하는 구독 컬럼 메타데이터를 포함하는 것을 특징으로 한다.
상기 구독 메타데이터의 구독 개체는 데이터의 변경 확인을 수행하는 쓰레드를 생성하고, 구독 상태에 따라 데이터의 변경을 확인하여 상기 변경 테이블에 값을 삽입하는 것을 특징으로 한다.
사용자가 변경된 데이터를 확인하기 위해 상기 변경 테이블에서 구독 뷰에 데이터를 투영시키는 연장(Extend) 프로시저와 상기 변경 테이블에 있는 데이터를 삭제하는 소거(Purge) 프로시저 중 어느 하나의 프로시저를 호출하고, 상기 호출된 프로시저에 따라 데이터베이스에서 관리 번호의 값을 결정하는 것을 특징으로 한다.
상기 로그캡쳐 매니저는, 상기 CDC 처리를 위해 신규 값에 대해 삽입 또는 업데이트시 기록되는 제1 로그 파일과 기존의 값에 대해 삭제 또는 업데이트시 기록되는 제2 로그 파일을 이용하여 변경된 데이터를 확인하는 것을 특징으로 한다.
상기 로그캡쳐 매니저는, 상기 로그 파일을 순차적으로 읽으면서 상기 제1 로그 파일의 후행하는 로그 파일에 제2 로그 파일이 없는 경우에 해당 트랜잭션을 삽입 트랜잭션으로 판단한 후 변경 테이블에 삽입하는 것을 특징으로 한다.
상기 로그캡쳐 매니저는, 상기 로그파일을 순차적으로 읽으면서 상기 제2 로그 파일이 존재하고, 상기 제2 로그 파일의 후행하는 로그 파일이 제1 로그 파일인 경우에 상기 제1 로그 파일에 저장된 서브타입(subtype)에 따라 트랜잭션의 타입을 결정하는 것을 특징으로 한다.
상기 로그캡쳐 매니저는 상기 제1 로그 파일에 저장된 서브타입이 업데이트인 경우에 업데이트 트랜잭션으로 판단한 후에 상기 제2 로그 파일에 기록된 정보는 업데이트 조건에 해당하는 값이고, 상기 제1 로그 파일에 기록된 정보는 업데이트된 신규 값으로 변경 테이블에 삽입하는 것을 특징으로 한다.
상기 로그캡쳐 매니저는 상기 제1 로그 파일에 저장된 서브타입이 삭제인 경우에 삭제 트랜잭션으로 판단한 후에 상기 변경 테이블에서 삭제하는 것을 특징으로 한다.
상기 로그캡쳐 매니저는,
상기 로그파일을 순차적으로 읽으면서 상기 제2 로그 파일이 연속 존재하는 경우에, 삭제 트랜잭션으로 판단한 후에 상기 변경 테이블에서 삭제하는 것을 특징으로 한다.
본 발명의 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은, 인-메모리 데이터베이스에서 별도의 처리 없이 기존에 기록하던 로그 파일을 읽어 변경된 데이터를 동적으로 확인할 수 있고, 타 응용 프로그램에서 쉽게 변경된 데이터를 관리할 수 있도록 메타데이터 및 관련 프로시저들을 지원함으로써 데이터 동기화 도구 및 ETL 툴들이 기존의 트리거 방식에 비해 인-메모리 데이터베이스의 부하를 상당히 감소시키면서 변경된 데이터를 활용할 수 있으며, 전체적으로 시스템 성능 향상 및 변경된 데이터의 관리를 용이하게 수행할 수 있어 전체 시스템 개발 비용이 감소될 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템의 전체 흐름을 설명하는 도면이다.
도 2는 본 발명의 일 실시에에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템의 구성을 설명하는 블록도이다.
도 3은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 변경 세트 메타데이터를 설명하는 도면이다.
도 4는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 변경 테이블 메타데이터를 설명하는 도면이다.
도 5는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 소스테이블 메타데이터를 설명하는 도면이다.
도 6은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 발간 컬럼 메타데이터를 설명하는 도면이다.
도 7은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 메타데이터를 설명하는 도면이다.
도 8은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 테이블 메타데이터를 설명하는 도면이다.
도 9는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 컬럼 메타데이터를 설명하는 도면이다.
도 10은 도 2의 일부 구성요소인 로그캡쳐 매니저가 삽입 트랜잭션 확인 과정을 설명하는 도면이다.
도 11은 도 2의 일부 구성요소인 로그캡쳐 매니저가 업데이트 트랜잭션 확인 과정을 설명하는 도면이다.
도 12는 도 2의 일부 구성요소인 로그캡쳐 매니저가 삭제 트랜잭션 확인 과정에 대한 일 실시예를 설명하는 도면이다.
도 13은 도 2의 일부 구성요소인 로그캡쳐 매니저가 삭제 트랜잭션 확인 과정에 대한 다른 실시예를 설명하는 도면이다.
본 발명에 기재된 실시예 및 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 표현하는 것은 아니므로, 본 발명의 권리범위는 본문에 설명된 실시예 및 도면에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
본 발명의 일 실시예에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은 발간/구독 모델 기반의 배포 기술과 변경 데이터 캡쳐 기술을 포함한 다양한 DBMS 서비스를 제공한다.
먼저, 발간/구독 배포 기술은 데이터 통신 도메인에 참여하는 사용자가 발간자(데이터 생산)나 구독자(데이터 소비)가 되어 서비스의 연결 지향없이 자신이 원하는 데이터를 생산하고 소비하는 데이터 배포 기술이다. 이러한 발간/구독 배포 기술은 메시지 기반으로 비연결 지향 서비스의 특징을 가지며, 서비스에 대한 정보(위치, 시간, 동기화)에 관계없이 데이터에 대한 접근을 가능하게 해주어 실시간에 적합한 통신 환경을 제공한다.
다음에, 인-메모리 데이터베이스 내에서 변경된 데이터를 관리하기 위한 변경 데이터 캡쳐(Changed Data Capture, CDC) 기술은 사용자가 특정 테이블에 대해 변경된 데이터를 확인할 때, 데이터베이스가 기록한 정보를 통하여 변경된 데이터를 확인하는 기술이다.
도 1은 본 발명의 일 실시예에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템의 전체 흐름을 설명하는 도면이다.
도 1을 참고하면, 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은 데이터 캡쳐링 프로세스(110)에서 데이터베이스(100)가 기록한 Redo Log(재수행 로그)를 읽어서 변경된 데이터에 대해서만 사용자가 지정한 변경 테이블(112)에 기록한다. 이때, Redo Log는 데이터베이스(100)의 값을 변경하는 경우에 자동적으로 데이터베이스(100)가 기록하는 로그 파일이다.
데이터 캡쳐링 프로세스(110)는 소스 테이블(111)에서 수행되는 모든 데이터의 수정 작업을 데이터베이스의 트랜잭션 Redo 로그에 기록하고, 트랜잭션 Redo 로그를 읽어서 변경 데이터 캡쳐가 설정된 변경된 데이터 지정된 변경 테이블에 기록하며, 별도의 ETL(Extraction, Transformation and Loading) 관련 데이터 캡쳐 제어 프로세스(140)를 사용하여 변경 데이터 캡처 쿼리 함수(Change Data Capture Query Functions)를 통해 변경 테이블에서 변경 데이터를 추출하고 이를 근거로 하여 데이터를 업데이트 한다.
상기한 데이터 캡쳐링 프로세스(110)를 통해 발간자는 변경 데이터를 캡쳐해야 하는 소스 테이블(111)을 식별한 후에 변경 데이터를 캡쳐하여 지정한 변경 테이블()에 저장한 후 구독자가 변경 데이터를 액세스할 수 있도록 허용한다. 데이터베이스(100)는 사용자가 변경된 데이터에 접근하도록 하기 위해 구독 뷰(121)를 생성하고, 사용자는 생성된 구독 뷰(121)를 통해 지정한 변경 테이블에서 변경된 데이터를 확인한다.
본 발명의 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은 CDC 기능들을 효율적으로 이용할 수 있도록 SP(Service Pack) 패키지(130)를 통해서 처리한다. 여기서, SP 패키지는 데이터베이스에 저장되어 있는 서로 관련있는 PL/SQL 프러시저와 함수들의 집합이다. 이때, SP 패키지는 스펙을 정의하고, 각각의 프로시저들에 어떤 기능들이 필요하고, 무엇이 구현되어야 하는지를 정의하여 설계될 수 있다.
도 2는 본 발명의 일 실시에에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템의 구성을 설명하는 블록도이다.
도 2를 참고하면, 인-메모리 데이터베이스(100)는 로그 매니저(210), 트랜잭션 매니저(220) 및 CDC 모듈(230)을 포함하지만 이에 한정되지는 않는다.
로그 매니저(210)는 데이터베이스(100)가 기록한 Redo Log를 확인하고, 해당 Redo Log로부터 변경된 데이터를 확인하는 역할을 수행한다.
트랜잭션 매니저(220)는 변경 테이블 및 시스템 테이블의 값을 변경할 때, 데이터가 반영될 테이블에 대한 Lock 정보나 트랜잭션 ID 등의 정보를 관리하는 역할을 수행한다.
CDC 모듈(230)은 메타데이터 매니저(231)와 로그캡쳐 매니저(232)를 포함한다.
메타데이터 매니저(231)는 CDC 기능을 제공하기 위한 시스템 테이블 형태의 메타데이터를 관리하고, CDC 설정 기능 및 재구동시 이전 정보에 대한 복원 기능을 제공한다.
로그캡쳐 매니저(232)는 데이터베이스 값의 변경시 데이터베이스가 기록한 로그 파일을 이용하여 변경된 데이터를 확인한 후 변경된 데이터에 따라 삽입/업데이트/삭제 트랜잭션을 결정하여 변경 테이블에 기록하고, 변경된 데이터의 접근을 위한 구독 뷰를 생성하여 사용자에게 제공한다.
도 3은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 변경 세트 메타데이터를 설명하는 도면이고, 도 4는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 변경 테이블 메타데이터를 설명하는 도면이며, 도 5는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 소스테이블 메타데이터를 설명하는 도면이고, 도 6은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 발간 컬럼 메타데이터를 설명하는 도면이며, 도 7은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 메타데이터를 설명하는 도면이고, 도 8은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 테이블 메타데이터를 설명하는 도면이며, 도 9는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 컬럼 메타데이터를 설명하는 도면이다.
도 3 내지 도 9를 참고하면, 메타데이터 매니저(231)는 데이터베이스의 로그 정보를 읽는 것만으로 CDC 기능을 수행할 수 없기 때문에 CDC 기능과 관련된 정보를 저장하기 위해 데이터베이스 내부에 시스템 테이블 형태의 메타데이터를 관리한다.
먼저, 도 3에 도시된 바와 같이, 변경세트 메타데이터는 데이터베이스 내부에 CDC에서 이용하는 객체인 변경세트에 대한 정보를 저장 및 관리하는 것으로서, 변경세트는 변경 테이블들을 관리하는 하나의 집합이다. 1개의 변경 세트에는 다수의 변경 테이블을 생성할 수 있으며, 변경 세트가 존재하지 않는 경우에는 변경 테이블을 생성할 수 없다.
이러한 변경세트 메타데이터 테이블은 변경 세트의 이름, 변경 소스의 타입, 사용자가 설정하는 변경 세트에 대한 설명, 발간자 이름, 변경세트에 대한 고유 ID를 포함한다.
다음, 도 4를 참고하면, 변경 테이블 메타데이터는 변경 데이터를 확인한 이후에 변경된 데이터를 저장하기 위한 변경 테이블에 대한 정보를 저장 및 관리한다. 변경 테이블 메타데이터 테이블은 변경 테이블의 소유자 이름, 변경 테이블 이름, 소스 테이블의 소유자 이름, 소스 테이블 이름, 발간 ID, 변경세트의 ID를 포함한다.
도 5를 참고하면, 소스 테이블 메타데이터는 CDC 서비스 수행중인 소스 테이블의 정보, 연관된 변경 테이블의 정보를 저장 및 관리하는 것으로서, 소스테이블 메타데이터 테이블은 소스 테이블의 소유자 이름, 소스 테이블 이름, 변경 테이블의 소유자 이름, 변경 테이블 이름을 포함한다.
도 6을 참고하면, 발간 컬럼 메타데이터는 변경된 데이터에 대한 정보를 칼럼(column) 단위로 저장 및 관리하는 것으로서, 발간 컬럼 메타데이터 테이블은 변경 세트 이름, 변경 테이블의 소유자 이름, 변경 테이블의 이름, 소스 테이블의 소유자 이름, 소스 테이블의 이름, 소스 컬럼 이름(데이터 캡쳐 대상 컬럼), 데이터 타입, 데이터 길이, 데이터 전체 길이(Precision), 데이터 스케일(소수점 이하 자리), 데이터 Null 값 허용 플래그(Data Nullable flag), 데이터 발간 ID를 포함한다.
도 7을 참고하면, 구독 메타데이터는 CDC에서 이용하는 구독 객체에 대한 정보를 저장하는데, 구독 객체는 실제 데이터의 변경 확인을 수행하는 쓰레드를 생성하며, 구독의 상태에 따라 데이터의 변경을 확인하고, 변경 테이블에 값을 삽입한다. 이러한 구독 메타데이터 테이블은 변경세트 이름, 변경 세트의 소유자, 구독 상태, 구독 이름을 포함한다.
도 8을 참고하면, 구독 테이블 메타데이터는 구독 및 구독 뷰의 정보, 변경된 데이터의 관리 번호(Control_number)를 저장 및 관리한다. 이때, 관리 번호는 변경된 데이터를 어디까지 읽었는지 확인하기 위한 정보로서, 사용자가 조작하는 값이 아니고, 데이터베이스 내부에서 관리하는 값이다. 이러한 구독 테이블 메타데이터 테이블은 소스 테이블의 소유자, 소스 테이블의 이름, 구독 뷰 이름, 구독 이름, 발간 ID, 연장/소거를 위한 최소값과 최대값을 포함한다.
따라서, 사용자는 변경된 데이터를 구독 뷰를 통해서 확인할 수 있으며, 구독 뷰에 보이는 데이터는 구독 테이블 메타데이터 테이블에 존재하는 관리 번호에 따라 결정된다. 또한, 사용자가 변경된 데이터를 확인하기 위해 상기 변경 테이블에서 구독 뷰에 데이터를 투영시키는 연장(Extend) 프로시저와 상기 변경 테이블에 있는 데이터를 삭제하는 소거(Purge) 프로시저 중 어느 하나의 프로시저를 호출하고, 사용자에 의해 호출된 프로시저에 따라 데이터베이스에서 관리 번호의 값을 결정한다.
도 9를 참고하면, 구독 컬럼 메타데이터는 CDC 기능을 통해 실시간 데이터 변경을 확인하는 컬럼에 대한 정보를 저장 및 관리하는 것으로서, 구독 컬럼 메타데이터 테이블은 소스 테이블의 소유자, 소스 테이블 이름, 컬럼 이름, 구독 이름을 포함한다.
도 10은 도 2의 일부 구성요소인 로그캡쳐 매니저가 삽입 트랜잭션 확인 과정을 설명하는 도면이고, 도 11은 도 2의 일부 구성요소인 로그캡쳐 매니저가 업데이트 트랜잭션 확인 과정을 설명하는 도면이며, 도 12는 도 2의 일부 구성요소인 로그캡쳐 매니저가 삭제 트랜잭션 확인 과정에 대한 일 실시예를 설명하는 도면이고, 도 13은 도 2의 일부 구성요소인 로그캡쳐 매니저가 삭제 트랜잭션 확인 과정에 대한 다른 실시예를 설명하는 도면이다.
도 10 내지 도 13을 참고하면, 로그캡쳐 매니저는 변경된 데이터를 로그 파일로부터 확인하여 변경 테이블에 삽입하기 위해서는 삽입 트랜잭션, 업데이트 트랜잭션, 삭제 트랜잭션에 대하여 각각 처리해야 한다.
로그캡쳐 매니저(232)는 CDC 처리를 위해 제1 로그 파일(InsrtRecLog)과 제2 로그 파일(LogicalVersioningLog)을 이용하여 변경된 데이터를 확인한다. 이때, InsrtRecLog는 신규 값에 대한 로그로서 삽입과 업데이트시 기록되는 로그 파일이고, LogicalVersioningLog는 기존의 값에 대한 로그로서 업데이트와 삭제시 기록되는 로그 파일이다. 만일, 1을 2로 업데이트하는 경우에, InsrtRecLog에 2(UN)이 기록되며, LogicalVersioningLog에 1(UO)가 기록된다.
도 10에 도시된 바와 같이, 로그캡쳐 매니저(232)는 순차적으로 로그 파일을 읽은 중에 InsertRecLog의 후행하는 로그 파일에 LogicalVersioningLog이 없는 경우에 해당 트랜잭션을 삽입 트랜잭션으로 판단한 후 즉시 변경 테이블에 삽입한다.
로그캡쳐 매니저(232)는 순차적으로 로그파일을 순차적으로 읽는 중에 LogicalVersioningLog가 존재하고, LogicalVersioningLog의 후행하는 로그 파일이 InsertRecLog엔 경우에 상기 InsertRecLog에 저장된 서브타입(subtype)에 따라 트랜잭션의 타입을 결정한다.
도 11에 도시된 바와 같이, 로그캡쳐 매니저(232)는 InsertRecLog에 저장된 서브타입이 업데이트인 경우에 업데이트 트랜잭션으로 판단한 후에 상기 LogicalVersioningLog에 기록된 정보는 업데이트 조건에 해당하는 값(UO)이고, InsertRecLog에 기록된 정보는 업데이트된 신규 값으로 변경 테이블에 삽입한다.
도 12에 도시된 바와 같이, 로그캡쳐 매니저(232)는 InsertRecLog에 저장된 서브타입이 삭제인 경우에 삭제 트랜잭션으로 판단한 후에 변경 테이블에서 삭제한다.
한편, 도 13에 도시된 바와 같이, 로그캡쳐 매니저(232)는 로그파일을 순차적으로 읽으면서 LogicalVersioningLog이 연속 존재하는 경우에, 해당 LogicalVersioningLog에 기록된 트랜잭션을 삭제 트랜잭션으로 판단한 후에 변경 테이블에서 삭제한다.
이와 같이, 본 발명은 변경된 데이터의 확인을 위해 인-메모리 데이터베이스가 별도의 처리 없이 기존에 기록한 로그 파일을 읽어와서 변경된 데이터를 동적으로 확인하고, CDC 모듈(230) 내의 메타데이터 매니저(231) 및 로그캡쳐 매니저(232)를 통해 변경된 데이터를 효율적으로 관리할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 인-메모리 데이터베이스 210 : 로그 매니저
220 : 트랜잭션 매니저 230 : CDC 모듈
231 : 메타데이터 매니저 232 : 로그캡쳐 매니저

Claims (10)

  1. 인-메모리 데이터베이스 내에서 변경된 데이터를 관리하기 위한 변경 데이터 캡쳐(Changed Data Capture, CDC) 기능을 제공하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 있어서,
    상기 CDC 기능을 제공하기 위한 시스템 테이블 형태의 메타데이터를 관리하고, CDC 설정 기능 및 재구동시 이전 정보에 대한 복원 기능을 제공하는 메타데이터 매니저; 및
    데이터베이스 값의 변경시 데이터베이스가 기록한 로그 파일을 이용하여 변경된 데이터를 확인한 후 상기 변경된 데이터에 따라 삽입/업데이트/삭제 트랜잭션을 결정하여 변경 테이블에 기록하고, 상기 변경된 데이터의 접근을 위한 구독 뷰를 생성하여 사용자에게 제공하는 로그캡쳐 매니저를 포함하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
  2. 제1항에 있어서,
    상기 메타데이터 매니저는,
    상기 CDC 기능 수행시 적어도 하나 이상의 변경 테이블을 생성하고, 상기 변경 테이블을 관리하는 변경 세트(Change Set)에 대한 정보를 저장 및 관리하는 변경 세트 메타데이터;
    상기 변경 테이블에 대한 정보를 저장 및 관리하는 변경 테이블 메타데이터;
    상기 CDC 서비스 수행중인 소스 테이블의 정보, 연관된 변경 테이블의 정보를 저장 및 관리하는 소스 테이블 메타데이터;
    상기 변경된 데이터에 대한 정보를 칼럼(column) 단위로 저장 및 관리하는 발간 컬럼 메타데이터;
    상기 CDC에서 이용하는 구독 객체에 대한 정보를 저장하는 구독 메타데이터;
    상기 구독 및 구독 뷰의 정보, 상기 변경된 데이터의 관리 번호를 저장 및 관리하는 구독 테이블 메타데이터; 및
    상기 CDC 기능을 통해 실시간 데이터 변경을 확인하는 컬럼에 대한 정보를 저장 및 관리하는 구독 컬럼 메타데이터를 포함하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
  3. 제2항에 있어서,
    상기 구독 메타데이터의 구독 개체는 데이터의 변경 확인을 수행하는 쓰레드를 생성하고, 구독 상태에 따라 데이터의 변경을 확인하여 상기 변경 테이블에 값을 삽입하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
  4. 제2항에 있어서,
    사용자가 변경된 데이터를 확인하기 위해 상기 변경 테이블에서 구독 뷰에 데이터를 투영시키는 연장(Extend) 프로시저와 상기 변경 테이블에 있는 데이터를 삭제하는 소거(Purge) 프로시저 중 어느 하나의 프로시저를 호출하고, 상기 호출된 프로시저에 따라 데이터베이스에서 관리 번호의 값을 결정하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
  5. 제1항에 있어서,
    상기 로그캡쳐 매니저는, 상기 CDC 처리를 위해 신규 값에 대해 삽입 또는 업데이트시 기록되는 제1 로그 파일과 기존의 값에 대해 삭제 또는 업데이트시 기록되는 제2 로그 파일을 이용하여 변경된 데이터를 확인하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
  6. 제5항에 있어서,
    상기 로그캡쳐 매니저는,
    상기 로그 파일을 순차적으로 읽으면서 상기 제1 로그 파일의 후행하는 로그 파일에 제2 로그 파일이 없는 경우에 해당 트랜잭션을 삽입 트랜잭션으로 판단한 후 변경 테이블에 삽입하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
  7. 제5항에 있어서,
    상기 로그캡쳐 매니저는,
    상기 로그파일을 순차적으로 읽으면서 상기 제2 로그 파일이 존재하고, 상기 제2 로그 파일의 후행하는 로그 파일이 제1 로그 파일인 경우에 상기 제1 로그 파일에 저장된 서브타입(subtype)에 따라 트랜잭션의 타입을 결정하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
  8. 제7항에 있어서,
    상기 로그캡쳐 매니저는 상기 제1 로그 파일에 저장된 서브타입이 업데이트인 경우에 업데이트 트랜잭션으로 판단한 후에 상기 제2 로그 파일에 기록된 정보는 업데이트 조건에 해당하는 값이고, 상기 제1 로그 파일에 기록된 정보는 업데이트된 신규 값으로 변경 테이블에 삽입하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
  9. 제7항에 있어서,
    상기 로그캡쳐 매니저는 상기 제1 로그 파일에 저장된 서브타입이 삭제인 경우에 삭제 트랜잭션으로 판단한 후에 상기 변경 테이블에서 삭제하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
  10. 제5항에 있어서,
    상기 로그캡쳐 매니저는,
    상기 로그파일을 순차적으로 읽으면서 상기 제2 로그 파일이 연속 존재하는 경우에, 삭제 트랜잭션으로 판단한 후에 상기 변경 테이블에서 삭제하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
KR1020170162901A 2017-11-30 2017-11-30 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템 KR102038529B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170162901A KR102038529B1 (ko) 2017-11-30 2017-11-30 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170162901A KR102038529B1 (ko) 2017-11-30 2017-11-30 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템

Publications (2)

Publication Number Publication Date
KR20190063835A true KR20190063835A (ko) 2019-06-10
KR102038529B1 KR102038529B1 (ko) 2019-10-30

Family

ID=66847927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170162901A KR102038529B1 (ko) 2017-11-30 2017-11-30 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템

Country Status (1)

Country Link
KR (1) KR102038529B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930821A (zh) * 2020-09-08 2020-11-13 平安国际智慧城市科技股份有限公司 一种一步式数据交换方法、装置、设备及存储介质
KR102221593B1 (ko) * 2020-10-23 2021-03-02 주식회사 오파스넷 단말의 설치 환경 유지를 위한 시스템
CN112579603A (zh) * 2020-12-24 2021-03-30 北京志翔能源技术有限公司 基于cdc的数据模型动态信息感知监测方法及装置
CN113626453A (zh) * 2021-07-30 2021-11-09 浪潮云信息技术股份公司 一种元数据变更捕获方法
US11514020B2 (en) 2020-11-13 2022-11-29 International Business Machines Corporation Tracking change data capture log history

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020037399A (ko) * 2000-11-14 2002-05-21 구자홍 데이터베이스 관리시스템의 트랜잭션처리방법
KR20040050958A (ko) * 2002-12-11 2004-06-18 텔코웨어 주식회사 이중 관리를 통한 메모리 데이터베이스 백업장치 및 그 방법
KR20110002708A (ko) * 2009-07-02 2011-01-10 엔에이치엔(주) 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법
KR20150083938A (ko) * 2014-01-10 2015-07-21 국방과학연구소 Dds-db 연동 시스템
KR101605455B1 (ko) 2014-07-04 2016-03-22 (주)선재소프트 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템
KR101786865B1 (ko) * 2016-05-25 2017-10-19 (주)알투비솔루션 Dbms별로 생성되는 아카이브 로그 통합 관리 시스템

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020037399A (ko) * 2000-11-14 2002-05-21 구자홍 데이터베이스 관리시스템의 트랜잭션처리방법
KR20040050958A (ko) * 2002-12-11 2004-06-18 텔코웨어 주식회사 이중 관리를 통한 메모리 데이터베이스 백업장치 및 그 방법
KR20110002708A (ko) * 2009-07-02 2011-01-10 엔에이치엔(주) 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법
KR20150083938A (ko) * 2014-01-10 2015-07-21 국방과학연구소 Dds-db 연동 시스템
KR101605455B1 (ko) 2014-07-04 2016-03-22 (주)선재소프트 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템
KR101786865B1 (ko) * 2016-05-25 2017-10-19 (주)알투비솔루션 Dbms별로 생성되는 아카이브 로그 통합 관리 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930821A (zh) * 2020-09-08 2020-11-13 平安国际智慧城市科技股份有限公司 一种一步式数据交换方法、装置、设备及存储介质
KR102221593B1 (ko) * 2020-10-23 2021-03-02 주식회사 오파스넷 단말의 설치 환경 유지를 위한 시스템
US11514020B2 (en) 2020-11-13 2022-11-29 International Business Machines Corporation Tracking change data capture log history
CN112579603A (zh) * 2020-12-24 2021-03-30 北京志翔能源技术有限公司 基于cdc的数据模型动态信息感知监测方法及装置
CN112579603B (zh) * 2020-12-24 2023-11-17 北京志翔信息技术有限公司 基于cdc的数据模型动态信息感知监测方法及装置
CN113626453A (zh) * 2021-07-30 2021-11-09 浪潮云信息技术股份公司 一种元数据变更捕获方法

Also Published As

Publication number Publication date
KR102038529B1 (ko) 2019-10-30

Similar Documents

Publication Publication Date Title
US11429641B2 (en) Copying data changes to a target database
KR101956236B1 (ko) 데이터베이스 관리 시스템에서의 데이터 복제 기법
KR20190063835A (ko) 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템
US10635658B2 (en) Asynchronous shared application upgrade
CN101334797B (zh) 一种分布式文件系统及其数据块一致性管理的方法
US20200334206A1 (en) Storage and synchronization of metadata in a distributed storage system
CN104301360B (zh) 一种日志数据记录的方法、日志服务器及系统
US9411866B2 (en) Replication mechanisms for database environments
US8756196B2 (en) Propagating tables while preserving cyclic foreign key relationships
CN102629247B (zh) 一种数据处理方法、装置和系统
CN108509462B (zh) 一种同步活动事务表的方法及装置
US7958088B2 (en) Dynamic data reorganization to accommodate growth across replicated databases
US20130110873A1 (en) Method and system for data storage and management
US8214377B2 (en) Method, system, and program for managing groups of objects when there are different group types
EP2380090B1 (en) Data integrity in a database environment through background synchronization
US11314719B2 (en) Method for implementing change data capture in database management system
US20150006485A1 (en) High Scalability Data Management Techniques for Representing, Editing, and Accessing Data
KR20200056357A (ko) 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법
WO2022127866A1 (zh) 数据处理方法、装置、电子设备、存储介质
US11150964B1 (en) Sequential processing of changes in a distributed system
CN110413617B (zh) 一种根据数据量的大小动态调节哈希表组的方法
CN114756628B (zh) 一种高复用可扩展的数据及文件同步的方法
KR20180126431A (ko) 데이터베이스 이중화 무중단 정합성 복구 기법
KR102225258B1 (ko) 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램
US8700566B2 (en) Offline restructuring of DEDB databases

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant