KR102177792B1 - A system that displays large amounts of data on a chart without memory capacity limitation by using a binary file storage structure per column - Google Patents
A system that displays large amounts of data on a chart without memory capacity limitation by using a binary file storage structure per column Download PDFInfo
- Publication number
- KR102177792B1 KR102177792B1 KR1020190022401A KR20190022401A KR102177792B1 KR 102177792 B1 KR102177792 B1 KR 102177792B1 KR 1020190022401 A KR1020190022401 A KR 1020190022401A KR 20190022401 A KR20190022401 A KR 20190022401A KR 102177792 B1 KR102177792 B1 KR 102177792B1
- Authority
- KR
- South Korea
- Prior art keywords
- column
- binary file
- data
- cell
- record
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 데이터베이스에서 조회된 데이터를 컬럼 단위의 바이너리(Binary) 파일로 생성하여 메모리가 아닌 디스크에 저장하고, 디스크에 저장된 데이터를 읽을 때는 전체 데이터를 한번에 메모리에 적재하지 않고, 레코드 단위로 읽어서 차트(Chart)에 표시하기 때문에 DBMS(Database Management System)에서 조회된 데이터의 용량이 아무리 커도 메모리 오버플로우(Overflow) 오류가 발생하지 않는 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템에 관한 것이다.
본 발명에 의하면, DBMS에서 조회된 대용량의 데이터를 이용하여 표현된 차트 상의 각 좌표에 해당하는 복수 개의 레코드 인덱스 정보를 컬럼 단위의 바이너리 파일로 생성하여 디스크에 저장하고, 차트 상에 표현된 특정 위치 상의 좌표가 나타내는 레코드 정보에 대한 요청이 있는 경우 차트 상의 위치 좌표를 키 값으로 하고 레코드 인덱스 정보를 값으로 하는 해쉬(Hash) 함수 구조를 적용함으로써, 좌표에 해당하는 레코드 인덱스 정보를 빠르게 찾을 수 있을 뿐만 아니라, 레코드 인덱스 정보를 가져온 후 레코드 인덱스에 해당하는 정보를 디스크에 저장된 컬럼 단위 바이너리 파일에서 검색하여 로딩하기 때문에 메모리 오버플로우의 오류가 발생하지 않아 메모리 용량의 제약없이 차트로 표시할 수 있는 장점이 있다.In the present invention, the data retrieved from the database is created as a column-based binary file and stored in a disk rather than a memory. When reading data stored on the disk, the entire data is not loaded into the memory at once, but is read in record units and charted. Because it is displayed in (Chart), a large amount of data is charted without memory capacity limitation by using a binary file storage structure for each column that does not cause a memory overflow error no matter how large the size of the data retrieved from the DBMS (Database Management System) is. It relates to the system represented by.
According to the present invention, a plurality of record index information corresponding to each coordinate on a chart expressed using a large amount of data retrieved from a DBMS is created as a binary file in column units and stored on a disk, and a specific location expressed on the chart When there is a request for record information indicated by the coordinates of the image, by applying a hash function structure that uses the position coordinates on the chart as the key value and the record index information as the value, it is possible to quickly find the record index information corresponding to the coordinates. In addition, since the information corresponding to the record index is retrieved and loaded from the column-level binary file stored on the disk after the record index information is retrieved, there is no memory overflow error, so that the chart can be displayed without limiting the memory capacity. There is this.
Description
본 발명은 빅데이터, 클라우드 컴퓨팅 등의 환경에서 데이터 조회 결과 수신한 대용량 데이터를 메모리 용량의 제약 없이 처리하기 위한 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템에 관한 것이다.The present invention uses a binary file storage structure for each column to process large-capacity data received as a result of data inquiry in environments such as big data and cloud computing, without limitation of memory capacity, to a system that displays large-capacity data as a chart without memory capacity limitation. About.
기존에 서버의 데이터베이스에서 데이터를 조회하면 XML 형태의 스트링을 API를 이용하여 DataSet으로 변경하여 웹 서버에 저장 후 사용자 컴퓨터로 전송하거나, PHP나 JSP 파일을 API를 이용하여 JSON으로 변경하여 웹 서버에 저장 후 사용자 컴퓨터로 전송한다(3 tier 방식). 또는 서버의 데이터베이스에서 조회된 데이터를 직접 사용자 컴퓨터로 전송하여 사용자 컴퓨터에서 XML 형태의 스트링을 API를 이용하여 DataSet으로 변경하여 저장하거나, PHP나 JSP 파일을 API를 이용하여 JSON으로 변경하여 저장한다(2 tier 방식).When data is retrieved from the existing server database, the XML-type string is converted into a DataSet using API, saved in the web server, and then transmitted to the user's computer, or PHP or JSP files are converted to JSON using the API and transferred to the web server. After saving, transfer to user's computer (3 tier method). Alternatively, the data retrieved from the server database is directly transmitted to the user's computer, and the XML string in the user's computer is converted into a DataSet using API and saved, or a PHP or JSP file is changed to JSON using API and saved ( 2 tier method).
이와 같은 기존 방법을 이용하여 데이터베이스에서 데이터를 조회하면 조회된 데이터는 XML, JSON 또는 CSV 형식의 TEXT 파일 스트림 형태로 만들어지기 때문에 본래의 값을 표현하기 위해 필요로 하는 Byte 크기보다 커지게 된다.When data is retrieved from the database using such an existing method, the retrieved data is created in the form of a TEXT file stream in XML, JSON, or CSV format, and thus becomes larger than the byte size required to express the original value.
결국, 이와 같은 방식으로 조회된 데이터 전부를 메모리에 로드 시 실제 값이 가지는 본래의 크기보다 더 많은 메모리를 사용하게 된다.Eventually, when all of the data retrieved in this way is loaded into memory, more memory than the original size of the actual value is used.
이에 따라 운영체제의 종류(32bit, 64bit)에 따른 프로세스가 접근할 수 있는 메모리 영역의 크기 제한으로 인해 메모리 오버플로우 오류가 발생한다.Accordingly, a memory overflow error occurs due to a limit on the size of a memory area that can be accessed by a process according to the type of operating system (32bit, 64bit).
참고로 32bit 운영체제에서 사용 가능한 총 메모리는 4G 이며, 64bit 운영체제에서 사용 가능한 총 메모리는 8G ~ 2TB 이다. 그리고 32bit 응용프로그램에서 사용 가능한 메모리는 2~3G 이며, 64bit 응용프로그램에서 사용 가능한 메모리는 8TB 이고, 단일 개체로는 2G까지 사용 가능하다.For reference, the total memory available in the 32bit operating system is 4G, and the total memory available in the 64-bit operating system is 8G ~ 2TB. In addition, the available memory for 32bit application programs is 2~3G, and the memory available for 64bit applications is 8TB, and up to 2G can be used as a single entity.
도 1을 참고하면, XML DataSet을 사용하는 일반적인 데이터 조회 방법을 나타낸다. ① 먼저 DBMS에서 쿼리를 실행하고 ② Middle Tier(Web 서버)에서 조회 결과(Result Set) 데이터를 XML DataSet 형태로 메모리에 적재한다. 이 과정에서 Middle Tier(Web 서버)의 프로세스당 메모리 용량을 초과하는 경우 메모리 오버플로우(Memory Overflow) 오류가 발생한다. ③ 클라이언트에서 전송 받은 조회 결과(Result Set) 데이터를 XML DataSet 형태로 메모리에 적재한다. 이 과정에서 클라이언트의 프로세스당 메모리 용량을 초과하는 경우 메모리 오버플로우 오류가 발생한다. ④ 마지막으로 메모리 상의 XML DataSet을 Chart 컨트롤에 바인딩하여 Chart 로 표시한다. Chart 컨트롤에 바인딩하는 과정에서 Chart 컨트롤의 데이터 바인딩 방식에 따라 추가적으로 메모리 오버플로우 오류가 발생한다.Referring to FIG. 1, a general data search method using an XML DataSet is shown. ① First, execute the query in the DBMS. ② Load the search result data in the middle tier (Web server) into the memory in the form of XML DataSet. In this process, if the memory capacity per process of the middle tier (Web server) is exceeded, a memory overflow error occurs. ③ Loads the query result set data received from the client into the memory in the form of XML DataSet. During this process, if the memory capacity per process of the client is exceeded, a memory overflow error occurs. ④ Finally, bind the XML DataSet in memory to the Chart control and display it as a chart. In the process of binding to the chart control, an additional memory overflow error occurs depending on the data binding method of the chart control.
상기에서 살펴본 바와 같이 빅데이터 및 클라우드 컴퓨팅 환경에서 기존 방식으로 대용량의 데이터를 조회하면 프로세스당 메모리 용량을 초과하여 메모리 오버플로우 오류가 발생할 뿐만 아니라, 데이터 조회에 걸리는 시간도 상당히 오래 걸리게 된다.As described above, when a large amount of data is searched in a conventional way in a big data and cloud computing environment, not only a memory overflow error occurs due to exceeding the memory capacity per process, but also the time it takes to search the data takes a long time.
또한, 대용량의 데이터를 차트(Chart)로 표현하고, 차트가 그려진 후 사용자가 차트 상의 특정 위치에 대한 자세한 정보를 보기 위해서는 메모리에서 특정 위치에 해당하는 레코드를 탐색을 통해 찾아야 하는데 대용량의 데이터를 메모리에서 관리할 경우 메모리 오버플로우의 위험이 있을 뿐만 아니라, 메모리에서 해당 위치 좌표를 갖는 정보를 순차적으로 탐색 시 CPU 자원을 상당히 소모할 뿐만 아니라, 시간도 상당히 오래 걸리게 된다.In addition, in order to express a large amount of data in a chart, and after the chart is drawn, in order for the user to view detailed information about a specific position on the chart, the record corresponding to a specific position in the memory must be searched for. In case of managing in the system, there is a risk of memory overflow, and when sequentially searching for information having the corresponding location coordinates in the memory, it consumes a lot of CPU resources and takes a long time.
본 발명은 상기와 같은 문제점을 개선하기 위하여 발명된 것으로, 데이터베이스에서 조회된 데이터를 컬럼 단위의 바이너리(Binary) 파일로 생성하여 메모리가 아닌 디스크에 저장하고, 디스크에 저장된 데이터를 읽을 때는 전체 데이터를 한번에 메모리에 적재하지 않고, 레코드 단위로 읽어서 차트(Chart)에 표시하기 때문에 DBMS(Database Management System)에서 조회된 데이터의 용량이 아무리 커도 메모리 오버플로우(Overflow) 오류가 발생하지 않는 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템을 제공하기 위한 것이다.The present invention was invented to improve the above-described problems, and the data retrieved from the database is created as a column-based binary file and stored in a disk rather than a memory. When reading data stored on the disk, the entire data is saved. Because the data is not loaded into memory at once, it is read in units of records and displayed on the chart, so no matter how large the size of the data retrieved from the DBMS (Database Management System) is, a binary file for each column that does not cause a memory overflow error is saved. It is to provide a system for displaying large-capacity data in a chart without limitation of memory capacity using a structure.
또한, DBMS(Database Management System)에서 조회된 대용량의 원본 데이터를 메모리에 로딩하지 않고, 차트 상의 각 좌표에 해당하는 복수 개의 레코드 인덱스 정보를 컬럼 단위의 바이너리 파일로 생성하여 디스크에 저장하며, 차트 상에 표현된 특정 위치 상의 좌표가 나타내는 레코드 정보에 대한 요청이 있는 경우 차트 상의 위치 좌표를 키 값으로 하고 레코드 인덱스 정보를 값으로 하는 해쉬(Hash) 함수 구조를 적용함으로써, 좌표에 해당하는 레코드 인덱스 정보를 빠르게 찾을 수 있는 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템을 제공하기 위한 것이다.In addition, without loading the large amount of original data retrieved from the DBMS (Database Management System) into memory, multiple record index information corresponding to each coordinate on the chart is created as a binary file in column units and stored on disk. When there is a request for record information indicated by the coordinates on a specific location expressed in, by applying a hash function structure that uses the location coordinates on the chart as the key value and record index information as the value, record index information corresponding to the coordinates It is to provide a system that displays large-capacity data as a chart without memory capacity limitation by using a binary file storage structure for each column that can quickly find.
상기와 같은 목적을 달성하기 위하여, 본 발명은 DBMS(Database Management System)에서 데이터 조회 결과 수신한 테이블(Result Set) 데이터를 컬럼 단위 바이너리(Binary) 파일로 생성하여 디스크에 저장하는 컬럼 바이너리 파일 저장부; 상기 컬럼 바이너리 파일 저장부에 의해 디스크에 저장된 각각의 컬럼 별 바이너리 파일에서 셀 값을 하나씩 읽어 레코드(Row)를 구성 후 레코드 단위로 메모리 로딩하는 컬럼 바이너리 파일 리더부; 및 상기 컬럼 바이너리 파일 리더부에 의해 메모리에 로딩된 레코드에서 X 좌표와 Y 좌표에 해당하는 각 셀 값을 이용하여 차트 상의 X 좌표와 Y 좌표에 해당하는 위치에 픽셀(Pixel) 형태로 시각적으로 표시하는 차트 표시부를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention is a column binary file storage unit that generates a table (Result Set) data received as a result of a data inquiry from a database management system (DBMS) as a column-based binary file and stores it on a disk. ; A column binary file reader configured to read cell values one by one from a binary file for each column stored on a disk by the column binary file storage unit, construct a record, and then load a memory in a record unit; And visually display in the form of pixels at positions corresponding to X and Y coordinates on the chart using cell values corresponding to X and Y coordinates in the record loaded into the memory by the column binary file reader. It characterized in that it comprises a chart display unit.
상기와 같은 구성의 본 발명에 따르면, 다음과 같은 효과를 도모할 수 있다. According to the present invention having the above configuration, the following effects can be achieved.
DBMS(Database Management System)에서 조회된 대용량의 원본 데이터를 메모리에 로딩하지 않고, 컬럼 단위의 바이너리 파일로 작성하여 디스크에 저장하기 때문에 DBMS에서 조회된 대용량의 데이터를 메모리에서 관리함으로써 발생하는 메모리 오버플로우의 위험을 원천적으로 차단할 수 있다.Memory overflow caused by managing the large amount of data retrieved from the DBMS in memory because the large amount of original data retrieved from the DBMS (Database Management System) is not loaded into memory, but is written as a column-unit binary file and stored on disk. It can block the risk of
그리고 DBMS에서 조회된 대용량의 데이터를 이용하여 표현된 차트 상의 각 좌표에 해당하는 복수 개의 레코드 인덱스 정보를 컬럼 단위의 바이너리 파일로 생성하여 디스크에 저장하고, 차트 상에 표현된 특정 위치 상의 좌표가 나타내는 레코드 정보에 대한 요청이 있는 경우 차트 상의 위치 좌표를 키 값으로 하고 레코드 인덱스 정보를 값으로 하는 해쉬(Hash) 함수 구조를 적용함으로써, 좌표에 해당하는 레코드 인덱스 정보를 빠르게 찾을 수 있을 뿐만 아니라, 레코드 인덱스 정보를 가져온 후 레코드 인덱스에 해당하는 정보를 디스크에 저장된 컬럼 단위 바이너리 파일에서 검색하여 로딩하기 때문에 메모리 오버플로우의 오류가 발생하지 않아 메모리 용량의 제약없이 차트로 표시할 수 있는 장점이 있다.In addition, a plurality of record index information corresponding to each coordinate on the chart expressed using the large amount of data retrieved from the DBMS is created as a binary file in column units and stored on disk, and the coordinates on a specific location expressed on the chart are indicated. When there is a request for record information, it is possible to quickly find the record index information corresponding to the coordinate by applying a hash function structure that uses the position coordinate on the chart as the key value and the record index information as the value. Since the index information is retrieved and the information corresponding to the record index is retrieved and loaded from the column-unit binary file stored on the disk, memory overflow errors do not occur, so that the chart can be displayed without limiting the memory capacity.
도 1은 종래기술에 따라 XML DataSet을 사용하는 일반적인 데이터 조회 방법을 나타낸다.
도 2는 본 발명에 따라 컬럼 별 바이너리 파일을 디스크에 저장 후 레코드 단위로 메모리에 적재함으로써 메모리를 거의 사용하지 않는 방법을 나타낸다.
도 3은 본 발명의 일 실시 예(제1 실시 예)에 따라 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 기능부를 설명하기 위한 블록도이다.
도 4는 본 발명의 다른 실시 예(제2 실시 예)에 따라 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 기능부를 설명하기 위한 블록도이다.
도 5는 본 발명에 따라 컬럼 별 바이너리 파일을 생성할 때 용량을 감소시키지 않는 기본 형과 용량을 감소시키는 제1-제4 용량 감소 정책에 대한 설명을 나타낸다.
도 6은 본 발명의 일 실시 예에 따라 테이블(Result Set)을 컬럼 단위의 바이너리 파일로 생성하여 디스크에 저장할 때 용량을 감소시키지 않고 원본 형식의 크기를 그대로 유지하는 컬럼 별 바이너리 파일 구조에 대한 개념도이다.
도 7은 본 발명의 다른 실시 예에 따라 테이블(Result Set)을 컬럼 단위의 바이너리 파일로 생성하여 디스크에 저장할 때 각 컬럼에 속하는 셀 데이터 값의 성격에 맞는 용량 감소 정책에 따라 원본 컬럼의 형식을 변환시키는 컬럼 별 바이너리 파일 구조에 대한 개념도이다.
도 8은 본 발명의 일 실시 예와 다른 실시 예에 따라 컬럼 단위의 바이너리 파일을 생성할 때 생성되는 헤더의 구조에 개념도이다.
도 9는 본 발명의 다른 실시 예에 따라 용량 감소 정책을 적용하였을 때 변환 후 컬럼의 크기를 변환 전 원본 컬럼의 크기와 비교한 예를 나타낸다.
도 10은 본 발명에 따라 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템의 기능을 나타내는 블록도이다.
도 11은 본 발명에 따라 차트 상에 표시되는 각 좌표에 해당하는 레코드 인덱스 정보를 컬럼 단위 바이너리 파일로 생성하여 디스크에 저장하는 구조에 대한 개념도이다.1 shows a general data search method using an XML DataSet according to the prior art.
FIG. 2 shows a method in which a binary file for each column is stored in a disk and then loaded into a memory in a record unit according to the present invention, thereby using little memory.
3 is a block diagram illustrating a function unit for storing large-capacity data searched in a database as a binary file for each column according to an embodiment of the present invention (first embodiment).
4 is a block diagram illustrating a function unit for storing large-capacity data searched from a database as a binary file for each column according to another embodiment of the present invention (second embodiment).
5 shows a description of a basic type that does not reduce a capacity and a first to fourth capacity reduction policy that reduces the capacity when generating a binary file for each column according to the present invention.
6 is a conceptual diagram of a binary file structure for each column that maintains the size of an original format without reducing capacity when a table (Result Set) is created as a column-based binary file and stored on disk according to an embodiment of the present invention to be.
7 illustrates the format of an original column according to a capacity reduction policy suitable for the characteristics of cell data values belonging to each column when a table (Result Set) is created as a column-based binary file and stored on disk according to another embodiment of the present invention. This is a conceptual diagram of the binary file structure for each column to be converted.
8 is a conceptual diagram illustrating a structure of a header generated when a binary file in column units is generated according to an embodiment of the present invention and another embodiment.
9 shows an example in which the size of a column after conversion is compared with the size of an original column before conversion when a capacity reduction policy is applied according to another embodiment of the present invention.
10 is a block diagram illustrating a function of a system for displaying a large amount of data in a chart without a memory capacity limitation using a binary file storage structure for each column according to the present invention.
11 is a conceptual diagram of a structure in which record index information corresponding to each coordinate displayed on a chart is generated as a column-based binary file and stored in a disk according to the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시 예를 참조하면 명확해질 것이다.Advantages and features of the present invention, and a method of achieving them will become apparent with reference to embodiments to be described later in detail together with the accompanying drawings.
그러나, 본 발명은 이하에서 개시되는 실시 예로 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이다.However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various different forms.
본 명세서에서 본 실시 예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.In the present specification, the present embodiment is provided to complete the disclosure of the present invention, and to completely inform the scope of the invention to those of ordinary skill in the art to which the present invention pertains.
그리고 본 발명은 청구항의 범주에 의해 정의될 뿐이다.And the invention is only defined by the scope of the claims.
따라서, 몇몇 실시 예에서, 잘 알려진 구성 요소, 잘 알려진 동작 및 잘 알려진 기술들은 본 발명이 모호하게 해석되는 것을 피하기 위하여 구체적으로 설명되지 않는다.Accordingly, in some embodiments, well-known components, well-known operations, and well-known techniques have not been described in detail in order to avoid obscuring interpretation of the present invention.
또한, 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하고, 본 명세서에서 사용된(언급된) 용어들은 실시 예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.In addition, throughout the specification, the same reference numerals refer to the same constituent elements, and terms used in the present specification (referred to) are for describing exemplary embodiments and not limiting the present invention.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함하며, '포함(또는, 구비)한다'로 언급된 구성 요소 및 동작은 하나 이상의 다른 구성요소 및 동작의 존재 또는 추가를 배제하지 않는다.In this specification, the singular form also includes the plural form unless specifically stated in the phrase, and the components and actions referred to as'include (or, have)' do not exclude the presence or addition of one or more other components and actions. .
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다.Unless otherwise defined, all terms (including technical and scientific terms) used in the present specification may be used as meanings that can be commonly understood by those of ordinary skill in the art to which the present invention belongs.
또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다.In addition, terms defined in a commonly used dictionary are not interpreted ideally or excessively unless defined.
이하, 첨부된 도면을 참고로 본 발명의 바람직한 실시 예에 대하여 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.
본 발명에서 레코드(Record)는 테이블의 행(Row)과 같은 의미이며, 컬럼(Column)은 테이블의 열과 같은 의미이다. 하나의 컬럼은 하나 이상의 셀(Cell)로 구성된다. Result Set은 DBMS에서 쿼리를 실행하고 얻어진 결과 데이터(테이블)를 말한다.In the present invention, a record has the same meaning as a row of a table, and a column has the same meaning as a column of a table. One column consists of one or more cells. Result Set refers to the result data (table) obtained by executing a query in the DBMS.
상위 서버와 클라이언트 사이에 중간 서버를 거치는 경우(3 tier 방식) 본 발명에 따른 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 구조는 중간 서버뿐만 아니라 클라이언트에도 설치되어 동작한다. 이 경우 중간 서버는 DBMS에서 데이터 조회 결과를 수신하면 컬럼 별 바이너리 파일로 생성하여 디스크에 저장하며, 클라이언트는 중간 서버에서 수신한 컬럼 별 바이너리 파일 저장 구조를 그대로 수신하여 디스크에 저장한다.In the case of passing through an intermediate server between the upper server and the client (3 tier method) The structure for storing large-capacity data searched in the database according to the present invention as a binary file for each column is installed and operated not only in the intermediate server but also in the client. In this case, when the intermediate server receives the data search result from the DBMS, it creates a binary file for each column and stores it on the disk, and the client receives the binary file storage structure for each column received from the intermediate server and stores it on the disk.
서버와 클라이언트만으로 구성되는 경우(2 tier 방식) 본 발명에 따른 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 구조는 클라이언트에 설치되어 동작한다. 이 경우 클라이언트는 DBMS에서 데이터 조회 결과를 수신하면 컬럼 별 바이너리 파일로 생성하여 디스크에 저장한다.In the case of consisting of only a server and a client (2-tier method), a structure for storing large-capacity data searched in a database according to the present invention as a binary file for each column is installed and operated in the client. In this case, when the client receives the data search result from the DBMS, it creates a binary file for each column and stores it on the disk.
도 10 및 도 11을 참고하면, 본 발명에 따른 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템(300)은 컬럼 바이너리 파일 저장부(110, 210)와 컬럼 바이너리 파일 리더부(120, 220) 및 차트 표시부(330)를 포함한다.10 and 11, the
컬럼 바이너리 파일 저장부(110)와 컬럼 바이너리 파일 리더부(120)는 하기의 제1 실시 예에서 자세하게 설명하고 있으며, 컬럼 바이너리 파일 저장부(210)와 컬럼 바이너리 파일 리더부(220)는 하기의 제2 실시 예에서 자세하게 설명하고 있다.The column binary
컬럼 바이너리 파일 저장부(110, 210)는 DBMS(Database Management System)에서 데이터 조회 결과 수신한 테이블(Result Set) 데이터를 컬럼 단위 바이너리(Binary) 파일로 생성하여 디스크에 저장한다.The column binary
컬럼 바이너리 파일 리더부(120, 220)는 컬럼 바이너리 파일 저장부(110, 210)에 의해 디스크에 저장된 각각의 컬럼 별 바이너리 파일에서 셀 값을 하나씩 읽어 레코드(Row)를 구성 후 레코드 단위로 메모리 로딩한다.The column binary
차트 표시부(330)는 컬럼 바이너리 파일 리더부(120, 220)에 의해 메모리에 로딩된 레코드에서 X 좌표와 Y 좌표에 해당하는 각 셀 값을 이용하여 차트 상의 X 좌표와 Y 좌표에 해당하는 위치에 픽셀(Pixel) 형태로 시각적으로 표시한다. 레코드의 컬럼 중에서 X 좌표와 Y 좌표의 성격을 갖는 값을 이용하여 차트 상의 X 좌표와 Y 좌표에 해당하는 위치에 레코드를 픽셀 형태로 표시한다.The
차트 표시부(330)는 조회된 모든 레코드 또는 사용자에 의해 지정된 범위에 해당하는 모든 레코드를 읽어서 차트 상에 표시한다. 차트 상에 표시되는 픽셀 하나는 레코드 하나를 나타낸다.The
구체적으로, 차트 표시부(330)는 2차원 배열 인덱스 번호 관리부(331), 배열구조 변환부(332), 레코드 인덱스 작성부(333) 및 레코드 인덱스 리더부(334)를 포함한다.Specifically, the
예를 들어, 컬럼 바이너리 파일 리더부(120, 220)가 디스크에 저장된 컬럼 별 바이너리 파일에서 셀 값을 하나씩 읽어 레코드를 구성 후 레코드 단위로 메모리에 로딩하면, 차트 표시부(330)가 300만개의 레코드를 순차적으로 차트 상에 표시할 때 각 레코드는 2차원 좌표 상의 서로 다른 위치에 표시되며, 같은 X, Y 좌표에는 복수 개의 레코드가 중첩되어 표시될 수 있다.For example, when the column
도 11에서는 75, 50 좌표에 총 14개의 레코드가 중첩되어 표시된 예를 나타낸다. 기존에는 75, 50 좌표에 찍힌 레코드를 확인하기 위해, 테이블에서 X 좌표 75, Y 좌표 50을 갖는 값을 순차적으로 탐색해야 했다. 이는 시간이 상당히 오래 걸리는 작업일 뿐만 아니라, 탐색을 위해 대용량의 데이터를 메모리에서 관리해야 하기 때문에 메모리 오버플로우의 위험이 항상 존재했다.11 shows an example in which a total of 14 records are superimposed on coordinates 75 and 50. Previously, in order to check the records stamped at coordinates 75 and 50, it was necessary to sequentially search for values with an X coordinate of 75 and Y coordinate of 50 in a table. Not only is this a very time-consuming operation, but there has always been a risk of memory overflow because a large amount of data must be managed in memory for exploration.
도 11을 참고하면, 2차원 배열 인덱스 번호 관리부(331)는 차트 상의 X 좌표와 Y 좌표에 해당하는 위치에 픽셀(Pixel) 형태로 시각적으로 표시되는 순서대로 레코드 인덱스(Row Index) 번호를 부여하여 X 좌표와 Y 좌표에 해당하는 2차원 배열의 픽셀 각 위치에 대응하여 하나 이상의 레코드 인덱스 번호를 저장한다.Referring to FIG. 11, the two-dimensional array index
본 발명에서는 컬럼 바이너리 파일 리더부(120, 220)가 디스크에서 컬럼 단위로 읽어서 레코드를 구성 후 레코드 단위로 메모리에 로딩하면, 2차원 배열 인덱스 번호 관리부(331)는 픽셀 형태로 시각적으로 표시되는 순서대로 레코드 인덱스 번호를 부여하여 각 픽셀의 위치에 해당하는 하나 이상의 레코드 인덱스 번호를 관리한다.In the present invention, when the column binary
배열구조 변환부(332)는 2차원 배열을 1차원 배열로 변환하고, 2차원 배열에서의 X 좌표와 Y 좌표를 1차원 배열의 인덱스 번호로 변환하고, 1차원 배열의 인덱스 번호에 대응하여 하나 이상의 레코드 인덱스 번호를 저장한다.The array
도 11에서 2차원 배열에 해당하는 75, 50 좌표는 1차원 배열로 변환되고, 1차원 인덱스 번호를 다시 부여 받는다. 75, 50 좌표에 해당하는 1차원 배열의 인덱스에 14개의 레코드에 대한 레코드 인덱스가 저장된다.In FIG. 11, coordinates of 75 and 50 corresponding to a two-dimensional array are converted into a one-dimensional array, and a one-dimensional index number is given again. Record indexes for 14 records are stored in the index of the one-dimensional array corresponding to coordinates 75 and 50.
레코드 인덱스 작성부(333)는 1차원 배열의 인덱스 번호에 대응하는 레코드 인덱스 번호의 레코드 인덱스 데이터 파일([imifilename_hash].imi.data) 상에서의 시작 위치를 나타내는 주소 값과 레코드 인덱스 번호의 개수를 동일한 크기의 하나의 셀에 속하도록 하여 순차적으로 구성하고, 모든 셀 데이터를 차례로 바이너리 값으로 변환 후 레코드 인덱스 지시자(Indicator) 파일([imifilename_hash].imi.index)을 생성하여 디스크에 저장하며, 1차원 배열의 인덱스 번호에 대응하는 레코드 인덱스 번호를 지정된 크기에 해당하는 바이트 단위로 순차적으로 바이너리 값으로 변환 후 레코드 인덱스 데이터 파일([imifilename_hash].imi.data)을 생성하여 디스크에 저장한다.The record
도 11을 참고하면, 레코드 인덱스 지시자(Indicator) 파일([imifilename_hash].imi.index)은 4 byte 헤더를 갖고, 레코드 인덱스 데이터 파일([imifilename_hash].imi.data)은 2 byte 헤더를 갖는 것을 예로 들었다. 레코드 인덱스 지시자(Indicator) 파일([imifilename_hash].imi.index)의 4 byte 헤더(Type(2), Size(2))는 레코드 인덱스 데이터 파일([imifilename_hash].imi.data) 상에서의 시작 위치를 나타내는 주소 값의 형식과 레코드 인덱스 번호의 개수에 대한 형식을 각각 1 byte씩 할당하여 저장하고, 레코드 인덱스 데이터 파일([imifilename_hash].imi.data) 상에서의 시작 위치를 나타내는 주소 값 형식의 크기와 레코드 인덱스 번호의 개수 형식의 크기를 각각 1 byte씩 할당하여 저장한다. 레코드 인덱스 데이터 파일([imifilename_hash].imi.data)의 2 byte 헤더(Type(2))에는 레코드 인덱스 번호의 형식이 저장된다.Referring to FIG. 11, for example, a record index indicator file ([imifilename_hash].imi.index) has a 4 byte header, and a record index data file ([imifilename_hash].imi.data) has a 2 byte header. heard. The 4 byte headers (Type(2), Size(2)) of the record index indicator file ([imifilename_hash].imi.index) indicate the start position in the record index data file ([imifilename_hash].imi.data). The format of the indicated address value and the format of the number of record index numbers are allocated and stored by 1 byte, respectively, and the size and record of the address value format indicating the start position in the record index data file ([imifilename_hash].imi.data). The size of the number format of the index number is allocated and stored by 1 byte each. The format of the record index number is stored in the 2-byte header (Type(2)) of the record index data file ([imifilename_hash].imi.data).
레코드 인덱스 리더부(334)는 차트 상의 특정 픽셀을 지정 시 해당 픽셀의 X 좌표와 Y 좌표에 해당하는 1차원 배열의 인덱스 번호를 이용하여 디스크에 저장된 레코드 인덱스 지시자 파일([imifilename_hash].imi.index)에서 레코드 인덱스 번호의 레코드 인덱스 데이터 파일([imifilename_hash].imi.data) 상에서의 시작 위치를 나타내는 주소 값과 레코드 인덱스 번호의 개수를 구한 후 레코드 인덱스 데이터 파일([imifilename_hash].imi.data)에서 해당하는 개수의 레코드 인덱스 번호를 가져온다.When designating a specific pixel on the chart, the
도 11에서 사용자가 75, 50 좌표를 클릭하여 레코드 조회를 요청하면, 75, 50 좌표에 해당하는 1차원 배열의 인덱스 번호를 이용하여 레코드 인덱스 지시자(Indicator) 파일([imifilename_hash].imi.index)에서 해당하는 셀의 위치를 찾을 수 있다. 도 11의 레코드 인덱스 지시자 파일([imifilename_hash].imi.index)에서는 첫 번째 셀에 레코드 인덱스 데이터 파일 상에서의 시작 위치를 나타내는 주소 값 2와 레코드 인덱스 번호의 개수에 해당하는 14를 구한 후 레코드 인덱스 데이터 파일([imifilename_hash].imi.data)에서 14개의 레코드 인덱스 번호를 가져온다.In FIG. 11, when a user requests a record search by clicking 75 or 50 coordinates, a record index indicator file ([imifilename_hash].imi.index) using an index number of a one-dimensional array corresponding to the 75 or 50 coordinates ([imifilename_hash].imi.index) You can find the location of the corresponding cell in. In the record index indicator file ([imifilename_hash].imi.index) of FIG. 11, the
도 11에서는 75, 50 좌표에 레코드가 14개, 76, 50 좌표에 레코드가 10개, 77, 50 좌표에 레코드가 5개, 78, 50 좌표에 레코드가 11개 표시된 예를 나타낸다.11 shows an example in which 14 records are displayed at
컬럼 바이너리 파일 리더부(120, 220)는 레코드 인덱스 리더부(334)가 가져온 하나 이상의 레코드 인덱스 번호를 전달 받아 디스크에 저장된 컬럼 단위의 바이너리 파일에서 레코드 인덱스 번호에 해당하는 셀 값을 하나씩 읽어 레코드(Row)를 구성하는 방식으로 전달 받은 모든 레코드 인덱스 번호에 대해 차례로 레코드를 구성하여 차트 표시부(330)에 전달하고, 차트 표시부(330)는 레코드 인덱스 번호에 해당하는 레코드 정보를 디스플레이 한다.The column binary
컬럼 바이너리 파일 저장부(110, 210)와 컬럼 바이너리 파일 리더부(120, 220)에 대해서는 아래의 제1 실시 예와 제2 실시 예에서 자세하게 설명한다.The column binary
[제1 실시 예] [First embodiment]
제1 실시 예는 DBMS에서 데이터 조회 결과 수신한 테이블(Result Set)을 컬럼 별 바이너리 파일로 저장할 때 원본 형식의 크기를 유지하는 구조이다.The first embodiment is a structure in which the size of the original format is maintained when a table (Result Set) received as a result of data inquiry from a DBMS is stored as a binary file for each column.
도 2, 3, 5, 6 및 8을 참고하면, 본 발명의 일 실시 예에 따른 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 구조(100)는 컬럼 바이너리 파일 저장부(110)와 컬럼 바이너리 파일 리더부(120)를 포함한다.2, 3, 5, 6, and 8, a
컬럼 바이너리 파일 저장부(110)는 DBMS(Database Management System)에서 데이터 조회 결과 수신한 테이블(Result Set)에 대해 수치형 컬럼은 테이블(Result Set)에 포함된 원본 컬럼 형식의 셀 크기 간격으로 해당 컬럼의 모든 셀 데이터를 차례로 바이너리(Binary) 값으로 변환 후 컬럼 별 하나의 바이너리 파일로 생성하여 디스크에 저장하고, 문자형 컬럼은 테이블(Result Set)에 포함된 각 셀에 들어있는 문자수에 해당하는 크기만큼 바이너리 값으로 변환 후 컬럼 별 하나의 바이너리 파일로 생성하여 디스크에 저장한다.The column binary
수치형 컬럼은 big int, small int, int, float 등이 해당하며, 문자형 컬럼은 Nvarchar, varchar, char 등이 해당한다. 이 밖에도 다양한 종류의 수치형 컬럼과 문자형 컬럼이 해당한다.Numeric columns include big int, small int, int, and float, and character columns include Nvarchar, varchar, and char. In addition, various types of numeric and character columns are applicable.
컬럼 바이너리 파일 리더부(120)는 컬럼 바이너리 파일 저장부(110)에 의해 디스크에 저장된 각각의 컬럼 별 바이너리 파일에서 셀 값을 하나씩 읽어 특정 순번의 레코드(Row)를 구성 후 레코드 단위로 메모리에 로딩한다. 사용자는 디스크에 저장된 대용량의 데이터에 대해 다양한 요구 및 조회를 할 수가 있으며, 사용자의 요구 사항 발생 시 레코드 단위로 메모리에 로딩함으로써, 최소한의 메모리 자원만을 사용할 수 있어 메모리 오버플로우의 문제가 발생하지 않는다.The column
구체적으로, 컬럼 바이너리 파일 저장부는 고정길이 컬럼 바이너리 저장부(111)와 가변길이 컬럼 바이너리 저장부(112)를 포함한다.Specifically, the column binary file storage unit includes a fixed-length column
고정길이 컬럼 바이너리 저장부(111)는 수치형 컬럼의 테이블(Result Set)에 포함된 원본 컬럼 형식의 셀 크기 간격으로 해당 컬럼의 모든 셀 데이터를 차례로 바이너리 값으로 변환 후 하나의 바이너리 파일로 생성하여 디스크에 저장한다.The fixed-length column
도 6을 참고하면, 테이블(Result Set)에 포함된 Col1은 헤더 8 byte를 시작으로 각 셀의 데이터를 big int 타입에 해당하는 8 byte 간격으로 차례로 바이너리 값으로 변환 후 ColumnFile0001.conbin 바이너리 파일로 생성하여 디스크에 저장한다. Col2 는 헤더 8 byte를 시작으로 각 셀의 데이터를 small int 타입에 해당하는 2 byte 간격으로 차례로 바이너리 값으로 변환 후 ColumnFile0002.conbin 바이너리 파일로 생성하여 디스크에 저장한다. Col3는 헤더 8 byte를 시작으로 int 타입에 해당하는 4 byte 간격으로 차례로 바이너리 값으로 변환 후 ColumnFile0003.conbin 바이너리 파일로 생성하여 디스크에 저장하며, Col4는 헤더 8 byte를 시작으로 float 타입에 해당하는 8 byte 간격으로 차례로 바이너리 값으로 변환 후 ColumnFile0004.conbin 바이너리 파일로 생성하여 디스크에 저장한다. 각 컬럼의 바이너리 파일 명은 예시로 든 것이며, 원본 테이블의 컬럼 형식을 그대로 유지한다.Referring to FIG. 6, Col1 included in the table (Result Set) converts the data of each cell into binary values sequentially at 8 byte intervals corresponding to the big int type starting with 8 bytes of the header, and then creates the ColumnFile0001.conbin binary file. And save it to disk. Col2 converts the data of each cell into a binary value sequentially at 2-byte intervals corresponding to the small int type, starting with 8 bytes of the header, and then creates the ColumnFile0002.conbin binary file and stores it on the disk. Col3 converts to binary values sequentially at 4-byte intervals corresponding to int type starting with 8 bytes of header, and then creates ColumnFile0003.conbin binary file and stores them on disk.Col4 starts with 8 bytes of header and
가변길이 컬럼 바이너리 저장부(112)는 문자형 컬럼의 각 셀에 포함되는 문자수에 해당하는 바이트(Byte) 단위 크기와 셀 데이터 파일 상에서 각 셀의 문자가 시작하는 위치를 나타내는 주소 값을 동일한 크기의 하나의 셀에 속하도록 하여 각 셀을 연속적으로 구성하고 모든 셀 데이터를 차례로 바이너리 값으로 변환 후 셀 지시자(Indicator) 파일을 생성하여 디스크에 저장하며, 각 셀에 포함되는 문자수에 해당하는 바이트 단위 크기만큼 순차적으로 바이너리 값으로 변환 후 셀 데이터 파일을 생성하여 디스크에 저장한다.The variable-length column
도 6을 참고하면, 문자형 컬럼에 해당하는 Col5는 셀 지시자 파일에 해당하는 ColumnFile0005.conbin와 셀 데이터 파일에 해당하는 ColumnFile0005.conbin.data 두 개의 바이너리 파일로 구성된다.Referring to FIG. 6, Col5 corresponding to a character column is composed of two binary files, ColumnFile0005.conbin corresponding to the cell indicator file and ColumnFile0005.conbin.data corresponding to the cell data file.
예를 들어, Col5 의 두 번째 셀에 해당하는 'A…C' 의 경우 셀 지시자(Indicator) 파일에는 문자수에 해당하는 15와 셀 데이터 파일 상에서 'A…C' 가 시작하는 위치를 나타내는 주소 값 28이 두 번째 셀 위치에 포함된다. 셀 데이터 파일은 문자형 컬럼의 원본 셀에 포함되는 문자열이 바이트 단위의 크기로 연속적으로 저장된다.For example,'A…' for the second cell of Col5. In the case of C', the cell indicator file contains 15 characters and'A… The address value 28 indicating the position where C'starts is included in the second cell position. In the cell data file, the character string included in the original cell of the character column is continuously stored in bytes.
문자형 컬럼의 세 번째 셀 위치에 해당하는 'A..F'를 바이너리 값으로 변환하여 저장할 때 셀 지시자 파일의 세 번째 셀 위치에는 셀 데이터 파일에서 'A..F'가 시작하는 위치를 나타내는 주소 값 43과 문자수에 해당하는 5가 저장되고, 셀 데이터 파일에는 두 번째 셀 위치의 문자열에 이어서 'A..F'를 저장한다.When'A..F' corresponding to the third cell position of a character column is converted to a binary value and saved, the third cell position of the cell indicator file is an address indicating the position where'A..F' starts in the cell data file. The
위와 같은 방식으로 셀 지시자 파일에 해당하는 ColumnFile0005.conbin 바이너리 파일과 셀 데이터 파일에 해당하는 ColumnFile0005.conbin.data 바이너리 파일을 생성하여 디스크에 저장한다.In the same way as above, the ColumnFile0005.conbin binary file corresponding to the cell indicator file and the ColumnFile0005.conbin.data binary file corresponding to the cell data file are created and saved on the disk.
고정길이 컬럼 바이너리 저장부(111)는 고정길이 헤더 구성부(111a)를 포함한다.The fixed-length column
도 6을 참고하면, 고정길이 헤더 구성부(111a)는 컬럼 별 바이너리 파일을 생성 시 각 컬럼마다 헤더를 생성하며, 헤더에는 테이블(Result Set)에 정의된 수치형 컬럼의 원본 형식, 컬럼 별 바이너리 파일의 생성 형식 및 컬럼 별 바이너리 파일 생성시 셀 당 크기를 저장한다. 도 6의 예에서는 수치형 컬럼의 헤더를 8 byte로 모두 동일하게 구성하는 경우를 나타내었다.Referring to FIG. 6, the fixed-length
이때, 수치형 컬럼의 원본 형식과 컬럼 별 바이너리 파일의 생성 형식은 같은 값을 같고, 컬럼 별 바이너리 파일 생성시 셀 당 크기는 원본 형식의 크기와 같은 값이 저장된다.At this time, the original format of the numeric column and the generation format of the binary file for each column have the same value, and when the binary file for each column is created, the size per cell is the same as the size of the original format.
도 6에서 고정길이 헤더 구성부(111a)는 컬럼 별 바이너리 파일 ColumnFile0001.conbin, ColumnFile0002.conbin, ColumnFile0003.conbin, ColumnFile0004.conbin 생성 시 각 컬럼마다 8 byte의 헤더를 생성한다.In FIG. 6, the fixed-length
도 8을 참고하면, 고정길이기본의 경우 Fetch Type 2 byte, P Type1, P Type2 각각 1 byte, P Size1, P Size2 각각 1byte 그리고 Reserved1, Reserved2 각각 1 byte로 총 8 byte로 구성된다.Referring to FIG. 8, in the case of fixed length basic, each of Fetch Type is 2 bytes, P Type1, P Type2 is 1 byte, P Size1, P Size2 is 1 byte, and Reserved1 and Reserved2 are each 1 byte.
여기서 Fetch Type은 조회된 테이블(Result Set)의 원본 형식을 나타내고, P Type1, P Type2 는 본 발명에 따른 컬럼 바이너리 파일 작성 형식을 나타내며, P Size1, P Size2는 본 발명에 따른 컬럼 바이너리 파일의 셀 당 크기(byte)를 나타낸다. Reserved1, Reserved2는 추가적인 사용을 위해 남겨둔 것이다.Here, Fetch Type represents the original format of the searched table (Result Set), P Type1 and P Type2 represent the column binary file creation format according to the present invention, and P Size1 and P Size2 represent the cell of the column binary file according to the present invention. It represents the size per unit (byte). Reserved1 and Reserved2 are reserved for further use.
고정길이 컬럼 바이너리 저장부(111)는 고정길이 헤더 구성부(111a)에 의해 저장된 헤더를 바이너리 값으로 변환하고, 테이블(Result Set)에 포함된 원본 컬럼의 셀 데이터를 고정길이 헤더 구성부(111a)에 의해 저장된 컬럼 별 바이너리 파일 생성시 셀 당 크기 간격으로 차례로 바이너리 값으로 변환시켜 컬럼 별 헤더와 데이터가 결합된 하나의 바이너리 파일로 생성하여 디스크에 저장한다.The fixed-length column
도 6에서 수치형에 해당하는 Col1~Col4는 고정길이 바이너리 파일로 구성하였으나, 문자형에 해당하는 Col5는 아래와 같이 가변길이 바이너리 파일로 구성한다. 그리고 수치형 컬럼은 원본 컬럼 별로 하나의 바이너리 파일을 생성하였으나, 문자형 컬럼은 원본 컬럼 별로 셀 지시자 파일과 셀 데이터 파일로 구성되는 두 개의 바이너리 파일을 생성한다.In FIG. 6, Col1 to Col4 corresponding to the numeric type is composed of a fixed-length binary file, but Col5 corresponding to the character type is composed of a variable-length binary file as follows. In addition, one binary file is created for each original column in the numeric column, but two binary files consisting of a cell indicator file and a cell data file are created for each original column in the character column.
가변길이 컬럼 바이너리 저장부(112)는 셀 지시자 헤더 구성부(112a)와 셀 데이터 헤더 구성부(112b)를 포함한다.The variable-length column
도 6을 참고하면, ColumnFile0005.conbin은 셀 지시자 파일을 나타내고, ColumnFile0005.conbin.data는 셀 데이터 파일을 나타낸다.Referring to FIG. 6, ColumnFile0005.conbin represents a cell indicator file, and ColumnFile0005.conbin.data represents a cell data file.
셀 지시자 헤더 구성부(112a)는 셀 지시자(Indicator) 파일 생성 시 헤더를 생성하며, 헤더에는 테이블(Result Set)에 정의된 문자형 컬럼의 원본 형식, 셀 지시자 파일 생성 형식 및 셀 지시자 파일 생성시 셀 당 크기를 저장한다.The cell indicator header configuration unit 112a generates a header when generating a cell indicator file, and in the header, the original format of the character column defined in the table (Result Set), the cell indicator file generation format, and the cell indicator file are generated. Save the sugar size.
도 8을 참고하면, 가변길이기본이 셀 지시자 헤더 구성부(112a)에 의해 생성되는 8 byte의 First File Header를 나타낸다.Referring to FIG. 8, an 8-byte First File Header generated by the variable-length basic cell indicator header configuration unit 112a is shown.
Fetch Type은 조회된 Result Set의 원본 형식을 나타내고, P Type1 및 P Type2는 셀 지시자 파일의 생성 형식을 나타내며, P Size1, P Size2는 셀 지시자 파일이 생성하는 셀 당 크기를 나타낸다.Fetch Type represents the original format of the retrieved Result Set, P Type1 and P Type2 represent the cell indicator file generation format, and P Size1 and P Size2 represent the size per cell generated by the cell indicator file.
구체적으로, P Type1에는 데이터 파일의 위치를 나타내는 정수 형식, P Type2 는 읽을 문자수 정수 형식을 나타내며, P Size1은 데이터 파일 위치 정수 형식의 크기를 나타내고, P Size2는 읽을 문자수 정수 형식의 크기(byte)를 나타낸다. Reserved1, Reserved2는 추가적인 사용을 위해 남겨둔 것이다.Specifically, P Type1 represents an integer format representing the location of the data file, P Type2 represents the integer format of the number of characters to be read, P Size1 represents the size of the data file location integer format, and P Size2 represents the size of the integer format of the number of characters to read ( byte). Reserved1 and Reserved2 are reserved for further use.
도 6에서는 셀 지시자 파일을 구성하는 각 셀이 6 byte로 구성되는 예를 나타내었으며, 6 byte의 공간에 데이터 파일의 위치를 나타내는 정수와 데이터 파일의 읽을 문자수가 들어간다. 물론, 데이터 파일의 위치는 데이터 파일의 2 byte 헤더부터 계산된 위치 값이 들어간다.6 shows an example in which each cell constituting the cell indicator file is composed of 6 bytes, and an integer indicating the location of the data file and the number of characters to be read of the data file are entered in the 6 byte space. Of course, the location of the data file contains the location value calculated from the 2-byte header of the data file.
가변길이 컬럼 바이너리 저장부(112)는 셀 지시자 헤더 구성부(112a)에 의해 저장된 헤더를 바이너리 값으로 변환하고, 문자형 컬럼의 각 셀에 포함되는 문자수에 해당하는 바이트 단위의 크기와 셀 데이터 파일 상에서 각 셀의 문자가 시작하는 위치를 나타내는 주소 값을 셀 지시자 헤더 구성부(112a)에 의해 저장된 셀 지시자 파일 생성 시 셀 당 크기 간격으로 차례로 바이너리 값으로 변환시켜 셀 지시자 헤더와 셀 지시자 데이터가 결합된 하나의 바이너리 파일로 생성하여 디스크에 저장한다.The variable-length column
도 6의 예에서는 각 셀에 포함되는 문자수에 해당하는 바이트 단위의 크기와 셀 데이터 파일 상에서 각 셀의 문자가 시작하는 위치를 나타내는 주소 값을 셀 당 크기에 해당하는 6 byte 간격으로 차례로 바이너리 값으로 변환시켜 셀 지시자 헤더와 셀 지시자 데이터가 결합된 하나의 바이너리 파일을 생성하여 디스크에 저장한다.In the example of FIG. 6, the size in bytes corresponding to the number of characters included in each cell and the address value indicating the start position of the character in each cell in the cell data file are sequentially binary values at 6 byte intervals corresponding to the size per cell. To create a binary file in which the cell indicator header and the cell indicator data are combined and stored in the disk.
도 6을 참고하면, 셀 데이터 헤더 구성부(112b)는 셀 데이터 파일 생성 시 헤더를 생성하며, 헤더에는 테이블(Result Set)에 정의된 문자형 컬럼의 원본 형식을 저장한다.Referring to FIG. 6, the cell data
도 8을 참고하면, Second File Header의 가변길이기본이 셀 데이터 헤더 구성부(112b)에 의해 생성되는 2 byte의 헤더 구조를 나타낸다. 셀 데이터 파일의 헤더는 2 바이트 또는 4 바이트로 구성할 수 있으며, 도 6에서는 2 바이트로 구성된 예를 나타낸다. 셀 데이터 헤더 구성부(112b)에 의해 생성되는 헤더에는 Result Set의 원본 형식이 포함되며, 디스크에 저장된 셀 데이터 바이너리 파일에서 문자형 컬럼을 반환할 때 헤더에 포함된 Result Set의 원본 형식으로 반환하게 된다.Referring to FIG. 8, a 2 byte header structure generated by the cell data
가변길이 컬럼 바이너리 저장부(112)는 셀 데이터 헤더 구성부(112b)에 의해 저장된 헤더를 바이너리 값으로 변환하고, 문자형 컬럼의 각 셀에 포함되는 문자수에 해당하는 바이트 단위 크기 간격으로 각 셀의 문자를 바이너리 값으로 변환시켜 셀 데이터 헤더와 셀 데이터가 결합된 하나의 바이너리 파일로 생성하여 디스크에 저장한다.The variable-length column
셀 데이터 파일에는 데이터(Result Set)에 들어있던 원본 문자열 데이터가 순차적으로 바이너리 값으로 변환되어 들어가며, 상기에서 살펴본 셀 지시자 파일에서 각 셀의 문자가 시작하는 위치와 읽을 문자수 값을 확인 후 셀 데이터 파일에서 해당하는 문자수 크기만큼을 읽어서 원본 형식으로 변환 후 반환하게 된다.In the cell data file, the original string data contained in the data (Result Set) is sequentially converted into binary values, and the cell data after checking the starting position of each cell's character and the number of characters to be read in the cell indicator file discussed above. It reads as much as the number of characters in the file, converts it to the original format, and returns it.
컬럼 바이너리 파일 리더부(120)는 고정길이 컬럼 바이너리 리더부(121)와 가변길이 컬럼 바이너리 리더부(122)를 포함한다.The column binary
고정길이 컬럼 바이너리 리더부(121)는 디스크에 저장된 수치형 컬럼의 바이너리 파일에서 N 번째 레코드 값을 읽을 때 (바이너리 파일의 헤더 크기 + N × 바이너리 파일의 헤더에 정의된 원본 컬럼 형식의 셀 당 크기)를 구하여 N 번째 레코드 위치로 이동 후 원본 컬럼 형식의 셀 크기에 해당하는 만큼 읽어온다.The fixed-length column
도 6을 참고하면, 수치형 컬럼에 해당하는 ColumnFile0001.conbin에서 3번째 레코드 값을 읽을 때 (바이너리 파일의 헤더 크기 8 byte + 2 × 바이너리 파일의 헤더에 정의된 원본 컬럼 형식의 셀 당 크기 8 byte)를 계산하면 3 번째 레코드 위치로 이동 후 원본 컬럼 형식의 셀 크기에 해당하는 만큼 읽어올 수 있다.Referring to FIG. 6, when reading the 3rd record value from ColumnFile0001.conbin corresponding to a numeric column (header size of
참고로, 레코드 인덱스는 0 부터 시작하며, 3 번째 레코드 인덱스 값은 2가 되는 것이다.For reference, the record index starts from 0, and the third record index value becomes 2.
가변길이 컬럼 바이너리 리더부(122)는 디스크에 저장된 문자형 컬럼의 바이너리 파일에서 N 번째 레코드 값을 읽을 때 (셀 지시자(Indicator) 파일의 헤더 크기 + N × (바이너리 파일의 헤더에 정의된 셀 데이터 파일 위치 정수 형식 크기 + 읽을 문자수 정수 형식 크기))를 구하여 N 번째 레코드 위치로 이동 후 셀 데이터 파일 위치 정수 형식 크기에 해당하는 만큼 읽어서 셀 데이터 파일에서의 N 번째 레코드의 시작 주소를 구하고, 읽을 문자수 정수 형식의 크기에 해당하는 만큼 읽어서 셀 데이터 파일에서 읽을 문자수에 해당하는 바이트 크기를 구한 후 셀 데이터 파일의 N 번째 레코드의 시작 주소에서 읽을 문자수에 해당하는 바이트 크기만큼 읽어온다.When reading the Nth record value from the binary file of the character column stored on the disk, the variable-length column
도 6을 참고하면, 문자형 컬럼의 바이너리 파일에서 3 번째 레코드 값을 읽을 때 (셀 지시자(Indicator) 파일 ColumnFile0005.conbin의 헤더 크기 8 byte + 2 × (바이너리 파일의 헤더에 정의된 셀 데이터 파일 위치 정수 형식 크기 + 읽을 문자수 정수 형식 크기))를 구한다. 도 6의 예에서 바이너리 파일의 헤더에 정의된 셀 데이터 파일 위치 정수 형식 크기와 읽을 문자수 정수 형식 크기를 더하면 6 byte가 될 것이다. 8 + 2 × 6 = 20 byte가 된다.Referring to FIG. 6, when reading the third record value from a binary file of a character column (header size of the cell indicator
해당 위치에서 셀 데이터 파일 위치 정수 형식 크기에 해당하는 만큼 읽어서 셀 데이터 파일 ColumnFile0005.conbin.data 에서의 N 번째 레코드의 시작 주소인 '43'을 구하고, 읽을 문자수 정수 형식의 크기에 해당하는 만큼 읽어서 셀 데이터 파일 ColumnFile0005.conbin.data 에서 읽을 문자수에 해당하는 바이트 크기 '5'를 구한 후 셀 데이터 파일의 N 번째 레코드의 시작 주소에서 읽을 문자수에 해당하는 5 바이트 크기만큼 읽어온다.From that location, read as much as the size of the cell data file location integer format, find '43', the starting address of the Nth record in the cell data file ColumnFile0005.conbin.data, and read as much as the number of characters to be read corresponding to the integer format size. After calculating the byte size of '5' corresponding to the number of characters to be read from the cell data file ColumnFile0005.conbin.data, the size of 5 bytes corresponding to the number of characters to be read is read from the start address of the Nth record of the cell data file.
[제2 실시 예][Second Embodiment]
제2 실시 예는 DBMS에서 데이터 조회 결과 수신한 테이블(Result Set)을 컬럼 별 바이너리 파일로 저장할 때 용량 감소 정책을 적용하여 원본 컬럼의 형식보다 용량이 감소된 방식으로 저장하는 구조이다. 용량 감소 정책을 적용하면 디스크에 저장되는 용량을 상당히 줄일 수가 있다. 제1 실시 예의 경우와 중복되는 부분에 대해서는 자세한 설명을 생략한다.In the second embodiment, when a table (Result Set) received as a result of a data inquiry from a DBMS is stored as a binary file for each column, a capacity reduction policy is applied to store it in a way that the capacity is reduced compared to the original column format. Applying a capacity reduction policy can significantly reduce the capacity stored on the disk. Detailed descriptions of parts that overlap with the case of the first embodiment will be omitted.
도 4, 5, 7, 8 및 9를 참고하면, 본 발명의 다른 실시 예에 따른 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 구조(200)는 컬럼 바이너리 파일 저장부(210)와 컬럼 바이너리 파일 리더부(220)를 포함하며, 용량 감소 정책 정보부(230)를 더 포함할 수 있다.4, 5, 7, 8, and 9, a
컬럼 바이너리 파일 저장부(210)는 DBMS(Database Management System)에서 데이터 조회 결과 수신한 테이블(Result Set)에 대해 각 수치형 컬럼에 속하는 셀 데이터 값의 성격에 따라 원본 컬럼에 대해 각 수치형 컬럼 별 서로 다른 용량 감소 변환 형식을 적용하여, 변환된 형식의 셀 크기 간격으로 해당 컬럼의 모든 셀 데이터를 차례로 바이너리(Binary) 값으로 변환 후 컬럼 별 하나의 바이너리 파일로 생성하여 디스크에 저장한다.The column binary
컬럼 바이너리 파일 리더부(220)는 컬럼 바이너리 파일 저장부에 의해 디스크에 저장된 각각의 컬럼 별 바이너리 파일에서 셀 값을 하나씩 구하여 특정 순번의 레코드(Row)를 구성 후 레코드 단위로 메모리에 로딩한다.The column
용량 감소 정책 정보부(230)는 데이터 조회 결과 수신한 테이블(Result Set)의 하나 이상의 수치형 컬럼을 각각 바이너리 파일로 변환하여 생성할 때 바이너리 파일의 크기를 줄이기 위해 각 컬럼에 속하는 셀 데이터 값의 성격에 맞는 용량 감소 정책을 각 컬럼 별로 매칭하여 저장한다. 각 용량 감소 정책의 구체적인 내용은 아래에서 자세하게 설명한다.The capacity reduction
용량 감소 정책은 문자형 컬럼에는 적용되지 않으며, 수치형 컬럼에만 적용된다. 여기서 컬럼에 속하는 셀 데이터 값의 성격은 big int, float, int, small int 등의 컬럼 타입, 해당 컬럼에 속하는 각 셀 값의 중복 정도 및 다른 컬럼에 속하는 셀 값과의 관계 등을 말하며, 각 컬럼에 속하는 셀 데이터 값의 성격에 맞는 용량 감소 정책은 관리자에 의해 매칭될 수 있다.The capacity reduction policy does not apply to character columns, but only to numeric columns. Here, the characteristics of cell data values belonging to a column refer to the column types such as big int, float, int, small int, etc., the degree of overlap of each cell value belonging to the column, and the relationship with the cell values belonging to other columns. A capacity reduction policy that fits the characteristics of the cell data value belonging to may be matched by the administrator.
컬럼 바이너리 파일 저장부(210)는 수신한 테이블(Result Set)에서 컬럼 별로 셀의 데이터 값을 추출 후 용량 감소 정책 정보부(230)를 참고하여 해당 컬럼에 매칭된 용량 감소 정책에 따라 테이블의 원본 컬럼 형식 보다 용량이 감소된 컬럼 별 바이너리 파일을 생성하여 디스크에 저장한다.The column binary
용량 감소 정책 정보부(230)는 테이블(Result Set)의 원본 컬럼 타입보다 작지만 해당 컬럼에 속하는 셀의 실제 데이터 최대값을 수용할 수 있는 지정된 크기의 컬럼 타입으로 해당 컬럼의 형식을 변환시켜서 원본 컬럼의 용량을 감소시키는 제1 용량 감소 정책(231)을 포함한다.The capacity reduction
도 5, 7, 8 및 9를 참고하면, 형식변환이 제1 용량 감소 정책(231)에 해당한다. 테이블(Result Set)의 Col1 컬럼 형식은 bigint(8 byte)이지만 실제 최대값이 int(4 byte)이어서 형식변환을 적용하여 8 byte에 해당하는 크기의 셀을 4 byte에 해당하는 크기로 용량을 축소시키는 것이다. 원본의 크기를 반으로 줄여서 디스크에 저장할 수가 있다.5, 7, 8, and 9, the format conversion corresponds to the first
컬럼 바이너리 파일 저장부(210)는 테이블(Result Set)에 정의된 해당 컬럼의 원본 형식, 컬럼 별 바이너리 파일의 생성 형식에 해당하는 제1 용량 감소 정책(231)에 의해 변환된 크기의 컬럼 형식 및 변환된 형식의 크기를 저장하는 헤더를 생성하는 제1 용량 감소 헤더 구성부(211)를 포함한다.The column binary
제1 용량 감소 헤더 구성부(211)는 8 byte의 헤더를 구성하며, Fetch Type에는 Result Set에 정의된 해당 컬럼의 원본 형식을 저장하고, P Type에는 형식 변환 형식을 저장하고, P Size에는 변환 형식의 크기를 저장하고, Reserved에는 추후 사용을 위해 남겨둔다. Fetch Type, P Type, P Size, Reserved는 각각 2 byte로 구성한다.The first capacity reduction
컬럼 바이너리 파일 저장부(210)는 제1 용량 감소 헤더 구성부(211)에 의해 생성된 헤더를 바이너리 값으로 변환하고, 테이블(Result Set)에 포함된 원본 컬럼의 셀 데이터를 제1 용량 감소 정책(231)에 의해 변환된 크기의 컬럼 형식 및 크기에 따라 테이블의 원본 컬럼 형식 보다 용량이 감소된 셀 당 크기 간격으로 차례로 바이너리 값으로 변환시켜 헤더와 데이터가 결합된 하나의 바이너리 파일로 생성하여 디스크에 저장한다.The column binary
용량 감소 정책 정보부(230)는 테이블(Result Set)의 원본 컬럼 타입이 부동소수(float)인 경우 해당 컬럼에 속하는 셀의 데이터 값을 정수 부분과 소수 부분으로 나누어 정수 부분을 수용할 수 있는 크기의 제1 타입을 지정하고, 소수 부분을 수용할 수 있는 크기의 제2 타입을 지정하여, 제1 타입과 제2 타입이 결합된 크기에 해당하는 컬럼 타입으로 원본 컬럼의 형식을 복합적으로 변환시켜서 원본 컬럼의 용량을 감소시키는 제2 용량 감소 정책(232)을 포함한다.When the original column type of the table (Result Set) is a floating-point number, the capacity reduction
도 5, 7, 8 및 9를 참고하면, 형식복합변환이 제2 용량 감소 정책(232)에 해당한다. 테이블(Result Set)의 Col2 컬럼이 float(8byte)이지만 정수 부분과 소수 부분(소수 부분을 정수로 변환했을 때)의 최대값이 2byte로 표현 가능하여 총 4byte로 형식복합변환을 적용하여 디스크에 저장되는 데이터의 용량을 줄일 수가 있다. 하나의 셀 공간을 나누어 정수 부분을 수용할 수 있는 크기의 제1 타입에는 정수를 저장하고, 소수 부분을 수용할 수 있는 크기의 제2 타입에는 소수를 저장한다.5, 7, 8 and 9, the format complex conversion corresponds to the second
컬럼 바이너리 파일 저장부(210)는 테이블(Result Set)에 정의된 해당 컬럼의 원본 형식, 컬럼 별 바이너리 파일의 생성 형식에 해당하는 제2 용량 감소 정책(232)에 따라 정수 부분을 수용할 수 있는 크기의 제1 타입 형식, 제2 용량 감소 정책에 따라 소수 부분을 수용할 수 있는 크기의 제2 타입 형식, 제1 타입 형식의 크기 및 제2 타입 형식의 크기를 저장하는 헤더를 생성하는 제2 용량 감소 헤더 구성부(212)를 포함한다.The column binary
도 8을 참고하면, 2 byte의 Fetch Type에는 테이블(Result Set)의 원본 형식을 저장하고, 1 byte의 P Type1에는 정수 부분을 수용할 수 있는 크기의 제1 타입 형식을 저장하고, 1 byte의 P Type2에는 소수 부분을 수용할 수 있는 크기의 제2 타입 형식을 저장하고, 1 byte의 P Size1에는 제1 타입 형식의 크기를 저장하고, 1 byte의 P Size2에는 제2 타입 형식의 크기를 저장하며, Reserved1에는 소수부 정밀도를 저장한다.Referring to FIG. 8, an original format of a table (Result Set) is stored in a 2-byte Fetch Type, and a first type format having a size that can accommodate an integer part is stored in a 1-byte P Type1, and P Type2 stores the second type format with a size that can accommodate the fractional part, 1 byte P Size1 stores the size of the first type type, and 1 byte P Size2 stores the size of the second type format. And the precision of the decimal part is stored in Reserved1.
컬럼 바이너리 파일 저장부(210)는 제2 용량 감소 헤더 구성부(212)에 의해 생성된 헤더를 바이너리 값으로 변환하고, 테이블(Result Set)에 포함된 원본 컬럼의 셀 데이터를 제2 용량 감소 정책(232)에 의해 변환된 크기의 컬럼 형식 및 크기에 따라 테이블의 원본 컬럼 형식 보다 용량이 감소된 셀 당 크기 간격으로 해당 컬럼의 각 셀의 정수 부분과 소수 부분을 바이너리 값으로 변환시켜 헤더와 데이터가 결합된 하나의 바이너리 파일로 생성하여 디스크에 저장한다.The column binary
용량 감소 정책 정보부(230)는 테이블(Result Set)의 원본 컬럼에 속하는 각 셀 데이터 값을 다른 컬럼의 같은 레코드(Row) 위치에 있는 셀 데이터 값을 변수로 하는 계산식에 의해 구할 수 있는 관계를 형성하는 경우 원본 컬럼에 속하는 셀 데이터 전부를 소정의 크기를 갖는 하나의 셀에 상기 계산식을 저장하는 방식으로 변환시켜 원본 컬럼의 용량을 감소시키는 제3 용량 감소 정책(233)을 포함한다.The capacity reduction
도 5, 7, 8 및 9를 참고하면, 계산식 변환이 제3 용량 감소 정책(232)에 해당한다. 테이블(Result Set) 상의 Col3 컬럼 형식은 int(4byte)이지만 Col5 컬럼의 수식 연산 결과, Col3 = 2 * Col5 + 5 의 관계식이 성립하므로 {Col5} * 2 + 5 수식을 후위 표기법으로 변환하여 계산식 변환을 적용한다. 이와 같은 계산식을 이용하여 Col3의 값을 Col5와의 계산식에 의해 간단하게 구할 수가 있기 때문에 Col3의 원본 컬럼 데이터 대신에 계산식만 있으면 된다.5, 7, 8, and 9, the conversion of the calculation formula corresponds to the third
도 7의 예에서는 계산식 변환을 적용하여 8 byte의 헤더 외에 10 byte의 공간에 {Col5} * 2 + 5 수식만을 저장함으로써, 4억 바이트에 해당하는 원본 컬럼의 크기를 10 byte로 줄일 수가 있다.In the example of FIG. 7, the size of an original column corresponding to 400 million bytes can be reduced to 10 bytes by storing only the expression {Col5} * 2 + 5 in a 10-byte space in addition to the 8-byte header by applying the calculation formula conversion.
컬럼 바이너리 파일 저장부(210)는 테이블(Result Set)에 정의된 해당 컬럼의 원본 형식, 컬럼 별 바이너리 파일의 생성 형식 및 컬럼 별 바이너리 파일 생성시 셀 당 크기를 저장하는 헤더를 생성하는 제3 용량 감소 헤더 구성부(213)를 포함한다.The column binary
컬럼 바이너리 파일 저장부(210)는 제3 용량 감소 헤더 구성부(213)에 의해 생성된 헤더를 바이너리 값으로 변환하고, 제3 용량 감소 정책(233)에 정의된 계산식(도 7의 예에서는 {Col5} * 2 + 5)이 포함된 소정의 크기만큼을 바이너리 값으로 변환시켜 헤더와 데이터가 결합된 하나의 바이너리 파일로 생성하여 디스크에 저장한다. 상기의 다른 컬럼 및 계산식은 사용자에 의해 지정된다.The column binary
용량 감소 정책 정보부(230)는 테이블(Result Set)의 원본 컬럼에 속하는 각 셀 데이터 값이 동일한 값에 대해서는 중복을 제거하여 서로 다른 값들로만(Distinct) 구성된 딕셔너리(Dictionary) 컬럼에 해당하는 ColumnFile0005.conbin.Dictionary 바이너리 파일을 만들고, 테이블(Result Set)의 원본 컬럼 타입보다 작고 원본 셀 데이터 값의 딕셔너리 컬럼 상의 인덱스(Index)를 저장하는 지정된 크기의 인덱스 컬럼에 해당하는 ColumnFile0005.conbin 바이너리 파일을 만들어서 원본 컬럼의 용량을 감소시키는 제4 용량 감소 정책(234)을 포함한다.The capacity reduction
도 5, 7, 8 및 9를 참고하면, Column Dictionary가 제4 용량 감소 정책(234)에 해당한다. 테이블(Result Set)의 Col4 컬럼 형식은 int(4byte)이지만 중복제거(Distinct)했을 때 값 개수가 200개 미만이어서 셀 데이터의 중복을 제거하여 Dictionay 파일을 만들고 해당 Dictionary의 Hash값(Index Key)을 colbin 파일로 저장하는 Column Dictionary 변환을 적용한다.5, 7, 8, and 9, the column dictionary corresponds to the fourth
도 7을 참고하면, ColumnFile0005.conbin 의 첫번째 컬럼 0은 ColumnFile0005.conbin.Dictionary 의 36을 가리키고, 두번째 컬럼 1은 42를 가리키며, 세번째 컬럼 0은 중복된 값이어서 제거된 36을 가리킨다. 네번째 컬럼 2는 중복 제거 후 한 칸 앞으로 당겨진 366을 가리킨다.Referring to FIG. 7, the
컬럼 바이너리 파일 저장부(210)는 테이블(Result Set)에 정의된 해당 컬럼의 원본 형식, 컬럼 별 바이너리 파일의 생성 형식에 해당하는 제4 용량 감소 정책(234)에 의해 지정된 인덱스 컬럼 형식 및 인덱스 컬럼 형식의 크기를 저장하는 헤더를 생성하는 제4 용량 감소 인덱스 헤더 구성부(2140a)를 포함한다.The column binary
도 8을 참고하면, First File Header(8 byte)는 제4 용량 감소 인덱스 헤더 구성부(2140a)에 의해 생성되는 헤더의 구성을 나타낸다. Fetch Type에는 데이터(Result Set)의 원본 형식이 저장되고, P Type에는 Dictionay Key(Index) 형식이 저장되고, P Size에는 Dictionay Key(Index) 형식의 크기가 저장된다.Referring to FIG. 8, a First File Header (8 bytes) represents a configuration of a header generated by the fourth capacity reduction index header configuration unit 2140a. The original type of data (Result Set) is stored in the fetch type, the Dictionay Key (Index) type is stored in the P Type, and the size of the Dictionay Key (Index) type is stored in the P Size.
컬럼 바이너리 파일 저장부(210)는 제4 용량 감소 인덱스 헤더 구성부(214a)에 의해 생성된 헤더를 바이너리 값으로 변환하고, 제4 용량 감소 정책(234)에 의해 지정된 크기의 인덱스 컬럼 형식 및 크기에 따라 원본 셀 데이터 값의 딕셔너리 컬럼 상의 인덱스 값을 차례로 바이너리 값으로 변환시켜 헤더와 데이터가 결합된 하나의 인덱스 바이너리 파일로 생성하여 디스크에 저장한다.The column binary
컬럼 바이너리 파일 저장부(210)는 딕셔너리(Dictionary) 컬럼 형식 및 딕셔너리 컬럼 형식의 크기를 저장하는 헤더를 생성하는 제4 용량 감소 딕셔너리 헤더 구성부(214b)를 포함한다.The column binary
도 8을 참고하면, Second File Header(2 또는 4 byte)는 제4 용량 감소 딕셔너리 헤더 구성부(214b)에 의해 생성되는 헤더의 구성을 나타낸다. 헤더에는 Dictionary 값의 형식과 Dictionary 형식의 크기가 저장된다.Referring to FIG. 8, the Second File Header (2 or 4 bytes) represents the configuration of a header generated by the fourth capacity reduction dictionary
제4 용량 감소 정책(234)에 따라 테이블(Result Set)에 정의된 해당 컬럼에서 중복을 제거하여 서로 다른 값들로만 순차적으로 구성하고, 딕셔너리 컬럼의 셀 당 크기 간격으로 차례로 바이너리 값으로 변환시켜 헤더와 데이터가 결합된 하나의 딕셔너리 바이너리 파일로 생성하여 디스크에 저장한다.According to the fourth
컬럼 바이너리 파일 리더부(220)는 용량 감소 정책 정보부(230)에 저장된 각 컬럼 별 용량 감소 정책을 해석하여 디스크에 저장된 수치형 컬럼 바이너리 파일에서 셀 값을 하나씩 구하고, 컬럼 바이너리 파일의 헤더에 저장된 원본 컬럼 형식으로 변환하여 특정 순번의 레코드를 구성 후 메모리에 로딩한다.The column
컬럼 바이너리 파일 리더부(220)는 디스크에 저장된 컬럼 별 바이너리 파일에서 헤더에 저장된 P Type과 P Size 값을 읽어서 디스크에 저장된 셀 데이터를 확인한 후 Fetch Type에 해당하는 원본 컬럼 형식으로 변환하여 특정 순번의 레코드를 구성 후 메모리에 로딩할 수 있다.The column
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시할 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다.Until now, the present invention has been described in detail with reference to preferred embodiments, but those skilled in the art to which the present invention pertains can practice the present invention in other specific forms without changing the technical spirit or essential features thereof, The embodiments are illustrative in all respects and should be understood as non-limiting.
그리고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 특정되는 것이며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.In addition, the scope of the present invention is specified by the claims to be described later rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts are included in the scope of the present invention. Should be interpreted as.
100, 200...컬럼 별 바이너리 파일로 저장하는 구조
110, 210...컬럼 바이너리 파일 저장부
111...고정길이 컬럼 바이너리 저장부
111a...고정길이 헤더 구성부
112...가변길이 컬럼 바이너리 저장부
112a...셀 지시자 헤더 구성부
112b...셀 데이터 헤더 구성부
120, 220...컬럼 바이너리 파일 리더부
121...고정길이 컬럼 바이너리 리더부
122...가변길이 컬럼 바이너리 리더부
211...제1 용량 감소 헤더 구성부
212...제2 용량 감소 헤더 구성부
213...제3 용량 감소 헤더 구성부
214a...제4 용량 감소 인덱스 헤더 구성부
214b..제4 용량 감소 딕셔너리 헤더 구성부
230...용량 감소 정책 정보부
231...제1 용량 감소 정책
232...제2 용량 감소 정책
233...제3 용량 감소 정책
234...제4 용량 감소 정책
300...대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템
330...차트표시부
331...2차원 배열 인덱스 번호 관리부
332...배열구조 변환부
333...레코드 인덱스 작성부
334...레코드 인덱스 리더부Structure storing 100, 200... as binary files for each column
110, 210...column binary file storage
111... fixed-length column binary storage
111a... fixed-length header components
112...variable length column binary storage
112a...cell indicator header configuration section
112b...cell data header configuration section
120, 220...column binary file reader
121...fixed-length column binary reader
122...variable length column binary reader
211...first capacity reduction header component
212...second capacity reduction header component
213...3rd capacity reduction header component
214a...4th capacity reduction index header component
214b..4th capacity reduction dictionary header component
230...Ministry of Information on Capacity Reduction Policy
231...first capacity reduction policy
232...second capacity reduction policy
233...3rd capacity reduction policy
234...the fourth capacity reduction policy
A system that displays 300... large amounts of data in a chart without memory capacity limitations
330...chart display
331...2D array index number management unit
332...array structure conversion unit
333... record indexing unit
334...record index reader
Claims (8)
상기 컬럼 바이너리 파일 저장부에 의해 디스크에 저장된 각각의 컬럼 별 바이너리 파일에서 셀 값을 하나씩 읽어 레코드(Row)를 구성 후 레코드 단위로 메모리 로딩하는 컬럼 바이너리 파일 리더부; 및
상기 컬럼 바이너리 파일 리더부에 의해 메모리에 로딩된 레코드에서 X 좌표와 Y 좌표에 해당하는 각 셀 값을 이용하여 차트 상의 X 좌표와 Y 좌표에 해당하는 위치에 픽셀(Pixel) 형태로 시각적으로 표시하는 차트 표시부를 포함하되,
상기 차트 표시부는
차트 상의 X 좌표와 Y 좌표에 해당하는 위치에 픽셀(Pixel) 형태로 시각적으로 표시되는 순서대로 레코드 인덱스(Row Index) 번호를 부여하여 X 좌표와 Y 좌표에 해당하는 2차원 배열의 픽셀 각 위치에 대응하여 하나 이상의 레코드 인덱스 번호를 저장하는 2차원 배열 인덱스 번호 관리부;
상기 2차원 배열을 1차원 배열로 변환하고, 2차원 배열에서의 X 좌표와 Y 좌표를 1차원 배열의 인덱스 번호로 변환하고, 1차원 배열의 인덱스 번호에 대응하여 상기 하나 이상의 레코드 인덱스 번호를 저장하는 배열구조 변환부;
상기 1차원 배열의 인덱스 번호에 대응하는 레코드 인덱스 번호의 레코드 인덱스 데이터 파일 상에서의 시작 위치를 나타내는 주소 값과 레코드 인덱스 번호의 개수를 동일한 크기의 하나의 셀에 속하도록 하여 순차적으로 구성하고, 모든 셀 데이터를 차례로 바이너리 값으로 변환 후 레코드 인덱스 지시자(Indicator) 파일을 생성하여 디스크에 저장하며, 상기 1차원 배열의 인덱스 번호에 대응하는 레코드 인덱스 번호를 지정된 크기에 해당하는 바이트 단위로 순차적으로 바이너리 값으로 변환 후 레코드 인덱스 데이터 파일을 생성하여 디스크에 저장하는 레코드 인덱스 작성부; 및
차트 상의 특정 픽셀을 지정 시 해당 픽셀의 X 좌표와 Y 좌표에 해당하는 1차원 배열의 인덱스 번호를 이용하여 디스크에 저장된 상기 레코드 인덱스 지시자 파일에서 레코드 인덱스 번호의 레코드 인덱스 데이터 파일 상에서의 시작 위치를 나타내는 주소 값과 레코드 인덱스 번호의 개수를 구한 후 상기 레코드 인덱스 데이터 파일에서 해당하는 개수의 레코드 인덱스 번호를 가져오는 레코드 인덱스 리더부를 포함하는 것을 특징으로 하는 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템.
A column binary file storage unit that generates table data received as a result of a data search result from a database management system (DBMS) as a column-based binary file and stores it in a disk;
A column binary file reader configured to read cell values one by one from a binary file for each column stored on a disk by the column binary file storage unit, construct a record, and then load a memory in a record unit; And
Visually display in the form of pixels at positions corresponding to X coordinates and Y coordinates on the chart by using each cell value corresponding to the X coordinate and Y coordinate in the record loaded into the memory by the column binary file reader. Including the chart display,
The chart display unit
By assigning record index numbers in the order of visual display in pixel form at the positions corresponding to the X and Y coordinates on the chart, each position of the pixels in the two-dimensional array corresponding to the X and Y coordinates. A two-dimensional array index number management unit for storing at least one record index number correspondingly;
Convert the two-dimensional array to a one-dimensional array, convert the X and Y coordinates of the two-dimensional array to the index number of the one-dimensional array, and store the index number of the one or more records in correspondence with the index number of the one-dimensional array. An array structure conversion unit;
The address value indicating the start position in the record index data file of the record index number corresponding to the index number of the one-dimensional array and the number of record index numbers belong to one cell of the same size and are sequentially configured, and all cells After converting the data to binary values in turn, a record index indicator file is created and stored on disk, and the record index number corresponding to the index number of the one-dimensional array is sequentially converted into binary values in byte units corresponding to the specified size. A record index creation unit for generating a record index data file after conversion and storing it in a disk; And
When designating a specific pixel on the chart, the index number of the one-dimensional array corresponding to the X coordinate and Y coordinate of the pixel is used to indicate the start position of the record index data file of the record index number in the record index indicator file stored on the disk. A large amount of data is stored using a binary file storage structure for each column, comprising a record index reader that obtains the address value and the number of record index numbers and retrieves the corresponding number of record index numbers from the record index data file. Charting system without capacity constraints.
상기 컬럼 바이너리 파일 리더부는 상기 레코드 인덱스 리더부가 가져온 하나 이상의 레코드 인덱스 번호를 전달 받아 상기 디스크에 저장된 컬럼 단위의 바이너리 파일에서 레코드 인덱스 번호에 해당하는 셀 값을 하나씩 읽어 레코드(Row)를 구성하는 방식으로 상기 전달 받은 모든 레코드 인덱스 번호에 대해 차례로 레코드를 구성하여 상기 차트 표시부에 전달하고,
상기 차트 표시부는 레코드 인덱스 번호에 해당하는 레코드 정보를 디스플레이 하는 것을 특징으로 하는 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템.
The method according to claim 1,
The column binary file reader receives one or more record index numbers obtained by the record index reader and reads cell values corresponding to the record index numbers one by one from the column-unit binary file stored in the disk to form a record. Records are sequentially formed for all the received record index numbers and transferred to the chart display unit,
The chart display unit displays record information corresponding to a record index number, using a binary file storage structure for each column, and displaying a large amount of data as a chart without a memory capacity limitation.
상기 컬럼 바이너리 파일 저장부에 의해 디스크에 저장된 각각의 컬럼 별 바이너리 파일에서 셀 값을 하나씩 읽어 레코드(Row)를 구성 후 레코드 단위로 메모리 로딩하는 컬럼 바이너리 파일 리더부; 및
상기 컬럼 바이너리 파일 리더부에 의해 메모리에 로딩된 레코드에서 X 좌표와 Y 좌표에 해당하는 각 셀 값을 이용하여 차트 상의 X 좌표와 Y 좌표에 해당하는 위치에 픽셀(Pixel) 형태로 시각적으로 표시하는 차트 표시부를 포함하되,
상기 컬럼 바이너리 파일 저장부는,
수치형 컬럼의 테이블(Result Set)에 포함된 원본 컬럼 형식의 셀 크기 간격으로 해당 컬럼의 모든 셀 데이터를 차례로 바이너리 값으로 변환 후 하나의 바이너리 파일로 생성하여 디스크에 저장하는 고정길이 컬럼 바이너리 저장부; 및
문자형 컬럼의 각 셀에 포함되는 문자수에 해당하는 바이트(Byte) 단위 크기와 셀 데이터 파일 상에서 각 셀의 문자가 시작하는 위치를 나타내는 주소 값을 동일한 크기의 하나의 셀에 속하도록 하여 각 셀을 연속적으로 구성하고 모든 셀 데이터를 차례로 바이너리 값으로 변환 후 셀 지시자(Indicator) 파일을 생성하여 디스크에 저장하며, 각 셀에 포함되는 문자수에 해당하는 바이트 단위 크기만큼 순차적으로 바이너리 값으로 변환 후 셀 데이터 파일을 생성하여 디스크에 저장하는 가변길이 컬럼 바이너리 저장부를 포함하고,
상기 컬럼 바이너리 파일 리더부는,
디스크에 저장된 수치형 컬럼의 바이너리 파일에서 N 번째 레코드 값을 읽을 때 (바이너리 파일의 헤더 크기 + N × 바이너리 파일의 헤더에 정의된 원본 컬럼 형식의 셀 당 크기)를 구하여 N 번째 레코드 위치로 이동 후 원본 컬럼 형식의 셀 크기에 해당하는 만큼 읽어오는 고정길이 컬럼 바이너리 리더부; 및
디스크에 저장된 문자형 컬럼의 바이너리 파일에서 N 번째 레코드 값을 읽을 때 (셀 지시자(Indicator) 파일의 헤더 크기 + N × (바이너리 파일의 헤더에 정의된 셀 데이터 파일 위치 정수 형식 크기 + 읽을 문자수 정수 형식 크기))를 구하여 N 번째 레코드 위치로 이동 후 셀 데이터 파일 위치 정수 형식 크기에 해당하는 만큼 읽어서 셀 데이터 파일에서의 N 번째 레코드의 시작 주소를 구하고, 읽을 문자수 정수 형식의 크기에 해당하는 만큼 읽어서 셀 데이터 파일에서 읽을 문자수에 해당하는 바이트 크기를 구한 후 셀 데이터 파일의 N 번째 레코드의 시작 주소에서 읽을 문자수에 해당하는 바이트 크기만큼 읽어오는 가변길이 컬럼 바이너리 리더부를 포함하는 것을 특징으로 하는 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템.
A column binary file storage unit that generates table data received as a result of a data search result from a database management system (DBMS) as a column-based binary file and stores it in a disk;
A column binary file reader configured to read cell values one by one from a binary file for each column stored on a disk by the column binary file storage unit, construct a record, and then load a memory in a record unit; And
Visually display in the form of pixels at positions corresponding to X coordinates and Y coordinates on the chart by using each cell value corresponding to the X coordinate and Y coordinate in the record loaded into the memory by the column binary file reader. Including the chart display,
The column binary file storage unit,
Fixed-length column binary storage that converts all cell data in the column into binary values sequentially at the cell size interval of the original column type included in the numeric column table (Result Set), then creates a single binary file and stores it on disk ; And
The size in bytes corresponding to the number of characters included in each cell of the character column and the address value indicating the starting position of the character of each cell in the cell data file belong to one cell of the same size. Consecutively, after converting all cell data to binary values in sequence, a cell indicator file is created and stored on the disk, and cells are sequentially converted to binary values as much as the size in bytes corresponding to the number of characters contained in each cell. It includes a variable-length column binary storage unit that creates a data file and stores it on a disk,
The column binary file reader unit,
When reading the Nth record value from the binary file of the numeric column stored on the disk (header size of the binary file + N × size per cell of the original column format defined in the header of the binary file), it moves to the Nth record position. A fixed-length column binary reader that reads as much as the cell size of the original column format; And
When reading the value of the Nth record from the binary file of the character column stored on the disk (Header size of the cell indicator file + N × (Cell data file position defined in the header of the binary file) Integer format size + Number of characters to read Integer format Size)), move to the Nth record position, read as much as the size of the cell data file location integer format, and find the starting address of the Nth record in the cell data file, and read as much as the number of characters to be read that corresponds to the integer format size A column comprising a variable-length column binary reader that obtains the byte size corresponding to the number of characters to be read from the cell data file and reads the byte size corresponding to the number of characters to be read from the start address of the N-th record of the cell data file. A system that displays large amounts of data in a chart without memory capacity restrictions using the storage structure of each binary file.
상기 컬럼 바이너리 파일 저장부에 의해 디스크에 저장된 각각의 컬럼 별 바이너리 파일에서 셀 값을 하나씩 읽어 레코드(Row)를 구성 후 레코드 단위로 메모리 로딩하는 컬럼 바이너리 파일 리더부; 및
상기 컬럼 바이너리 파일 리더부에 의해 메모리에 로딩된 레코드에서 X 좌표와 Y 좌표에 해당하는 각 셀 값을 이용하여 차트 상의 X 좌표와 Y 좌표에 해당하는 위치에 픽셀(Pixel) 형태로 시각적으로 표시하는 차트 표시부를 포함하되,
상기 컬럼 바이너리 파일 저장부는,
수신한 테이블(Result Set)에 대해 각 수치형 컬럼에 속하는 셀 데이터 값의 성격에 따라 원본 컬럼에 대해 각 수치형 컬럼 별 서로 다른 용량 감소 변환 형식을 적용하여, 변환된 형식의 셀 크기 간격으로 해당 컬럼의 모든 셀 데이터를 차례로 바이너리(Binary) 값으로 변환 후 컬럼 별 하나의 바이너리 파일로 생성하여 디스크에 저장하며,
상기 데이터 조회 결과 수신한 테이블(Result Set)의 하나 이상의 수치형 컬럼을 각각 바이너리 파일로 변환하여 생성할 때 바이너리 파일의 크기를 줄이기 위해 각 컬럼에 속하는 셀 데이터 값의 성격에 맞는 용량 감소 정책을 각 컬럼 별로 매칭하여 저장하는 용량 감소 정책 정보부를 더 포함하고,
상기 컬럼 바이너리 파일 저장부는 수신한 테이블(Result Set)에서 컬럼 별로 셀의 데이터 값을 추출 후 상기 용량 감소 정책 정보부를 참고하여 해당 컬럼에 매칭된 용량 감소 정책에 따라 테이블의 원본 컬럼 형식 보다 용량이 감소된 컬럼 별 바이너리 파일을 생성하여 디스크에 저장하는 것을 특징으로 하는 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템.
A column binary file storage unit that generates table data received as a result of a data search result from a database management system (DBMS) as a column-based binary file and stores it in a disk;
A column binary file reader configured to read cell values one by one from a binary file for each column stored on a disk by the column binary file storage unit, construct a record, and then load a memory in a record unit; And
Visually display in the form of pixels at positions corresponding to X coordinates and Y coordinates on the chart by using each cell value corresponding to the X coordinate and Y coordinate in the record loaded into the memory by the column binary file reader. Including the chart display,
The column binary file storage unit,
For the received table (Result Set), according to the characteristics of the cell data values belonging to each numeric column, a different capacity reduction conversion format for each numeric column is applied to the original column, corresponding to the cell size interval of the converted format. Converts all cell data in a column to binary values in turn, creates a binary file for each column and stores it on disk.
In order to reduce the size of the binary file when generating by converting one or more numeric columns of the table (Result Set) received as a result of the data inquiry into a binary file, a capacity reduction policy suitable for the characteristics of the cell data values belonging to each column is implemented. Further comprising a capacity reduction policy information unit matching and storing by column,
The column binary file storage unit extracts the cell data value for each column from the received table (Result Set), and then refers to the capacity reduction policy information unit to reduce the capacity than the original column type of the table according to the capacity reduction policy matched to the corresponding column. A system that displays large-capacity data as a chart without limiting memory capacity using a binary file storage structure for each column, characterized in that binary files for each column are created and stored on disk.
상기 컬럼 바이너리 파일 리더부는
상기 용량 감소 정책 정보부에 저장된 각 컬럼 별 용량 감소 정책을 해석하여 디스크에 저장된 수치형 컬럼 바이너리 파일에서 셀 값을 하나씩 구하고, 컬럼 바이너리 파일의 헤더에 저장된 원본 컬럼 형식으로 변환하여 특정 순번의 레코드를 구성 후 메모리에 로딩하는 것을 특징으로 하는 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템.The method of claim 6,
The column binary file reader unit
By analyzing the capacity reduction policy for each column stored in the capacity reduction policy information unit, one by one cell value is obtained from the numeric column binary file stored on the disk, and converted to the original column format stored in the header of the column binary file to construct a specific sequence of records. A system that displays large-capacity data as a chart without limiting memory capacity by using a binary file storage structure for each column, which is then loaded into memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190022401A KR102177792B1 (en) | 2019-02-26 | 2019-02-26 | A system that displays large amounts of data on a chart without memory capacity limitation by using a binary file storage structure per column |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190022401A KR102177792B1 (en) | 2019-02-26 | 2019-02-26 | A system that displays large amounts of data on a chart without memory capacity limitation by using a binary file storage structure per column |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200104035A KR20200104035A (en) | 2020-09-03 |
KR102177792B1 true KR102177792B1 (en) | 2020-11-11 |
Family
ID=72450293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190022401A KR102177792B1 (en) | 2019-02-26 | 2019-02-26 | A system that displays large amounts of data on a chart without memory capacity limitation by using a binary file storage structure per column |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102177792B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138793A (en) * | 2021-12-03 | 2022-03-04 | 江西洪都航空工业集团有限责任公司 | Application method of elevation digital map under ZYNQ platform |
CN118520147B (en) * | 2024-07-24 | 2024-10-01 | 江苏华存电子科技有限公司 | Storage optimization method and system for multi-source data fusion |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100529995B1 (en) | 1997-07-21 | 2005-11-22 | 마이에스큐엘 에이비 | A method of storing elements in a database |
JP2013535737A (en) | 2010-07-27 | 2013-09-12 | オラクル・インターナショナル・コーポレイション | MySQL database-heterogeneous log-based replication |
KR101530441B1 (en) * | 2013-11-28 | 2015-06-19 | 고려대학교 산학협력단 | Method and apparatus for processing data based on column |
KR101806449B1 (en) | 2016-05-30 | 2017-12-07 | 주식회사 인브레인 | Ansi query statement generation system using graphical user interface and method thereof |
KR101915773B1 (en) * | 2018-02-26 | 2018-11-06 | 주식회사 에이치비 | Big data chart displaying method and apparatus |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101200773B1 (en) * | 2011-01-21 | 2012-11-13 | 충남대학교산학협력단 | Method for Extracting InputFormat for Handling Network Packet Data on Hadoop MapReduce |
KR102019717B1 (en) * | 2013-01-29 | 2019-09-09 | 삼성전자 주식회사 | Apparatus and method for managing memory of mobile terminal |
KR20160053587A (en) * | 2014-11-05 | 2016-05-13 | 주식회사 디오텍 | Method for minimizing database size of n-gram language model |
KR101814448B1 (en) * | 2016-03-15 | 2018-01-30 | 가톨릭관동대학교산학협력단 | mobile health care system and mobile health dashboard providing system based on components using the same |
KR20180099349A (en) * | 2017-02-28 | 2018-09-05 | 주식회사 미디어로그 | User terminal, and cloud service system including the same |
-
2019
- 2019-02-26 KR KR1020190022401A patent/KR102177792B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100529995B1 (en) | 1997-07-21 | 2005-11-22 | 마이에스큐엘 에이비 | A method of storing elements in a database |
JP2013535737A (en) | 2010-07-27 | 2013-09-12 | オラクル・インターナショナル・コーポレイション | MySQL database-heterogeneous log-based replication |
KR101530441B1 (en) * | 2013-11-28 | 2015-06-19 | 고려대학교 산학협력단 | Method and apparatus for processing data based on column |
KR101806449B1 (en) | 2016-05-30 | 2017-12-07 | 주식회사 인브레인 | Ansi query statement generation system using graphical user interface and method thereof |
KR101915773B1 (en) * | 2018-02-26 | 2018-11-06 | 주식회사 에이치비 | Big data chart displaying method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
KR20200104035A (en) | 2020-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109952569B (en) | Method and computer readable medium for dictionary-based connection and aggregation | |
US11899641B2 (en) | Trie-based indices for databases | |
US9805080B2 (en) | Data driven relational algorithm formation for execution against big data | |
EP3602351B1 (en) | Apparatus and method for distributed query processing utilizing dynamically generated in-memory term maps | |
Gray et al. | Online scientific data curation, publication, and archiving | |
US7454403B2 (en) | Method and mechanism of improving performance of database query language statements using data duplication information | |
US8219564B1 (en) | Two-dimensional indexes for quick multiple attribute search in a catalog system | |
CN103164507B (en) | Mixing connection of the row and column database table on primary direction | |
EP1504377B1 (en) | Storing and querying relational data in compressed storage format | |
CN110032604A (en) | Data storage device, transfer device and data bank access method | |
EP0851366A1 (en) | Modified indirect addressing for file system | |
CN105027071B (en) | Manage the operation to data storage unit | |
US10810174B2 (en) | Database management system, database server, and database management method | |
WO2010084754A1 (en) | Database system, database management method, database structure, and storage medium | |
US6424972B1 (en) | Floating point conversion for records of multidimensional database | |
KR102177792B1 (en) | A system that displays large amounts of data on a chart without memory capacity limitation by using a binary file storage structure per column | |
US9183320B2 (en) | Data managing method, apparatus, and recording medium of program, and searching method, apparatus, and medium of program | |
KR102227912B1 (en) | Optimized data condenser and method | |
Gu et al. | Analysis of data storage mechanism in NoSQL database MongoDB | |
KR102171430B1 (en) | A system that stores large amounts of data retrieved from a database as a binary file per column | |
CN117472693A (en) | Buried point data processing method, system, equipment and storage medium based on data lake | |
Belov et al. | Analysis of Big Data Storage Tools for Data Lakes based on Apache Hadoop Platform | |
Černjeka et al. | NoSQL document store translation to data vault based EDW | |
JP4914117B2 (en) | Data processing system | |
Otoo et al. | Chunked extendible dense arrays for scientific data storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |