(57)【特許請求の範囲】
【請求項１】
データをカラム単位で格納するデータベースを管理するデータベース管理方法であって、
前記データベースは、カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、データサブセットから構成される一又は複数のカラムデータ部と、を備え、
各前記カラムデータ部における各前記データサブセットは、当該データサブセットに含まれる各シンボル値と、各前記シンボル値のデータ識別値と、当該データサブセットの識別値と、当該データサブセットにおける各前記シンボル値がソート状態か否かを示すフラグと、を含み、
追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従った各データを生成して前記データベースに追記する、
ことを特徴とするデータベース管理方法。
【請求項２】
前記追記対象のデータについて前記順列行列部と前記データサブセットとのデータフォーマットに対応したデータを生成する処理において、追記対象の順列行列部の各順列値と、追記対象のデータサブセットにおける各シンボル値のデータ識別値とに、前記カラムデータ部に従前に追記されたデータサブセットの識別値を加算するとともに、当該追記対象のデータサブセットの識別値に、当該データサブセットに含まれるシンボル値の識別値の最大値を設定する、
ことを特徴とする請求項１に記載のデータベース管理方法。
【請求項３】
データをカラム単位で格納するデータベースを管理するデータベースシステムであって、
前記データベースは、カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、データサブセットから構成される一又は複数のカラムデータ部と、を備え、
各前記カラムデータ部における各前記データサブセットは、当該データサブセットに含まれる各シンボル値と、各前記シンボル値のデータ識別値と、当該データサブセットの識別値と、当該データサブセットにおける各前記シンボル値がソート状態か否かを示すフラグと、を含み、
追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従った各データを生成して前記データベースに追記するデータ処理手段を備える、
ことを特徴とするデータベースシステム。
【請求項４】
前記データ処理手段は、前記追記対象のデータについて前記順列行列部と前記データサブセットとのデータフォーマットに対応したデータを生成する際、追記対象の順列行列部の各順列値と、追記対象のデータサブセットにおける各シンボル値のデータ識別値とに、前記カラムデータ部に従前に追記されたデータサブセットの識別値を加算するとともに、当該追記対象のデータサブセットの識別値に、当該データサブセットに含まれるシンボル値の識別値の最大値を設定する、
ことを特徴とする請求項３に記載のデータベースシステム。
【請求項５】
カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、
一又は複数の各シンボル値と、各前記シンボル値のデータ識別値と、識別値と、前記各シンボル値がソート状態か否かを示すフラグと、を含むデータサブセットから構成される一又は複数のカラムデータ部と、
を備えるデータベースに接続されたコンピュータを、
追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従った各データを生成して前記データベースに追記するデータ処理手段、
として機能させるプログラム。
【請求項６】
前記データ処理手段は、前記追記対象のデータについて前記順列行列部と前記データサブセットとのデータフォーマットに対応したデータを生成する際、追記対象の順列行列部の各順列値と、追記対象のデータサブセットにおける各シンボル値のデータ識別番号とに、前記カラムデータ部に従前に追記されたデータサブセットの識別値を加算するとともに、当該追記対象のデータサブセットの識別値に、当該データサブセットに含まれるシンボル値の識別値の最大値を設定する、
ことを特徴とする請求項５に記載のプログラム。
【請求項７】
データをカラム単位で格納するデータベースであって、
カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、データサブセットから構成される一又は複数のカラムデータ部と、を備え、
各前記カラムデータ部における各前記データサブセットは、当該データサブセットに含まれる各シンボル値と、各前記シンボル値のデータ識別値と、当該データサブセットの識別値と、当該データサブセットにおける各前記シンボル値がソート状態か否かを示すフラグと、を含み、
コンピュータにより、追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従って生成された各データが前記順列行列部と前記カラムデータ部に追記される
ことを特徴とするデータベース。
【請求項８】
前記追記対象のデータについて前記順列行列部と前記データサブセットとのデータフォーマットに対応したデータが生成されるとき、
前記コンピュータにより、追記対象の順列行列部の各順列値と、追記対象のデータサブセットにおける各シンボル値のデータ識別値とに、前記カラムデータ部に従前に追記されたデータサブセットの識別値が加算されるとともに、当該追記対象のデータサブセットの識別値に、当該データサブセットに含まれるシンボル値の識別値の最大値が設定される
ことを特徴とする請求項７に記載のデータベース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カラム単位でデータ管理を行うカラムストアデータベース技術に関する。
【背景技術】
【０００２】
データベースシステムの一形態として、カラム単位でデータ管理を行うカラムストアデータベースシステムが考案されている。このようなシステムにおけるデータベース構造においては、読み取り処理における高速性を維持するため、シンボル値がソート状態で格納されるのが一般的であった。
【０００３】
例えば、特許文献１には、項目値番号の順番に項目値が格納されている値管理テーブルと、レコードの順番に項目値番号を指定する情報が格納された項目値番号指定情報配列（値管理テーブルへのポインタ配列）と、から構成されているデータベースシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第００／１０１０３号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のようなデータベースシステムでは、データの追加が行われるときには、新規のデータが値管理テーブル内に既に存在しているかどうかを確認する。存在していればその順位を保持し、存在していない場合には、値管理テーブル内の順位を全てに亘って再計算する。既に値が存在していた時には、項目値番号指定情報配列には変更が及ばないが、値管理テーブルの順位変更があった場合には、項目値番号指定情報配列の内部も広範囲に亘ってデータ変更が生じるため、パフォーマンスの低下が起きていた。
【０００６】
本発明は、上記問題点に鑑みてなされたもので、データの読取処理の高速性を維持しつつ、データの追加処理によるパフォーマンスの低下を防ぐデータベース管理方法等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、データをカラム単位で格納するデータベースを管理するデータベース管理方法であって、前記データベースは、カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、データサブセットから構成される一又は複数のカラムデータ部と、を備え、各前記カラムデータ部における各前記データサブセットは、当該データサブセットに含まれる各シンボル値と、各前記シンボル値のデータ識別値と、当該データサブセットの識別値と、当該データサブセットにおける各前記シンボル値がソート状態か否かを示すフラグと、を含み、追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従った各データを生成して前記データベースに追記する、ことを特徴とするデータベース管理方法である。
【０００８】
本発明は、データをカラム単位で格納するデータベースを管理するデータベースシステムであって、前記データベースは、カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、データサブセットから構成される一又は複数のカラムデータ部と、を備え、各前記カラムデータ部における各前記データサブセットは、当該データサブセットに含まれる各シンボル値と、各前記シンボル値のデータ識別値と、当該データサブセットの識別値と、当該データサブセットにおける各前記シンボル値がソート状態か否かを示すフラグと、を含み、追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従った各データを生成して前記データベースに追記するデータ処理手段を備える、ことを特徴とするデータベースシステムである。
【０００９】
本発明は、カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、一又は複数の各シンボル値と、各前記シンボル値のデータ識別値と、識別値と、前記各シンボル値がソート状態か否かを示すフラグと、を含むデータサブセットから構成される一又は複数のカラムデータ部と、を備えるデータベースに接続されたコンピュータを、追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従った各データを生成して前記データベースに追記するデータ処理手段、として機能させるプログラムである。
【００１０】
本発明は、カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、一又は複数の各シンボル値と、各前記シンボル値のデータ識別値と、識別値と、前記各シンボル値がソート状態か否かを示すフラグと、を含むデータサブセットから構成される一又は複数のカラムデータ部と、を備えるデータベースのデータ構造。
【発明の効果】
【００１１】
本発明によれば、カラムストアデータベースにおけるデータの読取処理の高速性を維持しつつ、データの追加処理によるパフォーマンスの低下を防ぐことができる。
【図面の簡単な説明】
【００１２】
【図１】図１は本発明の実施形態に係るデータベースシステムのシステム構成の概略図である。
【図２】図２はデータベースにおけるデータ構造の一例を示す図である。
【図３】図３はデータベースにデータを追記する処理のフローチャートである。
【図４】図４はデータベースにデータを追記する処理を説明するための図である。
【図５】図５はデータベースにデータを追記する処理を説明するための図である。
【図６】図６はデータベースにデータを追記する処理を説明するための図である。
【図７】図７はデータベースにデータを追記する処理を説明するための図である。
【図８】図８はデータベースにデータを追記する処理を説明するための図である。
【図９】図９はデータベースにデータを追記する処理を説明するための図である。
【図１０】図１０はデータベースにデータを追記する処理を説明するための図である。
【図１１】図１１はリージョンの統合化を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を参照して説明する。
【００１４】
図１は、本発明の実施形態に係るデータベースシステム１０のシステム構成の概略図である。図示されるように、本システムは、管理サーバ２０と記憶装置３０とを備え、これはＬＡＮ（Local Area Network）等のネットワークにより接続されている。なお、本実施形態では、カラム単位でデータ管理を行うカラムストアデータベースによりデータを記憶管理する。
【００１５】
管理サーバ２０は、記憶装置３０に格納されているデータベース３１についてデータの読取や変更等の各種処理を行うデータ処理部２１を備える。記憶装置３０には、データベース３１が格納されている。データベース３１は、カラム単位でデータを管理するカラムストアデータベースである。
【００１６】
データベース３１のデータ構造の一例を図２に示す。図示されるように、データベースは、順列行列部Ａ１と、カラムデータ部Ｂ１と、を備えるデータ構造を有する。
【００１７】
順列行列部Ａ１は、カラム毎に各シンボル値のデータの行（ロー）方向における順列を各シンボル値に対応するデータ識別子により示すものである。
【００１８】
カラムデータ部Ｂ１は、複数のリージョン（データサブセット）が蓄積されて構成される。リージョンは、当該リージョンに含まれる各シンボル値（データ値）、各シンボル値の識別値、リージョンＩＤ、当該リージョンの各シンボル値がソートされているか否かを示すコンテントフラグ、を含む。
【００１９】
各シンボル値の識別値には、当該カラムデータ部Ｂ１に亘ってナンバリングされた値が設定されてもよい。また、リージョンＩＤには、当該リージョンにおけるシンボル値の識別値の最大値が設定される。
【００２０】
次に、本実施形態に係るデータベースシステム１０において、データベース３１にデータを追記する場合の動作について具体例を用いて説明する。図３は、管理サーバ２０による本処理動作のフローチャートである。
【００２１】
この例では図４の表Ｔ１に図５の表Ｔ２を追記するための処理を行う。データベース３１には、表Ｔ１の実体データが上述のデータ構造（図２参照）に従って、図６に示す表Ｔ１’のようにカラム単位で格納されている。
【００２２】
管理サーバ２０のデータ処理部２１は、追記対象である表Ｔ２のデータについて、図７に示す表Ｔ２’のように、データベース３１に対応するデータ構造を有するデータに変換する（ステップＳ１）。このとき、各シンボル値の識別値には当該サブセットに亘ってナンバリングした値が設定され、リージョンＩＤには各シンボル値の識別値の最大値が設定される。また、コンテントフラグには、当該データセットにおけるシンボル値がソート状態か否かを示すフラグ（ソートされている場合「００」、ソートされていない場合「０１」）が設定される。
【００２３】
次に、データ処理部２１は、追記対象のデータをデータベース３１に追記する（ステップＳ２）。ここで、データ処理部２１は、図８に示す表Ｔ３’のように、追記対象データの順列行列部Ａ１の各順列値と、追記対象のデータサブセットにおける各シンボル値の識別値に、カラムデータ部Ｂ１に従前に蓄積されたデータサブセットのリージョンＩＤを加算するとともに、追記対象のデータサブセットのリージョンＩＤに、そのデータサブセットにおけるシンボル値の識別値の最大値を設定する。
【００２４】
上述したデータ追記処理によりデータベース３１には図９に示すような実体データが格納され、図１０に示す表３が得られる。このように、図２に示すデータ構造に基づいて生成したデータサブセットを単純にそれぞれ繋げて格納するだけでデータベースにおいて整合が維持される。
【００２５】
以上のように、本実施形態に係るデータベースシステムによれば、データ変更は追記されるデータ部分についてのみ行われるため、データベースシステムのパフォーマンスの低下を防ぐことができる。また、カラムデータ部のリージョン（データサブセット）にその内部のシンボル値がソートされているか否かを示すフラグを含めることにより、データの読取処理ではこのフラグを参照してそのリージョン内部のシンボル値がソート状態か否かを知ることができるため、読み取り処理における高速性の維持を図ることができる。また、従来のデータ変更処理と比してデータ変更範囲が少なくすむため、従来よりも処理を高速に実行できる。
【００２６】
追記されるデータについて変更される内容は、シンボル値格納構造部の内部がソートされているか否かに関わらず、既にあるデータ構造のリージョンＩＤを単純に加えるだけのものであり複雑な計算を要しないため、並列計算機を用いて効率良く処理を行うことができる。また、キャッシュヒット率の観点からも高速に計算が行える。
【００２７】
なお、管理サーバ２０は、所定のタイミングでリージョンの統合化を行っても良い。データベース３１に格納されていたデータ（シンボル値）がソート状態であり、追記されるデータとの重複がなく、追記されるデータがソート済みで、かつデータ範囲の重複がない場合には、単純にデータを追記するだけでソート状態も維持されるため、コンテントフラグの設定値についてもソートされている旨のままとすることができる。また、統合化されるリージョンの一つがソートされていない場合は、コンテントフラグはソート状態ではない旨が設定される。このような場合には、データの統合化アルゴリズム等を用いることでソート状態で構造統合を行うことができる。図９のデータについてリージョンの統合化を行った場合のデータ構造を図１１に例示する。
【００２８】
上述した本発明の実施形態に係る管理サーバ２０のデータ処理部２１は、管理サーバ２０のＣＰＵ（Central Processing Unit）が記憶部に格納された動作プログラム等を読み出して実行することにより実現されてもよく、また、ハードウェアで構成されてもよい。上述した実施の形態の一部の機能のみをコンピュータプログラムにより実現することもできる。
【００２９】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。
【００３０】
上記実施形態では、データ追記の際、追記対象のデータのリージョンＩＤには、当該リージョンにおけるシンボル値の識別値の最大値を設定するようにしているが、これに限定されず、カラムデータ部Ｂ１に従前に蓄積されたデータサブセットのリージョンＩＤを加算するようにしてもよい。
【００３１】
本発明によれば、データ変更が起こり得るデータベースシステムの実装において、高速な読取応答性能を大幅に損なうことなく、より高速な追記処理応答が必要な用途へ適当できる。例えば、多大な追記が予想されうるログ管理用のデータベースでは、大規模ログの高速分析を可能としつつ、追記による最新データの内容を結果へ反映させることができる。
【００３２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００３３】
（付記１）
データをカラム単位で格納するデータベースを管理するデータベース管理方法であって、
前記データベースは、カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、データサブセットから構成される一又は複数のカラムデータ部と、を備え、
各前記カラムデータ部における各前記データサブセットは、当該データサブセットに含まれる各シンボル値と、各前記シンボル値のデータ識別値と、当該データサブセットの識別値と、当該データサブセットにおける各前記シンボル値がソート状態か否かを示すフラグと、を含み、
追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従った各データを生成して前記データベースに追記する、
ことを特徴とするデータベース管理方法。
【００３４】
（付記２）
前記追記対象のデータについて前記順列行列部と前記データサブセットとのデータフォーマットに対応したデータを生成する処理において、追記対象の順列行列部の各順列値と、追記対象のデータサブセットにおける各シンボル値のデータ識別値とに、前記カラムデータ部に従前に追記されたデータサブセットの識別値を加算するとともに、当該追記対象のデータサブセットの識別値に、当該データサブセットに含まれるシンボル値の識別値の最大値を設定する、
ことを特徴とする付記１に記載のデータベース管理方法。
【００３５】
（付記３）
データをカラム単位で格納するデータベースを管理するデータベースシステムであって、
前記データベースは、カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、データサブセットから構成される一又は複数のカラムデータ部と、を備え、
各前記カラムデータ部における各前記データサブセットは、当該データサブセットに含まれる各シンボル値と、各前記シンボル値のデータ識別値と、当該データサブセットの識別値と、当該データサブセットにおける各前記シンボル値がソート状態か否かを示すフラグと、を含み、
追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従った各データを生成して前記データベースに追記するデータ処理手段を備える、
ことを特徴とするデータベースシステム。
【００３６】
（付記４）
前記データ処理手段は、前記追記対象のデータについて前記順列行列部と前記データサブセットとのデータフォーマットに対応したデータを生成する際、追記対象の順列行列部の各順列値と、追記対象のデータサブセットにおける各シンボル値のデータ識別値とに、前記カラムデータ部に従前に追記されたデータサブセットの識別値を加算するとともに、当該追記対象のデータサブセットの識別値に、当該データサブセットに含まれるシンボル値の識別値の最大値を設定する、
ことを特徴とする付記３に記載のデータベースシステム。
【００３７】
（付記５）
カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、
一又は複数の各シンボル値と、各前記シンボル値のデータ識別値と、識別値と、前記各シンボル値がソート状態か否かを示すフラグと、を含むデータサブセットから構成される一又は複数のカラムデータ部と、
を備えるデータベースに接続されたコンピュータを、
追記対象のデータについて、前記順列行列部と前記データサブセットのデータフォーマットに従った各データを生成して前記データベースに追記するデータ処理手段、
として機能させるプログラム。
【００３８】
（付記６）
前記データ処理手段は、前記追記対象のデータについて前記順列行列部と前記データサブセットとのデータフォーマットに対応したデータを生成する際、追記対象の順列行列部の各順列値と、追記対象のデータサブセットにおける各シンボル値のデータ識別値とに、前記カラムデータ部に従前に追記されたデータサブセットの識別値を加算するとともに、当該追記対象のデータサブセットの識別値に、当該データセットに含まれるシンボル値の識別値の最大値を設定する、
ことを特徴とする付記５に記載のプログラム。
【００３９】
（付記７）
カラム毎に各シンボル値の順列をデータ識別値により示す順列行列部と、
一又は複数の各シンボル値と、各前記シンボル値のデータ識別値と、識別値と、前記各シンボル値がソート状態か否かを示すフラグと、を含むデータサブセットから構成される一又は複数のカラムデータ部と、
を備えるデータベースのデータ構造。
【００４０】
（付記８）
前記データベースへの追記対象データについて、前記順列行列部と前記データサブセットとのデータフォーマットに対応したデータを生成するとき、追記対象の順列行列部の各順列値と、追記対象のデータサブセットにおける各シンボル値のデータ識別値とに、前記カラムデータ部に従前に追記されたデータサブセットの識別値が加算されるとともに、当該追記対象のデータサブセットの識別値に当該データセットに含まれるシンボル値の識別値の最大値が設定される、
ことを特徴とする付記７に記載のデータベースのデータ構造。
【符号の説明】
【００４１】
１０    データベースシステム
２０    管理サーバ
２１    データ処理部
３０    記憶装置
３１    データベース
【図１】
0005499825.tif 000002
【図２】
0005499825.tif 000003
【図３】
0005499825.tif 000004
【図４】
0005499825.tif 000005
【図５】
0005499825.tif 000006
【図６】
0005499825.tif 000007
【図７】
0005499825.tif 000008
【図８】
0005499825.tif 000009
【図９】
0005499825.tif 000010
【図１０】
0005499825.tif 000011
【図１１】
0005499825.tif 000012