WO2018182060A1 - 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법 - Google Patents

관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법 Download PDF

Info

Publication number
WO2018182060A1
WO2018182060A1 PCT/KR2017/003328 KR2017003328W WO2018182060A1 WO 2018182060 A1 WO2018182060 A1 WO 2018182060A1 KR 2017003328 W KR2017003328 W KR 2017003328W WO 2018182060 A1 WO2018182060 A1 WO 2018182060A1
Authority
WO
WIPO (PCT)
Prior art keywords
log data
search
record
data
upload
Prior art date
Application number
PCT/KR2017/003328
Other languages
English (en)
French (fr)
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 WO2018182060A1 publication Critical patent/WO2018182060A1/ko

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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]

Definitions

  • the present invention divides and stores a large amount of text log data in a predetermined size without configuring an index, and generates log data in record units satisfying a search condition through pattern matching in the divided and stored text log data.
  • the present invention relates to a method of storing and retrieving text log data based on a relational database that enables the storage and retrieval of log data.
  • the web log which is log data in text form, is generated and stored, and the user's behavior is analyzed by searching the stored web logs.
  • the log data such as the web log is a record of all operations of the user through the web server, and the log data generated in response to all of the operations performed by the user's request is stored and managed in a predetermined data store.
  • log data is stored and managed using a relational database designed to facilitate data storage and retrieval.
  • a relational database is a collection of data items consisting of a structured table with a number of columns (C1, C2..CN) and rows (R1, R2, ...) as shown in Figure 1, the data being a database table. It can be accessed or combined in various ways through index creation without reconstruction.
  • the number of columns is set in correspondence with the log data information item
  • the number of rows is set in correspondence with the number of log data in record units. In other words, the record data in the table becomes row data.
  • the relational database is configured to directly retrieve table data or extract reports through SQL queries, a standard search language that connects users with relational databases.
  • the index construction takes a long time, and thus, the overall cycle of performing pattern matching is long, and the capacity of the index is large.
  • an index can be set to only one column per table, and thus, the FTS function cannot perform pattern analysis on all columns.
  • the log data of the record unit is stored on a row basis.
  • a record size is set to 100 bytes for a log data file having a size of about 1 GB, about 10 million records are generated and stored as each row data of the table, which has a disadvantage of requiring 10 million upload processing times.
  • the present invention has been made in view of the above-described circumstances, and it is possible to divide and store a large amount of text log data without forming an index and store it in a predetermined size, and to satisfy a search condition through pattern matching in the divided and stored text log data. It is a technical object of the present invention to provide a method of storing and retrieving text log data based on a relational database that enables log data to be stored in a record unit, so that the log data can be stored and retrieved more quickly.
  • the upload management unit extracts the log unit log data for the text log data file, by adding a record separator between the record unit log data and the record unit log data record unit
  • log data storage process saves it in row unit in log data table of database server, and creates multiple search threads for search request query in database server.
  • the log data of the different row units stored in the log data table is called to perform pattern matching on the keyword and record delimiter satisfying the search condition, thereby recording the log data of the record unit including the keyword satisfying the search condition.
  • the log data storage process a storage processing thread step of generating a storage thread corresponding to the text log data file in the upload management device, and generates upload data for the text log data file in the storage thread to be transmitted to the database server
  • the upload data transfer step and the database server stores the upload data provided from the upload management apparatus in accordance with the row size of the log data table of the CLOB (Character Large Object) structure having a large column to store the log data in rows.
  • CLOB Chargeer Large Object
  • the log data storing step may be performed by dividing and uploading the upload data provided from the upload management apparatus in a database server into a buffer having a storage size corresponding to the row size of the log data table, based on the record identifier stored in the first buffer.
  • the log data of the last record is checked and only a part of the log data is stored, only the previous record log data is stored in the first buffer, and the uploaded data after the record is stored in the second buffer, and the buffer stored in the buffer.
  • the log data retrieval process includes a search thread generation step of generating a plurality of search threads for a search processing in a database server, and a row unit for calling log data of a different row unit stored in a log data table in each search thread.
  • Log data call step Keyword search step to search for search target keywords included in search query through pattern matching in row-level log data called from each search thread, Start record including keywords searched through pattern matching in each search thread Record unit log data that calculates the record start position including the search keyword by searching the record delimiter existing at the position, and generates the log data of the preset record unit including the search keyword based on the calculated record start position.
  • Creation step and each search Provided is a relational database-based text log data storage and retrieval method comprising the step of providing search result log information for providing search result information by using record unit log data generated by a thread.
  • the database server is configured to generate log data in record units according to pattern matching according to the type of operator included in the search request query, and provide the log data as search result log information.
  • the search thread retrieves all the search target keywords included in the search request query from the called row-level log data, calculates the starting position of the record including the corresponding keywords for all the searched keywords, and calculates them through pattern matching. Removing the calculated start position of the duplicated record from the recorded start position, and generating a search result record based on the record start position from which the duplicate record start position is removed.
  • a text log data storage and retrieval method is provided.
  • the database server is configured to generate log data in record units according to pattern matching according to the operator type included in the search request query, and provide the log data as search result log information.
  • the search thread retrieves the first search target keyword included in the search request query from the row-level log data, calculates a record start position including the searched first search target keyword, and starts the record calculated through pattern matching. Searching for next-order search target keywords for the records of the position, and sequentially calculating the start positions of the records to the last search target keyword, and finally calculating the record start positions for the last search target keywords.
  • the search request query is a dedicated SQL structure for pattern matching, and includes an INSERT INTO query, a MATCHING_TABLE query, and an operator type query, and a result table name is set as a parameter for an INSERT INTO query, and a MATCHING_TABLE query
  • log data table name, log file name, row delimiter, column delimiter, and column name of log data table are set, and one operator type that matches the search condition among OR and AND operator
  • a relational database based text log data storage and retrieval method characterized in that at least one keyword is set as a parameter.
  • the log data is uploaded to the database server in a parallel processing method by creating different threads for a plurality of large text log files, and the log data including a plurality of log data in a large column CLOB table.
  • the upload time for the log data can be shortened.
  • the log data search time can also be shortened.
  • FIG. 1 is a diagram illustrating a table structure in which log data is stored in a relational database.
  • FIG. 2 is a schematic diagram of a relational database based text log data storage and retrieval system to which the present invention is applied;
  • FIG. 3 is a view for explaining an upload data structure generated by the upload management apparatus 100 shown in FIG.
  • FIG. 4 is a flowchart illustrating a method for storing and retrieving text log data based on a relational database according to the present invention.
  • FIG. 5 is a flowchart for explaining a pattern matching search operation according to an OR operation in FIG. 4.
  • FIG. 5 is a flowchart for explaining a pattern matching search operation according to an OR operation in FIG. 4.
  • FIG. 6 is a flowchart for explaining a pattern matching search operation according to the AND operation in FIG.
  • FIG. 7 is a diagram for explaining a search request query structure in FIGS. 4 to 6;
  • FIG. 7 is a diagram for explaining a search request query structure in FIGS. 4 to 6;
  • FIG. 2 is a view showing a schematic configuration of a relational database-based text log data storage and retrieval system applied to the present invention.
  • the relational database-based text log data storage and retrieval system applied to the present invention includes a data upload device 100 and a database server 200.
  • the data upload apparatus 100 generates upload data in which a plurality of record unit log data is in a stream form for a large text log data file provided from the outside, and transmits the upload data to the database server 200.
  • the text log data file is configured to include log data in record units consisting of information of preset contents.
  • the text log data file may include a plurality of web log information including an arbitrary user terminal IP address, a URL access page, login information, a request time, and the like.
  • the data upload apparatus 100 records record delimiters T, for example, "ENTER” information (" ⁇ n"), which are preset between log data R1 to RM of different record units. In addition, upload data is generated.
  • record delimiters T for example, "ENTER” information (" ⁇ n"), which are preset between log data R1 to RM of different record units.
  • upload data is generated.
  • the data uploading apparatus 100 may assign identification information for identifying the corresponding large-capacity text log data file to the upload data and transmit the identification information to the database server 200.
  • the data upload apparatus 100 generates a plurality of storage processing threads CX 1 to CXn so as to correspond to the number of files when there are a plurality of large text log data files to be transmitted at the same time. That is, the data upload apparatus 100 generates different storage processing threads CX 1 to CXn for a plurality of large text log files, and performs upload data transmission process to the database server 200 in a parallel processing manner.
  • the database server 200 is a log data storage device 210 for storing the upload data provided from the upload management device 100, and the corresponding search conditions in the log data storage device 210 in response to a search request And a log data retrieval apparatus 220 for retrieving log data satisfying the above.
  • the log data storage device 210 includes a plurality of buffers B for temporarily storing upload data of a predetermined size provided from the data uploading device 100, and a log for storing upload data divided into predetermined size units.
  • the data table 211 is configured.
  • the log data table 211 is configured as a CLOB (Character Large Object) table having a large column structure
  • the buffer B stores a storage size corresponding to a row size of the log data table 211. It is configured to have.
  • the buffer B may be configured as a 10 Mbyte buffer.
  • the log data table 211 configures the table by storing upload data having the size of the buffer B dividedly stored in the buffer B as one row data.
  • the log data storage device 210 divides and stores the upload data provided from the upload management device 100 into the buffer B, and stores log data of the last record based on the record delimiter stored in the first buffer. If only a part of the log data is stored after checking, only the previous record log data is stored in the first buffer, and upload data after the corresponding record is stored in the second buffer. That is, N (natural numbers) log unit data streams are stored in each buffer.
  • the file identification information may be added and stored as row data of the log data table 211.
  • the file identification information may be additionally stored as column data corresponding to the split upload data in the log data table 211.
  • the log data search apparatus 220 performs a pattern matching process on the log data search request through the pattern matching processing unit 221, and stores the result information in the search result table 222.
  • the pattern matching processing unit 221 generates a plurality of threads CY 1 to CYn for the search request for the search request, and is stored in the log data table 211 in each search processing thread CY 1 to CYn.
  • the log data of different row units is called to perform pattern matching on keywords and record delimiters satisfying a search condition.
  • the pattern matching processing unit 221 generates a plurality of search processing threads CY 1 to CYn for one large text log data file and simultaneously retrieves records for the search condition in a parallel process.
  • the pattern matching processing unit 221 searches for the keyword to be searched for through the pattern matching in the row unit log data called from the log data table 211, and searches for the record delimiter existing at the record start position including the searched keyword.
  • the record start position including the search keyword is calculated. Based on the calculated record start position, log data of a predetermined record unit including the corresponding search keyword is generated and stored in the search result table 222.
  • the pattern matching processor 221 generates record unit log data corresponding to a search result based on pattern matching, corresponding to the operator type included in the search request query.
  • the pattern matching search operator includes an "AND” operator and an “OR” operator, and these operators are selectively performed for one search query.
  • the log data retrieval apparatus 220 provides search result information as a search request object by using record unit log data stored in the search result table 222 for a search query requested from the outside.
  • the upload management apparatus 100 stores a storage processing thread (CXY 1 to CXn) for performing log data storage processing for each file.
  • a storage processing thread CXY 1 to CXn
  • a plurality of storage processing threads CX 1 to CXn may be generated corresponding to the number of text log data files to be processed simultaneously.
  • Each storage processing thread CX 1 to CXn generates upload data in a log data stream form from the corresponding text log data file and transmits the uploaded data to the log data storage device 210 (ST210).
  • the upload data is configured in a form in which a plurality of record unit log data R1 to RM are continuous, and record units are distinguished through a specific pattern, that is, a record separator T.
  • the log data storage device 210 divides the upload data provided from the upload management device 100 to correspond to the storage size of the buffer B and stores the upload data in the buffer B (ST130).
  • one buffer may be allocated to one text log data file, that is, one storage processing thread, or a plurality of buffers may be allocated to a large text log data file of 10 Mbytes or more.
  • upload data processed in a first storage processing thread that processes about 1 Gbyte text log data file may be stored in two or more different 10 Mbyte buffers, or multiple times in the same buffer. That is, the first divided upload data of the first 10 Mbyte unit provided from the first storage processing thread is stored in the first buffer, and then the second divided upload data is stored in the form of being stored in the second buffer or in the first buffer.
  • the second divided upload data may be stored in the first buffer again.
  • the log data storage device 210 stores log data of a predetermined storage size, for example, 10 Mbytes, stored in one buffer B as one row data of the log data table 211 (ST140).
  • the log data table 211 is implemented as a CLOB (Character Large Object) table having a large column structure. In one row, a log of a large capacity (10 Mbytes) consisting of log data streams of a plurality of record units is provided. Data can be stored.
  • the total number of records is about 10 million, which is a row-based general table in which one record is stored as one row.
  • a plurality of log data tables may be required, as well as 10 million upload processing times.
  • the upload process is performed 100 times. row) Upload time of log data is shorter than that of base table.
  • the log data search request information from the outside is stored.
  • the log data retrieval apparatus 220 When applied to the log data retrieval apparatus 220, the log data retrieval apparatus 220 generates a search processing thread (CY 1 ⁇ CYn) to perform a record retrieval processing in response to the search request information (ST210).
  • the log data search apparatus 220 may generate a plurality of search processing threads CY 1 to CYn for one large text log data file to simultaneously search for the corresponding file.
  • Each of the search processing threads CY 1 to CYn calls the 10 Mbyte row-level upload data, that is, the log data in the row unit, from the log data table 211 and selects a keyword that satisfies the search condition from the called log data in the row unit.
  • Search ST220, ST230. For example, if a large text log data file of 1 Gbyte is stored in the log data table 211 as 100 rows of data, each search processing thread CY 1 to CYn has a different row of 10 Mbytes in the log data table 211. Call unit log data.
  • the search processing threads CY 1 to CYn search for a keyword to be searched through a pattern matching method corresponding to a search condition in the called row-level log data.
  • the log data retrieval apparatus 220 calculates a record start position including the corresponding keyword by using the pattern matching method based on the keyword position retrieved in the ST230 (ST240). That is, the log data retrieval apparatus 220 calculates a record start position including the keyword by searching for a preset record separator pattern position while moving in the previous storage direction by a predetermined size unit from the currently searched keyword.
  • the log data retrieval apparatus 220 generates a record including the corresponding search keyword by dividing the log data called in step ST220 by a preset record size unit, for example, 100 byte units based on the record start position.
  • the search result record is stored in the search result table 222 (ST250).
  • the log data retrieval apparatus 220 processes the log data of the record unit stored in the search result table 222 into a search result form corresponding to the search request and provides it to the outside (ST260). For example, the log data retrieval apparatus 220 displays and outputs search result information corresponding to the search request to the display means (not shown).
  • the log data retrieval apparatus 200 generates log data in record units according to pattern matching in response to the operator type included in the search request query, and provides the log data of the search result using the log data.
  • the pattern matching search operator includes a "AND” operator and an "OR” operator.
  • a pattern matching record search operation according to an OR operation and an AND operation will be described.
  • FIGS. 5 to 7 are views for explaining the pattern matching processing operation in the log data retrieval process (ST200), FIG. 5 is a flowchart for explaining the pattern matching processing according to the OR operation, and FIG. 7 is a flowchart illustrating a pattern matching process according to an embodiment of the present invention.
  • FIG. 7 is a diagram for describing a pattern matching query structure for the pattern matching operation of FIGS. 5 and 6.
  • each search processing thread CY 1 to CYn is called from the log data table 211. All the search target keywords included in the search request query are retrieved from the row-level log data (ST520).
  • the query structure for pattern matching the text log data is in the form of a dedicated SQL, and the pattern matching query structure basically includes an INSERT INTO query, a MATCHING_TABLE query, and an operator type query, as shown in FIG.
  • a result table name (res_table) is set as a parameter for the INSERT INTO query
  • a log data table name (ori_table), a log file name (udt_name), a row separator (row_sep), and a column are specified as parameters for the MATCHING_TABLE query.
  • Fig. 7C illustrates a query structure including "MATCH_IN” corresponding to the OR operator.
  • the log data search apparatus 220 calculates a record start position including the corresponding search keyword for all the search keywords (ST530).
  • one record unit log data may include a plurality of search target keywords.
  • the log data retrieval apparatus 220 performs a duplicate record removal operation using the record start position calculated in step ST530 as a key (ST540).
  • the log data retrieval apparatus 220 may remove duplicate records using the HASH data structure.
  • the log data retrieval apparatus 220 stores the deduplicated record in the search result table 222 as a search result record (ST550).
  • each search processing thread CY 1 to CYn is determined from the log data table 211.
  • the first search target keyword included in the search request query is retrieved from the called row log data (ST620).
  • MATCH_ALL corresponding to an AND operation is set as an AND operation query.
  • the log data retrieval apparatus 220 calculates and stores a record start position including the first keyword retrieved in step ST620 (ST630).
  • the log data search apparatus 220 determines whether the current search result is a search result for the last search target keyword in the search request query (ST640).
  • the log data search apparatus 220 determines the next-order search target keyword within the record position range calculated as the previous search target keyword search result in step ST630. Search for (ST650).
  • the log data retrieval apparatus 220 performs the step ST630 of calculating and storing a record start position including the next-order search target keyword found in step ST650.
  • the log data retrieval apparatus 220 repeats the above-described steps ST630 to ST650 to sequentially perform record start position calculation processing within the previous record start position range from the search request query to the last search target keyword.
  • step ST640 if it is determined in step ST640 that the current record start position calculation result is for the last search target keyword, the log data retrieval apparatus 220 records log unit data corresponding to the search condition based on the currently stored last record start position. It is generated and stored in the search result table 222 (ST660).

Landscapes

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

Abstract

본 발명은 대용량의 텍스트 로그데이터에 대해 인덱스를 구성하지 않고 일정 크기로 분할하여 저장하고, 분할 저장된 텍스트 로그데이터에서 패턴 매칭을 통해 검색조건을 만족하는 레코드 단위의 로그데이터를 생성함으로써, 보다 신속하게 로그데이터에 대한 저장 및 검색을 수행할 수 있는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법에 관한 것이다.

Description

관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법
본 발명은 대용량의 텍스트 로그데이터에 대해 인덱스를 구성하지 않고 일정 크기로 분할하여 저장하고, 분할 저장된 텍스트 로그데이터에서 패턴 매칭을 통해 검색조건을 만족하는 레코드 단위의 로그데이터를 생성함으로써, 보다 신속하게 로그데이터에 대한 저장 및 검색 처리를 수행할 수 있도록 해 주는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법에 관한 것이다.
인터넷이 발전하면서, 인터넷상에서 사용자의 움직이는 행동양식, 예컨대 웹 사이트상에서 구매 및 거래한 기록 등의 정보들을 통합적으로 관리하여 보다 입체적으로 고객을 이해하고, 그 정보를 실시간으로 정리하는 프로세서의 구축이 필요하게 되었다.
이에, 인터넷을 이용하는 사용자들이 웹 서버를 통해 특정 웹 사이트에 접속하는 경우 이에 대한 텍스트 형태의 로그데이터인 웹 로그(Weblog)를 생성하여 저장하고, 저장된 웹 로그를 검색함으로써 사용자의 행동양식을 분석하는 기술이 발전하게 되었다.
상기한 웹 로그 등의 로그데이터는 웹 서버를 통해 이루어지는 사용자의 모든 작업에 대한 기록으로, 사용자의 요구에 의해 수행된 모든 작업에 대응하여 생성된 로그데이터는 미리 정해진 데이터 저장소에 저장하여 관리된다.
로그데이터의 크기가 방대해지고, 로그데이터에 대한 분석을 통한 빅데이터의 활용이 다양화되면서, 로그데이터를 저장 관리하기 위한 데이터 저장소에 대한 중요성도 부각되고 있다.
최근에는 데이터의 저장 및 검색이 용이하도록 설계된 관계형 데이터베이스(relational data base)를 이용하여 로그데이터가 저장 및 관리되고 있다.
관계형 데이터베이스는 도1에 도시된 바와 같이 다수의 컬럼(C1,C2..CN)과 로우(R1,R2,...) 구조의 정형화된 테이블로 구성된 데이터 항목들의 집합체로서, 그 데이터들은 데이터베이스 테이블을 재구성하지 않고 인덱스 생성을 통해 다양한 방법으로 접근하거나 조합될 수 있다. 통상 상기한 테이블은 로그데이터 정보 항목에 대응하여 컬럼수가 설정되고, 레코드 단위의 로그데이터의 수에 대응하여 로우 수가 설정된다. 즉, 상기 테이블에서 레코드 데이터는 곧 로우 데이터가 된다.
관계형 데이터베이스는 사용자와 관계형 데이터베이스를 연결시켜 주는 표준검색언어인 SQL 질의를 통해 테이블화된 데이터를 직접 조회하거나 또는 보고서를 추출할 수 있도록 구성된다.
그러나, 관계형 데이터베이스에서 제공하는 FTS(Full-Text Search) 기능을 수행함에 있어서, 인덱스 구성 시간이 오래 걸려 전체적인 패턴 매칭에 대한 수행 주기가 길고, 인덱스가 차지하는 용량이 크다는 단점이 있다.
또한, 상기한 관계형 데이터베이스에 있어서는 한 테이블당 하나의 컬럼에만 인덱스를 설정할 수 있기 때문에 FTS 기능 수행시 모든 컬럼에 대한 패턴 분석을 진행할 수 없다는 단점이 있다.
또한, 대용량 텍스트 로그데이터를 데이터 베이스에 저장하는 경우, 로우(row) 기반으로 레코드 단위의 로그데이터를 저장하게 된다. 예컨대 약 1GB 크기의 로그데이터 파일에 대해, 레코드 크기가 100byte로 설정된 경우, 약 1천만개의 레코드가 생성되어 테이블의 각 로우데이터로서 저장되는 바, 1천만번의 업로드 처리 시간이 소요되는 단점이 있다.
이에, 본 발명은 상기한 사정을 감안하여 창출된 것으로, 대용량의 텍스트 로그데이터에 대해 인덱스를 구성하지 않고 일정 크기로 분할하여 저장하고, 분할 저장된 텍스트 로그데이터에서 패턴 매칭을 통해 검색조건을 만족하는 레코드 단위의 로그데이터를 생성함으로써, 보다 신속하게 로그데이터에 대한 저장 및 검색 처리를 수행할 수 있도록 해 주는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법을 제공함에 그 기술적 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 업로드 관리장치에서 텍스트 로그데이터 파일에 대해 레코드 단위 로그데이터를 추출하고, 레코드 단위 로그데이터와 레코드 단위 로그데이터 사이에 레코드 구분자를 부가하여 레코드 단위의 로그데이터 스트림 형태의 업로드 데이터를 생성한 후, 이를 데이터베이스 서버의 로그데이터 테이블에 로우 단위로 저장하는 로그데이터 저장과정과, 데이터베이스 서버에서 검색요청 질의에 대해 다수의 검색 쓰레드를 생성하고, 각 검색 쓰레드에서 상기 로그데이터 테이블에 저장된 서로 다른 로우 단위의 로그데이터를 호출하여 검색 조건을 만족하는 키워드 및 레코드 구분자에 대한 패턴 매칭 처리를 수행함으로써, 검색 조건을 만족하는 키워드를 포함하는 레코드 단위의 로그데이터를 생성하는 로그데이터 검색과정을 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법이 제공된다.
또한, 상기 로그데이터 저장과정은, 업로드 관리장치에서 텍스트 로그데이터 파일에 대응하여 저장 쓰레드를 생성하는 저장처리 쓰레드 단계와, 저장 쓰레드에서 해당 텍스트 로그데이터 파일에 대해 업로드데이터를 생성하여 데이터베이스 서버로 전송하는 업로드데이터 전송 단계 및, 데이터베이스 서버에서 업로드 관리장치로부터 제공되는 업로드데이터를 대용량 컬럼을 갖는 CLOB (Character Large Object) 구조의 로그데이터 테이블의 로우 크기에 대응되도록 분할하여 로우 단위로 저장하는 로그데이터 저장단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법이 제공된다.
또한, 상기 로그데이터 저장단계는 데이터베이스 서버에서 업로드 관리장치로부터 제공되는 업로드데이터를 로그데이터 테이블의 로우 크기에 대응되는 저장 크기를 갖는 버퍼에 분할하여 저장하되, 제1 버퍼에 저장되는 레코드 구분자를 근거로 마지막 레코드의 로그데이터를 확인하여 로그데이터의 일부만 저장되는 경우에는 이전 레코드 로그데이터까지만 제1 버퍼에 저장하고, 해당 레코드 이후의 업로드데이터에 대해서는 제2 버퍼에 저장하는 단계와, 버퍼에 저장된 버퍼 크기의 분할 업로드 데이터를 로그데이터 테이블의 로우 단위 로그데이터로 저장하는 단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법이 제공된다.
또한, 상기 로그데이터 검색과정은, 데이터베이스 서버에서 검색처리를 위한 다수의 검색 쓰레드를 생성하는 검색 쓰레드 생성단계와, 각 검색 쓰레드에서 로그데이터 테이블에 저장된 서로 다른 로우 단위의 로그데이터를 호출하는 로우단위 로그데이터 호출단계, 각 검색 쓰레드에서 호출된 로우단위 로그데이터에서 패턴 매칭을 통해 검색질의에 포함된 검색 대상 키워드를 검색하는 키워드 검색단계, 각 검색 쓰레드에서 패턴 매칭을 통해 검색된 키워드를 포함하는 레코드 시작위치에 존재하는 레코드 구분자를 검색함으로써 해당 검색 키워드를 포함하는 레코드 시작위치를 산출하고, 산출된 레코드 시작위치를 근거로 해당 검색 키워드를 포함하는 기 설정된 레코드 단위의 로그데이터를 생성하는 레코드 단위 로그데이터 생성단계 및, 각 검색 쓰레드에서 생성된 레코드 단위 로그데이터를 이용하여 검색 결과 정보를 제공하는 검색 결과 로그정보 제공단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법이 제공된다.
또한, 상기 데이터베이스 서버는 검색요청 질의에 포함된 연산자 종류에 대응하여 패턴 매칭에 따른 레코드 단위의 로그데이터를 생성하고, 이를 검색 결과 로그정보로서 제공하도록 구성되되, 검색요청 질의에 OR 연산자가 포함되면, 검색 쓰레드는 호출된 로우단위 로그데이터에서 검색요청 질의에 포함된 모든 검색대상 키워드를 검색하는 단계와, 검색된 모든 키워드에 대해 해당 키워드를 포함하는 레코드 시작위치를 산출하는 단계, 패턴 매칭을 통해 산출된 레코드 시작위치에서 중복 산출된 레코드 시작위치를 제거하는 단계 및, 중복 레코드 시작위치가 제거된 레코드 시작위치를 근거로 검색 결과 레코드를 생성하는 단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법이 제공된다.
또한, 상기 데이터베이스 서버는 검색요청 질의에 포함된 연산자 종류에 대응하여 패턴 매칭에 따른 레코드 단위의 로그데이터를 생성하고, 이를 검색 결과 로그정보로서 제공하도록 구성되되, 검색요청 질의에 AND 연산자가 포함되면, 검색 쓰레드는 로우단위 로그데이터에서 검색요청 질의에 포함된 첫번째 검색대상 키워드를 검색하는 단계와, 검색된 첫 번째 검색대상 키워드를 포함하는 레코드 시작위치를 산출하는 단계, 패턴 매칭을 통해 산출된 레코드 시작위치의 레코드들을 대상으로 차순위 검색대상 키워드를 검색하고, 이에 대해 레코드 시작위치를 산출하는 동작을 마지막 검색대상 키워드까지 순차로 수행하는 단계 및, 마지막 검색대상 키워드에 대해 최종적으로 산출된 레코드 시작위치를 근거로 검색 결과 레코드를 생성하는 단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법이 제공된다.
또한, 상기 검색요청 질의는 패턴 매칭을 위한 전용 SQL 구조로서, INSERT INTO 질의와, MATCHING_TABLE 질의 및, 연산자 종류 질의를 포함하여 구성되고, INSERT INTO 질의에 대해서는 매개변수로서 결과 테이블명이 설정되며, MATCHING_TABLE 질의에 대해서는 매개변수로서 로그데이터 테이블명과, 로그파일명, 로우 구분자, 컬럼 구분자 및, 로그데이터 테이블의 컬럼명이 설정되고, OR 연산자 및 AND 연산자를 포함하는 연산자 중 검색조건에 대응되는 하나의 연산자 종류에 대해서는 매개변수로서 적어도 하나 이상의 키워드가 설정되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법이 제공된다.
본 발명에 의하면 다수의 대용량 텍스트 로그파일에 대해 서로 다른 쓰레드를 생성하여 병렬처리 방식으로 데이터베이스 서버로 로그데이터 업로드 처리를 수행함과 더불어, 대용량 컬럼 구조의 CLOB 테이블에 다수의 로그데이터들로 이루어지는 로그데이터 스트림을 하나의 로우 데이터로 저장함으로써, 로그데이터에 대한 업로드 시간을 보다 단축시킬 수 있다.
또한, 하나의 대용량 텍스트 로그데이터 파일에 대해 다수의 검색처리 쓰레드를 생성하여 병렬처리 방식으로 동시에 검색 조건에 대한 레코드 단위의 로그데이터를 검색함으로써, 로그데이터 검색시간 또한 단축시킬 수 있다.
도1은 관계형 데이터베이스에서 로그데이터가 저장되는 테이블 구조를 설명하기 위한 도면.
도2는 본 발명이 적용되는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 시스템의 개략적인 구성을 도시한 도면.
도3은 도1에 도시된 업로드 관리장치(100)에서 생성되는 업로드 데이터 구조를 설명하기 위한 도면.
도4는 본 발명에 따른 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법을 설명하기 위한 흐름도.
도5는 도4에서 OR 연산에 따른 패턴 매칭 검색 동작을 설명하기 위한 흐름도.
도6은 도4에서 AND 연산에 따른 패턴 매칭 검색 동작을 설명하기 위한 흐름도.
도7은 도4 내지 도6에서 검색요청 질의 구조를 설명하기 위한 도면.
이하에서는 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명한다. 도면들 중 동일한 구성요소들은 가능한 한 어느 곳에서든지 동일한 부호로 나타내고 있음을 유의해야 한다. 한편, 이에 앞서 본 명세서 및 특허청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도2는 본 발명에 적용되는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 시스템의 개략적인 구성을 나타낸 도면이다.
도2에 도시된 바와 같이 본 발명에 적용되는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 시스템은 데이터 업로드 장치(100) 및 데이터 베이스 서버(200)를 포함하여 구성된다.
데이터 업로드 장치(100)는 외부로부터 제공되는 대용량의 텍스트 로그데이터 파일에 대해 다수의 레코드 단위 로그데이터가 스트림 형태로 이루어지는 업로드 데이터를 생성하여 상기 데이터 베이스 서버(200)로 전송한다.
즉, 상기 텍스트 로그데이터 파일은 기 설정된 내용의 정보들로 이루어지는 레코드 단위의 로그데이터들을 포함하여 구성된다. 예컨대, 상기 텍스트 로그데이터 파일은 임의 사용자 단말 IP주소, URL 접속 페이지, 로그인 정보, 요청시간 등을 포함하는 다수의 웹로그 정보들로 이루어질 수 있다.
또한, 데이터 업로드 장치(100)는 도3에 도시된 바와 같이 서로 다른 레코드 단위의 로그데이터(R1 ~ RM) 사이에 기 설정된 레코드 구분자(T), 예컨대 "ENTER" 정보("\n")를 부가하여 업로드 데이터를 생성한다.
또한, 데이터 업로드 장치(100)는 업로드 데이터에 대해 해당 대용량 텍스트 로그데이터 파일 식별을 위한 식별정보를 부여하여 데이터 베이스 서버(200)로 전송할 수 있다.
또한, 상기 데이터 업로드 장치(100)는 동시에 전송할 대용량 텍스트 로그데이터 파일이 다수개인 경우, 그 파일 개수에 대응되도록 다수의 저장처리 쓰레드(CX1~CXn)를 생성한다. 즉, 데이터 업로드 장치(100)는 다수의 대용량 텍스트 로그파일에 대해 서로 다른 저장처리 쓰레드(CX1~CXn)를 생성하여 병렬처리 방식으로 데이터베이스 서버(200)로의 업로드 데이터 전송처리를 수행한다.
한편, 데이터 베이스 서버(200)는 상기 업로드 관리장치(100)로부터 제공되는 업로드 데이터를 저장하는 로그데이터 저장장치(210)와, 검색 요청에 대응하여 상기 로그데이터 저장장치(210)에서 해당 검색조건을 만족하는 로그데이터를 검색하는 로그데이터 검색장치(220)를 포함하여 구성된다.
상기 로그데이터 저장장치(210)는 상기 데이터 업로드 장치(100)로부터 제공되는 일정 크기 단위의 업로드 데이터를 일시 저장하기 위한 다수의 버퍼(B)와, 일정 크기 단위로 분할된 업로드 데이터를 저장하는 로그데이터 테이블(211)을 포함하여 구성된다.
이때, 상기 로그데이터 테이블(211)은 대용량 컬럼 구조의 CLOB(Character Large Object)테이블로 구성되고, 상기 버퍼(B)는 상기 로그데이터 테이블(211)의 로우(row) 크기에 대응되는 저장 크기를 갖도록 구성된다. 예컨대, 상기 버퍼(B)는 10Mbyte 크기의 버퍼로 구성될 수 있다.
즉, 상기 로그데이터 테이블(211)은 버퍼(B)에 분할 저장된 버퍼(B) 크기의 업로드 데이터를 하나의 로우(row) 데이터로 저장함으로써, 테이블을 구성한다.
여기서, 상기 로그데이터 저장장치(210)는 업로드 관리장치(100)로부터 제공되는 업로드 데이터를 버퍼(B)에 분할하여 저장하되, 제1 버퍼에 저장되는 레코드 구분자를 근거로 마지막 레코드의 로그데이터를 확인하여 로그데이터의 일부만 저장되는 경우에는 이전 레코드 로그데이터까지만 제1 버퍼에 저장하고, 해당 레코드 이후의 업로드 데이터에 대해서는 제2 버퍼에 저장한다. 즉, 각 버퍼에는 N(자연수)개의 레코드 단위 로그데이터 스트림이 저장된다. 이때, 동일 대용량 텍스트 로그데이터 파일에 대해 버퍼(B)에 저장되는 일정 크기의 업로드 데이터에 대해서는 해당 파일 식별정보를 부가하여 로그데이터 테이블(211)의 로우 데이터로 저장할 수 있다. 예컨대, 파일 식별정보는 로그데이터 테이블(211)에서 분할 업로드 데이터에 대응되는 컬럼 데이터로 추가 저장될 수 있다.
한편, 로그데이터 검색장치(220)는 패턴 매칭 처리부(221)를 통해 로그데이터 검색요청에 대해 패턴매칭 처리를 수행하고, 그 결과정보를 검색결과 테이블(222)에 저장한다.
상기, 패턴 매칭 처리부(221)는 검색요청에 대해 다수의 검색처리를 위한 쓰레드(CY1~CYn)를 생성하고, 각 검색처리 쓰레드(CY1~CYn)에서 상기 로그데이터 테이블(211)에 저장된 서로 다른 로우(row) 단위의 로그데이터를 호출하여 검색 조건을 만족하는 키워드 및 레코드 구분자에 대한 패턴 매칭 처리를 수행한다.
즉, 패턴 매칭 처리부(221)는 하나의 대용량 텍스트 로그데이터 파일에 대해 다수의 검색처리 쓰레드(CY1~CYn)를 생성하여 병렬처리 방식으로 동시에 검색 조건에 대한 레코드를 검색한다.
이때, 패턴 매칭 처리부(221)는 로그데이터 테이블(211)로부터 호출한 로우단위 로그데이터에서 패턴 매칭을 통해 검색 대상 키워드를 검색하고, 검색된 키워드를 포함하는 레코드 시작위치에 존재하는 레코드 구분자를 검색함으로써 해당 검색 키워드를 포함하는 레코드 시작위치를 산출한다. 그리고, 산출된 레코드 시작위치를 근거로 해당 검색 키워드를 포함하는 기 설정된 레코드 단위의 로그데이터를 생성하여 검색결과 테이블(222)에 저장한다.
또한, 패턴 매칭 처리부(221)는 검색요청 질의에 포함된 연산자 종류에 대응하여 패턴 매칭에 따른 검색결과에 해당하는 레코드 단위 로그데이터를 생성한다. 이때, 패턴 매칭 검색 연산자 종류로는 "AND" 연산자와 "OR" 연산자를 포함하고, 이들 연산자들은 하나의 검색질의에 대해 선택적으로 수행된다.
즉, 로그데이터 검색장치(220)는 외부로부터 요청되는 검색 질의에 대하여 검색 결과 테이블(222)에 저장된 레코드 단위 로그데이터를 이용하여 검색 결과 정보를 검색 요청 대상으로 제공한다.
이어, 본 발명의 제1 실시예에 따른 관계형 데이터베이스 기반의 대용량 텍스트 로그데이터 저장 및 검색 방법을 도4에 도시된 흐름도를 참조하여 설명한다.
먼저, 외부로부터 웹로그 등의 대용량 텍스트 로그데이터 파일이 업로드 관리장치(100)로 입력되면, 업로드 관리장치(100)는 파일별로 로그데이터 저장처리를 수행하기 위한 저장처리 쓰레드(CXY1~CXn)를 생성한다(ST110). 이때, 동시에 처리할 텍스트 로그데이터 파일 수에 대응하여 다수의 저장처리 쓰레드(CX1~CXn)가 생성될 수 있다.
각 저장처리 쓰레드(CX1~CXn)는 해당 텍스트 로그데이터 파일에서 로그데이터 스트림 형태로 이루어지는 업로드 데이터를 생성하여 로그데이터 저장장치(210)로 전송한다(ST210). 이때, 다수의 저장처리 쓰레드(CX1~CXn)가 생성된 경우, 각 저장처리 쓰레드(CX1~CXn)에서 서로 다른 텍스트 로그데이터 파일에 대한 업로드 데이터가 동시에 로그데이터 저장장치(210)로 업로드 된다. 이에 따라, 다수의 텍스트 로그데이터 파일에 대한 업로드 시간이 단축된다. 업로드 데이터는 도3에 도시된 바와 같이 다수의 레코드 단위 로그데이터(R1~RM)가 연속되는 형태로 구성되되, 특정 패턴 즉, 레코드 구분자(T)를 통해 레코드 단위가 구분되도록 구성된다.
한편, 로그데이터 저장장치(210)는 상기 업로드 관리장치(100)로부터 제공되는 업로드 데이터를 버퍼(B) 저장크기에 대응되게 분할하여 버퍼(B)에 저장한다(ST130). 이때, 하나의 텍스트 로그데이터 파일, 다시 말해 하나의 저장처리 쓰레드에 대해서는 하나의 버퍼가 할당될 수도 있고, 또는 10 Mbyte 이상의 대용량 텍스트 로그데이터 파일에 대해서는 다수의 버퍼가 할당되는 것도 가능하다.
예컨대, 약 1Gbyte 텍스트 로그데이터 파일을 처리하는 제1 저장처리 쓰레드에서 처리된 업로드 데이터는 두 개 이상의 서로 다른 10 Mbyte 버퍼, 또는 동일 버퍼에 다수 회 저장될 수 있다. 즉, 제1 저장처리 쓰레드로부터 제공되는 처음 10 Mbyte 단위의 제1 분할 업로드 데이터는 제1 버퍼에 저장되고, 이후 제2 분할 업로드 데이터는 제2 버퍼에 저장되는 형태로 저장되거나, 제1 버퍼에 저장된 제1 분할 업로드 데이터가 로그데이터 테이블(211)에 저장되어 저장 가능 상태로 전환된 경우, 제2 분할 업로드 데이터는 제1 버퍼에 다시 저장될 수 있다.
또한, 로그데이터 저장장치(210)는 하나의 버퍼(B)에 저장된 일정 저장 크기 예컨대, 10 Mbyte의 로그데이터를 로그데이터 테이블(211)의 하나의 로우 데이터로서 저장한다(ST140). 이때, 로그데이터 테이블(211)은 대용량 컬럼 구조의 CLOB(Character Large Object) 테이블로 구현되는 바, 하나의 로우(row)에는 다수의 레코드 단위의 로그데이터 스트림들로 이루어지는 대용량(10 Mbyte)의 로그데이터들이 저장될 수 있다.
예컨대, 약 1Gbyte 텍스트 로그데이터 파일의 경우, 한 레코드의 크기가 100 byte 이면 전체 레코드 수는 약 1천만개로서, 하나의 레코드가 하나의 로우(row)로서 저장되는 로우(row) 기반의 일반 테이블이 데이터베이스 서버에 구비되는 경우에는 다수의 로그데이터 테이블이 요구될 수 있음은 물론, 1 천만번의 업로드 처리 시간이 소요된다. 그러나 본 발명에서는 10 Mbyte 의 로그데이터들로 이루어지는 로그데이터 스트림이 CLOB(Character Large Object) 구조의 테이블에서 하나의 로우(row) 데이터로서 저장되는 바, 100 번의 업로드 처리를 수행하게 됨으로써, 기존 로우(row) 기반 테이블에 비해 로그데이터 업로드 시간이 보다 단축되는 효과를 얻을 수 있다.
한편, 상술한 바와 같이 CLOB(Character Large Object) 테이블로 구현되는 로그데이터 테이블(211)에 로그데이터 스트림형태의 업로드 데이터가 로우(row) 단위로 분할 저장된 상태에서, 외부로부터 로그데이터 검색요청정보가 로그데이터 검색장치(220)로 인가되면, 로그데이터 검색장치(220)는 검색요청정보에 대응하여 레코드 검색 처리를 수행할 검색처리 쓰레드(CY1~CYn)를 생성한다(ST210). 이때, 로그데이터 검색장치(220)는 하나의 대용량의 텍스트 로그데이터 파일에 대해 다수의 검색처리 쓰레드(CY1~CYn)를 생성하여 동시에 해당 파일을 검색하도록 할 수 있다.
상기 각 검색처리 쓰레드(CY1~CYn)는 로그데이터 테이블(211)에서 10Mbyte 로우 단위 업로드 데이터 즉, 로우 단위의 로그데이터를 호출하고, 호출된 로우 단위의 로그데이터에서 검색조건을 만족하는 키워드를 검색한다(ST220,ST230). 예컨대, 1 Gbyte의 대용량의 텍스트 로그데이터 파일이 100개의 로우 데이터로서 로그데이터 테이블(211)에 저장된 경우, 각 검색처리 쓰레드(CY1~CYn)는 로그데이터 테이블(211)에서 10Mbyte의 서로 다른 로우 단위 로그데이터를 호출한다. 그리고, 검색처리 쓰레드(CY1~CYn)는 호출된 로우단위 로그데이터에서 검색 조건에 대응하여 패턴 매칭 방법을 통해 검색대상 키워드를 검색한다.
한편, 로그데이터 검색장치(220)는 상기 ST230에서 검색된 키워드 위치를 기준으로 패턴 매칭 방법을 이용하여 해당 키워드를 포함하는 레코드 시작위치를 산출한다(ST240). 즉, 상기 로그데이터 검색장치(220)는 현재 검색된 키워드에서 일정 크기 단위로 이전 저장방향으로 이동하면서 기 설정된 레코드 구분자 패턴 위치를 검색함으로써, 해당 키워드를 포함하는 레코드 시작위치를 산출한다.
이어, 로그데이터 검색장치(220)는 레코드 시작위치를 기준으로 기 설정된 레코드 크기단위, 예컨대 100 byte 단위로 ST220 단계에서 호출된 로그데이터를 분할함으로써, 해당 검색 키워드를 포함하는 레코드를 생성하고, 이를 검색결과 레코드로서 검색결과 테이블(222)에 저장한다(ST250).
또한, 로그데이터 검색장치(220)는 검색결과 테이블(222)에 저장된 레코드 단위의 로그데이터를 이용하여 검색요청에 대응되는 검색결과 형태로 가공하여 외부로 제공한다(ST260). 예컨대, 로그데이터 검색장치(220)는 검색요청에 대응되는 검색결과정보를 디스플레이수단(미도시)으로 표시출력한다.
한편, 상기 로그데이터 검색장치(200)는 검색요청 질의에 포함된 연산자 종류에 대응하여 패턴 매칭에 따른 레코드 단위의 로그데이터를 생성하고, 이를 이용하여 검색 결과 로그정보를 제공하게 된다. 이때, 패턴 매칭 검색 연산자 종류로는 "AND" 연산자와 "OR" 연산자를 포함하는 바, 이하에서는 OR 연산과 AND 연산에 따른 패턴 매칭 레코드 검색 동작을 설명한다.
도5 내지 도7는 로그데이터 검색과정(ST200)에서의 패턴 매칭 처리 동작을 설명하기 위한 도면으로, 도5는 OR 연산에 따른 패턴 매칭 처리 과정을 설명하기 위한 흐름도이고, 도6은 AND 연산에 따른 패턴 매칭 처리 과정을 설명하기 위한 흐름도이며, 도7은 상기 도5 및 도6 의 패턴 매칭 연산을 위한 패턴 매칭 질의구조를 설명하기 위한 도면이다.
먼저, OR 연산에 따른 패턴 매칭 처리 동작은,
로그데이터 검색장치(220)에서 검색요청 질의를 분석하여 검색조건에서 OR 연산자가 포함된 질의로 판단되면(ST510), 각 검색처리 쓰레드(CY1~CYn)는 로그데이터 테이블(211)로부터 호출된 해당 로우단위 로그데이터에서 검색요청 질의에 포함된 모든 검색대상 키워드를 검색한다(ST520).
여기서, 텍스트 로그데이터를 패턴 매칭하는 질의 구조는 전용 SQL 형태로서, 패턴 매칭 질의 구조는 도7 (A)에 도시된 바와 같이, 기본적으로 INSERT INTO 질의와 MATCHING_TABLE 질의 및 연산자 종류 질의를 포함한다. 또한, 상기 INSERT INTO 질의에 대해서는 매개변수로서 결과 테이블명(res_table)이 설정되고, MATCHING_TABLE 질의에 대해서는 매개변수로서 로그데이터 테이블명(ori_table)과, 로그 파일명(udt_name), 로우 구분자(row_sep), 컬럼 구분자(col_sep) 및, 로그데이터 테이블의 컬럼명(ori_dara_col)이 설정되며, OR 연산자 및 AND 연산자를 포함하는 연산자 중 검색조건에 대응되는 하나의 연산자 종류(MATCH_IN 또는 MATCH_ALL)에 대해서는 매개변수로서 적어도 하나 이상의 키워드가 설정된다. 도7 (C)에는 OR 연산자에 해당하는 "MATCH_IN"을 포함하는 질의구조가 예시되어 있다.
이어, 로그데이터 검색장치(220)는 모든 검색 키워드에 대하여 해당 검색 키워드를 포함하는 레코드 시작위치를 산출한다(ST530). 이때, 하나의 레코드 단위 로그데이터는 다수의 검색 대상 키워드가 포함될 수 있다.
이에, 로그데이터 검색장치(220)는 상기 ST530 단계에서 산출된 레코드 시작위치를 키(KEY)로 하여 중복 레코드 제거동작을 수행한다(ST540). 이때, 로그데이터 검색장치(220)는 HASH 자료구조를 사용하여 중복된 레코드를 제거할 수 있다.
이어, 로그데이터 검색장치(220)는 중복 제거된 레코드를 검색 결과 레코드로서 검색결과 테이블(222)에 저장한다(ST550).
한편, AND 연산에 따른 패턴 매칭 처리 동작은,
먼저, 로그데이터 검색장치(220)에서 검색요청 질의를 분석하여 검색조건에서 OR 연산자가 포함된 질의로 판단되면(ST610), 각 검색처리 쓰레드(CY1~CYn)는 로그데이터 테이블(211)로부터 호출된 해당 로우단위 로그데이터에서 검색요청 질의에 포함된 첫번째 검색대상 키워드를 검색한다(ST620). 이때, AND 연산 질의는 도7 (B)에 도시된 바와 같이, 연산자 종류로서 AND 연산에 대응되는 MATCH_ALL 이 설정된다.
이어, 로그데이터 검색장치(220)는 상기 ST620 단계에서 검색된 첫번째 키워드를 포함하는 레코드 시작위치를 산출하여 저장한다(ST630).
이후, 로그데이터 검색장치(220)는 검색 요청 질의에서 현재 검색 결과가 마지막 검색대상 키워드에 대한 검색 결과인지를 판단한다.(ST640).
로그데이터 검색장치(220)는 상기 ST640 단계에서 현재 검색 결과가 마지막 검색 대상 키워드에 대한 결과가 아닌 경우, 상기 ST630단계에서 이전 검색 대상 키워드 검색 결과로 산출된 레코드 위치 범위내에서 차 순위 검색 대상 키워드를 검색한다(ST650).
그리고, 로그데이터 검색장치(220)는 상기 ST650 단계에서 검색된 차 순위 검색 대상 키워드를 포함하는 레코드 시작위치를 산출하여 저장하는 ST630 단계를 수행한다.
즉, 로그데이터 검색장치(220)는 상술한 ST630 내지 ST650 단계를 반복수행하여 검색 요청 질의에서 마지막 검색 대상 키워드까지 순차로 이전 레코드 시작위치 범위내에서의 레코드 시작위치 산출처리를 수행한다.
한편, 로그데이터 검색장치(220)는 상기 ST640 단계에서 현재 레코드 시작위치 산출 결과가 마지막 검색 대상 키워드에 대한 것으로 판단되면, 현재 저장된 최종 레코드 시작위치를 근거로 검색조건에 대응되는 레코드 단위 로그데이터를 생성하여 검색결과 테이블(222)에 저장한다(ST660).

