Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7616559B2 - コンピュータプログラム、データ処理方法、記録媒体およびコンピュータ装置 - Google Patents
[go: Go Back, main page]

JP7616559B2 - コンピュータプログラム、データ処理方法、記録媒体およびコンピュータ装置 - Google Patents

コンピュータプログラム、データ処理方法、記録媒体およびコンピュータ装置 Download PDF

Info

Publication number
JP7616559B2
JP7616559B2 JP2020175202A JP2020175202A JP7616559B2 JP 7616559 B2 JP7616559 B2 JP 7616559B2 JP 2020175202 A JP2020175202 A JP 2020175202A JP 2020175202 A JP2020175202 A JP 2020175202A JP 7616559 B2 JP7616559 B2 JP 7616559B2
Authority
JP
Japan
Prior art keywords
key
compressed
data record
partition
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020175202A
Other languages
English (en)
Other versions
JP2022039881A (ja
Inventor
オクス キム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Armiq Co Ltd
Original Assignee
Armiq Co Ltd
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 Armiq Co Ltd filed Critical Armiq Co Ltd
Publication of JP2022039881A publication Critical patent/JP2022039881A/ja
Application granted granted Critical
Publication of JP7616559B2 publication Critical patent/JP7616559B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • 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 OR CALCULATING; 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 operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

以下の説明は、インメモリデータベースのデータを処理する方法および装置に関する。
インターネット普及の拡大やデータ通信技術の発展などにともない、PC、ラップトップPC、およびスマートフォンのようなデータを生産および消費する手段が広く普及されるようになり、近年のデータの生産量および消費量は幾何級数的に増加するようになった。
このようなデータを効率よく分類して活用するためにデータベースでデータを管理する方法は、各種企業、団体、および学校などで広く利用されている。しかし、増加するデータ量が幾何級数的であることから、データベースの容量もすぐに限界に達し、データベースの容量を確張し続けるにも費用および管理の側面において制約的であるのが現実である。
したがって、データベースを効率よくアーカイブしながら容量を節約することができる技術への関心が高まっている。特に、データ圧縮技術を利用したデータベースのアーカイブ、およびアーカイブされたデータの検索に対する関心が高まっている。
一方、インメモリデータベース(in-memory database)技術の出現により、重要なデータが、障害が発生する場合にデータ損失の危険性が高い揮発性のデータ格納手段に格納されることが増えてきた。したがって、このようなインメモリデータベース内のデータを、適度なストレージ費用で、迅速かつ安全に不揮発性のデータ格納手段にアーカイブすることができれば、揮発性のデータ格納手段内のデータに対する損失の危険性を最小化することができる。
韓国公開特許第2014-0072929号公報
揮発性のインメモリデータベースに格納されたデータレコードをパーティション単位で圧縮して不揮発性の格納手段に格納するが、不揮発性の格納手段に格納されたパーティションそれぞれを固有に識別する格納キーと、データレコードに対するパーティションを決定するのに使用された選別情報を揮発性のインメモリデータベースのテーブルに格納することにより、不揮発性の格納手段に圧縮格納されたデータを迅速に検索することができる、データ処理方法および装置を提供する。
少なくとも1つのプロセッサを含むコンピュータ装置が実行するデータ処理方法であって、前記少なくとも1つのプロセッサにより、揮発性のインメモリデータベースのテーブルに含まれたデータレコードに対するパーティションをデータレコードの選別情報に基づいて決定する段階、前記少なくとも1つのプロセッサにより、前記パーティションごとにデータレコードを圧縮して圧縮パーティションを生成する段階、前記少なくとも1つのプロセッサにより、前記圧縮パーティションと前記圧縮パーティションを固有に識別する格納キーとを連係させて不揮発性の格納手段に格納する段階、および前記少なくとも1つのプロセッサにより、前記格納キーと前記選別情報とを連係させて前記揮発性のインメモリデータベースのインデックステーブルに格納する段階を含む、データ処理方法を提供する。
一側によると、前記分類する段階は、前記選別情報は該当のデータレコードの任意のフィールド値を含み、前記インデックステーブルに格納する段階は、前記格納キーと前記任意のフィールド値とを連係させてグループインデックステーブルに格納することを特徴としてよい。
他の側面によると、前記選別情報は該当のデータレコードの時間に関する情報を含み、前記インデックステーブルに格納する段階は、前記格納キーと前記時間に関する情報とを連係させて期間インデックステーブルに格納することを特徴としてよい。
また他の側面によると、前記データ処理方法は、前記テーブルに含まれたデータレコードそれぞれに対し、プライマリキー(primary key)と、該当のデータレコードを含んで圧縮された圧縮パーティション内での該当のデータレコードの位置であるキーインデックス情報と、該当のデータレコードを含んで圧縮された圧縮パーティションに対応する格納キーとを連係させてキーインデックステーブルに格納する段階をさらに含んでよい。
また他の側面によると、前記キーインデックステーブルに格納する段階は、前記プライマリキーによって前記テーブルと連結する連結テーブルでデータレコードを圧縮して生成された第2圧縮パーティションに対し、前記第2圧縮パーティションに含まれたデータレコードのうちで前記テーブルに含まれたデータレコードと前記プライマリキーが等しいデータレコードを検索する段階、および前記検索されたデータレコードに対し、前記第2圧縮パーティション内での位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーが等しいデータレコードに対してさらに格納する段階を含むことを特徴としてよい。
また他の側面によると、前記データ処理方法は、前記圧縮されたデータレコードを前記テーブルから削除する段階をさらに含んでよい。
また他の側面によると、前記データ処理方法は、前記削除されたデータレコードの復元要求に応答し、前記復元要求が含む識別情報と連係する格納キーを前記インデックステーブルから検索する段階、前記不揮発性の格納手段で前記検索された格納キーと連係する圧縮パーティションを検索する段階、前記検索された圧縮パーティションの圧縮を解除して前記削除されたデータレコードを復元する段階、および前記復元されたデータレコードを前記識別情報に基づいて前記テーブルに記録する段階をさらに含んでよい。
また他の側面によると、前記圧縮パーティションを生成する段階は、前記決定されたパーティションに含まれたデータレコードをバイナリオブジェクトとして圧縮して前記圧縮パーティションを生成することを特徴としてよい。
さらに他の側面によると、前記不揮発性の格納手段に格納する段階は、前記圧縮パーティションおよび前記格納キーを、前記コンピュータ装置とネットワークを介して接続する他のコンピュータ装置の不揮発性の格納手段に分離して格納することを特徴としてよい。
少なくとも1つのプロセッサを含むコンピュータ装置が実行するデータ処理方法であって、前記少なくとも1つのプロセッサにより、データレコードの選別情報を含む検索条件を受信する段階、前記少なくとも1つのプロセッサにより、揮発性のインメモリデータベース上で、データレコードの選別情報と該当のデータレコードが含まれた圧縮パーティションを固有に識別する格納キーとを連係させて格納するインデックステーブルから、前記検索条件が含む選別情報と連係する格納キーを検索する段階、および前記少なくとも1つのプロセッサにより、格納キーと圧縮パーティションとを連係させて格納する不揮発性の格納手段で前記検索された格納キーと連係する圧縮パーティションを検索する段階を含む、データ処理方法を提供する。
一側によると、前記選別情報は、該当のデータレコードの任意のフィールド値を含み、前記格納キーを検索する段階は、前記格納キーと前記任意のフィールド値とを連係させて格納するグループインデックステーブルで前記検索条件の選別情報として含まれた任意のフィールド値と連係する格納キーを検索することを特徴としてよい。
他の側面によると、前記選別情報は、該当のデータレコードの時間に関する情報を含み、前記検索された格納キーと連係する圧縮パーティションを検索する段階は、前記格納キーと前記時間に関する情報とを連係させて格納する期間インデックステーブルで前記検索条件の選別情報として含まれた時間に関する情報と連係する格納キーを検索することを特徴としてよい。
また他の側面によると、前記データ処理方法は、前記検索条件がデータレコードのプライマリキーをさらに含む場合、キーインデックステーブルで前記検索条件がさらに含むプライマリキーと連係するキーインデックス情報および格納キーを検索する段階をさらに含み、前記キーインデックステーブルは、揮発性のインメモリデータベース上の任意のテーブルが含むデータレコードそれぞれに対し、プライマリキーと、該当のデータレコードを含んで圧縮された圧縮パーティション内での該当のデータレコードの位置であるキーインデックス情報と、該当のデータレコードを含んで圧縮された圧縮パーティションに対応する格納キーとを連係させて格納することを特徴としてよい。
また他の側面によると、前記検索された格納キーと連係する圧縮パーティションを検索する段階は、前記検索されたキーインデックス情報および格納キーにさらに基づき、前記検索された圧縮パーティションで検索条件によるデータレコードを検索することを特徴としてよい。
また他の側面によると、前記キーインデックステーブルは、前記プライマリキーによって前記任意のテーブルと連結する連結テーブルが存在する場合、前記連結テーブルでデータレコードを圧縮して生成された第2圧縮パーティションに対し、データレコードの前記第2圧縮パーティションでの位置であるサブインデックス情報をさらに含み、前記キーインデックス情報および格納キーを検索する段階は、前記キーインデックステーブルで前記検索条件がさらに含むプライマリキーと連係するサブインデックス情報をさらに検索し、前記検索された格納キーと連係する圧縮パーティションを検索する段階は、前記第2圧縮パーティションおよび前記サブインデックス情報に基づき、前記第2圧縮パーティションで前記検索条件によるデータレコードをさらに検索することを特徴としてよい。
さらに他の側面によれば、前記不揮発性の格納手段は、前記コンピュータ装置とネットワークを介して接続する他のコンピュータ装置の不揮発性の格納手段を含み、前記不揮発性の格納手段で前記検索された格納キーと連係する圧縮パーティションを検索する段階は、前記ネットワークを介し、前記他のコンピュータ装置の不揮発性の格納手段から前記検索された格納キーと連係する圧縮パーティションを検索することを特徴としてよい。
コンピュータ装置と結合して前記方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録された、コンピュータプログラムを提供する。
前記方法をコンピュータ装置に実行させるためのプログラムが記録されている、コンピュータ読み取り可能な記録媒体を提供する。
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、揮発性のインメモリデータベースのテーブルに含まれたデータレコードに対するパーティションをデータレコードの選別情報に基づいて決定し、前記パーティションごとにデータレコードを圧縮して圧縮パーティションを生成し、前記圧縮パーティションと前記圧縮パーティションを固有に識別する格納キーとを連係させて不揮発性の格納手段に格納し、前記格納キーと前記選別情報とを連係させて前記揮発性のインメモリデータベースのインデックステーブルに格納することを特徴とする、コンピュータ装置を提供する。
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、データレコードの選別情報を含む検索条件を受信し、揮発性のインメモリデータベース上でデータレコードの選別情報と該当のデータレコードが含まれた圧縮パーティションを固有に識別する格納キーとを連係させて格納するインデックステーブルから、前記検索条件が含む選別情報と連係する格納キーを検索し、格納キーと圧縮パーティションとを連係させて格納する不揮発性の格納手段で前記検索された格納キーと連係する圧縮パーティションを検索することを特徴とする、コンピュータ装置を提供する。
揮発性のインメモリデータベースに格納されたデータレコードをパーティション単位で圧縮して不揮発性の格納手段に格納するが、不揮発性の格納手段に格納されたパーティションそれぞれを固有に識別する格納キーとデータレコードに対するパーティションを決定するのに使用された選別情報を揮発性のインメモリデータベースのテーブルに格納することにより、不揮発性の格納手段に圧縮格納されたデータを迅速に検索することができる。
本発明の一実施形態における、ネットワーク環境の例を示した図である。 本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。 本発明の一実施形態における、アーカイブのためのコンピュータシステムを概括的に示した図である。 本発明の一実施形態における、データをアーカイブするためのデータ処理方法の例を示したフローチャートである。 本発明の一実施形態における、データをアーカイブするためのデータ処理方法の他の例を示したフローチャートである。 本発明の一実施形態における、圧縮テーブルの構造の第1例を示した図である。 本発明の一実施形態における、圧縮テーブルの構造の第2例を示した図である。 本発明の一実施形態における、期間インデックステーブルの構造の例を示した図である。 本発明の一実施形態における、グループインデックステーブルの構造の例を示した図である。 本発明の一実施形態における、圧縮テーブルの構造の第2例を示した図である。 本発明の一実施形態における、期間インデックステーブルとグループインデックステーブルとが結合された形態のインデックステーブルの構造の例を示した図である。 本発明の一実施形態における、データをアーカイブするためのデータ処理方法のまた他の例を示したフローチャートである。 本発明の一実施形態における、圧縮テーブルおよびキーインデックステーブルの構造の例を示した図である。 本発明の一実施形態における、圧縮テーブルおよびキーインデックステーブルの構造の他の例を示した図である。 本発明の一実施形態における、アーカイブされたデータを検索するためのデータ処理方法の例を示した図である。 本発明の一実施形態における、アーカイブされたデータを検索する例を示した図である。 本発明の一実施形態における、アーカイブされたデータを検索する例を示した図である。
本発明は、多様な変更が加えられても、多様な実施形態を有してもよいものであり、特定の実施形態については、図面を参照しながら以下の詳細な説明において詳しく説明する。しかし、これは、本発明を特定の実施形態に対して限定しようとするものではなく、本発明の思想および技術範囲に含まれるすべての変更、均等物、あるいは置換物を含むものと理解されなければならない。各図面を説明するにあたり、類似の構成要素には類似の参照符号を付与した。
第1、第2、A、Bなどの用語は、多様な構成要素を説明するために使用されるものに過ぎず、前記構成要素がこのような用語によって限定されてはならない。前記用語は、1つの構成要素を他の構成要素と区別することを目的とするものに過ぎない。例えば、本発明の権利範囲を逸脱しない限り、第1構成要素が第2構成要素と命名されてもよく、同じように、第2構成要素が第1構成要素と命名されてもよい。および/またはという用語は、複数の関連して記載された項目の組み合わせ、または複数の関連して記載された項目のうちのいずれかの項目を含む。
ある構成要素が他の構成要素に「連結されて」いるか「接続されて」いるという記載は、その他の構成要素に直接に連結あるいは接続されている状態はもちろん、その中間に他の構成要素が存在する場合も含まれると理解されなければならない。この反面、ある構成要素が他の構成要素に「直接に連結されて」いるか「直接に接続されて」いると記載されるときには、その中間に他の構成要素が存在しない状態であると理解されなければならない。
本出願で使用される用語は、特定の実施形態を説明するためのものに過ぎず、本発明を限定しようと意図するものではない。単数の表現は、文脈において明らかな説明がない限り、複数の表現も含む。本出願において、「含む」または「有する」などの用語は、明細書に記載された特徴、数字、段階、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定するためのものであり、1つまたはそれ以上の他の特徴や数字、段階、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加的な可能性を予め排除しないものと理解されなければならない。
異なるように定義されない限り、技術的や科学的な用語を含んでここで使用されるすべての用語は、本発明が属する技術分野において通常の知識を有する者が一般的に理解しているものと同じ意味をもつ。一般的に使用される、事前に定義されたものと同じ用語は、関連技術の文脈に記載されている意味と一致する意味をもつと解釈されなければならず、本出願で明らかに定義しない限り、理想的や過度に形式的な意味として解釈されてはならない。
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
本発明の実施形態に係るデータ処理システムは、少なくとも1つのコンピュータ装置によって実現されてよく、本発明の実施形態に係るデータ処理方法は、データ処理システムに含まれる少なくとも1つのコンピュータ装置によって実行されてよい。コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実現されてよく、コンピュータ装置は、実現するコンピュータプログラムの制御にしたがって本発明の実施形態に係るデータ処理方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してデータ処理方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。また、図1のネットワーク環境は、本実施形態に適用可能な環境のうちの1つの例を説明するものに過ぎず、本実施形態に適用可能な環境が図1のネットワーク環境に限定されることはない。
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、アーカイブサービス、ファイル配布サービス、地図サービス、コンテンツ提供サービス、グループ通話サービス(または、音声会議サービス)、メッセージングサービス、メールサービス、ソーシャルネットワークサービス、翻訳サービス、金融サービス、決済サービス、検索サービスなど)を提供するシステムであってよい。
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、図2に示したコンピュータ装置200によって実現されてよい。
このようなコンピュータ装置200は、図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信モジュール230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データファイルなどが、ネットワーク170を経てコンピュータ装置200の通信モジュール230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
図3は、本発明の一実施形態における、アーカイブのためのコンピュータシステムを概括的に示した図である。図3のコンピュータシステム300は、上述したコンピュータ装置200によって実現されてよく、インメモリデータベース310、不揮発性の格納手段320、アーカイブコンポーネント330、およびインタフェースコンポーネント340を含んでよい。
インメモリデータベース310に格納されたデータは、アーカイブコンポーネント330の処理によって不揮発性の格納手段320にアーカイブされてよい。また、不揮発性の格納手段320にアーカイブされたデータは、アーカイブコンポーネント330の処理によってインメモリデータベース310に復元されるか、または検索されてよい。
実施形態によって、不揮発性の格納手段320は、コンピュータシステム300の外部に存在してもよい。例えば、不揮発性の格納手段320は、コンピュータシステム300とネットワークを介して接続する他のコンピュータ装置に含まれてよい。他のコンピュータ装置は、独立的に存在するか、またはクラウドシステムの一部であってよい。
また、実施形態に係るアーカイブコンポーネント330がデータをアーカイブするための機能、データを修復するための機能、およびデータを検索するための機能のうちの少なくとも1つが、外部サービスによって提供されてもよい。例えば、アーカイブコンポーネント330は、APIコールに基づき、外部サービスが提供する機能を活用してデータをアーカイブ、復元、および/または検索してよい。
図4は、本発明の一実施形態における、データをアーカイブするためのデータ処理方法の例を示したフローチャートである。本実施形態に係るデータ処理方法は、図3で説明したコンピュータシステム300を実現するコンピュータ装置200によって実行されてよい。このとき、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図4の方法に含まれる段階410~440を実行するようにコンピュータ装置200を制御してよい。
段階410で、コンピュータ装置200は、揮発性のインメモリデータベースのテーブルに含まれたデータレコードに対するパーティションをデータレコードの選別情報に基づいて決定してよい。ここで、揮発性のインメモリデータベースは、図3で説明したインメモリデータベース310に対応してよい。選別情報は、データレコードの時間に関する情報、および/またはデータレコードの任意のフィールド値を含んでよい。コンピュータ装置200は、このような時間に関する情報および/またはフィールド値に基づいてデータレコードに対するパーティションを決定してよい。テーブルとは、インメモリデータベースでデータを格納する基本構造をなす単位であり、段階410では、インメモリデータベースに含まれた複数のテーブルのうちで容量を節約するためにアーカイブしようとするテーブルを意味してよい。
例えば、コンピュータ装置200は、フィールド値が所定の範囲以内であるデータレコードを1つのパーティションとして選別してよい。このとき、フィールド値は、テーブルで検索が最も頻繁に発生するフィールドのフィールド値によって決定されてよい。これは、アーカイブされたデータをのちに検索するときに、該当のフィールド値に基づいて生成されたインデックス情報を利用することで検索の効率性を極大化することができるためである。他の例として、コンピュータ装置は、時間に関する情報が所定の範囲以内であるデータレコードを1つのパーティションとして選別してよい。
また、パーティションは、テーブルに含まれた全体のデータレコードのうちから選別されたデータレコードの集合で構成されてよい。パーティションは、少なくとも1つ以上が生成されてよく、必要によっては、テーブルの全体ではなく、一部のデータレコードだけを対象として限定してパーティションを生成してよい。例えば、テーブルから2015年以降のデータレコードは除外し、2015年以前のデータレコードだけを対象としてアーカイブのためのパーティションを生成してよい。
一方、1つのパーティションに含まれるデータレコードの個数は、テーブルに含まれた全体のレコードの個数、インメモリデータベースを検索するコンピュータの性能、およびインメモリデータベースで頻度が高い検索条件などを総合的に分析および検討して決定されてよい。
他の実施形態では、選別されたパーティションのうちでデータレコードの個数が閾値を超える超過パーティションが存在すれば、この超過パーティションをレコードの個数が閾値以下である複数のパーティションに分離してよい。例えば、1つのパーティションに含まれるデータレコードの個数である閾値が10万個に設定されたとする。しかし、選別されたパーティションが閾値を超える個数のデータレコードを含んでいれば、これはコンピュータの過負荷および非効率を招くようになり、問題発生の原因となり得る。したがって、1つのパーティションが10万個を超えるデータレコードを有する場合、これを10万個単位の複数のパーティションに分離して複数のパーティションを生成してよい。例えば、1つのパーティションが25万個のデータレコードを有する場合、コンピュータ装置200は、この超過パーティションを10万個ずつのデータレコードを有する2つのパーティションと5万個のデータレコードを有する1つのパーティションとして、合計3つのパーティションに分離してよい。
一方、上述したように分離された複数のパーティションは、互いに同じフィールド値による分類基準によって分類されるため、このような複数のパーティションを区別する方法はない。したがって、分離された複数のレコードグループそれぞれに一連番号(例えば、1、2、3、4、・・・)を付与してインデックステーブルの一連番号フィールドにさらに格納してよい。この場合、アーカイブされたデータを検索するときにも、分離された複数のパーティションそれぞれを区別して検索することができるようになる。このような一連番号は、以下で説明するシーケンスに対応してよい。
段階420で、コンピュータ装置200は、パーティションごとにデータレコードを圧縮して圧縮パーティションを生成してよい。一例として、コンピュータ装置200は、決定されたパーティションに含まれたデータレコードをバイナリオブジェクトとして圧縮して圧縮パーティションを生成してよい。
一例として、コンピュータ装置200は、圧縮パーティションを生成するために、先ず、圧縮パーティションに含まれるデータレコードをバッファに格納してよい。データレコードが格納されるバッファのサイズは、テーブルの構造(フィールドの個数、種類、およびサイズ)、および圧縮パーティションに含まれるデータレコードの閾値に基づいて決定されてよい。例えば、テーブルがDATE(文字8字)、NAME(文字30字)、およびAGE(整数4バイト)の合計3つのフィールドを含んでおり、圧縮パーティションに含まれたデータレコードの個数に対する閾値が10万個であるとすると、文字1字を2バイトとして計算するとき、バッファのサイズは、最小10万×(8×2+30×2+4)=800万バイト(約8メガバイト)となってよい。このとき、コンピュータ装置200は、圧縮パーティションに含まれたデータレコードおよびそのデータレコードのフィールド値を順にすべて読み取り、順にバッファに格納してよい。
この後、コンピュータ装置200は、バッファに格納されたデータを圧縮して圧縮パーティションを生成してよい。圧縮パーティションは、バッファに格納されたデータを圧縮して生成されたバイナリオブジェクト形態の結果物であってよい。このとき、圧縮による損失が発生しないようにするために、無損失の圧縮アルゴリズムであるZIP、CTW、LZ77、LZW、gzip、bzip2、DEFLATEなどが使用されてよい。
このとき、コンピュータ装置200は、生成された圧縮パーティションごとに固有に付与された格納キーを生成してよい。
段階430で、コンピュータ装置200は、圧縮パーティションと圧縮パーティションを固有に識別する格納キーとを連係させて不揮発性の格納手段に格納してよい。上述したように、不揮発性の格納手段は、コンピュータ装置200に含まれてもよいし、コンピュータ装置200とネットワークを介して接続する他のコンピュータ装置に含まれてもよい。例えば、圧縮パーティションは、不揮発性の格納手段で、パーティション単位に圧縮してアーカイブされたデータが格納される圧縮テーブルに格納されてよい。圧縮テーブルは、パーティションごとに圧縮して生成された圧縮パーティションを格納するためのフィールドと、該当の圧縮パーティションに対応するように固有に付与された格納キーを格納するためのフィールドを含んでよい。格納キーは、圧縮パーティションごとに固有に付与された値を含むキーであって、格納キーに該当する圧縮テーブルのフィールドに圧縮パーティションごとに共有する格納キーの値が格納されてよい。また、格納キーに該当するフィールドは1つ以上であってもよく、この1つ以上のフィールドに分散して格納された格納キーの値が結合されたときに、圧縮パーティションごとに固有の格納キーが形成されるように実現されてもよい。
段階440で、コンピュータ装置200は、格納キーと選別情報とを連係させて揮発性のインメモリデータベースのインデックステーブルに格納してよい。一例として、選別情報が該当のデータレコードの任意のフィールド値を含む場合、コンピュータ装置200は、段階440で、格納キーと任意のフィールド値とを連係させてグループインデックステーブルに格納してよい。グループインデックステーブルに格納された格納キーとフィールド値は、任意のフィールド値を含む検索条件によって圧縮格納されたデータレコードを検索するためのインデックスとして活用されてよい。他の例として、選別情報がデータレコードの時間に関する情報を含む場合、コンピュータ装置200は、格納キーと時間に関する情報とを連係させて期間インデックステーブルに格納してよい。期間インデックステーブルに格納された格納キーと時間に関する情報は、任意の時間に関する情報を含む検索条件によって圧縮格納されたデータレコードを検索するためのインデックスとして活用されてよい。言い換えれば、グループインデックステーブルおよび/または期間インデックステーブルを含むインデックステーブルは、検索条件が含むフィールド値および/または時間に関する情報に対応する格納キーを取得するのに利用されてよく、格納キーは、不揮発性の格納手段(が含む圧縮テーブル)で格納キーに対応する圧縮パーティションを取得するのに利用されてよい。
図5は、本発明の一実施形態における、データをアーカイブするためのデータ処理方法の他の例を示したフローチャートである。本実施形態に係るデータ処理方法は、図4で説明した段階440の後に段階510をさらに含んでよい。
段階510で、コンピュータ装置200は、圧縮されたデータレコードをテーブルから削除してよい。データベースを圧縮してアーカイブする目的は、データベースの格納空間を節約することにあるため、コンピュータ装置200は、アーカイブされたデータレコードをテーブルから削除することによってインメモリデータベースの格納空間を節約してよい。ただし、実施形態によっては、圧縮されたデータレコードをテーブルからすぐに削除するのではなく、一定期間が経過した後にテーブルから削除してもよい。
一方、削除されたデータレコードは、のちに該当のテーブルに復旧されてもよい。例えば、コンピュータ装置200は、削除されたデータレコードの復元要求に応答し、インデックステーブルで復元要求が含む識別情報と連係する格納キーを検索し、不揮発性の格納手段(または、不揮発性の格納手段が含む圧縮テーブル)で検索された格納キーと連係する圧縮パーティションを検索してよい。この後、コンピュータ装置200は、検索された圧縮パーティションの圧縮を解除して削除されたデータレコードを復元し、復元されたデータレコードを識別情報に基づいてテーブルに記録してよい。このとき、圧縮パーティションが含むデータレコードのうちで復元が要求された特定のデータレコードを識別するために、以下で説明するキーインデックステーブルの情報が活用されてもよい。
図6は、本発明の一実施形態における、圧縮テーブルの構造の第1例を示した図である。図6のテーブル610は、Doc.No.フィールド611、時間に対するDateフィールド612、および特定の属性に対するCol1フィールド613を含んでいる。このとき、コンピュータ装置200は、選別情報として、時間に関する情報であるテーブル610のDateフィールド612のフィールド値またはCol1フィールド613のフィールド値に基づいてテーブル610のデータレコードを分類および圧縮することによって圧縮パーティションを生成してよい。このとき、コンピュータ装置200は、圧縮パーティションを固有に識別するための格納キーと該当の圧縮パーティションとを互いに連係させて格納することによって圧縮テーブル620を生成してよい。例えば、図6の実施形態に係る圧縮テーブル620は、格納キーをフィールド値として有するOBJECT IDフィールド621と、圧縮パーティションをフィールド値として有するCOMPRESSED DATAフィールド622とを含んでよい。
図7は、本発明の一実施形態における、圧縮テーブルの構造の第2例を示した図であり、図8は、本発明の一実施形態における、期間インデックステーブルの構造の例を示した図であり、図9は、本発明の一実施形態における、グループインデックステーブルの構造の例を示した図である。
図7は、図6で説明したテーブル610に基づいて圧縮テーブル700を生成する他の実施形態を説明している。例えば、コンピュータ装置200は、選別情報として、時間に関する情報であるテーブル610のDateフィールド612のフィールド値に基づいてテーブル610のデータレコードを分類および圧縮することによって圧縮パーティションを生成してよい。また、コンピュータ装置200は、選別情報と該当する圧縮パーティションとを互いに連係させて格納することによって圧縮テーブル700を生成してよい。例えば、図7の実施形態に係る圧縮テーブル700は、時間に関する情報をフィールド値として有するPERIODフィールド710と、圧縮パーティションをフィールド値として有するCOMPRESSED DATAフィールド720とを含んでよい。
図8は、圧縮テーブル620がDateフィールド612のフィールド値(時間に関する情報)に基づいてデータレコードを分類および圧縮することによって生成された圧縮パーティションを含む場合に生成および活用されることのできる期間インデックステーブル800の例を示している。このとき、期間インデックステーブル800は、時間に関する情報をフィールド値として有するPERIODフィールド810と、格納キーをフィールド値として有するOBJECT IDフィールド820とを含んでよい。例えば、コンピュータ装置200は、時間に関する情報(一例として、「2020.01」)を選別情報として含む検索条件を受信する場合、期間インデックステーブル800で検索条件に含まれた時間に関する情報を利用して対応する格納キー(一例として、期間インデックステーブル800で時間に関する情報「2020.01」に対応する格納キー「O0001」)を検索してよく、検索された格納キーを利用して、圧縮テーブル620で格納キーに対応する圧縮パーティション(一例として、圧縮テーブル620で格納キー「O0001」に対応する「50,000Rows」の圧縮パーティション)を検索することができるようになる。
また、図9は、圧縮テーブル620がCol1フィールド613のフィールド値に基づいてデータレコードを分類および圧縮することによって生成された圧縮パーティションを含む場合に生成および活用されることのできるグループインデックステーブル900の例を示している。このとき、グループインデックステーブル900は、Col1フィールド613のフィールド値を自身のフィールド値として有するPERIODフィールド910、および格納キーをフィールド値として有するOBJECT IDフィールド920を含んでよい。例えば、コンピュータ装置200は、Col1フィールド613のフィールド値(一例として、「1000」)を選別情報として含む検索条件を受信する場合、グループインデックステーブル900で検索条件に含まれたフィールド値を利用して、対応する格納キー(一例として、グループインデックステーブル900でフィールド値「1000」に対応する格納キー「O0001」)を検索してよく、検索された格納キーを利用して、圧縮テーブル620で格納キーに対応する圧縮パーティション(一例として、圧縮テーブル620で格納キー「O0001」に対応する「50,000Rows」の圧縮パーティション)を検索することができるようになる。
図10は、本発明の一実施形態における、圧縮テーブルの構造の第2例を示した図であり、図11は、本発明の一実施形態における、期間インデックステーブルとグループインデックステーブルが結合された形態のインデックステーブルの構造の例を示した図である。
図10は、図6で説明したテーブル610に基づいて圧縮テーブル1000を生成するまた他の実施形態を説明している。例えば、コンピュータ装置200は、時間に関する情報であるテーブル610のDateフィールド612のフィールド値およびCol1フィールド613のフィールド値の2つのフィールド値に基づいてテーブル610のデータレコードを分類および圧縮することによって圧縮パーティションを生成してよい。
より具体的な例として、コンピュータ装置200は、Dataフィールド612のフィールド値が「2002.01」でありながらCol1フィールド613のフィールド値が「1000」であるデータレコードを圧縮して第1圧縮パーティションを、Dataフィールド612のフィールド値が「2002.01」でありながらCol1フィールド613のフィールド値が「2000」であるデータレコードを圧縮して第2圧縮パーティションを、Dataフィールド612のフィールド値が「2002.02」でありながらCol1フィールド613のフィールド値が「1000」であるデータレコードを圧縮して第3圧縮パーティションを、Dataフィールド612のフィールド値が「2002.02」でありながらCol1フィールド613のフィールド値が「2000」であるデータレコードを圧縮して第4圧縮パーティションを、Dataフィールド612のフィールド値が「2002.03」でありながらCol1フィールド613のフィールド値が「1000」であるデータレコードを圧縮して第5圧縮パーティションを、Dataフィールド612のフィールド値が「2002.03」でありながらCol1フィールド613のフィールド値が「2000」であるデータレコードを圧縮して第6圧縮パーティションを、それぞれ生成してよい。
この場合、コンピュータ装置200は、圧縮パーティションを固有に識別するための格納キーと該当の圧縮パーティションとを互いに連係させて格納することによって圧縮テーブル1000を生成してよい。例えば、図10の実施形態に係る圧縮テーブル1000は、格納キーをフィールド値として有するOBJECT IDフィールド1010と、圧縮パーティションをフィールド値として有するCOMPRESSED DATAフィールド1020とを含んでよい。
図11は、期間インデックステーブルとグループインデックステーブルが結合された形態のインデックステーブル1100の例を示している。このとき、インデックステーブル1100は、時間に関する情報をフィールド値として有するPERIODフィールド1110、Col1フィールド613のフィールド値を自身のフィールド値として有する Col1フィールド1120、および格納キーをフィールド値として有するOBJECT IDフィールド1130を含んでよい。例えば、コンピュータ装置200は、時間に関する情報(一例として、「2020.02」)およびCol1フィールド613のフィールド値(一例として、「1000」)を選別情報として含む検索条件を受信する場合、インデックステーブル1100で検索条件が含む時間に関する情報とフィールド値の両方を満たす格納キー(一例として、インデックステーブル1100の格納キー「O0003」)を検索してよく、検索された格納キーを利用して、圧縮テーブル1000で格納キーに対応する圧縮パーティション(一例として、圧縮テーブル1000で格納キー「O0003」に対応する「30,000Rows」の圧縮パーティション)を検索することができるようになる。
このように、本発明の一実施形態に係るデータ処理方法は、圧縮手順を経ながらインメモリデータベースをアーカイブすることにより、インメモリデータベースの容量を画期的に節約することができるという効果がある。また、インメモリデータベースに含まれたインデックステーブルによって圧縮されたデータが格納される不揮発性の格納手段の原本テーブルに接続し、のちには、そのアーカイブされたデータを復元または検索することによって検索の効率性を極大化することができる。
一方、揮発性のインメモリデータベースに含まれるインデックステーブルは、インメモリデータベースの特性上、データが損傷する危険性があるため、別の不揮発性の格納手段にバックアップされてもよい。インデックステーブルがバックアップされる不揮発性の格納手段は、圧縮パーティションが格納される不揮発性の格納手段と同じであってもよいし、異なってもよい。例えば、圧縮パーティションは、コンピュータ装置200の外部システムに含まれる不揮発性の格納手段に格納され、インデックステーブルは、コンピュータ装置200のローカルストレージにバックアップされる場合が考えられる。
図12は、本発明の一実施形態における、データをアーカイブするためのデータ処理方法のまた他の例を示したフローチャートである。本実施形態に係るデータ処理方法は、図4で説明した段階440の後に段階1210をさらに含んでよい。
段階1210で、コンピュータ装置200は、テーブルに含まれたデータレコードそれぞれに対し、プライマリキー(primary key)と、該当のデータレコードを含んで圧縮された圧縮パーティション内での該当のデータレコードの位置であるキーインデックス情報と、該当のデータレコードを含んで圧縮された圧縮パーティションに対応する格納キーとを連係させてキーインデックステーブルに格納してよい。
プライマリキーとは、インメモリデータベースでレコードごとに固有に識別される値を有するフィールドでの該当の値を意味してよく、基本キー、主キー、またはユニークキーとも呼ばれる。また、1つのテーブルには1つ以上のプライマリキーが存在してよい。また、キーインデックス情報は、特定のプライマリキーの値を有するデータレコードが圧縮パーティション内でどの位置に格納されているかに関する情報である。例えば、圧縮パーティションが含む10万個のデータレコードに関する情報のうちで1000番目に格納されたデータレコードであるという格納順に関する情報がキーインデックス情報に格納されてよい。
一方、キーインデックステーブルにプライマリキーを格納する理由は、検索対象となるテーブルを他のフィールド値および時間に関する情報だけでなく、このプライマリキーによって直接に検索できるようにするためである。すなわち、ユーザが特定のプライマリキーを入力しながら、このプライマリキーを有するデータレコードをテーブルから検索しようとするときに、キーインデックステーブルが使用されてよい。より具体的に説明すると、コンピュータ装置200は、特定のプライマリキーを有するデータレコードのキーインデックス情報と格納キーをキーインデックステーブルで検索してよい。この場合、コンピュータ装置200は、取得した格納キーを利用して、不揮発性の格納手段(または、不揮発性の格納手段が含む圧縮テーブル)で格納キーに対応する圧縮パーティションを取得してよく、キーインデックス情報を利用して、圧縮パーティションでユーザが所望する特定のデータレコードを検索することができるようになる。上述したように、このようなキーインデックステーブルのキーインデックス情報は、特定の条件のデータレコードをテーブルに復元するにあたり、圧縮パーティションが含むデータレコードのうちから特定の条件のデータレコードを識別するために活用されてもよい。
図13は、本発明の一実施形態における、圧縮テーブルおよびキーインデックステーブルの構造の例を示した図である。
圧縮テーブル1310は、格納キーをフィールド値として有するOBJECT IDフィールド1311、対象テーブルの処理順(シーケンス)をフィールド値として有するSEQフィールド1312、および圧縮パーティションをフィールド値として有するCOMPRESSED DATAフィールド1313を含んでよい。シーケンスは、親テーブルと子テーブルが存在するとき、親テーブルを先に抽出し、抽出された親テーブルのデータを利用して子テーブルを処理する処理順を定義してよい。
キーインデックステーブル1320は、上述したように、プライマリキーをフィールド値として有するDoc.No.フィールド1321、格納キーをフィールド値として有するOBJECT IDフィールド1322、およびキーインデックス情報をフィールド値として有するKey Location info.フィールド1323を含んでよい。例えば、キーインデックス情報1@1001において、「@」の前の「1」は、SEQフィールド1312のフィールド値に対応するシーケンスを、「@」の後の「1001」は、該当の圧縮パーティションが含むデータレコードのうちの1001番目のデータレコードを指示してよい。より具体的な例として、キーインデックステーブル1320の1番目のレコードは、プライマリキーが「1」であるデータレコードが、格納キーが「O0001」であり、シーケンスが「1」である圧縮パーティションのデータレコードのうちの1001番目のデータレコードとして含まれていることを指示してよい。これと同じように、キーインデックステーブル1320の2番目のレコードは、プライマリキーが「2」であるデータレコードが、格納キーが「O0001」であり、シーケンスが「2」である圧縮パーティションのデータレコードのうちの2001番目のデータレコードとして含まれていることを指示してよい。
このように、キーインデックス情報は、圧縮パーティション内での特定のデータレコードの位置に関する情報を含んでよく、このようなキーインデックス情報とプライマリキー、および格納キーを含むキーインデックステーブル(一例として、図13のキーインデックステーブル1320)を活用することにより、ユーザの検索条件によって照会するようになるデータレコードの数を減らすことができる。
他の実施形態において、コンピュータ装置200は、プライマリキーによって第1テーブル(一例として、段階410で説明したテーブル)と連結する連結テーブルでデータレコードを圧縮して生成された第2圧縮パーティションに対し、第2圧縮パーティションに含まれたデータレコードのうちで第1テーブルに含まれたデータレコードとプライマリキーが等しいデータレコードを検索してよく、検索されたデータレコードに対し、第2圧縮パーティション内での位置であるサブインデックス情報をキーインデックステーブル上のプライマリキーが等しいデータレコードに対してさらに格納してよい。連結テーブルは、プライマリキーによって第1テーブルと連結するテーブルである。すなわち、プライマリキーは、第1テーブルと連結テーブルの両方に存在するようになる。第2圧縮パーティションは、プライマリキーによって第1テーブルと連結する連結テーブルが存在するとき、該当の連結テーブルでデータレコードを圧縮して生成されたデータであってよい。このとき、第2圧縮パーティションは、図4で説明した圧縮パーティションと同じ方式で生成されてよく、圧縮パーティションと同じように、固有の格納キーとともに不揮発性の格納手段(または、不揮発性の格納手段が含む圧縮テーブル)に格納されてよい。サブインデックス情報は、特定のプライマリキーを有するデータレコードがどのような第2圧縮パーティション内でどの位置に格納されているかに関する情報である。例えば、第2圧縮パーティションに含まれた10万個のデータレコードに関する情報のうちの1000番目に格納されたデータレコードであるという格納順に関する情報がサブインデックス情報として格納されてよい。例えば、インメモリデータベースに第1テーブルとプライマリキーによって連結する連結テーブルが存在し、第1テーブルには存在しないが連結テーブルには存在するフィールドに対し、ユーザがこのフィールドのフィールド値情報を必要とすることがある。この場合、コンピュータ装置200は、のちに、この連結テーブルまで検索することができるように、キーインデックステーブル上の等しいプライマリキーを有するデータレコードに対してサブインデックス情報をさらに格納してよい。
また他の実施形態において、コンピュータ装置200は、第1テーブルに対して多数の連結テーブルが存在する場合、連結テーブルそれぞれに対するサブインデックス情報を集めて圧縮した後、キーインデックステーブルに新たなサブインデックス情報として格納してもよい。例えば、コンピュータ装置200が連結テーブルで等しいプライマリキーを有するデータレコードに対し、2つ以上の第2圧縮パーティション内での位置に対するサブインデックス情報をすべて集めてよく、集めた値を圧縮し、キーインデックステーブル上の等しいプライマリキーの値を含むデータレコードに新たなサブインデックス情報として格納してよい。
図14は、本発明の一実施形態における、圧縮テーブルおよびキーインデックステーブルの構造の他の例を示した図である。
圧縮テーブル1410は、格納キーをフィールド値として有するOBJECT IDフィールド1411、テーブルの識別子をフィールド値として有するTABLEフィールド1412、シーケンスをフィールド値として有するSEQフィールド1413、および圧縮パーティションをフィールド値として有するCOMPRESSED DATAフィールド1414を含んでよい。TABLEフィールド1412は、テーブルの識別子をフィールド値として含んでよく、これにより、対応する圧縮パーティションがどのテーブルから抽出されたデータレコードを含んでいるかを識別してよい。
本実施形態に係るキーインデックステーブル1420は、プライマリキーをフィールド値として有するDoc.No.フィールド1421、格納キーをフィールド値として有するOBJECT IDフィールド1422、キーインデックス情報をフィールド値として有するKey Location info.フィールド1423、およびサブインデックス情報をフィールド値として有するSub Location info.フィールド1424を含んでよい。
例えば、キーインデックステーブル1420の1番目のレコードは、プライマリキーが「1」であるデータレコードが、格納キーが「O0001」であり、シーケンスが「1」である圧縮パーティションのデータレコードのうちの10001番目のデータレコードとして含まれていることを指示してよい。このとき、Sub Location info.フィールド1424のフィールド値「TAB1@1001-2/TAB2@2001-3」は、プライマリキーが「1」であるデータレコードの連結テーブルに対して生成された第2圧縮パーティション内での位置を示している。例えば、フィールド値「TAB1@1001-2/TAB2@2001-3」において、「@」の前の「TAB1」と「TAB2」は、等しいプライマリキーによって連結する連結テーブルを意味してよく、「@」の後の「1001-2」は、連結テーブル「TAB1」に対する第2圧縮パーティションが含むデータレコードのうちの1001番目のデータレコードから2つのデータレコード(1001番目のデータレコード(第1データレコード)と1002番目のデータレコード(第2データレコード))を示している。さらに、「@」の後の「2001-3」は、連結テーブル「TAB2」に対する第2圧縮パーティションが含むデータレコードのうちの2001番目のデータレコードから3つのデータレコード(2001番目のデータレコード(第3データレコード)と、2002番目のデータレコード(第4データレコード)と、2003番目のデータレコード(第5データレコード))を示している。このとき、第1データレコードから第5データレコードまでが、すべて等しいプライマリキーによって識別されてよい。
図15は、本発明の一実施形態における、アーカイブされたデータを検索するためのデータ処理方法の例を示した図である。本実施形態に係るデータ処理方法も、コンピュータ装置200によって実行されてよい。
段階1510で、コンピュータ装置200は、データレコードの選別情報を含む検索条件を受信してよい。このような選別情報は、検索しようとするデータレコードの任意のフィールド値および/または該当のデータレコードの時間に関する情報を含んでよい。選別情報が含むフィールド値および/または時間に関する情報は、範囲の形態で含まれてもよい。
段階1520で、コンピュータ装置200は、揮発性のインメモリデータベース上でデータレコードの選別情報と該当のデータレコードが含まれた圧縮パーティションを固有に識別する格納キーとを連係させて格納するインデックステーブルから、検索条件が含む選別情報と連係する格納キーを検索してよい。上述したように、インデックステーブルは、グループインデックステーブルおよび/または期間インデックステーブルを含んでよく、グループインデックステーブルは、特定のフィールド値と格納キーとを連係させて格納してよく、期間インデックステーブルは、時間に関する情報と格納キーとを連係させて格納することについて説明した。したがって、コンピュータ装置200は、選別情報が含むフィールド値および/または時間に関する情報に対応する格納キーをグループインデックステーブルおよび/または期間インデックステーブルで検索することができるようになる。例えば、コンピュータ装置200は、選別情報がデータレコードの任意のフィールド値を含む場合、格納キーと任意のフィールド値とを連係させて格納するグループインデックステーブルで検索条件の選別情報として含まれた任意のフィールド値と連係する格納キーを検索してよい。他の例として、コンピュータ装置200は、選別情報がデータレコードの時間に関する情報を含む場合、格納キーと時間に関する情報とを連係させて格納する期間インデックステーブルで検索条件の選別情報として含まれた時間に関する情報と連係する格納キーを検索してよい。
段階1530で、コンピュータ装置200は、格納キーと圧縮パーティションとを連係させて格納する不揮発性の格納手段で検索された格納キーと連係する圧縮パーティションを検索してよい。上述したように、不揮発性の格納手段(または、不揮発性の格納手段が含む圧縮テーブル)は、圧縮パーティションと圧縮パーティションを固有に識別する格納キーとを連係させて格納しているため、コンピュータ装置200は、このような不揮発性の格納手段で格納キーによって該当の圧縮パーティションを検索することができるようになる。
上述したように、キーインデックステーブルがさらに活用される場合、ユーザは、プライマリキーを検索に活用してよい。キーインデックステーブルは、上述したように、揮発性のインメモリデータベース上の任意のテーブルが含むデータレコードそれぞれに対し、プライマリキーと、該当のデータレコードを含んで圧縮された圧縮パーティション内での該当のデータレコードの位置であるキーインデックス情報と、該当のデータレコードを含んで圧縮された圧縮パーティションに対応する格納キーとを連係させて格納してよい。このとき、検索条件がデータレコードのプライマリキーをさらに含む場合、コンピュータ装置200は、キーインデックステーブルで検索条件がさらに含むプライマリキーと連係するキーインデックス情報および格納キーを検索してよい。この後、コンピュータ装置200は、検索されたキーインデックス情報および格納キーにさらに基づき、段階1530で検索された圧縮パーティションから検索条件による特定のデータレコードを検索することができるようになる。
また、キーインデックステーブルは、プライマリキーによって任意のテーブルと連結する連結テーブルが存在する場合、連結テーブルでデータレコードを圧縮して生成された第2圧縮パーティションに対し、データレコードの第2圧縮パーティションでの位置であるサブインデックス情報をさらに含んでよい。したがって、検索条件がプライマリキーをさらに含む場合、コンピュータ装置200は、キーインデックステーブルで検索条件がさらに含むプライマリキーと連係するサブインデックス情報をさらに検索することができ、第2圧縮パーティションおよびサブインデックス情報に基づいて第2圧縮パーティションで検索条件によるデータレコードをさらに検索することにより、特定のデータレコードに対し、検索しようとする第1テーブルのフィールド値だけではなく、第1テーブルとプライマリキーによって連結する連結テーブルのフィールド値も取得することができるようになる。
一方、上述したように、不揮発性の格納手段は、コンピュータ装置200とネットワークを介して接続する他のコンピュータ装置の不揮発性の格納手段を含んでもよい。この場合、コンピュータ装置200は、段階1530で、ネットワークを介して、他のコンピュータ装置の不揮発性の格納手段から、段階1520で検索された格納キーと連係する圧縮パーティションを検索してよい。
図16および図17は、本発明の一実施形態における、アーカイブされたデータを検索する例を示した図である。
図16は、クエリ1610にしたがい、圧縮テーブル1620でアーカイブされたデータを検索する例を示している。図16の実施形態では、圧縮テーブル1620がインデックステーブルと結合した形態として、PERIODフィールド1621、COL1フィールド1622、TABLEフィールド1623、OBJECT IDフィールド1624、SEQフィールド1625、およびCOMPRESSED DATAフィールド1626を含んでいる。実施形態によっては、PERIODフィールド1621とCOL1フィールド1622は、別のインデックステーブルに存在してもよい。この場合、圧縮テーブル1620とインデックステーブルとを連結するために、2つのテーブルそれぞれにOBJECT IDフィールド1624が存在してよい。実施形態によっては、TABLEフィールド1623とSEQフィールド1625も、インデックステーブルに存在してもよい。
このとき、クエリ1610は、テーブル「TAB1」から、PERIODフィールド1621のフィールド値が「2002.01」であり、COL1フィールド1622のフィールド値が「1000」であるデータレコードを検索しろという命令を意味してよい。このとき、コンピュータ装置200は、圧縮テーブル1620でクエリ1610に該当するデータレコードが、圧縮テーブル1620の1番目のレコードのCOMPRESSED DATAフィールド1626に格納された圧縮パーティションであることを確認することができる。したがって、コンピュータ装置200は、該当の圧縮パーティションの圧縮を解除し、該当の圧縮パーティションが含むデータレコード(「50,000rows」のデータレコード)を検索の結果として提供することができる。
図17は、クエリ1710にしたがい、圧縮テーブル1620でアーカイブされたデータを検索する例を示している。図17の実施形態において、クエリ1710は、プライマリキーを検索条件として活用しているため、キーインデックステーブル1720が活用されてよい。キーインデックステーブル1720は、Doc.No.フィールド1721、OBJECT IDフィールド1722、Key Location Info.フィールド1723、およびSub Location Info.フィールド1724を含んでいる。
このとき、クエリ1710は、テーブル「TAB1」およびテーブル「TAB2」から、プライマリキーとしてのDoc.No.フィールド1721のフィールド値が「1」であるデータレコードを検索しろという命令を意味してよい。このとき、コンピュータ装置200は、キーインデックステーブル1720でDoc.No.フィールド1721のフィールド値が「1」である1番目のレコードを確認することができ、1番目のレコードのSub Location Info.フィールド1724のフィールド値により、圧縮テーブル1620でプライマリキーが「1」であるデータレコードを検索することができる。例えば、コンピュータ装置200は、Doc.No.フィールド1721のフィールド値が「1」であるキーインデックステーブル1720の1番目のレコードのサブインデックス情報「TAB1@1001-2/TAB2@2001-3」により、圧縮テーブル1620でプライマリキーが「1」であるデータレコードを抽出してよい。このとき、サブインデックス情報が含む位置により、圧縮パーティションの全体のデータレコードをすべて検索する必要がなく、簡単かつ迅速に特定のプライマリキーの値を有するデータレコードを検索することができる。
このように、本発明の実施形態によると、揮発性のインメモリデータベースに格納されたデータレコードをパーティション単位で圧縮して不揮発性の格納手段に格納するが、不揮発性の格納手段に格納されたパーティションそれぞれを固有に識別する格納キーとデータレコードに対するパーティションを決定するのに使用された選別情報を揮発性のインメモリデータベースのテーブルに格納することにより、不揮発性の格納手段に圧縮格納されたデータを迅速に検索することができる。
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な格納手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。プログラム命令の例には、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを使用してコンピュータによって実行されることのできる高級言語コードが含まれる。
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
300:コンピュータシステム
310:インメモリデータベース
320:不揮発性の格納手段
330:アーカイブコンポーネント
340:インタフェースコンポーネント
350:クライアント

Claims (19)

  1. コンピュータ装置と結合してデータ処理方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、
    前記データ処理方法は、
    揮発性のインメモリデータベースのテーブルに含まれたデータレコードに対するパーティションをデータレコードの選別情報に基づいて決定する段階、
    前記パーティションごとにデータレコードを圧縮して圧縮パーティションを生成する段階、
    前記圧縮パーティションと前記圧縮パーティションを固有に識別する格納キーとを連係させて不揮発性の格納手段に格納する段階、および
    前記格納キーと前記選別情報とを連係させて前記揮発性のインメモリデータベースのインデックステーブルに格納する段階
    を含むことを特徴とする、コンピュータプログラム。
  2. 前記選別情報は、該当のデータレコードの任意のフィールド値を含み、
    前記インデックステーブルに格納する段階は、
    前記格納キーと前記任意のフィールド値とを連係させてグループインデックステーブルに格納すること
    を特徴とする、請求項1に記載のコンピュータプログラム。
  3. 前記選別情報は、該当のデータレコードの時間に関する情報を含み、
    前記インデックステーブルに格納する段階は、
    前記格納キーと前記時間に関する情報とを連係させて期間インデックステーブルに格納すること
    を特徴とする、請求項1に記載のコンピュータプログラム。
  4. 前記データ処理方法は、
    前記テーブルに含まれたデータレコードそれぞれに対し、プライマリキー(primarykey)と、該当のデータレコードを含んで圧縮された圧縮パーティション内での該当のデータレコードの位置であるキーインデックス情報と、該当のデータレコードを含んで圧縮された圧縮パーティションに対応する格納キーとを連係させてキーインデックステーブルに格納する段階
    をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
  5. 前記キーインデックステーブルに格納する段階は、
    前記プライマリキーによって前記テーブルと連結する連結テーブルでデータレコードを圧縮して生成された第2圧縮パーティションに対し、
    前記第2圧縮パーティションに含まれたデータレコードのうちで前記テーブルに含まれたデータレコードと前記プライマリキーが等しいデータレコードを検索する段階、および
    前記検索されたデータレコードに対し、前記第2圧縮パーティション内での位置であるサブインデックス情報を前記キーインデックステーブル上の前記プライマリキーが等しいデータレコードに対してさらに格納する段階
    を含むことを特徴とする、請求項4に記載のコンピュータプログラム。
  6. 前記データ処理方法は、
    前記圧縮されたデータレコードを前記テーブルから削除する段階
    をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
  7. 前記圧縮パーティションを生成する段階は、
    前記決定されたパーティションに含まれたデータレコードをバイナリオブジェクトとして圧縮して前記圧縮パーティションを生成すること
    を特徴とする、請求項1に記載のコンピュータプログラム。
  8. 前記不揮発性の格納手段に格納する段階は、
    前記圧縮パーティションおよび前記格納キーを、前記コンピュータ装置とネットワークを介して接続する他のコンピュータ装置の不揮発性の格納手段に分離して格納すること
    を特徴とする、請求項1に記載のコンピュータプログラム。
  9. コンピュータ装置と結合してデータ処理方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、
    前記データ処理方法は、
    データレコードの選別情報を含む検索条件を受信する段階、
    揮発性のインメモリデータベース上でデータレコードの選別情報と該当のデータレコードが含まれた圧縮パーティションを固有に識別する格納キーとを連係させて格納するインデックステーブルから、前記検索条件が含む選別情報と連係する格納キーを検索する段階、および
    格納キーと圧縮パーティションとを連係させて格納する不揮発性の格納手段で前記検索された格納キーと連係する圧縮パーティションを検索する段階
    を含むことを特徴とする、コンピュータプログラム。
  10. 前記選別情報は、該当のデータレコードの任意のフィールド値を含み、
    前記格納キーを検索する段階は、
    前記格納キーと前記任意のフィールド値とを連係させて格納するグループインデックステーブルで前記検索条件の選別情報として含まれた任意のフィールド値と連係する格納キーを検索すること
    を特徴とする、請求項に記載のコンピュータプログラム。
  11. 前記選別情報は、該当のデータレコードの時間に関する情報を含み、
    前記検索された格納キーと連係する圧縮パーティションを検索する段階は、
    前記格納キーと前記時間に関する情報とを連係させて格納する期間インデックステーブルで前記検索条件の選別情報として含まれた時間に関する情報と連係する格納キーを検索すること
    を特徴とする、請求項に記載のコンピュータプログラム。
  12. 前記データ処理方法は、
    前記検索条件がデータレコードのプライマリキーをさらに含む場合、キーインデックステーブルで前記検索条件がさらに含むプライマリキーと連係するキーインデックス情報および格納キーを検索する段階
    をさらに含み、
    前記キーインデックステーブルは、揮発性のインメモリデータベース上の任意のテーブルが含むデータレコードそれぞれに対し、プライマリキーと、該当のデータレコードを含んで圧縮された圧縮パーティション内での該当のデータレコードの位置であるキーインデックス情報と、該当のデータレコードを含んで圧縮された圧縮パーティションに対応する格納キーとを連係させて格納すること
    を特徴とする、請求項に記載のコンピュータプログラム。
  13. 前記検索された格納キーと連係する圧縮パーティションを検索する段階は、
    前記検索されたキーインデックス情報および格納キーにさらに基づき、前記検索された圧縮パーティションで検索条件によるデータレコードを検索すること
    を特徴とする、請求項に記載のコンピュータプログラム。
  14. 前記不揮発性の格納手段は、前記コンピュータ装置とネットワークを介して接続する他のコンピュータ装置の不揮発性の格納手段を含み、
    前記不揮発性の格納手段で前記検索された格納キーと連係する圧縮パーティションを検索する段階は、
    前記ネットワークを介して前記他のコンピュータ装置の不揮発性の格納手段から前記検索された格納キーと連係する圧縮パーティションを検索すること
    を特徴とする、請求項に記載のコンピュータプログラム。
  15. 少なくとも1つのプロセッサを含むコンピュータ装置が実行するデータ処理方法であって、
    前記少なくとも1つのプロセッサにより、揮発性のインメモリデータベースのテーブルに含まれたデータレコードに対するパーティションをデータレコードの選別情報に基づいて決定する段階、
    前記少なくとも1つのプロセッサにより、前記パーティションごとにデータレコードを圧縮して圧縮パーティションを生成する段階、
    前記少なくとも1つのプロセッサにより、前記圧縮パーティションと前記圧縮パーティションを固有に識別する格納キーとを連係させて不揮発性の格納手段に格納する段階、および
    前記少なくとも1つのプロセッサにより、前記格納キーと前記選別情報とを連係させて前記揮発性のインメモリデータベースのインデックステーブルに格納する段階
    を含む、データ処理方法。
  16. 少なくとも1つのプロセッサを含むコンピュータ装置が実行するデータ処理方法であって、
    前記少なくとも1つのプロセッサにより、データレコードの選別情報を含む検索条件を受信する段階、
    前記少なくとも1つのプロセッサにより、揮発性のインメモリデータベース上でデータレコードの選別情報と該当のデータレコードが含まれた圧縮パーティションを固有に識別する格納キーとを連係させて格納するインデックステーブルから、前記検索条件が含む選別情報と連係する格納キーを検索する段階、および
    前記少なくとも1つのプロセッサにより、格納キーと圧縮パーティションとを連携させて格納する不揮発性の格納手段で前記検索された格納キーと連係する圧縮パーティションを検索する段階
    を含む、データ処理方法。
  17. 請求項1または1に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体。
  18. コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
    を含み、
    前記少なくとも1つのプロセッサにより、
    揮発性のインメモリデータベースのテーブルに含まれたデータレコードに対するパーティションをデータレコードの選別情報に基づいて決定し、
    前記パーティションごとにデータレコードを圧縮して圧縮パーティションを生成し、
    前記圧縮パーティションと前記圧縮パーティションを固有に識別する格納キーとを連係させて不揮発性の格納手段に格納し、
    前記格納キーと前記選別情報とを連係させて前記揮発性のインメモリデータベースのインデックステーブルに格納すること
    を特徴とする、コンピュータ装置。
  19. コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
    を含み、
    前記少なくとも1つのプロセッサにより、
    データレコードの選別情報を含む検索条件を受信し、
    揮発性のインメモリデータベース上でデータレコードの選別情報と該当のデータレコードが含まれた圧縮パーティションを固有に識別する格納キーとを連携させて格納するインデックステーブルから、前記検索条件が含む選別情報と連係する格納キーを検索し、
    格納キーと圧縮パーティションとを連係させて格納する不揮発性の格納手段で前記検索された格納キーと連係する圧縮パーティションを検索すること
    を特徴とする、コンピュータ装置。
JP2020175202A 2020-08-27 2020-10-19 コンピュータプログラム、データ処理方法、記録媒体およびコンピュータ装置 Active JP7616559B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0108749 2020-08-27
KR1020200108749A KR102529704B1 (ko) 2020-08-27 2020-08-27 인 메모리 데이터베이스의 데이터를 처리하는 방법 및 장치

Publications (2)

Publication Number Publication Date
JP2022039881A JP2022039881A (ja) 2022-03-10
JP7616559B2 true JP7616559B2 (ja) 2025-01-17

Family

ID=80358496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020175202A Active JP7616559B2 (ja) 2020-08-27 2020-10-19 コンピュータプログラム、データ処理方法、記録媒体およびコンピュータ装置

Country Status (3)

Country Link
US (1) US11494093B2 (ja)
JP (1) JP7616559B2 (ja)
KR (1) KR102529704B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115587141A (zh) * 2022-09-07 2023-01-10 阿里云计算有限公司 一种数据库同步方法和装置
CN116309889B (zh) * 2022-12-20 2026-04-07 深圳市吉迩技术有限公司 图片压缩方法、装置、计算机设备及存储介质
US12229168B2 (en) * 2023-05-05 2025-02-18 Microsoft Technology Licensing, Llc Reading compressed data directly into an in-memory store
CN117112601A (zh) * 2023-08-29 2023-11-24 金篆信科有限责任公司 一种数据库数据压缩方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014524090A (ja) 2011-07-08 2014-09-18 アビニシオ テクノロジー エルエルシー 範囲に基づく検索のためのデータ格納の管理
JP2017504874A (ja) 2013-12-02 2017-02-09 キューベース リミテッド ライアビリティ カンパニー クラスター化されたインメモリデータベースの設計及び実施
JP2019512124A (ja) 2016-02-26 2019-05-09 アーミク カンパニー,リミテッド インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置
US20200167330A1 (en) 2018-11-28 2020-05-28 Oracle International Corporation Database Partition Management System

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
KR20140072929A (ko) 2012-11-16 2014-06-16 현대중공업 주식회사 아카이빙 작업수행 자동화 방법
US20160210237A1 (en) 2013-07-30 2016-07-21 Nec Corporation Storage device, data access method, and program recording medium
GB2527296A (en) 2014-06-16 2015-12-23 Ibm A method for restoring data in a HSM system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014524090A (ja) 2011-07-08 2014-09-18 アビニシオ テクノロジー エルエルシー 範囲に基づく検索のためのデータ格納の管理
JP2017504874A (ja) 2013-12-02 2017-02-09 キューベース リミテッド ライアビリティ カンパニー クラスター化されたインメモリデータベースの設計及び実施
JP2019512124A (ja) 2016-02-26 2019-05-09 アーミク カンパニー,リミテッド インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置
US20200167330A1 (en) 2018-11-28 2020-05-28 Oracle International Corporation Database Partition Management System

Also Published As

Publication number Publication date
KR102529704B1 (ko) 2023-05-09
US20220066656A1 (en) 2022-03-03
JP2022039881A (ja) 2022-03-10
US11494093B2 (en) 2022-11-08
KR20220027634A (ko) 2022-03-08

Similar Documents

Publication Publication Date Title
JP7723366B2 (ja) コンピュータプログラム、データアーカイブ方法および記録媒体
JP7616559B2 (ja) コンピュータプログラム、データ処理方法、記録媒体およびコンピュータ装置
CN111309732B (zh) 数据处理方法、装置、介质和计算设备
US8793227B2 (en) Storage system for eliminating duplicated data
JPH086831A (ja) ファイルの属性をトラッキングするための方法およびシステム
CN113111138B (zh) 数据处理方法、装置、计算设备以及介质
CN114115734B (zh) 一种数据重删方法、装置、设备及存储介质
CN110825694A (zh) 数据处理方法、装置、设备和存储介质
JP7387116B2 (ja) データの送信および照会時の費用を最小化するためのデータアーカイビング方法およびシステム
CN116860700B (zh) 处理分布式文件系统中元数据的方法、装置、设备及介质
US9734171B2 (en) Intelligent redistribution of data in a database
US11556497B2 (en) Real-time archiving method and system based on hybrid cloud
CN119719032A (zh) 一种文件处理方法、装置、设备及计算机可读存储介质
US20130218851A1 (en) Storage system, data management device, method and program
KR102236521B1 (ko) 데이터를 처리하기 위한 방법 및 장치
CN114647630A (zh) 文件同步、信息生成方法、装置、计算机设备和存储介质
US11500896B2 (en) Method and system for selectively separating organization data according to business division
CN120653673A (zh) 一种基于区块链的数据处理方法、装置及存储介质
CN120596447A (zh) 一种列式重复数据删除方法、装置及设备
CN121979621A (en) Multi-transaction identification mapping data processing method, device and computer equipment
CN111124279A (zh) 一种基于主机的存储重删处理方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20241203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241219

R150 Certificate of patent or registration of utility model

Ref document number: 7616559

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150