(57)【要約】【課題】省メモリ、省ディスク容量の両立を実現する。【解決手段】データ圧縮部１２は、時系列に格納された非圧縮データをメモリ３から取り出して圧縮し、圧縮した圧縮データからなる第１ブロックを生成し、データ格納部１３は、その第１ブロックをメモリ３に再格納する。ブロック結合部１４は、所定数の第１ブロックを結合し、結合ブロック圧縮部１５は、結合した所定数の第１ブロックを再圧縮し、再圧縮した再圧縮データからなる第２ブロックを生成する。検索情報生成部１６は、第２ブロックに含まれる複数の第１ブロックのユニークキーから代表キーを生成し、生成した代表キーを当該第２ブロックに付与するとともに、第２ブロックの代表キーと、第２ブロックに含まれる複数の第１ブロックのユニークキーと、を関連付けたデータ検索用情報を生成して保持する。データ書込部１７は、代表キーが付与された第２ブロックをディスク５内のファイルへ書き込む。【選択図】図１
2020108045.tif 000002
【特許請求の範囲】
【請求項１】
データ圧縮装置で行うデータ圧縮方法において、
メモリに格納された非圧縮データを圧縮し、圧縮した圧縮データを前記メモリに再格納する第１のステップと、
所定数の前記圧縮データを結合して再圧縮し、再圧縮した再圧縮データにキー情報を付与してディスクに書き込む第２のステップと、
前記再圧縮データのキー情報と、前記再圧縮データに含まれる圧縮データに係る非圧縮データのデータ生成元を示すキー情報と、を関連付けたデータ検索用情報を生成する第３のステップと、
を行うことを特徴とするデータ圧縮方法。
【請求項２】
前記第１のステップでは、前記非圧縮データを非圧縮データのデータ生成元毎に圧縮し、
前記第２のステップでは、
データ生成元が同一であるか否かに関わらず複数のデータ生成元に係る圧縮データの数が前記所定数に達した場合、前記所定数の圧縮データを結合して圧縮することを特徴とする請求項１に記載のデータ圧縮方法。
【請求項３】
前記第１のステップでは、前記非圧縮データの一部に対して圧縮を行い、
前記第２のステップでは、
前記圧縮データの全体に対して再圧縮を行うことを特徴とする請求項１又は２に記載のデータ圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩｏＴデバイスが生成した大量の情報データを省リソース条件下で収集して蓄積するデータベース装置の技術に関する。特に、データベースプロセスが通信ネットワーク経由で情報データを受信してメモリに格納してディスクに書き込むまでのメモリ上の処理に関する。
【背景技術】
【０００２】
ＩｏＴ（Internet of Things）において、センサやデバイスなどのＩｏＴデバイスが情報データを生成する場所をクラウドと対比して「エッジ」と呼ぶ。エッジにおいては、クラウドと比較して、計算リソースや記憶リソースの拡張性に強い制約があることが多い。一方、エッジにおいても、ＩｏＴデバイスが生成した大量の情報データを処理する必要がある。そこで、省リソース条件下で、ＩｏＴデバイスが生成した大量の情報データを収集してディスクに書き込むデータベース装置の技術が検討されている。
【０００３】
従来の技術には、２つの共通した特徴がある。１つには、ディスクへの書き込み速度を高速化するため、メモリ上でデータを一定期間追記型のデータ構造で格納することである。追記型のデータ構造とは、データを次々に時系列に追加していくデータ構造をいう。もう１つには、ディスクに大量の情報データを書き込むため、情報データのデータ生成元単位でデータを長期間集めて一度に圧縮することで圧縮率を向上させることである。
【０００４】
例えば、非特許文献１では、情報データを追記型のデータ構造でメモリ上に格納し、既定量をメモリ上に格納した後に、データ生成元毎に圧縮処理を行ってデータのブロックを生成し、生成したブロックをディスクへ書き込む方式を開示している。
【０００５】
非特許文献２では、情報データの収集の際に、情報データの到来順に所定のデータポイント単位で逐次圧縮を行いながら、チャンクと呼ばれる追記型のデータ構造を１単位としてメモリ上に格納する。チャンクは、データ生成元の単位で生成され、サイズは固定である。そして、メモリ使用量と見合わせながらチャンク単位で情報ファイルをディスクへ書き込む。なお、チャンクは、非特許文献１のブロックと同義である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】“In-memory indexing and the Time-Structured Merge Tree (TSM)”、InfluxDB、［online］、［2018年12月18日検索］、インターネット＜URL：https://docs.influxdata.com/influxdb/v1.7/concepts/storage_engine/＞
【非特許文献２】“Index Disk Format”、Prometheus、［online］、［2018年12月18日検索］、インターネット＜URL：https://github.com/prometheus/tsdb/blob/master/docs/format/index.md＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の通り、エッジにおいては、計算リソースや記憶リソースの拡張性に強い制約がある中で、ＩｏＴデバイスが生成する大量の情報データを収集して蓄積する処理が行われる。そのため、エッジにおける情報データの収集及び蓄積を省リソース条件下で実行可能な手法が必要となる。しかし、従来の技術では、省メモリ、省ディスク容量の両立を実現できない。
【０００８】
従来の技術では、データの高圧縮率を実現するため、メモリ上で長期間のデータを１まとめに保持するので、多くのメモリ容量を必要とする。その反面、省メモリ下では、長期間のデータをメモリ上に格納できず、データの圧縮率が悪化するので、ディスク使用量が増加してしまう。
【０００９】
例えば、非特許技術１では、特にデータ生成元の数が多い場合、データの高圧縮率を達成するためには、メモリ上で情報データを収集するのに使用するメモリ領域を大きくする必要がある。しかし、非圧縮の状態で情報データを保持するため、データポイントあたりのメモリ使用量の効率が悪く、多くのメモリを消費してしまう。また、メモリ領域を小さくした場合、データの圧縮率が悪化してしまう。
【００１０】
非特許文献２では、ブロック（チャンク）のサイズは固定であるため、データ生成元が多数になるとともに、ブロックのサイズを小さく設定しなければ、メモリの逼迫につながってしまう。一方、ブロックのサイズを小さくした場合、ブロックで長期間のデータを集めることができず、低圧縮率のデータをブロック単位でディスクへ書き込むことになるので、ディスク容量の増加に繋がってしまう。
【００１１】
本発明は、上記事情を鑑みてなされたものであり、省メモリ、省ディスク容量の両立を実現することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のデータ圧縮方法は、データ圧縮装置で行うデータ圧縮方法において、メモリに格納された非圧縮データを圧縮し、圧縮した圧縮データを前記メモリに再格納する第１のステップと、所定数の前記圧縮データを結合して再圧縮し、再圧縮した再圧縮データにキー情報を付与してディスクに書き込む第２のステップと、前記再圧縮データのキー情報と、前記再圧縮データに含まれる圧縮データに係る非圧縮データのデータ生成元を示すキー情報と、を関連付けたデータ検索用情報を生成する第３のステップと、を行うことを特徴とする。
【００１３】
上記データ圧縮方法において、前記第１のステップでは、前記非圧縮データを非圧縮データのデータ生成元毎に圧縮し、前記第２のステップでは、データ生成元が同一であるか否かに関わらず複数のデータ生成元に係る圧縮データの数が前記所定数に達した場合、前記所定数の圧縮データを結合して圧縮することを特徴とする。
【００１４】
上記データ圧縮方法において、前記第１のステップでは、前記非圧縮データの一部に対して圧縮を行い、前記第２のステップでは、前記非圧縮データの全体に対して圧縮を行うことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、省メモリ、省ディスク容量の両立を実現できる。
【図面の簡単な説明】
【００１６】
【図１】データ圧縮装置の機能ブロック構成を示す図である。
【図２】データ圧縮方法の処理フローを示す図である。
【図３】非圧縮データの格納処理、圧縮処理、圧縮データの再格納処理の様子を示す図である。
【図４】圧縮データの再圧縮処理の様子を示す図である。
【図５】代表キー、時間情報の生成処理の様子を示す図である。
【図６】ファイル上でのデータレイアウトの例を示す図である。
【発明を実施するための形態】
【００１７】
本発明では、上述した省リソース化の課題に対して、省メモリ化した際の圧縮率の悪化を是正する観点からアプローチし、二段階圧縮という方式を提案する。具体的には、メモリ使用量を削減するため、メモリ上のデータを圧縮する一度目の圧縮処理を行い、ディスク使用量を削減するため、複数の圧縮データを結合して再圧縮する二度目の圧縮処理を行う。また、一度目の圧縮処理で得た圧縮データを検索可能にするため、二度目の圧縮処理で得た再圧縮データにキー情報を付与するとともに、再圧縮データのキー情報と再圧縮データに含まれる圧縮データに係る非圧縮データのデータ生成元を示すキー情報とを関連付けたデータ検索用情報を生成する。
【００１８】
このように、本発明では、メモリとディスク双方に対応した二度の圧縮処理とデータ検索用情報の生成処理とを組み合わせた二段階圧縮方式を用いるので、データの検索性を損なうことなく、メモリとディスク双方の使用量を削減できる。以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００１９】
図１は、本実施形態に係るデータ圧縮装置１の機能ブロック構成を示す図である。当該データ圧縮装置１は、メモリ３及びディスク５を備えるデータベース装置１００で動作し、複数のＩｏＴデバイス３００が通信ネットワークを介してデータベース装置１００へ送信する情報データを受信して圧縮する装置である。
【００２０】
ＩｏＴデバイス３００は、例えば、センサやデバイスであり、自機で検知したセンタ値等を情報データとして出力する。データベース装置１００は、ＩｏＴゲートウェイのようなメモリ、ディスク容量がともに少ない機器を使用してもよいし、メモリ、ディスク容量が少ない一般的なパソコンを用いてもよい。
【００２１】
まず、データ圧縮装置１の機能について説明する。データ圧縮装置１は、図１に示したように、主として、データ受信部１１と、データ圧縮部１２と、データ格納部１３と、ブロック結合部１４と、結合ブロック圧縮部１５と、検索情報生成部１６と、データ書込部１７と、を備えて構成される。
【００２２】
データ受信部１１は、ＩｏＴデバイス３００が生成した情報データを受信し、受信した情報データをそのまま受信順に追記型のデータ構造でメモリ３に格納する機能を備える。例えば、データ受信部１１は、複数のＩｏＴデバイス３００から出力された複数の情報データや１つの情報データを構成するデータ列を、受信順に非圧縮状態で次々に時系列にメモリ３に追加する。
【００２３】
データ圧縮部１２は、時系列に格納された情報データ（非圧縮データ）をメモリ３から取り出し、取り出した非圧縮データを当該非圧縮データのデータ生成元毎（例えば、ＩｏＴデバイス毎、ＩｏＴデバイス内のアプリ毎）に圧縮し、圧縮した圧縮データからなるブロック（以下、第１ブロック）を生成する機能を備える。第１ブロックの生成方法は、情報データをメモリ３に任意量又は既定量（任意に設定可能）だけ格納した後に圧縮する方法でもよいし、情報データの到来順に逐次的に圧縮して固定サイズのブロックに格納する方法でもよい。
【００２４】
データ格納部１３は、データ圧縮部１２が生成した第１ブロックをメモリ３に再格納する機能を備える。
【００２５】
ブロック結合部１４は、所定数の第１ブロックをメモリ３から取り出し、取り出した所定数の第１ブロックを結合する機能を備える。例えば、ブロック結合部１４は、メモリ３に再格納された第１ブロックの数が任意数又は既定数（任意に設定可能）に到達した後に、当該任意数又は既定数の第１ブロックを結合する。結合対象となる複数の第１ブロックの選定方法は、データ生成元毎に選定してもよいし、複数のデータ生成元の中から選定してもよいし、任意の組み合わせのデータ生成元の中から選定してもよい。データ生成元の種別を問わない複数のデータ生成元の中から選定する方法が高効率である。
【００２６】
結合ブロック圧縮部１５は、ブロック結合部１４が結合した所定数の第１ブロックを再圧縮し、再圧縮した再圧縮データからなるブロック（以下、第２ブロック）を生成する機能を備える。結合ブロック圧縮部１５で用いる圧縮方法は、データ圧縮部１２が用いる圧縮方法と同じでもよいが、データの圧縮率を高めるために、データの特性や性質等を考慮して異なる圧縮方法又は複数の圧縮方法を組み合わせた圧縮方法を用いることが望ましい。例えば、非圧縮データのデータ構造等に着目し、データ圧縮部１２では、非圧縮データを構成するデータ列の一部に対して圧縮を行い、結合ブロック圧縮部１５では、圧縮データを構成するデータ列の全体に対して圧縮を行う方法がある。
【００２７】
ここで、第２ブロックについて説明する。第２ブロックには、データ生成元を示すユニークキーや時間範囲等の異なる複数の第１ブロックが格納される。従来は、ユニークキーを用いることで第１ブロックへ直接アクセス可能であったが、本発明では、第２ブロックに内在する第１ブロックへ直接アクセスできないので、ユニークキーから第２ブロックへの対応が取れるアクセス情報やキー情報を定義する必要がある。
【００２８】
そこで、まず、第２ブロックの生成元となった複数の第１ブロックのユニークキーから代表キーを生成するとともに、各第１ブロックの最小時刻、最大時刻から当該複数の第１ブロックにおける全体の最小時刻、最大時刻の時間情報を算出して、生成及び算出した第２ブロックに固有の代表キーや時間情報等を当該第２ブロックに付与する。加えて、第２ブロックに、当該第２ブロックに含まれる各第１ブロックのユニークキーと、当該各第１ブロックの最小時刻、最大時刻の時間情報と、を付与する。さらに、第２ブロックの代表キーと、第２ブロックに含まれる各第１ブロックのユニークキーと、を関連付けたデータ検索用情報（検索マップ）を生成して保持する。その後、第２ブロックをディスク５内のファイルへ書き込む。
【００２９】
そして、所望の第１ブロックをディスク５のファイルから検索する場合、検索クエリ内のユニークキーに対応する代表キーを検索マップから検索し、検索した代表キーが付与された第２ブロックを特定して、特定した第２ブロックからユニークキーに対応する第１ブロックを取得して解凍する。これにより、ディスク５に書き込まれた情報データを得ることができる。
【００３０】
そのため、検索情報生成部１６は、結合ブロック圧縮部１５が生成した第２ブロックに含まれる複数の第１ブロックのユニークキーから代表キーを生成し、生成した代表キーを当該第２ブロックに付与するとともに、第２ブロックの代表キーと、第２ブロックに含まれる複数の第１ブロックのユニークキーと、を関連付けた検索マップを生成して保持する機能を備える。また、データ書込部１７は、代表キーが付与された第２ブロックをディスク５内のファイルへ書き込む機能を備える。
【００３１】
ここまで、データ圧縮装置１の備える機能について説明した。なお、上述したデータ圧縮装置１の機能ブロック構成は例である。例えば、データ受信部１１と、データ圧縮部１２と、データ格納部１３とを、１つのメモリ削減用圧縮部で実現し、ブロック結合部１４と、結合ブロック圧縮部１５と、検索情報生成部１６と、データ書込部１７とを、１つのディスク削減用圧縮部で実現してもよい。
【００３２】
この場合、メモリ削減用圧縮部は、メモリ３に格納された非圧縮データを圧縮し、圧縮した圧縮データをメモリ３に再格納する機能を備える。ディスク削減用圧縮部は、所定数の圧縮データを結合して再圧縮し、再圧縮した再圧縮データに代表キーを付与してディスクに書き込むとともに、再圧縮データの代表キーと、再圧縮データに含まれる圧縮データに係る非圧縮データのデータ生成元を示すユニークキーと、を関連付けた検索マップを生成する機能を備える。
【００３３】
上記データ圧縮装置１は、ＣＰＵ、メモリ、入出力インタフェース、通信インタフェース等を備えたコンピュータで実現可能である。また、データ圧縮装置１としてコンピュータを機能させるためのデータ圧縮プログラム、データ圧縮プログラムの記憶媒体の作成も可能である。
【００３４】
次に、データ圧縮装置１で行うデータ圧縮方法について説明する。図２は、データ圧縮方法の処理フローを示す図である。
【００３５】
ステップＳ１；
まず、データ受信部１１が、データベース装置１００がＩｏＴデバイス３００から受信した情報データを受け取り、受け取った情報データを受信順に非圧縮状態で次々に時系列にメモリ３に格納する。
【００３６】
ステップＳ２；
次に、データ圧縮部１２は、メモリ３に格納されている情報データ（非圧縮データ）のサイズを当該非圧縮データのデータ生成元毎（ユニークキー毎）に計測し、既定量に達したか否かを判定する。非圧縮データの量が既定量に達していない場合、ステップＳ１へ戻り、既定量に達した場合、ステップＳ３へ進む。
【００３７】
ステップＳ３；
次に、データ圧縮部１２は、既定量に達した非圧縮データを圧縮し、圧縮した圧縮データからなる第１ブロックを生成する。当該ステップＳ３の圧縮処理が一度目の圧縮処理であり、例えば、非圧縮データのデータ列の中で局所性の高い圧縮（例えば、データ列の前後の値のみを圧縮）を行う。
【００３８】
ステップＳ４；
次に、データ圧縮部１２は、第１ブロックに係る非圧縮データのデータ生成元を示すユニークキーを生成するとともに、第１ブロックに係る非圧縮データの最小時刻と最大時刻とをそれぞれ算出する。非圧縮データの最小時刻及び最大時刻については、非圧縮データの受信開始時刻と受信終了時刻をそのまま用いてもよいし、最小時刻をゼロ時刻とし最大時刻を受信開始時刻からの経過時刻としてもよい。
【００３９】
ステップＳ５；
次に、データ格納部１３は、データ圧縮部１２が生成した第１ブロックをメモリ３に再格納する。ステップＳ１〜Ｓ５で行う非圧縮データの格納処理、圧縮処理、圧縮データの再格納処理の様子を図３に示す。図３では、ｋｅｙ１〜ｋｅｙ３のユニークキーに係る非圧縮データをそれぞれ時系列に順次格納し、ｋｅｙ１のユニークキーに係る非圧縮データの量が既定量に達したため、当該非圧縮データを圧縮し、圧縮した圧縮データからなる第１ブロックをメモリ３に再格納する様子を示している。
【００４０】
ステップＳ６；
次に、データ圧縮装置１は、第１ブロックの数が既定数に達したか否かを判定する。第１ブロックの数が既定数に達していない場合、ステップＳ１へ戻る。ステップＳ１へ戻りステップＳ１〜Ｓ５を繰り返し行うことで、概ね同一サイズに圧縮された複数の第１ブロックがユニークキー毎に生成される。そして、第１ブロックの数が既定数に達した場合、ステップＳ７へ進む。
【００４１】
なお、第１ブロックの数が既定数に達するとは、二度目の圧縮処理を開始する再圧縮条件である。当該再圧縮条件は、ユニークキー単位やユニークキーをまたいで設定可能である。例えば、ユニークキー毎に生成された第１ブロックの総数が既定数に達した場合、全てのユニークキーにわたって生成された第１ブロックの総数が既定数に達した場合、ユニークキーの任意の組み合わせ単位で保持している第１ブロックの総数が既定数に達した場合などである。データ圧縮装置１は、ユーザにより指定された再圧縮条件を用いてステップＳ６を実行する。
【００４２】
ステップＳ７；
第１ブロックの数が既定数に達した場合（再圧縮条件を満たした場合）、ブロック結合部１４は、当該所定数の第１ブロックをメモリ３から取り出し、取り出した所定数の第１ブロックを結合する。
【００４３】
ステップＳ８；
次に、結合ブロック圧縮部１５は、ブロック結合部１４が結合した所定数の第１ブロックを再圧縮し、再圧縮した再圧縮データからなる第２ブロックを生成して、ディスク５に書き込み可能状態にする。当該ステップＳ８の圧縮処理が二度目の圧縮処理であり、例えば、ＧＺＩＰ（GNU Zip）やＺＳＴＤ（Zstandard）等の圧縮プログラムや圧縮アルゴリズムを用いて、結合した全ての圧縮データに含まれるデータ列の全体を圧縮する。
【００４４】
ステップＳ７〜Ｓ８で行う圧縮データの結合処理、再圧縮処理の様子を図４に示す。図４では、上述した３種類の再圧縮条件のうち「全てのユニークキーにわたって生成された第１ブロックの総数が既定数に達した場合」を用いた場合であり、ｋｅｙ１〜ｋｅｙ３のユニークキーに係る圧縮データの数が既定数の６に達したため、当該６つの圧縮データを一列に繋いで再圧縮し、再圧縮した再圧縮データからなる第２ブロックをディスク５内のファイルに書き込む様子を示している。
【００４５】
ステップＳ９；
次に、第２ブロックをディスク５に書き込む前に、検索情報生成部１６は、書き込み後の第２ブロック群からなるディスク５内のファイル上で第１ブロックへのアクセスを可能にするためのアクセス情報を作成する。
【００４６】
具体的には、検索情報生成部１６は、まず、第２ブロックに含まれるユニークキーの集合から単一の代表キーを生成する。例えば、図５に示すように、ｋｅｙ１〜ｋｅｙ３のユニークキーからＫ１の代表キーを生成する。代表キーの生成方法は、例えば、同じの代表キーに関連付いている複数のユニークキーをソートし、辞書順に最初に来るユニークキー（ｋｅｙ１〜ｋｅｙ３のうちｋｅｙ１）のワードを利用して代表キー（ｋｅｙ１→Ｋ１）を生成する。
【００４７】
次に、検索情報生成部１６は、第２ブロック内の各第１ブロックに付与されている最小時刻と最大時刻を全て参照し、その全ての中で最も小さい最小時刻と最も大きい最大時刻を第２ブロックに係る最小時刻と最大時刻にする。例えば、図５に示すように、ＭＩＭ関数やＭＡＸ関数を用いて最小時刻（ＭｉｎＴｉｍｅ１）と最大時刻（ＭａｘＴｉｍｅ１）をそれぞれ算出する。
【００４８】
そして、検索情報生成部１６は、代表キーと時間範囲（最小時刻，最大時刻）とをインデックス情報１として第２ブロックに付与する。また、検索情報生成部１６は、第２ブロックに含まれる各第１ブロックのユニークキーと時間範囲（最小時間，最大時間）とをインデックス情報２として第２ブロックに付与する。
【００４９】
さらに、検索情報生成部１６は、第２ブロックの代表キーと、当該第２ブロックに含まれる各第１ブロックのユニークキーと、を関連付けた検索マップを生成して保持する。例えば、図５に示すように「ｍ（ｋｅｙ１）＝ｍ（ｋｅｙ２）＝ｍ（ｋｅｙ３）＝Ｋ１」といった検索マップを生成する。
【００５０】
ステップＳ１０；
最後に、データ書込部１７は、検索情報生成部１６が生成したアクセス情報を持つ第２ブロックをディスク５内のファイルへ書き込む。ファイル内におけるデータレイアウトのイメージを図６に示す。図６では、６つの第１ブロック（圧縮データ）を結合して再圧縮した１つの第２ブロック（再圧縮データ）とともに、各第１ブロックのユニークキーと時間範囲（最小時間，最大時間）と格納位置とを示すインデックス情報２と、第２ブロックの代表キーと時間範囲（最小時間，最大時間）と格納位置とを示すインデックス情報１とのデータレイアウトの例が示されている。
【００５１】
なお、ステップＳ６において、「ユニークキーの任意の組み合わせ単位で保持している第１ブロックの総数が既定数に達した場合」の再圧縮条件を用いる場合、書き込みデータに特殊な属性値を付けてもよい。その他、読み込みのパターンを記録して同じタイミングに読み込まれるユニークキー同士をまとめてもよい。
【００５２】
次に、ディスク５からデータを検索するデータ検索方法について説明する。
【００５３】
データベース装置１００は、所望のユニークキーと時間範囲とを含む検索クエリを受け付けると、受け付けた検索クエリ内のユニークキーを検索マップより代表キーに変換し、変換した代表キーと検索クエリ内の時間範囲とに該当する第２ブロックをディスク５のファイル上で探索する。第２ブロックを探索した後、データベース装置１００は、第２ブロック内のインデックス情報２を参照し、検索クエリに含まれていたユニークキーに該当する第１ブロックの情報を得る。その後、データベース装置１００は、当該ユニークキーに該当し、かつ、検索クエリ内の時間範囲に対応する第１ブロックをディスク５のファイルから取得し、一度目の圧縮方法に沿って解凍して情報を得る。なお、二度目の圧縮をユニークキー毎に行った場合は、代表キーに関する手順の省略が可能である。
【００５４】
以上より、本実施形態によれば、データ圧縮装置１は、メモリ上の非圧縮データを圧縮する一度目の圧縮処理を行うので、メモリ上で圧縮後のデータを保持可能となり、同じ量のデータをメモリ上に保持するのに必要なメモリ量を削減できる。
【００５５】
また、データ圧縮装置１は、複数の圧縮データを結合して再圧縮する二度目の圧縮処理を行うので、ディスク上での圧縮率を向上できる。特に、ユニークキーをまたいで複数の圧縮データを圧縮する場合、ディスク上での圧縮率をより向上できる。つまり、第１ブロック同士をつなぎ合わせることが可能になり、同一のユニークキーのブロックや複数のユニークキーのブロックをまとめて圧縮することが可能になる。このため、小さなブロックしかメモリ上に保持できないような省メモリな場面において、圧縮率を向上できる。
【００５６】
よって、省メモリ、省ディスク容量を両立しながら、データ収集、蓄積を行うことが可能になる。
【符号の説明】
【００５７】
１…データ圧縮装置
１１…データ受信部
１２…データ圧縮部
１３…データ格納部
１４…ブロック結合部
１５…結合ブロック圧縮部
１６…検索情報生成部
１７…データ書込部
３…メモリ
５…ディスク（ファイル）
１００…データベース装置
３００…ＩｏＴデバイス
【図１】
2020108045.tif 000003
【図２】
2020108045.tif 000004
【図３】
2020108045.tif 000005
【図４】
2020108045.tif 000006
【図５】
2020108045.tif 000007
【図６】
2020108045.tif 000008