KR102236521B1 - 데이터를 처리하기 위한 방법 및 장치 - Google Patents

데이터를 처리하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR102236521B1
KR102236521B1 KR1020190112207A KR20190112207A KR102236521B1 KR 102236521 B1 KR102236521 B1 KR 102236521B1 KR 1020190112207 A KR1020190112207 A KR 1020190112207A KR 20190112207 A KR20190112207 A KR 20190112207A KR 102236521 B1 KR102236521 B1 KR 102236521B1
Authority
KR
South Korea
Prior art keywords
data
group
public prefix
public
prefix
Prior art date
Application number
KR1020190112207A
Other languages
English (en)
Other versions
KR20200056909A (ko
Inventor
루이 양
화용 왕
Original Assignee
베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. filed Critical 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Publication of KR20200056909A publication Critical patent/KR20200056909A/ko
Application granted granted Critical
Publication of KR102236521B1 publication Critical patent/KR102236521B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3077Sorting

Abstract

본 출원의 실시예는 데이터를 처리하기 위한 방법 및 장치를 개시한다. 상기 방법의 하나의 구체적인 실시예는, 압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬하는 단계와, 정렬 후의 적어도 하나의 데이터 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 공공 프리픽스 세트에 추가하는 단계와, 정렬 후의 적어도 하나의 데이터를 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정하는 단계와, 적어도 하나의 그룹 중의 그룹에 대해, 해당 그룹의 공공 프리픽스 및 해당 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이를 기록하는 단계를 포함한다. 상기 실시예는 데이터의 압축률을 향상시킴으로써 입력 및 출력 동작을 줄이고 메모리 자원을 절약하며 또한 저장 용량을 감소시킬 수 있다.

Description

데이터를 처리하기 위한 방법 및 장치{METHOD AND APPARATUS FOR PROCESSING DATA}
본 출원의 실시예는 컴퓨터 기술분야에 관한 것으로, 특히 데이터를 처리하기 위한 방법 및 장치에 관한 것이다.
스토리지 시스템은 스토리지 엔진을 통해 데이터를 스토리지 매체에 저장한다. 일부 키 - 밸류 스토리지 엔진에 있어서, 데이터 내용은 문자열 또는 이진 시퀀스의 형식으로 저장되며, 사전의 순서에 따라 질서있게 정렬된다(질서적인 정렬은 비교시의 편리를 도모하기 위해서이다). 동시에 스토리지 시스템에 대해, 메모리, 입력/출력 등 리소스는 시스템 성능과 정적 상관관계이고 용량은 코스트과 정적 상관관계이므로, 이 부분의 데이터는 효과적으로 압축되어야 함과 동시에 압축 해제를 하지 않는 정황하에서 비교할 수 있어야 한다.
[선행기술문헌]
미국 공개 특허 US 2013/0111164 A1 (2013.05.02)
중국 공개 특허 CN 103870492 A (2014.06.18)
본 출원의 실시예는 데이터를 처리하기 위한 방법 및 장치를 제안한다.
제1 양태에서, 본 출원의 실시예는 데이터를 처리하기 위한 방법을 제공하며, 압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬하는 단계와, 정렬 후의 적어도 하나의 데이터 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 공공 프리픽스 세트에 추가하는 단계와, 정렬 후의 적어도 하나의 데이터를 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정하는 단계와, 적어도 하나의 그룹 중의 그룹에 대해, 해당 그룹의 공공 프리픽스 및 해당 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이를 기록하는 단계를 포함한다.
일부 실시예에 있어서, 정렬 후의 적어도 하나의 데이터를 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정하는 단계는, 공공 프리픽스 세트 중 공공 프리픽스 길이의 로컬 최소치를 확정하는 단계와, 적어도 하나의 데이터를 로컬 최소치에 의해 적어도 하나의 그룹으로 분할하는 단계와 - 로컬 최소치에 대응하는 데이터는 다음 그룹에 분할됨 -, 적어도 하나의 그룹에 대해, 해당 그룹 중의 각 데이터에 대응하는 가장 긴 공공 프리픽스를 해당 그룹의 공공 프리픽스로 결정하는 단계를 포함한다.
일부 실시예에 있어서, 상기 방법은 또한, 적어도 하나의 데이터의 압축률을 확정하는 단계와, 압축률이 소정의 압축률 임계치 미만일 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬하여 다음 라운드의 압축하고자 하는 데이터 세트를 생성하고, 데이터 세트에 기초하여 복수 라운드 압축 단계를 실행하는 단계와 - 상기 복수 라운드 압축 단계는 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 복수 라운드 공공 프리픽스 세트에 추가하는 단계, 복수 라운드 공공 프리픽스 세트에 기초하여 데이터 세트를 적어도 하나의 그룹으로 분할하고 각 그룹의 공공 프리픽스를 결정하는 단계, 적어도 하나의 데이터의 압축률을 갱신하는 단계, 갱신 후의 압축률이 소정의 압축률 임계치 이상이거나 혹은 압축 회수가 소정의 압축 회수 임계치에 도달하면, 각 그룹의 공공 프리픽스 및 각 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터 매개와 공공 프리픽스와의 공유 길이를 기록하는 단계를 포함함 -, 갱신 후의 압축률이 소정 압축률 임계치 미만이고, 압축 회수가 소정 압축 회수의 임계치 미만일 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬한 후 다음 라운드의 압축하고자 하는 데이터 세트로 갱신하고, 상기 복수 라운드 압축 단계를 계속하여 실행하는 단계를 포함한다.
일부 실시예에 있어서, 상기 방법은 또한, 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖지 않는 것에 응답하여, 해당 데이터를 다음 라운드의 압축하고자 하는 데이터 세트에 추가하는 단계를 포함한다.
일부 실시예에 있어서, 적어도 하나의 데이터의 압축률을 확정하는 단계는, 각 그룹의 공공 프리픽스의 바이트 수 및 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분의 바이트 수에 기초하여 적어도 하나의 데이터의 압축 후의 데이터 용량을 확정하는 단계와, 적어도 하나의 데이터의 압축 후의 데이터 용량과 적어도 하나의 데이터의 압축 전의 데이터 용량과의 비율을 압축률로 결정하는 단계를 포함한다.
일부 실시예에 있어서, 상기 방법은 또한, 적어도 하나의 데이터 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이에 의해 각 데이터의 크기를 비교하는 단계를 포함한다.
제2 양태에서, 본 출원의 실시예는 데이터를 처리하기 위한 장치를 제공하며, 압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬하도록 구성되는 정렬 유닛과, 정렬 후의 적어도 하나의 데이터 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 공공 프리픽스 세트에 추가하도록 구성되는 결정 유닛과, 정렬 후의 적어도 하나의 데이터를 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정하도록 구성되는 그룹핑 유닛과, 적어도 하나의 그룹 중의 그룹에 대해, 해당 그룹의 공공 프리픽스 및 해당 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이를 기록하도록 구성되는 저장 유닛을 포함한다.
일부 실시예에 있어서, 그룹핑 유닛은 또한, 상기 공공 프리픽스 세트 중 공공 프리픽스 길이의 로컬 최소치를 확정하고, 상기 적어도 하나의 데이터를 상기 로컬 최소치에 의해 적어도 하나의 그룹으로 분할하되, 상기 로컬 최소치에 대응하는 데이터는 다음 그룹에 분할되며, 상기 적어도 하나의 그룹에 대해, 해당 그룹 중의 각 데이터에 대응하는 가장 긴 공공 프리픽스를 해당 그룹의 공공 프리픽스로 결정하도록 구성된다.
일부 실시예에 있어서, 상기 장치는 또한, 적어도 하나의 데이터의 압축률을 확정하고, 압축률이 소정의 압축률 임계치 미만일 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬하여 다음 라운드의 압축하고자 하는 데이터 세트를 생성하고, 데이터 세트에 기초하여 복수 라운드 압축 단계를 실행하고 - 상기 복수 라운드 압축 단계는 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 복수 라운드 공공 프리픽스 세트에 추가하는 단계, 복수 라운드 공공 프리픽스 세트에 기초하여 데이터 세트를 적어도 하나의 그룹으로 분할하고 각 그룹의 공공 프리픽스를 결정하는 단계, 적어도 하나의 데이터의 압축률을 갱신하는 단계, 갱신 후의 압축률이 소정의 압축률 임계치 이상이거나 혹은 압축 회수가 소정의 압축 회수 임계치에 도달하면, 각 그룹의 공공 프리픽스 및 각 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터 매개와 공공 프리픽스와의 공유 길이를 기록하는 단계를 포함함 -, 갱신 후의 압축률이 소정 압축률 임계치 미만이고 또 압축 회수가 소정 압축 회수의 임계치 미만일 때, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬한 후 다음 라운드의 압축하고자 하는 데이터 세트로 갱신하고, 상기 복수 라운드 압축 단계를 계속하여 실행하도록 구성되는 복수 라운드 압축 유닛을 더 포함한다.
일부 실시예에 있어서, 복수 라운드 압축 유닛은 또한, 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖지 않는 것에 응답하여, 해당 데이터를 다음 라운드의 압축하고자 하는 데이터 세트에 추가하도록 구성된다.
일부 실시예에 있어서, 복수 라운드 압축 유닛은 또한, 각 그룹의 공공 프리픽스의 바이트 수 및 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분의 바이트 수에 기초하여 적어도 하나의 데이터의 압축 후의 데이터 용량을 결정하며, 적어도 하나의 데이터의 압축 후의 데이터 용량과 적어도 하나의 데이터의 압축 전의 데이터 용량과의 비율을 압축률로 결정하도록 구성된다.
일부 실시예에 있어서, 상기 장치는 또한, 적어도 하나의 데이터 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이에 의해 각 데이터의 크기를 비교하는 비교 유닛을 더 포함한다.
제3 양태에서, 본 출원의 실시예는 하나 이상의 프로세서와, 하나 이상의 프로그램이 저장되어 있는 저장 장치를 포함하며, 하나 이상의 프로그램이 하나 이상의 프로세서에 의해 실행될 경우, 하나 이상의 프로세서가 제1 양태 중 어느 하나의 방법을 실현하도록 하는 전자 기기를 제공한다.
제4 양태에서, 본 출원의 실시예는 컴퓨터 프로그램이 저장되어 있는 컴퓨터 판독 가능 매체에 있어서, 프로그램이 프로세서에 의해 실행될 경우, 제1 양태 중 어느 하나의 방법을 실현하는 컴퓨터 판독 가능 매체를 제공한다.
본 출원의 실시예에 의한 데이터를 처리하기 위한 방법 및 장치는 압축하고자 하는 적어도 하나의 데이터를 그룹으로 나누고 각 그룹의 공공 프리픽스를 결정하고, 다시 공공 프리픽스에 의해 각 데이터를 압축 및 저장한다. 데이터의 압축률을 향상시키는 동시에 입력 및 출력 동작을 줄이고 메모리 리소스를 절약하며 또한 스토리지 용량을 줄일 수 있다.
이하, 첨부된 도면을 참조하면서 비한정적인 실시예를 상세하게 설명함으로써, 본 출원의 다른 특징, 목적 및 이점은 더욱 명확해질 것이다.
도 1은 본 출원의 일 실시예에 적용될 수 있는 예시적인 시스템 구조도이다.
도 2는 본 출원에 따른 데이터를 처리하기 위한 방법의 일 실시예의 흐름도이다.
도 3은 본 출원에 따른 데이터를 처리하기 위한 방법의 공공 프리픽스의 라인 도면이다.
도 4는 본 출원에 따른 데이터를 처리하기 위한 방법의 하나의 응용 시나리오를 도시한 도면이다.
도 5는 본 출원에 따른 데이터를 처리하기 위한 방법의 다른 한 실시예의 흐름도이다.
도 6은 본 출원에 따른 데이터를 처리하기 위한 장치의 일 실시예의 개략적인 구조도이다.
도 7은 본 출원의 실시예를 실현하기에 적합한 전자 기기의 컴퓨터 시스템의 개략적인 구조도이다.
이하, 첨부 도면 및 실시예를 참조하면서 본 출원을 더 상세하게 설명한다. 본 명세서에 기술된 구체적인 실시예는 본 발명에 대한 한정이 아니라 관련 발명을 분석하기 위한 것임을 이해해야 할것이다. 또한, 설명의 편의상, 관련된 발명과 관련된 부분만이 첨부 도면에 도시되어 있음에 유의해야 한다.
본 출원 중의 실시예 및 실시예 중의 특징들은 충돌되지 않는 정황하에서 서로 결합될 수 있음에 유의해야 한다. 이하, 첨부 도면에 실시예를 결합하여 본 출원을 상세하게 설명한다.
도 1은 본 출원이 적용될 수 있는 데이터를 처리하기 위한 방법 또는 데이터를 처리하기 위한 장치의 실시예의 예시적인 시스템 아키텍처(100)를 나타낸다.
도 1에 도시된 바와 같이, 시스템 아키텍처(100)는 단말 기기(101, 102, 103), 네트워크(104) 및 서버(105)를 포함할 수 있다. 네트워크(104)는 단말 기기(101, 102, 103)와 서버(105) 사이에 통신 링크를 제공하기 위한 매체로 사용된다. 네트워크(104)는 예를 들어, 유선, 무선 통신 링크 혹은 광섬유 케이블 등과 같은 각종 접속 유형을 포함할 수 있다.
사용자는 단말 기기(101, 102, 103)를 사용하여 네트워크(104)를 통해 서버(105)와 상호 작용함으로써 메세지 등을 수신 또는 송신할 수 있다. 단말 기기(101, 102, 103)에는 예를 들어, 데이터베이스 관리형 어플리케이션, 웹 브라우저 어플리케이션, 쇼핑형 어플리케이션, 검색형 어플리케이션, 인스턴트 통신 툴, 메일 클라이언트, 소셜 플랫폼 소프트웨어 등의 다양한 통신 클라이언트 어플리케이션이 설치될 수 있다. 단말 기기(101, 102, 103)는 하드웨어일 수 있고 소프트웨어일 수도 있다. 단말 기기(101, 102, 103)가 하드웨어인 경우, 표시 화면을 구비하고 데이터베이스 액세스 기능을 지원하는 다양한 전자 기기일 수 있으며, 스마트 폰, 태블릿, 전자 책 리더기, MP3 플레이어(Moving Picture Experts Group Audio Layer III, 동영상 전문가 압축 표준 오디오 레벨 3), MP4(Moving Picture Experts Group Audio Layer IV, 동영상 전문가 압축 표준 오디오 레벨 4) 플레이어, 노트북 휴대용 컴퓨터 및 데스크톱 컴퓨터 등을 포함하지만 이에 한정되지 않는다. 단말 기기(101, 102, 103)가 소프트웨어인 경우, 상기 나열한 전자 기기에 설치될 수 있다. 단말 기기는 복수의 소프트웨어 또는 소프트웨어 모듈로서 구현될 수 있으며(예를 들어, 분산형 서비스를 제공하기 위한 것) 혹은 단일 소프트웨어 또는 소프트웨어 모듈로서 구현될 수 있다. 여기서는 특별히 한정하지 않는다.
서버(105)는 예를 들어, 단말 기기(101, 102, 103) 상에 표시된 데이터 콘텐츠에 대한 지원을 제공하는 백그라운드 데이터베이스 서버와 같은 다양한 서비스를 제공하는 서버일 수 있다. 백그라운드 데이터베이스 서버는 수신된 데이터 압축 청구와 같은 데이터에 대해 분석 등 처리를 진행하고 처리 결과(예를 들어, 압축된 데이터)를 단말 기기에 피드백할 수 있다.
설명해야 할 것은, 서버는 하드웨어 또는 소프트웨어일 수 있다는 것이다. 서버가 하드웨어인 경우, 복수의 서버로 구성된 분산형 서버 클러스터로 구현할 수 있고, 단일 서버로 구현할 수도 있다. 서버가 소프트웨어인 경우, 복수의 소프트웨어 또는 소프트웨어 모듈로서 구현될 수 있으며(예를 들어, 분산형 서비스를 제공하기 위한 복수의 소프트웨어 또는 소프트웨어 모듈) 혹은 단일 소프트웨어 또는 소프트웨어 모듈로서 구현될 수도 있다. 여기서는 특별히 한정하지 않는다.
설명해야 할 것은, 본 출원의 실시예에 의한 데이터를 처리하기 위한 방법은, 단말 기기(101, 102, 103)에 의해 실행될 수 있으며, 서버(105)에 의해 실행될 수도 있다는 것이다. 따라서, 데이터를 처리하기 위한 장치는 단말 기기(101, 102, 103)에 설치될 수 있고, 서버(105)에 설치될 수도 있다. 여기서는 특별히 한정하지 않는다.
도 1의 단말 기기, 네트워크 및 서버의 수량은 단지 예시적인 것임을 이해해야 한다. 구현의 수요에 따라 임의의 수량의 단말 기기, 네트워크 및 서버를 구비할수 있다.
계속하여 도 2를 참조하면, 본 출원에 따른 데이터를 처리하기 위한 방법의 하나의 실시예의 프로세스(200)를 나타낸다. 해당 데이터를 처리하기 위한 방법은 다음의 단계를 포함한다.
단계(201)에서, 압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬한다.
본 실시예에 있어서, 데이터를 처리하기 위한 방법의 실행 주체(예를 들어, 도 1에 도시된 서버)는 유선 연결 방법 또는 무선 연결 방법을 통해 사용자로부터 데이터 압축을 수행하는 단말기를 이용하여, 압축하고자 하는 적어도 하나의 데이터가 표시되어 있는 압축 요청을 수신할 수 있다. 압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬한다. 소정의 순서는 사전의 순서일 수 있다. 숫자 순서일 수도 있다. 압축하고자 하는 적어도 하나의 데이터는 일반적으로 정수, 부동 소수점, 문자열, 화상, 오디오 및 비디오 컨텐츠와 같은 이진제 시퀀스의 형태로 표시되므로, 이론상 연속된 이진제 시퀀스에 의해 표시될 수 있는 내용이면, 본 실시예의 방법에 의해 압축될 수 있다. 여기서 지도성적인 제안으로, 예를 들어 문자열과 같은 부동한 내용은 압축 효과가 부동하며, 데이터는 비교적 규칙적이 되고 엔트로피는 작아지고 압축 비율은 낮아진다. 그러나 그림과 같은 멀티미디어 컨텐츠의 경우, 이진제 데이터는 규칙성이 없고 엔트로피는 크고 효과가 분명하지 않다. 아래에 역시 문자열 압축을 가설로 설명한다.
단계(202)에서, 정렬 후의 적어도 하나의 데이터 중의 데이터에 대해, 해당 데이터가 해당 데이터 이전의 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 공공 프리픽스 세트에 추가한다.
본 실시예에 있어서, 알고리즘의 중점은, 예를 들어 "a", "ab", "abc", "abcf", "abx", "abxy","aby", "abyz"와 같은 한조의 데이터가 있다고 가정할때 인접 데이터의 공공 프리픽스를 찾는 방법이다. 인접 데이터의 공동한 프리픽스를 취하여 표1을 생성한다. 공공 프리픽스 세트의 내용은 {"a", "ab", "abc", "abx", "aby"}이다. 중복된 공공 프리픽스는 필터링하여 공공 프리픽스 세트에 다시 추가된다. 만약 하나의 데이터와 다른 데이터 사이에 공공 프리픽스가 없는 경우, 해당 데이터는 다음 라운드의 압축시까지 보유되며 다음 라운드의 데이터와의 공공 프리픽스를 재차 확인할 수 있다.
항수 이전 데이터와의 공공 프리픽스 데이터
1 "a"
2 "a" "ab"
3 "ab" "abc"
4 "abc" "abcf"
5 "ab" "abx"
6 "abx" "abxy"
7 "ab" "aby"
8 "aby" "abyz"
단계(203)에서, 정렬 후의 적어도 하나의 데이터를 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정한다.
본 실시예에 있어서, 데이터의 수량에 따라 적어도 하나의 데이터를 그룹핑할 수 있다. 예를 들어, 4개의 데이터를 한 그룹으로 하면 표1 중의 데이터는 2개의 그룹으로 나눌수 있다. 그 다음 각 그룹 중 가장 긴 공공 프리픽스를 해당 그룹의 공공 프리픽스로 결정한다. 예를 들어 1~4항의 데이터를 한 그룹으로 하면 가장 긴 공공 프리픽스는 "abc"이고 "abc"를 해당 그룹의 공공 프리픽스로 할 수 있다. 만약 하나의 그룹에 있어서 가장 긴 공공 프리픽스가 여러개 존재할 경우, 여러개의 가장 긴 공공 프리픽스 중 일치되는 데이터가 가장 많은 공공 프리픽스를 해당 그룹의 공공 프리픽스로 선택할 수 있다.
본 실시예의 일부 선택적인 실현방식들에서, 정렬 후의 적어도 하나의 데이터를 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 나누고, 각 그룹의 공공 프리픽스를 결정하는 단계는, 공공 프리픽스 세트 중 공공 프리픽스 길이의 로컬 최소치를 확정하는 단계를 포함한다. 적어도 하나의 데이터를 로컬 최소치에 의해 적어도 하나의 그룹으로 분할하되, 로컬 최소치에 대응하는 데이터는 다음 그룹에 분할된다. 적어도 하나의 그룹에 대해, 해당 그룹 중의 각 데이터에 대응하는 가장 긴 공공 프리픽스를 해당 그룹의 공공 프리픽스로 결정한다.
공공 프리픽스 세트 중 공공 프리픽스 길이의 로컬 최소치는 도 3과 같이 도시될 수 있다. 도 3은 표1에 따라 그릴 수 있다. 도면에서 횡좌표는 데이터 항목을 나타내고, 종좌표는 해당 항목과 이전 항목의 데이터의 공공 프리픽스의 길이를 나타낸다. 예를 들어, 횡좌표 "2"는 두번째 항목 "ab"를 나타내고, 해당 항목과 이전 항목의 데이터의 공공 프리픽스는 "a", 즉, 공공 프리픽스의 길이는 1이다. 그려진 라인 도면에서, 항목 5와 항목 7이 대응하는 값은 최소치, 즉 5와 7은 분계점이며, 점선으로 그룹핑할 수 있으며, 최소치가 위치한 지점 5와 7은 다음 그룹에 분할된다. 항목 1 ~ 4가 제1 그룹이고, 항목 5, 6이 제2 그룹이고, 항목 7, 8이 제3 그룹이다. 제1 그룹에서 최대치는 항목 4에 대응하는 공공 프리픽스 "abc"이므로 "abc"를 제1 그룹의 공공 프리픽스로 한다. 제2 그룹에서 최대치는 항목 6에 대응하는 공공 프리픽스 "abx"이므로 "abx"를 제2 그룹의 공공 프리픽스로 한다. 제3 그룹에서 최대치는 항목 8에 대응하는 공공 프리픽스 "aby"이므로 "aby"를 제3 그룹의 공공 프리픽스로 한다.
단계(204)에서, 적어도 하나의 그룹 중의 그룹에 대해, 해당 그룹의 공공 프리픽스 및 해당 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이를 기록한다.
본 실시예에서, 제1 그룹에 분할된 데이터는 "a", "ab", "abc", "abcf"이며 공공 프리픽스(prefix) = "abc"를 취하고 "a"를 prefix로 표시할 수 있으며 공유 길이는 1, "ab"는 prefix로 표시할 수 있으며 공유 길이는 2, "abc"는 prefix로 표시할 수 있으며 공유 길이는 3, "abcf"는 prefix로 표시할 수 있으며 길이는 3, 나머지 문자열 "f"는 다음 라운드에서 압축되는 입력 데이터로서 다음 라운드의 프리픽스 압축에서 처리되며, "f"를 직접 저장할 수도 있다. 데이터 저장시, 공공 프리픽스를 갖는 데이터에 대해, 공공 프리픽스만을 저장하고 특정 위치에서 각 데이터와 공공 프리픽스 간의 공유 길이를 기록하고 이 부분의 내용을 Metadata(메타 데이터)로 하고 데이터 용량에는 기입하지 않는다. 따라서 압축해제시에는 원 데이터 그대로 복원할 수 있다. 데이터베이스 중의 공공 프리픽스는 매우 길수 있으므로 데이터의 위치를 기록하는 정보가 점용하는 오버 헤드는 무시할 수 있다.
본 실시예의 일부 선택적인 실현방식에 있어서, 상기 방법은 또한, 적어도 하나의 데이터 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이에 의해 각 데이터의 크기를 비교하는 단계를 더 포함한다. 따라서 압축해제할 필요가 없는 데이터는 직접 비교를 진행할 수 있다.
계속해서 도 4를 참조하면, 도 4는 본 실시예에 따른 데이터를 처리하기 위한 방법의 응용 시나리오의 개략도이다. 도 4의 응용 시나리오에 있어서, 압축하고자 하는 데이터는 "a", "ab", "abc", "abcf", "abx", "abxy", "aby", "abyz"이다. 데이터를 공공 프리픽스에 의해 세개의 그룹으로 나누고 제1 그룹은 "a", "ab", "abc", "abcf"이고, 공공 프리픽스는 "abc"이다. 제2 그룹은 "abx", "abxy"이고, 공공 프리픽스는 "abx"이다. 제3 그룹은 "aby", "abyz"이고, 공공 프리픽스는 "aby"이다. 제1 그룹 데이터에서 "a"는 공공 프리픽스 "abc"로 표시할 수 있고, 공유 길이는 1, "ab"는 "abc"로 표시할 수 있고, 공유 길이는 2, "abc"는 "abc"로 표시할 수 있고, 길이는 3, "abcf"는 "abc"로 표시할 수 있고, 길이는 3, 나머지 문자열 "f"는 단독으로 저장된다. 제1 그룹 데이터는 원래 10 바이트이고 공공 프리픽스 "abc"에 "f"를 추가하여 합계 4 바이트로 나타낼 수 있다. 제2 그룹 데이터에서 "abx"는 공공 프리픽스 "abx"로 표시할 수 있으며 공유 길이는 3이고, "abxy"는 "abx"로 표시할 수 있으며 공유 길이는 3이고, 나머지 문자열 "y"는 단독으로 저장된다. 제2 그룹 데이터는 원래 7 바이트이고 공공 프리픽스 "abx"에 "y"를 추가하여 합계 4 바이트로 나타낼 수 있다. 제3 그룹 데이터에서 "aby"는 공공 프리픽스 "aby"로 표시할 수 있으며 공유 길이는 3이고, "abyz"는 "aby"로 표시할 수 있으며 공유 길이는 3이고, 나머지 문자열 "z"는 단독으로 저장된다. 제3 그룹 데이터는 원래 7 바이트이고 공공 프리픽스 "aby"에 "z"를 추가하여 합계 4 바이트로 나타낼 수 있다. 압축하고자 하는 데이터는 원래 24 바이트를 차지하지만, 압축을 거친 후에는 12 바이트를 차지한다. 압축률은 50%이다.
본 출원의 실시예에 의한 방법은, 공공 프리픽스를 통해 데이터를 압축 및 저장함으로써, 입력 및 출력 동작을 줄이고, 메모리 자원을 절약하며, 또한 저장 용량을 감소시킬 수 있다.
진일보로 도 5를 참조하면, 데이터를 처리하기 위한 방법의 또 하나의 실시예의 프로세스(500)를 나타낸다. 데이터를 처리하기 위한 방법의 프로세스(500)는 다음의 단계를 포함한다.
단계(501)에서, 압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬한다.
단계(502)에서, 정렬 후의 적어도 하나의 데이터 중의 데이터에 대해, 해당 데이터가 해당 데이터 이전의 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 공공 프리픽스 세트에 추가한다.
단계(503)에서, 정렬 후의 적어도 하나의 데이터를 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정한다.
단계(501)~(503)는 단계(201)~(203)와 실질적으로 동일하므로 다시 설명하지 않는다.
단계(504)에서, 적어도 하나의 데이터의 압축률을 확정한다.
본 실시예에 있어서, 각 그룹의 공공 프리픽스의 바이트 수 및 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분의 바이트 수에 기초하여 적어도 하나의 데이터의 압축 후의 데이터 용량이 결정된다. 적어도 하나의 데이터의 압축 후의 데이터 용량과 적어도 하나의 데이터 압축 전의 데이터 용량과의 비율을 압축률로 결정한다. 예를 들어, 도 4에 도시된 압축하고자 하는 데이터는, 압축 전 24 바이트를 차지하고 압축 후 12 바이트를 차지하므로 압축률은 50 %이다. 복수 라운드의 압축을 진행할 경우, 압축률은 해당 라운드의 압축 후의 데이터 용량을 해당 라운드의 압축 전의 데이터 용량으로 나눈 값이다.
단계(505)에서, 만약 압축률이 소정의 압축률 임계치 이상이거나 압축 회수가 소정의 압축 회수 임계치에 도달하면, 적어도 하나의 그룹 중의 그룹에 대해, 해당 그룹의 공공 프리픽스 및 해당 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이를 기록한다.
단계(505)는 단계(204)와 실질적으로 동일하므로 다시 설명하지 않는다.
단계(506)에서, 만약 압축률이 소정의 압축률 임계치미만이고 또 압축 회수가 소정의 압축 회수 임계치에 도달하지 않은 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬하여 다음 라운드의 압축하고자 하는 데이터 세트를 생성한다.
본 실시예에서, 예를 들어 복수 라운드 프리픽스 압축 알고리즘을 사용하여 한조의 실험 데이터 "ValueFile", "abc", "acbd", "acce", "adbde", "adcf"를 처리한다. 첫번째 라운드 압축과정에서 "ValueFile", "abc", "acbd", "acce", "adbde", "adcf"를 세개의 그룹으로 나눈다.
"ValueFile"는 기타 데이터와 공공 프리픽스가 없기 때문에 단독으로 하나의 그룹을 구성한다. 공공 프리픽스가 아닌 부분 "ValueFile"는 다음 라운드 압축에 이행된다.
"abc", "acbd", "acce"가 한 그룹이고 공공 프리픽스는 "ac"이다. 따라서 "abc"는 공공 프리픽스 "ac" + 비공공 프리픽스 "bc"로 표시될 수 있으며 공공 프리픽스가 아닌 부분 "bc"는 다음 라운드 압축에 이행된다. "acbd"는 공공 프리픽스 "ac" + 비공공 프리픽스 "bd"로 표시될 수 있으며 공공 프리픽스가 아닌 부분 "bd"는 다음 라운드의 압축에 이행된다. "acce"는 공공 프리픽스 "ac" + 비공공 프리픽스 "ce"로 표시될 수 있으며 공공 프리픽스가 아닌 부분 "ce"는 다음 라운드의 압축에 이행된다. 이 그룹에 있어서 저장해야 할 공공 프리픽스는 "ac"이고 다음 라운드의 압축에 이행되는 데이터는 "bc", "bd", "ce"이다.
"adbde" 및 "adcf"가 한 그룹이고 공공 프리픽스는 "ad"이다. 따라서 "adbde"는 공공 프리픽스 "ad" + 비공공 프리픽스 "bde"로 표시될 수 있으며 공공 프리픽스가 아닌 부분 "bde"는 다음 라운드의 압축에 이행된다. "adcf"는 공공 프리픽스 "ad" + 비공공 프리픽스 "cf"로 표시될 수 있으며 공공 프리픽스가 아닌 부분 "cf"는 다음 라운드의 압축에 이행된다. 이 그룹에서 저장해야 할 공공 프리픽스는 "ad"이고 다음 라운드의 압축에 이행되는 데이터는 "bde", "cf"이다.
제1 라운드의 압축을 거쳐 차지한 바이트 수는 9("ValueFile") + 2("ac") + 6("bc", "bd", "ce") + 2("ad") + 5("bde", "cf") = 24이다. 압축률은 24/29 = 83 %이다. 압축 임계치를 90%로 가정한 경우 다음 라운드 압축을 계속하여 진행해야 한다.
공공 프리픽스가 아닌 부분 "ValueFile", "bc", "bd", "ce", "bde", "cf"를 소정의 순서에 따라 정렬하여 다음 라운드의 압축하고자 하는 데이터 세트 {"bc", "bd ","bde ","ce ","cf ","ValueFile "}를 생성한다.
단계(507)에서, 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전의 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 복수 라운드 공공 프리픽스 세트에 추가하고, 상기 데이터 세트를 복수 라운드 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 나누고 각 그룹의 공공 프리픽스를 결정한다.
본 실시예에서, 공공 프리픽스 "ac", "ad"는 복수 라운드 공공 프리픽스 세트에 추가된다. "bc", "bd", "bde"를 한 그룹으로 하고, 공공 프리픽스는 "bd"이며 공공 프리픽스가 아닌 부분은 "c", "e"이다. "ce"와 "cf"를 한 그룹으로 하고, 공공 프리픽스는 "c", 공공 프리픽스가 아닌 부분은 "e" 및 "f"이다. "ValueFile"가 하나의 그룹이고 모두 비공공 프리픽스이다.
제2 라운드 압축의 출력 데이터를 제2 라운드 압축의 입력 데이터로 제하여 제2 라운드 압축의 압축률을 얻는다. 제2 라운드 압축의 출력 데이터는("valuefile", "c", "bd", "c ","e ","f ")이고, 제2 라운드 압축의 입력 데이터는("valuefile","bc ","bd ","bde ","ce ","cf ")이므로 제2 라운드 압축의 압축률은 15 / 20 = 75 %이다. 기타 공공 프리픽스가 없기 때문에 다음 라운드 압축을 계속하여 진행할 수 없다. 따라서 단계(505)를 계속 실행하여 공공 프리픽스 및 비 공공 프리픽스를 저장한다. 예를 들어, 데이터 "abc"는(공공 프리픽스 "ac" + 공유 길이 1) + (공공 프리픽스 "bd" + 공유 길이 1) + 비 공공 프리픽스 "c"로 표시할 수 있다. 데이터 "acbd"는 (공공 프리픽스 "ac" + 공유 길이 2) + (공공 프리픽스 "bd" + 공유 길이 2)로 표시할 수 있다. 두번의 라운드 압축을 거친 후, 정렬된 출력 데이터는 공공 프리픽스를 가지지 않으므로 알고리즘은 수료된다. 실험 데이터는 압축이 완성된 후 19개의 바이트("ac", "ad", "valuefile", "c", "bd" , "c", "e", "f")로 표시된다. 알고리즘은 진일보의 최적화를 거쳐 최종적으로 매개 라운드의 압축에서 얻어진 공공 프리픽스를 통합하고 동일 항은 다시 병합하며 "c"는 이 절차에서 동일 항에 속하므로 "c"가 병합되여 최종 데이터는 18 바이트로 표시된다. 최종적으로 저장할 데이터는 제1 라운드에서 압축된 공공 프리픽스 "ac", "ad", 제2 라운드에서 압축된 공공 프리픽스 "bd" 및 나머지 비공공 프리픽스 "c", "e", " f "이다. 표3과 같이 나타낸다.
결과는 다음 표에 나타낸 바와 같이, 2 라운드의 프리픽스 압축을 거친 후, 데이터 영역은 11 바이트가 절약되었다.
압축 전, 점용 바이트 수 29
"ValueFile" "abc" "acbd"
"acce" "adbde" "adcf"
압축 후, 점용 바이트 수 18
"ValueFile" "abc" "acbd"
"acce" "adbde" "adcf"
도 5로부터 알수 있는 바와 같이, 도 2에 대응하는 실시예에 비해, 본 실시예의 데이터를 처리하기 위한 방법의 프로세스(500)는, 데이터에 대한 복수 라운드의 압축 단계 실행을 구현하였다. 따라서, 압축률을 향상시키고 입력 및 출력 동작을 줄이고 메모리 자원을 절약하고 또한 저장 용량을 감소시킬 수 있다.
진일보로 도 6을 참조하면, 상기 도면에 도시된 방법의 구현으로서, 본 출원은 도 2에 도시된 방법의 실시예에 대응하는 데이터를 처리하기 위한 장치의 실시예를 제공하며, 상기 장치는 구체적으로 다양한 전자 기기에 응용할 수 있다.
도 6에 도시된 바와 같이, 본 실시예의 데이터를 처리하기 위한 장치(600)는, 정렬 유닛(601), 결정 유닛(602), 그룹핑 유닛(603) 및 저장 유닛(604)을 포함한다. 정렬 유닛(601)은 압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬하도록 구성되며, 결정 유닛(602)은 정렬 후의 적어도 하나의 데이터 중의 데이터에 대해, 해당 데이터가 해당 데이터 이전의 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 공공 프리픽스 세트에 추가하도록 구성되며, 그룹핑 유닛(603)은 정렬 후의 적어도 하나의 데이터를 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정하도록 구성되며, 저장 유닛(604)은 적어도 하나의 그룹 중의 그룹에 대해, 해당 그룹의 공공 프리픽스 및 해당 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이를 기록하도록 구성된다.
본 실시예에 있어서, 데이터를 처리하기 위한 장치(600)의 정렬 유닛(601), 결정 유닛(602), 그룹핑 유닛(603) 및 저장 유닛(604)의 구체적인 처리는 도 2의 대응 실시예 중의 단계(201), 단계(202), 단계(203) 및 단계(204)를 참조할 수 있다.
본 실시예의 일부 선택적인 실현방식들에 있어서, 그룹핑 유닛(603)은 또한, 공공 프리픽스 세트 및 정렬 후의 적어도 하나의 데이터에 기초하여(횡좌표는 데이터를 표시하고 종좌표는 데이터와 데이터의 이전 데이터와의 공공 프리픽스를 표시) 공공 프리픽스 절선 맵을 생성하며, 공공 프리픽스 절선 맵에 있어서 절선의 로컬 최소치 점 또는 값이 0인 점을 분계점으로 결정하며, 분계점에 의해 공공 프리픽스 절선 맵에 있어서의 데이터를 적어도 하나의 그룹으로 분할하며(여기서 분계점에 대응하는 데이터는 다음 그룹에 분할), 적어도 하나의 그룹에 대해, 해당 그룹 중의 각 데이터에 대응하는 가장 긴 공공 프리픽스를 해당 그룹의 공공 프리픽스로 결정하도록 구성된다.
본 실시예의 일부 선택적인 실현방식에 있어서, 장치(600)는 또한 복수 라운드 압축 유닛(미도시)을 포함하며, 적어도 하나의 데이터의 압축률을 확정하며, 만약 압축률이 소정의 압축률 임계치 미만일 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬하여 다음 라운드의 압축하고자 하는 데이터 세트를 생성하고, 데이터 세트에 기초하여 복수 라운드 압축 단계, 즉 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 복수 라운드 공공 프리픽스 세트에 추가하는 단계, 복수 라운드 공공 프리픽스 세트에 기초하여 데이터 세트를 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정하는 단계, 적어도 하나의 데이터의 압축률을 갱신하는 단계, 만약 갱신 후의 압축률이 소정의 압축률 임계치 이상이거나 혹은 압축 회수가 소정의 압축 회수 임계치에 도달하면, 각 그룹의 공공 프리픽스 및 각 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터 매개와 공공 프리픽스와의 공유 길이를 기록하는 단계를 실행하며, 만약 갱신 후의 압축률이 소정 압축률 임계치 미만이고 또 압축 회수가 소정 압축 회수의 임계치에 도달하지 못한 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬한 후 다음 라운드의 압축하고자 하는 데이터 세트로 갱신하고, 상기 복수 라운드 압축 단계를 계속하여 실행하도록 구성된다.
본 실시예의 일부 선택적인 실현방식에 있어서, 복수 라운드 압축 유닛은 또한, 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터 이전의 데이터와 공공 프리픽스를 갖지 않는 것에 응답하여, 해당 데이터를 다음 라운드의 압축하고자 하는 데이터 세트에 추가하도록 구성된다.
본 실시예의 일부 선택적인 실현방식에 있어서, 복수 라운드 압축 유닛은 또한, 각 그룹의 공공 프리픽스의 바이트 수 및 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분의 바이트 수에 기초하여 적어도 하나의 데이터의 압축 후의 데이터 용량을 결정하며, 적어도 하나의 데이터의 압축 후의 데이터 용량과 적어도 하나의 데이터의 압축 전의 데이터 용량과의 비율을 압축률로 결정하도록 구성된다.
본 실시예의 일부 선택적인 실현방식에 있어서, 장치(600)는 또한, 적어도 하나의 데이터 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이에 의해 각 데이터의 크기를 비교하도록 구성되는 비교 유닛(미도시)을 더 포함한다.
다음으로 도 7을 참조하면, 본 출원의 실시예의 전자 기기(도 1에 도시된 바와 같은 서버)를 실현하는데 적합한 컴퓨터 시스템(700)의 구조를 나타낸다. 도 7에 표시되는 전자 기기는 단지 하나의 예시일뿐, 본 출원의 실시예의 기능과 사용 범위에 대하여 어떠한 제한도 하지 않는다.
도 7에 나타낸 바와 같이, 컴퓨터 시스템(700)은 중앙 처리 유닛(CPU)(701)을 구비하며, CPU(701)는 읽기 전용 메모리(ROM)(702)에 저장되어 있는 프로그램 또는 저장부(708)로부터 랜덤 액세스 메모리(RAM)(703)에 로드된 프로그램에 따라 다양한 적당한 동작 및 처리를 실행할 수 있다. RAM(703)에는 시스템(700)의 동작에 필요한 각종 프로그램 및 데이터가 더 저장되어 있다. CPU(701), ROM(702), 및 RAM(703)은 버스(704)를 통해 서로 연결되어 있다. 입력/출력(I/O) 인터페이스(705)도 버스(704)에 연결되어 있다.
I/O 인터페이스(705)에 연결되는 부재로서, 키보드, 마우스 등을 포함하는 입력부(706)와, 예를 들어, 음극선관(CRT), 액정 표시 장치(LCD) 등 및 스피커 등을 포함하는 출력부(707)와, 하드 디스크 등을 포함하는 저장부(708)와, 예를 들어 LAN 카드, 모뎀 등의 네트워크 인터페이스 카드를 포함하는 통신부(709)가 포함된다.통신부(709)는 인터넷과 같은 네트워크를 통해 통신 처리를 실행한다. 드라이버(710)는 또한 필요에 따라 I/O 인터페이스(705)에 연결된다. 이동식 미디어(711), 예를 들어, 마그네틱 디스크, 광 디스크, 광자기 디스크, 반도체 메모리 등이, 필요에 따라 드라이버(710)에 장착됨으로서 드라이버(710)에서 판독된 컴퓨터 프로그램이 필요에 따라 저장부(708)에 장착된다.
특히, 본 발명의 실시예에 따르면, 상기 흐름도 참조에서 설명된 과정은 컴퓨터 소프트웨어 프로그램으로 실현될 수 있다. 예를 들어, 본 발명의 실시예는, 컴퓨터 판독 가능 매체에 로드되는 컴퓨터 프로그램을 포함한 컴퓨터 프로그램 제품을 제공하며, 상기 컴퓨터 프로그램은 흐름도에 표시된 방법을 실행하기 위한 프로그램 코드를 포함한다. 이러한 실시예에서, 상기 컴퓨터 프로그램은 통신부(709)를 통해 네트워크로부터 다운로드되어 설치 및/또는 이동식 미디어(711)로부터 장착될 수 있다. 상기 컴퓨터 프로그램은 중앙 처리 유닛(CPU)(701)에 의해 실행시, 본 출원의 방법에 한정된 상기 기능을 실행한다. 설명해야 할것은, 본 출원에 기재되는 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 저장 매체일 수 있다. 컴퓨터 판독 가능 저장 매체는 예컨대 전기, 자기, 광, 전자기, 적외선 또는 반도체의 시스템, 장치 또는 소자, 혹은 임의적인 조합일 수 있지만 이에 한정되지 않는다. 컴퓨터 판독 가능 저장 매체의 보다 구체적인 예는, 휴대형 컴퓨터 자기 디스크, 하드디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 삭제 가능 프로그래밍 읽기 전용 메모리(EPROM 또는 플래시 메모리), 휴대형 콤팩터 자기디스크 읽기 전용 메모리(CD-ROM), 광 메모리 소자, 자기 메모리 소자, 또는 상술한 요소들의 임의적인 적당한 조합을 포함하며 이에 한정되지 않는다. 본 출원에 있어서, 컴퓨터 판독 가능 저장 매체는 프로그램을 포함하거나 저장한 임의의 유형 매체일 수 있으며, 상기 프로그램은 명령 실행 시스템, 장치 또는 소자에 의해 사용되거나 그것들과 결합 사용될 수 있다. 컴퓨터 판독 가능 매체 상에 포함되는 프로그램 코드는 임의의 적절한 매체를 이용하여 전송될 수 있는데, 무선, 전선, 광 케이블, RF 등 또는 상술한 요소들의 임의의 적절한 조합을 포함할 수 있으나 이에 한정되지 않는다.
한가지 또는 여러가지 프로그램 설계 언어 또는 그 조합에 의해 본 출원에 따라 동작하는 컴퓨터 프로그램 코드를 프로그래밍할 수 있고, 상기 프로그램 설계 언어는 객체를 지향한 프로그램 설계 언어, 예컨대 Java, Smalltalk, C++를 포함하고, 상규적 과정식 프로그램 설계 언어, 예컨대 "C" 언어 또는 유사한 프로그램 설계 언어를 더 포함한다. 프로그램 코드는 완전히 사용자 컴퓨터 상에서 실행되거나, 부분적으로 사용자 컴퓨터 상에서 실행되거나, 하나의 독립적인 소프트웨어 그룹으로서 실행되거나, 일부분은 사용자 컴퓨터 상에서 타부분은 원격 컴퓨터 상에서 실행되거나, 완전히 원격 컴퓨터 또는 서버 상에서 실행될 수 있다. 원격 컴퓨터가 섭렵되는 경우, 원격 컴퓨터는 임의의 종류의 네트워크 - 로컬 영역 네트워크(LAN) 또는 광대 영역 네트워크(WAN)를 통해 사용자 컴퓨터에 연결될 수 있다. 또는, 외부 컴퓨터(예를 들면, 인터넷 서비스 제공업체를 이용하여 인터넷을 통해 연결)에 연결될 수 있다.
첨부된 도면 중의 흐름도 및 블록도는 본 출원의 각 실시예에 따른 시스템, 방법, 및 컴퓨터 프로그램 제품의 구현 가능한 체계구조, 기능 및 동작을 도시하였다. 이러한 방면에 있어서, 흐름도 또는 블록도 중의 각 블록은 하나의 모듈, 프로그램 세그먼트 또는 코드의 일부분을 대표할 수 있고, 해당 모듈, 프로그램 세그먼트 또는 코드의 일부분은 규정된 로직 기능을 구현하기 위한 하나 또는 다수의 실행 가능한 명령을 포함한다. 일부 대체 구현에 있어서, 블록에 표기된 기능들은 첨부된 도면에 표기된 순서와 다른 순서로 수행될 수도 있음을 유의하여야 한다. 예를 들어, 순차적으로 표시된 두개의 블록은 실제적으로 거의 동시에 실행될 수 있고, 경우에 따라 반대된 순서에 따라 실행될 수도 있으며, 이는 관련된 기능에 따라 결정된다. 블록도 및/또는 흐름도 중의 각 블록 및 블록도 및/또는 흐름도 중의 블록들의 조합은 규정된 기능 또는 동작을 실행하는 하드웨어 기반의 전용 시스템으로 실시되거나, 전용 하드웨어와 컴퓨터 명령의 조합으로 실시될 수 있음을 유의하여야 한다.
본 출원의 실시예에 설명된 관련 유닛들은 소프트웨어의 방식으로 실시될 수 있거나, 또는 하드웨어의 방식으로 실시될 수도 있다. 설명된 유닛은 또한 프로세서에 설치될 수도 있으며, 예를 들어, 정렬 유닛, 결정 유닛, 그룹핑 유닛 및 저장 유닛을 포함하는 프로세서로서 설명될 수 있다. 이러한 유닛들의 명칭은 해당 유닛 자체의 제한을 구성하지 않는 경우가 있다. 예를 들면, 정렬 유닛은 “압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬하는 유닛”으로 설명될 수도 있다.
다른 한 방면에 있어서, 본 출원은 컴퓨터 판독 가능한 매체를 더 제공하며, 해당 컴퓨터 판독 가능한 매체는 상술한 실시예에 설명된 장치에 포함되는 것일 수 있으며, 또는 해당 장치에 설치되는 것이 아니라 단독으로 존재할 수도 있다. 상기 컴퓨터 판독 가능 매체에는 하나 또는 다수의 프로그램이 탑재되어 있고, 상기 하나 또는 다수의 프로그램이 상기 장치에 의해 실행될 경우, 상기 장치로 하여금 압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬하며, 정렬 후의 적어도 하나의 데이터 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여, 공공 프리픽스를 공공 프리픽스 세트에 추가하며, 정렬 후의 적어도 하나의 데이터를 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정하며, 적어도 하나의 그룹 중의 그룹에 대해, 해당 그룹의 공공 프리픽스 및 해당 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이를 기록하도록 한다.
이상의 설명은 단지 본 출원의 비교적 바람직한 실시예 및 운용한 기술적 원리에 대한 설명이다. 본 출원에 관련된 발명의 범위가 상기 기술적 특징들의 특정 조합으로 이루어진 기술적 방안들에 한정되는 것이 아니라, 본 발명의 주지를 벗어나지 않는한 상기 기술적 특징들 또는 그들의 균등한 특징들의 임의의 조합으로 이루어진 기타 기술적 방안들도 포함되어야 함을 해당 기술분야의 당업자는 이해할 것이다. 예를 들어, 상기 특징들과 본 출원에 개시되어 있으나 이에 한정되지 않는 유사한 기능을 구비한 기술적 특징을 서로 대체하여 이루어진 기술적 방안도 포함된다.

Claims (14)

  1. 데이터를 처리하기 위한 방법에 있어서,
    정렬 유닛에 의해 압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬하는 단계와,
    결정 유닛에 의해 정렬 후의 상기 적어도 하나의 데이터 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공(公共) 프리픽스를 갖는 것에 응답하여, 상기 공공 프리픽스를 공공 프리픽스 세트에 추가하는 단계와,
    그룹핑 유닛에 의해 정렬 후의 상기 적어도 하나의 데이터를 상기 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정하되, 구체적으로 상기 공공 프리픽스 세트 중 공공 프리픽스 길이의 로컬 최소치를 확정하고, 상기 적어도 하나의 데이터를 상기 로컬 최소치에 의해 적어도 하나의 그룹으로 분할하되, 상기 로컬 최소치에 대응하는 데이터는 다음 그룹에 분할되며, 상기 적어도 하나의 그룹에 대해, 해당 그룹 중의 각 데이터에 있어서 대응하는 가장 긴 공공 프리픽스를 해당 그룹의 공공 프리픽스로 결정하는 단계와,
    저장 유닛에 의해 상기 적어도 하나의 그룹 중의 그룹에 대해, 해당 그룹의 공공 프리픽스 및 해당 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이를 기록하는 단계를 포함하는 데이터를 처리하기 위한 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 방법은 또한,
    복수 라운드 압축 유닛에 의해 수행되는,
    상기 적어도 하나의 데이터의 압축률을 확정하는 단계와,
    상기 압축률이 소정의 압축률 임계치 미만일 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬하여 다음 라운드의 압축하고자 하는 데이터 세트를 생성하고, 상기 데이터 세트에 기초하여 복수 라운드 압축 단계를 실행하는 단계와 - 상기 복수 라운드 압축 단계는 상기 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여 공공 프리픽스를 복수 라운드 공공 프리픽스 세트에 추가하는 단계, 상기 복수 라운드 공공 프리픽스 세트에 기초하여 상기 데이터 세트를 적어도 하나의 그룹으로 분할하고 각 그룹의 공공 프리픽스를 결정하는 단계, 상기 적어도 하나의 데이터의 압축률을 갱신하는 단계, 및 갱신 후의 압축률이 상기 소정의 압축률 임계치 이상이거나, 혹은 압축 회수가 소정의 압축 회수 임계치에 도달하면 각 그룹의 공공 프리픽스 및 각 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터 매개와 공공 프리픽스와의 공유 길이를 기록하는 단계를 포함함-,
    갱신 후의 압축률이 상기 소정의 압축률 임계치 미만이고, 압축 회수가 상기 소정의 압축 회수 임계치 미만일 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬한 후 다음 라운드의 압축하고자 하는 데이터 세트로 갱신하고, 상기 복수 라운드 압축 단계를 계속하여 실행하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 방법은 또한,
    상기 복수 라운드 압축 유닛에 의해 상기 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖지 않는 것에 응답하여, 해당 데이터를 상기 다음 라운드의 압축하고자 하는 데이터 세트에 추가하는 단계를 더 포함하는 방법.
  5. 제3항에 있어서,
    상기 적어도 하나의 데이터의 압축률을 확정하는 단계는,
    상기 복수 라운드 압축 유닛에 의해 수행되는,
    각 그룹의 공공 프리픽스의 바이트 수 및 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분의 바이트 수에 기초하여 상기 적어도 하나의 데이터의 압축 후의 데이터 용량을 확정하는 단계와,
    상기 적어도 하나의 데이터의 압축 후의 데이터 용량과 상기 적어도 하나의 데이터의 압축 전의 데이터 용량과의 비율을 압축률로 결정하는 단계를 포함하는 방법.
  6. 제1항, 제3항 내지 제5항 중의 어느 한 항에 있어서,
    상기 방법은 또한,
    비교 유닛에 의해 상기 적어도 하나의 데이터 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이에 의해 각 데이터의 크기를 비교하는 단계를 더 포함하는 방법.
  7. 데이터를 처리하기 위한 장치에 있어서,
    압축하고자 하는 적어도 하나의 데이터를 소정의 순서에 따라 정렬하도록 구성되는 정렬 유닛과,
    정렬 후의 상기 적어도 하나의 데이터 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여, 상기 공공 프리픽스를 공공 프리픽스 세트에 추가하도록 구성되는 결정 유닛과,
    정렬 후의 상기 적어도 하나의 데이터를 상기 공공 프리픽스 세트에 기초하여 적어도 하나의 그룹으로 분할하고, 각 그룹의 공공 프리픽스를 결정하도록 구성되되, 구체적으로 상기 공공 프리픽스 세트 중 공공 프리픽스 길이의 로컬 최소치를 확정하고, 상기 적어도 하나의 데이터를 상기 로컬 최소치에 의해 적어도 하나의 그룹으로 분할하되, 상기 로컬 최소치에 대응하는 데이터는 다음 그룹에 분할되며, 상기 적어도 하나의 그룹에 대해, 해당 그룹 중의 각 데이터에 있어서 대응하는 가장 긴 공공 프리픽스를 해당 그룹의 공공 프리픽스로 결정하는 그룹핑 유닛과,
    상기 적어도 하나의 그룹 중의 그룹에 대해, 해당 그룹의 공공 프리픽스 및 해당 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이를 기록하도록 구성되는 저장 유닛을 포함하는 데이터를 처리하기 위한 장치.
  8. 삭제
  9. 제7항에 있어서,
    상기 장치는 복수 라운드 압축 유닛을 더 포함하며,
    상기 복수 라운드 압축 유닛은,
    상기 적어도 하나의 데이터의 압축률을 확정하고,
    상기 압축률이 소정의 압축률 임계치 미만일 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬하여 다음 라운드의 압축하고자 하는 데이터 세트를 생성하고, 상기 데이터 세트에 기초하여 복수 라운드 압축 단계를 실행하고- 상기 복수 라운드 압축 단계는 상기 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖는 것에 응답하여 공공 프리픽스를 복수 라운드 공공 프리픽스 세트에 추가하는 단계, 상기 복수 라운드 공공 프리픽스 세트에 기초하여 상기 데이터 세트를 적어도 하나의 그룹으로 분할하고 각 그룹의 공공 프리픽스를 결정하는 단계, 상기 적어도 하나의 데이터의 압축률을 갱신하는 단계, 및 갱신 후의 압축률이 상기 소정의 압축률 임계치 이상이거나, 혹은 압축 회수가 소정의 압축 회수 임계치에 도달하면 각 그룹의 공공 프리픽스 및 각 그룹의 각 데이터 중 공공 프리픽스가 아닌 부분을 저장하고, 각 그룹 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터 매개와 공공 프리픽스와의 공유 길이를 기록하는 단계를 포함함-,
    갱신 후의 압축률이 상기 소정의 압축률 임계치 미만이고, 압축 회수가 상기 소정의 압축 회수 임계치 미만일 경우, 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분을 소정의 순서에 따라 정렬한 후 다음 라운드의 압축하고자 하는 데이터 세트로 갱신하고, 상기 복수 라운드 압축 단계를 계속하여 실행하도록 구성되는 장치.
  10. 제9항에 있어서,
    상기 복수 라운드 압축 유닛은 또한,
    상기 데이터 세트 중의 데이터에 대해, 해당 데이터가 해당 데이터의 이전 데이터와 공공 프리픽스를 갖지 않는 것에 응답하여, 해당 데이터를 상기 다음 라운드의 압축하고자 하는 데이터 세트에 추가하도록 구성되는 장치.
  11. 제9항에 있어서,
    상기 복수 라운드 압축 유닛은 또한,
    각 그룹의 공공 프리픽스의 바이트 수 및 각 그룹의 데이터 중 공공 프리픽스가 아닌 부분의 바이트 수에 기초하여 상기 적어도 하나의 데이터의 압축 후의 데이터 용량을 결정하고,
    상기 적어도 하나의 데이터의 압축 후의 데이터 용량과 상기 적어도 하나의 데이터의 압축 전의 데이터 용량과의 비율을 압축률로 결정하도록 구성되는 장치.
  12. 제7항, 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 장치는 비교 유닛을 더 포함하며,
    상기 비교 유닛은, 상기 적어도 하나의 데이터 중 각 데이터에 대응하는 공공 프리픽스 및 각 데이터의 매개와 공공 프리픽스와의 공유 길이에 의해 각 데이터의 크기를 비교하도록 구성되는 장치.
  13. 전자 기기에 있어서,
    하나 이상의 프로세서, 및
    하나 이상의 프로그램이 저장되는 저장 장치를 포함하며,
    상기 하나 이상의 프로그램이 상기 하나 이상의 프로세서에 의해 실행될 경우, 상기 하나 이상의 프로세서가 제1항에 기재된 방법을 실현하도록 하는 전자 기기.
  14. 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 프로그램이 프로세서에 의해 실행될 경우, 제1항에 기재된 방법을 실현하는 컴퓨터 판독 가능 저장 매체.
KR1020190112207A 2018-11-15 2019-09-10 데이터를 처리하기 위한 방법 및 장치 KR102236521B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811359849.2A CN109299112B (zh) 2018-11-15 2018-11-15 用于处理数据的方法和装置
CN201811359849.2 2018-11-15

Publications (2)

Publication Number Publication Date
KR20200056909A KR20200056909A (ko) 2020-05-25
KR102236521B1 true KR102236521B1 (ko) 2021-04-07

Family

ID=65144216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190112207A KR102236521B1 (ko) 2018-11-15 2019-09-10 데이터를 처리하기 위한 방법 및 장치

Country Status (4)

Country Link
US (1) US10797724B2 (ko)
JP (1) JP6859407B2 (ko)
KR (1) KR102236521B1 (ko)
CN (1) CN109299112B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765031B (zh) * 2019-09-27 2022-08-12 Oppo广东移动通信有限公司 数据存储方法、装置、移动终端及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130111164A1 (en) * 2011-10-31 2013-05-02 Jichuan Chang Hardware compression using common portions of data

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3717851A (en) * 1971-03-03 1973-02-20 Ibm Processing of compacted data
US5808570A (en) * 1996-06-28 1998-09-15 Philips Electronics North America Corp. Device and method for pair-match Huffman transcoding and high-performance variable length decoder with two-word bit stream segmentation which utilizes the same
JPH10260980A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd 圧縮検索方式
US6785699B1 (en) * 2001-05-04 2004-08-31 Lsi Logic Corporation Prefix comparator
US8108353B2 (en) * 2008-06-11 2012-01-31 International Business Machines Corporation Method and apparatus for block size optimization in de-duplication
EP2164176A1 (en) * 2008-09-12 2010-03-17 Thomson Licensing Method for lossless compressing prefix-suffix-codes, method for decompressing a bit sequence representing integers or symbols encoded in compressed prefix-suffix-codes and storage medium or signal carrying compressed prefix-suffix-codes
US9160611B2 (en) * 2009-04-22 2015-10-13 Webroot Inc. System and method for performing longest common prefix strings searches
CN102298632B (zh) * 2011-09-06 2014-10-29 神华集团有限责任公司 字符串相似度计算方法及装置以及物资分类方法及装置
KR101843087B1 (ko) * 2012-03-05 2018-03-28 삼성전자주식회사 디코딩 장치 및 방법
JP5984552B2 (ja) * 2012-07-20 2016-09-06 キヤノン株式会社 負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラム
CN103870492B (zh) 2012-12-14 2017-08-04 腾讯科技(深圳)有限公司 一种基于键排序的数据存储方法和装置
US10009372B2 (en) * 2014-07-23 2018-06-26 Petabi, Inc. Method for compressing matching automata through common prefixes in regular expressions
CN105553483B (zh) * 2015-12-09 2018-12-21 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种产生lz77的方法及装置
US10409844B2 (en) * 2016-03-01 2019-09-10 Ching-Tu WANG Method for extracting maximal repeat patterns and computing frequency distribution tables
CN108197324B (zh) * 2018-02-06 2021-07-16 百度在线网络技术(北京)有限公司 用于存储数据的方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130111164A1 (en) * 2011-10-31 2013-05-02 Jichuan Chang Hardware compression using common portions of data

Also Published As

Publication number Publication date
CN109299112A (zh) 2019-02-01
JP2020088847A (ja) 2020-06-04
KR20200056909A (ko) 2020-05-25
JP6859407B2 (ja) 2021-04-14
US20200162103A1 (en) 2020-05-21
CN109299112B (zh) 2020-01-17
US10797724B2 (en) 2020-10-06

Similar Documents

Publication Publication Date Title
US10747737B2 (en) Altering data type of a column in a database
US9298775B2 (en) Changing the compression level of query plans
US8214388B2 (en) System and method for adding a storage server in a distributed column chunk data store
CN112925859A (zh) 数据存储方法和装置
CN107562804B (zh) 数据缓存服务系统及方法、终端
CN113553300A (zh) 文件的处理方法、装置、可读介质和电子设备
KR102236521B1 (ko) 데이터를 처리하기 위한 방법 및 장치
US10866960B2 (en) Dynamic execution of ETL jobs without metadata repository
CN111723089A (zh) 一种基于列式存储格式处理数据的方法和装置
CN114139040A (zh) 一种数据存储及查询方法、装置、设备及可读存储介质
US11423000B2 (en) Data transfer and management system for in-memory database
CN116701386A (zh) 键值对检索方法、装置及存储介质
CN112862613A (zh) 一种交易数据处理方法和装置
CN113448957A (zh) 一种数据查询方法和装置
KR102529704B1 (ko) 인 메모리 데이터베이스의 데이터를 처리하는 방법 및 장치
CN113111119B (zh) 一种操作数据的方法和装置
CN117349290A (zh) 基于联机分析处理的数据处理方法、装置和电子设备
JP2023544024A (ja) 複合データ・セットの中に突き合わせるためのシステム及び方法
CN115438074A (zh) 信息展示方法、装置、计算机设备、存储介质和程序产品
CN116303566A (zh) 一种数据查询的方法和装置
CN117271463A (zh) 筛选用户的方法、装置、设备和计算机可读介质
CN113239303A (zh) 一种数据存储的方法和装置
CN114187038A (zh) 基于归因场景的数据处理方法及装置
CN117349288A (zh) 基于联机分析处理的数据查询方法、装置和电子设备
CN113760967A (zh) 一种数据查询方法和装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant