WO2021107211A1 - In-memory database-based time-series data management system - Google Patents

In-memory database-based time-series data management system Download PDF

Info

Publication number
WO2021107211A1
WO2021107211A1 PCT/KR2019/016673 KR2019016673W WO2021107211A1 WO 2021107211 A1 WO2021107211 A1 WO 2021107211A1 KR 2019016673 W KR2019016673 W KR 2019016673W WO 2021107211 A1 WO2021107211 A1 WO 2021107211A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
time series
series data
time
data block
Prior art date
Application number
PCT/KR2019/016673
Other languages
French (fr)
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 주식회사 리얼타임테크
Publication of WO2021107211A1 publication Critical patent/WO2021107211A1/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management 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/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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor

Definitions

  • the present invention does not store time series data in record units, but divides time series data of the same attribute into data blocks of a certain size and stores them in a time-connected manner, and creates and manages indexes in units of data blocks, thereby providing an in-memory database It relates to a technology that can improve the management and analysis performance of time series data analyzed chronologically in a system.
  • RDBMS Relational Database Management System
  • time series data is being collected in real time, and such time series data is composed of a specific time and one or more data values collected at the corresponding time.
  • the in-memory database stores and manages time series data as multiple records composed of multiple fields in a similar way to general data, and creates and manages indexes for each record.
  • the conventional in-memory database that manages time series data in record units and creates indexes in record units causes performance degradation in consideration of the characteristics of time series data analysis.
  • Time series data is divided into data blocks of a certain size and sequentially stored in chronological order, and an index for time series data is created in units of data blocks, so that time series data rapidly increases
  • Its technical purpose is to provide an in-memory database-based time series data management system that not only solves the problem of increasing the index size, but also efficiently searches time series data analyzed in chronological order using data blocks. There is this.
  • time series data is stored in units of data blocks of a certain size, but as for time series data of the same property, a plurality of data blocks are connected in a chain form so that time series data is sequentially sequential.
  • One index table is stored for data blocks in which time series data of the same attribute is stored, but the index table is a time series consisting of index information for each data block including start time and end time for each data block and data block location information.
  • the first data block information is obtained by searching the record table including the query time condition, and data block location information that satisfies the query time condition is obtained from the index table including the first data block.
  • An in-memory database-based time series data management system is provided.
  • the data block stored in the time series data storage unit includes a header area and a body area in which actual time series data is stored, and the header area includes NEXT data block information and corresponding data connected to the corresponding data block in a chain form. It includes the start time of the block and the end time of the corresponding data block, and the body area is characterized in that the time series data collection time and data items in the form in which one or more data values are arranged in a preset order are sequentially stored in the time series data collection time order.
  • time stamp items are allocated to the header area of the data block, and the time stamp items are set as collection times of data items stored in the body area, and the data item collection times set in the time stamp items are sequentially assigned to the body area.
  • an in-memory database-based time-series data management system characterized in that it is set as a data item collection time at a location having a predetermined interval from the stored data items.
  • the time series data processing unit identifies a timestamp item close to the query time condition in the header area of the data block when performing time series data search, and data that satisfies the query time condition from the data item at the timestamp position checked in the body area.
  • the time series data is configured to further include a metadata storage unit for storing a meta table including information on the type of data corresponding to the data value and the arrangement order thereof, the time series data processing unit having a plurality of data values
  • a metadata storage unit for storing a meta table including information on the type of data corresponding to the data value and the arrangement order thereof
  • the time series data processing unit having a plurality of data values
  • time series data processing unit is an in-memory database-based time series data management system, characterized in that it supports to set a data storage environment of time series data in a UDT (User Defined Type) method for time series data having a plurality of data values.
  • UDT User Defined Type
  • time series data processing unit performs a time series data search for a time series data deletion query to search for a data item in which the time series data to be deleted is stored, and then sets the collection time to “NULL” in the searched data item.
  • time series data analysis and management performance of time series data can be improved by dividing and storing time series data in chronological order and storing them in units of data blocks of a certain size, and creating and managing indexes in units of data blocks.
  • the header area of the data block includes time series data time information for a predetermined position stored in the body area of the data block, improved time series data retrieval performance can be guaranteed.
  • FIG. 2 is a diagram illustrating a query for a UDT function supported by the time series data processing unit 100 shown in FIG. 1 .
  • FIG. 3 is a diagram illustrating a meta table structure of the metadata storage unit 200 shown in FIG. 1 .
  • FIG. 4 is a diagram illustrating a record table structure of the record storage unit 300 shown in FIG. 1;
  • FIG. 6 is a diagram illustrating an index table structure of the time series data indexing unit 500 shown in FIG. 1.
  • FIG. 6 is a diagram illustrating an index table structure of the time series data indexing unit 500 shown in FIG. 1.
  • FIG. 7 is a flowchart for explaining a time series data storage operation in the time series data management system based on the in-memory database shown in FIG. 1;
  • FIG. 8 is a flowchart for explaining a time series data search operation in the time series data management system based on the in-memory database shown in FIG. 1.
  • FIG. 8 is a flowchart for explaining a time series data search operation in the time series data management system based on the in-memory database shown in FIG. 1.
  • FIG. 1 is a diagram illustrating a schematic configuration of an in-memory database-based time series data management system according to a first embodiment of the present invention.
  • an in-memory database-based time series data management system includes a time series data processing unit 100 , a metadata storage unit 200 , a record storage unit 300 , and a time series data storage unit 400 . and a time series data indexing unit 500 .
  • the time series data processing unit 100 processes a query for time series data requested by the user.
  • the time-series data processing unit 100 processes time-series data-related queries such as storage, deletion, and correction of time-series data, a search for analysis, and calculation of sum or difference.
  • FIG. 2 shows a field name for storing time series data using a User Defined Type (UDT) function defined by a user, a query statement (a) for setting a data storage environment of time series data, and a record for time series data corresponding thereto
  • the query statement (b) for creating a table is exemplified.
  • the time series data field type is set to "dustsensor”, and for each column name of "t, v1, v2, v3", each column type of "time, int, double, double” has You can set the time series data storage environment.
  • FIG. 2(b) a table having a field name of “DustSensingValue” can be created. That is, the field name of a field in which time series data information is stored in the record table in FIG. 4 is set to "DustSensingValue”.
  • the metadata storage unit 200 is a device for effectively storing and managing time series data, and manages metadata for time series data based on a user-defined time series data field name.
  • the record storage unit 300 stores general column information on general properties such as object ID, location, and date for each record ID (hereinafter oid) allocated to time series data and time series data information on the corresponding object.
  • oid may be an id for a collection device that collects time series data, and general columns are stored in the form of a general relational table.
  • the record table includes a general column area for each oid and a time series data area as shown in (a). And, as shown in (b), the time series data area includes the total start time, the total end time, the number of timestamps, and first data block information for the entire time series data.
  • the first data block information may be a storage location of a corresponding data block stored in the time series data storage unit 400 .
  • the number of timestamps is the number of time information in the corresponding data block included in the header area in the data block structure of the time series data storage unit 400 in which the time series data is stored.
  • the record storage unit 300 allocates one oid to time series data having the same property, and stores only the first data block information of the time series data storage unit 400 in which the actual time series data is stored for the oid. Therefore, even when time series data continuously increases, only pointer information for the first data block is recorded in the record table, so record management is easy.
  • the time series data storage unit 400 stores the actual time series data in units of data blocks of a certain size, but the time series data of the same attribute is connected in a chain form by a plurality of data blocks, and the time series data is stored in a continuous form in chronological order.
  • the time series data block means a continuous space of a predetermined size in the memory, and the time series data is arranged in chronological order in the corresponding space.
  • FIG. 5 illustrates a data block structure stored in the time series data storage unit 400 .
  • the data block consists of a header area and a body area where actual time series data is stored as shown in FIG. 5(a), and the header area is a NEXT data block connected to the corresponding data block in a chain form. It includes information and the corresponding data block start time and the corresponding data block end time, and the body area is such that the time series data collection time and data items in the form of one or more data values arranged in a preset order are sequentially stored in the time series data collection time order. is composed For example, if the query of FIG.
  • the column arrangement order stored in the data item is “t,v1,v2,v3”
  • the time series data item in the body area is “start time (t), first sensed value (CO 2 )” ), the second sensed value (temperature), and the third sensed value (humidity)”.
  • maximum and minimum values of time series data of a corresponding data block may be further added to further improve data analysis performance. This may be appropriately referred to in response to an operator when requesting time series data analysis thereafter.
  • time series data processing unit 100 returns the called time series data as a search result (ST270).
  • the time series data processing unit 100 may obtain time series data for each data block in a parallel processing method according to the type of query. For example, when calculating the sum of time series data between times t1 and t2, time series data may be obtained in a parallel manner for each data block, and then the query result may be calculated by summing the data.
  • the time series data processing unit 100 updates all information related to the data block, including the header of the data block on which the data packing operation is performed, if necessary.

Landscapes

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

Abstract

The present invention relates to a technology in which, instead of storing time-series data in units of records, pieces of time-series data having the same attribute are divided into units of data blocks having a certain size and stored to be connected in a temporal manner, and indexes are generated and managed in units of data blocks, thereby improving the management and analysis performance of time-series data analyzed time-sequentially in an in-memory database.

Description

인메모리 데이터베이스 기반의 시계열 데이터 관리시스템In-memory database-based time series data management system
본 발명은 시계열 데이터를 레코드 단위로 저장하지 않고, 동일 속성의 시계열 데이터들을 일정 크기의 데이터 블록단위로 분할하여 시간적으로 연결되게 저장함과 더불어, 데이터 블록 단위로 색인을 생성하여 관리함으로써, 인메모리 데이터베이스시스템에서 시간순으로 분석하는 시계열 데이터의 관리 및 분석 성능을 개선할 수 있도록 해 주는 기술에 관한 것이다.The present invention does not store time series data in record units, but divides time series data of the same attribute into data blocks of a certain size and stores them in a time-connected manner, and creates and manages indexes in units of data blocks, thereby providing an in-memory database It relates to a technology that can improve the management and analysis performance of time series data analyzed chronologically in a system.
현재 빠르게 변화하는 정보사회에서 신뢰성있는 정보를 구축하여 운영하는 것은 국가, 기업 또는 여러 사용자들의 생존의 필수 조건이 되고 있다. 최근의 대다수의 많은 기업들은 이러한 신뢰성있는 정보를 구축하기 위하여 보다 많은 업무를 관계형 데이터베이스 관리시스템(RDBMS; Relational Database Management System)으로 연결하여 운영하고 있다. 이러한 데이터베이스 시스템을 업무에 운영하는 경우, 고성능, 고효율 및 신뢰성은 당연히 요구되는 기본 조건이 되고 있다. In the current rapidly changing information society, building and operating reliable information is becoming an essential condition for the survival of countries, companies, or users. In order to build such reliable information, most of the recent companies are operating more tasks by connecting them to a Relational Database Management System (RDBMS). When operating such a database system for business, high performance, high efficiency and reliability are naturally required basic conditions.
상기한 관계형 데이터베이스 관리시스템에서 정보는 서비스의 클라우드화, 모바일화, 글로벌화로 인하여 대량으로 발생되고 있고, 빠르게 변화하는 가장 중요한 자원중의 하나가 되었다. 이와 같은 대용량의 데이터의 처리를 위해 최근에는 인-메모리 데이터베이스(In-memory Database) 기술이 제안되어 도입되고 있다. In the relational database management system, information is generated in large quantities due to cloud, mobile, and globalization of services, and has become one of the most important resources that change rapidly. In order to process such a large amount of data, an in-memory database technology has been recently proposed and introduced.
인-메모리 데이터베이스(In-memory Database)는 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 데이터베이스 관리 시스템으로, 디스크에 설치되는 방식에 비해 처리 속도가 빠르다는 장점을 갖는다.An in-memory database is a database management system that is installed and operated in the main memory of data storage, and has an advantage in that the processing speed is faster than that installed on a disk.
특히, 빅데이터의 등장에 따른 데이터량의 증가, 빠른 분석 처리에 대한 요구사항이 증대되면서 인-메모리 데이터베이스에 대한 연구가 더욱 활발히 진행되고 있다.In particular, as the amount of data increases with the advent of big data and the requirements for fast analysis processing increase, research on in-memory databases is being conducted more actively.
한편, 최근에는 IoT 기술 등의 발달로 인하여 대용량의 시계열 데이터가 실시간으로 수집되고 있으며, 이러한 시계열 데이터는 특정 시간과 해당 시간에 수집된 1개 이상의 데이터 값으로 구성된다. On the other hand, recently, due to the development of IoT technology, etc., a large amount of time series data is being collected in real time, and such time series data is composed of a specific time and one or more data values collected at the corresponding time.
현재 인메모리 데이터 베이스는 일반 데이터와 유사한 방법으로 시계열 데이터를 여러 개의 필드로 구성된 다수의 레코드로 저장 관리하고 레코드 단위로 색인을 생성하여 관리하고 있다.Currently, the in-memory database stores and manages time series data as multiple records composed of multiple fields in a similar way to general data, and creates and manages indexes for each record.
그러나, 시계열 데이터를 레코드 단위로 관리하고 레코드 단위의 색인을 생성하는 종래 인메모리 데이터베이스는 시계열 데이터 분석의 특성을 고려할 때 성능의 저하를 초래한다. However, the conventional in-memory database that manages time series data in record units and creates indexes in record units causes performance degradation in consideration of the characteristics of time series data analysis.
즉, 시계열 데이터에 대한 대부분의 분석은 시계열 데이터를 시간순으로 정렬하여 데이터를 분석하는 경향이 있는데, 레코드 단위로 저장하는 경우 시계열 데이터 분석시 전체 데이터를 시간 순으로 정렬하는 과정이 필수적으로 요구되기 때문에, 그 처리 시간이 매우 오래 걸리게 된다. That is, most analyzes of time series data tend to analyze data by sorting time series data in chronological order. , the processing time becomes very long.
또한, 특정 시간의 시계열 데이터를 레코드 단위로 관리하고 레코드 단위의 색인을 생성하여 시계열 데이터가 지속적으로 증가함에 따라 색인의 크기 또한 지속적으로 증가하여 색인 데이터의 관리 문제 뿐만 아니라 색인의 성능이 저하되는 문제가 있다. In addition, as the time series data continuously increases by managing time series data at a specific time in record units and creating record unit indexes, the size of the index also increases continuously, resulting in a problem of index data management as well as a decrease in index performance. there is
이에 본 발명은 상기한 사정을 감안하여 창출된 것으로, 시계열 데이터를 일정 크기의 데이터 블록으로 분할하여 시간순으로 연속적으로 저장하고, 시계열 데이터에 대한 색인은 데이터 블록 단위로 생성하여 시계열 데이터가 급속도로 증가하여도 색인의 크기가 증가하는 문제점을 해결함은 물론, 데이터 블록을 이용하여 시간순으로 분석하는 시계열 데이터를 효율적으로 검색할 수 있도록 해 주는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템을 제공함에 그 기술적 목적이 있다.Accordingly, the present invention was created in consideration of the above circumstances. Time series data is divided into data blocks of a certain size and sequentially stored in chronological order, and an index for time series data is created in units of data blocks, so that time series data rapidly increases Its technical purpose is to provide an in-memory database-based time series data management system that not only solves the problem of increasing the index size, but also efficiently searches time series data analyzed in chronological order using data blocks. There is this.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 일정 크기의 데이터 블록 단위로 시계열 데이터를 저장하되, 동일 속성의 시계열 데이터들은 다수의 데이터 블록이 체인형태로 연결되어 시계열 데이터들을 시간순으로 연속되는 형태로 저장하는 시계열 데이터 저장부와, 시계열 데이터의 속성정보별 현재 저장된 시계열 데이터 전체에 대한 시작 시간과 종료 시간 및 첫번째 데이터 블록정보로 이루어지는 시계열 데이터 정보를 포함하는 레코드 테이블이 저장되는 레코드 저장부, 동일 속성의 시계열 데이터가 저장된 데이터 블록들에 대해 하나의 색인 테이블을 저장하되, 색인 테이블은 각 데이터 블록에 대한 시작시간과 종료시간 및 데이터 블록 위치정보를 포함하는 데이터 블록별 색인 정보들로 이루어지는 시계열 데이터 색인부 및, 시계열 데이터 저장 질의에 대해 해당 시계열 데이터를 저장할 데이터 블록을 검색하여 저장하고, 시계열 데이터가 저장된 데이터 블록에 대응하여 상기 레코드 저장부 및 시계열 데이터 색인부를 갱신하는 시계열 데이터 저장 처리와, 시간 조건을 포함하는 시계열 데이터 검색 질의에 대해 질의 시간 조건을 포함하는 레코드 테이블을 검색하여 첫번째 데이터 블록정보를 획득하고, 첫번째 데이터 블록을 포함하는 색인 테이블에서 질의 시간 조건을 만족하는 데이터 블록 위치정보를 획득하며, 시계열 데이터 저장부에서 데이터 블록 위치에 해당하는 데이터 블록을 검색하고, 검색된 데이터 블록에서 검색 질의에 대응되는 시계열 데이터를 호출하여 반환하는 시계열 데이터 검색 처리를 수행하는 시계열 데이터 처리부를 포함하여 구성되는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템이 제공된다.According to one aspect of the present invention for achieving the above object, time series data is stored in units of data blocks of a certain size, but as for time series data of the same property, a plurality of data blocks are connected in a chain form so that time series data is sequentially sequential. A time series data storage unit for storing data in the form of, and a record storage unit for storing a record table including time series data information including start time and end time for all of the time series data currently stored for each attribute information of the time series data and time series data information consisting of first data block information; One index table is stored for data blocks in which time series data of the same attribute is stored, but the index table is a time series consisting of index information for each data block including start time and end time for each data block and data block location information. Time series data storage processing of searching and storing a data index unit and a data block to store the time series data for a time series data storage query, and updating the record storage unit and the time series data index unit in response to the data block in which the time series data is stored; For a time series data search query including a time condition, the first data block information is obtained by searching the record table including the query time condition, and data block location information that satisfies the query time condition is obtained from the index table including the first data block. Including a time series data processing unit that performs time series data retrieval processing to obtain, retrieve a data block corresponding to a data block location from the time series data storage unit, and call and return time series data corresponding to a search query from the retrieved data block An in-memory database-based time series data management system is provided.
또한, 상기 시계열 데이터 저장부에 저장되는 데이터 블록은 헤더 영역과 실제 시계열 데이터가 저장되는 바디 영역으로 이루어지고, 헤더 영역은 해당 데이터 블록과 체인 형태로 연결되는 넥스트(NEXT) 데이터 블록 정보와 해당 데이터 블록의 시작시간 및 해당 데이터 블록의 종료시간을 포함하며, 바디 영역은 시계열 데이터 수집 시간과 하나 이상의 데이터값이 기 설정된 순서로 배치되는 형태의 데이터 항목들이 시계열 데이터 수집 시간 순서로 순차 저장되는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템이 제공된다.In addition, the data block stored in the time series data storage unit includes a header area and a body area in which actual time series data is stored, and the header area includes NEXT data block information and corresponding data connected to the corresponding data block in a chain form. It includes the start time of the block and the end time of the corresponding data block, and the body area is characterized in that the time series data collection time and data items in the form in which one or more data values are arranged in a preset order are sequentially stored in the time series data collection time order An in-memory database-based time series data management system is provided.
또한, 상기 데이터 블록의 헤더 영역에는 하나 이상의 타임 스템프 항목이 할당되고, 타임 스템프 항목은 바디 영역에 저장된 데이터 항목의 수집 시간으로 설정되되, 타임 스템프 항목에 설정되는 데이터 항목 수집 시간은 바디 영역에 순차 저장된 데이터 항목에서 일정 이격 간격을 갖는 위치의 데이터 항목 수집 시간으로 설정되는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템이 제공된다.In addition, one or more time stamp items are allocated to the header area of the data block, and the time stamp items are set as collection times of data items stored in the body area, and the data item collection times set in the time stamp items are sequentially assigned to the body area. There is provided an in-memory database-based time-series data management system, characterized in that it is set as a data item collection time at a location having a predetermined interval from the stored data items.
또한, 상기 시계열 데이터 처리부는 시계열 데이터 검색 수행시 데이터 블록의 헤더 영역에서 질의 시간 조건에 근접하는 타임 스템프 항목을 확인하고, 바디 영역에서 확인된 타임스템프 위치의 데이터 항목부터 질의 시간 조건을 만족하는 데이터 항목 검색을 시작하여 질의 검색 결과에 대응되는 시계열 데이터를 검색하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템이 제공된다.In addition, the time series data processing unit identifies a timestamp item close to the query time condition in the header area of the data block when performing time series data search, and data that satisfies the query time condition from the data item at the timestamp position checked in the body area There is provided an in-memory database-based time series data management system, characterized in that by starting an item search and searching for time series data corresponding to a query search result.
또한, 시계열 데이터에 대한 데이터값에 대응되는 데이터 종류와 그 배치 순서에 대한 정보를 포함하는 메타 테이블을 저장하는 메타데이터 저장부를 추가로 포함하여 구성되고, 상기 시계열 데이터 처리부는 다수의 데이터값을 갖는 시계열 데이터에 대해 시계열 데이터 수집 시간과 데이터값들로 이루어지는 데이터 항목의 저장 환경을 설정함과 더불어, 시계열 데이터 검색 질의 수행시, 상기 메타데이터 저장부에서 검색 대상 데이터 종류에 대응되는 배치 순서를 획득하고, 질의 시간 조건을 만족하는 데이터 항목에서 상기 배치 순서의 데이터값을 검색 요청된 시계열 데이터로 호출하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템이 제공된다.In addition, the time series data is configured to further include a metadata storage unit for storing a meta table including information on the type of data corresponding to the data value and the arrangement order thereof, the time series data processing unit having a plurality of data values In addition to setting the storage environment of a data item consisting of a time series data collection time and data values for time series data, when a time series data search query is performed, an arrangement order corresponding to the type of data to be searched is obtained from the metadata storage unit, , The in-memory database-based time series data management system is provided, characterized in that the data value of the arrangement order is called as the time series data requested to be searched in the data item satisfying the query time condition.
또한, 상기 시계열 데이터 처리부는 다수의 데이터값을 갖는 시계열 데이터에 대해 UDT(User Defined Type) 방식으로 시계열 데이터의 데이터 저장 환경을 설정하도록 지원하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템이 제공된다.In addition, the time series data processing unit is an in-memory database-based time series data management system, characterized in that it supports to set a data storage environment of time series data in a UDT (User Defined Type) method for time series data having a plurality of data values. is provided
또한, 상기 시계열 데이터 처리부는 시계열 데이터 삭제 질의에 대해, 시계열 데이터 검색을 수행하여 삭제 대상 시계열 데이터가 저장된 데이터 항목을 검색한 후, 검색된 데이터 항목에서 수집 시간을 "NULL" 설정하는 방식으로 삭제 질의를 수행하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템이 제공된다.In addition, the time series data processing unit performs a time series data search for a time series data deletion query to search for a data item in which the time series data to be deleted is stored, and then sets the collection time to “NULL” in the searched data item. There is provided an in-memory database-based time series data management system, characterized in that it performs.
또한, 상기 시계열 데이터 처리부는 일정 주기 단위로 "NULL" 설정된 데이터 항목에 대한 데이터 패킹 작업을 일괄적으로 수행하되, 해당 데이터 블록에서 "NULL" 설정된 데이터 항목을 클리어 한 후, 후위의 데이터 항목을 복사하여 이전 데이터 항목 위치로 이동시키는 방식으로 데이터 패킹 작업을 수행하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템이 제공된다.In addition, the time series data processing unit performs a data packing operation for data items set to "NULL" in a predetermined period unit, but after clearing the data items set to "NULL" in the corresponding data block, copies the data items after There is provided an in-memory database-based time series data management system, characterized in that the data packing operation is performed in such a way that the data is moved to the previous data item location.
본 발명에 의하면, 시계열 데이터가 시간순으로 정렬되어 일정 크기의 데이터 블록단위로 분할 저장하고,데이터 블록 단위로 색인을 생성하여 관리함으로써, 시계열 데이터에 대한 분석 및 관리 성능을 개선할 수 있다.According to the present invention, analysis and management performance of time series data can be improved by dividing and storing time series data in chronological order and storing them in units of data blocks of a certain size, and creating and managing indexes in units of data blocks.
또한, 데이터 블록의 헤더 영역에는 해당 데이터 블록의 바디 영역에 저장된 일정 위치에 대한 시계열 데이터 시간정보를 포함함으로써, 보다 향상된 시계열 데이터 검색 성능을 보장할 수 있다. In addition, since the header area of the data block includes time series data time information for a predetermined position stored in the body area of the data block, improved time series data retrieval performance can be guaranteed.
도1은 본 발명의 제1 실시예에 따른 인메모리 데이터베이스 기반의 시계열 데이터 관리 시스템의 개략적인 구성을 도시한 도면. 1 is a diagram showing a schematic configuration of an in-memory database-based time series data management system according to a first embodiment of the present invention .
도2는 도1에 도시된 시계열 데이터 처리부(100)에서 지원하는 UDT 기능에 대한 질의문을 예시한 도면. 2 is a diagram illustrating a query for a UDT function supported by the time series data processing unit 100 shown in FIG. 1 .
도3은 도1에 도시된 메타데이터 저장부(200)의 메타 테이블 구조를 예시한 도면.3 is a diagram illustrating a meta table structure of the metadata storage unit 200 shown in FIG. 1 .
도4는 도1에 도시된 레코드 저장부(300)의 레코드 테이블 구조를 예시한 도면.4 is a diagram illustrating a record table structure of the record storage unit 300 shown in FIG. 1;
도5는 도1에 도시된 시계열 데이터 저장부(400)에 저장되는 데이터 블록 구조를 예시한 도면. FIG. 5 is a diagram illustrating a data block structure stored in the time series data storage unit 400 shown in FIG. 1;
도6은 도1에 도시된 시계열 데이터 색인부(500)의 색인테이블 구조를 예시한 도면.FIG. 6 is a diagram illustrating an index table structure of the time series data indexing unit 500 shown in FIG. 1. FIG.
도7은 도1에 도시된 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템에서의 시계열 데이터 저장 동작을 설명하기 위한 흐름도.7 is a flowchart for explaining a time series data storage operation in the time series data management system based on the in-memory database shown in FIG. 1;
도8은 도1에 도시된 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템에서의 시계열 데이터 검색 동작을 설명하기 위한 흐름도.FIG. 8 is a flowchart for explaining a time series data search operation in the time series data management system based on the in-memory database shown in FIG. 1. FIG.
본 발명에 기재된 실시예 및 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 표현하는 것은 아니므로, 본 발명의 권리범위는 본문에 설명된 실시예 및 도면에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The configuration shown in the embodiments and drawings described in the present invention is only a preferred embodiment of the present invention, and does not express all the technical spirit of the present invention, so the scope of the present invention is the embodiment and drawings described in the text should not be construed as being limited by That is, since the embodiment may have various changes and may have various forms, it should be understood that the scope of the present invention includes equivalents capable of realizing the technical idea. In addition, since the object or effect presented in the present invention does not mean that a specific embodiment should include all of them or only such effects, it should not be understood that the scope of the present invention is limited thereby.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Terms defined in a commonly used dictionary should be interpreted as being consistent with the meaning of the context of the related art, and cannot be interpreted as having an ideal or excessively formal meaning not explicitly defined in the present invention.
도1은 본 발명의 제1 실시예에 따른 인메모리 데이터베이스 기반의 시계열 데이터 관리 시스템의 개략적인 구성을 도시한 도면이다. 1 is a diagram illustrating a schematic configuration of an in-memory database-based time series data management system according to a first embodiment of the present invention.
도1을 참조하면, 본 발명에 따른 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템은 시계열 데이터 처리부(100)와, 메타데이터 저장부(200), 레코드 저장부(300), 시계열 데이터 저장부(400) 및, 시계열 데이터 색인부(500)를 포함한다.Referring to FIG. 1 , an in-memory database-based time series data management system according to the present invention includes a time series data processing unit 100 , a metadata storage unit 200 , a record storage unit 300 , and a time series data storage unit 400 . and a time series data indexing unit 500 .
시계열 데이터 처리부(100)는 사용자로부터 요구되는 시계열 데이터에 대한 질의를 처리한다. 시계열 데이터 처리부(100)는 시계열 데이터에 대한 저장, 삭제, 수정 및, 분석을 위한 검색과 합계나 차이 등의 연산 등의 시계열 데이터 관련 질의를 처리한다.The time series data processing unit 100 processes a query for time series data requested by the user. The time-series data processing unit 100 processes time-series data-related queries such as storage, deletion, and correction of time-series data, a search for analysis, and calculation of sum or difference.
또한, 시계열 데이터 처리부(100)는 사용자의 요구에 대응하여 시계열 데이터에 대한 저장 구조를 임의로 정의하는 UDT(User Defined Type) 기능을 제공한다. 이러한 기능은 특히 하나의 시계열 데이터에 동시에 획득되는 데이터값(컬럼)의 종류가 다수개인 경우에 효과적으로 사용될 수 있다. In addition, the time series data processing unit 100 provides a UDT (User Defined Type) function for arbitrarily defining a storage structure for time series data in response to a user's request. This function can be effectively used especially when there are multiple types of data values (columns) simultaneously acquired for one time series data.
도2에는 사용자에 의해 정의되는 UDT(User Defined Type) 기능을 이용하여 시계열 데이터를 저장하기 위한 필드명과 시계열 데이터의 데이터 저장 환경을 설정하는 질의문(a)과, 이에 대응되는 시계열 데이터에 대한 레코드 테이블을 생성하는 질의문(b)이 예시되어 있다. 도2 (a)에 의하면, 시계열 데이터 필드타입을 "dustsensor"로 설정하고, "t, v1, v2, v3" 의 각 컬럼 이름에 대해 "time, int, double, double"의 각 컬럼 타입을 갖는 시계열 데이터 저장 환경을 설정할 수 있다. 그리고, 이에 대해 도2 (b)와 같이 "DustSensingValue"의 필드명을 갖는 테이블을 생성할 수 있다. 즉, 도4에서 레코드 테이블에서 시계열 데이터정보가 저장되는 필드의 필드명이 "DustSensingValue"로 설정된다. 2 shows a field name for storing time series data using a User Defined Type (UDT) function defined by a user, a query statement (a) for setting a data storage environment of time series data, and a record for time series data corresponding thereto The query statement (b) for creating a table is exemplified. According to Fig. 2 (a), the time series data field type is set to "dustsensor", and for each column name of "t, v1, v2, v3", each column type of "time, int, double, double" has You can set the time series data storage environment. Then, as shown in FIG. 2(b), a table having a field name of “DustSensingValue” can be created. That is, the field name of a field in which time series data information is stored in the record table in FIG. 4 is set to "DustSensingValue".
메타데이터 저장부(200)는 시계열 데이터를 효과적으로 저장하고 관리하기 위한 장치로서, 사용자 정의형 시계열 데이터 필드명을 기준으로 시계열 데이터에 대한 메타데이터를 관리한다. The metadata storage unit 200 is a device for effectively storing and managing time series data, and manages metadata for time series data based on a user-defined time series data field name.
도3에는 메타데이터 저장부(200)의 메타 테이블 구조가 예시되어 있다. 도3을 참조하면, 메타데이터 저장부(200)는 사용자 정의형 시계열 데이터 필드명(UDT 이름)별 시계열 데이터 저장부(400)에 저장되는 데이터 항목 단위의 시계열 데이터 컬럼 개수 및 시간 단위별 시계열 데이터 항목 크기(byte)가 저장되는 상위 테이블(a)과, 사용자 정의형 시계열 데이터 필드명(UDT 이름)의 각 시계열 데이터 칼럼 순번별 칼럼 이름과 칼럼 타입이 저장되는 하위 테이블(b)을 구비한다. 하위 테이블(b)은 상위 테이블(a)에서 시계열 데이터의 컬럼 개수 만큼 생성된다. 예컨대, 도2를 적용하면 상위 테이블(a)에서 "DustSensingValue"에 대해 시계열 데이터 컬럼(t, v1, v2, v3) 개수는 "4"로 설정되고, 하위 테이블(b)은 4개 생성된다. 예컨대, 하위 테이블에서 시계열 데이터 컬럼 순번이 "3" 인 경우, 컬럼(t, v1, v2, v3) 중 3번째 컬럼인 "v2"에 해당하는 "온도"가 컬럼 이름으로 설정되며, 3번째 컬럼에 해당하는 3번째 컬럼 타입인 "double"가 컬럼 타입으로 설정된다.3 illustrates a meta table structure of the metadata storage unit 200 . Referring to FIG. 3 , the metadata storage unit 200 stores the number of time series data columns in units of data items and time series data by time units stored in the time series data storage unit 400 by user-defined time series data field names (UDT names). An upper table (a) in which the item size (byte) is stored and a lower table (b) in which a column name and column type for each time series data column sequence of the user-defined time series data field name (UDT name) are stored. The lower table (b) is created as many as the number of columns of time series data in the upper table (a). For example, when FIG. 2 is applied, the number of time series data columns (t, v1, v2, v3) is set to "4" for "DustSensingValue" in the upper table (a), and four lower tables (b) are created. For example, if the time series data column sequence number is "3" in the lower table, "Temperature" corresponding to "v2", which is the third column among columns (t, v1, v2, v3), is set as the column name, and the third column The third column type corresponding to "double" is set as the column type.
레코드 저장부(300)는 시계열 데이터에 할당된 레코드 ID(이하 oid)별 객체 ID, 위치, 날짜 등의 일반 속성에 대한 일반 칼럼정보와 해당 객체에 대한 시계열 데이터 정보를 저장한다. 이때, oid 는 시계열 데이터를 수집하는 수집장치에 대한 id일 수 있고, 일반 칼럼들은 일반적인 관계형 테이블 형태로 저장된다. The record storage unit 300 stores general column information on general properties such as object ID, location, and date for each record ID (hereinafter oid) allocated to time series data and time series data information on the corresponding object. In this case, oid may be an id for a collection device that collects time series data, and general columns are stored in the form of a general relational table.
도4에는 레코드 저장부(300)의 레코드 테이블 구조가 예시되어 있다. 도4를 참조하면, 레코드 테이블은 (a)와 같이 oid별 일반 칼럼 영역과 시계열 데이터 영역을 포함한다. 그리고, 시계열 데이터 영역은 (b)와 같이 시계열 데이터 전체에 대한 전체 시작시간과, 전체 종료시간, 타임스템프 개수 및, 첫번째 데이터 블록정보를 포함한다. 여기서, 첫번째 데이터 블록정보는 시계열 데이터 저장부(400)에 저장되는 해당 데이터 블록의 저장 위치가 될 수 있다. 그리고, 타임스템프 개수는 시계열 데이터가 저장되는 시계열 데이터 저장부(400)의 데이터 블록 구조에서 헤더 영역에 포함되는 해당 데이터 블록내의 시간 정보의 개수이다. 4 illustrates the record table structure of the record storage unit 300 . Referring to FIG. 4, the record table includes a general column area for each oid and a time series data area as shown in (a). And, as shown in (b), the time series data area includes the total start time, the total end time, the number of timestamps, and first data block information for the entire time series data. Here, the first data block information may be a storage location of a corresponding data block stored in the time series data storage unit 400 . In addition, the number of timestamps is the number of time information in the corresponding data block included in the header area in the data block structure of the time series data storage unit 400 in which the time series data is stored.
즉, 레코드 저장부(300)는 동일한 속성을 갖는 시계열 데이터에 대해 하나의 oid를 할당하고, oid에 대해서는 실제 시계열 데이터가 저장된 시계열 데이터 저장부(400)의 첫번째 데이터 블록정보만을 저장한다. 따라서, 시계열 데이터가 지속적으로 증가하는 상황에서도 레코드 테이블에는 첫번째 데이터블록에 대한 포인터정보만이 기록되므로 레코드 관리가 용이하다.That is, the record storage unit 300 allocates one oid to time series data having the same property, and stores only the first data block information of the time series data storage unit 400 in which the actual time series data is stored for the oid. Therefore, even when time series data continuously increases, only pointer information for the first data block is recorded in the record table, so record management is easy.
시계열 데이터 저장부(400)는 일정 크기의 데이터 블록 단위로 실제 시계열 데이터를 저장하되, 동일 속성의 시계열 데이터들은 다수의 데이터 블록이 체인형태로 연결되어 시계열 데이터들을 시간순으로 연속되는 형태로 저장한다. 여기서, 시계열 데이터 블록은 메모리에서 일정 크기의 연속된 공간을 의미하며, 시계열 데이터는 해당 공간에 시간순으로 정렬된다. 이때, 하나의 데이터 블록에 시계열 데이터가 모두 저장되면, 동일한 크기의 데이터 블록을 재할당함과 더불어, 재할당된 데이터 블록에 대한 정보를 이전 데이터 블록 테이블에 등록함으로써, 데이터 블록이 순차로 연결된 형태로 저장된다.The time series data storage unit 400 stores the actual time series data in units of data blocks of a certain size, but the time series data of the same attribute is connected in a chain form by a plurality of data blocks, and the time series data is stored in a continuous form in chronological order. Here, the time series data block means a continuous space of a predetermined size in the memory, and the time series data is arranged in chronological order in the corresponding space. At this time, when all time series data is stored in one data block, the data blocks of the same size are reallocated and information about the reallocated data blocks is registered in the previous data block table so that the data blocks are sequentially connected. is saved
도5에는 시계열 데이터 저장부(400)에 저장되는 데이터 블록 구조가 예시되어 있다. 5 illustrates a data block structure stored in the time series data storage unit 400 .
데이터 블록은 도5의 (a)와 같이 헤더(headaer) 영역과 실제 시계열 데이터가 저장되는 바디(body) 영역으로 이루어지고, 헤더 영역은 해당 데이터 블록과 체인 형태로 연결되는 넥스트(NEXT) 데이터 블록 정보와 해당 데이터 블록 시작시간 및 해당 데이터 블록 종료시간을 포함하며, 바디 영역은 시계열 데이터 수집 시간과 하나 이상의 데이터값이 기 설정된 순서로 배치되는 형태의 데이터 항목들이 시계열 데이터 수집 시간 순서로 순차 저장되도록 구성된다. 예컨대 도2의 질의문을적용하면 데이터 항목에 저장되는 컬럼 배치 순서는 "t,v1,v2,v3" 로서, 바디 영역에서 시계열 데이터 항목은 "시작 시간(t), 제1 센싱값(CO2), 제2 센싱값(온도), 제3 센싱값(습도)"의 순서로 저장될 수 있다. The data block consists of a header area and a body area where actual time series data is stored as shown in FIG. 5(a), and the header area is a NEXT data block connected to the corresponding data block in a chain form. It includes information and the corresponding data block start time and the corresponding data block end time, and the body area is such that the time series data collection time and data items in the form of one or more data values arranged in a preset order are sequentially stored in the time series data collection time order. is composed For example, if the query of FIG. 2 is applied, the column arrangement order stored in the data item is “t,v1,v2,v3”, and the time series data item in the body area is “start time (t), first sensed value (CO 2 )” ), the second sensed value (temperature), and the third sensed value (humidity)”.
여기서, 데이터 블록 시작 시간은 바디 영역에 저장되는 첫번째 데이터 항목의 시작시간이고, 데이터 블록 종료 시간은 바디 영역에 저장되는 마지막 데이터 항목의 시작시간이 될 수 있다. 즉, 바디 영역에 저장되는 시계열 데이터는 기본적으로 시간에 대하여 오름차순으로 저장된다.Here, the data block start time may be the start time of the first data item stored in the body area, and the data block end time may be the start time of the last data item stored in the body area. That is, time series data stored in the body region are basically stored in ascending order with respect to time.
또한, 데이터 블록의 헤더 영역에는 하나 이상의 타임 스템프 항목이 할당될 수 있다. 타임 스템프 항목은 바디 영역에 저장된 일정 개수의 데이터 항목의 수집 시간으로 설정되는데, 타임 스템프 항목에 설정되는 데이터 항목 수집 시간은 바디 영역에 순차 저장된 데이터 항목에서 일정 이격 간격을 갖는 위치의 데이터 항목 수집 시간으로 설정될 수 있다. 예컨대, 타임 스템프 항목에 설정되는 데이터 항목 수집 시간은 바디 영역에 저장된 데이터 항목의 총 개수를 타임 스템프 항목 수로 나눈 몫에 해당하는 순번의 배수 위치에 저장된 데이터 항목 수집 시간으로 설정될 수 있다. Also, one or more timestamp items may be allocated to the header area of the data block. The time stamp item is set as the collection time of a certain number of data items stored in the body area. The data item collection time set in the time stamp item is the data item collection time at a location with a certain interval from the data items sequentially stored in the body area. can be set to For example, the data item collection time set for the time stamp item may be set as the data item collection time stored at a multiple of the sequence number corresponding to a quotient obtained by dividing the total number of data items stored in the body region by the number of time stamp items.
도5 (b)에는 첫번째 단위 블록의 시작시간(t1)과, 네번째 단위 블록의 시작시간(t4) 및 일곱번째 단위 블록의 시작시간(t7)로 이루어지는 3개의 타임스템프가 예시되어 있다. 이때, 타임스템프 개수는 데이터 블록에 저장되는 데이터 항목의 개수에 대응하여 설정될 수 있다. 예컨대, 시계열 데이터의 검색 속도를 보다 향상시키기 위해 데이터 블록의 크기가 클수록 즉, 데이터 항목의 개수가 많을수록 타임스템프 개수도 증가될 수 있다. In FIG. 5(b), three timestamps including a start time t1 of the first unit block, a start time t4 of the fourth unit block, and a start time t7 of the seventh unit block are exemplified. In this case, the number of timestamps may be set to correspond to the number of data items stored in the data block. For example, the number of timestamps may be increased as the size of the data block increases, that is, as the number of data items increases, in order to further improve the time-series data search speed.
즉, 시계열 데이터 처리부(100)는 시계열 데이터 검색시 헤더 영역에서 타임스템프 정보를 통해 해당 데이터 블록에서 검색하고자 하는 시간에 대응되는 시계열 데이터의 위치를 개략적으로 예측함으로써, 보다 신속한 시계열 데이터의 검색이 가능하다. That is, the time series data processing unit 100 roughly predicts the location of the time series data corresponding to the time to be searched in the data block through the timestamp information in the header area when searching the time series data, so that the time series data can be searched more quickly. Do.
시계열 데이터 색인부(500)는 시계열 데이터 저장부(400)에 저장된 시계열 데이터를 효과적으로 검색하기 위한 방법을 제공하기 위한 것으로, 동일 속성을 갖는 시계열 데이터들이 저장되는 데이터 블록들 즉, oid 별로 색인 테이블을 구성할 수 있다. 예컨대, 하나의 시계열 수집장치 단위로 구성하거나, 특정 테이블 레코드에 포함되는 전체 시계열 데이터 수집장치에 대해 하나의 시계열 데이터 테이블을 생성할 수 있다.The time series data indexing unit 500 is to provide a method for effectively searching the time series data stored in the time series data storage unit 400, that is, index tables for each data block in which time series data having the same property is stored, that is, oid. configurable. For example, one time series data collection device may be configured as a unit, or one time series data table may be created for all time series data collection devices included in a specific table record.
도6에는 시계열 데이터 색인부(500)의 색인테이블 구조가 예시되어 있다6 illustrates an index table structure of the time series data indexing unit 500 .
도6을 참조하면, 시계열 데이터 색인부(500)에 저장되는 색인테이블 구조는 각 데이터 블록에 대한 시작시간과 종료시간 및 해당 데이터 블록 정보를 포함하는 데이터 블록별 색인정보들이 반복되는 구조로 이루어진다. 이때, 데이터 블록 정보는 시계열 데이터 저장부(400)에 저장된 해당 데이터 블록 위치가 될 수 있다. Referring to FIG. 6 , the index table structure stored in the time series data indexing unit 500 has a structure in which index information for each data block including start time and end time for each data block and the corresponding data block information is repeated. In this case, the data block information may be a corresponding data block location stored in the time series data storage unit 400 .
그리고, 색인 테이블은 데이터 분석 성능을 보다 향상시키기 위해 해당 데이터 블록의 시계열 데이터의 최대값과 최소값 항목이 더 추가될 수 있다. 이는 이후 시계열 데이터 분석 요청시 연산자에 대응하여 적절하게 참고될 수 있다. In addition, in the index table, maximum and minimum values of time series data of a corresponding data block may be further added to further improve data analysis performance. This may be appropriately referred to in response to an operator when requesting time series data analysis thereafter.
이어, 본 발명에 따른 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템의 동작을 도7 및 도8에 도시된 흐름도를 참조하여 설명한다.Next, an operation of the in-memory database-based time series data management system according to the present invention will be described with reference to the flowcharts shown in FIGS. 7 and 8 .
본 발명에 따른 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템은 기본적으로 시계열 데이터 저장과정과, 시계열 데이터 검색과정을 수행한다.The in-memory database-based time series data management system according to the present invention basically performs a time series data storage process and a time series data search process.
도7은 본 발명에 따른 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템에서의 시계열 데이터 저장 과정을 설명하기 위한 흐름도이다.7 is a flowchart illustrating a time series data storage process in an in-memory database-based time series data management system according to the present invention.
도7을 참조하면, 시계열 데이터 처리부(100)는 UDT 방식으로 시계열 데이터를 저장하기 위한 필드명과 시계열 데이터값과 그 배치 순서, 각 데이터값별 데이터 타입의 저장 환경을 설정한다(ST100). 도2의 질의문을 적용하면, 시계열 데이터 처리부(100)는 레코드 저장부(300)의 시계열 데이터가 저장되는 필드명을 "DustSensingValue"로 설정하고, 메타데이터 저장부(200)에 "DustSensingValue"를 UDT 이름으로 하는 메타 테이블을 생성한다. 그리고, 메타 테이블 중 하위 테이블에는 컬럼 항목 (t, v1, v2, v3) 별 컬럼 타입(time, int, double, double)을 설정한다. 예컨대, 컬럼 항목에서 "t"는 해당 시계열 데이터가 수집된 시작 시간이고, "v1, v2, v3"은 시계열 데이터로서 예컨대, "CO2, 온도, 습도"가 매칭될 수 있다. Referring to FIG. 7 , the time series data processing unit 100 sets a field name for storing time series data in the UDT method, a time series data value and an arrangement order thereof, and a storage environment of a data type for each data value (ST100). When the query of FIG. 2 is applied, the time series data processing unit 100 sets the field name in which the time series data of the record storage unit 300 is stored to “DustSensingValue” and “DustSensingValue” in the metadata storage unit 200 . Creates a meta table named UDT. And, set the column type (time, int, double, double) for each column item (t, v1, v2, v3) in the lower table among meta tables. For example, "t" in the column item is the start time at which the corresponding time series data is collected, and "v1, v2, v3" is the time series data, for example, "CO 2 , temperature, humidity" may be matched.
이하에서는 컬럼(t, v1, v2, v3)이 "시작 시간, CO2, 온도, 습도"로 매칭된 상태를 예시하여 설명한다.Hereinafter, a state in which the columns (t, v1, v2, v3) are matched with "start time, CO 2 , temperature, humidity" will be described as an example.
상기한 상태에서, 시계열 데이터 저장 질의가 수신되면(ST120), 시계열 데이터 처리부(100)는 속성 정보에 기반하여 레코드 저장부(300)에서 해당 시계열 데이터에 대한 레코드 테이블이 존재하는지를 탐색한다. 이때, 레코드 테이블이 존재하지 않으면, 해당 시계열 데이터에 대한 속성정보에 대한 oid를 할당하여 레코드 테이블을 생성한다(ST130). In the above state, when a time series data storage query is received (ST120), the time series data processing unit 100 searches whether a record table for the corresponding time series data exists in the record storage unit 300 based on the attribute information. At this time, if the record table does not exist, the record table is created by allocating an oid for attribute information of the corresponding time series data (ST130).
이어, 시계열 데이터 처리부(100)는 시계열 데이터 저장 질의에 포함된 시간정보를 근거로 시계열 데이터 색인부(500)를 이용하여 해당 시계열 데이터를 저장할 데이터 블록을 검색하고, 시계열 데이터 저장부(400)에서 검색된 데이터 블록 위치에 해당 시계열 데이터를 기 설정된 컬럼 순서(t, v1, v2, v3)로 저장한다(ST140). Next, the time series data processing unit 100 searches for a data block to store the time series data using the time series data index unit 500 based on the time information included in the time series data storage query, and in the time series data storage unit 400 The corresponding time series data is stored in the searched data block position in a preset column order (t, v1, v2, v3) (ST140).
상기 ST140 단계에서 새롭게 등록되는 시계열 데이터에 대해서는 시계열 데이터 처리부(100)에서 시계열 데이터 색인부(500)를 이용하여 새로운 데이터 블록을 할당하고, 새롭게 할당된 데이터 블록에 해당 시계열 데이터를 저장한다. For the time series data newly registered in step ST140, the time series data processing unit 100 allocates a new data block using the time series data index unit 500, and stores the corresponding time series data in the newly allocated data block.
또한, 상기 ST140 단계에서 이미 데이터 블록이 할당된 시계열 데이터에 대해서는 시간정보를 근거로 시계열 데이터 색인부(500)를 이용하여 해당 시계열 데이터를 저장할 데이터 블록정보를 탐색한다. 예컨대, 도6에서 해당 시계열 데이터에 대응되는 마지막 데이터 블록에 남은 저장영역이 존재하는지를 판단하고, 존재하는 경우, 시계열 데이터 저장부(400)의 해당 데이터 블록의 바디 영역에 해당 시계열 데이터를 저장한다. 그리고, 마지막 데이터 블록에 남은 저장영역이 존재하지 않으면, 새롭게 데이터 블록을 할당한 후, 새롭게 할당된 데이터 블록에 해당 시계열 데이터를 저장한다. 이때, 이전 데이터 블록의 헤더 영역에서 넥스트 데이터 블록정보를 해당 데이터 블록정보로 설정한다. In addition, with respect to time series data to which data blocks have already been allocated in step ST140, data block information in which the corresponding time series data is to be stored is searched using the time series data indexing unit 500 based on time information. For example, in FIG. 6 , it is determined whether there is a storage area remaining in the last data block corresponding to the time series data, and if there is, the time series data is stored in the body area of the data block of the time series data storage unit 400 . And, if there is no storage area remaining in the last data block, after allocating a new data block, the corresponding time series data is stored in the newly allocated data block. At this time, the next data block information is set as the corresponding data block information in the header area of the previous data block.
즉, 시계열 데이터 처리부(100)는 시계열 데이터를 할당된 데이터 블록에 저장하되, 시간에 대해 오름차순으로 정렬되도록 시계열 데이터를 저장한다. That is, the time series data processing unit 100 stores the time series data in the allocated data block, but stores the time series data to be sorted in ascending order with respect to time.
이후, 시계열 데이터 처리부(100)는 시계열 데이터 저장부(400)에 저장된 시계열 데이터 저장 정보를 근거로 해당 데이터 블록과 관련된 관리 정보를 갱신한다(ST150). 즉, 시계열 데이터 처리부(100)는 메타데이터 저장부(200)와 레코드 저장부(300) 및, 시계열 데이터 색인부(500)를 갱신한다. Thereafter, the time series data processing unit 100 updates management information related to the corresponding data block based on the time series data storage information stored in the time series data storage unit 400 (ST150). That is, the time series data processing unit 100 updates the metadata storage unit 200 , the record storage unit 300 , and the time series data index unit 500 .
시계열 데이터 처리부(100)는 메타데이터 저장부(200)에서 해당 UDT명("DustSensingValue")에 대응되는 상위 테이블에서 시계열 데이터 항목 개수와 데이터 항목 크기를 갱신한다. The time series data processing unit 100 updates the number of time series data items and the data item size in the upper table corresponding to the corresponding UDT name (“DustSensingValue”) in the metadata storage unit 200 .
또한, 레코드 저장부(300)에서 해당 레코드 ID에 대한 DustSensingValue 명에 대해 현재 저장된 시계열 데이터 정보를 반영하여 객체 시작시간, 객체 종료시간, 타임스템프 개수, 첫번째 데이터 블록정보 중 적어도 하나 이상을 업데이트 한다. 예컨대, 신규 저장되는 시계열 데이터에 대해서는 객체 시작시간과 객체 종료시간, 타임스템프 개수 및, 첫번째 데이터 블록정보를 새롭게 등록한다. 그리고, 추가 저장되는 시계열 데이터에 대해서는 객체 종료시간을 갱신하고, 해당 데이터 블록에 저장되는 시계열 데이터 개수가 기준 개수 이상으로 저장된 경우 타임스템프 개수를 증가시킬 수 있다. 이때, 타임스템프 개수가 증가되면, 시계열 데이터 처리부(100)는 타임스템프 개수에 대응하여 해당 데이터 블록의 헤더 영역에 설정되는 타임스템프 위치를 재설정한다. 예컨대, 하나의 데이터 블록에 저장되는 데이터 개수가 10개이면서 타임스템프 개수(도4의 (b) 참조)가 "3"인 경우 시계열 데이터 테이블(도5 (b) 참조)에서 타임스템프 위치가 "t1,t4,t7"로 설정된 상태에서, 데이터 개수가 11개로 증가하면, 타임스템프 개수(도4의 (b)참조)를 "4"로 변경설정함과 더불어, 시계열 데이터 테이블(도5 (b) 참조)의 타임스템프 위치를 "t1, t3, t6, t8"로 변경설정할 수 있다.In addition, at least one of the object start time, the object end time, the number of timestamps, and the first data block information is updated by reflecting the time series data information currently stored for the DustSensingValue name for the record ID in the record storage unit 300 . For example, the object start time and object end time, the number of timestamps, and first data block information are newly registered for the time series data to be newly stored. In addition, the object end time may be updated for additionally stored time series data, and if the number of time series data stored in the corresponding data block is greater than the reference number, the number of timestamps may be increased. In this case, when the number of timestamps is increased, the time series data processing unit 100 resets the timestamp position set in the header area of the corresponding data block according to the number of timestamps. For example, if the number of data stored in one data block is 10 and the number of timestamps (refer to FIG. 4(b)) is “3”, the timestamp position is “ When the number of data increases to 11 in the state set to t1, t4, t7", the number of timestamps (refer to (b) of FIG. 4) is changed to "4" and the time series data table (Fig. 5 (b) )), you can set the timestamp position to "t1, t3, t6, t8".
또한, 시계열 데이터 색인부(500)에서 해당 레코드 ID에 대한 시작 시간, 종료 시간, 하위 노드 정보 중 적어도 하나 이상을 갱신한다. 예컨대, 신규 저장되는 시계열 데이터에 대해서는 시작 시간, 종료 시간, 하위 노드를 새롭게 등록한다. 그리고, 추가 저장되는 시계열 데이터에 대해서는 해당 하위 노드에 대한 시작시간 또는 종료시간을 갱신함과 더불어, 해당 하위 노드정보에서 시작 시간, 종료시간, 최대값, 최소값, 데이터 블록정보 중 적어도 하나를 갱신한다.In addition, the time series data indexing unit 500 updates at least one of start time, end time, and lower node information for the corresponding record ID. For example, a start time, an end time, and a lower node are newly registered for the time series data to be newly stored. And, for the additionally stored time series data, the start time or the end time for the corresponding sub-node is updated, and at least one of the start time, the end time, the maximum value, the minimum value, and the data block information is updated in the corresponding sub-node information. .
이후, 시계열 데이터 처리부(100)는 시계열 데이터 저장 완료 질의를 반환한다(ST160).Thereafter, the time series data processing unit 100 returns a time series data storage completion query (ST160).
도8은 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템에서의 시계열 데이터 검색 과정을 설명하기 위한 흐름도이다.8 is a flowchart illustrating a time series data search process in an in-memory database-based time series data management system.
도8을 참조하면, 도7과 같은 과정을 통해 시계열 데이터가 저장된 상태에서, 시계열 데이터 처리부(100)는 시간 조건을 포함하는 시계열 데이터 검색 질의가 수신되면(ST210), 검색 질의를 분석하여 메타데이터 저장부(200)에서 검색 대상 데이터 종류(컬럼)에 해당하는 컬럼 이름의 저장 순번을 추출한다(ST220). 즉, 시계열 데이터 처리부(100)는 검색 질의에 포함된 UDT 명을 근거로 메타 테이블을 추출하고, 추출된 메타 테이블에서 컬럼 이름이 몇번째 배치 순번인지를 확인한다. 예컨대, UDT 명이 "DustSensingValue" 인 테이블에서 질의 요청된 시계열 데이터 종류인 "온도"가 두번째 저장 순번(v2)임을 확인할 수 있다.Referring to FIG. 8 , in a state in which time series data is stored through the process as shown in FIG. 7 , when a time series data search query including a time condition is received ( ST210 ), the time series data processing unit 100 analyzes the search query to obtain metadata The storage unit 200 extracts the storage sequence number of the column name corresponding to the data type (column) to be searched (ST220). That is, the time series data processing unit 100 extracts the meta table based on the UDT name included in the search query, and checks the batch sequence number of the column name in the extracted meta table. For example, it can be confirmed that "Temperature", which is the type of time series data requested to be queried, is the second storage sequence (v2) in the table whose UDT name is "DustSensingValue".
이어, 시계열 데이터 처리부(100)는 레코드 저장부(300)에서 전체 시작시간과 전체 종료시간에 질의의 시간 조건이 포함되는 데이터 블록 색인 정보를 검색하고, 검색된 데이터 블록 색인 정보에서 첫번째 데이터 블록정보를 획득한다(ST230). Next, the time series data processing unit 100 searches the data block index information including the query time condition in the total start time and the total end time from the record storage unit 300, and retrieves the first data block information from the searched data block index information. Acquire (ST230).
그리고, 시계열 데이터 처리부(100)는 상기 ST230 단계에서 획득된 첫번째 데이터 블록정보를 근거로 시계열 데이터 색인부(500)에서 해당 첫번째 데이터 블록을 포함하는 색인 테이블을 검색하되, 최상위노드 테이블부터 그 하위노드 테이블로 순차적으로 이동하면서 질의 시간 조건을 만족하는 데이터 블록을 탐색한다(ST240). 즉, 도6에 도시된 각 테이블에서 시작시간과 종료시간 사이에 질의 시간 조건이 위치하는 하위 노드정보를 추출하고, 그 하위 노드정보에서 또 다시 시작시간과 종료시간 사이에 질의 시간 조건이 위치하는 데이터 블록 위치정보를 획득한다. Then, the time series data processing unit 100 searches the index table including the first data block in the time series data index unit 500 based on the first data block information obtained in step ST230, but starting from the highest node table to the lower node. A data block that satisfies the query time condition is searched for while sequentially moving to the table (ST240). That is, from each table shown in Fig. 6, the sub-node information in which the query time condition is located between the start time and the end time is extracted, and the query time condition is located again between the start time and the end time from the sub-node information. Acquire data block location information.
이어, 시계열 데이터 처리부(100)는 시계열 데이터 색인부(500)에서 획득된 데이터 블록 위치정보를 근거로 시계열 데이터 저장부(400)에서 해당 데이터 블록을 검색하고, 검색된 데이터 블록에서 질의 시간 조건에 근접하는 데이터 항목 위치를 탐색한다(ST250).Next, the time series data processing unit 100 searches for a corresponding data block in the time series data storage unit 400 based on the data block location information obtained from the time series data index unit 500 , and approaches the query time condition in the searched data block. The location of the data item to be used is searched (ST250).
이때, 시계열 데이터 처리부(100)는 도5에 도시된 바와 같은 데이터 블록의 헤더 영역에 저장된 타임스템프를 이용하여 보다 신속하게 질의 시간 조건에 해당하는 데이터 위치를 탐색할 수 있다.In this case, the time series data processing unit 100 may search for a data location corresponding to the query time condition more quickly by using the timestamp stored in the header area of the data block as shown in FIG. 5 .
예컨대, 시계열 데이터 처리부(100)는 도5에서 질의 시간 조건이 "t4" 와 "t7" 사이인 경우, 해당 데이터 블록 테이블의 바디 영역에서 t4 위치부터 질의 시간 조건을 탐색할 수 있다.For example, when the query time condition in FIG. 5 is between “t4” and “t7”, the time series data processing unit 100 may search for the query time condition from the position t4 in the body area of the corresponding data block table.
본 발명에서는 데이터 블록테이블의 타임스템프 개수를 사용자가 임의로 설정하도록 실시하는 것도 가능하다. 이는 데이터 블록 테이블에서 시계열 데이터의 검색의 시작 시점을 질의 시간 조건에 근접한 위치로 설정하기 위한 것으로, 타임스템프 개수를 증가시키도록 설정할 수 있다.In the present invention, it is also possible to set the number of timestamps in the data block table arbitrarily by the user. This is to set the start time of the time series data search in the data block table to a position close to the query time condition, and can be set to increase the number of timestamps.
그리고, 시계열 데이터 처리부(100)는 검색된 질의 시간 조건에 대응되는 바디 영역의 해당 데이터 항목에서 ST220 단계에서 추출한 배치 순번에 대응되는 시계열 데이터값을 목적하는 질의 대상 시계열 데이터로 호출한다(ST260). 예컨대, 데이터 블록의 시간 조건을 만족하는 데이터 항목에서 두번째 순번의 시계열 데이터값을 해당 질의의 온도값으로 호출한다. Then, the time series data processing unit 100 calls the time series data value corresponding to the batch sequence extracted in step ST220 from the corresponding data item of the body region corresponding to the searched query time condition as the target query time series data (ST260). For example, in the data item satisfying the time condition of the data block, the second time series data value is called as the temperature value of the query.
이때, 시간 조건이 일정 범위인 경우, 상술한 바와 동일한 방식으로 해당 범위에 해당하는 시간 조건을 만족하는 모든 질의 대상 시계열 데이터를 추출한다.In this case, when the time condition is within a certain range, all query target time series data satisfying the time condition corresponding to the corresponding range are extracted in the same manner as described above.
이후, 시계열 데이터 처리부(100)는 호출된 시계열 데이터를 검색 결과로 반환한다(ST270). Thereafter, the time series data processing unit 100 returns the called time series data as a search result (ST270).
또한, 상기 ST240 단계에서 탐색된 데이터 블록의 개수의 둘 이상인 경우, 시계열 데이터 처리부(100)는 질의의 종류에 따라 각 데이터 블록에 대해 병렬처리방식으로 시계열 데이터를 획득할 수 있다. 예컨대, t1과 t2 시간 사이의 시계열 데이터의 합계를 구하는 경우, 각각의 데이터 블록에 대해 병렬방식으로 시계열 데이터를 획득한 후, 이를 합 연산처리하여 질의 결과를 산출할 수 있다.Also, when the number of data blocks searched for in step ST240 is two or more, the time series data processing unit 100 may obtain time series data for each data block in a parallel processing method according to the type of query. For example, when calculating the sum of time series data between times t1 and t2, time series data may be obtained in a parallel manner for each data block, and then the query result may be calculated by summing the data.
한편, 본 발명에 있어서는 외부로부터의 요청에 따라 시계열 데이터 처리부(100)는 시계열 데이터 저장부(400)에 저장된 시계열 데이터에 대한 삭제 질의를 수행할 수 있다.Meanwhile, in the present invention, according to a request from the outside, the time series data processing unit 100 may perform a deletion query on the time series data stored in the time series data storage unit 400 .
즉, 시계열 데이터 처리부(100)는 시계열 데이터 삭제 질의에 대해, 상술한 시계열 데이터 검색을 수행하여 삭제 대상 시계열 데이터가 저장된 데이터 항목을 검색한 후, 검색된 데이터 항목에서 시간정보(t)를 "NULL" 설정하는 방식으로 삭제 질의를 수행할 수 있다. 이후, 시계열 데이터 처리부(100)는 시간정보가 "NULL"로 검색된 데이터 항목은 삭제된 것으로 인식한다. That is, the time series data processing unit 100 searches for the data item in which the time series data to be deleted is stored by performing the time series data search described above for the time series data deletion query, and then sets the time information (t) in the searched data item to "NULL" You can perform a delete query in the way you set it. Thereafter, the time series data processing unit 100 recognizes that the data item for which time information is found as “NULL” is deleted.
이때, 시계열 데이터 처리부(100)는 "NULL" 설정된 데이터 항목에 포함된 데이터 블록에 대해 타임스템프를 확인하고, 필요에 따라 타임스템프 정보를 변경할 수 있다. 예컨대, "NULL" 설정된 데이터 항목이 타임스템프로 설정된 경우이거나 또는 해당 데이터 블록에서 "NULL" 설정된 데이터 항목이 일정 수 이상인 때에 타임스템프 정보를 변경할 수 있다.In this case, the time series data processing unit 100 may check a timestamp for a data block included in a data item set to "NULL", and may change timestamp information as necessary. For example, the timestamp information may be changed when a data item set to “NULL” is set as a timestamp or when a data item set to “NULL” is a predetermined number or more in a corresponding data block.
또한, 시계열 데이터 처리부(100)는 일정 주기 단위로 "NULL" 설정된 데이터 항목에 대한 데이터 패킹 작업을 일괄적으로 수행한다. 즉, 시계열 데이터 처리부(100)는 데이터 블록에서 "NULL" 설정된 데이터 항목을 클리어 한 후, 후위의 데이터 항목을 복사하여 이전 데이터 항목 위치로 이동시키는 방식으로 데이터 패킹 작업을 수행한다. 이는 메모리상에서 데이터를 블록 단위로 이동하는 작업이므로 성능 이슈는 크게 발생하지 않는다. In addition, the time series data processing unit 100 collectively performs a data packing operation for data items set to "NULL" in units of a predetermined period. That is, the time series data processing unit 100 performs a data packing operation in such a way that after clearing a data item set to “NULL” in a data block, the data item after the data item is copied and moved to the position of the previous data item. Since this is an operation that moves data in a block unit in memory, performance issues do not occur significantly.
이후, 시계열 데이터 처리부(100)는 필요에 따라 데이터 패킹 작업이 이루어진 데이터 블록의 헤더를 포함하여 해당 데이터 블록과 관련된 정보를 모두 갱신한다. Thereafter, the time series data processing unit 100 updates all information related to the data block, including the header of the data block on which the data packing operation is performed, if necessary.

Claims (8)

  1. 일정 크기의 데이터 블록 단위로 시계열 데이터를 저장하되, 동일 속성의 시계열 데이터들은 다수의 데이터 블록이 체인형태로 연결되어 시계열 데이터들을 시간순으로 연속되는 형태로 저장하는 시계열 데이터 저장부와,A time series data storage unit for storing time series data in units of data blocks of a certain size, but for time series data of the same attribute, a plurality of data blocks are connected in a chain form to store the time series data in a chronological sequence;
    시계열 데이터의 속성정보별 현재 저장된 시계열 데이터 전체에 대한 시작 시간과 종료 시간 및 첫번째 데이터 블록정보로 이루어지는 시계열 데이터 정보를 포함하는 레코드 테이블이 저장되는 레코드 저장부,A record storage unit for storing a record table including time series data information consisting of start time and end time for all of the time series data currently stored for each attribute information of the time series data and first data block information;
    동일 속성의 시계열 데이터가 저장된 데이터 블록들에 대해 하나의 색인 테이블을 저장하되, 색인 테이블은 각 데이터 블록에 대한 시작시간과 종료시간 및 데이터 블록 위치정보를 포함하는 데이터 블록별 색인 정보들로 이루어지는 시계열 데이터 색인부 및,One index table is stored for data blocks in which time series data of the same attribute is stored, but the index table is a time series consisting of index information for each data block including start time and end time for each data block and data block location information. a data index;
    시계열 데이터 저장 질의에 대해 해당 시계열 데이터를 저장할 데이터 블록을 검색하여 저장하고, 시계열 데이터가 저장된 데이터 블록에 대응하여 상기 레코드 저장부 및 시계열 데이터 색인부를 갱신하는 시계열 데이터 저장 처리와, 시간 조건을 포함하는 시계열 데이터 검색 질의에 대해 질의 시간 조건을 포함하는 레코드 테이블을 검색하여 첫번째 데이터 블록정보를 획득하고, 첫번째 데이터 블록을 포함하는 색인 테이블에서 질의 시간 조건을 만족하는 데이터 블록 위치정보를 획득하며, 시계열 데이터 저장부에서 데이터 블록 위치에 해당하는 데이터 블록을 검색하고, 검색된 데이터 블록에서 검색 질의에 대응되는 시계열 데이터를 호출하여 반환하는 시계열 데이터 검색 처리를 수행하는 시계열 데이터 처리부를 포함하여 구성되는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템.Time series data storage processing of searching for and storing a data block to store the time series data for a time series data storage query, and updating the record storage unit and the time series data index unit in response to the data block in which the time series data is stored, including a time condition For a time series data search query, the first data block information is obtained by searching the record table including the query time condition, the data block location information satisfying the query time condition is obtained from the index table including the first data block, and time series data and a time series data processing unit that searches for a data block corresponding to a data block position in the storage unit, and performs time series data search processing to call and return time series data corresponding to a search query from the searched data block. In-memory database-based time series data management system.
  2. 제1항에 있어서,According to claim 1,
    상기 시계열 데이터 저장부에 저장되는 데이터 블록은 헤더 영역과 실제 시계열 데이터가 저장되는 바디 영역으로 이루어지고,The data block stored in the time series data storage unit consists of a header area and a body area in which actual time series data is stored,
    헤더 영역은 해당 데이터 블록과 체인 형태로 연결되는 넥스트(NEXT) 데이터 블록 정보와 해당 데이터 블록의 시작시간 및 해당 데이터 블록의 종료시간을 포함하며, 바디 영역은 시계열 데이터 수집 시간과 하나 이상의 데이터값이 기 설정된 순서로 배치되는 형태의 데이터 항목들이 시계열 데이터 수집 시간 순서로 순차 저장되는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템.The header area contains information on the next data block that is connected to the data block in a chain form, the start time of the data block and the end time of the data block, and the body area contains the time series data collection time and one or more data values. An in-memory database-based time series data management system, characterized in that data items arranged in a preset order are sequentially stored in the time series data collection time order.
  3. 제2항에 있어서,3. The method of claim 2,
    상기 데이터 블록의 헤더 영역에는 하나 이상의 타임 스템프 항목이 할당되고, 타임 스템프 항목은 바디 영역에 저장된 데이터 항목의 수집 시간으로 설정되되,One or more timestamp items are allocated to the header area of the data block, and the time stamp items are set to a collection time of data items stored in the body area,
    타임 스템프 항목에 설정되는 데이터 항목 수집 시간은 바디 영역에 순차 저장된 데이터 항목에서 일정 이격 간격을 갖는 위치의 데이터 항목 수집 시간으로 설정되는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템.In-memory database-based time series data management system, characterized in that the data item collection time set in the time stamp item is set as the data item collection time at a location having a predetermined interval from the data items sequentially stored in the body area.
  4. 제3항에 있어서,4. The method of claim 3,
    상기 시계열 데이터 처리부는 시계열 데이터 검색 수행시 데이터 블록의 헤더 영역에서 질의 시간 조건에 근접하는 타임 스템프 항목을 확인하고, 바디 영역에서 확인된 타임스템프 위치의 데이터 항목부터 질의 시간 조건을 만족하는 데이터 항목 검색을 시작하여 질의 검색 결과에 대응되는 시계열 데이터를 검색하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템.The time series data processing unit identifies a timestamp item close to the query time condition in the header area of the data block when performing time series data search, and searches for data items satisfying the query time condition from the data item at the timestamp position checked in the body area In-memory database-based time series data management system, characterized in that by starting the search for time series data corresponding to the query search results.
  5. 제2항에 있어서,3. The method of claim 2,
    시계열 데이터에 대한 데이터값에 대응되는 데이터 종류와 그 배치 순서에 대한 정보를 포함하는 메타 테이블을 저장하는 메타데이터 저장부를 추가로 포함하여 구성되고,It is configured to further include a metadata storage unit for storing a meta table including information on a data type corresponding to a data value for time series data and an arrangement order thereof,
    상기 시계열 데이터 처리부는 다수의 데이터값을 갖는 시계열 데이터에 대해 시계열 데이터 수집 시간과 데이터값들로 이루어지는 데이터 항목의 저장 환경을 설정함과 더불어, 시계열 데이터 검색 질의 수행시, 상기 메타데이터 저장부에서 검색 대상 데이터 종류에 대응되는 배치 순서를 획득하고, 질의 시간 조건을 만족하는 데이터 항목에서 상기 배치 순서의 데이터값을 검색 요청된 시계열 데이터로 호출하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템. The time series data processing unit sets a storage environment for a data item including a time series data collection time and data values for time series data having a plurality of data values, and searches the metadata storage unit when performing a time series data search query An in-memory database-based time series data management system, characterized in that a batch order corresponding to a target data type is acquired, and a data value of the batch order is called as the time series data requested to be retrieved from a data item that satisfies a query time condition.
  6. 제5항에 있어서,6. The method of claim 5,
    상기 시계열 데이터 처리부는 다수의 데이터값을 갖는 시계열 데이터에 대해 UDT(User Defined Type) 방식으로 시계열 데이터의 데이터 저장 환경을 설정하도록 지원하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템.The time series data processing unit is an in-memory database-based time series data management system, characterized in that it supports to set the data storage environment of the time series data in a UDT (User Defined Type) method for time series data having a plurality of data values.
  7. 제1항에 있어서,According to claim 1,
    상기 시계열 데이터 처리부는 시계열 데이터 삭제 질의에 대해, 시계열 데이터 검색을 수행하여 삭제 대상 시계열 데이터가 저장된 데이터 항목을 검색한 후, 검색된 데이터 항목에서 수집 시간을 "NULL" 설정하는 방식으로 삭제 질의를 수행하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템.The time series data processing unit performs a time series data search for a time series data deletion query to search for a data item in which the time series data to be deleted is stored, and then performs a deletion query in a manner that sets the collection time to “NULL” in the searched data item. In-memory database-based time series data management system, characterized in that.
  8. 제7항에 있어서,8. The method of claim 7,
    상기 시계열 데이터 처리부는 일정 주기 단위로 "NULL" 설정된 데이터 항목에 대한 데이터 패킹 작업을 일괄적으로 수행하되, The time series data processing unit performs a data packing operation for data items set to "NULL" in a predetermined period unit,
    해당 데이터 블록에서 "NULL" 설정된 데이터 항목을 클리어 한 후, 후위의 데이터 항목을 복사하여 이전 데이터 항목 위치로 이동시키는 방식으로 데이터 패킹 작업을 수행하는 것을 특징으로 하는 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템.In-memory database-based time series data management system, characterized in that after clearing the data item set to "NULL" in the corresponding data block, the data packing operation is performed by copying the data item after it and moving it to the position of the previous data item. .
