KR101663547B1 - 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치 - Google Patents

데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치 Download PDF

Info

Publication number
KR101663547B1
KR101663547B1 KR1020160023401A KR20160023401A KR101663547B1 KR 101663547 B1 KR101663547 B1 KR 101663547B1 KR 1020160023401 A KR1020160023401 A KR 1020160023401A KR 20160023401 A KR20160023401 A KR 20160023401A KR 101663547 B1 KR101663547 B1 KR 101663547B1
Authority
KR
South Korea
Prior art keywords
group
search
record
records
compressed data
Prior art date
Application number
KR1020160023401A
Other languages
English (en)
Inventor
김옥수
Original Assignee
주식회사 아미크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아미크 filed Critical 주식회사 아미크
Priority to KR1020160023401A priority Critical patent/KR101663547B1/ko
Application granted granted Critical
Publication of KR101663547B1 publication Critical patent/KR101663547B1/ko
Priority to PCT/KR2016/011463 priority patent/WO2017146337A1/ko
Priority to EP16891741.7A priority patent/EP3422204A4/en
Priority to CN201680081603.6A priority patent/CN108701134A/zh
Priority to US16/077,208 priority patent/US11030050B2/en
Priority to JP2018543247A priority patent/JP6638821B2/ja
Priority to AU2016394743A priority patent/AU2016394743A1/en

Links

Images

Classifications

    • G06F17/30073
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • G06F17/30289
    • G06F17/30339
    • G06F17/30569

Abstract

데이터베이스 아카이빙 방법을 제공한다. 본 발명의 일 실시예에 따른 데이터베이스 아카이빙 방법은 데이터 아카이빙을 하려는 원본테이블에서 시간 및 필드(field)값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드(record)를 포함하는 적어도 하나의 레코드그룹을 선별하는 단계; 상기 선별된 적어도 하나의 레코드그룹 각각에 대하여, 상기 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 상기 선별정보를 압축테이블에 저장하는 단계; 및 상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 단계를 포함한다.

Description

데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치{METHOD AND APPARATUS FOR ARCHIVING AND SEARCHING DATABASE}
본 발명은 데이터베이스의 아카이빙 방법 및 그 장치와 아카이빙된 데이터베이스의 검색 방법 및 그 장치에 관한 것으로, 보다 구체적으로는 데이터 압축기술을 이용한 데이터베이스의 아카이빙 방법 및 그 장치와 압축되어 아카이빙된 데이터베이스를 검색하는 방법 및 그 장치에 관한 것이다.
인터넷의 보급 확대, 데이터 통신 기술의 발전 등과 더불어 PC, 랩탑 및 스마트폰과 같은 데이터 생산 및 소비 수단이 널리 보급됨에 따라, 오늘날 생산되고 소비되는 데이터의 양은 기하급수적으로 늘어나고 있는 실정이다.
이러한 데이터들을 효과적으로 분류하고 활용하기 위하여 데이터베이스를 이용하여 데이터를 관리하는 방법이 각종 기업, 단체 및 학교 등지에서 널리 이용되고 있다. 그러나, 늘어나는 데이터의 양이 기하급수적인 만큼, 데이터베이스의 용량도 곧 한계에 다다르게 될 것이며, 데이터베이스의 용량을 계속하여 확장하는 것도 비용 및 관리의 측면에서 제약이 있는 것이 현실이다.
따라서, 데이터베이스를 효율적으로 아카이빙하여 용량을 절약할 수 있는 기술에 대한 관심이 증가하고 있다. 특히, 데이터 압축기술을 이용한 데이터베이스의 아카이빙 방법 및 그 장치와 압축되어 아카이빙된 데이터베이스를 검색하는 방법 및 그 장치에 대한 관심이 대두되고 있다.
관련 선행기술로는 대한민국 공개특허 제2014-0072929호(발명의 명칭: 아카이빙 작업수행 자동화 방법, 공개일자: 2014년 6월 16일)가 있다.
본 발명은 데이터베이스의 레코드를 소정의 기준에 의해 분류하고, 분류된 레코드별로 압축하여 아카이빙함으로써 데이터베이스의 용량을 절약할 수 있는 데이터베이스 아카이빙 방법 및 그 장치를 제공하고자 한다.
또한, 본 발명은 위와 같은 방법으로 아카이빙된 데이터베이스를 병렬로 검색하여 보다 효율적인 데이터베이스 검색 방법 및 그 장치를 제공하고자 한다.
상기 목적을 달성하기 위해, 본 발명에서 제공하는 데이터베이스 아카이빙 방법은 데이터 아카이빙을 하려는 원본테이블에서 시간 및 필드(field)값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드(record)를 포함하는 적어도 하나의 레코드그룹을 선별하는 단계; 상기 선별된 적어도 하나의 레코드그룹 각각에 대하여, 상기 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 상기 선별정보를 압축테이블에 저장하는 단계; 및 상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 단계를 포함한다.
바람직하게는, 상기 선별정보를 압축테이블에 저장하는 단계는 상기 선별된 적어도 하나의 레코드그룹 각각에 대하여, 상기 레코드그룹에 포함된 복수의 레코드의 데이터를 버퍼에 저장하는 단계; 상기 버퍼에 저장된 데이터를 압축하여 상기 그룹압축데이터를 생성하는 단계; 상기 생성된 그룹압축데이터에 대응되는 상기 선별정보를 취득하는 단계; 및 상기 그룹압축데이터를 상기 선별정보와 상기 압축테이블 상의 동일한 레코드에 저장하는 단계를 포함할 수 있다.
바람직하게는, 상기 선별된 적어도 하나의 레코드그룹 중에서 레코드의 개수가 임계치를 초과하는 초과레코드그룹이 존재하면, 상기 초과레코드그룹을 레코드의 개수가 상기 임계치 이하인 복수의 상기 레코드그룹으로 분리하는 단계를 더 포함하고, 상기 선별정보를 압축테이블에 저장하는 단계는 상기 분리된 복수의 레코드그룹 각각에 부여된 일련번호를 상기 압축테이블에 더 저장할 수 있다.
또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 데이터베이스 아카이빙 장치는 데이터 아카이빙을 하려는 원본테이블에서 시간 및 필드값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별하는 데이터선별부; 상기 선별된 적어도 하나의 레코드그룹 각각에 대하여, 상기 레코드그룹별로 압축하여 그룹압축데이터를 생성하는 데이터압축부; 및 상기 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 상기 선별정보를 압축테이블에 저장하고, 상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 DB관리부를 포함한다.
바람직하게는, 상기 데이터압축부는 상기 선별된 적어도 하나의 레코드그룹 각각에 대하여, 상기 레코드그룹에 포함된 복수의 레코드의 데이터를 버퍼에 저장하고, 상기 버퍼에 저장된 데이터를 압축하여 상기 그룹압축데이터를 생성하고, 상기 DB관리부는 상기 생성된 그룹압축데이터에 대응되는 상기 선별정보를 취득하고, 상기 그룹압축데이터를 상기 선별정보와 상기 압축테이블 상의 동일한 레코드에 저장할 수 있다.
바람직하게는, 상기 데이터선별부는 상기 선별된 적어도 하나의 레코드그룹 중에서 레코드의 개수가 임계치를 초과하는 초과레코드그룹이 존재하면, 상기 초과레코드그룹을 레코드의 개수가 상기 임계치 이하인 복수의 상기 레코드그룹으로 더 분리하고, 상기 DB관리부는 상기 분리된 복수의 레코드그룹 각각에 부여된 일련번호를 상기 압축테이블에 더 저장할 수 있다.
또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 아카이빙된 데이터베이스의 검색 방법은 시간 및 필드값 중 적어도 하나에 대한 선별정보 및 상기 선별정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터를 포함하는 압축 테이블에서 사용자가 원하는 레코드를 검색하기 위한 검색조건을 수신하는 단계; 검색이 수행되는 컴퓨터의 성능 및 상기 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계; 및 상기 결정된 DB검색과정의 개수에 기초하여 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계를 포함한다.
바람직하게는, 상기 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계는 상기 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하는 단계; 상기 압축테이블에 저장된 상기 그룹압축데이터 중에서 상기 수신된 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수를 결정하는 단계; 및 상기 수집된 컴퓨터성능정보 및 상기 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계;를 포함할 수 있다.
바람직하게는, 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계는 상기 결정된 개수의 DB검색과정 각각에 대하여, 상기 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수 중 적어도 하나에 기초하여 적어도 하나의 상기 그룹압축데이터를 할당하는 단계; 및 상기 각각의 DB검색과정별로 상기 할당된 적어도 하나의 그룹압축데이터의 압축 해제 및 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계를 포함할 수 있다.
바람직하게는, 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계는 상기 압축테이블로 아카이빙된 원본테이블에 포함된 필드의 종류, 크기, 순서 및 명칭에 대한 정보인 테이블구조정보에 더 기초할 수 있다.
바람직하게는, 상기 DB검색과정은 상기 각각의 DB검색과정별로 할당된 프로세스(process) 또는 쓰레드(thread)를 이용하여 검색을 수행할 수 있다.
또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 아카이빙된 데이터베이스의 검색 장치는 시간 및 필드값 중 적어도 하나에 대한 선별정보 및 상기 선별정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터를 포함하는 압축 테이블에서 사용자가 원하는 레코드를 검색하기 위한 검색조건을 수신하는 수신부; 검색이 수행되는 컴퓨터의 성능 및 상기 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 검색준비부; 및 상기 결정된 DB검색과정의 개수에 기초하여 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 병렬검색부를 포함한다.
바람직하게는, 상기 검색준비부는 상기 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하고, 상기 압축테이블에 저장된 상기 그룹압축데이터 중에서 상기 수신된 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수를 결정하고, 상기 수집된 컴퓨터성능정보 및 상기 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정할 수 있다.
바람직하게는, 상기 병렬검색부는 상기 결정된 개수의 DB검색과정 각각에 대하여, 상기 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수에 기초하여 적어도 하나의 상기 그룹압축데이터를 할당하고, 상기 각각의 DB검색과정별로 상기 할당된 적어도 하나의 그룹압축데이터의 압축 해제 및 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행할 수 있다.
바람직하게는, 상기 병렬검색부는 상기 압축테이블로 아카이빙된 원본테이블에 포함된 필드의 종류, 크기, 순서 및 명칭에 대한 정보인 테이블구조정보에 더 기초할 수 있다.
바람직하게는, 상기 DB검색과정은 상기 각각의 DB검색과정별로 할당된 프로세스 또는 쓰레드를 이용하여 검색을 수행할 수 있다.
본 발명은 데이터베이스에 저장된 데이터를 검색 빈도, 중요도 등에 따라 분류하고, 분류 결과별로 압축하여 아카이빙함으로써, 데이터베이스의 사용 용량을 획기적으로 줄일 수 있으며, 아카이빙된 데이터의 검색 효율도 극대화되는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 아카이빙 방법을 설명하기 위하여 도시한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 선별정보를 압축테이블에 저장하는 방법을 설명하기 위하여 도시한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 아카이빙된 데이터베이스의 검색 방법을 설명하기 위하여 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 DB검색과정의 개수를 결정하는 방법을 설명하기 위하여 도시한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 데이터베이스 아카이빙 장치를 설명하기 위하여 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 아카이빙된 데이터베이스의 검색 장치를 설명하기 위하여 도시한 도면이다.
도 7 및 8은 본 발명의 일 실시예에 따른 압축테이블을 설명하기 위하여 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 아카이빙 방법을 설명하기 위하여 도시한 흐름도이다.
단계 S110에서는, 데이터베이스 아카이빙 장치가 데이터 아카이빙을 하려는 원본테이블에서 시간 및 필드(field)값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드(record)를 포함하는 적어도 하나의 레코드그룹을 선별한다.
테이블은 데이터베이스에서 데이터를 저장하는 기본 구조를 이루는 단위이며, 원본테이블은 데이터베이스에 포함된 복수의 테이블 중에서 용량을 절약하기 위하여 아카이빙을 하려는 테이블일 수 있다.
데이터베이스 아카이빙 장치는 원본테이블에서 소정의 시간 및 필드값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별할 수 있다.
이때, 선별정보는 시간에 대한 정보이거나, 원본테이블에 포함된 특정한 필드값에 대한 정보일 수 있으며 둘다를 포함하는 정보일 수 있다. 예를 들어, 시간에 대한 선별정보는 원본테이블에 포함된 시간에 대한 필드를 이용하여 매월 단위의 레코드를 선별하는 정보일 수 있다. 또한, 필드값에 대한 선별정보는 원본테이블에 포함된 소정의 필드를 이용하여 그 필드의 필드값에 따라 레코드를 선별하는 정보일 수 있다. 또한, 시간 및 필드값 모두에 대한 선별정보는 시간에 대한 필드 및 소정의 필드를 함께 이용하여, 레코드를 선별하는 정보일 수 있다.
한편, 선별정보에 포함되는 필드값은 원본테이블에서 가장 검색이 빈번하게 발생하는 필드의 필드값으로 결정될 수 있다. 이때, 가장 검색이 빈번한 필드를 이용하여 레코드를 선별하는 이유는 아카이빙 된 후, 이 아카이빙된 데이터베이스를 검색할 때 효율성을 극대화할 수 있기 때문이다.
레코드그룹은 원본테이블에 포함된 전체 레코드 중에서 선별정보를 이용하여 분류된 복수의 레코드로 구성된 그룹이다. 레코드그룹은 선별기준에 따라서 적어도 하나 이상 생성될 수 있으며, 필요에 따라서 원본테이블의 전체가 아닌 일부의 레코드만을 대상으로 한정하여 레코드그룹을 생성할 수 있다. 예를 들어, 원본테이블에서 2015년 이전의 레코드만을 대상으로 하여 아카이빙하기 위하여 레코드그룹을 생성할 수 있다.
한편, 하나의 레코드그룹에 포함되는 레코드의 개수는 원본테이블에 포함된 전체 레코드의 개수, 데이터베이스를 검색하는 컴퓨터의 성능 및 데이터베이스의 검색 조건 패턴 등을 종합적으로 분석 및 검토하여 결정될 수 있다.
다른 실시예에서는, 데이터베이스 아카이빙 장치가 그 선별된 적어도 하나의 레코드그룹 중에서 레코드의 개수가 임계치를 초과하는 초과레코드그룹이 존재하면, 그 초과레코드그룹을 레코드의 개수가 임계치 이하인 복수의 레코드그룹으로 분리할 수 있다.
예컨대, 하나의 레코드그룹이 포함할 수 있는 레코드의 개수인 임계치가 10만개로 설정될 수 있다. 그러나, 만약에, 선별된 레코드그룹에 그 임계치를 초과하는 레코드 개수를 포함한 초과레코드그룹이 존재한다면, 이는 컴퓨터의 과부하 및 검색 과정의 비효율을 초래할 수 있어, 문제의 소지가 될 수 있다
따라서, 하나의 레코드그룹이 10만개를 초과하는 레코드를 가지는 경우, 이를 10만개 단위로 분리하여 여러 개의 레코드그룹을 생성할 수 있다. 예컨대, 하나의 레코드그룹이 25만개의 레코드 개수를 가지는 경우, 데이터베이스 아카이빙 장치가 이 초과레코드그룹을 10만개씩의 레코드 개수를 가지는 2개의 레코드그룹과 5만개의 레코드 개수를 가지는 1개의 레코드그룹의 총 3개의 레코드그룹으로 분리할 수 있다.
한편, 위와 같이 분리된 복수의 레코드그룹은 서로 동일한 선별정보에 의해 분류되었기 때문에, 그 복수의 레코드그룹을 서로 구별할 방법이 없을 수 있다. 따라서, 그 분리된 복수의 레코드그룹 각각에 일련번호(예, 1,2,3,4,…)를 부여하고 압축테이블의 일련번호 필드에 더 저장할 수 있다. 이 경우, 아카이빙된 데이터베이스를 검색할 때에도, 레코드그룹 각각을 구별하여 검색을 수행할 수 있다. 이에 대하여는, 도 7에 대한 설명에서 구체적으로 후술한다.
단계 S120에서는, 데이터베이스 아카이빙 장치가 그 선별된 적어도 하나의 레코드그룹 각각에 대하여, 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 그 그룹압축데이터에 대응되는 선별정보를 압축테이블에 저장한다.
압축테이블은 원본테이블을 레코드그룹 단위로 압축하여 아카이빙한 데이터가 저장되는 테이블을 의미한다. 또한, 압축테이블은 레코드그룹별로 압축하여 생성된 그룹압축데이터를 저장하기 위한 필드와 그 그룹압축데이터에 대응되는 선별정보를 저장하기 위한 적어도 하나의 필드를 포함할 수 있다.
그룹압축데이터는 분류된 레코드그룹 각각을 압축하여 생성한 바이너리 데이터일 수 있으며, 그룹압축데이터를 생성하고 압축테이블에 저장하는 구체적인 과정은 도 2, 도 7 및 도 8에 대한 설명에서 자세하게 후술한다.
마지막으로 단계 S130에서는, 데이터베이스 아카이빙 장치가 그 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 그 원본테이블에서 삭제한다.
데이터베이스를 압축하여 아카이빙하는 목적은 데이터베이스의 저장 공간을 절약하기 위함이므로, 아카이빙이 된 레코드그룹에 포함되는 복수의 레코드들을 원본테이블에서 삭제함으로써 데이터베이스의 저장 공간을 절약할 수 있다.
이와 같이, 본 발명의 일실시예에 따른 데이터베이스 아카이빙 방법은 압축하는 절차를 거쳐 데이터베이스를 아카이빙함으로써, 데이터베이스의 용량을 획기적으로 절약하는 효과가 있다. 또한, 데이터베이스에 포함된 원본테이블을 시간 또는 빈번히 검색되는 필드값으로 분류한 후 아카이빙함으로써, 추후에 그 아카이빙된 데이터를 검색하는데 있어서 검색의 효율성을 극대화할 수 있는 효과가 있다.
도 2는 본 발명의 일 실시예에 따른 선별정보를 압축테이블에 저장하는 방법을 설명하기 위하여 도시한 흐름도이다. 이때, 선별정보를 압축테이블에 저장하는 과정은 선별된 적어도 하나의 레코드그룹 각각에 대하여 수행될 수 있다.
단계 S210에서는, 데이터베이스 아카이빙 장치가 레코드그룹에 포함된 복수의 레코드의 데이터를 버퍼에 저장한다.
복수의 레코드의 데이터가 저장되는 버퍼의 크기는 원본테이블의 테이블 구조(필드의 개수, 종류 및 크기) 및 레코드그룹에 포함되는 레코드의 임계치에 기초하여 결정될 수 있다.
예컨대, 원본테이블이 DATE(문자 8자), NAME(문자 30자) 및 AGE(정수 4바이트)의 총 3개의 필드를 포함하고 있고, 레코드그룹의 레코드 개수에 대한 임계치가 10만개라고 하면, 문자 1자를 2바이트로 계산할 때, 버퍼의 크기는 최소 10만 * (8*2 + 30*2 + 4) = 800만바이트(약 8메가바이트)가 될 수 있다.
그리고, 데이터베이스 아카이빙 장치가 레코드그룹에 포함된 레코드 및 그 레코드의 필드값을 순차적으로 모두 읽어서, 버퍼에 차례대로 저장할 수 있다.
단계 S220에서는, 데이터베이스 아카이빙 장치가 그 버퍼에 저장된 데이터를 압축하여 그룹압축데이터를 생성한다.
그룹압축데이터는 버퍼에 저장된 레코드그룹의 데이터를 압축하여 생성된 바이너리 형태의 결과물일 수 있다. 이때, 압축으로 인한 손실이 발생하지 않도록 하기 위하여, 무손실의 압축 알고리즘인 ZIP, CTW, LZ77 또는 LZW 등이 사용될 수 있다.
단계 S230에서는, 데이터베이스 아카이빙 장치가 그 생성된 그룹압축데이터에 대응되는 선별정보를 취득한다.
예컨대, 데이터베이스 아카이빙 장치가 시간에 대한 선별정보에 기초하여 레코드그룹을 분류하고, 그 레코드그룹에 대응되는 그룹압축데이터를 생성하였을 때, 그 그룹압축데이터는 2015년2월에 해당하는 선별정보를 가진 복수의 레코드로부터 생성되었을 수 있다. 이때, 그룹압축데이터에 대응되는 선별정보는 2015년2월이 될 수 있다.
마지막으로 단계 S240에서는, 데이터베이스 아카이빙 장치가 생성된 그룹압축데이터를 취득한 선별정보와 함께 압축테이블 상의 동일한 레코드에 저장한다.
압축테이블은 바이너리 형태인 그룹압축데이터를 저장하기 위한 필드와 선별정보를 저장하기 위한 적어도 하나의 필드를 포함할 수 있다. 즉, 생성된 그룹압축데이터는 압축된 바이너리 데이터를 저장하기 위한 필드에 저장되고, 그 그룹압축데이터에 대응되는 선별정보는 그 적어도 하나의 필드에 분산되어 저장될 수 있다.
한편, 도 7 및 도 8은 압축테이블을 설명하기 위하여 도시한 도면으로, 압축테이블의 구조를 설명하면 다음과 같다.
도 7을 참조하면, 원본테이블(710)은 시간에 대한 Date필드(714)를 포함하고 있다. 이때, 원본테이블(710)을 시간에 대한 선별정보인 Date필드(714)의 필드값에 기초하여 분류한 후, 각 분류 결과별로 그룹압축데이터(726) 및 그 그룹압축데이터에 대응되는 시간에 대한 선별정보(722)를 압축테이블(720)에 저장할 수 있다. 이때, Date필드(714)의 값이 2002.01인 레코드의 개수가 Doc.No.필드(712)의 필드값을 참조할 때 1부터 190,000까지 19만개 존재하여 레코드그룹의 임계치 10만개를 초과하고 있다. 그러면, 그 레코드그룹은 각각 10만개 및 9만개의 레코드를 포함하는 2개의 레코드그룹으로 분리될 수 있다. 그리고, 그 분리된 2개의 레코드그룹에 대응되는 그룹압축데이터가 각각 생성되며, 생성된 그룹압축데이터(726)별로 고유한 일련번호(724)가 1과 2로 부여되어 압축테이블(720)에 함께 저장될 수 있다.
도 8을 참조하면, 원본테이블(810)은 시간에 대한 Date필드(814)와 빈번하게 검색되는 필드인 Col1필드(816) 및 Col2필드(818)를 포함하고 있다. 이때, 원본테이블(810)을 시간 및 필드값에 대한 선별정보인 Date필드(814), Col1필드(816) 및 Col2필드(818)의 필드값에 기초하여 분류한 후, 각 분류 결과별로 그룹압축데이터(825) 및 그 그룹압축데이터에 대응되는 선별정보(821, 822, 823)를 압축테이블(820)에 저장할 수 있다. 즉, Date필드(814)의 값이 2002.01이고 Col1필드(816)의 값이 1000이고, Col2필드(818)의 값이 A인 레코드는 Doc.No.필드(812)의 필드값을 참조할 때, 1부터 90,000까지의 9만개이므로, 그 9만개의 레코드가 하나의 레코드그룹이 되고, 그룹압축데이터(825)로 생성되어 대응되는 선별정보(821, 822, 823)와 함께 저장될 수 있다. 마찬가지로, Date필드(814)의 값이 2002.01이고 Col1필드(816)의 값이 1000이고, Col2필드(818)의 값이 B인 레코드는 Doc.No.필드(812)의 필드값을 참조할 때, 90,001부터 150,000까지의 6만개이므로, 그 6만개의 레코드가 하나의 레코드그룹이 되고, 그룹압축데이터(825)로 생성되어 대응되는 선별정보(821, 822, 823)와 함께 저장될 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 선별정보를 압축테이블에 저장하는 방법은 그룹압축데이터 및 그 그룹압축데이터에 대응되는 선별정보를 압축테이블의 동일한 레코드에 저장하여 추후 선별정보만을 이용하여 대응되는 그룹압축데이터를 보다 효율적으로 찾아낼 수 있는 효과가 있다.
도 3은 본 발명의 일 실시예에 따른 아카이빙된 데이터베이스의 검색 방법을 설명하기 위하여 도시한 흐름도이다.
단계 S310에서는, 데이터베이스의 검색 장치가 시간 및 필드값 중 적어도 하나에 대한 선별정보 및 그 선별정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터를 포함하는 압축 테이블에서 사용자가 원하는 레코드를 검색하기 위한 검색조건을 수신한다.
이때, 수신된 검색조건은 SQL(structured query language)문 형태의 검색조건일 수 있다. 즉, 데이터베이스의 검색 장치가 그룹압축데이터와 그 그룹압축데이터에 대응되는 선별정보가 저장된 압축테이블에서 사용자가 원하는 레코드를 검색하기 위한 검색조건을 SQL문의 형식으로 수신할 수 있다.
이때, 사용자는 압축테이블을 검색하는 것인지 알지 못한 상태에서 원본테이블에서 레코드를 검색하기 위한 검색조건을 생성할 수 있으며, 데이터베이스의 검색 장치가 그 생성된 검색조건을 수신할 수 있다.
단계 S320에서는, 데이터베이스의 검색 장치가 검색이 수행되는 컴퓨터의 성능 및 검색조건을 만족하는 선별정보에 대응되는 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정한다.
DB검색과정은 아카이빙된 데이터베이스에서 레코드의 검색을 수행하는 단일 과정을 의미한다. 따라서, 만일 레코드의 검색이 병렬로 처리되는 경우에는, DB검색과정이 복수개 존재하여, 동시에 진행되는 것으로 이해될 수 있다
한편, DB검색과정의 개수가 컴퓨터의 성능에 기초하여 결정되는 것은 각 DB검색과정이 압축된 그룹압축데이터로부터 레코드를 검색하는 과정은 컴퓨터에 많은 부하를 줄 수 있기 때문이다. 또한, DB검색과정의 개수가 검색조건을 만족하는 선별정보에 대응되는 그룹압축데이터의 개수에 기초하여 결정되는 것은 그 그룹압축데이터의 개수가 결국은 검색의 양 또는 범위와 관련될 수 있기 때문이다.
한편, 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 구체적인 과정에 대하여는 도 4에 대한 설명에서 구체적으로 후술한다.
마지막으로 단계 S330에서는, 데이터베이스의 검색 장치가 그 결정된 DB검색과정의 개수에 기초하여 검색조건을 만족하는 레코드의 검색을 병렬로 수행한다.
예컨대, 데이터베이스의 검색 장치가 앞서 결정된 개수만큼의 DB검색과정을 준비하고, 각 DB검색과정별로 검색 범위를 분담하여 레코드의 검색을 병렬로 수행할 수 있다.
다른 실시예에서는, 데이터베이스의 검색 장치가 DB검색과정 각각에 대하여 적어도 하나의 그룹압축데이터를 할당하고, 그에 기초하여 레코드의 검색을 병렬로 수행할 수 있다.
예컨대, 검색조건을 만족하는 선별정보에 대응되는 그룹압축데이터의 개수가 6개이고, 결정된 DB검색과정의 개수는 4개라고 하면, 데이터베이스의 검색 장치가 DB검색과정 4개중 2개에는 2개씩의 그룹압축데이터를 할당하고, 나머지 DB검색과정 2개에는 1개씩의 그룹압축데이터를 할당할 수 있다. 그리고, 그 4개의 DB검색과정이 할당된 1개 또는 2개의 그룹압축데이터에 대한 레코드의 검색을 병렬로 수행할 수 있다.
이때, 각 DB검색과정은 할당된 그룹압축데이터의 압축을 해제하여 버퍼에 저장하고, 그 버퍼에 저장된 데이터로부터 검색조건을 만족하는 레코드를 검색하는 과정을 통해 검색을 수행할 수 있다.
또 다른 실시예에서는, 데이터베이스의 검색 장치가 압축테이블로 아카이빙된 원본테이블에 포함된 필드의 종류, 크기, 순서 및 명칭에 대한 정보인 테이블구조정보에 더 기초하여 검색조건을 만족하는 레코드의 검색을 수행할 수 있다.
그룹압축데이터의 압축을 해제하여 버퍼에 저장하고, 그 버퍼에 저장된 데이터로부터 검색조건을 만족하는 레코드를 검색하는 경우에, 데이터베이스의 검색 장치가 원본테이블에 포함된 각 필드의 종류, 크기, 순서 및 명칭에 대한 정보인 테이블구조정보를 알고 있으면 그 테이블구조정보에 기초하여 검색을 보다 용이하게 수행할 수 있다.
또 다른 실시예에서는, DB검색과정은 각각의 DB검색과정별로 할당된 프로세스(process) 또는 쓰레드(thread)를 이용하여 검색을 수행할 수 있다.
각 DB검색과정은 병렬적으로 레코드의 검색을 수행해야 하기 때문에, 이러한 병렬적인 특성을 만족시키기 위하여 자식 프로세스(child process) 또는 쓰레드가 각 DB검색과정마다 하나씩 할당되어 검색을 수행할 수 있다. 이때, 각 DB검색과정별로 자식 프로세스가 할당될 지 혹은 쓰레드가 할당될 지는 검색이 수행되는 컴퓨터의 CPU 종류 및 OS 종류 등에 따른 지원여부에 의하여 결정될 수 있다.
예컨대, DB검색과정의 개수가 6개로 결정된 경우에, 6개의 자식 프로세스가 각 DB검색과정마다 할당될 수 있고, 6개의 자식 프로세스 각각이 DB검색과정에게 할당된 그룹압축데이터에 대한 레코드의 검색을 병렬로 수행할 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 아카이빙된 데이터베이스의 검색 방법은 컴퓨터의 성능 및 데이터베이스 검색의 범위에 따라서 결정된 DB검색과정의 개수에 기초하여 레코드의 검색을 병렬로 수행할 수 있는 효과가 있다.
도 4는 본 발명의 일 실시예에 따른 DB검색과정의 개수를 결정하는 방법을 설명하기 위하여 도시한 흐름도이다.
단계 S410에서는, 데이터베이스의 검색 장치가 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집한다.
컴퓨터의 성능은 레코드의 검색이 수행되는 컴퓨터에 포함된 CPU, 메모리 및 저장장치의 성능에 의하여 결정될 수 있다. 특히, CPU의 경우 그 컴퓨터에 탑재된 CPU의 개수, 클럭주파수, 캐시 크기 및 CPU별 코어 개수 등에 의해 성능이 결정될 수 있다. 또한, 메모리는 용량 및 동작 클럭주파수 등에 의해 성능이 결정될 수 있다. 또한, 저장장치는 입출력 속도에 의해 성능이 결정될 수 있다.
따라서, 데이터베이스의 검색 장치가 레코드의 검색이 수행되는 컴퓨터의 CPU, 메모리 및 저장장치 중 적어도 하나에 대한 정보를 포함하는 컴퓨터성능정보를 수집할 수 있다.
단계 S420에서는, 데이터베이스의 검색 장치가 압축테이블에 저장된 그룹압축데이터 중에서 수신된 검색조건을 만족하는 선별정보에 대응되는 그룹압축데이터의 개수를 결정한다.
예컨대, 압축테이블에 저장돼 있는 선별정보 및 그 선별정보에 대응되는 그룹압축데이터에 대하여, 사용자가 2015년 1월부터 2015년 10월까지의 검색조건을 전송한 경우에, 이 검색조건을 만족하는 선별정보를 모두 찾으면 그 선별정보에 대응되는 그룹압축데이터의 개수가 결정될 수 있다.
마지막으로 단계 S430에서는, 데이터베이스의 검색 장치가 그 수집된 컴퓨터성능정보 및 그 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정한다.
예컨대, 데이터베이스의 검색 장치는 수집된 컴퓨터성능정보와 그룹압축데이터의 개수를 종합적으로 분석하여, 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정할 수 있다.
보다 구체적으로는, 수집된 컴퓨터성능정보가 우수하지 않더라도 결정된 그룹압축데이터의 개수가 많지 않을 경우 DB검색과정의 개수는 그룹압축데이터의 개수에 맞추어 적은 수로 결정될 수 있으며, 반대로 수집된 컴퓨터성능정보가 매우 우수한 경우에 결정된 그룹압축데이터의 개수가 많더라도 DB검색과정의 개수는 컴퓨터성능정보에 맞추어 역시 적은 수로 결정될 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 DB검색과정의 개수를 결정하는 방법은 검색이 수행되는 컴퓨터의 성능에 대한 정보 및 검색조건을 만족하는 선별정보에 대응되는 그룹압축데이터의 개수에 의하여 DB검색과정의 개수를 결정함으로써 레코드의 병렬 검색을 보다 효율적으로 수행하는 효과가 있다.
도 5는 본 발명의 일 실시예에 따른 데이터베이스 아카이빙 장치를 설명하기 위하여 도시한 도면이다.
도 5를 살펴보면, 데이터베이스 아카이빙 장치(500)는 데이터선별부(510), 데이터압축부(520) 및 DB관리부(530)를 포함한다. 이때, 데이터베이스 아카이빙 장치(500)는 데이터베이스가 탑재된 컴퓨터에 함께 탑재되거나 데이터베이스와 네트워크로 연결된 컴퓨터에 탑재될 수 있다.
데이터선별부(510)는 데이터 아카이빙을 하려는 원본테이블에서 시간 및 필드값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별한다.
데이터압축부(520)는 그 선별된 적어도 하나의 레코드그룹 각각에 대하여, 레코드그룹별로 압축하여 그룹압축데이터를 생성한다.
DB관리부(530)는 그룹압축데이터 및 그 그룹압축데이터에 대응되는 선별정보를 압축테이블에 저장하고, 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 원본테이블에서 삭제한다.
다른 실시예에서는, 데이터압축부(520)는 선별된 적어도 하나의 레코드그룹 각각에 대하여, 그 레코드그룹에 포함된 복수의 레코드의 데이터를 버퍼에 저장하고, 그 버퍼에 저장된 데이터를 압축하여 그룹압축데이터를 생성하고, DB관리부(530)는 그 생성된 그룹압축데이터에 대응되는 선별정보를 취득하고, 그 그룹압축데이터를 그 선별정보와 압축테이블 상의 동일한 레코드에 저장할 수 있다.
또 다른 실시예에서는, 데이터선별부(510)는 그 선별된 적어도 하나의 레코드그룹 중에서 레코드의 개수가 임계치를 초과하는 초과레코드그룹이 존재하면, 그 초과레코드그룹을 레코드의 개수가 임계치 이하인 복수의 레코드그룹으로 더 분리하고, DB관리부(530)는 그 분리된 복수의 레코드그룹 각각에 부여된 일련번호를 압축테이블에 더 저장할 수 있다.
도 6은 본 발명의 일 실시예에 따른 아카이빙된 데이터베이스의 검색 장치를 설명하기 위하여 도시한 도면이다.
도 6을 살펴보면, 아카이빙된 데이터베이스의 검색 장치(600)는 수신부(610), 검색준비부(620) 및 병렬검색부(630)를 포함한다. 이때, 아카이빙된 데이터베이스의 검색 장치(600)는 데이터베이스가 탑재된 컴퓨터에 함께 탑재되거나 데이터베이스와 네트워크로 연결된 컴퓨터에 탑재될 수 있다.
수신부(610)는 시간 및 필드값 중 적어도 하나에 대한 선별정보 및 그 선별정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터를 포함하는 압축 테이블에서 사용자가 원하는 레코드를 검색하기 위한 검색조건을 수신한다.
검색준비부(620)는 검색이 수행되는 컴퓨터의 성능 및 수신된 검색조건을 만족하는 선별정보에 대응되는 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정한다.
다른 실시예에서는, 검색준비부(620)는 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하고, 압축테이블에 저장된 그룹압축데이터 중에서 수신된 검색조건을 만족하는 선별정보에 대응되는 그룹압축데이터의 개수를 결정할 수 있다.
병렬검색부(630)는 그 결정된 DB검색과정의 개수에 기초하여 수신된 검색조건을 만족하는 레코드의 검색을 병렬로 수행한다.
다른 실시예에서는, 병렬검색부(630)가 그 결정된 개수의 DB검색과정 각각에 대하여, 검색조건을 만족하는 선별정보에 대응되는 그룹압축데이터의 개수에 기초하여 적어도 하나의 그룹압축데이터를 할당하고, 그 각각의 DB검색과정별로 할당된 적어도 하나의 그룹압축데이터의 압축 해제 및 검색조건을 만족하는 레코드의 검색을 병렬로 수행할 수 있다.
또 다른 실시예에서는, 병렬검색부(630)는 압축테이블로 아카이빙된 원본테이블에 포함된 필드의 종류, 크기, 순서 및 명칭에 대한 정보인 테이블구조정보에 더 기초할 수 있다.
또 다른 실시예에서는, DB검색과정은 각각의 DB검색과정별로 할당된 프로세스 또는 쓰레드를 이용하여 검색을 수행할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (16)

  1. 데이터 아카이빙을 하려는 원본테이블에서 시간 및 필드(field)값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드(record)를 포함하는 적어도 하나의 레코드그룹을 선별하는 단계;
    상기 선별된 적어도 하나의 레코드그룹 각각에 대하여, 상기 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 상기 선별정보를 압축테이블에 저장하는 단계; 및
    상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 단계
    를 포함하고,
    상기 선별정보를 압축테이블에 저장하는 단계는
    상기 선별된 적어도 하나의 레코드그룹 각각에 대하여,
    상기 레코드그룹에 포함된 복수의 레코드의 데이터를 버퍼에 저장하는 단계;
    상기 버퍼에 저장된 데이터를 압축하여 상기 그룹압축데이터를 생성하는 단계;
    상기 생성된 그룹압축데이터에 대응되는 상기 선별정보를 취득하는 단계; 및
    상기 그룹압축데이터를 상기 선별정보와 상기 압축테이블 상의 동일한 레코드에 저장하는 단계
    를 포함하는 것을 특징으로 하는 데이터베이스 아카이빙 방법.
  2. 삭제
  3. 데이터 아카이빙을 하려는 원본테이블에서 시간 및 필드(field)값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드(record)를 포함하는 적어도 하나의 레코드그룹을 선별하는 단계;
    상기 선별된 적어도 하나의 레코드그룹 중에서 레코드의 개수가 임계치를 초과하는 초과레코드그룹이 존재하면, 상기 초과레코드그룹을 레코드의 개수가 상기 임계치 이하인 복수의 상기 레코드그룹으로 분리하는 단계;
    상기 선별된 적어도 하나의 레코드그룹 각각에 대하여, 상기 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 상기 선별정보를 압축테이블에 저장하는 단계; 및
    상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 단계
    를 포함하고,
    상기 선별정보를 압축테이블에 저장하는 단계는
    상기 분리된 복수의 레코드그룹 각각에 부여된 일련번호를 상기 압축테이블에 더 저장하는 것을 특징으로 하는 데이터베이스 아카이빙 방법.
  4. 데이터 아카이빙을 하려는 원본테이블에서 시간 및 필드값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별하는 데이터선별부;
    상기 선별된 적어도 하나의 레코드그룹 각각에 대하여, 상기 레코드그룹별로 압축하여 그룹압축데이터를 생성하는 데이터압축부; 및
    상기 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 상기 선별정보를 압축테이블에 저장하고, 상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 DB관리부
    를 포함하고,
    상기 데이터압축부는
    상기 선별된 적어도 하나의 레코드그룹 각각에 대하여,
    상기 레코드그룹에 포함된 복수의 레코드의 데이터를 버퍼에 저장하고, 상기 버퍼에 저장된 데이터를 압축하여 상기 그룹압축데이터를 생성하고,
    상기 DB관리부는
    상기 생성된 그룹압축데이터에 대응되는 상기 선별정보를 취득하고, 상기 그룹압축데이터를 상기 선별정보와 상기 압축테이블 상의 동일한 레코드에 저장하는 것을 특징으로 하는 데이터베이스 아카이빙 장치.
  5. 삭제
  6. 데이터 아카이빙을 하려는 원본테이블에서 시간 및 필드값 중 적어도 하나에 대한 선별정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별하는 데이터선별부;
    상기 선별된 적어도 하나의 레코드그룹 각각에 대하여, 상기 레코드그룹별로 압축하여 그룹압축데이터를 생성하는 데이터압축부; 및
    상기 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 상기 선별정보를 압축테이블에 저장하고, 상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 DB관리부
    를 포함하고,
    상기 데이터선별부는
    상기 선별된 적어도 하나의 레코드그룹 중에서 레코드의 개수가 임계치를 초과하는 초과레코드그룹이 존재하면, 상기 초과레코드그룹을 레코드의 개수가 상기 임계치 이하인 복수의 상기 레코드그룹으로 더 분리하고,
    상기 DB관리부는
    상기 분리된 복수의 레코드그룹 각각에 부여된 일련번호를 상기 압축테이블에 더 저장하는 것을 특징으로 하는 데이터베이스 아카이빙 장치.
  7. 시간 및 필드값 중 적어도 하나에 대한 선별정보 및 상기 선별정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터를 포함하는 압축 테이블에서 사용자가 원하는 레코드를 검색하기 위한 검색조건을 수신하는 단계;
    검색이 수행되는 컴퓨터의 성능 및 상기 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계; 및
    상기 결정된 DB검색과정의 개수에 기초하여 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계
    를 포함하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 방법.
  8. 제7항에 있어서,
    상기 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계는
    상기 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하는 단계;
    상기 압축테이블에 저장된 상기 그룹압축데이터 중에서 상기 수신된 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수를 결정하는 단계; 및
    상기 수집된 컴퓨터성능정보 및 상기 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계;
    를 포함하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 방법.
  9. 제7항에 있어서,
    상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계는
    상기 결정된 개수의 DB검색과정 각각에 대하여, 상기 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수에 기초하여 적어도 하나의 상기 그룹압축데이터를 할당하는 단계; 및
    상기 각각의 DB검색과정별로 상기 할당된 적어도 하나의 그룹압축데이터의 압축 해제 및 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계
    를 포함하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 방법.
  10. 제7항에 있어서,
    상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계는
    상기 압축테이블로 아카이빙된 원본테이블에 포함된 필드의 종류, 크기, 순서 및 명칭에 대한 정보인 테이블구조정보에 더 기초하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 방법.
  11. 제7항에 있어서,
    상기 DB검색과정은
    상기 각각의 DB검색과정별로 할당된 프로세스(process) 또는 쓰레드(thread)를 이용하여 검색을 수행하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 방법.
  12. 시간 및 필드값 중 적어도 하나에 대한 선별정보 및 상기 선별정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터를 포함하는 압축 테이블에서 사용자가 원하는 레코드를 검색하기 위한 검색조건을 수신하는 수신부;
    검색이 수행되는 컴퓨터의 성능 및 상기 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 검색준비부; 및
    상기 결정된 DB검색과정의 개수에 기초하여 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 병렬검색부
    를 포함하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 장치.
  13. 제12항에 있어서,
    상기 검색준비부는
    상기 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하고,
    상기 압축테이블에 저장된 상기 그룹압축데이터 중에서 상기 수신된 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수를 결정하고,
    상기 수집된 컴퓨터성능정보 및 상기 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 장치.
  14. 제12항에 있어서,
    상기 병렬검색부는
    상기 결정된 개수의 DB검색과정 각각에 대하여, 상기 검색조건을 만족하는 상기 선별정보에 대응되는 상기 그룹압축데이터의 개수에 기초하여 적어도 하나의 상기 그룹압축데이터를 할당하고,
    상기 각각의 DB검색과정별로 상기 할당된 적어도 하나의 그룹압축데이터의 압축 해제 및 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 장치.
  15. 제12항에 있어서,
    상기 병렬검색부는
    상기 압축테이블로 아카이빙된 원본테이블에 포함된 필드의 종류, 크기, 순서 및 명칭에 대한 정보인 테이블구조정보에 더 기초하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 장치.
  16. 제12항에 있어서,
    상기 DB검색과정은
    상기 각각의 DB검색과정별로 할당된 프로세스 또는 쓰레드를 이용하여 검색을 수행하는 것을 특징으로 하는 아카이빙된 데이터베이스의 검색 장치.
KR1020160023401A 2016-02-26 2016-02-26 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치 KR101663547B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020160023401A KR101663547B1 (ko) 2016-02-26 2016-02-26 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치
PCT/KR2016/011463 WO2017146337A1 (ko) 2016-02-26 2016-10-13 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치
EP16891741.7A EP3422204A4 (en) 2016-02-26 2016-10-13 METHOD AND APPARATUS FOR ARCHIVING A DATABASE AND METHOD AND APPARATUS FOR SEARCHING AN ARCHIVED DATABASE
CN201680081603.6A CN108701134A (zh) 2016-02-26 2016-10-13 数据库的存档方法及装置、存档的数据库的搜索方法及装置
US16/077,208 US11030050B2 (en) 2016-02-26 2016-10-13 Method and device of archiving database and method and device of retrieving archived database
JP2018543247A JP6638821B2 (ja) 2016-02-26 2016-10-13 データベースのアーカイビング方法及び装置、アーカイビングされたデータベースの検索方法及び装置
AU2016394743A AU2016394743A1 (en) 2016-02-26 2016-10-13 Method and apparatus for archiving database, and method and apparatus for searching archived database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160023401A KR101663547B1 (ko) 2016-02-26 2016-02-26 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101663547B1 true KR101663547B1 (ko) 2016-10-07