Claims (7)

  1. 업로드 관리장치에서 텍스트 로그데이터 파일에 대해 레코드 단위 로그데이터를 추출하고, 레코드 단위 로그데이터와 레코드 단위 로그데이터 사이에 레코드 구분자를 부가하여 레코드 단위의 로그데이터 스트림 형태의 업로드 데이터를 생성한 후, 이를 데이터베이스 서버의 로그데이터 테이블에 로우 단위로 저장하는 로그데이터 저장과정과,
    데이터베이스 서버에서 검색요청 질의에 대해 다수의 검색 쓰레드를 생성하고, 각 검색 쓰레드에서 상기 로그데이터 테이블에 저장된 서로 다른 로우 단위의 로그데이터를 호출하여 검색 조건을 만족하는 키워드 및 레코드 구분자에 대한 패턴 매칭 처리를 수행함으로써, 검색 조건을 만족하는 키워드를 포함하는 레코드 단위의 로그데이터를 생성하는 로그데이터 검색과정을 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법.
  2. 제1항에 있어서,
    상기 로그데이터 저장과정은,
    업로드 관리장치에서 텍스트 로그데이터 파일에 대응하여 저장 쓰레드를 생성하는 저장처리 쓰레드 단계와,
    저장 쓰레드에서 해당 텍스트 로그데이터 파일에 대해 업로드데이터를 생성하여 데이터베이스 서버로 전송하는 업로드데이터 전송 단계 및,
    데이터베이스 서버에서 업로드 관리장치로부터 제공되는 업로드데이터를 대용량 컬럼을 갖는 CLOB (Character Large Object) 구조의 로그데이터 테이블의 로우 크기에 대응되도록 분할하여 로우 단위로 저장하는 로그데이터 저장단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법.
  3. 제2항에 있어서,
    상기 로그데이터 저장단계는 데이터베이스 서버에서 업로드 관리장치로부터 제공되는 업로드데이터를 로그데이터 테이블의 로우 크기에 대응되는 저장 크기를 갖는 버퍼에 분할하여 저장하되, 제1 버퍼에 저장되는 레코드 구분자를 근거로 마지막 레코드의 로그데이터를 확인하여 로그데이터의 일부만 저장되는 경우에는 이전 레코드 로그데이터까지만 제1 버퍼에 저장하고, 해당 레코드 이후의 업로드데이터에 대해서는 제2 버퍼에 저장하는 단계와,
    버퍼에 저장된 버퍼 크기의 분할 업로드 데이터를 로그데이터 테이블의 로우 단위 로그데이터로 저장하는 단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법.
  4. 제1항에 있어서,
    상기 로그데이터 검색과정은,
    데이터베이스 서버에서 검색처리를 위한 다수의 검색 쓰레드를 생성하는 검색 쓰레드 생성단계와,
    각 검색 쓰레드에서 로그데이터 테이블에 저장된 서로 다른 로우 단위의 로그데이터를 호출하는 로우단위 로그데이터 호출단계,
    각 검색 쓰레드에서 호출된 로우단위 로그데이터에서 패턴 매칭을 통해 검색질의에 포함된 검색 대상 키워드를 검색하는 키워드 검색단계,
    각 검색 쓰레드에서 패턴 매칭을 통해 검색된 키워드를 포함하는 레코드 시작위치에 존재하는 레코드 구분자를 검색함으로써 해당 검색 키워드를 포함하는 레코드 시작위치를 산출하고, 산출된 레코드 시작위치를 근거로 해당 검색 키워드를 포함하는 기 설정된 레코드 단위의 로그데이터를 생성하는 레코드 단위 로그데이터 생성단계 및,
    각 검색 쓰레드에서 생성된 레코드 단위 로그데이터를 이용하여 검색 결과 정보를 제공하는 검색 결과 로그정보 제공단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법.
  5. 제4항에 있어서,
    상기 데이터베이스 서버는 검색요청 질의에 포함된 연산자 종류에 대응하여 패턴 매칭에 따른 레코드 단위의 로그데이터를 생성하고, 이를 검색 결과 로그정보로서 제공하도록 구성되되,
    검색요청 질의에 OR 연산자가 포함되면,
    검색 쓰레드는 호출된 로우단위 로그데이터에서 검색요청 질의에 포함된 모든 검색대상 키워드를 검색하는 단계와,
    검색된 모든 키워드에 대해 해당 키워드를 포함하는 레코드 시작위치를 산출하는 단계,
    패턴 매칭을 통해 산출된 레코드 시작위치에서 중복 산출된 레코드 시작위치를 제거하는 단계 및,
    중복 레코드 시작위치가 제거된 레코드 시작위치를 근거로 검색 결과 레코드를 생성하는 단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법.
  6. 제4항에 있어서,
    상기 데이터베이스 서버는 검색요청 질의에 포함된 연산자 종류에 대응하여 패턴 매칭에 따른 레코드 단위의 로그데이터를 생성하고, 이를 검색 결과 로그정보로서 제공하도록 구성되되,
    검색요청 질의에 AND 연산자가 포함되면,
    검색 쓰레드는 로우단위 로그데이터에서 검색요청 질의에 포함된 첫번째 검색대상 키워드를 검색하는 단계와,
    검색된 첫 번째 검색대상 키워드를 포함하는 레코드 시작위치를 산출하는 단계,
    패턴 매칭을 통해 산출된 레코드 시작위치의 레코드들을 대상으로 차순위 검색대상 키워드를 검색하고, 이에 대해 레코드 시작위치를 산출하는 동작을 마지막 검색대상 키워드까지 순차로 수행하는 단계 및,
    마지막 검색대상 키워드에 대해 최종적으로 산출된 레코드 시작위치를 근거로 검색 결과 레코드를 생성하는 단계를 포함하여 구성되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법.
  7. 제5항 또는 제6항에 있어서,
    상기 검색요청 질의는 패턴 매칭을 위한 전용 SQL 구조로서,
    INSERT INTO 질의와, MATCHING_TABLE 질의 및, 연산자 종류 질의를 포함하여 구성되고,
    INSERT INTO 질의에 대해서는 매개변수로서 결과 테이블명이 설정되며,
    MATCHING_TABLE 질의에 대해서는 매개변수로서 로그데이터 테이블명과, 로그파일명, 로우 구분자, 컬럼 구분자 및, 로그데이터 테이블의 컬럼명이 설정되고,
    OR 연산자 및 AND 연산자를 포함하는 연산자 중 검색조건에 대응되는 하나의 연산자 종류에 대해서는 매개변수로서 적어도 하나 이상의 키워드가 설정되는 것을 특징으로 하는 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색방법.
PCT/KR2017/003328 2017-03-28 2017-03-28 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법 WO2018182060A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170039027A KR101892067B1 (ko) 2017-03-28 2017-03-28 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법
KR10-2017-0039027 2017-03-28

Publications (1)

Publication Number Publication Date
WO2018182060A1 true WO2018182060A1 (ko) 2018-10-04

Family

ID=63455115

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/003328 WO2018182060A1 (ko) 2017-03-28 2017-03-28 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법

Country Status (2)

Country Link
KR (1) KR101892067B1 (ko)
WO (1) WO2018182060A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110532347A (zh) * 2019-09-02 2019-12-03 北京博睿宏远数据科技股份有限公司 一种日志数据处理方法、装置、设备和存储介质
CN112734360A (zh) * 2020-12-28 2021-04-30 深圳市瞬点科技有限公司 端到端的业务流程管理方法、装置、设备及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102132877B1 (ko) * 2019-01-25 2020-07-10 주식회사 리얼타임테크 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법
CN111767451B (zh) * 2020-01-15 2024-04-16 北京沃东天骏信息技术有限公司 一种搜索方法、电子设备与计算机可读存储介质
CN113779058B (zh) * 2020-10-16 2024-06-14 北京京东振世信息技术有限公司 获取业务数据的方法、装置、设备和计算机可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243618A1 (en) * 2003-05-30 2004-12-02 Oracle International Corp. Methods and systems for auto-partitioning of schema objects
US20070078872A1 (en) * 2005-09-30 2007-04-05 Ronen Cohen Apparatus and method for parsing unstructured data
US20130246437A1 (en) * 2010-11-05 2013-09-19 Apple Inc. Extended database search
US20150205885A1 (en) * 2014-01-20 2015-07-23 Alibaba Group Holding Limited CREATING NoSQL DATABASE INDEX FOR SEMI-STRUCTURED DATA
KR20150114965A (ko) * 2013-01-31 2015-10-13 페이스북, 인크. 낮은 지연속도 데이터 액세스를 위한 데이터 스트림의 분할

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8306967B2 (en) * 2007-10-02 2012-11-06 Loglogic, Inc. Searching for associated events in log data
KR101539072B1 (ko) 2010-12-20 2015-07-23 네이버비즈니스플랫폼 주식회사 게임 서비스를 위한 로그 데이터를 효율적으로 저장할 수 있는 로그 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR101458979B1 (ko) 2012-05-31 2014-11-10 에스코어 주식회사 라이프 로그 데이터 저장 방법 및 표시 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243618A1 (en) * 2003-05-30 2004-12-02 Oracle International Corp. Methods and systems for auto-partitioning of schema objects
US20070078872A1 (en) * 2005-09-30 2007-04-05 Ronen Cohen Apparatus and method for parsing unstructured data
US20130246437A1 (en) * 2010-11-05 2013-09-19 Apple Inc. Extended database search
KR20150114965A (ko) * 2013-01-31 2015-10-13 페이스북, 인크. 낮은 지연속도 데이터 액세스를 위한 데이터 스트림의 분할
US20150205885A1 (en) * 2014-01-20 2015-07-23 Alibaba Group Holding Limited CREATING NoSQL DATABASE INDEX FOR SEMI-STRUCTURED DATA

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110532347A (zh) * 2019-09-02 2019-12-03 北京博睿宏远数据科技股份有限公司 一种日志数据处理方法、装置、设备和存储介质
CN110532347B (zh) * 2019-09-02 2023-12-22 北京博睿宏远数据科技股份有限公司 一种日志数据处理方法、装置、设备和存储介质
CN112734360A (zh) * 2020-12-28 2021-04-30 深圳市瞬点科技有限公司 端到端的业务流程管理方法、装置、设备及存储介质
CN112734360B (zh) * 2020-12-28 2024-04-26 深圳市瞬点科技有限公司 端到端的业务流程管理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
KR101892067B1 (ko) 2018-08-27

Similar Documents

Publication Publication Date Title
WO2018182060A1 (ko) 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법
WO2021107211A1 (ko) 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템
CN107784102A (zh) 一种基于Oracle数据库的数据差异比较方法
WO2019156309A1 (ko) 플래시 저장장치의 내부 병렬성을 이용하는 키 값 기반의 데이터 액세스 장치 및 방법
CN107783985B (zh) 一种分布式数据库查询方法、装置及管理系统
WO2010011026A2 (ko) 이미지를 이용한 검색 시스템
WO2010120101A2 (ko) 역 벡터 공간 모델을 이용한 키워드 추천방법 및 그 장치
CN106294352B (zh) 一种文件处理方法、装置和文件系统
US5613110A (en) Indexing method and apparatus facilitating a binary search of digital data
WO2010005261A2 (ko) 데이터 검색을 위한 파일 생성 방법 및 데이터 파일의 검색방법 그리고 데이터 파일 검색을 위한 데이터베이스 관리 시스템
WO2012108623A1 (ko) 이미지 데이터베이스에 신규 이미지 및 이에 대한 정보를 추가하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
CN113190687B (zh) 知识图谱的确定方法、装置、计算机设备及存储介质
CN101158981A (zh) 一种对下载资源进行分类的方法、系统和装置
WO2016117739A1 (ko) 인-메모리 데이터베이스 기반의 데이터 관리 시스템 및 그 방법
WO2022107994A1 (ko) 빅데이터 증강분석 프로파일링 시스템
CN117591532A (zh) 一种分布式能源系统的海量数据管理系统及其应用方法
CN111045994A (zh) 一种基于kv数据库的文件分类检索方法及系统
WO2012030049A2 (ko) 동적 임계값이 적용된 유사문서 분류화 장치 및 방법
WO2015133774A1 (ko) 특허 분석 시스템 및 방법과 이를 실행하기 위한 프로그램이 기록된 기록매체
WO2019112223A1 (ko) 전자 문서 검색 방법 및 그 서버
WO2015178554A1 (ko) 압축 방식을 이용한 데이터 소스 관리 장치 및 방법
KR102132877B1 (ko) 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법
KR20000049333A (ko) 지능형 인터넷 쇼핑몰 상품비교검색엔진
JPH05324436A (ja) 知的データ検索方式
KR102157336B1 (ko) 데이터베이스 관리시스템에서 json 데이터 저장 및 검색 방법

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: 17903466

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: 17903466

Country of ref document: EP

Kind code of ref document: A1