KR20220133508A - System for transmitting high performance data between dbms of different type for data lifecycle management - Google Patents

System for transmitting high performance data between dbms of different type for data lifecycle management Download PDF

Info

Publication number
KR20220133508A
KR20220133508A KR1020210038704A KR20210038704A KR20220133508A KR 20220133508 A KR20220133508 A KR 20220133508A KR 1020210038704 A KR1020210038704 A KR 1020210038704A KR 20210038704 A KR20210038704 A KR 20210038704A KR 20220133508 A KR20220133508 A KR 20220133508A
Authority
KR
South Korea
Prior art keywords
data
dbms
agent
dbmss
transfer system
Prior art date
Application number
KR1020210038704A
Other languages
Korean (ko)
Other versions
KR102599041B1 (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 KR1020210038704A priority Critical patent/KR102599041B1/en
Publication of KR20220133508A publication Critical patent/KR20220133508A/en
Application granted granted Critical
Publication of KR102599041B1 publication Critical patent/KR102599041B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Abstract

A purpose of the present invention is to provide a high-performance data migration system between heterogeneous DBMSs for data life cycle management. The present invention reduces operating costs by changing a storage method according to a data life cycle, improves the performance of an operating server, and automatically transfers large amounts of data that are difficult to manage manually according to the transfer conditions and schedule. In order to achieve the purpose, a high-performance data migration system between heterogeneous DBMS for data life cycle management according to the present invention includes: a source DBMS; a target DBMS that transfers large amounts of data from the source DBMS; and an agent loading the bulk data into the target DBMS through data caching in memory.

Description

데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템{SYSTEM FOR TRANSMITTING HIGH PERFORMANCE DATA BETWEEN DBMS OF DIFFERENT TYPE FOR DATA LIFECYCLE MANAGEMENT}High-performance data transfer system between heterogeneous DBMS for data life cycle management

본 발명은 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에 관한 것으로, 더욱 상세하게는 데이터의 생명 주기에 따라 보관 방식을 달리하여 운영 비용의 절감 및 운영 서버의 성능을 개선하기 위한 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에 관한 것이다.The present invention relates to a high-performance data transfer system between heterogeneous DBMSs for data life cycle management, and more particularly, data life for reducing operating costs and improving the performance of operating servers by changing storage methods according to data life cycles It relates to a high-performance data transfer system between heterogeneous DBMSs for cycle management.

최근, 데이터량이 급격히 증가함에 따라, 운영 DB에는 불필요하거나 또는 관리 감시를 위한 비활성화 데이터(Inactive Data)가 대부분의 용량을 차지하고 있다.Recently, as the amount of data has rapidly increased, inactive data that is unnecessary for the operation DB or for management and monitoring occupies most of the capacity.

따라서, 대부분의 용량을 차지하고 있는 운영 DB의 비활성화 데이터를 이관하는 시스템이 제공되고 있다.Therefore, a system for transferring the inactive data of the operation DB, which occupies most of the capacity, is provided.

도 1은 종래의 이기종 DBMS 간의 데이터 이관 처리 시스템을 나타내는 도면이다.1 is a diagram illustrating a conventional data transfer processing system between heterogeneous DBMSs.

도 1을 참조하면, 종래의 이기종 DBMS 간의 데이터 이관 처리 시스템(10)은 소스 DBMS(1)의 데이터를 타겟 DBMS(2)로 이관시 별도의 스토리지(3)를 사용하고 있었다.Referring to FIG. 1 , the conventional data transfer processing system 10 between heterogeneous DBMSs uses a separate storage 3 when transferring data from a source DBMS 1 to a target DBMS 2 .

이러한 별도의 스토리지(3)는 데이터의 임시 저장을 위한 스토리지의 역할을 수행한다.This separate storage 3 serves as a storage for temporary storage of data.

하지만, 소스 DBMS(1)의 대용량 데이터에 의해 이러한 스토리지(3)는 대용량화되고 있으며, 대용량 임시 저장을 위한 스토리지(3)의 비용이 증가되는 문제점이 있다.However, due to the large-capacity data of the source DBMS 1 , the storage 3 is becoming large-capacity, and there is a problem in that the cost of the storage 3 for large-capacity temporary storage increases.

또한, 이러한 스토리지(3)의 용량에 따라 동시 이관 데이터 용량이 제한되는 문제점이 있다.In addition, there is a problem in that the simultaneous transfer data capacity is limited according to the capacity of the storage 3 .

게다가, 임시 저장 스토리지(3)에 발생하는 입출력(I/O) 부하에 따른 이관 성능이 저하되는 문제점이 있다.In addition, there is a problem in that the transfer performance is reduced according to the input/output (I/O) load generated in the temporary storage storage 3 .

즉, 별도의 임시 저장 스토리지(3)를 포함하고 있는 종래의 이기종 DBMS 간의 데이터 이관 처리 시스템(10)은 스토리지 및 관리 비용 증가와, 백업 시간의 지속적인 증가와, 성능 저하 등의 문제가 발생하고 있다.That is, the conventional data transfer processing system 10 between heterogeneous DBMSs including a separate temporary storage storage 3 has problems such as increased storage and management costs, continuous increase in backup time, and performance degradation. .

따라서, 데이터의 생명 주기에 따라 비활성 데이터를 저비용의 스토리지로 이관하여 별도 관리가 가능한 ILM 솔루션의 필요성이 지속적으로 요구되고 있다.Accordingly, there is a continuous need for an ILM solution capable of separately managing inactive data by transferring it to low-cost storage according to the life cycle of the data.

대한민국 공개특허공보 제10-2011-0109541호 (2011.10.06. 공개)Republic of Korea Patent Publication No. 10-2011-0109541 (published on Oct. 6, 2011)

상기한 바와 같은 종래의 문제점을 해결하기 위한 본 발명의 목적은 데이터의 수명 주기에 따라 보관 방식을 달리하여 운영 비용을 절감시키고, 운영 서버의 성능을 개선하며, 수작업으로 이관 관리가 어려운 대용량의 데이터를 이관 조건 및 스케쥴에 따라 자동으로 이관할 수 있는 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템을 제공하는 것이다.An object of the present invention to solve the problems of the prior art as described above is to reduce the operating cost by changing the storage method according to the life cycle of the data, to improve the performance of the operating server, and to manually transfer and manage large-capacity data. It is to provide a high-performance data transfer system between heterogeneous DBMSs for data life cycle management that can automatically migrate data according to transfer conditions and schedules.

상기 목적을 달성하기 위해, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템은, 소스 DBMS; 상기 소스 DBMS로부터 대용량 데이터를 이관받는 타겟 DBMS; 및 상기 대용량 데이터를 메모리 상에서 데이터 캐싱을 통해 상기 타겟 DBMS에 적재하는 에이전트;를 포함하는 것을 특징으로 한다.In order to achieve the above object, a high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention includes: a source DBMS; a target DBMS to which large-capacity data is transferred from the source DBMS; and an agent that loads the large amount of data into the target DBMS through data caching in memory.

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서, 상기 에이전트는, 상기 소스 DBMS로부터 추출된 데이터를 추출 순서에 따라 보관하는 메모리 큐(Memory Queue)를 포함하는 것을 특징으로 한다.In addition, in the high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention, the agent includes a memory queue for storing data extracted from the source DBMS in an extraction order. do it with

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서, 상기 에이전트는, 상기 소스 DBMS의 대용량 데이터를 복수의 추출 쓰레드가 테이블별로 1개의 테이블을 각각 추출하여 1개의 상기 메모리 큐에 각각 보관하고, 보관된 복수의 상기 테이블을 복수의 반영 쓰레드에 의해 1개씩 테이블별로 상기 타겟 DBMS에 반영하는 것을 특징으로 한다.In addition, in the high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention, the agent extracts a large amount of data from the source DBMS by a plurality of extraction threads, each extracting one table for each table to create one memory It is characterized in that each table is stored in a queue, and a plurality of stored tables are reflected to the target DBMS for each table one by one by a plurality of reflection threads.

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서, 상기 에이전트는, 상기 대용량 데이터의 추출과 반영은 각 테이블별로 별도의 쓰레드(Thread)로 각각 구동되는 멀티쓰레드로 구현되는 것을 특징으로 한다.In addition, in the high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention, the agent is implemented as a multi-thread in which the extraction and reflection of the large-capacity data are driven by separate threads for each table. characterized by being

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서, 상기 에이전트는, 추출된 상기 대용량 데이터를 상기 타겟 DBMS에 반영시, 반영 쓰레드로부터 CSV 포맷(Format)으로 메모리 파일을 전송받고, 전송받은 상기 메모리 파일을 벌크 로더(Bulk Loader)에 의한 상기 메모리 상의 파이프 통신을 이용하여 로더(Loader)하는 것을 특징으로 한다.In addition, in the high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention, when the agent reflects the extracted large-capacity data to the target DBMS, the memory file is sent from the reflection thread in CSV format. It is characterized in that the received memory file is loaded using a pipe communication on the memory by a bulk loader.

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서, 상기 에이전트는, 상기 소스 DBMS와 상기 타겟 DBMS의 캐릭터셋(Character Set)이 상이한지 여부를 판별하는 것을 특징으로 한다.In addition, in the high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention, the agent determines whether the character sets of the source DBMS and the target DBMS are different. .

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서, 상기 에이전트는, 상기 캐릭터셋이 상이한 것으로 판별하면, 상기 소스 DBMS와 상기 타겟 DBMS에 맞는 캐릭터셋으로 자동 인코딩하는 것을 특징으로 한다.In addition, in the high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention, when the agent determines that the character sets are different, automatically encoding the source DBMS and the target DBMS with a character set suitable for characterized.

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서, 상기 에이전트는, 복수의 소스 DBMS와 복수의 타겟 DBMS에 대한 동시 대용량 데이터 이관이 가능하도록 DBMS 종류를 자동 판별하는 것을 특징으로 한다.In addition, in the high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention, the agent automatically determines the DBMS type to enable simultaneous large-capacity data transfer to a plurality of source DBMSs and a plurality of target DBMSs. characterized.

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서, 상기 에이전트는, 판별된 상기 DBMS 종류별로 상이한 로딩 방식을 적용하여 대용량 데이터의 동시 이관을 수행하는 것을 특징으로 한다.In addition, in the high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention, the agent performs simultaneous transfer of large-capacity data by applying different loading methods for each type of the determined DBMS.

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서, 상기 에이전트가 적용되는 데이터 생명 주기 관리 서버; 및 상기 데이터 생명 주기 관리 서버를 원격에서 관리하는 관리자 PC;를 포함하며, 상기 데이터 생명 주기 관리 서버는, 상기 소스 DBMS 및 상기 타겟 DBMS의 정보 관리 및 데이터 흐름 제어를 모니터링하고, 이관 대상 테이블별 이관 수행 스케쥴을 관리하는 것을 특징으로 한다.In addition, in the high-performance data transfer system between heterogeneous DBMSs for data life-cycle management according to the present invention, a data life-cycle management server to which the agent is applied; and a manager PC remotely managing the data life cycle management server, wherein the data life cycle management server monitors information management and data flow control of the source DBMS and the target DBMS, and transfers each target table. It is characterized by managing the execution schedule.

기타 실시 예의 구체적인 사항은 "발명을 실시하기 위한 구체적인 내용" 및 첨부 "도면"에 포함되어 있다.Specific details of other embodiments are included in "Details for carrying out the invention" and attached "drawings".

본 발명의 이점 및/또는 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 각종 실시 예를 참조하면 명확해질 것이다.Advantages and/or features of the present invention, and methods for achieving them, will become apparent with reference to various embodiments described below in detail in conjunction with the accompanying drawings.

그러나 본 발명은 이하에서 개시되는 각 실시 예의 구성만으로 한정되는 것이 아니라 서로 다른 다양한 형태로도 구현될 수도 있으며, 단지 본 명세서에서 개시한 각각의 실시 예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구범위의 각 청구항의 범주에 의해 정의될 뿐임을 알아야 한다.However, the present invention is not limited to the configuration of each embodiment disclosed below, but may also be implemented in a variety of different forms, and each embodiment disclosed herein only makes the disclosure of the present invention complete, It is provided to fully inform those of ordinary skill in the art to which the scope of the present invention belongs, and it should be understood that the present invention is only defined by the scope of each of the claims.

본 발명에 의하면, 데이터의 수명 주기에 따라 보관 방식을 달리하여 운영 비용을 절감시키고, 운영 서버의 성능을 개선하며, 수작업으로 이관 관리가 어려운 대용량의 데이터를 이관 조건 및 스케쥴에 따라 자동으로 이관할 수 있는 효과가 있다.According to the present invention, by changing the storage method according to the life cycle of the data, the operating cost is reduced, the performance of the operating server is improved, and large-capacity data that is difficult to manually transfer is automatically transferred according to the transfer conditions and schedule. can have an effect.

도 1은 도 1은 종래의 이기종 DBMS 간의 데이터 이관 처리 시스템을 나타내는 도면.
도 2는 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템의 전체 구성을 나타내는 블록도.
도 3은 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서 데이터 캐싱을 통한 데이터 이관을 수행하는 에이전트를 나타내는 블록도.
도 4는 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서 이관 대상 DB 테이블별 멀티쓰레드 구조를 나타내는 블록도.
도 5는 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서 메모리상의 파이프 통신 방식을 이용하여 로더를 수행하는 구성을 나타내는 블록도.
도 6은 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서 DBMS 캐릭터셋을 자동 판별하여 적용하는 구성을 나타내는 블록도.
1 is a diagram illustrating a conventional data transfer processing system between heterogeneous DBMSs.
2 is a block diagram showing the overall configuration of a high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention.
3 is a block diagram illustrating an agent performing data transfer through data caching in a high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention.
4 is a block diagram illustrating a multi-thread structure for each DB table to be migrated in a system for transferring high-performance data between heterogeneous DBMSs for data life cycle management according to the present invention.
5 is a block diagram illustrating a configuration for performing a loader using a pipe communication method on a memory in a high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention.
6 is a block diagram illustrating a configuration for automatically determining and applying a DBMS character set in a high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention.

본 발명을 상세하게 설명하기 전에, 본 명세서에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 무조건 한정하여 해석되어서는 아니 되며, 본 발명의 발명자가 자신의 발명을 가장 최선의 방법으로 설명하기 위해서 각종 용어의 개념을 적절하게 정의하여 사용할 수 있고, 더 나아가 이들 용어나 단어는 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 함을 알아야 한다.Before describing the present invention in detail, the terms or words used herein should not be construed as being unconditionally limited to their ordinary or dictionary meanings, and in order for the inventor of the present invention to describe his invention in the best way It should be understood that the concepts of various terms can be appropriately defined and used, and further, these terms or words should be interpreted as meanings and concepts consistent with the technical idea of the present invention.

즉, 본 명세서에서 사용된 용어는 본 발명의 바람직한 실시 예를 설명하기 위해서 사용되는 것일 뿐이고, 본 발명의 내용을 구체적으로 한정하려는 의도로 사용된 것이 아니며, 이들 용어는 본 발명의 여러 가지 가능성을 고려하여 정의된 용어임을 알아야 한다.That is, the terms used in this specification are only used to describe preferred embodiments of the present invention, and are not used for the purpose of specifically limiting the content of the present invention, and these terms represent various possibilities of the present invention. It should be noted that the term has been defined with consideration in mind.

또한, 본 명세서에서, 단수의 표현은 문맥상 명확하게 다른 의미로 지시하지 않는 이상, 복수의 표현을 포함할 수 있으며, 유사하게 복수로 표현되어 있다고 하더라도 단수의 의미를 포함할 수 있음을 알아야 한다.Also, in this specification, it should be understood that, unless the context clearly indicates otherwise, the expression in the singular may include a plurality of expressions, and even if it is similarly expressed in plural, it should be understood that the meaning of the singular may be included. .

본 명세서의 전체에 걸쳐서 어떤 구성 요소가 다른 구성 요소를 "포함"한다고 기재하는 경우에는, 특별히 반대되는 의미의 기재가 없는 한 임의의 다른 구성 요소를 제외하는 것이 아니라 임의의 다른 구성 요소를 더 포함할 수도 있다는 것을 의미할 수 있다.In the case where it is stated throughout this specification that a component "includes" another component, it does not exclude any other component, but further includes any other component unless otherwise indicated. It could mean that you can.

더 나아가서, 어떤 구성 요소가 다른 구성 요소의 "내부에 존재하거나, 연결되어 설치된다"라고 기재한 경우에는, 이 구성 요소가 다른 구성 요소와 직접적으로 연결되어 있거나 접촉하여 설치되어 있을 수 있고, 일정한 거리를 두고 이격되어 설치되어 있을 수도 있으며, 일정한 거리를 두고 이격되어 설치되어 있는 경우에 대해서는 해당 구성 요소를 다른 구성 요소에 고정 내지 연결하기 위한 제 3의 구성 요소 또는 수단이 존재할 수 있으며, 이 제 3의 구성 요소 또는 수단에 대한 설명은 생략될 수도 있음을 알아야 한다.Furthermore, when it is described that a component is "exists in or is connected to" of another component, this component may be directly connected or installed in contact with another component, and a certain It may be installed spaced apart by a distance, and in the case of being installed spaced apart by a certain distance, a third component or means for fixing or connecting the corresponding component to another component may exist, and now It should be noted that the description of the components or means of 3 may be omitted.

반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결"되어 있다거나, 또는 "직접 접속"되어 있다고 기재되는 경우에는, 제 3의 구성 요소 또는 수단이 존재하지 않는 것으로 이해하여야 한다.On the other hand, when it is described that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the third element or means does not exist.

마찬가지로, 각 구성 요소 간의 관계를 설명하는 다른 표현들, 즉 " ~ 사이에"와 "바로 ~ 사이에", 또는 " ~ 에 이웃하는"과 " ~ 에 직접 이웃하는" 등도 마찬가지의 취지를 가지고 있는 것으로 해석되어야 한다.Likewise, other expressions describing the relationship between components, such as "between" and "immediately between", or "adjacent to" and "directly adjacent to", have the same meaning. should be interpreted as

또한, 본 명세서에서 "일면", "타면", "일측", "타측", "제 1", "제 2" 등의 용어는, 사용된다면, 하나의 구성 요소에 대해서 이 하나의 구성 요소가 다른 구성 요소로부터 명확하게 구별될 수 있도록 하기 위해서 사용되며, 이와 같은 용어에 의해서 해당 구성 요소의 의미가 제한적으로 사용되는 것은 아님을 알아야 한다.In addition, if terms such as "one side", "other side", "one side", "other side", "first", "second" are used in this specification, with respect to one component, this one component is It is used to be clearly distinguished from other components, and it should be understood that the meaning of the component is not limitedly used by such terms.

또한, 본 명세서에서 "상", "하", "좌", "우" 등의 위치와 관련된 용어는, 사용된다면, 해당 구성 요소에 대해서 해당 도면에서의 상대적인 위치를 나타내고 있는 것으로 이해하여야 하며, 이들의 위치에 대해서 절대적인 위치를 특정하지 않는 이상은, 이들 위치 관련 용어가 절대적인 위치를 언급하고 있는 것으로 이해하여서는 아니된다.In addition, in this specification, terms related to positions such as "upper", "lower", "left", "right", etc., if used, should be understood as indicating a relative position in the drawing with respect to the corresponding component, Unless an absolute position is specified for their position, these position-related terms should not be construed as referring to an absolute position.

또한, 본 명세서에서는 각 도면의 각 구성 요소에 대해서 그 도면 부호를 명기함에 있어서, 동일한 구성 요소에 대해서는 이 구성 요소가 비록 다른 도면에 표시되더라도 동일한 도면 부호를 가지고 있도록, 즉 명세서 전체에 걸쳐 동일한 참조 부호는 동일한 구성 요소를 지시하고 있다.In addition, in this specification, in specifying the reference numerals for each component of each drawing, the same component has the same reference number even if the component is indicated in different drawings, that is, the same reference is made throughout the specification. The symbols indicate the same components.

본 명세서에 첨부된 도면에서 본 발명을 구성하는 각 구성 요소의 크기, 위치, 결합 관계 등은 본 발명의 사상을 충분히 명확하게 전달할 수 있도록 하기 위해서 또는 설명의 편의를 위해서 일부 과장 또는 축소되거나 생략되어 기술되어 있을 수 있고, 따라서 그 비례나 축척은 엄밀하지 않을 수 있다.In the drawings attached to this specification, the size, position, coupling relationship, etc. of each component constituting the present invention are partially exaggerated, reduced, or omitted for convenience of explanation or in order to sufficiently clearly convey the spirit of the present invention. may be described, and thus the proportion or scale may not be exact.

또한, 이하에서, 본 발명을 설명함에 있어서, 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 구성, 예를 들어, 종래 기술을 포함하는 공지 기술에 대해 상세한 설명은 생략될 수도 있다.In addition, in the following, in describing the present invention, a detailed description of a configuration determined that may unnecessarily obscure the subject matter of the present invention, for example, a detailed description of a known technology including the prior art may be omitted.

이하, 본 발명의 실시 예에 대해 관련 도면들을 참조하여 상세히 설명하기로 한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the related drawings.

도 2는 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템의 전체 구성을 나타내는 블록도이고, 도 3은 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서 데이터 캐싱을 통한 데이터 이관을 수행하는 에이전트를 나타내는 블록도이다.2 is a block diagram showing the overall configuration of a high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention, and FIG. 3 is a high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention. It is a block diagram showing an agent that performs data migration through data caching.

도 2 및 도 3을 참조하면, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템(1000)은 소스 DB(100)에 적용되는 소스 DBMS(110)와, 타겟 DB(200)에 적용되는 타겟 DBMS(210)와, 데이터 생명 주기 관리 서버(300)에 적용되는 에이전트(310)와, 관리자 PC(400)를 포함한다.2 and 3 , a high-performance data transfer system 1000 between heterogeneous DBMSs for data life cycle management according to the present invention includes a source DBMS 110 and a target DB 200 applied to the source DB 100 . It includes a target DBMS 210 applied to , an agent 310 applied to the data life cycle management server 300 , and a manager PC 400 .

DBMS(Data Base Management System)이란 데이터베이스(DB) 형태로 저장된 방대한 양의 각종 정보를 체계적으로 관리하는 기업용 소프트웨어이다.DBMS (Data Base Management System) is an enterprise software that systematically manages a large amount of various information stored in the form of a database (DB).

인터넷의 발달과 함께 기업 정보화가 급속도로 진행되면서 DBMS는 컴퓨터 운영 체제(OS)에 버금가는 중요한 소프트웨어로 인식되고 있다.With the development of the Internet and the rapid progress of corporate informatization, DBMS is recognized as an important software comparable to computer operating system (OS).

소스 DBMS(110)는 타겟 DBMS(210)로 데이터의 이관을 수행하기 위해 원본 데이터베이스가 포함되어 있는 DBMS이다.The source DBMS 110 is a DBMS including the original database in order to transfer data to the target DBMS 210 .

타겟 DBMS(210)는 소스 DBMS(110)의 원본 데이터베이스가 이관되는 대상의 DBMS이다.The target DBMS 210 is a target DBMS to which the source database of the source DBMS 110 is transferred.

즉, 소스 DBMS(110)는 대용량의 데이터를 이관하기 위한 DBMS이고, 타겟 DBMS(210)는 소스 DBMS(110)로부터 대용량 데이터를 이관받는 DBMS이다.That is, the source DBMS 110 is a DBMS for transferring large-capacity data, and the target DBMS 210 is a DBMS for transferring large-capacity data from the source DBMS 110 .

에이전트(310)는 데이터 생명 주기 관리 서버(300)에 적용되는 소프트웨어로, 소스 DBMS(110)의 대용량 데이터를 메모리 상에서 데이터 캐싱을 통해 타겟 DBMS(210)에 적재하는 역할을 수행한다.The agent 310 is software applied to the data life cycle management server 300 and serves to load large amounts of data of the source DBMS 110 into the target DBMS 210 through data caching in memory.

여기서, 데이터 캐싱이란, 읽기(Read) 성능을 개선시키기 위해 소스 DBMS(110)로부터 로드된 데이터를 빠르게 읽어올 수 있는 메모리 영역에 저장해두는 방식을 말한다.Here, data caching refers to a method of storing data loaded from the source DBMS 110 in a memory area that can be quickly read in order to improve read performance.

즉, 캐시(Cache)란, 한 번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결과값을 받을 수 있도록 도와주는 공간이다.In other words, the cache is a space that stores data that has been read once in an arbitrary space so that the result value can be quickly received the next time it is read.

이러한 캐시를 사용할 때 동일한 요청에 대하여 빠른 응답이 가능하며, 최초 요청에 대한 응답을 전송하는 시점에 에이전트(310)는 소스 DBMS(110)에서 읽어온 값을 캐시에 저장해 둔다.When such a cache is used, a quick response to the same request is possible, and at the time of transmitting the response to the initial request, the agent 310 stores the value read from the source DBMS 110 in the cache.

결국 서비스 전체적으로 빠른 속도를 가질 수 있으며, 많은 요청에 대한 처리를 분산함에 따라 서비스 부하를 감소시킬 수 있다.As a result, the overall service speed can be fast, and the service load can be reduced by distributing the processing of many requests.

이러한 데이터 캐싱은 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우, 즉 에이전트(310)와 같이 빠른 속도로 데이터에 대한 접근이 필요한 경우에 이용하는 것이 바람직하다.It is preferable to use such data caching when it takes a long time to access the original data compared to the access time, that is, when access to the data is required at a high speed like the agent 310 .

또한, 캐시에 데이터를 저장하는 메모리 캐싱을 사용할 경우, 스토리지 저장 방식을 사용하지 않기 때문에 스토리지 비용을 절감할 수 있다.In addition, when using memory caching to store data in the cache, storage costs can be reduced because a storage storage method is not used.

즉, 캐시란 필요한 데이터를 스토리지에 저장하는 것이 아니라 메모리에 저장하였다가 불러다 쓰는 것을 의미한다.In other words, the cache does not store necessary data in storage, but refers to storing and recalling data in memory.

이에 의해, 스토리지 비용을 절감하고, 데이터 이관 속도 서비스의 개선을 이룰 수 있다.Thereby, it is possible to reduce the storage cost and to improve the data transfer speed service.

데이터 생명 주기 관리 서버(300)는 에이전트(310)가 적용되는 서버이다.The data life cycle management server 300 is a server to which the agent 310 is applied.

여기서, 데이터 생명 주기 관리 서버(300)는, 소스 DBMS(110) 및 타겟 DBMS(210)의 정보 관리 및 데이터 흐름 제어를 모니터링하고, 이관 대상 테이블별 이관 수행 스케쥴을 관리한다.Here, the data life cycle management server 300 monitors information management and data flow control of the source DBMS 110 and the target DBMS 210 , and manages a transfer execution schedule for each transfer target table.

좀 더 상세히 설명하면, 데이터 생명 주기 관리 서버(300)는 ILM 엔진(Engine) 모듈과, ILM 스케쥴러(Scheduler)와, ILM 마스터(Master)와, ILM 인포매니저(InfoManager) 등을 포함하고 있다.In more detail, the data life cycle management server 300 includes an ILM engine module, an ILM scheduler, an ILM master, and an ILM InfoManager.

ILM 엔진 모듈은 초기 데이터 이관을 수행하는 메인 엔진 모듈로, 소스 DBMS(110)로부터 대용량 데이터를 추출하고, 추출된 데이터를 타겟 DBMS(210)로 전송하여 적재한다.The ILM engine module is a main engine module that performs initial data migration, extracts large amounts of data from the source DBMS 110 , and transmits and loads the extracted data to the target DBMS 210 .

ILM 스케쥴러는 이관 대상 테이블별로 이관 수행 스케쥴을 관리한다.The ILM scheduler manages the migration execution schedule for each migration target table.

ILM 마스터는 통합 GUI 관리 모듈이다.The ILM Master is an integrated GUI management module.

ILM 인포매니저는 소스 DBMS(110) 및 타겟 DBMS(210)의 기본 정보를 관리하고, 흐름 제어를 모니터링하는 모듈이다.The ILM InfoManager is a module that manages basic information of the source DBMS 110 and the target DBMS 210 and monitors flow control.

한편, 관리자 PC(400)는 데이터 생명 주기 관리 서버(300)를 원격에서 관리하는 장치이다.Meanwhile, the manager PC 400 is a device that remotely manages the data life cycle management server 300 .

이러한 구성에 의해, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템(1000)은 종래와 같은 임시 저장 스토리지(3)가 필요하지 않으며, 에이전트(310)에 의해 메모리 상에서 데이터 캐싱을 통한 데이터 이관을 수행함으로써, 임시 스토리지의 비용을 절감하고, 이관 시스템의 고성능 처리가 가능하다.With this configuration, the high-performance data transfer system 1000 between heterogeneous DBMSs for data life cycle management according to the present invention does not require temporary storage storage 3 as in the prior art, and data caching in memory by the agent 310 is By performing data migration through the

즉, 소스 DBMS(110)의 대용량 데이터를 타겟 DBMS(210)로 이관시 별도의 스토리지로 임시 저장후 복구하는 방식을 사용하지 않고, 메모리 상에서 메모리 캐싱(Caching) 방식을 통해 타겟 DBMS(210)에 적재하는 방식이다.That is, when transferring large amounts of data from the source DBMS 110 to the target DBMS 210 , it is not stored temporarily in a separate storage and then restored, but is stored in the target DBMS 210 through memory caching in memory. method of loading.

또한, 소스 DBMS(110)로부터 대용량 데이터의 추출과 동시에 타겟 DBMS(210)에 적재되는 방식으로 인해, 이관 데이터의 용량에 제한이 없는 효과가 있다.In addition, due to the method in which large-capacity data is extracted from the source DBMS 110 and loaded into the target DBMS 210 at the same time, there is an effect that there is no limit to the capacity of the transferred data.

도 4는 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서 이관 대상 DB 테이블별 멀티쓰레드 구조를 나타내는 블록도이다.4 is a block diagram illustrating a multi-threaded structure for each DB table to be transferred in the system for transferring high-performance data between heterogeneous DBMSs for data life cycle management according to the present invention.

도 4를 참조하면, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템(1000)에서, 에이전트(310)는, 소스 DBMS(110)로부터 추출된 데이터를 추출 순서에 따라 보관하는 메모리 큐(Memory Queue; 313)를 포함한다.4, in the high-performance data transfer system 1000 between heterogeneous DBMSs for data life cycle management according to the present invention, the agent 310 stores data extracted from the source DBMS 110 according to the extraction order. It includes a memory queue (Memory Queue; 313).

또한, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템(1000)에서, 에이전트(310)는 소스 DBMS(110)의 대용량 데이터를 복수의 추출 쓰레드(312)가 테이블별로 1개의 테이블을 각각 추출하여 1개의 메모리 큐(313)에 각각 보관하고, 보관된 복수의 테이블을 복수의 반영 쓰레드(312)에 의해 1개씩 테이블(220)별로 타겟 DBMS(210)에 반영한다.In addition, in the high-performance data transfer system 1000 between heterogeneous DBMSs for data life cycle management according to the present invention, the agent 310 extracts large amounts of data from the source DBMS 110 with a plurality of extraction threads 312 for each table. Each table is extracted and stored in one memory queue 313 , and a plurality of stored tables are reflected in the target DBMS 210 for each table 220 by a plurality of reflection threads 312 .

좀 더 상세히 설명하면, 소스 DBMS(110)의 대용량 데이터로부터 테이블(120)별로 데이터를 추출 쓰레드(312)에 의해 추출하고, 소스 DBMS(110)로부터 테이블(120)별로 추출된 추출 쓰레드(312)는 메모리 큐(313)에 저장된다.In more detail, the extraction thread 312 extracts data for each table 120 from the large data of the source DBMS 110 by the extraction thread 312, and the extraction thread 312 extracted from the source DBMS 110 for each table 120. is stored in the memory queue 313 .

이때, 하나의 테이블은 하나의 쓰레드에 의해 추출되어 하나의 메모리 큐에 저장된다.At this time, one table is extracted by one thread and stored in one memory queue.

즉, 복수의 테이블(120)들은 복수의 쓰레드(312)들에 의해 각각 1개의 추출 쓰레드당 1개씩 개별로 추출되고, 이와 같이 각각 1개씩 개별로 추출된 테이블들은 복수의 메모리 큐(313)에 각각 1개씩 저장된다.That is, the plurality of tables 120 are individually extracted one for each extraction thread by the plurality of threads 312 , and the tables individually extracted one by one in this way are stored in the plurality of memory queues 313 . One of each is stored.

이후, 1개의 메모리 큐에 1개씩 저장되어 있는 테이블들이 반영 쓰레드(312)에 의해 1개씩 테이블(220)별로 반영되어 타겟 DBMS(210)에 이관된다.Thereafter, the tables stored one by one in one memory queue are reflected one by one for each table 220 by the reflection thread 312 and transferred to the target DBMS 210 .

이때, 에이전트(310)는, 대용량 데이터의 추출과 반영은 각 테이블별로 별도의 쓰레드로 각각 구동되는 멀티쓰레드로 구현된다.At this time, the agent 310 is implemented as a multi-thread, in which the extraction and reflection of large-capacity data are each driven by a separate thread for each table.

이에 의해, 소스 DBMS(110)로부터 추출된 데이터를 추출 순서에 따라 메모리 큐(313)에 보관하고, 메모리 큐로부터 타겟 DBMS(210)로 이관하는 구조로 되어 있으며, 소스 DBMS(110)로부터 대용량 데이터의 추출과 타겟 DBMS(210)로의 이관은 이관 대상 DB 테이블별로 별도의 쓰레드(Thread)로 구동되어 고성능 이관이 가능하다.As a result, the data extracted from the source DBMS 110 is stored in the memory queue 313 according to the extraction order, and the structure is transferred from the memory queue to the target DBMS 210 , and large-capacity data from the source DBMS 110 . Extraction and transfer to the target DBMS 210 are driven by a separate thread for each DB table to be transferred, so that high-performance transfer is possible.

도 5는 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서 메모리상의 파이프 통신 방식을 이용하여 로더를 수행하는 구성을 나타내는 블록도이다.5 is a block diagram illustrating a configuration for performing a loader using a pipe communication method on a memory in a high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention.

도 5를 참조하면, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템(1000)에서, 에이전트(310)는 추출된 대용량 데이터를 타겟 DBMS(210)에 반영시, 반영 쓰레드(312)로부터 CSV 포맷(Format)으로 메모리 파일을 전송받고, 전송받은 메모리 파일을 벌크 로더(Bulk Loader)에 의한 메모리 상의 파이프 통신을 이용하여 로더(Loader)하여 테이블(220)을 타겟 DBMS(210)에 이관한다.5, in the high-performance data transfer system 1000 between heterogeneous DBMSs for data life cycle management according to the present invention, the agent 310 reflects the extracted large-capacity data to the target DBMS 210, the reflection thread ( 312) receives a memory file in CSV format, and loads the received memory file using pipe communication on the memory by a bulk loader to set the table 220 to the target DBMS 210 transfer to

종래에는 스토리지(3)에 CSV 포맷으로 데이터를 저장한 후, 로더를 수행하였다.Conventionally, after data is stored in the CSV format in the storage 3, the loader is performed.

이에 의해 종래 시스템은 별도의 스토리지(3)가 필요로 하였다.Accordingly, the conventional system required a separate storage 3 .

하지만, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템(1000)에서는 반영 쓰레드(312)로부터 CSV 포맷으로 메모리 파일을 전송받고, 전송받은 메모리 파일을 메모리 상에서 벌크 로더에 의한 파이프 통신을 이용하여 로더함으로써, 테이블(220)을 타겟 DBMS(210)에 이관한다.However, in the high-performance data transfer system 1000 between heterogeneous DBMSs for data life cycle management according to the present invention, a memory file is transmitted in CSV format from the reflection thread 312, and the received memory file is piped by a bulk loader on the memory. By loading using communication, the table 220 is transferred to the target DBMS 210 .

여기서, CSV(Comma-Separated Values)란, 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 또는 텍스트 파일이다.Here, CSV (Comma-Separated Values) is text data or text file in which several fields are separated by commas (,).

이러한 CSV는 JSON 데이터 형태 포맷 처럼 데이터를 포맷하는 방법 중 하나이다.CSV is one of the ways to format data like JSON data format format.

또한, 벌크 로더는 데이터베이스의 테이블에 새로운 레코드를 첨가할 때 데이터베이스 외부의 별도 파일에 저장된 데이터들을 일괄적으로 데이터베이스 테이블 내로 첨가시키는 기능이다.In addition, the bulk loader is a function of adding data stored in a separate file outside the database into the database table at once when adding new records to the database table.

이에 의해, 추출된 데이터를 타겟 DBMS(210)에 반영시, 일반적인 인서트(INSERT) 방식이 아닌 DBMS별로 제공되는 벌크 로더(Bulk Loader)를 사용하게 되면 고성능의 데이터 이관이 가능하다.Accordingly, when the extracted data is reflected in the target DBMS 210, high-performance data transfer is possible if a bulk loader provided for each DBMS is used instead of a general INSERT method.

이 방식은 별도의 스토리지에 CSV 포맷으로 데이터를 기록하고, DBMS별로 제공되는 별도의 로더 제어 파일 및 명령에 의해 수행된다.This method records data in CSV format in a separate storage and is performed by a separate loader control file and command provided for each DBMS.

본 발명에서는 로더를 사용하되 별도의 스토리지 없이 메모리의 파이프(Pipe) 방식의 통신을 통해 고성능 로딩을 수행한다. In the present invention, high-performance loading is performed through a pipe-type communication of a memory without a separate storage using a loader.

도 6은 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템에서 DBMS 캐릭터셋을 자동 판별하여 적용하는 구성을 나타내는 블록도이다.6 is a block diagram illustrating a configuration for automatically determining and applying a DBMS character set in a high-performance data transfer system between heterogeneous DBMSs for data life cycle management according to the present invention.

도 6을 참조하면, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템(1000)에서, 에이전트(310)는 소스 DBMS(110)와 타겟 DBMS(210)의 캐릭터셋(Character Set)이 상이한지 여부를 판별한다.Referring to FIG. 6 , in the high-performance data transfer system 1000 between heterogeneous DBMSs for data life cycle management according to the present invention, the agent 310 includes a character set of a source DBMS 110 and a target DBMS 210 . ) is different.

또한, 에이전트(310)는 캐릭터셋이 상이한 것으로 판별하면, 소스 DBMS(110)와 타겟 DBMS(210)에 맞는 캐릭터셋으로 자동 인코딩한다.In addition, if the agent 310 determines that the character set is different, it is automatically encoded into a character set suitable for the source DBMS 110 and the target DBMS 210 .

종래의 이관 시스템은 DBA 또는 DBMS 담당자가 캐릭터셋과 관련하여 별도의 처리가 필요하였다.In the conventional transfer system, a DBA or DBMS person in charge requires a separate process in relation to the character set.

즉, 데이터 보존을 위한 캐릭터셋 관련 수동 처리가 필요하였다.In other words, it was necessary to manually process the character set for data preservation.

이에 의해, 종래 이관 시스템은 캐릭터셋의 처리를 위한 이관 시간이 추가적으로 소요되는 문제점이 있었다.Accordingly, the conventional transfer system has a problem in that it takes additional transfer time for character set processing.

하지만, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템(1000)에서는, 에이전트(310)가 소스 DBMS(110)와 타겟 DBMS(210)의 캐릭터 셋을 자동 판별하여 인코딩 여부를 자동으로 적용한다.However, in the high-performance data transfer system 1000 between heterogeneous DBMSs for data life cycle management according to the present invention, the agent 310 automatically determines the character sets of the source DBMS 110 and the target DBMS 210 to determine whether to encode or not. applied automatically.

이에 의해, 캐릭터셋과 관련하여 별도 처리가 필요없으므로, 이관 소요 시간이 단축되는 효과가 있다.Thereby, since there is no need for separate processing in relation to the character set, there is an effect that the transfer time required is shortened.

한편, 본 발명에 따른 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템(1000)에서, 에이전트(310)는, 복수의 소스 DBMS(110)와 복수의 타겟 DBMS(210)에 대한 동시 대용량 데이터 이관이 가능하도록 DBMS 종류를 자동 판별할 수 있다.On the other hand, in the high-performance data transfer system 1000 between heterogeneous DBMSs for data life cycle management according to the present invention, the agent 310 includes simultaneous large-capacity data for a plurality of source DBMSs 110 and a plurality of target DBMSs 210 . DBMS type can be automatically determined to enable migration.

에이전트(310)는 판별된 DBMS 종류별로 상이한 로딩 방식을 적용하여 대용량 데이터의 동시 이관을 수행할 수도 있다.The agent 310 may perform simultaneous transfer of large-capacity data by applying different loading methods for each determined DBMS type.

즉, 다양한 소스 DBMS(110) 및 다양한 타겟 DBMS(210)에 대한 동시 이관이 가능하도록, 이기종 DBMS 이관시 DBMS 종류를 자동 판별하여, DBMS별로 상이한 로딩 방식을 적용하여 동시 이관을 수행할 수 있다.That is, to enable simultaneous migration to various source DBMSs 110 and various target DBMSs 210, the DBMS type is automatically determined when a heterogeneous DBMS is migrated, and a different loading method is applied for each DBMS to perform simultaneous migration.

이와 같이 이관 가능한 DBMS는 다음과 같다.DBMS that can be migrated in this way is as follows.

Oracle, MSSQL, MySQL, MariaDB, PostgreSQL, Informix, DB2, Tibero, Cubrid, Goldilocks, Altibase, GreenPlum, Veritica, PDA(Netizza), TeraDB, EnterpriseDB Postgres Plus Advanced Server(EDB) 등이다.Oracle, MSSQL, MySQL, MariaDB, PostgreSQL, Informix, DB2, Tibero, Cubrid, Goldilocks, Altibase, GreenPlum, Veritica, PDA (Netizza), TeraDB, EnterpriseDB and Postgres Plus Advanced Server (EDB).

이때, 에이전트(310)는 대용량 테이블에 대한 조건별 이관이 가능하고, 이관 수행시 CPU 부하 조절을 위한 동시 수행 작업수, 일별 수행 가능 작업수 등의 스케쥴 제어가 가능하다.In this case, the agent 310 can transfer the large-capacity table by condition, and when performing the transfer, it is possible to control the schedule such as the number of concurrently performed tasks and the number of tasks that can be performed per day for CPU load control.

또한, 이관 수행시 CPU 부하 조절을 위한 CPU 임계값 설정으로 작업수를 제어하고, 소스 및 타겟 테이블간 맵핑 이관이 가능하다.In addition, it is possible to control the number of tasks by setting a CPU threshold for CPU load control when performing migration, and to transfer mapping between source and target tables.

한편, 소스 및 타겟 테이블의 스키마 및 테이블명이 다를 경우에도 이관이 가능하며, " ~ "의 특정 컬럼만 선택적으로 이관할 수도 있다.On the other hand, even if the schema and table names of the source and target tables are different, migration is possible, and only specific columns of " ~ " can be selectively migrated.

여기서, 스키마란 데이터 시스템 언어 회의(CODASYL) 데이터베이스를 기술하기 위해 사용하기 시작한 개념이다.Here, the schema is a concept that was started to be used to describe the Data System Language Conference (CODASYL) database.

게다가, 이관이 완료된 테이블의 정합성 검증도 가능하며, 관리자 PC(400)를 통해 통합 관제 모니터링을 구현할 수 있다.In addition, it is possible to verify the consistency of the transferred table, and it is possible to implement integrated control monitoring through the manager PC 400 .

이와 같이 본 발명에 의하면, 본 발명에 의하면, 데이터의 수명 주기에 따라 보관 방식을 달리하여 운영 비용을 절감시키고, 운영 서버의 성능을 개선하며, 수작업으로 이관 관리가 어려운 대용량의 데이터를 이관 조건 및 스케쥴에 따라 자동으로 이관할 수 있는 효과가 있다.As described above, according to the present invention, according to the present invention, operating costs are reduced by changing the storage method according to the life cycle of data, the performance of the operating server is improved, and large-capacity data, which is difficult to manually transfer management, is transferred under conditions and conditions of transfer. It has the effect of being able to migrate automatically according to the schedule.