Family

ID=57145318

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160023401A KR101663547B1 (ko) 2016-02-26 2016-02-26 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치

Country Status (7)

Country Link
US (1) US11030050B2 (ko)
EP (1) EP3422204A4 (ko)
JP (1) JP6638821B2 (ko)
KR (1) KR101663547B1 (ko)
CN (1) CN108701134A (ko)
AU (1) AU2016394743A1 (ko)
WO (1) WO2017146337A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874417A (zh) * 2018-09-04 2020-03-10 华为技术有限公司 数据检索的方法和装置
KR102256814B1 (ko) * 2020-09-10 2021-05-27 주식회사 아미크 목적 데이터 선별 방법 및 시스템
KR102270896B1 (ko) * 2020-01-06 2021-06-30 주식회사 아미크 데이터 비식별화에 기반한 데이터 아카이빙 방법 및 시스템
CN113111032A (zh) * 2021-04-20 2021-07-13 河南水利与环境职业学院 一种档案管理系统数据归档方法和系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090652B (zh) * 2019-12-20 2023-05-23 山大地纬软件股份有限公司 一种可水平扩展归档数据库的数据归档方法和装置
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
US11676066B2 (en) * 2020-01-17 2023-06-13 Western Digital Technologies, Inc. Parallel model deployment for artificial intelligence using a primary storage system
CN113791742B (zh) * 2021-11-18 2022-03-25 南湖实验室 一种高性能的数据湖系统及数据存储方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140072929A (ko) * 2012-11-16 2014-06-16 현대중공업 주식회사 아카이빙 작업수행 자동화 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477729B2 (en) * 2004-02-20 2016-10-25 Informatica Llc Domain based keyword search
US8832045B2 (en) 2006-04-07 2014-09-09 Data Storage Group, Inc. Data compression and storage techniques
US8229902B2 (en) * 2006-11-01 2012-07-24 Ab Initio Technology Llc Managing storage of individually accessible data units
JP2010287024A (ja) * 2009-06-11 2010-12-24 Yaskawa Information Systems Co Ltd アーカイブシステム、アーカイブシステム用検索プログラムならびにアーカイブシステムによる検索方法
JP5621229B2 (ja) * 2009-08-27 2014-11-12 日本電気株式会社 ストレージシステム、管理方法及びプログラム
US9767098B2 (en) * 2012-08-08 2017-09-19 Amazon Technologies, Inc. Archival data storage system
JP2013065224A (ja) * 2011-09-20 2013-04-11 Kddi Corp メールアーカイブシステム
EP2937794B1 (en) * 2014-04-22 2016-08-17 DataVard GmbH Method and system for archiving digital data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140072929A (ko) * 2012-11-16 2014-06-16 현대중공업 주식회사 아카이빙 작업수행 자동화 방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874417A (zh) * 2018-09-04 2020-03-10 华为技术有限公司 数据检索的方法和装置
US11816117B2 (en) 2018-09-04 2023-11-14 Huawei Technologies Co., Ltd. Data retrieval method and apparatus
CN110874417B (zh) * 2018-09-04 2024-04-16 华为技术有限公司 数据检索的方法和装置
KR102270896B1 (ko) * 2020-01-06 2021-06-30 주식회사 아미크 데이터 비식별화에 기반한 데이터 아카이빙 방법 및 시스템
KR20210088419A (ko) * 2020-01-06 2021-07-14 주식회사 아미크 데이터의 전송 및 조회 시의 비용을 최소화하기 위한 데이터 아카이빙 방법 및 시스템
KR102301304B1 (ko) 2020-01-06 2021-09-14 주식회사 아미크 데이터의 전송 및 조회 시의 비용을 최소화하기 위한 데이터 아카이빙 방법 및 시스템
KR102256814B1 (ko) * 2020-09-10 2021-05-27 주식회사 아미크 목적 데이터 선별 방법 및 시스템
US11372899B2 (en) 2020-09-10 2022-06-28 Armiq Co., Ltd. Method and system for selecting target data
CN113111032A (zh) * 2021-04-20 2021-07-13 河南水利与环境职业学院 一种档案管理系统数据归档方法和系统
CN113111032B (zh) * 2021-04-20 2022-03-08 河南水利与环境职业学院 一种档案管理系统数据归档方法和系统

