[go: up one dir, main page]

KR101656077B1 - System and method for time base partitioning using implicit time column value - Google Patents

System and method for time base partitioning using implicit time column value Download PDF

Info

Publication number
KR101656077B1
KR101656077B1 KR1020150149890A KR20150149890A KR101656077B1 KR 101656077 B1 KR101656077 B1 KR 101656077B1 KR 1020150149890 A KR1020150149890 A KR 1020150149890A KR 20150149890 A KR20150149890 A KR 20150149890A KR 101656077 B1 KR101656077 B1 KR 101656077B1
Authority
KR
South Korea
Prior art keywords
partition
record
time
recorded
records
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020150149890A
Other languages
Korean (ko)
Inventor
김성진
Original Assignee
주식회사 인피니플럭스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 인피니플럭스 filed Critical 주식회사 인피니플럭스
Priority to KR1020150149890A priority Critical patent/KR101656077B1/en
Application granted granted Critical
Publication of KR101656077B1 publication Critical patent/KR101656077B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G06F17/30315
    • G06F17/30312
    • G06F17/30342

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 암시적 타임 칼럼값을 이용한 시간 기반 파티셔닝 시스템 및 방법에 관한 것으로서, 일실시예에 따른 시간 기반 파티셔닝 시스템은 시계열적으로 입력되는 레코드가 기설정된 조건에 부합되는 경우에 파티션을 생성하는 파티션 생성부, 및 상기 입력되는 레코드에 시간 칼럼값을 반영하여 상기 생성된 파티션에 기록하는 레코드 기록부를 포함한다.The present invention relates to a time-based partitioning system and method using an implicit time column value, wherein a time-based partitioning system according to an embodiment is a partition- And a record recorder for recording the time column value in the input record to the generated partition.

Description

암시적 타임 칼럼값을 이용한 시간 기반 파티셔닝 시스템 및 방법{SYSTEM AND METHOD FOR TIME BASE PARTITIONING USING IMPLICIT TIME COLUMN VALUE}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to time-based partitioning systems and methods using implicit time-

본 발명은 전체 데이터 집합에서 원하는 시간 범위의 레코드들을 빠르고 정확하게 검색하기 위해 암시적 타임 칼럼값을 이용하여 데이터를 파티셔닝하는 기술적 사상에 관한 것이다.The present invention relates to the technical idea of partitioning data using implicit time column values to quickly and accurately retrieve records of a desired time range in an entire data set.

시계열 데이터는 시간순으로 생성되며 모든 레코드에 시간 칼럼값을 갖는 특징이 있다. 따라서, 각 레코드에 설정된 시간값을 조건절로 이용하면 시계열 데이터에 대한 검색이 가능하다.The time series data is generated in chronological order, and all records have a time column value. Therefore, time series data can be searched by using the time value set in each record as a conditional statement.

시간값을 조건절로 설정하여 데이터를 검색하는 경우, 시간값에 대해서 데이터 파일을 분할하여 저장하는 것이 검색 시간을 줄이기 위한 방법으로 매우 효율적이다.In the case of retrieving data by setting a time value as a conditional, dividing and storing the data file with respect to the time value is very effective as a method for reducing the retrieval time.

이러한 기능을 기존 DBMS에서 B+Tree 색인과 파티셔닝 기능을 이용하여 구현하게 되면 실시간으로 데이터를 저장하는 경우 파티션을 매번 수동으로 생성해줘야 하는 번거로움이 있다. 또한, 색인을 이용하는 데이터가 많아지면 색인갱신에 의한 처리비용증가로 센서데이터 등의 폭증하는 데이터 입력을 처리하기 어렵게 된다.If these functions are implemented by using B + Tree index and partitioning function in existing DBMS, it is troublesome to manually generate partitions when storing data in real time. Also, as the number of data using the index increases, it becomes difficult to process data input such as sensor data due to an increase in the processing cost due to the update of the index.

그럼에도 불구하고, 기존에는 데이터 파티셔닝 및 B+Tree 색인을 이용한 방법을 사용한다.Nevertheless, we use data partitioning and B + Tree indexing.

B+Tree 색인을 이용한 경우, 레코드의 시간 칼럼값에 대해서 색인을 이용하는데, 이는 검색 성능은 매우 좋으나 데이터의 입력 및 삭제 시에 색인을 유지하기 위한 수행 시간이 길어질 수 밖에 없다.When B + Tree index is used, the index is used for the time column value of the record, which is very good, but the execution time for holding the index at the time of inputting and deleting data is long.

한편, 파티셔닝 기능을 이용한 경우, 레인지 파티션(Range partition)을 생성하여 시간 값에 기반한 파티션 내의 검색을 이용한다. 그러나, 레인지 파티션(Range partition)을 이용하면 과거 데이터를 분할 하는 데에는 문제가 없으나 실시간으로 데이터를 입력 받을 경우, 사용 시간이 진행됨에 따라 매번 시간 파티션을 추가로 생성해야 하는 점에서 문제가 발생할 가능성이 상당히 높다.On the other hand, when the partitioning function is used, a range partition is created to use a search in a partition based on a time value. However, there is no problem in partitioning past data by using range partition. However, when data is inputted in real time, there is a possibility that a problem occurs because additional time partition must be created every time the use time progresses Fairly high.

대한민국 특허등록공보 제10-0865481호Korean Patent Registration No. 10-0865481 대한민국 특허등록공보 제10-0989904호Korean Patent Registration No. 10-0989904

본 발명은 시계열 데이터를 기록하기 위한 파티션들을 자동으로 생성하여 대량의 시계열 데이터가 삽입되더라도 고속의 레코드 입력이 가능하도록 하는 것이다.The present invention automatically creates partitions for recording time series data so that high-speed record input is possible even if a large amount of time series data is inserted.

본 발명은 레코드를 고속으로 입력하는 경우에도 각 파티션들에 대한 검색을 위한 조건절을 부여함으로써, 시계열 데이터에 대한 고속의 검색연산이 가능하게 하는 것이다.The present invention enables a high-speed search operation on time series data by assigning a conditional phrase for searching for each partition even when a record is inputted at a high speed.

본 발명은 시간 기반의 파티셔닝을 통해 고속의 입출력이 가능함에 따라 레코드의 실시간 입출력이 가능하게 하는 것이다.The present invention enables high-speed input / output through time-based partitioning, thereby enabling real-time input / output of records.

일실시예에 따른 시간 기반 파티셔닝 시스템은 시계열적으로 입력되는 레코드가 기설정된 조건에 부합되는 경우에 파티션을 생성하는 파티션 생성부, 및 상기 입력되는 레코드에 시간 칼럼값을 반영하여 상기 생성된 파티션에 기록하는 레코드 기록부를 포함한다.The time-based partitioning system according to an embodiment of the present invention includes a partition generation unit for generating a partition when a record input in a time-series manner satisfies a preset condition, and a partition generation unit for reflecting a time column value in the input record, And a record record section for recording the record.

일실시예에 따른 시간 기반 파티셔닝 시스템은 상기 생성된 파티션에 상기 기설정된 조건에 해당하는 레코드들이 기록된 경우, 상기 기록된 레코드들의 시간 칼럼값을 파티션 로컬 인덱스로 갱신하는 파티션 로컬 인덱스 관리부를 더 포함한다.The time-based partitioning system according to an embodiment further includes a partition local index manager for updating the time column value of the recorded records to a partition local index when records corresponding to the predetermined condition are recorded in the created partition do.

일실시예에 따른 상기 파티션 생성부는, 현재의 파티션에 기설정된 개수에 해당하는 레코드가 기록된 경우, 상기 현재의 파티션에 대한 레코드 기록을 중지하도록 상기 레코드 기록부에 요청하고, 새로운 파티션을 생성한다.In a case where a record corresponding to a preset number is recorded in the current partition, the partition creating unit according to an embodiment requests the record recording unit to stop record recording on the current partition, and creates a new partition.

일실시예에 따른 상기 레코드 기록부는, 상기 새로운 파티션이 생성되면, 상기 레코드 기록이 중지된 레코드들부터 상기 새로운 파티션에 기록한다.The record recorder according to an embodiment records, in the new partition, records from which the record is stopped when the new partition is created.

일실시예에 따른 상기 파티션 생성부는, 현재의 파티션에 기설정된 용량의 레코드들이 기록된 경우, 상기 현재의 파티션에 대한 레코드 기록을 중지하도록 상기 레코드 기록부에 요청하고, 새로운 파티션을 생성한다.In the case where records of a predetermined capacity are recorded in the current partition, the partition creation unit requests the record recording unit to stop recording the record of the current partition, and creates a new partition.

일실시예에 따른 상기 파티션 생성부는, 상기 현재 파티션에 상응하여 생성된 마지막 파티션 로컬 인덱스와 상기 새로운 파티션에 상응하여 생성된 최초의 파티션 로컬 인덱스가 시계열적으로 연속되도록 상기 새로운 파티션을 생성한다.The partition generator according to an embodiment creates the new partition so that the last partition local index generated corresponding to the current partition and the first partition local index generated corresponding to the new partition are serially connected in a time series manner.

일실시예에 따른 상기 파티션 생성부는, 상기 생성되는 파티션에 기록되는 최초의 레코드 입력 시간과, 상기 생성되는 파티션에 기록되는 마지막 레코드 입력 시간으로 구분되는 인터벌이 반영된 파티션 인덱스를 생성하여 상기 생성되는 파티션에 매칭한다.The partition generating unit may generate a partition index reflecting an interval separated by a first record input time recorded in the created partition and a last record input time recorded in the created partition, .

일실시예에 따른 상기 레코드 기록부는, 상기 입력되는 레코드를 기록하는 시점에서의 시간 정보를 상기 시간 칼럼값으로 설정한다.The record recorder according to an embodiment sets time information at the time of recording the inputted record as the time column value.

일실시예에 따른 시간 기반 파티셔닝 방법은, 시계열적으로 입력되는 레코드가 기설정된 조건에 부합되는 경우에 파티션을 생성하는 단계, 상기 입력되는 레코드에 시간 칼럼값을 반영하여 상기 생성된 파티션에 기록하는 단계, 및 상기 생성된 파티션에 상기 기설정된 조건에 해당하는 레코드들이 기록된 경우, 상기 기록된 레코드들의 시간 칼럼값을 파티션 로컬 인덱스로 갱신하는 단계를 포함한다.The time-based partitioning method according to an exemplary embodiment of the present invention includes a step of creating a partition when a record input in a time-series manner satisfies a predetermined condition, a step of reflecting a time column value in the input record, and recording the time- And updating the time column value of the recorded records to a partition local index when records corresponding to the predetermined condition are recorded in the created partition.

일실시예에 따른 상기 파티션을 생성하는 단계는, 현재의 파티션에 기설정된 개수에 해당하는 레코드가 기록된 경우, 상기 현재의 파티션에 대한 레코드 기록을 중지하도록 상기 레코드 기록부에 요청하고, 새로운 파티션을 생성하는 단계를 포함한다.The step of creating the partition according to an embodiment of the present invention includes the steps of: when a record corresponding to a predetermined number is recorded in the current partition, requesting the record recording unit to stop recording the record of the current partition; .

일실시예에 따른 상기 생성된 파티션에 기록하는 단계는, 상기 새로운 파티션이 생성되면, 상기 레코드 기록이 중지된 레코드들부터 상기 새로운 파티션에 기록하는 단계를 포함한다.The step of writing to the created partition according to an embodiment includes recording the records in which the record recording has been stopped to the new partition when the new partition is created.

일실시예에 따른 상기 파티션을 생성하는 단계는, 현재의 파티션에 기설정된 용량의 레코드들이 기록된 경우, 상기 현재의 파티션에 대한 레코드 기록을 중지하도록 상기 레코드 기록부에 요청하고, 새로운 파티션을 생성하는 단계를 포함한다.The step of creating the partitions according to an embodiment of the present invention includes the steps of: requesting the record recording unit to stop record recording of the current partition when records of predetermined capacity are recorded in the current partition; .

일실시예에 따른 상기 파티션을 생성하는 단계는, 상기 현재 파티션에 상응하여 생성된 마지막 파티션 로컬 인덱스와 상기 새로운 파티션에 상응하여 생성된 최초의 파티션 로컬 인덱스가 시계열적으로 연속되도록 상기 새로운 파티션을 생성하는 단계를 포함한다.The creating of the partition according to an exemplary embodiment may include creating the new partition so that the last partition local index generated corresponding to the current partition and the first partition local index generated corresponding to the new partition are serially connected in a time- .

일실시예에 따른 상기 파티션을 생성하는 단계는, 상기 생성되는 파티션에 기록되는 최초의 레코드 입력 시간과, 상기 생성되는 파티션에 기록되는 마지막 레코드 입력 시간으로 구분되는 인터벌이 반영된 파티션 인덱스를 생성하여 상기 생성되는 파티션에 매칭하는 단계를 포함한다.The step of generating the partition according to an exemplary embodiment may include generating a partition index reflecting an interval separated by a first record input time recorded in the created partition and a last record input time recorded in the created partition, And matching the partition to be created.

일실시예에 따른 상기 기록하는 단계는, 상기 입력되는 레코드를 기록하는 시점에서의 시간 정보를 상기 시간 칼럼값으로 설정하는 단계를 포함한다.The recording step may include setting time information at the time of recording the input record as the time column value.

일실시예에 따른 프로그램은 시계열적으로 입력되는 레코드가 기설정된 조건에 부합되는 경우에 파티션을 생성하는 명령어 세트, 상기 입력되는 레코드에 시간 칼럼값을 반영하여 상기 생성된 파티션에 기록하는 명령어 세트, 및 상기 생성된 파티션에 상기 기설정된 조건에 해당하는 레코드들이 기록된 경우, 상기 기록된 레코드들의 시간 칼럼값을 파티션 로컬 인덱스로 갱신하는 명령어 세트를 포함한다.A program according to an exemplary embodiment of the present invention includes a command set for generating a partition when a record input in a time series is satisfied with a preset condition, a command set for recording a time column value in the input record to record in the created partition, And a set of instructions for updating a time column value of the recorded records to a partition local index when records corresponding to the predetermined condition are recorded in the created partition.

실시예들에 따르면, 시계열 데이터를 기록하기 위한 파티션들을 자동으로 생성하여 대량의 시계열 데이터가 삽입되더라도 고속의 레코드 입력이 가능하다.According to the embodiments, partitions for recording time-series data are automatically generated and high-speed records can be input even when a large amount of time series data is inserted.

본 발명에 따르면, 레코드를 고속으로 입력하는 경우에도 각 레코드들에 대해서 입력 시간에 대한 자동정렬을 수행함으로서, 시계열 데이터에 대한 고속의 검색연산이 가능하다.According to the present invention, even when a record is inputted at a high speed, automatic sorting of input time is performed for each record, thereby enabling high-speed search operation on time series data.

본 발명에 따르면, 시간 기반의 파티셔닝을 통해 고속의 입출력이 가능함에 따라 레코드의 실시간 입출력이 가능하다.According to the present invention, since high-speed input / output is possible through time-based partitioning, real-time input / output of records is possible.

도 1은 일실시예에 따른 시간 기반 파티셔닝 시스템을 설명하는 도면이다.
도 2는 시간 기반 파티셔닝 시스템을 이용하는 전체 구조를 설명하는 도면이다.
도 3은 일실시예에 따른 시간 기반 파티셔닝 방법을 설명하는 도면이다.
도 4는 일실시예에 따른 시간 기반 파티셔닝 시스템을 통해 생성된 파티션에서 데이터를 '읽기'하는 실시예를 설명하는 도면이다.
도 5는 일실시예에 따른 시간 기반 파티셔닝 시스템을 통해 생성된 파티션에서 데이터를 '쓰기'하는 실시예를 설명하는 도면이다.
1 is a diagram illustrating a time-based partitioning system in accordance with one embodiment.
2 is a diagram illustrating an overall structure using a time-based partitioning system.
3 is a diagram illustrating a time-based partitioning method according to one embodiment.
Figure 4 is an illustration of an embodiment of 'reading' data in a partition created through a time-based partitioning system according to an embodiment.
5 is a diagram illustrating an embodiment of 'writing' data in a partition created through a time-based partitioning system according to an embodiment.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.It is to be understood that the specific structural or functional descriptions of embodiments of the present invention disclosed herein are presented for the purpose of describing embodiments only in accordance with the concepts of the present invention, May be embodied in various forms and are not limited to the embodiments described herein.

본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Embodiments in accordance with the concepts of the present invention are capable of various modifications and may take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It should be understood, however, that there is no intention to limit the embodiments according to the concepts of the present invention to the particular forms disclosed, but includes modifications, equivalents, or alternatives falling within the spirit and scope of the present invention.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example without departing from the scope of the right according to the concept of the present invention, the first element being referred to as the second element, Similarly, the second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Expressions that describe the relationship between components, for example, "between" and "immediately" or "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", and the like, are used to specify one or more of the features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.

도 1은 일실시예에 따른 시간 기반 파티셔닝 시스템(100)을 설명하는 도면이다.1 is a diagram illustrating a time-based partitioning system 100 in accordance with one embodiment.

일실시예에 따른 시간 기반 파티셔닝 시스템(100)는 시계열 데이터를 기록하기 위한 파티션들을 자동으로 생성하여 대량의 시계열 데이터가 삽입되더라도 고속의 레코드 입력이 가능하다.The time-based partitioning system 100 according to an exemplary embodiment of the present invention automatically generates partitions for recording time-series data, thereby enabling high-speed record input even when a large amount of time series data is inserted.

또한, 레코드를 고속으로 입력하는 경우에도 각 파티션들에 대한 검색을 위한 조건절을 부여함으로써, 시계열 데이터에 대한 고속의 검색연산이 가능하다.In addition, even when a record is inputted at high speed, a conditional phrase for searching for each partition is given, so that a high-speed search operation on time series data is possible.

뿐만 아니라, 시간 기반의 파티셔닝을 통해 고속의 입출력이 가능함에 따라 레코드의 실시간 입출력이 가능하다.In addition, time-based partitioning allows high-speed I / O, enabling real-time input / output of records.

이를 위해, 일실시예에 따른 시간 기반 파티셔닝 시스템(100)은 파티션 생성부(110) 및 레코드 기록부(120)를 포함한다.To this end, the time-based partitioning system 100 according to an embodiment includes a partition generation unit 110 and a record recording unit 120. [

먼저, 파티션 생성부(110)는 시계열적으로 입력되는 레코드가 기설정된 조건에 부합되는 경우에 파티션을 생성한다.First, the partition generation unit 110 generates a partition when a record input in a time series corresponds to a predetermined condition.

예를 들어, 파티션 생성부(110)는 현재의 파티션에 입력되는 레코드의 개수가 기설정된 개수를 초과하는 경우 새로운 파티션을 생성할 수 있다. 이때, 초과되는 레코드를 포함하여 이후에 일정 개수의 레코드까지는 새로 생성된 파티션에 기록될 수 있다.For example, the partition generating unit 110 may generate a new partition when the number of records input to the current partition exceeds a predetermined number. At this time, a certain number of records including an exceeded record may be recorded in a newly created partition thereafter.

따라서, 생성되는 파티션들에 기록되는 레코드의 개수는 모두 동일할 수 있다.Therefore, the number of records recorded in the generated partitions may all be the same.

다른 예로, 파티션 생성부(110)는 각각의 파티션들에 기록되는 레코드의 개수를 서로 다르게 설정할 수도 있다. 예를 들어, 파티션이 새로 생성될 때마다 레코드의 개수를 일정 규칙에 따라 변경시킴으로써, 각 파티션별로 기록되는 레코드의 개수를 다르게 설정할 수 있다. As another example, the partition generation unit 110 may set different numbers of records to be recorded in each of the partitions. For example, by changing the number of records according to a predetermined rule every time a new partition is created, the number of records to be recorded for each partition can be set differently.

보다 구체적인 예로, 파티션이 새로 생성될 때마다 레코드의 개수를 일정 개수만큼 증가시킬 수 있다. 이 경우, 초기에 생성되는 파티션에 기록되는 레코드의 개수와, 특정 파티션에 기록된 레코드의 개수를 확인하면, 특정 파티션이 몇 번째 파티션에 해당하는지를 파악할 수도 있다.More specifically, each time a partition is newly created, the number of records can be increased by a certain number. In this case, by checking the number of records recorded in an initially created partition and the number of records recorded in a specific partition, it is possible to determine the number of partitions corresponding to a specific partition.

한편, 파티션 생성부(110)는 현재의 파티션에 입력되는 레코드의 총 용량이 기설정된 용량을 초과하는 경우 새로운 파티션을 생성할 수 있다. 이때, 파티션 생성부(110)는 용량을 초과하는 레코드를 포함하여 이후에 일정 개수의 레코드까지는 새로 생성된 파티션에 기록할 수 있다.Meanwhile, the partition generating unit 110 may generate a new partition when the total capacity of records input to the current partition exceeds a predetermined capacity. At this time, the partition generation unit 110 may include a record exceeding the capacity, and may record a certain number of records in the newly created partition thereafter.

따라서, 생성되는 파티션들에 기록되는 레코드의 총 용량은 모두 동일할 수 있다. Therefore, the total capacity of the records recorded in the generated partitions may all be the same.

다른 예로, 파티션 생성부(110)는 각각의 파티션들에 기록되는 레코드의 총 용량을 서로 다르게 설정할 수도 있다. 예를 들어, 파티션이 새로 생성될 때마다 허용되는 레코드의 총용량을 일정 규칙에 따라 증가 또는 감소시킴으로써, 각 파티션별로 기록되는 레코드의 총용량을 다르게 설정할 수 있다. As another example, the partition generation unit 110 may set the total capacity of records recorded in each of the partitions to be different from each other. For example, when the partition is newly created, the total capacity of the records to be recorded can be set differently by increasing or decreasing the total capacity of the allowed records according to a predetermined rule.

이렇게 설정되는 레코드의 개수와 총용량은 실험치에 의해서 시스템 특성을 고려하여, 시스템 효율을 높일 수 있는 값으로 다양하게 설계 변경될 수 있다.The number of records and the total capacity set in this manner can be variously changed to values that can increase the system efficiency in consideration of the system characteristics by the experimental values.

다음으로, 레코드 기록부(120)는 입력되는 레코드에 시간 칼럼값을 반영하여 생성된 파티션에 기록할 수 있다.Next, the record recording unit 120 may write the time column value into the generated partition by reflecting the time column value.

시간 칼럼값은 레코드가 입력되는 순간에서의 시간 정보를 포함한다.The time column value includes time information at the moment when the record is input.

즉, 레코드 기록부(120)는 레코드의 입력 시점에 대한 시간 정보를 시간 칼럼값으로 산출하고, 레코드와 함께 생성된 파티션에 기록할 수 있다.That is, the record recorder 120 may calculate the time information on the input time of the record as a time column value, and record the time information on the partition created together with the record.

파티션 생성부(110)는 레코드의 기록을 모니터링 하면서, 입력되는 레코드가 기설정된 조건에 부합되는 경우에 파티션을 생성한다. 따라서, 파티션 생성부(110)는 입력되는 레코드가 기설정된 조건에 부합하지 않는 경우에 대해서도 모니터링할 수 있고, 이 경우에는 레코드 기록부(120)로 레코드 기록의 중지를 요청한다.The partition generation unit 110 monitors the record of the record, and creates the partition when the input record meets predetermined conditions. Accordingly, the partition generating unit 110 can monitor the input record if it does not meet predetermined conditions. In this case, the partition generating unit 110 requests the record recording unit 120 to stop recording the record.

예를 들어, 현재의 파티션에 기설정된 개수에 해당하는 레코드가 기록된 경우, 레코드 기록부(120)는 파티션 생성부(110)로부터 현재의 파티션에 대한 레코드 기록을 중지하도록 요청받을 수 있다.For example, if a record corresponding to a preset number is recorded in the current partition, the record recording unit 120 may be requested to stop recording the record of the current partition from the partition generation unit 110. [

이 경우, 레코드 기록부(120)는 현재의 파티션에 레코드 기록을 중지하고 새로 생겨나는 파티션에서 레코드 기록을 재개할 수 있다.In this case, the record recorder 120 can stop recording the record in the current partition and resume recording the record in the newly created partition.

즉, 레코드 기록부(120)는 새로운 파티션이 생성되면, 레코드 기록이 중지된 레코드들부터 새로운 파티션에 기록할 수 있다. 마찬가지로, 레코드 기록부(120)는 파티션 생성부(110)의 기록 중지 요청을 수신할 때까지 해당 파티션에 레코드 기록을 계속할 수 있다.That is, when a new partition is created, the record recording unit 120 can record the records in which the record recording is stopped in the new partition. Similarly, the record recording unit 120 may continue recording records in the partition until receiving a recording stop request from the partition generating unit 110. [

다른 예로, 현재의 파티션에 기설정된 용량에 해당하는 레코드가 기록된 경우, 레코드 기록부(120)는 파티션 생성부(110)로부터 현재의 파티션에 대한 레코드 기록을 중지하도록 요청받을 수 있다. 또한, 레코드 기록부(120)는 새로운 파티션이 생성되면, 레코드 기록이 중지된 레코드들부터 새로운 파티션에 기록할 수 있다. 마찬가지로, 레코드 기록부(120)는 파티션 생성부(110)의 기록 중지 요청을 수신할 때까지 해당 파티션에 레코드 기록을 계속할 수 있다.As another example, if a record corresponding to a preset capacity is recorded in the current partition, the record recording unit 120 may be requested to stop recording the record of the current partition from the partition generation unit 110. [ In addition, when a new partition is created, the record recording unit 120 can record the records in which the record recording has been stopped to the new partition. Similarly, the record recording unit 120 may continue recording records in the partition until receiving a recording stop request from the partition generating unit 110. [

이로써, 시계열 데이터는 개수 또는 총용량이 설정되어 생성되는 파티션들에 나눠 기록될 수 있다.Thus, the time series data can be recorded in the partitions created by setting the number or the total capacity.

결국, 각 파티션에 기록되는 레코드들이 시계열 데이터를 구현할 수 있는데, 각 파티션에 기록되기 전에 각 레코드들은 시간 칼럼값이 반영되기 때문에 파티션 내에서도 시계열적으로 기록될 수 있다. 즉, 시계열 데이터가 파티션별로 나뉘어 기록되더라도 전체 시계열 데이터로 복구되는 것이 가능하다.As a result, the records recorded in each partition can implement time series data, and each of the records can be recorded in a time-series manner in the partition since the time column values are reflected before being recorded in each partition. That is, even if the time series data is divided and recorded for each partition, it is possible to recover the entire time series data.

일실시예에 따른 시간 기반 파티셔닝 시스템은 파티션 로컬 인덱스 관리부(130)를 더 포함할 수 있다.The time-based partitioning system according to an embodiment may further include a partition local index management unit 130. [

일실시예에 따른 파티션 로컬 인덱스 관리부(130)는 생성된 파티션에 기설정된 조건에 해당하는 레코드들이 기록된 경우, 기록된 레코드들의 시간 칼럼값을 파티션 로컬 인덱스로 갱신한다.The partition local index management unit 130 updates the time column value of the recorded records to a partition local index when records corresponding to predetermined conditions are recorded in the created partition.

즉, 파티션 로컬 인덱스 관리부(130)는 현재의 파티션에 레코드 기록이 완료되고 새로운 파티션이 생성되는 경우, 레코드 기록이 완료된 현재의 파티션 내에서 각 레코드들에 대한 시간 칼럼을 파티션 로컬 인덱스로 갱신한다.That is, when the record of the record in the current partition is completed and a new partition is created, the partition local index management unit 130 updates the time column of each record in the current partition in which the record recording is completed to the partition local index.

파티션 로컬 인덱스 관리부(130)는 각 파티션 내에서의 검색 및 관리의 효율을 위해, 파티션 내에서 식별이 가능하도록 각 레코드에 파티션 로컬 인덱스가 부여한다.The partition local index management unit 130 assigns a partition local index to each record so that the partition can be identified in the partition for efficient search and management in each partition.

파티션 로컬 인덱스는 레코드의 입력 시간이 반영된 인터벌일 수 있고, 해당 파티션 내에서 고유 식별이 가능하고 순서 식별이 가능한 식별자(예를 들어, 숫자, 알파벳, 특수문자, 및 이들의 조합 등)를 포함할 수 있다.The partition local index may be an interval reflecting the input time of the record, and may include an identifier (e.g., numerals, alphabets, special characters, and combinations thereof, etc.) .

일실시예에 따른 파티션 생성부(110)는 현재 파티션에 상응하여 생성된 마지막 파티션 로컬 인덱스와 새로운 파티션에 상응하여 생성된 최초의 파티션 로컬 인덱스가 시계열적으로 연속되도록 새로운 파티션을 생성할 수 있다.The partition generating unit 110 may generate a new partition so that the last partition local index generated corresponding to the current partition and the first partition local index generated corresponding to the new partition are serially connected in a time series manner.

예를 들어, 파티션 로컬 인덱스는 각 파티션마다 고유 식별되는 값들일 수 있는데, 각 파티션들이 시계열적으로 연속되는 것임을 나타내기 위해 각 파티션 로컬 인덱스 역시 시계열적으로 연속되도록 생성할 수 있다. 구체적인 예로, 첫 번째 파티션의 마지막 레코드에 부여된 파티션 로컬 인덱스가 100이라면, 두 번째 파티션의 첫 번째 레코드에 부여되는 파티션 로컬 인덱스는 101일 수 있다.For example, a partitioned local index may be a value that is uniquely identified for each partition, and each partition local index may also be created in a chronologically sequential manner to indicate that each partition is chronologically sequential. As a specific example, if the partition local index assigned to the last record in the first partition is 100, the partition local index assigned to the first record in the second partition may be 101.

일실시예에 따른 파티션 생성부(110)는 생성되는 파티션에 기록되는 최초의 레코드 입력 시간과, 생성되는 파티션에 기록되는 마지막 레코드 입력 시간으로 구분되는 인터벌이 반영된 파티션 인덱스를 생성하여 생성되는 파티션에 매칭할 수 있다. 각 파티션도 식별이 필요하며, 파티션 인덱스는 각 파티션을 고유 식별할 수 있는 정보로서 부여될 수 있다. 예를 들어, 파티션 인덱스는 레코드의 입력 시간이 반영된 인터벌일 수 있고, 여러 파티션 중에서 고유 식별이 가능하고 순서 식별이 가능한 식별자(예를 들어, 숫자, 알파벳, 특수문자, 및 이들의 조합 등)를 포함할 수 있다.The partition generation unit 110 according to an embodiment generates a partition index reflecting an interval distinguished by the first record input time recorded in the created partition and the last record input time recorded in the created partition, Can be matched. Each partition also needs to be identified, and the partition index can be given as information that can uniquely identify each partition. For example, a partition index may be an interval that reflects the input time of a record, and may include identifiers (e.g., numbers, alphabets, special characters, and combinations thereof) .

도 2는 시간 기반 파티셔닝 시스템을 이용하는 전체 시스템(200) 구조를 설명하는 도면이다.2 is a diagram illustrating an overall system 200 architecture using a time-based partitioning system.

도 2를 살펴보면, 새로운 데이터(201)가 입력되면, 기설정된 조건에 부합되기 전까지 현재의 파티션에 기록될 수 있다.Referring to FIG. 2, when new data 201 is input, the new data 201 can be recorded in the current partition until a predetermined condition is satisfied.

예를 들어, 기설정된 조건이 레코드의 개수인 경우 새로운 데이터(201)에 포함된 레코드의 개수가 기설정된 개수를 초과할 때까지 현재의 파티션(202)에 기록될 수 있다.For example, if the predetermined condition is the number of records, the number of records included in the new data 201 may be recorded in the current partition 202 until the number of records exceeds a predetermined number.

만약, 새로운 데이터(201)에 포함된 레코드의 개수가 기설정된 개수를 초과한다면, 현재의 파티션(202)은 타임 라인에서 과거의 파티션으로 하나 시프트되고, 현재의 파티션(202)의 위치에 새로운 파티션이 생성될 수 있다.If the number of records included in the new data 201 exceeds a predetermined number, the current partition 202 is shifted to the old partition in the timeline, and a new partition Can be generated.

마찬가지로, 새로운 데이터는 기설정된 개수를 초과할 때까지 새로운 파티션에 기록된다.Likewise, new data is written to the new partition until it exceeds the preset number.

각각의 파티션에는 파티션 로컬 인덱스(203)가 부여될 수 있다. 일례로, 파티션에 기설정된 개수가 기록된 이후 새로운 파티션이 생성되는 시점에서, 과거의 타임 라인으로 이동한 파티션에 기록된 레코드들에 파티션 로컬 인덱스가 부여될 수 있다. 이때, 각 레코드들은 입력 시간이 반영된 칼럼값이 매칭되어 있는데, 이 칼럼값 대신에 파티션 로컬 인덱스로 갱신될 수 있다.A partition local index 203 may be assigned to each partition. For example, at a point when a new partition is created after a predetermined number is recorded in a partition, a partition local index may be assigned to records recorded in a partition moved to a past timeline. At this time, each record is matched with the column value reflecting the input time, and it can be updated to the partition local index instead of the column value.

시간 기반 파티셔닝 시스템을 이용하는 전체 시스템(200) 구조에서는 실시간으로 빠르게 대용량의 데이터 검색이 가능하다.The entire system 200 architecture using a time-based partitioning system allows fast and large data retrieval in real time.

응용으로부터 시간 기반 쿼리(205)를 수신하는 경우, 전체 시스템(200)에서는 시간 기반 쿼리(205)에 대응되는 파티션(204)을 우선적으로 빠르게 검색할 수 있다. 다음으로, 해당 파티션(204) 내에서 특정 레코드를 검색하거나, 해당 파티션(204) 내에서 특정 레코드의 범위를 검색함으로써 불필요한 검색을 줄여 실시간으로 빠른 검색이 가능하다. Upon receiving a time-based query 205 from an application, the entire system 200 may preferentially quickly search the partition 204 corresponding to the time-based query 205. Next, a search for a specific record in the corresponding partition 204 or a range of a specific record in the corresponding partition 204 is performed, thereby reducing unnecessary searches and enabling quick search in real time.

전체 시스템(200)은 검색 결과를 파티션(204)으로부터 독출하여 제공(206)할 수 있다.The entire system 200 may retrieve (206) the search results from the partition 204.

도 3은 일실시예에 따른 시간 기반 파티셔닝 방법을 설명하는 도면이다.3 is a diagram illustrating a time-based partitioning method according to one embodiment.

일실시예에 따른 시간 기반 파티셔닝 방법은 기설정된 조건에 부합되는 경우, 현재의 파티션을 생성한다(단계 301). 다음으로, 시간 기반 파티셔닝 방법은 입력되는 레코드에 시간 칼럼값을 반영하여 생성된 파티션에 기록한다(단계 302).The time-based partitioning method according to an exemplary embodiment of the present invention creates a current partition (step 301) when a predetermined condition is satisfied. Next, the time-based partitioning method writes the time column value into the partition created by reflecting the time column value in the input record (step 302).

시간 칼럼값은 각 레코드가 입력된 순간의 시간 정보로서, 각 레코드에 매칭되어 기록된다. 따라서, 시계열 데이터가 레코드로 분할되고, 서로 다른 파티션에 기록되더라도 다시 시계열적으로 복구될 수 있다.The time column value is time information of the moment when each record is input, and is recorded in matching with each record. Thus, time series data can be recovered in a timely manner even if it is divided into records and written to different partitions.

다음으로, 시간 기반 파티셔닝 방법은 레코드 기록을 모니터링하면서 현재 파티션에 기설정된 조건에 해당하는 레코드들이 기록되었는지 여부를 판단할 수 있다(단계 303).Next, the time-based partitioning method may determine whether records corresponding to preset conditions are recorded in the current partition while monitoring the record record (step 303).

예를 들어, 현재 파티션에 10,000개의 레코드가 기록될 수 있도록 조건이 설정된 경우를 고려할 수 있다. 이 경우, 시간 기반 파티셔닝 방법은 단계 303을 통해 현재의 파티션에 10,000개의 레코드가 기록되었는지 여부를 판단할 수 있다.For example, consider the case where a condition is set so that 10,000 records can be written to the current partition. In this case, the time-based partitioning method can determine whether 10,000 records have been recorded in the current partition through step 303. [

한편, 현재 파티션에 1테라의 레코드가 기록될 수 있도록 조건이 설정된 경우를 고려할 수 있다. 이 경우, 시간 기반 파티셔닝 방법은 단계 303을 통해 현재의 파티션에 1테라의 레코드가 기록되었는지 여부를 판단할 수 있다.On the other hand, it is possible to consider a case where a condition is set so that a record of 1 terabyte can be recorded in the current partition. In this case, the time-based partitioning method can determine whether a record of one terabyte has been recorded in the current partition through step 303. [

다음으로, 단계 303의 판단 결과, 현재 파티션에 기설정된 조건에 해당하는 레코드들이 기록되어 있다면, 즉, 입력하려는 레코드가 10,001번째 레코드에 해당하거나, 1테라를 초과하는 레코드가 현재 파티션에 기록된다면, 시간 기반 파티셔닝 방법은 단계 304를 통해 새로운 파티션을 생성할 수 있다.If it is determined in step 303 that records corresponding to conditions preset in the current partition are recorded, that is, if the record to be input corresponds to the 10,001st record or a record exceeding 1 terabyte is recorded in the current partition, The time-based partitioning method may create a new partition via step 304.

다음으로, 시간 기반 파티셔닝 방법은 기록 완료된 파티션에 대해서 각 레코드에 부여된 시간 칼럼값을 파티션 로컬 인덱스로 갱신할 수 있다(단계 305). 일례로, 시간 기반 파티셔닝 방법은 시간 칼럼값을 파티션 로컬 인덱스로 대체할 수 있고, 시간 칼럼값을 그대로 남겨두고 파티션 로컬 인덱스를 추가할 수도 있다.Next, the time-based partitioning method may update the time column value assigned to each record with the partitioned local index for the recorded partition (step 305). For example, the time-based partitioning method may replace the time column value with the partition local index, and may add the partition local index without leaving the time column value.

즉, 단계 305는 색인이 설정된 칼럼에 대해서 파티션 내의 칼럼 값에 대한 색인을 생성하는 것인데, 새로 입력되는 레코드에 대한 색인 갱신 연산은 현재 파티션에만 반영되며 이전 파티션에는 변경되지 않아서 입력 성능에 영향을 끼치지 않는다.That is, step 305 is to create an index of the column value in the partition for the indexed column. The index update operation for the newly inputted record is reflected only in the current partition, and is not changed in the previous partition, Do not.

도 4는 일실시예에 따른 시간 기반 파티셔닝 시스템을 통해 생성된 파티션에서 데이터를 '읽기'하는 실시예를 설명하는 도면이다.Figure 4 is an illustration of an embodiment of 'reading' data in a partition created through a time-based partitioning system according to an embodiment.

도 4를 살펴보면, 서버는 클라이언트 응용으로부터 시간 조건절을 포함한 질의를 수신한다(단계 401). 시계열 데이터에 대해서 각 레코드에 설정된 시간값을 조건절로 해서 검색이 가능하다.Referring to FIG. 4, the server receives a query including a time condition from a client application (step 401). For time series data, it is possible to search by using the time value set in each record as a conditional.

다음으로, 서버는 해당 시간조건을 포함하는 파티션을 선택한다(단계 402). 이때, 서버는 조건절에 상응하는 파티션 인덱스를 검색할 수 있는데, 이를 위해 파티션 인덱스는 레코드 입력에 따른 입력 시간이 반영된 인터벌을 포함할 수 있다. 즉, 서버는 파티션 인덱스의 인터벌을 확인해서 입력된 시간조건에 부합되는 파티션 인덱스를 검색할 수 있다.Next, the server selects a partition containing the corresponding time condition (step 402). At this time, the server can retrieve the partition index corresponding to the conditional index. For this, the partition index may include an interval reflecting the input time according to the record input. That is, the server can check the interval of the partition index and retrieve the partition index corresponding to the inputted time condition.

서버는 파티션 로컬 인덱스를 추가로 이용하여 입력된 질의에 해당하는 레코드들을 검색한다(단계 403). 즉, 서버는 질의를 보다 세분화하여 파티션 내에서 특정 레코드들을 검색할 수 있다.The server further searches the records corresponding to the input query using the partition local index (step 403). That is, the server can further refine the query and retrieve specific records within the partition.

다음으로, 서버는 파티션된 데이터 파일만을 개방하여 원하는 레코드를 읽어서 응용에 전달한다(단계 404).Next, the server opens only the partitioned data file, reads the desired record, and transmits it to the application (step 404).

도 5는 일실시예에 따른 시간 기반 파티셔닝 시스템을 통해 생성된 파티션에서 데이터를 '쓰기'하는 실시예를 설명하는 도면이다.5 is a diagram illustrating an embodiment of 'writing' data in a partition created through a time-based partitioning system according to an embodiment.

클라이언트 응용은 입력할 데이터를 서버에 전달한다(단계 501).The client application transmits data to be input to the server (step 501).

이에, 서버는 전달된 입력 데이터에 서버의 현재 시간을 추가하여 _ARRIVAL_TIME 칼럼값을 설정한다(단계 502). _ARRIVAL_TIME 칼럼값은 레코드의 입력 순간에 해당하는 시간 정보를 포함할 수 있고, 입력되는 모든 레코드들에는 _ARRIVAL_TIME 칼럼값이 설정될 수 있다.The server adds the current time of the server to the input data to set the value of the _ARRIVAL_TIME column (step 502). The _ARRIVAL_TIME column value may include time information corresponding to the input time of the record, and all input records may be set to the _ARRIVAL_TIME column value.

다음으로, 서버는 현재의 파티션에 대해 입력 레코드 수를 초과하였는지 여부를 판단할 수 있다(단계 503). 즉, 서버는 마지막 파티션에 데이터를 기록하기 전에 파티션에 설정된 최대 입력 레코드 수가 초과 하였는지 검사할 수 있다.Next, the server can determine whether the number of input records for the current partition has been exceeded (step 503). That is, the server can check that the maximum number of input records set in the partition has been exceeded before writing data to the last partition.

이에 서버는 단계 503의 판단 결과 최대 입력레코드 수를 초과한 경우라면, 새로운 데이터 파티션을 생성하고 이를 그 파일에 기록한다(단계 504).If the server has exceeded the maximum number of input records as a result of the determination in step 503, the server creates a new data partition and records it in the file (step 504).

한편, 서버는 단계 503의 판단 결과 최대 입력레코드 수가 초과하지 않았다면 해당 데이터를 마지막 파티션에 기록한다(단계 505).On the other hand, if it is determined in step 503 that the maximum number of input records is not exceeded, the server writes the data in the last partition (step 505).

파티션 로컬 인덱스 관리를 위해, 관리자는 마지막으로 색인에 반영된 레코드 이후에 데이터 파일에 반영된 레코드가 존재하면 그 레코드를 색인에 반영할 수 있다. 또한, 로컬 파티션 색인에 대한 최대 레코드 수가 초과된 경우 새로운 색인을 생성하고 새로운 색인 파일에 데이터를 입력할 수도 있다.For partition local index management, the administrator can reflect the record in the data file after the last reflected record in the index exists in the index. Also, if the maximum number of records for the local partition index has been exceeded, you can create a new index and enter the data into a new index file.

결국, 본 발명을 이용하면 시계열 데이터를 기록하기 위한 파티션들을 자동으로 생성하여 대량의 시계열 데이터가 삽입되더라도 고속의 레코드 입력이 가능하다. 또한, 레코드를 고속으로 입력하는 경우에도 각 파티션들에 대한 검색을 위한 조건절을 부여함으로써, 시계열 데이터에 대한 고속의 검색연산이 가능하고, 시간 기반의 파티셔닝을 통해 고속의 입출력이 가능함에 따라 레코드의 실시간 입출력이 가능하다.As a result, according to the present invention, partitions for recording time-series data are automatically generated and high-speed records can be input even if a large amount of time series data is inserted. In addition, even when a record is input at a high speed, by providing a conditional phrase for searching each partition, it is possible to perform a high-speed search operation on time series data and to perform high-speed input / output through time- Real-time input / output is possible.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (10)

컴퓨팅 단말에 의해 비일시적으로 구현되는 시간 기반 파티셔닝 시스템에 있어서,
시계열적으로 입력되는 레코드가 기설정된 조건에 부합되는 경우에 파티션을 생성하는 파티션 생성부; 및
상기 입력되는 레코드에 시간 칼럼값을 반영하여 상기 생성된 파티션에 기록하는 레코드 기록부
를 포함하며,
상기 레코드 기록부는 레코드의 입력시점에 대한 시간정보를 시간 칼럼값으로 산출하고, 레코드와 함께 생성된 파티션에 기록하는 시간 기반 파티셔닝 시스템.
CLAIMS What is claimed is: 1. A time-based partitioning system implemented non-temporally by a computing terminal,
A partition generating unit for generating a partition when a record to be input in a time-series manner meets predetermined conditions; And
A recorder for recording the time column value in the input record to the generated partition,
/ RTI >
Wherein the record recorder calculates time information on the input time of the record as a time column value and records the time information on a partition created with the record.
제1항에 있어서,
상기 생성된 파티션에 상기 기설정된 조건에 해당하는 레코드들이 기록된 경우, 상기 기록된 레코드들의 시간 칼럼값을 파티션 로컬 인덱스로 갱신하는 파티션 로컬 인덱스 관리부
를 더 포함하는 시간 기반 파티셔닝 시스템.
The method according to claim 1,
A partition local index manager for updating a time column value of the recorded records to a partition local index when records corresponding to the predetermined condition are recorded in the created partition,
Wherein the time-based partitioning system further comprises:
제1항에 있어서,
상기 파티션 생성부는,
현재의 파티션에 기설정된 개수에 해당하는 레코드가 기록된 경우, 상기 현재의 파티션에 대한 레코드 기록을 중지하도록 상기 레코드 기록부에 요청하고, 새로운 파티션을 생성하는 시간 기반 파티셔닝 시스템.
The method according to claim 1,
Wherein the partition generating unit comprises:
Requesting the record recording section to stop recording the record for the current partition and generating a new partition when a record corresponding to a preset number is recorded in the current partition.
제3항에 있어서,
상기 레코드 기록부는,
상기 새로운 파티션이 생성되면, 상기 레코드 기록이 중지된 레코드들부터 상기 새로운 파티션에 기록하는 시간 기반 파티셔닝 시스템.
The method of claim 3,
The record-
And wherein when the new partition is created, the record is recorded in the new partition from the stopped records.
제1항에 있어서,
상기 파티션 생성부는,
현재의 파티션에 기설정된 용량의 레코드들이 기록된 경우, 상기 현재의 파티션에 대한 레코드 기록을 중지하도록 상기 레코드 기록부에 요청하고, 새로운 파티션을 생성하는 시간 기반 파티셔닝 시스템.
The method according to claim 1,
Wherein the partition generating unit comprises:
Requesting the record recording section to stop recording the record for the current partition and creating a new partition if records of a preset capacity are recorded in the current partition.
제3항에 있어서,
상기 파티션 생성부는,
상기 현재 파티션에 상응하여 생성된 마지막 파티션 로컬 인덱스와 상기 새로운 파티션에 상응하여 생성된 최초의 파티션 로컬 인덱스가 시계열적으로 연속되도록 상기 새로운 파티션을 생성하는 시간 기반 파티셔닝 시스템.
The method of claim 3,
Wherein the partition generating unit comprises:
Wherein the new partition is created so that the last partition local index generated corresponding to the current partition and the first partition local index generated corresponding to the new partition are chronologically continuous.
제1항에 있어서,
상기 파티션 생성부는,
상기 생성되는 파티션에 기록되는 최초의 레코드 입력 시간과, 상기 생성되는 파티션에 기록되는 마지막 레코드 입력 시간으로 구분되는 인터벌이 반영된 파티션 인덱스를 생성하여 상기 생성되는 파티션에 매칭하는 시간 기반 파티셔닝 시스템.
The method according to claim 1,
Wherein the partition generating unit comprises:
Wherein a partition index reflecting an interval separated by a first record input time recorded in the created partition and a last record input time recorded in the created partition is generated and matched to the generated partition.
제1항에 있어서,
상기 레코드 기록부는,
상기 입력되는 레코드를 기록하는 시점에서의 시간 정보를 상기 시간 칼럼값으로 설정하는 시간 기반 파티셔닝 시스템.
The method according to claim 1,
The record-
And sets time information at a time of recording the input record as the time column value.
컴퓨팅 단말에 의해 비일시적으로 구현되는 시간 기반 파티셔닝 방법에 있어서,
시계열적으로 입력되는 레코드가 기설정된 조건에 부합되는 경우에 파티션을 생성하는 단계;
상기 입력되는 레코드에 시간 칼럼값을 반영하여 상기 생성된 파티션에 기록하는 단계; 및
상기 생성된 파티션에 상기 기설정된 조건에 해당하는 레코드들이 기록된 경우, 상기 기록된 레코드들의 시간 칼럼값을 파티션 로컬 인덱스로 갱신하는 단계
를 포함하며,
상기 시간 칼럼값은 레코드가 입력되는 순간에서의 시간정보를 포함하는 시간 기반 파티셔닝 방법.
CLAIMS 1. A time-based partitioning method implemented non-temporally by a computing terminal,
Generating a partition when a record to be input in a time-series manner meets predetermined conditions;
Reflecting the time column value in the input record and recording the time column value in the created partition; And
Updating the time column value of the recorded records to a partition local index when records corresponding to the predetermined condition are recorded in the created partition
/ RTI >
Wherein the time column value includes time information at a moment when a record is input.
제9항에 있어서,
상기 파티션을 생성하는 단계는,
현재의 파티션에 기설정된 개수에 해당하는 레코드가 기록된 경우, 상기 현재의 파티션에 대한 레코드 기록을 중지하도록 요청하고, 새로운 파티션을 생성하는 단계를 포함하는 시간 기반 파티셔닝 방법.
10. The method of claim 9,
Wherein the step of creating the partition further comprises:
Requesting to stop recording the record for the current partition and creating a new partition if a record corresponding to the preset number is recorded in the current partition.
KR1020150149890A 2015-10-28 2015-10-28 System and method for time base partitioning using implicit time column value Active KR101656077B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150149890A KR101656077B1 (en) 2015-10-28 2015-10-28 System and method for time base partitioning using implicit time column value

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150149890A KR101656077B1 (en) 2015-10-28 2015-10-28 System and method for time base partitioning using implicit time column value

Publications (1)

Publication Number Publication Date
KR101656077B1 true KR101656077B1 (en) 2016-09-08

Family

ID=56950645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150149890A Active KR101656077B1 (en) 2015-10-28 2015-10-28 System and method for time base partitioning using implicit time column value

Country Status (1)

Country Link
KR (1) KR101656077B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200020347A (en) 2018-08-17 2020-02-26 주식회사 마크베이스 Method and device of searching index for sensor tag data
WO2020242956A1 (en) * 2019-05-24 2020-12-03 Hydrolix, Inc. Efficient and scalable time-series data storage and retrieval over a network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100865481B1 (en) 2007-05-14 2008-10-27 엔에이치엔(주) How to manage data distribution using a three-dimensional structured data model
KR20090080065A (en) * 2006-10-05 2009-07-23 스플렁크 인코퍼레이티드 Time series search engine
KR20100061308A (en) * 2008-11-28 2010-06-07 인터내셔널 비지네스 머신즈 코포레이션 Information processing apparatus, database system, information processing method, and program
KR100989904B1 (en) 2009-03-27 2010-10-26 충북대학교 산학협력단 Partitioning Method for Fast Cluster Based PC Cluster Search
KR20110073175A (en) * 2009-12-18 2011-06-29 한국전자통신연구원 Column-based data management method and management device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090080065A (en) * 2006-10-05 2009-07-23 스플렁크 인코퍼레이티드 Time series search engine
KR100865481B1 (en) 2007-05-14 2008-10-27 엔에이치엔(주) How to manage data distribution using a three-dimensional structured data model
KR20100061308A (en) * 2008-11-28 2010-06-07 인터내셔널 비지네스 머신즈 코포레이션 Information processing apparatus, database system, information processing method, and program
KR100989904B1 (en) 2009-03-27 2010-10-26 충북대학교 산학협력단 Partitioning Method for Fast Cluster Based PC Cluster Search
KR20110073175A (en) * 2009-12-18 2011-06-29 한국전자통신연구원 Column-based data management method and management device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200020347A (en) 2018-08-17 2020-02-26 주식회사 마크베이스 Method and device of searching index for sensor tag data
US10706054B2 (en) 2018-08-17 2020-07-07 Machbase, Inc. Method and device for searching indexes for sensor tag data
KR102177489B1 (en) * 2018-08-17 2020-11-11 주식회사 마크베이스 Method and device of searching index for sensor tag data
WO2020242956A1 (en) * 2019-05-24 2020-12-03 Hydrolix, Inc. Efficient and scalable time-series data storage and retrieval over a network

Similar Documents

Publication Publication Date Title
US8468146B2 (en) System and method for creating search index on cloud database
US10423902B2 (en) Parallel processing apparatus and method of estimating power consumption of jobs
US11321302B2 (en) Computer system and database management method
CN105989015B (en) Database capacity expansion method and device and method and device for accessing database
KR101643729B1 (en) System and method of data managing for time base data backup, restoring, and mounting
CN110580253B (en) Time sequence data set loading method and device, storage medium and electronic equipment
US9891977B2 (en) Managing spaces in memory
US10901982B2 (en) Managing a data set
KR101656077B1 (en) System and method for time base partitioning using implicit time column value
CN109189343B (en) Metadata disk-dropping method, device, equipment and computer-readable storage medium
US20190018857A1 (en) Defragmenting files having file blocks in multiple point-in-time copies
CN114153394A (en) Data storage management method, device and equipment
KR101772333B1 (en) INTELLIGENT JOIN TECHNIQUE PROVIDING METHOD AND SYSTEM BETWEEN HETEROGENEOUS NoSQL DATABASES
KR101693108B1 (en) Database read method and apparatus using t-tree index for improving read performance
US20180081942A1 (en) Managing Data Obsolescence in Relational Databases
JP6366812B2 (en) Computer and database management method
KR20220160972A (en) Method and apparatus for generating action history of applications
KR101425816B1 (en) Real-time search method and real-time search system
US10482077B2 (en) System and method for asynchronous update of a search index
KR101508939B1 (en) Parallel index method and parallel index system for real-time search
KR102220978B1 (en) Appratus and method for management of database
KR20250066344A (en) Apparatus and method for optimizing cost of scheduling queries
KR20090003093A (en) Unstructured data management method and device using object file system
JP2008015810A (en) Index division management method for table data with multiple columns
KR101497317B1 (en) Personalized data search system based on cloud and method thereof

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20151028

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20151125

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20151028

Patent event code: PA03021R01I

Comment text: Patent Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20160204

Patent event code: PE09021S01D

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

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20160830

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20160902

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20160902

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20200901

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20210831

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20220830

Start annual number: 7

End annual number: 7