이상, 일부 예를 들어서 본 발명의 바람직한 여러 가지 실시 예에 대해서 설명하였지만, 본 "발명을 실시하기 위한 구체적인 내용" 항목에 기재된 여러 가지 다양한 실시 예에 관한 설명은 예시적인 것에 불과한 것이며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 이상의 설명으로부터 본 발명을 다양하게 변형하여 실시하거나 본 발명과 균등한 실시를 행할 수 있다는 점을 잘 이해하고 있을 것이다.In the above, although several preferred embodiments of the present invention have been described with some examples, the descriptions of various various embodiments described in the "Specific Content for Carrying Out the Invention" item are merely exemplary, and the present invention Those of ordinary skill in the art will understand well that the present invention can be practiced with various modifications or equivalents to the present invention from the above description.

또한, 본 발명은 다른 다양한 형태로 구현될 수 있기 때문에 본 발명은 상술한 설명에 의해서 한정되는 것이 아니며, 이상의 설명은 본 발명의 개시 내용이 완전해지도록 하기 위한 것으로 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이며, 본 발명은 청구범위의 각 청구항에 의해서 정의될 뿐임을 알아야 한다.In addition, since the present invention can be implemented in various other forms, the present invention is not limited by the above description, and the above description is intended to complete the disclosure of the present invention, and is generally It should be understood that this is only provided to fully inform those with knowledge of the scope of the present invention, and that the present invention is only defined by each of the claims.

100 : 소스 DB
110 : 소스 DBMS
120 : 복수의 테이블
200 : 타겟 DB
210 : 타겟 DBMS
220 : 복수의 테이블
300 : 데이터 생명 주기 관리 서버
310 : 에이전트
311 : 추출 쓰레드
312 : 메모리 큐
313 : 반영 쓰레드
320 : CSV 포맷
1000 : 데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템
100 : source DB
110: source DBMS
120: multiple tables
200: target DB
210: target DBMS
220: multiple tables
300: data life cycle management server
310: agent
311 : Extraction Thread
312: memory queue
313 : reflection thread
320: CSV format
1000: High-performance data transfer system between heterogeneous DBMSs for data life cycle management

Claims (10)

소스 DBMS;
상기 소스 DBMS로부터 대용량 데이터를 이관받는 타겟 DBMS; 및
상기 대용량 데이터를 메모리 상에서 데이터 캐싱을 통해 상기 타겟 DBMS에 적재하는 에이전트;를 포함하는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
source DBMS;
a target DBMS to which large-capacity data is transferred from the source DBMS; and
An agent that loads the large amount of data into the target DBMS through data caching in memory; characterized in that it comprises a,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
제 1 항에 있어서,
상기 에이전트는,
상기 소스 DBMS로부터 추출된 데이터를 추출 순서에 따라 보관하는 메모리 큐(Memory Queue)를 포함하는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
The method of claim 1,
The agent is
It characterized in that it comprises a memory queue (Memory Queue) for storing the data extracted from the source DBMS according to the extraction order,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
제 2 항에 있어서,
상기 에이전트는,
상기 소스 DBMS의 대용량 데이터를 복수의 추출 쓰레드가 테이블별로 1개의 테이블을 각각 추출하여 1개의 상기 메모리 큐에 각각 보관하고,
보관된 복수의 상기 테이블을 복수의 반영 쓰레드에 의해 1개씩 테이블별로 상기 타겟 DBMS에 반영하는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
3. The method of claim 2,
The agent is
A plurality of extraction threads extracts a large amount of data of the source DBMS for each table, respectively, and stores them in one memory queue,
Characterized in that the plurality of stored tables are reflected in the target DBMS for each table one by one by a plurality of reflection threads,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
제 3 항에 있어서,
상기 에이전트는,
상기 대용량 데이터의 추출과 반영은 각 테이블별로 별도의 쓰레드(Thread)로 각각 구동되는 멀티쓰레드로 구현되는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
4. The method of claim 3,
The agent is
The extraction and reflection of the large-capacity data is characterized in that it is implemented as a multi-thread, each driven by a separate thread for each table,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
제 3 항에 있어서,
상기 에이전트는,
추출된 상기 대용량 데이터를 상기 타겟 DBMS에 반영시, 반영 쓰레드로부터 CSV 포맷(Format)으로 메모리 파일을 전송받고,
전송받은 상기 메모리 파일을 벌크 로더(Bulk Loader)에 의한 상기 메모리 상의 파이프 통신을 이용하여 로더(Loader)하는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
4. The method of claim 3,
The agent is
When the extracted large-capacity data is reflected in the target DBMS, the memory file is transmitted in CSV format from the reflection thread,
characterized in that the received memory file is loaded using a pipe communication on the memory by a bulk loader,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
제 1 항에 있어서,
상기 에이전트는,
상기 소스 DBMS와 상기 타겟 DBMS의 캐릭터셋(Character Set)이 상이한지 여부를 판별하는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
The method of claim 1,
The agent is
Characterized in that it is determined whether the source DBMS and the target DBMS have different character sets,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
제 6 항에 있어서,
상기 에이전트는,
상기 캐릭터셋이 상이한 것으로 판별하면, 상기 소스 DBMS와 상기 타겟 DBMS에 맞는 캐릭터셋으로 자동 인코딩하는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
7. The method of claim 6,
The agent is
If it is determined that the character set is different, characterized in that automatically encoding a character set suitable for the source DBMS and the target DBMS,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
제 1 항에 있어서,
상기 에이전트는,
복수의 소스 DBMS와 복수의 타겟 DBMS에 대한 동시 대용량 데이터 이관이 가능하도록 DBMS 종류를 자동 판별하는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
The method of claim 1,
The agent is
characterized in that the DBMS type is automatically determined to enable simultaneous large-capacity data transfer to a plurality of source DBMSs and a plurality of target DBMSs,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
제 9 항에 있어서,
상기 에이전트는,
판별된 상기 DBMS 종류별로 상이한 로딩 방식을 적용하여 대용량 데이터의 동시 이관을 수행하는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
10. The method of claim 9,
The agent is
Characterized in performing the simultaneous transfer of large-capacity data by applying a different loading method for each type of the determined DBMS,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
제 1 항에 있어서,
상기 에이전트가 적용되는 데이터 생명 주기 관리 서버; 및
상기 데이터 생명 주기 관리 서버를 원격에서 관리하는 관리자 PC;를 포함하며,
상기 데이터 생명 주기 관리 서버는,
상기 소스 DBMS 및 상기 타겟 DBMS의 정보 관리 및 데이터 흐름 제어를 모니터링하고,
이관 대상 테이블별 이관 수행 스케쥴을 관리하는 것을 특징으로 하는,
데이터 생명 주기 관리를 위한 이기종 DBMS 간의 고성능 데이터 이관 시스템.
The method of claim 1,
a data life cycle management server to which the agent is applied; and
and a manager PC that remotely manages the data life cycle management server.
The data life cycle management server,
monitoring information management and data flow control of the source DBMS and the target DBMS;
Characterized in managing the transfer execution schedule for each transfer target table,
A high-performance data transfer system between heterogeneous DBMSs for data lifecycle management.
KR1020210038704A 2021-03-25 2021-03-25 System for transmitting high performance data between dbms of different type for data lifecycle management KR102599041B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210038704A KR102599041B1 (en) 2021-03-25 2021-03-25 System for transmitting high performance data between dbms of different type for data lifecycle management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210038704A KR102599041B1 (en) 2021-03-25 2021-03-25 System for transmitting high performance data between dbms of different type for data lifecycle management