Also Published As

Publication number Publication date
US20190026189A1 (en) 2019-01-24
CN108701134A (zh) 2018-10-23
WO2017146337A1 (ko) 2017-08-31
EP3422204A4 (en) 2020-01-22
JP2019512125A (ja) 2019-05-09
EP3422204A1 (en) 2019-01-02
JP6638821B2 (ja) 2020-01-29
US11030050B2 (en) 2021-06-08
AU2016394743A1 (en) 2018-08-30

Similar Documents

Publication Publication Date Title
KR101663547B1 (ko) 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치
KR101656750B1 (ko) 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
US9280551B2 (en) De-duplication deployment planning
US10963440B2 (en) Fast incremental column store data loading
KR20150045532A (ko) 개별적으로 액세스 가능한 데이터 유닛의 스토리지 관리 방법
JPWO2010061537A1 (ja) 検索装置、検索方法、及びプログラム
CN110727406A (zh) 一种数据存储调度方法及装置
CN111611250A (zh) 数据存储设备、数据查询方法、装置、服务器及存储介质
CN107391769B (zh) 一种索引查询方法及装置
US9213759B2 (en) System, apparatus, and method for executing a query including boolean and conditional expressions
JP2013045208A (ja) データ生成方法、装置及びプログラム、検索処理方法、装置及びプログラム
CN107430633B (zh) 用于数据存储的系统及方法和计算机可读介质
US9659061B2 (en) Method for efficient aggregation of numerous data using sparse bit sets
CN112380256B (zh) 能源系统数据存取的方法、数据库、计算机可读存储介质
JP6273969B2 (ja) データ加工装置、情報処理装置、方法、およびプログラム
JP2016053976A (ja) データ生成方法、装置及びプログラム、検索処理方法、装置及びプログラム
KR102529704B1 (ko) 인 메모리 데이터베이스의 데이터를 처리하는 방법 및 장치
JPH05108717A (ja) インデツクスフアイル構造およびデータベース検索方式
JP6476346B2 (ja) データ分類方法及びデータ分類装置
US20190057097A1 (en) Information processing device, information processing method, and computer-readable recording medium
JP2020108045A (ja) データ圧縮方法
WO2023191943A1 (en) Methods and systems for performing a vectorized delete in a distributed database system

Legal Events

Date Code Title Description
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 4