KR20140012377A - Method of forming index file, method of searching data and system for managing data using dictionary index file, recoding medium - Google Patents
Method of forming index file, method of searching data and system for managing data using dictionary index file, recoding medium Download PDFInfo
- Publication number
- KR20140012377A KR20140012377A KR1020120079063A KR20120079063A KR20140012377A KR 20140012377 A KR20140012377 A KR 20140012377A KR 1020120079063 A KR1020120079063 A KR 1020120079063A KR 20120079063 A KR20120079063 A KR 20120079063A KR 20140012377 A KR20140012377 A KR 20140012377A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- file
- index
- index file
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 사전 인덱스 파일에 있는 데이터 엔트리의 갯수를 적게 함으로써 1차 인덱스 파일 및 데이터 파일의 검색 횟수를 대폭 감소시켜 검색하고자 하는 데이터의 검색시간을 단축할 수 있는 효과가 있다. 이를 위해 특히, 복수의 필드에 각 필드값들이 채워진 데이터를 수집되는 순서에 따라 테이블 형태로 정렬하면서, 정렬된 상기 데이터에 데이터 주소값을 부가하여 저장하는 데이터 파일 생성단계; 복수의 필드 중 선택된 어느 하나의 필드인 키(Key)에 대해 동일한 키값을 갖는 그룹별로 정렬하면서, 정렬되는 순서에 따라 키값들에 인덱스 주소값을 부가하여 저장하는 1차 인덱스 파일 생성단계; 및 1차 인덱스 파일의 키값들을 각 키값별로 유니크(unique)하게 정렬하면서, 인덱스 주소값의 범위를 부가하여 저장하는 사전(dictionary) 인덱스 파일 생성단계;를 포함하는 것을 특징으로 하는 인덱스 파일 생성방법이 개시된다.According to the present invention, the number of data entries in the dictionary index file is reduced, which greatly reduces the number of searches of the primary index file and the data file, thereby shortening the search time of the data to be searched. To this end, in particular, a data file generation step of adding data address values to the sorted data and storing the data in which the field values are filled in the plurality of fields in a table form according to the collection order; A primary index file generation step of sorting by a group having the same key value with respect to a key (Key), which is one of a plurality of fields, and adding and storing index address values to the key values according to the sorting order; And a dictionary index file generating step of adding and storing a range of index address values while uniquely aligning key values of the primary index file by each key value. Is initiated.
Description
본 발명은 인덱스 파일 생성방법, 사전 인덱스 파일을 이용한 데이터 검색 방법 및 데이터 관리 시스템, 기록매체에 관한 것이다. 보다 상세하게는 사전 인덱스 파일을 이용하여 데이터를 빠르게 검색할 수 있는 인덱스 파일 생성방법, 사전 인덱스 파일을 이용한 데이터 검색 방법 및 데이터 관리 시스템, 기록매체에 관한 것이다.
The present invention relates to an index file generation method, a data retrieval method using a dictionary index file, a data management system, and a recording medium. More specifically, the present invention relates to an index file generation method for quickly searching data using a dictionary index file, a data retrieval method using a dictionary index file, a data management system, and a recording medium.
데이터 검색방법의 종류로는 i) 테이블에 저장되어 있는 데이터의 처음부터 마지막까지를 한 행씩 읽어서 원하는 데이터를 검색하는 방법(full table scan), ii) 테이블에 있는 특정 컬럼에 대해 인덱스를 만든 후 데이터를 검색시 이용하는 방법(index scan), iii) 0과 1의 값으로 인덱스를 구성하여 검색하는 방법(bitmap index scan), iv) 2개 이상의 조인된 테이블을 같은 블록 구조에 저장시키는 방법(index cluster scan), v) 해시 알고리즘을 이용해서 대용량 테이블에서 하나의 행을 검색할 때 매우 효과적인 방법(hash cluster scan) 등이 있다.Types of data retrieval include: i) reading the data from the beginning to the end of the data stored in the table one by one (full table scan), ii) creating an index for a specific column in the table, and then Method for index search (index scan), iii) a method of constructing an index with values of 0 and 1 (bitmap index scan), iv) a method of storing two or more joined tables in the same block structure (index cluster) scan), v) A very effective way to retrieve a row from a large table using a hash algorithm (hash cluster scan).
한편, 인덱스를 이용한 검색방법과 관련된 종래기술로 최적화된 인덱스 검색 방법 및 장치(공개번호 10-2008-0046905)가 있다. 종래기술은 소정의 인덱스에서 제1 키 값에 대응하는 제1 필드를 검색하는 단계와 소정의 검색 요청이 입력되는 경우 검색된 제1 필드를 기준으로 하여 인덱스에서 검색 요청에 대응하는 레벨의 제2 필드를 검색하는 단계 및 검색된 제2 필드에 대응하는 식별자를 추출하는 단계를 포함하여 구성되고 있다. 종래기술은 동일 인덱스를 이용하여 제1 키 값에 대응하는 제1 필드 및 제2 필드를 검색하여 식별자를 추출하고 컨텐츠의 메타 데이터 또는 컨텐츠를 제공하는 기술에 대한 것이다. On the other hand, there is a conventional index search method and apparatus related to the search method using the index (Publication No. 10-2008-0046905). The prior art searches for a first field corresponding to a first key value at a predetermined index, and a second field at a level corresponding to a search request at an index based on the searched first field when a predetermined search request is input. And extracting an identifier corresponding to the searched second field. The prior art relates to a technique of extracting an identifier by searching for a first field and a second field corresponding to a first key value using the same index, and providing metadata or content of the content.
인덱스는 데이터의 검색 속도 개선을 위해 테이블 로우(row)를 동일한 경로로 식별가능하도록 별도로 구조화한 데이터 객체를 말한다. 대량의 데이터에서는 인덱스가 있어야만 데이터를 빠른 시간에 검색할 수가 있다. 데이터 검색에 인덱스를 이용하는 경우에는 검색의 속도를 향상시킬 수 있는 장점이 있고, 시스템의 부하가 줄어들면서 결국 시스템의 전체 성능이 향상되는 장점이 있는 반면에, 인덱스를 생성하는 데 시간이 많이 소요될 수 있으며, 인덱스가 데이터베이스 공간을 차지해서 추가적인 공간이 필요해지는 단점이 있을 수 있다.An index refers to a data object that is structured separately so that table rows can be identified by the same path to improve data retrieval speed. For large amounts of data, an index can be used to retrieve the data quickly. Using indexes for data retrieval has the advantage of speeding up retrieval, reducing the load on the system and ultimately improving the overall performance of the system, while creating indexes can be time consuming. In addition, the index may take up database space and additional space may be required.
축적된 데이터의 갯수가 수없이 많은 경우, 사용자가 검색하고자 하는 키값과 관련된 데이터를 찾기 위해서 컴퓨터는 각 데이터가 저장되어 있는 주소(또는 위치)를 일일이 들어가 봐야 하므로 검색결과를 얻는데 시간 지연이 생길 수 밖에 없다. 아울러, 컴퓨터가 특정 키값과 관련된 데이터를 검색할 때 데이터 파일의 시작점부터 순차적으로 검색하지 않는 경우(즉, 데이터 파일의 중간에서부터 검색하는 경우)에, 컴퓨터는 검색시작 지점의 포워드 방향(forward)으로 검색을 진행하므로 백워드(backward) 방향으로의 검색을 진행하게 하는 것은 상당한 어려움이 따른다. 만약, 백워드 방향에 있는 데이터들에 대해 검색을 하려면 컴퓨터로 하여금 백워드 방향에 있는 데이터의 임의의 지점부터 포워드 방향으로 다시 검색을 진행시켜야 하는 번거로움이 있다.
If the accumulated data count is numerous, the computer may have to enter the address (or location) where each data is stored in order to find the data related to the key value that the user wants to search. There may be a delay in obtaining the search result. There is nothing else. In addition, if the computer does not search sequentially from the beginning of the data file (i.e. from the middle of the data file) when searching for data related to a particular key value, the computer may forward in the forward direction of the search start point. Since the search proceeds, it becomes a considerable difficulty to make the search in the backward direction. If the search for the data in the backward direction is cumbersome, the computer has to perform the search in the forward direction again from any point of the data in the backward direction.
본 발명은 상기와 같은 문제점을 해결하기 위해 창출된 것으로서, 본 발명의 제 1목적은 컴퓨터 등이 모든 데이터 파일을 검색하지 않더라도 사전 인덱스 파일을 거쳐 특정 키값과 관련된 데이터의 위치만을 검색함으로써 데이터의 검색시간을 단축할 수 있는 인덱스 파일 생성방법, 사전 인덱스 파일을 이용한 데이터 검색 방법 및 데이터 관리 시스템, 기록매체를 제공하는 데 있다.The present invention was created to solve the above problems, and the first object of the present invention is to search for data by searching only the location of data related to a specific key value through a dictionary index file, even if a computer or the like does not search all data files. The present invention provides an index file generation method, a data retrieval method using a dictionary index file, a data management system, and a recording medium that can reduce time.
또한, 제 2목적은 사전 인덱스 파일의 크기를 작게 함으로써 사전 인덱스 파일 자체를 메모리로 관리할 수 있는 인덱스 파일 생성방법, 사전 인덱스 파일을 이용한 데이터 검색 방법 및 데이터 관리 시스템, 기록매체를 제공하는 데 있다.
In addition, a second object of the present invention is to provide an index file generation method capable of managing the dictionary index file itself in memory by reducing the size of the dictionary index file, a data retrieval method using a dictionary index file, a data management system, and a recording medium. .
상기와 같은 본 발명의 목적은 복수의 필드에 각 필드값들이 채워진 데이터를 수집되는 순서에 따라 테이블 형태로 정렬하면서, 정렬된 데이터에 데이터 주소값을 부가하여 저장하는 데이터 파일 생성단계; 복수의 필드 중 선택된 어느 하나의 필드인 키(Key)에 대해 동일한 키값을 갖는 그룹별로 정렬하면서, 정렬되는 순서에 따라 키값들에 인덱스 주소값을 부가하여 저장하는 1차 인덱스 파일 생성단계; 및 1차 인덱스 파일의 키값들을 각 키값별로 유니크(unique)하게 정렬하면서, 인덱스 주소값의 범위를 부가하여 저장하는 사전(dictionary) 인덱스 파일 생성단계;를 포함하는 것을 특징으로 하는 인덱스 파일 생성방법을 제공함으로써 달성될 있다.An object of the present invention as described above is a data file generation step of adding data address values to the sorted data and storing the sorted data in a table form according to the order in which the field values are filled in the plurality of fields; A primary index file generation step of sorting by a group having the same key value with respect to a key (Key), which is one of a plurality of fields, and adding and storing index address values to the key values according to the sorting order; And a dictionary index file generation step of adding and storing a range of index address values while uniquely sorting key values of the primary index file for each key value. By providing.
또한, 1차 인덱스 파일 생성단계에서, 1차 인덱스 파일에는 키값들과 함께 데이터 주소값이 함께 정렬되는 것을 특징으로 할 수 있다.In addition, in the primary index file generation step, the primary index file may be arranged such that data address values are arranged together with key values.
또한, 사전 인덱스 파일 생성단계에서, 사전 인덱스 파일의 각 키값에는 사전 인덱스 주소값이 부가되어 저장되는 것을 특징으로 할 수 있다.Further, in the dictionary index file generation step, a dictionary index address value may be added to and stored in each key value of the dictionary index file.
그리고, 인덱스 파일의 생성방법은, 추가적으로 수집된 데이터가 있는 경우, 데이터 파일, 1차 인덱스 파일 및 사전 인덱스 파일을 업데이트하면서, 데이터 파일의 데이터 주소값, 1차 인덱스 파일의 인덱스 주소값 및 사전 인덱스 파일의 인덱스 주소값의 범위를 수정하여 저장하는 것을 특징으로 할 수 있다.And, if there is additional data collected, the index file generation method updates the data file, the primary index file and the dictionary index file, while the data address value of the data file, the index address value of the primary index file, and the dictionary index. The range of index address values of the file may be modified and stored.
한편, 본 발명의 목적은 상기 생성된 인덱스 파일 중 사전 인덱스 파일을 검색하여 검색하고자 하는 키값의 인덱스 주소값 범위에 대한 정보를 획득하는 인덱스 주소값 범위 획득단계; 획득된 인덱스 주소값 범위에 포함되는 인덱스 주소값을 1차 인덱스 파일에서 검색하여 인덱스 주소값에 대응되는 데이터 주소값에 대한 정보를 획득하는 데이터 주소값 획득단계; 및 획득된 데이터 주소값을 데이터 파일에서 검색하여 데이터 주소값에 해당되는 데이터를 얻는 데이터 획득단계;를 포함하는 것을 특징으로 하는 사전 인덱스 파일을 이용한 데이터 검색방법을 제공함으로써 달성될 수 있다.Meanwhile, an object of the present invention provides an index address value range obtaining step of obtaining information on an index address value range of a key value to be searched by searching a dictionary index file among the generated index files; A data address value obtaining step of obtaining information on a data address value corresponding to the index address value by searching the index address value included in the obtained index address value range in the primary index file; And a data acquiring step of obtaining the data corresponding to the data address value by searching the obtained data address value in the data file.
또한, 인덱스 주소값 범위 획득단계는, 인덱스 주소값의 범위를 바탕으로 검색하고자 하는 키값을 포함하는 데이터 갯수를 산출하여 전체 데이터 갯수와 비교한 후, 1차 인덱스 파일을 거쳐 데이터 파일을 검색할지 또는 데이터 파일을 바로 검색할지를 결정하는 검색경로 결정단계;를 더 포함하는 것을 특징으로 할 수 있다.In the obtaining of the index address range, the number of data including the key value to be searched is calculated based on the range of index address values, compared with the total number of data, and then the data file is searched through the primary index file. And a search path determining step of determining whether to search the data file immediately.
그리고, 검색경로 결정단계는, 전체 데이터 갯수에 대한 키값을 포함하는 데이터 갯수의 비율이 미리 설정된 수(數)보다 작은 경우에 1차 인덱스 파일을 거쳐 데이터 파일을 검색하도록 결정하는 것을 특징으로 할 수 있다.The determining of the search path may include determining to search the data file via the primary index file when the ratio of the number of data including the key value to the total number of data is smaller than the preset number. have.
한편, 본 발명의 목적은 다른 카테고리로서, 복수의 필드에 각 필드값들이 채워진 데이터를 수집되는 순서에 따라 테이블 형태로 정렬하면서 정렬된 데이터에 데이터 주소값을 부가하여 데이터 파일을 생성하고, 복수의 필드 중 선택된 어느 하나의 필드인 키(Key)에 대해 동일한 키값을 갖는 그룹별로 정렬하면서 정렬되는 순서에 따라 키값들에 인덱스 주소값을 부가하여 1차 인덱스 파일을 생성하고, 1차 인덱스 파일의 키값들을 각 키값별로 유니크(unique)하게 정렬하면서 인덱스 주소값의 범위를 부가하여 사전 인덱스 파일을 생성하는 데이터 수집엔진; 사전 인덱스 파일을 검색하여 검색하고자 하는 키값의 인덱스 주소값 범위에 대한 정보를 획득하고, 획득된 인덱스 주소값 범위에 포함되는 인덱스 주소값을 1차 인덱스 파일에서 검색하여 인덱스 주소값에 대응되는 데이터 주소값에 대한 정보를 획득하고, 획득된 데이터 주소값을 데이터 파일에서 검색하여 데이터 주소값에 해당되는 데이터를 얻는 데이터 검색엔진; 및 데이터 파일, 1차 인덱스 파일 및 사전 인덱스 파일을 저장하는 데이터베이스부;를 포함하는 것을 특징으로 하는 사전 인덱스 파일을 이용한 데이터 관리 시스템을 제공함으로써 달성될 수 있다.Meanwhile, an object of the present invention is to create a data file by adding a data address value to the sorted data while sorting in a table form according to the collection order of data in which the field values are filled in a plurality of fields. The primary index file is created by adding index address values to the key values according to the sorting order by sorting by group having the same key value for any one selected field among the fields, and the key value of the primary index file. A data collection engine generating a dictionary index file by adding a range of index address values while uniquely arranging them by each key value; Search the dictionary index file to obtain information about the range of index address values of the key values to be searched, and search the index address values included in the obtained index address value ranges in the primary index file to correspond to the index address values. A data retrieval engine for acquiring information on the value and retrieving the acquired data address value from the data file to obtain data corresponding to the data address value; And a database unit for storing a data file, a primary index file, and a dictionary index file, which can be achieved by providing a data management system using a dictionary index file.
또한, 데이터 관리 시스템은, 데이터 수집엔진이 데이터 파일, 1차 인덱스 파일 및 사전 인덱스 파일을 생성하여 제1데이터베이스부 또는 제2데이터베이스부에 저장하도록 데이터 수집엔진을 제어하고, 데이터 검색엔진이 사전 인덱스 파일을 바탕으로 데이터 파일을 검색하도록 데이터 검색엔진을 제어하는 제어부;를 더 포함하는 것을 특징으로 할 수 있다.In addition, the data management system controls the data collection engine so that the data collection engine generates the data file, the primary index file, and the dictionary index file and stores the data file in the first database unit or the second database unit, and the data search engine pre-indexes the data collection engine. And a controller configured to control a data search engine to search for a data file based on the file.
또한, 데이터베이스부는, 데이터 파일 및 1차 인덱스 파일을 저장하고 있는 제1데이터베이스부; 및 사전 인덱스 파일을 저장하고 있는 제2데이터베이스부;를 포함하는 것을 특징으로 할 수 있다.The database unit may further include a first database unit which stores a data file and a primary index file; And a second database unit storing the dictionary index file.
그리고, 데이터 검색엔진은, 인덱스 주소값의 범위를 바탕으로 검색하고자 하는 키값을 포함하는 데이터 갯수를 산출하여 전체 데이터 갯수와 비교한 후, 1차 인덱스 파일을 거쳐 데이터 파일을 검색할지 또는 데이터 파일을 바로 검색할지를 결정하고, 전체 데이터 갯수에 대한 키값을 포함하는 데이터 갯수의 비율이 미리 설정된 수(數)보다 작은 경우에 1차 인덱스 파일을 거쳐 데이터 파일을 검색하도록 결정하는 것을 특징으로 할 수 있다.Then, the data search engine calculates the number of data including the key value to be searched based on the range of index address values and compares it with the total number of data, and then searches the data file via the primary index file or not. It may be characterized in that it is determined whether to search immediately, and if the ratio of the number of data including the key value to the total number of data is smaller than the preset number, the data file is searched through the primary index file.
한편, 본 발명의 목적은 상기 1차 인덱스 파일 및 상기 사전 인덱스 파일을 생성하고 검색할 수 있는 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체를 제공함으로써 달성될 수 있다.
Meanwhile, an object of the present invention can be achieved by providing a computer-readable recording medium having recorded thereon a program capable of generating and searching the primary index file and the dictionary index file.
본 발명은 사전 인덱스 파일에 있는 데이터 엔트리의 갯수를 적게 함으로써 1차 인덱스 파일 및 데이터 파일의 검색 횟수를 대폭 감소시켜 검색하고자 하는 키 값과 관련된 데이터의 검색시간을 단축시킬 수 있는 효과가 있다.According to the present invention, the number of data entries in the dictionary index file is reduced, which greatly reduces the number of searches of the primary index file and the data file, thereby shortening the search time of data related to the key value to be searched.
또한, 사전 인덱스 파일의 검색만으로 키값과 관련된 데이터의 갯수를 확인가능하게 하여 데이터의 검색 경로를 결정할 수 있게 함으로써 데이터의 검색시간을 단축할 수 있는 효과가 있다.In addition, since the number of data related to the key value can be confirmed only by searching the dictionary index file, the search path of the data can be determined, thereby reducing the search time of the data.
그리고, 사전 인덱스 파일의 용량을 감소시켜 사전 인덱스 파일을 메모리로 관리할 수 있는 효과가 있다.
In addition, it is possible to manage the dictionary index file in memory by reducing the capacity of the dictionary index file.
도 1은 본 발명인 인덱스 파일 생성방법에 의해 생성가능한 인덱스 파일의 종류를 개략적으로 나타낸 도면,
도 2는 본 발명인 인덱스 파일 생성방법을 설명하기 위한 도면,
도 3은 본 발명인 인덱스 파일 생성방법에서 추가 데이터가 삽입되는 과정을 설명하기 위한 도면,
도 4는 본 발명인 사전 인덱스 파일을 이용한 데이터 검색 방법을 설명하기 위한 도면,
도 5는 본 발명인 사전 인덱스 파일을 이용한 데이터 관리 시스템의 구성도이다.1 is a view schematically showing the types of index files that can be generated by the method of generating an index file according to the present invention;
2 is a view for explaining a method for generating an index file according to the present invention;
3 is a view for explaining a process of inserting additional data in the index file generation method of the present invention;
4 is a view for explaining a data retrieval method using the inventor index file;
5 is a block diagram of a data management system using the dictionary index file of the present invention.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 도면들 중 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 또한, 하기에서 본 발명을 설명함에 있어, 관련된 공지기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the same components of the drawings are denoted by the same reference numerals and signs as possible even if they are shown on different drawings. In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
한편, 본 발명에서 데이터 파일, 1차 인덱스 파일 및 사전 인덱스 파일의 생성에 이용되는 데이터는 복수의 필드로 구성되어 테이블 형태로 작성될 수 있는 모든 데이터가 해당될 수 있다. 구체적으로는, 로그 파일의 작성에 이용되는 로그 데이터가 대표적일 수 있으며, 그 밖에 고객 정보를 담고 있는 데이터(이름, 전화번호, 주소, 이메일 주소, 근무처, 직급 등의 필드 포함), 회사 내부 임직원들에 대한 정보를 담고 있는 데이터(이름, 부처, 직급, 주소, 연락처, 급여 등의 필드 포함), 도서관이나 서점 등이 보유한 책에 대한 정보를 담고 있는 데이터(저자, 발행년도, 분류코드, 출판사, 등의 필드 포함) 등의 다양한 데이터들이 해당될 수 있다. 그러나, 아래에서는 설명의 편의를 위해 컴퓨터 등의 로그 데이터를 구체적인 예로 들면서 설명하기로 한다. Meanwhile, in the present invention, the data used for generating the data file, the primary index file, and the dictionary index file may correspond to all data that can be created in a table form with a plurality of fields. Specifically, log data used to create a log file may be representative, other data containing customer information (including fields such as name, phone number, address, email address, place of work, position, etc.), and employees of the company Data (including fields such as name, department, position, address, contact, salary, etc.), and data containing information about books held by the library or bookstore (author, year of publication, classification code, publisher). Various data, such as fields, and the like, may be used. However, the following description will be given taking log data such as a computer as a specific example for convenience of description.
또한, 본 발명에서 용어 키(Key)는 데이터를 구성하는 복수의 필드 중 1차 인덱스 파일이나 사전 인덱스 파일을 작성하기 위해 선택된 특정 필드를 의미하고, 키값은 키에 대한 구체적인 데이터값을 의미한다.
In addition, in the present invention, the term Key refers to a specific field selected to create a primary index file or a dictionary index file among a plurality of fields constituting data, and the key value refers to a specific data value for the key.
<인덱스 파일 생성방법><How to create index file>
도 1은 본 발명인 인덱스 파일 생성방법에 의해 생성가능한 인덱스 파일의 종류를 로그 데이터를 예로 들면서 설명하기 위한 도면이다. 도 1의 상단에 도시되어 있는 로그 데이터의 로그 형식은 시간, 소스 IP(Source IP), 타켓 IP(Target IP), 소스 포트(Source port), 타켓 포트(Target port), 액션(Action) 및 규칙 번호(Rule No) 등의 다양한 필드로 구성되어 있다. 또한, 도 1의 우측 하단에 있는 표는 로그 데이터의 로그 형식에 맞추어 임의적으로 구성된 데이터 파일이고, 액션은 허용 또는 부인의 로그 정보를 나타내지만, 도 1에서는 허용(Allow)만이 나타내어지고 있다. 본 발명인 인덱스 파일 생성방법에서는 로그 데이터의 각 필드를 바탕으로 다양한 1차 인덱스 파일, 사전 인덱스 파일이 생성될 수 있음을 알 수 있다. 1 is a diagram for explaining the types of index files that can be generated by the method of generating an index file according to the present invention, taking log data as an example. The log format of the log data shown at the top of FIG. 1 is time, source IP, target IP, source port, target port, action, and rule. It consists of various fields such as number (Rule No). In addition, the table at the lower right of FIG. 1 is a data file arbitrarily configured in accordance with the log format of log data, and the action shows log information of allow or disallow, but only Allow is shown in FIG. In the index file generating method of the present invention, it can be seen that various primary index files and dictionary index files can be generated based on each field of log data.
예를 들어, 도 1에 도시된 바와 같이, 로그 데이터에서 소스 IP 필드만을 추출하여 1차 인덱스 파일 및 사전 인덱스 파일 쌍을 생성하거나(인덱스 #1), 타켓 IP 필드만을 추출하여 1차 인덱스 파일 및 사전 인덱스 파일 쌍을 생성하거나(인덱스 #2), 소스 포트만을 추출하여 1차 인덱스 파일 및 사전 인덱스 파일 쌍을 생성하거나(인덱스 #3) 또는 타켓 포트만을 추출하여 1차 인덱스 파일 및 사전 인덱스 파일 쌍을 생성할 수 있다(인덱스 #4). 도 2는 본 발명인 인덱스 파일 생성방법을 설명하기 위한 도면이다. 이하에서는 도 2를 참조하여 인덱스 파일 생성방법에 대해 상세히 설명하되, 로그 데이터를 구체적인 예시로 하여 설명한다. 한편, 도 2에서는 설명의 편의를 위해 로그 데이터의 필드에 포함되어 있는 필드값들을 aaa, 1111, abcd, 가나다라 등의 한글이나, 영문, 숫자 등으로 간략히 표시하여 나타내었다.
For example, as shown in FIG. 1, only the source IP field is extracted from log data to generate a primary index file and a dictionary index file pair (index # 1), or only a target IP field is extracted to extract a primary index file and Create a primary index file pair (index # 2), extract only the source port to create a primary index file and a dictionary index file pair (index # 3), or extract only the target port to create a primary index file and a dictionary index file pair. Can be generated (index # 4). 2 is a view for explaining a method for generating an index file according to the present invention. Hereinafter, a method of generating an index file will be described in detail with reference to FIG. 2, and log data will be described with specific examples. In FIG. 2, for convenience of description, field values included in fields of log data are briefly displayed in Korean, English, numbers, etc., such as aaa, 1111, abcd, and Kanada.
1. 데이터 파일 생성단계(1. Data file creation step ( S110S110 ))
데이터 파일 생성단계(S110)는 데이터 수집엔진(100)이 복수의 필드에 각 필드값들이 채워진 데이터를 수집되는 순서에 따라 테이블 형태로 정렬하면서, 정렬된 데이터에 데이터 주소값을 부가하여 저장하는 단계를 말한다. 도 2에서는 데이터 파일로 로그 파일을 예로 들어 나타내었다. 즉, 로그파일에는 시간, 소스 IP, 타켓 IP, 소스 포트, 타켓 포트, 액션(허용 또는 거부의 로그 정보) 및 규칙 번호 등의 필드가 포함되어 있다. The data file generating step (S110) is a step in which the
예를 들어, 도 2에서의 데이터 파일이 10억 개의 로그 데이터를 포함하고 로그 데이터의 A를 소스 IP 필드라고 가정했을 때, A에 포함되어 있는 각 필드값들(aaa, aab, aaa, aab, aaa, aab....)에 각각 대응되는 데이터 주소값들(0, 50, 100, 150, 200, 250....)이 데이터 수집엔진(100)에 의해 부가되어 데이터 파일이 생성된다. 이때 로그 데이터는 수집되는 순서에 의해 정렬되면서 데이터 파일이 생성된다.
For example, assuming that the data file in FIG. 2 contains 1 billion log data and A of the log data is the source IP field, each field value included in A (aaa, aab, aaa, aab, Data address values (0, 50, 100, 150, 200, 250, ...) corresponding to aaa, aab ...., respectively, are added by the
2. 1차 인덱스 파일 생성단계(2. Create the primary index file ( S120S120 ))
1차 인덱스 파일 생성단계(S120)는 데이터 수집엔진(100)이 데이터 파일 생성단계(S110)에서 생성된 데이터 파일을 바탕으로 1차 인덱스 파일을 생성하는 단계이다. 구체적으로, 데이터 파일에 포함되어 있는 복수의 필드 중 선택된 어느 하나의 필드인 키(Key)에 대해 동일한 키값을 갖는 그룹별로 정렬하면서, 정렬되는 순서에 따라 키값들에 인덱스 주소값을 부가하여 1차 인덱스 파일을 생성하는 단계이다. 즉, 1차 인덱스 파일에는 키값들과 함께 데이터 주소값이 함께 정렬된다. The primary index file generation step S120 is a step in which the
로그 데이터를 구체적 예로 한 도 2를 참조하면, 1차 인덱스 파일 생성단계(S120)에서는 데이터 파일 생성단계(S110)에서 생성된 데이터 파일을 바탕으로 A에 포함되어 있는 각 키값들을 B에서와 같이 동일한 키값을 갖는 그룹별로 정렬하여 1차 인덱스 파일을 생성한다. 이때, 1차 인덱스 파일을 생성하면서 각 키(Key) 값들에 대해 인덱스 주소값을 부가한다. 즉, B에 포함된 키값 aaa에 대해서는 0 ~ 70까지의 인덱스 주소값이, 키값 aab에 대해서는 80 ~ 140까지의 인덱스 주소값이, 키값 aac에 대해서는 150 ~ 180까지의 인덱스 주소값이 부가되었다.
Referring to FIG. 2 as a specific example of log data, in the primary index file generation step S120, each key value included in A is the same as in B based on the data file generated in the data file generation step S110. The primary index file is created by sorting by group having key values. At this time, an index address value is added to each key value while generating a primary index file. That is, an index address value of 0 to 70 is added to the key value aaa included in B, an index address value of 80 to 140 is added to the key value aab, and an index address value of 150 to 180 is added to the key value aac.
3. 사전 인덱스 파일 생성단계(3. Pre-index file creation step ( S130S130 ))
사전 인덱스 파일 생성단계(S130)는 데이터 수집엔진(100)이 1차 인덱스 파일 생성단계(S120)에서 생성된 1차 인덱스 파일을 바탕으로 1차 인덱스 파일의 키값들을 각 키값별로 유니크(unique)하게 정렬하면서, 인덱스 주소값의 범위를 부가하여 사전 인덱스 파일을 생성하는 단계이다. 즉, 사전 인덱스 파일 생성단계(S130)에서는 1차 인덱스 파일 생성단계(S120)에서 생성된 1차 인덱스 파일을 바탕으로 중복되는 키(Key)값에 대한 인덱스 주소값의 범위를 부가하여 사전 인덱스 파일을 생성한다. 한편, 사전 인덱스 파일의 각 키값에는 사전 인덱스 주소값이 부가되어 저장된다.In the pre-index file generation step S130, the
로그 데이터를 구체적 예로 한 도 2를 참조하면, 사전 인덱스 파일 생성단계(S130)에서는 1차 인덱스 파일을 바탕으로 사전 인덱스 파일을 생성한다. 사전 인덱스 파일은 각 키값(aaa, aab, aac....)을 유니크(ubique)하게 하나씩 포함하며, 1차 인덱스 파일에서 중복되는 각 키값(aaa, aab, aac....)에 대한 주소값의 범위를 포함한다. 여기서, 각 키(Key)값에 대한 주소값의 범위는 시작(From) 인덱스 주소값(C)과 마지막(To) 인덱스 주소값(D)으로 나타내어진다. 즉, 유니크한 키값 aaa에 대해서는 시작 인덱스 주소값이 0이고 마지막 인덱스 주소값이 70으로, 유니크한 키값 aab에 대해서는 시작 인덱스 주소값이 80이고 마지막 인덱스 주소값이 140으로, 또 다른 유니크한 키값 aac에 대해서는 시작 인덱스 주소값이 150이고 마지막 인덱스 주소값이 180으로 부가되어 저장된다.
Referring to FIG. 2, which uses log data as an example, the dictionary index file generation step (S130) generates a dictionary index file based on the primary index file. The dictionary index file contains one uniquely each key value (aaa, aab, aac ....) and an address for each duplicate key value (aaa, aab, aac ....) in the primary index file. Contains a range of values. Here, the range of address values for each key value is represented by a From index address value C and a To index address value D. That is, for the unique key value aaa, the starting index address value is 0 and the last index address value is 70, for the unique key value aab, the starting index address value is 80, the last index address value is 140, and another unique key value aac For, the starting index address value is 150 and the last index address value is added as 180 and stored.
4. 추가 데이터 삽입단계(4. Insert additional data ( S140S140 ))
도 3은 본 발명인 인덱스 파일 생성방법에서 추가 데이터가 삽입되는 과정을 로그 데이터를 구체적인 예시로 하여 설명하기 위한 도면이다. 추가 데이터 삽입단계(S140)는 추가적으로 수집된 데이터가 있는 경우, 데이터 수집엔진(100)이 데이터 파일, 1차 인덱스 파일 및 사전 인덱스 파일을 업데이트하면서, 데이터 파일의 데이터 주소값, 1차 인덱스 파일의 인덱스 주소값 및 사전 인덱스 파일의 인덱스 주소값의 범위를 수정하여 저장하는 단계를 말한다.3 is a diagram illustrating a process of inserting additional data in a method of generating an index file according to the present invention with specific examples of log data. Additional data insertion step (S140) is, if there is additionally collected data, while the
로그 데이터를 구체적 예로 한 도 3을 참조하면, 데이터 주소값이 950으로 부가된 데이터가 데이터 파일의 마지막 부분에 추가된 경우(①), 데이터 파일의 필드(A)에 포함된 키값 aab를 1차 인덱스 파일의 정렬된 키값 aab의 맨 마지막 부분에 삽입되면서 인덱스 주소값이 수정된 1차 인덱스 파일이 저장되게 된다(②). 또한, 데이터 주소값이 950인 키값 aab가 1차 인덱스 파일에 삽입되면서, 키값 aab의 인덱스 주소값의 범위가 80 ~ 150으로 수정되고, 키값 aac의 인덱스 주소값의 범위가 160 ~ 190으로 수정되었다. 한편, 사전 인덱스 파일에도 1차 인덱스 파일의 수정내용인 키값 aab 및 키값 aac의 인덱스 주소값의 범위가 그대로 반영되어 저장되게 된다(③).
Referring to FIG. 3 using log data as an example, when data having a data address value of 950 is added at the end of the data file (1), the key value aab included in the field A of the data file is primary. The primary index file in which the index address value is modified is inserted into the last part of the sorted key value aab of the index file (②). In addition, as the key value aab having a data address value of 950 was inserted into the primary index file, the range of the index address value of the key value aab was modified to 80 to 150, and the range of the index address value of the key value aac was modified to 160 to 190. . Meanwhile, the range of the index address values of the key value aab and the key value aac, which are modifications of the primary index file, is also reflected and stored in the dictionary index file (③).
<데이터 검색 방법><Data retrieval method>
도 4는 본 발명인 사전 인덱스 파일을 이용한 데이터 검색 방법을 설명하기 위한 도면이다. 본 발명인 사전 인덱스 파일을 이용한 데이터 검색 방법은 아래와 같은 절차에 의해 이루어진다.
4 is a view for explaining a data retrieval method using the dictionary index file of the present invention. The data retrieval method using the inventor's dictionary index file is performed by the following procedure.
1. 인덱스 주소값 범위 획득단계(1. Obtaining an index address range S210S210 ))
인덱스 주소값 범위 획득단계(S210)는 데이터 검색엔진(200)이 사전 인덱스 파일을 검색하여 검색하고자 하는 키값의 인덱스 주소값 범위에 대한 정보를 획득하는 단계를 말한다. 한편, 인덱스 주소값 범위 획득단계(S210)는 인덱스 주소값의 범위를 바탕으로 검색하고자 하는 키값을 포함하는 데이터 갯수를 산출하여 전체 데이터 갯수와 비교한 후, 1차 인덱스 파일을 거쳐 데이터 파일을 검색할지 또는 데이터 파일을 바로 검색할지를 결정하는 검색경로 결정단계(S215)를 더 포함할 수 있다. 여기서, 전체 데이터 갯수에 대한 키값을 포함하는 데이터 갯수의 비율이 미리 설정된 수(數)보다 작은 경우에 1차 인덱스 파일을 거쳐 데이터 파일을 검색하도록 설정할 수 있다. 예를 들어, 전체 데이터 갯수에 대한 키값을 포함하는 데이터 갯수의 비율이 0.5보다 작은 경우에 1차 인덱스 파일을 거쳐 데이터 파일을 검색하도록 설정할 수 있으며, 이와는 달리 0.3이나 0.4 또는 그 밖의 수로 다양하게 설정될 수 있다. The index address value range obtaining step (S210) refers to a step in which the
로그 데이터를 구체적 예로 한 도 4를 참조하면, 키값 aab에 대한 데이터를 얻고자 하는 경우, 사전 인덱스 파일을 통해 키값 aab에 대한 인덱스 주소값의 범위인 80 ~ 150을 획득한다(①). 여기서, 키값 aab를 포함하는 데이터가 데이터 파일에 몇개 존재하는지를 일정한 수식에 의해 파악할 수 있으며, 구체적으로 (150-80)/10+1=8이라는 수식을 통해 키값 aab를 포함하는 데이터가 데이터 파일에 8개 존재한다는 사실을 확인할 수 있다. 만약, 전체 데이터 갯수가 10억 개라고 가정하고 전체 데이터 갯수에 대한 키값을 포함하는 데이터 갯수의 비율이 0.5보다 작은 경우에 1차 인덱스 파일을 거쳐 데이터 파일을 검색하도록 설정되어 있다면, 전체 데이터 갯수 10억 개에 대한 키값 aab를 포함하는 데이터의 갯수 8의 비율이 0.5보다 훨씬 작은 작으므로 데이터 검색엔진(200)은 사전 인덱스 파일 및 1차 인덱스 파일을 거쳐 데이터 파일에서 키값 aab를 포함하는 데이터를 검색하게 된다.
Referring to FIG. 4 using log data as an example, when data for key value aab is to be obtained, a range of index addresses 80 to 150 for key value aab is obtained through the dictionary index file (①). Here, it is possible to determine how many pieces of data including the key value aab exist in the data file by using a formula, and specifically, the data including the key value aab is stored in the data file through the formula (150-80) / 10 + 1 = 8. You can see that there are eight. If the total number of data is 1 billion and the ratio of the number of data including the key value to the total number of data is less than 0.5, if the data file is searched through the primary index file, the total number of
2. 데이터 2. Data 주소값Address value 획득단계( Acquisition stage ( S220S220 ))
데이터 주소값 획득단계(S210)는 데이터 검색엔진(200)이 인덱스 주소값 범위 획득단계(S210)에서 획득된 인덱스 주소값 범위에 포함되는 인덱스 주소값을 1차 인덱스 파일에서 검색하여 인덱스 주소값에 대응되는 데이터 주소값에 대한 정보를 획득하는 단계를 말한다. In the data address value obtaining step (S210), the
로그 데이터를 구체적 예로 한 도 4를 참조하면, 검색경로 결정단계(S215)를통해 1차 인덱스 파일을 거쳐 데이터 파일을 검색하는 경우, 1차 인덱스 파일 검색을 통해 검색하고자 하는 키값 aab에 대한 인덱스 주소값의 범위가 80 ~ 150인 것을 알아내고, 키값 aab에 대한 데이터 주소값들(50, 150, 250, 350, 450, 550, 650, 950)을 획득한다(②).
Referring to FIG. 4 using log data as an example, when searching a data file through a primary index file through a search path determining step (S215), an index address of a key value aab to be searched through a primary index file search The range of values is found to be 80 to 150, and data address values 50, 150, 250, 350, 450, 550, 650 and 950 for the key value aab are obtained (2).
3. 데이터 획득단계(3. Data Acquisition Step ( S230S230 ))
원시로그 데이터 추출단계(S230)는 데이터 검색엔진(200)이 데이터 주소값 획득단계(S220)를 통해 알아낸 데이터 주소값을 데이터 파일에서 검색하여 데이터 주소값에 해당되는 데이터를 얻는 단계를 말한다. The raw log data extraction step (S230) refers to a step in which the
로그 데이터를 구체적 예로 한 도 4를 참조하면, 키값 aab에 대한 데이터 주소값들이 50, 150, 250, 350, 450, 550, 650, 950인 것에 대해서만 데이터 파일에서 검색을 수행하여 그 데이터 주소값에 해당되는 데이터를 얻는다(③).
Referring to FIG. 4 using log data as an example, a search is performed on a data file only for data address values of key values aab of 50, 150, 250, 350, 450, 550, 650, and 950. Obtain the corresponding data (③).
<데이터 관리 시스템><Data Management System>
도 5는 본 발명인 사전 인덱스 파일을 이용한 데이터 관리 시스템(이하, '데이터 관리 시스템'이라 함)의 구성도이다. 도 5에 도시된 바와 같이, 본 발명인 사전 인덱스 파일을 이용한 데이터 관리 시스템은 데이터 수집엔진(100), 데이터 검색엔진(200), 제1데이터베이스부(310)와 제2데이터베이스부(320)를 포함하는 데이터베이스부(300) 및 제어부(400)를 포함하여 구성된다. 데이터 수집엔진(100)이 인덱스 파일을 생성하고, 데이터 검색엔진(200)이 데이터를 검색하는 방법에 대해서는 상기에서 이미 살펴보았으므로, 이와 중복되는 내용을 그 상세한 설명을 생략한다.
5 is a block diagram of a data management system (hereinafter, referred to as a data management system) using the inventor's dictionary index file. As shown in FIG. 5, the data management system using the dictionary index file according to the present invention includes a
데이터 수집엔진(100)은 복수의 필드에 각 필드값들이 채워진 데이터를 수집되는 순서에 따라 테이블 형태로 정렬하면서 정렬된 데이터에 데이터 주소값을 부가하여 데이터 파일을 생성한다. 또한, 복수의 필드 중 선택된 어느 하나의 필드인 키(Key)에 대해 동일한 키값을 갖는 그룹별로 정렬하면서 정렬되는 순서에 따라 키값들에 인덱스 주소값을 부가하여 1차 인덱스 파일을 생성한다. 그리고, 1차 인덱스 파일의 키값들을 각 키값별로 유니크(unique)하게 정렬하면서 인덱스 주소값의 범위를 부가하여 사전 인덱스 파일을 생성한다. 이때, 데이터 수집엔진(100)은 보안장치나 서버들로부터 데이터를 수집하여 1차 인덱스 파일 및 사전 인덱스 파일을 생성한다.
The
데이터 검색엔진(200)은 사전 인덱스 파일을 검색하여 검색하고자 하는 키값의 인덱스 주소값 범위에 대한 정보를 획득한다. 그리고, 획득된 인덱스 주소값 범위에 포함되는 인덱스 주소값을 1차 인덱스 파일에서 검색하여 인덱스 주소값에 대응되는 데이터 주소값에 대한 정보를 획득한다. 이후, 획득된 데이터 주소값을 데이터 파일에서 검색하여 데이터 주소값에 해당되는 데이터를 얻는다. 한편, 데이터 검색엔진(200)은 인덱스 주소값의 범위를 바탕으로 검색하고자 하는 키값을 포함하는 데이터 갯수를 산출하여 전체 데이터 갯수와 비교한 후, 1차 인덱스 파일을 거쳐 데이터 파일을 검색할지 또는 데이터 파일을 바로 검색할지를 결정할 수 있으며, 이때 전체 데이터 갯수에 대한 키값을 포함하는 데이터 갯수의 비율이 미리 설정된 수(數)보다 작은 경우에 1차 인덱스 파일을 거쳐 데이터 파일을 검색하도록 설정할 수도 있다.
The
데이터 수집엔진(100)에 의해 생성된 데이터 파일, 1차 인덱스 파일 및 사전 인덱스 파일은 데이터베이스부(300)에 저장된다. 구체적으로, 데이터 수집엔진(100)에 의해 생성된 데이터 파일 및 1차 인덱스 파일은 제1데이터베이스부(310)에 저장되고, 데이터 수집엔진(100)에 의해 생성된 사전 인덱스 파일은 제2데이터베이스부(320)에 저장된다.
The data file, the primary index file, and the dictionary index file generated by the
한편, 데이터 관리 시스템은 데이터 수집엔진(100)이 데이터 파일, 1차 인덱스 파일 및 사전 인덱스 파일을 생성하여 제1데이터베이스부(310) 또는 제2데이터베이스부(320)에 저장하도록 데이터 수집엔진(100)을 제어하고, 데이터 검색엔진(200)이 사전 인덱스 파일을 바탕으로 데이터 파일을 검색하도록 데이터 검색엔진(200)을 제어하는 제어부(400)를 더 포함할 수 있다.
In the meantime, the
또한, 데이터 관리 시스템은 사용자가 검색하고자 하는 특정 키값을 입력할 있는 입력부(미도시)를 더 포함할 수 있으며, 키보드, 마우스, 터치스크린 등 다양한 수단이 입력부로 사용될 수 있다. 입력부를 통해 검색하고자 하는 특정 키값의 입력은 각 필드를 바탕으로 작성된 인덱스 번호 중 어느 하나를 선택하고, 선택된 인덱스 번호의 사전 인덱스 파일에 있는 키값을 선택하는 것에 이루어질 수 있다. 예를 들어, 인덱스 #1, 인덱스 #2, 인덱스 #3, 인덱스 #4 중에서 인덱스 #1을 선택한 경우, 인덱스 #1의 사전 인덱스 파일에 있는 키값들(예를 들어, aaa, aab, aac) 중에서 하나를 선택하여 검색하고자 하는 키값를 입력할 수 있다. 한편, 인덱스 번호가 선택된 후에 사용자가 검색하고자 하는 키값을 직접 입력하는 방법에 의해 검색하고자 하는 키값을 선택할 수도 있다.
In addition, the data management system may further include an input unit (not shown) for inputting a specific key value to be searched by the user, and various means such as a keyboard, a mouse, and a touch screen may be used as the input unit. The input of a specific key value to be searched through the input unit may be performed by selecting any one of the index numbers created based on each field, and selecting a key value in the dictionary index file of the selected index number. For example, if
아울러, 데이터 관리 시스템은 데이터 검색엔진(200)이 검색한 데이터 내용을 출력할 수 있는 디스플레이부(미도시)를 더 포함할 수 있다. 이러한, 디스플레이부에는 터치 방식의 입력이 가능한 기능이 부가되어 입력부로서의 역할도 수행할 수도 있다.
In addition, the data management system may further include a display unit (not shown) capable of outputting data contents searched by the
이상에서 본 발명에 대한 기술 사상을 첨부 도면과 함께 서술하였지만, 이는 본 발명의 가장 양호한 일 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술 분야의 통상의 지식을 가진 자이면 누구나 본 발명의 기술 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.
While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. Further, it is obvious that various modifications and variations can be made without departing from the scope of the technical idea of the present invention by anyone having ordinary skill in the art.
100 : 데이터 수집엔진
200 : 데이터 검색엔진
300 : 데이터베이스부
310 : 제1데이터베이스부
320 : 제2데이터베이스부
400 : 제어부100: data collection engine
200: data search engine
300: database unit
310: first database portion
320: second database unit
400:
Claims (12)
상기 복수의 필드 중 선택된 어느 하나의 필드인 키(Key)에 대해 동일한 키값을 갖는 그룹별로 정렬하면서, 정렬되는 순서에 따라 상기 키값들에 인덱스 주소값을 부가하여 저장하는 1차 인덱스 파일 생성단계; 및
상기 1차 인덱스 파일의 상기 키값들을 각 키값별로 유니크(unique)하게 정렬하면서, 상기 인덱스 주소값의 범위를 부가하여 저장하는 사전(dictionary) 인덱스 파일 생성단계;를 포함하는 것을 특징으로 하는 인덱스 파일 생성방법.
A data file generation step of adding data address values to the sorted data and storing the data in which the field values are filled in the plurality of fields in a table form according to the collection order;
A primary index file generation step of adding index address values to and storing the key values according to the sorting order while sorting by group having the same key value with respect to a key which is one of the plurality of fields; And
A dictionary index file generation step of adding and storing a range of the index address value while uniquely sorting the key values of the primary index file for each key value. Way.
상기 1차 인덱스 파일 생성단계에서,
상기 1차 인덱스 파일에는 상기 키값들과 함께 상기 데이터 주소값이 함께 정렬되는 것을 특징으로 하는 인덱스 파일 생성방법.
The method of claim 1,
In the primary index file generation step,
And the data address values are arranged together with the key values in the primary index file.
상기 사전 인덱스 파일 생성단계에서,
상기 사전 인덱스 파일의 각 키값에는 사전 인덱스 주소값이 부가되어 저장되는 것을 특징으로 하는 인덱스 파일 생성방법.
The method of claim 1,
In the dictionary index file generation step,
And a dictionary index address value is added to each key value of the dictionary index file.
상기 인덱스 파일의 생성방법은,
추가적으로 수집된 데이터가 있는 경우, 상기 데이터 파일, 상기 1차 인덱스 파일 및 상기 사전 인덱스 파일을 업데이트하면서, 상기 데이터 파일의 상기 데이터 주소값, 상기 1차 인덱스 파일의 인덱스 주소값 및 상기 사전 인덱스 파일의 인덱스 주소값의 범위를 수정하여 저장하는 것을 특징으로 하는 인덱스 파일 생성방법.
The method of claim 1,
The method of generating the index file,
If there is additionally collected data, updating the data file, the primary index file and the dictionary index file, the data address value of the data file, the index address value of the primary index file and the dictionary index file An index file generation method comprising modifying and storing a range of index address values.
상기 획득된 인덱스 주소값 범위에 포함되는 상기 인덱스 주소값을 1차 인덱스 파일에서 검색하여 상기 인덱스 주소값에 대응되는 데이터 주소값에 대한 정보를 획득하는 데이터 주소값 획득단계; 및
상기 획득된 데이터 주소값을 데이터 파일에서 검색하여 상기 데이터 주소값에 해당되는 데이터를 얻는 데이터 획득단계;를 포함하는 것을 특징으로 하는 사전 인덱스 파일을 이용한 데이터 검색방법.
An index address value range obtaining step of obtaining information on an index address value range of a key value to be searched by searching a dictionary index file among the index files generated by any one of claims 1 to 4;
A data address value obtaining step of obtaining information on a data address value corresponding to the index address value by searching the index address value included in the obtained index address value range in a primary index file; And
And a data acquiring step of retrieving the acquired data address value from a data file to obtain data corresponding to the data address value.
상기 인덱스 주소값 범위 획득단계는,
상기 인덱스 주소값의 범위를 바탕으로 검색하고자 하는 키값을 포함하는 데이터 갯수를 산출하여 전체 데이터 갯수와 비교한 후, 상기 1차 인덱스 파일을 거쳐 상기 데이터 파일을 검색할지 또는 상기 데이터 파일을 바로 검색할지를 결정하는 검색경로 결정단계;를 더 포함하는 것을 특징으로 하는 사전 인덱스 파일을 이용한 데이터 검색방법.
6. The method of claim 5,
The index address value range obtaining step,
After calculating the number of data including the key value to be searched based on the range of the index address value and comparing it with the total number of data, whether to search the data file or the data file directly through the primary index file And a search path determining step of determining.
상기 검색경로 결정단계는,
상기 전체 데이터 갯수에 대한 상기 키값을 포함하는 데이터 갯수의 비율이 미리 설정된 수(數)보다 작은 경우에 상기 1차 인덱스 파일을 거쳐 상기 데이터 파일을 검색하도록 결정하는 것을 특징으로 하는 사전 인덱스 파일을 이용한 데이터 검색방법.
The method according to claim 6,
The search path determination step,
If the ratio of the number of data including the key value to the total number of data is less than a predetermined number, it is determined to search the data file via the primary index file, characterized in that How to retrieve data.
상기 사전 인덱스 파일을 검색하여 검색하고자 하는 키값의 인덱스 주소값 범위에 대한 정보를 획득하고, 상기 획득된 인덱스 주소값 범위에 포함되는 상기 인덱스 주소값을 1차 인덱스 파일에서 검색하여 상기 인덱스 주소값에 대응되는 데이터 주소값에 대한 정보를 획득하고, 상기 획득된 데이터 주소값을 데이터 파일에서 검색하여 상기 데이터 주소값에 해당되는 데이터를 얻는 데이터 검색엔진; 및
상기 데이터 파일, 상기 1차 인덱스 파일 및 상기 사전 인덱스 파일을 저장하는 데이터베이스부;를 포함하는 것을 특징으로 하는 사전 인덱스 파일을 이용한 데이터 관리 시스템.
A data file is created by adding data address values to the sorted data while sorting the data in which the field values are filled in the plurality of fields in a table form according to the collection order, and a key which is any one selected from the plurality of fields. The primary index file is created by adding index address values to the key values according to the sorting order by sorting the groups having the same key value with respect to (Key), and uniquely storing the key values of the primary index file for each key value. a data collection engine generating a dictionary index file by adding the range of the index address values while sorting uniquely;
Search the dictionary index file to obtain information about an index address value range of a key value to be searched, and search the index address value included in the obtained index address value range in a primary index file to provide the index address value. A data search engine that obtains information on a corresponding data address value, and retrieves the obtained data address value from a data file to obtain data corresponding to the data address value; And
And a database unit for storing the data file, the primary index file and the dictionary index file.
상기 데이터 관리 시스템은,
상기 데이터 수집엔진이 상기 데이터 파일, 상기 1차 인덱스 파일 및 상기 사전 인덱스 파일을 생성하여 상기 제1데이터베이스부 또는 상기 제2데이터베이스부에 저장하도록 상기 데이터 수집엔진을 제어하고,
상기 데이터 검색엔진이 상기 사전 인덱스 파일을 바탕으로 상기 데이터 파일을 검색하도록 상기 데이터 검색엔진을 제어하는 제어부;를 더 포함하는 것을 특징으로 하는 사전 인덱스 파일을 이용한 데이터 관리 시스템.
The method of claim 8,
The data management system comprises:
Control the data collection engine to generate the data file, the primary index file, and the dictionary index file and store the data file in the first database unit or the second database unit;
And a control unit which controls the data search engine to allow the data search engine to search the data file based on the dictionary index file.
상기 데이터베이스부는,
상기 데이터 파일 및 상기 1차 인덱스 파일을 저장하고 있는 제1데이터베이스부; 및
상기 사전 인덱스 파일을 저장하고 있는 제2데이터베이스부;를 포함하는 것을 특징으로 하는 사전 인덱스 파일을 이용한 데이터 관리 시스템.
The method of claim 8,
The database unit,
A first database unit for storing the data file and the primary index file; And
And a second database unit for storing the dictionary index file.
상기 데이터 검색엔진은,
상기 인덱스 주소값의 범위를 바탕으로 검색하고자 하는 키값을 포함하는 데이터 갯수를 산출하여 전체 데이터 갯수와 비교한 후, 상기 1차 인덱스 파일을 거쳐 상기 데이터 파일을 검색할지 또는 상기 데이터 파일을 바로 검색할지를 결정하고,
상기 전체 데이터 갯수에 대한 상기 키값을 포함하는 데이터 갯수의 비율이 미리 설정된 수(數)보다 작은 경우에 상기 1차 인덱스 파일을 거쳐 상기 데이터 파일을 검색하도록 결정하는 것을 특징으로 하는 사전 인덱스 파일을 이용한 데이터 관리 시스템.
The method of claim 8,
The data search engine,
After calculating the number of data including the key value to be searched based on the range of the index address value and comparing it with the total number of data, whether to search the data file or the data file directly through the primary index file Decide,
If the ratio of the number of data including the key value to the total number of data is less than a predetermined number, it is determined to search the data file via the primary index file, characterized in that Data management system.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020120079063A KR101358793B1 (en) | 2012-07-20 | 2012-07-20 | Method of forming index file, Method of searching data and System for managing data using dictionary index file, Recoding medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020120079063A KR101358793B1 (en) | 2012-07-20 | 2012-07-20 | Method of forming index file, Method of searching data and System for managing data using dictionary index file, Recoding medium |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20140012377A true KR20140012377A (en) | 2014-02-03 |
| KR101358793B1 KR101358793B1 (en) | 2014-02-10 |
Family
ID=50263306
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020120079063A Active KR101358793B1 (en) | 2012-07-20 | 2012-07-20 | Method of forming index file, Method of searching data and System for managing data using dictionary index file, Recoding medium |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR101358793B1 (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101628097B1 (en) * | 2014-12-31 | 2016-06-09 | 주식회사 시큐아이 | System and method for managing database |
| CN106326429A (en) * | 2016-08-25 | 2017-01-11 | 武汉光谷信息技术股份有限公司 | Hbase second-level query scheme based on solr |
| CN104820693B (en) * | 2015-04-28 | 2018-07-24 | 广东小天才科技有限公司 | Data searching method and device |
| CN110471888A (en) * | 2018-05-09 | 2019-11-19 | 株式会社日立制作所 | A kind of method, apparatus of automatic data collection, medium, equipment and system |
| CN111241108A (en) * | 2020-01-16 | 2020-06-05 | 北京百度网讯科技有限公司 | Indexing method, device, electronic device and medium based on key-value pair KV system |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2812357B2 (en) * | 1995-03-08 | 1998-10-22 | 日本電気株式会社 | Database search system |
| JP3318834B2 (en) * | 1999-07-30 | 2002-08-26 | 三菱電機株式会社 | Data file system and data retrieval method |
| KR100509952B1 (en) | 2003-03-10 | 2005-08-25 | 한국인포서비스 주식회사 | Telephone number search system and method with group database |
| KR20110066344A (en) * | 2009-12-11 | 2011-06-17 | 한국전자통신연구원 | Multiple Indexing Device and Method for Large-scale Evidence Images in Digital Forensic System |
-
2012
- 2012-07-20 KR KR1020120079063A patent/KR101358793B1/en active Active
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101628097B1 (en) * | 2014-12-31 | 2016-06-09 | 주식회사 시큐아이 | System and method for managing database |
| CN104820693B (en) * | 2015-04-28 | 2018-07-24 | 广东小天才科技有限公司 | Data searching method and device |
| CN106326429A (en) * | 2016-08-25 | 2017-01-11 | 武汉光谷信息技术股份有限公司 | Hbase second-level query scheme based on solr |
| CN110471888A (en) * | 2018-05-09 | 2019-11-19 | 株式会社日立制作所 | A kind of method, apparatus of automatic data collection, medium, equipment and system |
| CN111241108A (en) * | 2020-01-16 | 2020-06-05 | 北京百度网讯科技有限公司 | Indexing method, device, electronic device and medium based on key-value pair KV system |
| CN111241108B (en) * | 2020-01-16 | 2023-12-26 | 北京百度网讯科技有限公司 | Key value based indexing method and device for KV system, electronic equipment and medium |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101358793B1 (en) | 2014-02-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9448999B2 (en) | Method and device to detect similar documents | |
| KR101972645B1 (en) | Clustering storage method and device | |
| US12271689B2 (en) | Text duplicate checking method, electronic device and computer-readable storage medium | |
| KR100930455B1 (en) | Method and system for generating search collection by query | |
| CN103390020A (en) | Method and system for storing data in database | |
| KR101549220B1 (en) | Method and System for Managing Database, and Tree Structure for Database | |
| CN101488147B (en) | Apparatus, system, and method for information search | |
| KR101358793B1 (en) | Method of forming index file, Method of searching data and System for managing data using dictionary index file, Recoding medium | |
| CN105589894B (en) | Document index establishing method and device and document retrieval method and device | |
| KR101892067B1 (en) | Method for storing and searching of text logdata based relational database | |
| CN102831224B (en) | Generation method and device are suggested in a kind of method for building up in data directory library, search | |
| CN106021357B (en) | Based on distributed big data paging query method and system | |
| US7783589B2 (en) | Inverted index processing | |
| CN107729518A (en) | The text searching method and device of a kind of relevant database | |
| JP4491480B2 (en) | Index construction method, document retrieval apparatus, and index construction program | |
| US20160004749A1 (en) | Search system and search method | |
| KR20140031269A (en) | Method and device for determining font | |
| KR101363335B1 (en) | Apparatus and method for generating document categorization model | |
| KR101375684B1 (en) | Method and system for managing dna sequence data | |
| KR101127795B1 (en) | Method and system for searching by proximity of index term | |
| CN111737267A (en) | HBase-based index system and query acceleration method | |
| KR101820017B1 (en) | Database clustering apparatus and method | |
| KR102013839B1 (en) | Method and System for Managing Database, and Tree Structure for Database | |
| JP5595957B2 (en) | Access log processing system and method, program, and access log storage / retrieval device | |
| JP6764973B1 (en) | Related word dictionary creation system, related word dictionary creation method and related word dictionary creation program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20120720 |
|
| PA0201 | Request for examination | ||
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20130826 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20131231 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20140128 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20140128 End annual number: 3 Start annual number: 1 |
|
| PG1501 | Laying open of application | ||
| PG1601 | Publication of registration | ||
| FPAY | Annual fee payment |
Payment date: 20170110 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20170110 Start annual number: 4 End annual number: 4 |
|
| FPAY | Annual fee payment |
Payment date: 20180111 Year of fee payment: 5 |
|
| PR1001 | Payment of annual fee |
Payment date: 20180111 Start annual number: 5 End annual number: 5 |
|
| FPAY | Annual fee payment |
Payment date: 20190110 Year of fee payment: 6 |
|
| PR1001 | Payment of annual fee |
Payment date: 20190110 Start annual number: 6 End annual number: 6 |
|
| PR1001 | Payment of annual fee |
Payment date: 20210111 Start annual number: 8 End annual number: 8 |
|
| PR1001 | Payment of annual fee |
Payment date: 20220110 Start annual number: 9 End annual number: 9 |
|
| PR1001 | Payment of annual fee |
Payment date: 20230110 Start annual number: 10 End annual number: 10 |
|
| PR1001 | Payment of annual fee |
Payment date: 20240110 Start annual number: 11 End annual number: 11 |
|
| PR1001 | Payment of annual fee |
Payment date: 20250110 Start annual number: 12 End annual number: 12 |