PCT/KR2019/016673 2019-11-27 2019-11-29 In-memory database-based time-series data management system WO2021107211A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190154038A KR102102313B1 (en) 2019-11-27 2019-11-27 System for Managing TimeSeries data in In-Memory Database
KR10-2019-0154038 2019-11-27

Publications (1)

Publication Number Publication Date
WO2021107211A1 true WO2021107211A1 (en) 2021-06-03

Family

ID=70467318

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/016673 WO2021107211A1 (en) 2019-11-27 2019-11-29 In-memory database-based time-series data management system

Country Status (2)

Country Link
KR (1) KR102102313B1 (en)
WO (1) WO2021107211A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113656397A (en) * 2021-07-02 2021-11-16 阿里巴巴新加坡控股有限公司 Index construction and query method and device for time series data
CN113806307A (en) * 2021-08-09 2021-12-17 阿里巴巴(中国)有限公司 Data processing method and device
CN115604668A (en) * 2022-12-09 2023-01-13 融合通信技术(天津)有限公司(Cn) Short message sending and pushing monitoring method, device, equipment and storage medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102450101B1 (en) * 2020-11-27 2022-10-05 한국전력공사 Apparatus and Methods for managing time series data
CN112650756B (en) * 2020-12-29 2023-05-02 科来网络技术股份有限公司 Time projection indexing method and system based on time sequence data
FR3120714B1 (en) 2021-03-11 2024-01-19 Stuteo METHOD FOR ENCODING AT LEAST ONE TIME SERIES INTO A DATABASE
KR102677928B1 (en) * 2023-07-13 2024-06-25 쿠팡 주식회사 Server and managing information method thereof

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090007926A (en) * 2007-07-16 2009-01-21 한양대학교 산학협력단 Apparatus and method for managing index of data stored in flash memory
JP5844554B2 (en) * 2011-06-08 2016-01-20 Jfeシステムズ株式会社 Data management storage system
KR20160083284A (en) * 2014-12-30 2016-07-12 주식회사 포스코아이씨티 Controller Management Station for Supporting Heterogeneous Database and Controlling System Including The Controller Management Station
KR20160124744A (en) * 2013-12-02 2016-10-28 큐베이스 엘엘씨 Systems and methods for hosting an in-memory database
JP6346378B2 (en) * 2015-06-30 2018-06-20 株式会社日立製作所 Data management apparatus and data management method
KR20180126792A (en) * 2017-05-18 2018-11-28 주식회사 알티베이스 System and Method for processing complex stream data using distributed in-memory
KR101927066B1 (en) * 2017-09-11 2018-12-10 (주)동림피엔디 system for providing city analysis service having constructing server of database for city analysis

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101780041B1 (en) 2016-05-30 2017-09-19 주식회사 인피니플럭스 Method and apparatus for improving throughput of database

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090007926A (en) * 2007-07-16 2009-01-21 한양대학교 산학협력단 Apparatus and method for managing index of data stored in flash memory
JP5844554B2 (en) * 2011-06-08 2016-01-20 Jfeシステムズ株式会社 Data management storage system
KR20160124744A (en) * 2013-12-02 2016-10-28 큐베이스 엘엘씨 Systems and methods for hosting an in-memory database
KR20160083284A (en) * 2014-12-30 2016-07-12 주식회사 포스코아이씨티 Controller Management Station for Supporting Heterogeneous Database and Controlling System Including The Controller Management Station
JP6346378B2 (en) * 2015-06-30 2018-06-20 株式会社日立製作所 Data management apparatus and data management method
KR20180126792A (en) * 2017-05-18 2018-11-28 주식회사 알티베이스 System and Method for processing complex stream data using distributed in-memory
KR101927066B1 (en) * 2017-09-11 2018-12-10 (주)동림피엔디 system for providing city analysis service having constructing server of database for city analysis

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113656397A (en) * 2021-07-02 2021-11-16 阿里巴巴新加坡控股有限公司 Index construction and query method and device for time series data
CN113806307A (en) * 2021-08-09 2021-12-17 阿里巴巴(中国)有限公司 Data processing method and device
CN115604668A (en) * 2022-12-09 2023-01-13 融合通信技术(天津)有限公司(Cn) Short message sending and pushing monitoring method, device, equipment and storage medium

Also Published As

Publication number Publication date
KR102102313B1 (en) 2020-04-20

Similar Documents

Publication Publication Date Title
WO2021107211A1 (en) In-memory database-based time-series data management system
US11361013B2 (en) System for organizing and fast searching of massive amounts of data
WO2018093094A1 (en) Data replacation technique in database management system
WO2019156309A1 (en) Key-value-based data access device and method using internal parallelism of flash storage device
WO2018182060A1 (en) Method for storing and searching text log data on basis of relational database
US9081834B2 (en) Process for gathering and special data structure for storing performance metric data
US20130091168A1 (en) System for organizing and fast searching of massive amounts of data
WO2014189190A1 (en) System and method for retrieving information on basis of data member tagging
JP6060312B2 (en) Data organization and high-speed search
WO2017146337A1 (en) Method and apparatus for archiving database, and method and apparatus for searching archived database
EP2629215A1 (en) File list generation method, system, and program, and file list generation device
WO2010123168A1 (en) Database management method and system
DeWitt et al. Nested loops revisited
CN110245134B (en) Increment synchronization method applied to search service
WO2022107994A1 (en) Big data augmented analysis profiling system
CN103140840A (en) Data management method and device
WO2016117739A1 (en) In-memory database-based data management system and method
WO2019074155A1 (en) Inter-database real time integrated replication system
CN108920664B (en) Database intelligent index implementation method based on index value
CN111045994A (en) KV database-based file classification retrieval method and system
WO2020153522A1 (en) Hybrid indexing device in heterogeneous storage based database management system
WO2015178554A1 (en) Apparatus and method for managing data source using compression scheme
Lang et al. Batch insertion for tree structured file organizations—improving differential database representation
WO2020105748A1 (en) Query optimization method using index merging on distributed database
WO2015163697A1 (en) Method and apparatus for recovering data in db2 database

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19954524

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19954524

Country of ref document: EP

Kind code of ref document: A1