Publications (2)

Publication Number Publication Date
KR20220133508A true KR20220133508A (en) 2022-10-05
KR102599041B1 KR102599041B1 (en) 2023-11-06

Family

ID=83596350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210038704A KR102599041B1 (en) 2021-03-25 2021-03-25 System for transmitting high performance data between dbms of different type for data lifecycle management

Country Status (1)

Country Link
KR (1) KR102599041B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110109541A (en) 2010-03-31 2011-10-06 중소기업은행 Data lifecycle management system
KR101374533B1 (en) * 2013-04-17 2014-03-14 주식회사 엔써티 High performance replication system and backup system for mass storage data, method of the same
KR20170074070A (en) * 2015-12-21 2017-06-29 주식회사 인프라웨어 Method and apparatus for automatic converting file name based on the cloud server
KR101949761B1 (en) * 2018-07-25 2019-02-20 (주)데이타뱅크시스템즈 Integrated replication system
KR20190023682A (en) * 2017-08-30 2019-03-08 주식회사 영림원소프트랩 Bulk data convert processing method between heterogeneous system in enterprise software

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110109541A (en) 2010-03-31 2011-10-06 중소기업은행 Data lifecycle management system
KR101374533B1 (en) * 2013-04-17 2014-03-14 주식회사 엔써티 High performance replication system and backup system for mass storage data, method of the same
KR20170074070A (en) * 2015-12-21 2017-06-29 주식회사 인프라웨어 Method and apparatus for automatic converting file name based on the cloud server
KR20190023682A (en) * 2017-08-30 2019-03-08 주식회사 영림원소프트랩 Bulk data convert processing method between heterogeneous system in enterprise software
KR101949761B1 (en) * 2018-07-25 2019-02-20 (주)데이타뱅크시스템즈 Integrated replication system

Also Published As

Publication number Publication date
KR102599041B1 (en) 2023-11-06

Similar Documents

Publication Publication Date Title
US9389995B2 (en) Optimization of Map-Reduce shuffle performance through snuffler I/O pipeline actions and planning
US9635093B2 (en) Slave side transaction ID buffering for efficient distributed transaction management
US8819335B1 (en) System and method for executing map-reduce tasks in a storage device
Olston et al. Automatic optimization of parallel dataflow programs
US10223431B2 (en) Data stream splitting for low-latency data access
US9141670B2 (en) Methods and systems for hardware acceleration of streamed database operations and queries based on multiple hardware accelerators
US9244980B1 (en) Strategies for pushing out database blocks from cache
US9609050B2 (en) Multi-level data staging for low latency data access
US10049049B2 (en) Method and system for caching data managed by plural information processing apparatuses
US8918795B2 (en) Handling and reporting of object state transitions on a multiprocess architecture
CN105045607A (en) Method for achieving uniform interface of multiple big data calculation frames
CN100538646C (en) A kind of method and apparatus of in distributed system, carrying out the SQL script file
US9836516B2 (en) Parallel scanners for log based replication
WO2019109854A1 (en) Data processing method and device for distributed database, storage medium, and electronic device
Yu et al. Virtual shuffling for efficient data movement in mapreduce
US20150193439A1 (en) Schemaless data access management
US20190114077A1 (en) Tier aware caching solution to increase application performance
US20180004430A1 (en) Chunk Monitoring
US10789087B2 (en) Insight usage across computing nodes running containerized analytics
US11609910B1 (en) Automatically refreshing materialized views according to performance benefit
US20180267831A1 (en) Information processing apparatus, stage-out processing method and recording medium recording job management program
Konishetty et al. Implementation and evaluation of scalable data structure over hbase
KR20220133508A (en) System for transmitting high performance data between dbms of different type for data lifecycle management
KR101694301B1 (en) Method for processing files in storage system and data server thereof
JPWO2012124295A1 (en) Computer system, control system, control method and control program

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant