KR102038529B1 - System for processing real-time data modification of in-memory database - Google Patents

System for processing real-time data modification of in-memory database Download PDF

Info

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

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

Landscapes

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

Abstract

본 발명은 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 관한 것으로서, 인-메모리 데이터베이스 내에서 변경된 데이터를 관리하기 위한 변경 데이터 캡쳐(Changed Data Capture, CDC) 기능을 제공하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 있어서, 상기 CDC 기능을 제공하기 위한 시스템 테이블 형태의 메타데이터를 관리하고, CDC 설정 기능 및 재구동시 이전 정보에 대한 복원 기능을 제공하는 메타데이터 매니저; 및 데이터베이스 값의 변경시 데이터베이스가 기록한 로그 파일을 이용하여 변경된 데이터를 확인한 후 상기 변경된 데이터에 따라 삽입/업데이트/삭제 트랜잭션을 결정하여 변경 테이블에 기록하고, 상기 변경된 데이터의 접근을 위한 구독 뷰를 생성하여 사용자에게 제공하는 로그캡쳐 매니저를 포함한다. 따라서, 본 발명은 인-메모리 데이터베이스에서 별도의 처리 없이 기존에 기록하던 로그 파일을 읽어 변경된 데이터를 동적으로 확인할 수 있고, 타 응용 프로그램에서 쉽게 변경된 데이터를 관리할 수 있도록 메타데이터 및 관련 프로시저들을 지원함으로써 데이터 동기화 도구 및 ETL 툴들이 기존의 트리거 방식에 비해 인-메모리 데이터베이스의 부하를 상당히 감소시키면서 변경된 데이터를 활용할 수 있으며, 전체적으로 시스템 성능 향상 및 변경된 데이터의 관리를 용이하게 수행할 수 있어 전체 시스템 개발 비용이 감소될 수 있다.The present invention relates to a real-time data change processing system of an in-memory database. The present invention relates to a real-time data of an in-memory database that provides a changed data capture (CDC) function for managing changed data in an in-memory database. A change processing system comprising: a metadata manager for managing metadata in the form of a system table for providing the CDC function, and providing a CDC setting function and a restoration function for previous information upon restart; And checking the changed data by using the log file recorded by the database when the database value is changed, and then determines an insert / update / delete transaction according to the changed data and writes it to the change table, and creates a subscription view for access to the changed data. It includes a log capture manager provided to the user. Therefore, the present invention reads the log file recorded in the in-memory database without any processing and dynamically checks the changed data, and provides metadata and related procedures so that other applications can easily manage the changed data. This enables data synchronization tools and ETL tools to take advantage of the changed data while significantly reducing the load on the in-memory database compared to traditional trigger methods, and improves overall system performance and facilitates management of changed data. Development costs can be reduced.

Description

인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템{SYSTEM FOR PROCESSING REAL-TIME DATA MODIFICATION OF IN-MEMORY DATABASE} Real-time data change processing system of in-memory database {SYSTEM FOR PROCESSING REAL-TIME DATA MODIFICATION OF IN-MEMORY DATABASE}

본 발명은 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 관한 것으로, 보다 상세하게는 인-메모리 데이터베이스에서 타 응용 프로그램에 의해 변경된 데이터를 효율적으로 확인 및 관리할 수 있는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 관한 것이다.The present invention relates to a real-time data change processing system of an in-memory database, and more particularly, to a real-time data change of an in-memory database that can efficiently check and manage data changed by another application in the in-memory database. To a processing system.

대용량 데이터 실시간 처리에 대한 요구사항이 증가하면서 더욱 빠른 속도의 데이터 연산뿐만 아니라 다량의 데이터에 대한 입출력에 대한 요구사항이 증가함에 따라, 기존 디스크 기반의 방식에서 벗어나 로우레이턴시(Low Latency)를 강조하는 인메모리 DBMS의 수요가 증가하고 있다. As the demand for large data real-time processing increases, the demand for I / O on a large amount of data as well as faster data operation increases, which emphasizes low latency beyond the conventional disk-based method. The demand for in-memory DBMS is increasing.

시스템간 데이터 레이턴시(Data Latency)를 최소화하기 위하여 CDC 활용도가 급증하였으며, 데이터 동기화 성능을 개선하기 위해 타임스탬프 방식에서 아카이브 로그를 기반으로 하는 기법으로 변경되고 있고, 트랜잭션발생 이후 데이터 분석까지의 시간을 줄이기 위하여 데이터 동기화 시간을 단축하는 것이 필요하며, 기존 DBMS 정보들의 처리뿐만 아니라 비정형 데이터에 대해 처리 요구사항이 발생하고 있다. In order to minimize the data latency between systems, the use of CDC has increased rapidly. In order to improve the data synchronization performance, the time stamp method has been changed from the timestamp method to the archive log-based technique. In order to reduce, it is necessary to shorten the data synchronization time, and processing requirements are generated for the unstructured data as well as the processing of the existing DBMS information.

이와 같이, IT 환경이 복잡해지고 여러 시스템의 데이터 통합 요구가 증가함에 따라 여러 DB에 있는 데이터를 실시간으로 동기화하려는 변경데이터관리(Change Data Capture, 이하 CDC))에 대한 요구가 커지고 있다. As such, as the IT environment becomes more complex and the demand for data integration of multiple systems increases, the demand for change data management (CDC) to synchronize data in multiple databases in real time is increasing.

여기서, CDC(Change Data Capture)는 데이터베이스 내 데이터에 대한 변경을 식별해 필요한 후속 처리(데이터 전송/공유 등)를 자동화하는 기술 또는 설계 기법이자 구조다. CDC는 실시간 또는 근접 실시간 데이터 통합을 기반으로 하는 데이터 웨어하우스 및 기타 데이터 저장소 구축에 폭 넓게 활용된다.Change data capture (CDC) is a technology or design technique and structure that identifies changes to data in a database and automates the necessary subsequent processing (data transfer / sharing, etc.). CDC is widely used to build data warehouses and other data repositories based on real-time or near real-time data integration.

CDC는 스토리지 하드웨어 계층에서부터 애플리케이션 계층에 이르기까지 다양한 계층에서 다양한 기술을 통해 구현될 수 있다. CDC can be implemented through a variety of technologies at various layers, from the storage hardware layer to the application layer.

종래에 인-메모리 DBMS에서 데이터 변경을 확인하기 위해서는 DBMS의 트리거 기능을 이용하여 변경된 데이터를 확인하였다. 인-메모리 DBMS에서 매번 트리거 기능을 이용하여 변경된 데이터를 확인하기 때문에 대용량의 데이터를 처리하는 경우에 DBMS 자체에 대한 부하 부담이 가해져 DBMS의 삽입/삭제/업데이트 연산 등의 전체적인 성능 저하가 발생될 수 있는 문제점이 있다. 그로 인해, 해당 DBMS를 이용하는 타 응용 프로그램의 성능에 역시 영향을 주어 전체적인 시스템의 성능을 저하시키고, 타 응용 프로그램에서 변경된 데이터를 관리해야 하는 어려움이 있어 사용이 쉽지 않은 문제점이 있다. In order to confirm the data change in the in-memory DBMS, the changed data was confirmed using the trigger function of the DBMS. Since the in-memory DBMS checks the changed data every time by using the trigger function, when processing a large amount of data, the load on the DBMS itself may be applied, resulting in overall performance degradation such as insert / delete / update operations of the DBMS. There is a problem. Therefore, it also affects the performance of other applications using the corresponding DBMS, lowers the performance of the overall system, and has difficulty in managing changed data in other applications, making it difficult to use.

선행 기술로서, 한국등록특허 제10-1605455호는 데이터베이스에 운영중에 발생하는 트랜잭션에 의해 생성되는 리두 로그를 원격지로 실시간 송신하여 이중화(Replication)함으로써, 데이터베이스 시스템 운영중에 발생할 수 있는 비정상 운영 및 비정상 종료 등의 장애에 실시간 사전 대비할 수 있고, 데이터의 변경사항이 기록된 로그만을 전송하여 네트워크부하 및 복제부하를 최소화하는 방법 및 시스템을 기술하고 있다. As a prior art, Korean Patent No. 10-1605455 discloses a redo log generated by a transaction occurring in an operation in a database in real time to a remote location to replicate, thereby causing abnormal operation and abnormal termination that may occur during operation of a database system. It describes the method and system to minimize the network load and the replication load by transmitting only the log in which the change of data is recorded in real time in advance in case of a failure such as the real time.

상기한 데이터베이스 리두 로그 이중화 기술은 네트워크를 이용하기 때문에 데이터 충돌 및 지연의 문제가 발생할 수 있다. 즉, 데이터베이스 리두 로그 이중화 기술은 디스크공유 방식과는 다르게 로컬트랜잭션의 발생 시 다른 노드의 데이터에 대한 변경을 고려하지 않기 때문에 서로 간섭이 발생하지 않지만 이로 인해 데이터가 서로 다르게 존재할 수 있는 데이터의 충돌(Conflict)현상이 발생하게 되는 문제점이 있다.Since the database redo log duplication technique uses a network, problems of data collision and delay may occur. In other words, unlike the disk sharing method, the database redo log duplication does not take into account changes to the data of other nodes when local transactions occur, but does not interfere with each other. Conflict) is a problem that occurs.

또한, 데이터베이스 리두 로그 이중화 기술은 상대편 노드로의 전송 속도보다 송신노드의 변경 트랜잭션 로그의 누적속도가 빠를 경우, 특정시점에 송신노드와 수신노드에서의 데이터의 조회결과가 다를 수 있다는 문제점이 있다. 즉, 미처 네트워크를 통해 상대편 노드로 전송하지 못한 트랜잭션 로그가 송신노드에 누적되어 있는 경우를 의미하며 이를 이중화의 갭(Gap)이라고 부른다.In addition, the database redo log duplication technique has a problem in that when the cumulative speed of the change transaction log of the sending node is faster than the transfer rate to the opposite node, the query result of the data in the sending node and the receiving node may be different at a specific point in time. In other words, this means that transaction logs that could not be transmitted to the opposite node through the network are accumulated in the sending node, which is called a gap of redundancy.

한국등록특허 제10-1605455호 " 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템 "Korean Patent No. 10-1605455 "Data Redo Log Redundancy Method without Data Loss and System for It"

본 발명은 인-메모리 데이터베이스에서 변경된 데이터를 로그 파일로부터 동적으로 확인하여 변경 테이블에 기록할 수 있도록 CDC 처리 기술을 제공하고, 데이터 변경 확인에 의한 데이터 베이스의 부하를 줄이고, 타 응용 프로그램에서 쉽게 변경된 데이터를 관리할 수 있도록 메타데이터 및 관련 프러시저들을 지원하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템을 제공한다. The present invention provides a CDC processing technique to dynamically check the changed data in the in-memory database from the log file and write it to the change table, reduce the load on the database by checking the data change, and easily change it in other applications. It provides a real-time data change processing system of an in-memory database that supports metadata and related procedures to manage data.

실시예들 중에서, 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은, 인-메모리 데이터베이스 내에서 변경된 데이터를 관리하기 위한 변경 데이터 캡쳐(Changed Data Capture, CDC) 기능을 제공하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 있어서, 상기 CDC 기능을 제공하기 위한 시스템 테이블 형태의 메타데이터를 관리하고, CDC 설정 기능 및 재구동시 이전 정보에 대한 복원 기능을 제공하는 메타데이터 매니저; 및 데이터베이스 값의 변경시 데이터베이스가 기록한 로그 파일을 이용하여 변경된 데이터를 확인한 후 상기 변경된 데이터에 따라 삽입/업데이트/삭제 트랜잭션을 결정하여 변경 테이블에 기록하고, 상기 변경된 데이터의 접근을 위한 구독 뷰를 생성하여 사용자에게 제공하는 로그캡쳐 매니저를 포함하는 것을 특징으로 한다. Among embodiments, a real-time data change processing system of an in-memory database may include real-time data of an in-memory database that provides a Changed Data Capture (CDC) function for managing changed data in the in-memory database. A change processing system comprising: a metadata manager for managing metadata in the form of a system table for providing the CDC function, and providing a CDC setting function and a restoration function for previous information upon restart; And checking the changed data by using the log file recorded by the database when the database value is changed, and then determines an insert / update / delete transaction according to the changed data and writes it to the change table, and creates a subscription view for access to the changed data. It characterized in that it comprises a log capture manager to provide to the user.

상기 메타데이터 매니저는, 상기 CDC 기능 수행시 적어도 하나 이상의 변경 테이블을 생성하고, 상기 변경 테이블을 관리하는 변경 세트(Change Set)에 대한 정보를 저장 및 관리하는 변경 세트 메타데이터; 상기 변경 테이블에 대한 정보를 저장 및 관리하는 변경 테이블 메타데이터; 상기 CDC 기능 수행중인 소스 테이블의 정보, 연관된 변경 테이블의 정보를 저장 및 관리하는 소스 테이블 메타데이터; 상기 변경된 데이터에 대한 정보를 칼럼(column) 단위로 저장 및 관리하는 발간 컬럼 메타데이터; 상기 CDC에서 이용하는 구독 객체에 대한 정보를 저장하는 구독 메타데이터; 상기 구독 및 구독 뷰의 정보, 상기 변경된 데이터의 관리 번호를 저장 및 관리하는 구독 테이블 메타데이터; 및 상기 CDC 기능을 통해 실시간 데이터 변경을 확인하는 컬럼에 대한 정보를 저장 및 관리하는 구독 컬럼 메타데이터를 포함하는 것을 특징으로 한다. The metadata manager may include: change set metadata for generating at least one change table when the CDC function is executed, and storing and managing information on a change set for managing the change table; Change table metadata for storing and managing information about the change table; Source table metadata for storing and managing information of a source table in which the CDC function is being performed and information of an associated change table; Published column metadata that stores and manages information about the changed data in a column unit; Subscription metadata that stores information about a subscription object used by the CDC; A subscription table metadata for storing and managing information of the subscription and subscription view and a management number of the changed data; And subscription column metadata for storing and managing information on columns for confirming real-time data change through the CDC function.

상기 구독 메타데이터의 구독 개체는 데이터의 변경 확인을 수행하는 쓰레드를 생성하고, 구독 상태에 따라 데이터의 변경을 확인하여 상기 변경 테이블에 값을 삽입하는 것을 특징으로 한다. The subscription entity of the subscription metadata may generate a thread for confirming the change of data, and insert a value into the change table by confirming the change of data according to the subscription state.

사용자가 변경된 데이터를 확인하기 위해 상기 변경 테이블에서 구독 뷰에 데이터를 투영시키는 연장(Extend) 프로시저와 상기 변경 테이블에 있는 데이터를 삭제하는 소거(Purge) 프로시저 중 어느 하나의 프로시저를 호출하고, 상기 호출된 프로시저에 따라 데이터베이스에서 관리 번호의 값을 결정하는 것을 특징으로 한다.  In order to confirm the changed data, the user calls one of an extended procedure for projecting data from the change table to a subscription view and a purge procedure for deleting data in the change table. And determining a value of the management number in the database according to the called procedure.

상기 로그캡쳐 매니저는, 상기 CDC 기능 수행을 위해 신규 값에 대해 삽입 또는 업데이트시 기록되는 제1 로그 파일과 기존의 값에 대해 삭제 또는 업데이트시 기록되는 제2 로그 파일을 이용하여 변경된 데이터를 확인하는 것을 특징으로 한다. The log capture manager checks the changed data by using a first log file recorded when the new value is inserted or updated to perform the CDC function and a second log file recorded when the existing value is deleted or updated. It is characterized by.

상기 로그캡쳐 매니저는, 상기 로그 파일을 순차적으로 읽으면서 상기 제1 로그 파일의 후행하는 로그 파일에 제2 로그 파일이 없는 경우에 해당 트랜잭션을 삽입 트랜잭션으로 판단한 후 변경 테이블에 삽입하는 것을 특징으로 한다. The log capture manager reads the log file sequentially and inserts the corresponding transaction into the change table after determining that the transaction is an insert transaction when there is no second log file in the following log file of the first log file. .

상기 로그캡쳐 매니저는, 상기 로그파일을 순차적으로 읽으면서 상기 제2 로그 파일이 존재하고, 상기 제2 로그 파일의 후행하는 로그 파일이 제1 로그 파일인 경우에 상기 제1 로그 파일에 저장된 서브타입(subtype)에 따라 트랜잭션의 타입을 결정하는 것을 특징으로 한다. The log capture manager reads the log file sequentially and subtypes stored in the first log file when the second log file exists and the log file following the second log file is the first log file. (subtype) is characterized in that the type of the transaction is determined.

상기 로그캡쳐 매니저는 상기 제1 로그 파일에 저장된 서브타입이 업데이트인 경우에 업데이트 트랜잭션으로 판단한 후에 상기 제2 로그 파일에 기록된 정보는 업데이트 조건에 해당하는 값이고, 상기 제1 로그 파일에 기록된 정보는 업데이트된 신규 값으로 변경 테이블에 삽입하는 것을 특징으로 한다. If the log capture manager determines that the subtype stored in the first log file is an update, then the information recorded in the second log file is a value corresponding to an update condition, and is recorded in the first log file. The information is inserted into the change table with the updated new value.

상기 로그캡쳐 매니저는 상기 제1 로그 파일에 저장된 서브타입이 삭제인 경우에 삭제 트랜잭션으로 판단한 후에 상기 변경 테이블에서 삭제하는 것을 특징으로 한다. The log capture manager, when the subtype stored in the first log file is a delete, determines that the log capture manager deletes the change from the change table.

상기 로그캡쳐 매니저는,The log capture manager,

상기 로그파일을 순차적으로 읽으면서 상기 제2 로그 파일이 연속 존재하는 경우에, 삭제 트랜잭션으로 판단한 후에 상기 변경 테이블에서 삭제하는 것을 특징으로 한다. In the case where the second log file is continuously present while reading the log file sequentially, the log file is determined to be a deletion transaction and then deleted from the change table.

본 발명의 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은, 인-메모리 데이터베이스에서 별도의 처리 없이 기존에 기록하던 로그 파일을 읽어 변경된 데이터를 동적으로 확인할 수 있고, 타 응용 프로그램에서 쉽게 변경된 데이터를 관리할 수 있도록 메타데이터 및 관련 프로시저들을 지원함으로써 데이터 동기화 도구 및 ETL 툴들이 기존의 트리거 방식에 비해 인-메모리 데이터베이스의 부하를 상당히 감소시키면서 변경된 데이터를 활용할 수 있으며, 전체적으로 시스템 성능 향상 및 변경된 데이터의 관리를 용이하게 수행할 수 있어 전체 시스템 개발 비용이 감소될 수 있는 효과가 있다.The real-time data change processing system of the in-memory database of the present invention can read the log file recorded in the in-memory database without any processing and dynamically check the changed data, and easily manage the changed data in other applications. By supporting metadata and related procedures, data synchronization tools and ETL tools can take advantage of the changed data while significantly reducing the load on the in-memory database compared to traditional triggering methods. The management can be easily performed, and the overall system development cost can be reduced.

도 1은 본 발명의 일 실시예에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템의 전체 흐름을 설명하는 도면이다.
도 2는 본 발명의 일 실시에에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템의 구성을 설명하는 블록도이다.
도 3은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 변경 세트 메타데이터를 설명하는 도면이다.
도 4는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 변경 테이블 메타데이터를 설명하는 도면이다.
도 5는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 소스테이블 메타데이터를 설명하는 도면이다.
도 6은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 발간 컬럼 메타데이터를 설명하는 도면이다.
도 7은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 메타데이터를 설명하는 도면이다.
도 8은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 테이블 메타데이터를 설명하는 도면이다.
도 9는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 컬럼 메타데이터를 설명하는 도면이다.
도 10은 도 2의 일부 구성요소인 로그캡쳐 매니저가 삽입 트랜잭션 확인 과정을 설명하는 도면이다.
도 11은 도 2의 일부 구성요소인 로그캡쳐 매니저가 업데이트 트랜잭션 확인 과정을 설명하는 도면이다.
도 12는 도 2의 일부 구성요소인 로그캡쳐 매니저가 삭제 트랜잭션 확인 과정에 대한 일 실시예를 설명하는 도면이다.
도 13은 도 2의 일부 구성요소인 로그캡쳐 매니저가 삭제 트랜잭션 확인 과정에 대한 다른 실시예를 설명하는 도면이다.
1 is a view for explaining the overall flow of the real-time data change processing system of the in-memory database according to an embodiment of the present invention.
2 is a block diagram illustrating a configuration of a real-time data change processing system of an in-memory database according to an embodiment of the present invention.
FIG. 3 is a view for explaining change set metadata managed by a metadata manager, which is a part of FIG. 2.
FIG. 4 is a diagram illustrating change table metadata managed by a metadata manager, which is a part of FIG. 2.
FIG. 5 is a diagram illustrating source table metadata managed by a metadata manager, which is a part of FIG. 2.
FIG. 6 is a diagram illustrating published column metadata managed by a metadata manager, which is a part of FIG. 2.
FIG. 7 is a diagram illustrating subscription metadata managed by a metadata manager, which is a part of FIG. 2.
FIG. 8 is a diagram illustrating subscription table metadata managed by a metadata manager, which is a part of FIG. 2.
FIG. 9 is a diagram illustrating subscription column metadata managed by a metadata manager, which is a part of FIG. 2.
FIG. 10 is a diagram illustrating a process of confirming an insert transaction by a log capture manager, which is a part of FIG. 2.
FIG. 11 is a diagram illustrating an update transaction checking process by a log capture manager, which is a part of FIG. 2.
FIG. 12 is a diagram illustrating an embodiment of a delete transaction confirmation process of a log capture manager, which is a part of FIG. 2.
FIG. 13 is a diagram illustrating another embodiment of a delete transaction confirmation process of a log capture manager, which is a part of FIG. 2.

본 발명에 기재된 실시예 및 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 표현하는 것은 아니므로, 본 발명의 권리범위는 본문에 설명된 실시예 및 도면에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Configurations shown in the embodiments and drawings described in the present invention are merely preferred embodiments of the present invention, and do not represent all of the technical idea of the present invention, the scope of the invention is the embodiments and drawings described in the text It should not be construed as limited by That is, since the embodiments may be variously modified and may have various forms, the scope of the present invention should be understood to include equivalents capable of realizing the technical idea. In addition, the objects or effects presented in the present invention does not mean that a specific embodiment should include all or only such effects, the scope of the present invention should not be understood as being limited thereby.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art unless otherwise defined. The terms defined in the commonly used dictionary should be interpreted to correspond with the meanings in the context of the related art, and should not be interpreted as having an ideal or excessively formal meaning not explicitly defined in the present invention.

본 발명의 일 실시예에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은 발간/구독 모델 기반의 배포 기술과 변경 데이터 캡쳐 기술을 포함한 다양한 DBMS 서비스를 제공한다.The real-time data change processing system of an in-memory database according to an embodiment of the present invention provides various DBMS services including a publication / subscription model based distribution technology and a change data capture technology.

먼저, 발간/구독 배포 기술은 데이터 통신 도메인에 참여하는 사용자가 발간자(데이터 생산)나 구독자(데이터 소비)가 되어 서비스의 연결 지향없이 자신이 원하는 데이터를 생산하고 소비하는 데이터 배포 기술이다. 이러한 발간/구독 배포 기술은 메시지 기반으로 비연결 지향 서비스의 특징을 가지며, 서비스에 대한 정보(위치, 시간, 동기화)에 관계없이 데이터에 대한 접근을 가능하게 해주어 실시간에 적합한 통신 환경을 제공한다. First, the publishing / subscription distribution technology is a data distribution technology in which a user who participates in a data communication domain becomes a publisher (data production) or a subscriber (data consumption) to produce and consume data desired by the user without a connection orientation of a service. The publication / subscription distribution technology has a feature of connectionless-oriented service based on message, and provides a suitable communication environment in real time by enabling access to data regardless of information (location, time, synchronization) of the service.

다음에, 인-메모리 데이터베이스 내에서 변경된 데이터를 관리하기 위한 변경 데이터 캡쳐(Changed Data Capture, CDC) 기술은 사용자가 특정 테이블에 대해 변경된 데이터를 확인할 때, 데이터베이스가 기록한 정보를 통하여 변경된 데이터를 확인하는 기술이다. Next, Changed Data Capture (CDC) technology for managing changed data within the in-memory database, which identifies the changed data through the information recorded by the database when the user checks the changed data for a particular table. Technology.

도 1은 본 발명의 일 실시예에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템의 전체 흐름을 설명하는 도면이다.1 is a view for explaining the overall flow of the real-time data change processing system of the in-memory database according to an embodiment of the present invention.

도 1을 참고하면, 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은 데이터 캡쳐링 프로세스(110)에서 데이터베이스(100)가 기록한 Redo Log(재수행 로그)를 읽어서 변경된 데이터에 대해서만 사용자가 지정한 변경 테이블(112)에 기록한다. 이때, Redo Log는 데이터베이스(100)의 값을 변경하는 경우에 자동적으로 데이터베이스(100)가 기록하는 로그 파일이다. Referring to FIG. 1, the real-time data change processing system of an in-memory database reads a redo log recorded by the database 100 in the data capturing process 110 and changes a user-specified change table only for the changed data. 112). At this time, the redo log is a log file automatically recorded by the database 100 when the value of the database 100 is changed.

데이터 캡쳐링 프로세스(110)는 소스 테이블(111)에서 수행되는 모든 데이터의 수정 작업을 데이터베이스의 트랜잭션 Redo 로그에 기록하고, 트랜잭션 Redo 로그를 읽어서 변경 데이터 캡쳐가 설정된 변경된 데이터 지정된 변경 테이블에 기록하며, 별도의 ETL(Extraction, Transformation and Loading) 관련 데이터 캡쳐 제어 프로세스(140)를 사용하여 변경 데이터 캡처 쿼리 함수(Change Data Capture Query Functions)를 통해 변경 테이블에서 변경 데이터를 추출하고 이를 근거로 하여 데이터를 업데이트 한다.The data capturing process 110 records the modification of all data performed in the source table 111 in the transaction redo log of the database, reads the transaction redo log, and writes in the changed data designated change table where change data capture is set, Extract data from change tables and update data based on change data capture query functions using a separate extraction, transformation and loading (ETL) related data capture control process (140) do.

상기한 데이터 캡쳐링 프로세스(110)를 통해 발간자는 변경 데이터를 캡쳐해야 하는 소스 테이블(111)을 식별한 후에 변경 데이터를 캡쳐하여 지정한 변경 테이블()에 저장한 후 구독자가 변경 데이터를 액세스할 수 있도록 허용한다. 데이터베이스(100)는 사용자가 변경된 데이터에 접근하도록 하기 위해 구독 뷰(121)를 생성하고, 사용자는 생성된 구독 뷰(121)를 통해 지정한 변경 테이블에서 변경된 데이터를 확인한다. Through the data capturing process 110, the publisher identifies the source table 111 to which the change data should be captured, captures the change data, stores it in the designated change table (), and then the subscriber can access the change data. Allow The database 100 generates a subscription view 121 to allow the user to access the changed data, and the user checks the changed data in the designated change table through the generated subscription view 121.

본 발명의 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템은 CDC 기능들을 효율적으로 이용할 수 있도록 SP(Service Pack) 패키지(130)를 통해서 처리한다. 여기서, SP 패키지는 데이터베이스에 저장되어 있는 서로 관련있는 PL/SQL 프러시저와 함수들의 집합이다. 이때, SP 패키지는 스펙을 정의하고, 각각의 프로시저들에 어떤 기능들이 필요하고, 무엇이 구현되어야 하는지를 정의하여 설계될 수 있다. The real-time data change processing system of the in-memory database of the present invention processes through the SP (Service Pack) package 130 to efficiently use the CDC functions. Here, an SP package is a collection of related PL / SQL procedures and functions stored in a database. In this case, the SP package may be designed by defining a specification and defining what functions are required for each procedure and what should be implemented.

도 2는 본 발명의 일 실시에에 따른 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템의 구성을 설명하는 블록도이다. 2 is a block diagram illustrating a configuration of a real-time data change processing system of an in-memory database according to an embodiment of the present invention.

도 2를 참고하면, 인-메모리 데이터베이스(100)는 로그 매니저(210), 트랜잭션 매니저(220) 및 CDC 모듈(230)을 포함하지만 이에 한정되지는 않는다.Referring to FIG. 2, the in-memory database 100 includes, but is not limited to, a log manager 210, a transaction manager 220, and a CDC module 230.

로그 매니저(210)는 데이터베이스(100)가 기록한 Redo Log를 확인하고, 해당 Redo Log로부터 변경된 데이터를 확인하는 역할을 수행한다.The log manager 210 checks the Redo Log recorded by the database 100 and checks the changed data from the Redo Log.

트랜잭션 매니저(220)는 변경 테이블 및 시스템 테이블의 값을 변경할 때, 데이터가 반영될 테이블에 대한 Lock 정보나 트랜잭션 ID 등의 정보를 관리하는 역할을 수행한다.When changing the values of the change table and the system table, the transaction manager 220 manages information such as lock information and transaction ID for the table to which the data is reflected.

CDC 모듈(230)은 메타데이터 매니저(231)와 로그캡쳐 매니저(232)를 포함한다.The CDC module 230 includes a metadata manager 231 and a log capture manager 232.

메타데이터 매니저(231)는 CDC 기능을 제공하기 위한 시스템 테이블 형태의 메타데이터를 관리하고, CDC 설정 기능 및 재구동시 이전 정보에 대한 복원 기능을 제공한다. The metadata manager 231 manages metadata in the form of a system table for providing a CDC function, and provides a CDC setting function and a restoration function for previous information when restarting.

로그캡쳐 매니저(232)는 데이터베이스 값의 변경시 데이터베이스가 기록한 로그 파일을 이용하여 변경된 데이터를 확인한 후 변경된 데이터에 따라 삽입/업데이트/삭제 트랜잭션을 결정하여 변경 테이블에 기록하고, 변경된 데이터의 접근을 위한 구독 뷰를 생성하여 사용자에게 제공한다. When the database value is changed, the log capture manager 232 checks the changed data using the log file recorded by the database, determines the insert / update / delete transaction according to the changed data, and records it in the change table, and accesses the changed data. Create a subscription view and provide it to the user.

도 3은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 변경 세트 메타데이터를 설명하는 도면이고, 도 4는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 변경 테이블 메타데이터를 설명하는 도면이며, 도 5는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 소스테이블 메타데이터를 설명하는 도면이고, 도 6은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 발간 컬럼 메타데이터를 설명하는 도면이며, 도 7은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 메타데이터를 설명하는 도면이고, 도 8은 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 테이블 메타데이터를 설명하는 도면이며, 도 9는 도 2의 일부 구성요소인 메타데이터 매니저에서 관리하는 구독 컬럼 메타데이터를 설명하는 도면이다. FIG. 3 is a diagram illustrating change set metadata managed by a metadata manager which is a component of FIG. 2, and FIG. 4 is a diagram illustrating change table metadata managed by a metadata manager which is a component of FIG. 2. 5 is a diagram illustrating source table metadata managed by a metadata manager, which is a component of FIG. 2, and FIG. 6 is a diagram illustrating published column metadata managed by a metadata manager, which is a component of FIG. FIG. 7 is a diagram illustrating subscription metadata managed by a metadata manager, which is a component of FIG. 2, and FIG. 8 is a diagram illustrating subscription table metadata managed by a metadata manager, which is a component of FIG. 2. 9 is a diagram illustrating subscription column metadata managed by a metadata manager, which is a part of FIG. 2. A figure.

도 3 내지 도 9를 참고하면, 메타데이터 매니저(231)는 데이터베이스의 로그 정보를 읽는 것만으로 CDC 기능을 수행할 수 없기 때문에 CDC 기능과 관련된 정보를 저장하기 위해 데이터베이스 내부에 시스템 테이블 형태의 메타데이터를 관리한다.3 to 9, since the metadata manager 231 cannot perform the CDC function simply by reading log information of the database, metadata in the form of a system table in the database to store information related to the CDC function. Manage it.

먼저, 도 3에 도시된 바와 같이, 변경세트 메타데이터는 데이터베이스 내부에 CDC에서 이용하는 객체인 변경세트에 대한 정보를 저장 및 관리하는 것으로서, 변경세트는 변경 테이블들을 관리하는 하나의 집합이다. 1개의 변경 세트에는 다수의 변경 테이블을 생성할 수 있으며, 변경 세트가 존재하지 않는 경우에는 변경 테이블을 생성할 수 없다. First, as shown in FIG. 3, the change set metadata stores and manages information about a change set, which is an object used by the CDC, in a database. The change set is a set that manages change tables. Multiple change tables can be created in one change set. If a change set does not exist, a change table cannot be created.

이러한 변경세트 메타데이터 테이블은 변경 세트의 이름, 변경 소스의 타입, 사용자가 설정하는 변경 세트에 대한 설명, 발간자 이름, 변경세트에 대한 고유 ID를 포함한다. This change set metadata table includes the name of the change set, the type of change source, a description of the change set that you set, the publisher name, and a unique ID for the change set.

다음, 도 4를 참고하면, 변경 테이블 메타데이터는 변경 데이터를 확인한 이후에 변경된 데이터를 저장하기 위한 변경 테이블에 대한 정보를 저장 및 관리한다. 변경 테이블 메타데이터 테이블은 변경 테이블의 소유자 이름, 변경 테이블 이름, 소스 테이블의 소유자 이름, 소스 테이블 이름, 발간 ID, 변경세트의 ID를 포함한다. Next, referring to FIG. 4, the change table metadata stores and manages information on a change table for storing changed data after checking the change data. The change table metadata table includes the change table owner name, change table name, source table owner name, source table name, publication ID, and change set ID.

도 5를 참고하면, 소스 테이블 메타데이터는 CDC 서비스 수행중인 소스 테이블의 정보, 연관된 변경 테이블의 정보를 저장 및 관리하는 것으로서, 소스테이블 메타데이터 테이블은 소스 테이블의 소유자 이름, 소스 테이블 이름, 변경 테이블의 소유자 이름, 변경 테이블 이름을 포함한다. Referring to FIG. 5, the source table metadata stores and manages information of a source table and an associated change table in which a CDC service is performed. The source table metadata table includes an owner name, a source table name, and a change table of a source table. Contains the owner name and change table name.

도 6을 참고하면, 발간 컬럼 메타데이터는 변경된 데이터에 대한 정보를 칼럼(column) 단위로 저장 및 관리하는 것으로서, 발간 컬럼 메타데이터 테이블은 변경 세트 이름, 변경 테이블의 소유자 이름, 변경 테이블의 이름, 소스 테이블의 소유자 이름, 소스 테이블의 이름, 소스 컬럼 이름(데이터 캡쳐 대상 컬럼), 데이터 타입, 데이터 길이, 데이터 전체 길이(Precision), 데이터 스케일(소수점 이하 자리), 데이터 Null 값 허용 플래그(Data Nullable flag), 데이터 발간 ID를 포함한다.Referring to FIG. 6, the published column metadata stores and manages information on changed data in columns. The published column metadata table includes a change set name, an owner name of a change table, a name of a change table, Owner name of the source table, name of the source table, source column name (data capture target column), data type, data length, data total length (precision), data scale (decimal point), data nullable flag (data nullable) flag), including the data publication ID.

도 7을 참고하면, 구독 메타데이터는 CDC에서 이용하는 구독 객체에 대한 정보를 저장하는데, 구독 객체는 실제 데이터의 변경 확인을 수행하는 쓰레드를 생성하며, 구독의 상태에 따라 데이터의 변경을 확인하고, 변경 테이블에 값을 삽입한다. 이러한 구독 메타데이터 테이블은 변경세트 이름, 변경 세트의 소유자, 구독 상태, 구독 이름을 포함한다.Referring to FIG. 7, the subscription metadata stores information about a subscription object used by the CDC. The subscription object creates a thread for performing change confirmation of the actual data, confirms the change of data according to the state of the subscription, Insert a value into the change table. This subscription metadata table contains the change set name, the owner of the change set, the subscription status, and the subscription name.

도 8을 참고하면, 구독 테이블 메타데이터는 구독 및 구독 뷰의 정보, 변경된 데이터의 관리 번호(Control_number)를 저장 및 관리한다. 이때, 관리 번호는 변경된 데이터를 어디까지 읽었는지 확인하기 위한 정보로서, 사용자가 조작하는 값이 아니고, 데이터베이스 내부에서 관리하는 값이다. 이러한 구독 테이블 메타데이터 테이블은 소스 테이블의 소유자, 소스 테이블의 이름, 구독 뷰 이름, 구독 이름, 발간 ID, 연장/소거를 위한 최소값과 최대값을 포함한다.Referring to FIG. 8, the subscription table metadata stores and manages information of a subscription and a subscription view, and a management number (Control_number) of changed data. At this time, the management number is information for confirming how far the changed data has been read, and is not a value manipulated by the user, but a value managed inside the database. These subscription table metadata tables include the owner of the source table, the name of the source table, the subscription view name, the subscription name, the publication ID, the minimum and maximum values for extension / removal.

따라서, 사용자는 변경된 데이터를 구독 뷰를 통해서 확인할 수 있으며, 구독 뷰에 보이는 데이터는 구독 테이블 메타데이터 테이블에 존재하는 관리 번호에 따라 결정된다. 또한, 사용자가 변경된 데이터를 확인하기 위해 상기 변경 테이블에서 구독 뷰에 데이터를 투영시키는 연장(Extend) 프로시저와 상기 변경 테이블에 있는 데이터를 삭제하는 소거(Purge) 프로시저 중 어느 하나의 프로시저를 호출하고, 사용자에 의해 호출된 프로시저에 따라 데이터베이스에서 관리 번호의 값을 결정한다. Therefore, the user can check the changed data through the subscription view, and the data shown in the subscription view is determined according to the management number existing in the subscription table metadata table. In addition, either the extended procedure for projecting the data from the change table to the subscription view to confirm the changed data, and the purge procedure for deleting the data in the change table. Call and determine the value of the management number in the database according to the procedure called by the user.

도 9를 참고하면, 구독 컬럼 메타데이터는 CDC 기능을 통해 실시간 데이터 변경을 확인하는 컬럼에 대한 정보를 저장 및 관리하는 것으로서, 구독 컬럼 메타데이터 테이블은 소스 테이블의 소유자, 소스 테이블 이름, 컬럼 이름, 구독 이름을 포함한다. Referring to FIG. 9, the subscription column metadata stores and manages information on a column confirming real-time data change through a CDC function. The subscription column metadata table includes an owner of a source table, a source table name, a column name, Contains the subscription name.

도 10은 도 2의 일부 구성요소인 로그캡쳐 매니저가 삽입 트랜잭션 확인 과정을 설명하는 도면이고, 도 11은 도 2의 일부 구성요소인 로그캡쳐 매니저가 업데이트 트랜잭션 확인 과정을 설명하는 도면이며, 도 12는 도 2의 일부 구성요소인 로그캡쳐 매니저가 삭제 트랜잭션 확인 과정에 대한 일 실시예를 설명하는 도면이고, 도 13은 도 2의 일부 구성요소인 로그캡쳐 매니저가 삭제 트랜잭션 확인 과정에 대한 다른 실시예를 설명하는 도면이다. FIG. 10 is a diagram illustrating a process of confirming an insert transaction by a log capture manager, which is a component of FIG. 2. FIG. 11 is a diagram illustrating a process of confirming an update transaction, by a log capture manager, which is a component of FIG. 2 is a view illustrating an embodiment of a process of confirming a deletion transaction by the log capture manager, which is a part of FIG. 2, and FIG. 13 is a diagram of another embodiment of a process of confirming the deletion transaction, by the log capture manager, which is a part of FIG. 2. It is a figure explaining.

도 10 내지 도 13을 참고하면, 로그캡쳐 매니저는 변경된 데이터를 로그 파일로부터 확인하여 변경 테이블에 삽입하기 위해서는 삽입 트랜잭션, 업데이트 트랜잭션, 삭제 트랜잭션에 대하여 각각 처리해야 한다.10 to 13, the log capture manager must process insert transactions, update transactions, and delete transactions, respectively, in order to check the changed data from the log file and insert the changed data into the change table.

로그캡쳐 매니저(232)는 CDC 처리를 위해 제1 로그 파일(InsrtRecLog)과 제2 로그 파일(LogicalVersioningLog)을 이용하여 변경된 데이터를 확인한다. 이때, InsrtRecLog는 신규 값에 대한 로그로서 삽입과 업데이트시 기록되는 로그 파일이고, LogicalVersioningLog는 기존의 값에 대한 로그로서 업데이트와 삭제시 기록되는 로그 파일이다. 만일, 1을 2로 업데이트하는 경우에, InsrtRecLog에 2(UN)이 기록되며, LogicalVersioningLog에 1(UO)가 기록된다. The log capture manager 232 checks the changed data by using the first log file (InsrtRecLog) and the second log file (LogicalVersioningLog) for CDC processing. At this time, InsrtRecLog is a log file recorded when inserting and updating as a log of new values, and LogicalVersioningLog is a log file recorded when updating and deleting as a log of existing values. If 1 is updated to 2, 2 (UN) is recorded in InsrtRecLog, and 1 (UO) is recorded in LogicalVersioningLog.

도 10에 도시된 바와 같이, 로그캡쳐 매니저(232)는 순차적으로 로그 파일을 읽은 중에 InsertRecLog의 후행하는 로그 파일에 LogicalVersioningLog이 없는 경우에 해당 트랜잭션을 삽입 트랜잭션으로 판단한 후 즉시 변경 테이블에 삽입한다.As shown in FIG. 10, the log capture manager 232 sequentially inserts a transaction into the change table after determining that the transaction is an insert transaction when there is no LogicalVersioningLog in a subsequent log file of InsertRecLog while sequentially reading the log file.

로그캡쳐 매니저(232)는 순차적으로 로그파일을 순차적으로 읽는 중에 LogicalVersioningLog가 존재하고, LogicalVersioningLog의 후행하는 로그 파일이 InsertRecLog엔 경우에 상기 InsertRecLog에 저장된 서브타입(subtype)에 따라 트랜잭션의 타입을 결정한다. The log capture manager 232 determines the type of transaction according to the subtype stored in the InsertRecLog when the logicalVersioningLog exists while the log file is sequentially read and the log file following the LogicalVersioningLog is the InsertRecLog.

도 11에 도시된 바와 같이, 로그캡쳐 매니저(232)는 InsertRecLog에 저장된 서브타입이 업데이트인 경우에 업데이트 트랜잭션으로 판단한 후에 상기 LogicalVersioningLog에 기록된 정보는 업데이트 조건에 해당하는 값(UO)이고, InsertRecLog에 기록된 정보는 업데이트된 신규 값으로 변경 테이블에 삽입한다. As shown in FIG. 11, when the log capture manager 232 determines that the update is a subtype stored in the InsertRecLog as an update transaction, the information recorded in the LogicalVersioningLog is a value (UO) corresponding to the update condition, and the information is recorded in the InsertRecLog. The recorded information is inserted into the change table with the updated new value.

도 12에 도시된 바와 같이, 로그캡쳐 매니저(232)는 InsertRecLog에 저장된 서브타입이 삭제인 경우에 삭제 트랜잭션으로 판단한 후에 변경 테이블에서 삭제한다. As shown in FIG. 12, when the subtype stored in InsertRecLog is a delete, the log capture manager 232 deletes the change from the change table after determining that the delete transaction is a delete transaction.

한편, 도 13에 도시된 바와 같이, 로그캡쳐 매니저(232)는 로그파일을 순차적으로 읽으면서 LogicalVersioningLog이 연속 존재하는 경우에, 해당 LogicalVersioningLog에 기록된 트랜잭션을 삭제 트랜잭션으로 판단한 후에 변경 테이블에서 삭제한다. On the other hand, as shown in Figure 13, the log capture manager 232 reads the log file in sequence, if there is a continuous LogicalVersioningLog, the log recorded in the LogicalVersioningLog to determine the transaction is deleted after deleting the transaction in the change table.

이와 같이, 본 발명은 변경된 데이터의 확인을 위해 인-메모리 데이터베이스가 별도의 처리 없이 기존에 기록한 로그 파일을 읽어와서 변경된 데이터를 동적으로 확인하고, CDC 모듈(230) 내의 메타데이터 매니저(231) 및 로그캡쳐 매니저(232)를 통해 변경된 데이터를 효율적으로 관리할 수 있다. As described above, the present invention reads the log file recorded by the in-memory database without additional processing to confirm the changed data and dynamically confirms the changed data, and checks the metadata manager 231 and the CDC module 230 in the CDC module 230. Through the log capture manager 232, it is possible to efficiently manage the changed data.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to a preferred embodiment of the present invention, those skilled in the art will be variously modified and changed within the scope of the invention without departing from the spirit and scope of the invention described in the claims below I can understand that you can.

100 : 인-메모리 데이터베이스 210 : 로그 매니저
220 : 트랜잭션 매니저 230 : CDC 모듈
231 : 메타데이터 매니저 232 : 로그캡쳐 매니저
100: in-memory database 210: log manager
220: transaction manager 230: CDC module
231: metadata manager 232: log capture manager

Claims (10)

인-메모리 데이터베이스 내에서 변경된 데이터를 관리하기 위한 변경 데이터 캡쳐(Changed Data Capture, CDC) 기능을 제공하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템에 있어서,
상기 CDC 기능을 제공하기 위한 시스템 테이블 형태의 메타데이터를 관리하고, CDC 설정 기능 및 재구동시 이전 정보에 대한 복원 기능을 제공하는 메타데이터 매니저; 및
데이터베이스 값의 변경시 데이터베이스가 기록한 로그 파일을 이용하여 변경된 데이터를 확인한 후 상기 변경된 데이터에 따라 삽입/업데이트/삭제 트랜잭션을 결정하여 변경 테이블에 기록하고, 상기 변경된 데이터의 접근을 위한 구독 뷰를 생성하여 사용자에게 제공하는 로그캡쳐 매니저를 포함하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
In a real-time data change processing system of an in-memory database that provides a change data capture (CDC) function for managing changed data in an in-memory database,
A metadata manager that manages metadata in the form of a system table for providing the CDC function, and provides a CDC setting function and a restoration function for previous information upon restart; And
When changing the database value, check the changed data using the log file recorded by the database, determine the insert / update / delete transaction according to the changed data, write it to the change table, and create a subscription view for access to the changed data. Real-time data change processing system of the in-memory database comprising a log capture manager for providing a user.
제1항에 있어서,
상기 메타데이터 매니저는,
상기 CDC 기능 수행시 적어도 하나 이상의 변경 테이블을 생성하고, 상기 변경 테이블을 관리하는 변경 세트(Change Set)에 대한 정보를 저장 및 관리하는 변경 세트 메타데이터;
상기 변경 테이블에 대한 정보를 저장 및 관리하는 변경 테이블 메타데이터;
상기 CDC 기능 수행중인 소스 테이블의 정보, 연관된 변경 테이블의 정보를 저장 및 관리하는 소스 테이블 메타데이터;
상기 변경된 데이터에 대한 정보를 칼럼(column) 단위로 저장 및 관리하는 발간 컬럼 메타데이터;
상기 CDC에서 이용하는 구독 객체에 대한 정보를 저장하는 구독 메타데이터;
상기 구독 및 구독 뷰의 정보, 상기 변경된 데이터의 관리 번호를 저장 및 관리하는 구독 테이블 메타데이터; 및
상기 CDC 기능을 통해 실시간 데이터 변경을 확인하는 컬럼에 대한 정보를 저장 및 관리하는 구독 컬럼 메타데이터를 포함하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
The method of claim 1,
The metadata manager,
Change set metadata for generating at least one change table when performing the CDC function and storing and managing information on a change set managing the change table;
Change table metadata for storing and managing information about the change table;
Source table metadata for storing and managing information of a source table in which the CDC function is being performed and information of an associated change table;
Published column metadata that stores and manages information about the changed data in a column unit;
Subscription metadata that stores information about a subscription object used by the CDC;
A subscription table metadata for storing and managing information of the subscription and subscription view and a management number of the changed data; And
And a subscription column metadata for storing and managing information on a column for confirming a real-time data change through the CDC function.
제2항에 있어서,
상기 구독 메타데이터의 구독 개체는 데이터의 변경 확인을 수행하는 쓰레드를 생성하고, 구독 상태에 따라 데이터의 변경을 확인하여 상기 변경 테이블에 값을 삽입하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
The method of claim 2,
The subscription object of the subscription metadata creates a thread for performing data change check, and checks the data change according to the subscription state and inserts a value into the change table. Processing system.
제2항에 있어서,
사용자가 변경된 데이터를 확인하기 위해 상기 변경 테이블에서 구독 뷰에 데이터를 투영시키는 연장(Extend) 프로시저와 상기 변경 테이블에 있는 데이터를 삭제하는 소거(Purge) 프로시저 중 어느 하나의 프로시저를 호출하고, 상기 호출된 프로시저에 따라 데이터베이스에서 관리 번호의 값을 결정하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
The method of claim 2,
In order to confirm the changed data, the user calls one of an extended procedure for projecting data from the change table to a subscription view and a purge procedure for deleting data in the change table. And determining a value of a management number in the database according to the called procedure.
제1항에 있어서,
상기 로그캡쳐 매니저는, 상기 CDC 기능 수행을 위해 신규 값에 대해 삽입 또는 업데이트시 기록되는 제1 로그 파일과 기존의 값에 대해 삭제 또는 업데이트시 기록되는 제2 로그 파일을 이용하여 변경된 데이터를 확인하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
The method of claim 1,
The log capture manager checks the changed data by using a first log file recorded when the new value is inserted or updated to perform the CDC function and a second log file recorded when the existing value is deleted or updated. Real-time data change processing system of the in-memory database, characterized in that.
제5항에 있어서,
상기 로그캡쳐 매니저는,
상기 로그 파일을 순차적으로 읽으면서 상기 제1 로그 파일의 후행하는 로그 파일에 제2 로그 파일이 없는 경우에 해당 트랜잭션을 삽입 트랜잭션으로 판단한 후 변경 테이블에 삽입하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
The method of claim 5,
The log capture manager,
When the log file is sequentially read while the second log file does not exist in the subsequent log file of the first log file, the transaction is determined as an insert transaction and inserted into the change table. Data change processing system.
제5항에 있어서,
상기 로그캡쳐 매니저는,
상기 로그파일을 순차적으로 읽으면서 상기 제2 로그 파일이 존재하고, 상기 제2 로그 파일의 후행하는 로그 파일이 제1 로그 파일인 경우에 상기 제1 로그 파일에 저장된 서브타입(subtype)에 따라 트랜잭션의 타입을 결정하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
The method of claim 5,
The log capture manager,
If the second log file is present while the log file is sequentially read, and a subsequent log file of the second log file is the first log file, the transaction is performed according to the subtype stored in the first log file. And determine the type of the real-time data change processing system of the in-memory database.
제7항에 있어서,
상기 로그캡쳐 매니저는 상기 제1 로그 파일에 저장된 서브타입이 업데이트인 경우에 업데이트 트랜잭션으로 판단한 후에 상기 제2 로그 파일에 기록된 정보는 업데이트 조건에 해당하는 값이고, 상기 제1 로그 파일에 기록된 정보는 업데이트된 신규 값으로 변경 테이블에 삽입하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
The method of claim 7, wherein
If the log capture manager determines that the subtype stored in the first log file is an update, then the information recorded in the second log file is a value corresponding to an update condition, and is recorded in the first log file. And inserting information into the change table with the updated new value.
제7항에 있어서,
상기 로그캡쳐 매니저는 상기 제1 로그 파일에 저장된 서브타입이 삭제인 경우에 삭제 트랜잭션으로 판단한 후에 상기 변경 테이블에서 삭제하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
The method of claim 7, wherein
And the log capture manager deletes the change table from the change table after determining that the subtype stored in the first log file is a delete transaction.
제5항에 있어서,
상기 로그캡쳐 매니저는,
상기 로그파일을 순차적으로 읽으면서 상기 제2 로그 파일이 연속 존재하는 경우에, 삭제 트랜잭션으로 판단한 후에 상기 변경 테이블에서 삭제하는 것을 특징으로 하는 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템.
The method of claim 5,
The log capture manager,
And sequentially reading the log file while the second log file is present, and deleting the log file after deleting the log file from the change table.
KR1020170162901A 2017-11-30 2017-11-30 System for processing real-time data modification of in-memory database KR102038529B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170162901A KR102038529B1 (en) 2017-11-30 2017-11-30 System for processing real-time data modification of in-memory database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170162901A KR102038529B1 (en) 2017-11-30 2017-11-30 System for processing real-time data modification of in-memory database

Publications (2)

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

Family

ID=66847927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170162901A KR102038529B1 (en) 2017-11-30 2017-11-30 System for processing real-time data modification of in-memory database

Country Status (1)

Country Link
KR (1) KR102038529B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930821A (en) * 2020-09-08 2020-11-13 平安国际智慧城市科技股份有限公司 One-step data exchange method, device, equipment and storage medium
KR102221593B1 (en) * 2020-10-23 2021-03-02 주식회사 오파스넷 System for maintaining the installation envoronment of computer terminals
US11514020B2 (en) 2020-11-13 2022-11-29 International Business Machines Corporation Tracking change data capture log history
CN112579603B (en) * 2020-12-24 2023-11-17 北京志翔信息技术有限公司 CDC-based data model dynamic information perception monitoring method and device
CN113434480A (en) * 2021-06-09 2021-09-24 作业帮教育科技(北京)有限公司 Multi-stage database building method, device and storage medium for searching database
CN113626453A (en) * 2021-07-30 2021-11-09 浪潮云信息技术股份公司 Metadata change capturing method
CN114490775A (en) * 2022-02-11 2022-05-13 广东美房智高机器人有限公司 Robot real-time operation data processing method, device, server and medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101786865B1 (en) 2016-05-25 2017-10-19 (주)알투비솔루션 Archive log intergrated management system generated by database management system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020037399A (en) * 2000-11-14 2002-05-21 구자홍 method for processing a transaction of the database management system
KR20040050958A (en) * 2002-12-11 2004-06-18 텔코웨어 주식회사 Memory database back-up apparatus by duplicating management and method thereof
KR101265388B1 (en) * 2009-07-02 2013-05-20 엔에이치엔비즈니스플랫폼 주식회사 High Availability Data Base Management System and Method for Managing Database Using High Availability Data Base Management System
KR101545626B1 (en) * 2014-01-10 2015-08-20 국방과학연구소 System for interoperation between dds and dbms
KR101605455B1 (en) 2014-07-04 2016-03-22 (주)선재소프트 Method for Replicationing of Redo Log without Data Loss and System Thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101786865B1 (en) 2016-05-25 2017-10-19 (주)알투비솔루션 Archive log intergrated management system generated by database management system

Also Published As

Publication number Publication date
KR20190063835A (en) 2019-06-10

Similar Documents

Publication Publication Date Title
KR102038529B1 (en) System for processing real-time data modification of in-memory database
US11429641B2 (en) Copying data changes to a target database
KR101956236B1 (en) Data replication technique in database management system
US10552372B2 (en) Systems, methods, and computer-readable media for a fast snapshot of application data in storage
CN104301360B (en) A kind of method of logdata record, log server and system
US9411866B2 (en) Replication mechanisms for database environments
CN108509462B (en) Method and device for synchronizing activity transaction table
KR102119258B1 (en) Technique for implementing change data capture in database management system
US20130110873A1 (en) Method and system for data storage and management
EP2380090B1 (en) Data integrity in a database environment through background synchronization
US20150242451A1 (en) Database Table Re-Partitioning Using Two Active Partition Specifications
CN103646111A (en) System and method for realizing real-time data association in big data environment
CN105608086A (en) Transaction processing method and device of distributed database system
EP2562657B1 (en) Management of update transactions and crash recovery for columnar database
US8135763B1 (en) Apparatus and method for maintaining a file system index
KR20200056357A (en) Technique for implementing change data capture in database management system
KR101922044B1 (en) Recovery technique of data intergrity with non-stop database server redundancy
CN108153804B (en) Metadata log updating method for symmetric distributed file system
US20150006485A1 (en) High Scalability Data Management Techniques for Representing, Editing, and Accessing Data
US11150964B1 (en) Sequential processing of changes in a distributed system
US8751443B1 (en) Online mirror state transitions for good quality of service and high availability in databases
KR20180126431A (en) Recovery technique of data intergrity with non-stop database server redundancy
CN110019092A (en) Method, controller and the system of data storage
US8700566B2 (en) Offline restructuring of DEDB databases
CN117033322A (en) Big data storage method, system, electronic equipment and storage medium integrating stream and batch

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