説明

表データのデータ処理方法、データ処理システムおよびそのコンピュータプログラム

【課題】結合演算でも再配置を必要とすることなく並列処理することができるデータ処理システムを提供する。
【解決手段】行データを複数のノードに配分するときに列に入力されている属性値を分割指示部110がデータ配分条件とする。データ配分条件に対応して複数のノードに配分される行データごとに列を意味する属性をキー生成部120が検索キーとする。生成された検索キーを行データに属性としてキー付与部130が付与する。検索キーが付与された行データを複数のノードの少なくとも一つにデータ登録部140が登録する。複数の属性に基づいて行データの分割を行うが、ノードに配分される各行データには分割に利用した属性が検索キーとして付与されるので、前記検索キーを利用した適切な選択演算を問合せに追加することで、結合演算を含む関係演算を複数のノードで並列に処理することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表データを複数台の計算機で分割して管理するデータ処理方法に関し、特に、表データの分割方法と分割された表データに対する問合せ処理方法、データ処理システムおよびそのコンピュータプログラムに関する。
【背景技術】
【0002】
関係データベースにおいて表操作のことを関係代数演算、または関係演算という。関係演算の選択演算は、テーブルの中から条件に合った行を取り出す操作である。関係演算の射影演算は、テーブルの中から必要な列だけを指定してテーブルから取り出す操作である。
【0003】
関係演算の結合演算は、図2に示すように、二つのテーブルを指定の条件により結合して一つのテーブルにする操作である。結合に利用する属性(表の列)を結合属性という。属性値の等しさによって二つのテーブルが結合される結合演算を特に等結合演算という。一般的に、結合演算は図示するようにテーブルの間の関係を利用して、二つのテーブルを結合する。
【0004】
関係データベースにおいて、結合演算は特に負荷の高い処理であり、複数の計算機を用いて結合演算をハッシュ分割に基づいて並列に処理する手法が開発されている(非特許文献1)。ハッシュ分割手法は、テーブルを行ごとに分割に利用する属性(分割属性)のハッシュ値によって部分集合(クラスタ)に分割する。同一の値は常に同一のハッシュ値を持つため、同一クラスタに配分される。そのため、分割属性が結合属性と等しければ、等結合演算をクラスタごとに並列に処理することができる。
【0005】
並列データベースは、テーブルを分割条件にもとづいて複数の表(分割表)に分け、上記分割表を複数台の計算機に配分して管理し、分割前の一つ以上のテーブルに対する関係演算を複数の計算機で並列に処理することで、問合せ処理を高速化する。
【0006】
テーブル分割手法として、ハッシュ分割とキー範囲分割がよく用いられている。しかし、単純なハッシュ分割やキー範囲分割方式は一組の分割条件(これを分割キーと呼ぶ)に基づいてクラスタリングされるため、多面的な観点でのデータ問合せをデータの再配置なしに並列処理することができなかった。
【0007】
複数の属性を利用した分割キーを利用して表を仮想的に多次元に分割した上で、多面的な観点でのデータ問合せに対してデータ処理対象となる分割表を絞り込む手法が提案されている(特許文献1、非特許文献2)。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2007−48318号公報
【非特許文献】
【0009】
【非特許文献1】Kisuregawa,M.、Tanaka,H. and Moto-oka,T.: 「Application of hash to data base machine and its architecture」、New Generation computing、1983年3月
【非特許文献2】Padmanabhan,S.、Bhattacharjee,B.、Malkemus,T.、Cranston,L. and Huras,M.: 「Multi-dimensional clustering: a new data layout scheme in DB2」、In Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data、p.637-641、2003年
【非特許文献3】Liu,C. and Chen,H.: 「A hash partition strategy for distributed query processing」、In Proceedings of the 5th International Conference on Extending Database Technology、p.371-387、1996年
【発明の概要】
【発明が解決しようとする課題】
【0010】
従来のテーブル分割手法は、テーブルの一つの属性、あるいは複数の属性を一つに組合せた分割キーに基づいてデータをクラスタリングして複数のノードに分割する。一つの行は必ず一つのノードに配分される。従来手法には、データ分割時に利用した分割属性と異なる結合属性を用いた結合演算を並列処理する上で、データの再配置が必要となるという問題がある(非特許文献3)。
【0011】
具体的な問題点を、三つのテーブルR1、R2、R3に対する2つ結合演算「R1.A=R2.A」と「R2.B=R3.B」を例に述べる。「R1.A=R2.A」では、テーブルR1とR2が属性Aで結合される。一方の「R2.B=R3.B」では、テーブルR2とR3が属性Bで結合される問合せである。
【0012】
「R1.A=R2.A」を並列処理するためには、R1とR2がそれぞれ属性値Aに基づいてデータ分割されている必要がある。一方で、「R2.B=R3.B」を並列処理するには、R2とR3がそれぞれ属性値Bに基づいてデータ分割されている必要がある。つまり、ここで上記二つの問合せで、テーブルR2のデータ分割要求に矛盾が生じている。
【0013】
従来手法では、「R1.A=R2.A」を並列処理するとき、テーブルR2が属性値Aに基づいて分割されていなければ、属性値Aに基づいてテーブルR2の行データの動的再配置を行う。また、「R2.B=R3.B」を並列処理するとき、テーブルR2が属性値Bに基づいて分割されていなければ、属性値Bに基づいてテーブルR2の行データの動的再配置を行う。このように、従来手法では、分割属性と異なる結合属性が指定されたときに計算機間のデータの再配置を避けることができないという問題がある。
【0014】
図2に示すように、結合演算では複数の表は特定の列の属性値にもとづいて結合される。図2では、雑誌表の出版社IDが出版社表の出版社IDを参照している。N個(N>1)の表間で結合の可能性はNに比例して大きくなるが、一般的にテーブル間の参照関係は限定的であるため、有意な結合の組合せは限定される。
【0015】
本発明は上述のような課題に鑑みてなされたものであり、結合属性になり得る複数の分割属性を利用してテーブルを分割することで、結合演算でも再配置を必要とすることなく、データ分割を行った表データに対する関係演算を並列に評価することができるデータ処理方法、データ処理システムおよびそのコンピュータプログラム、を提供するものである。
【課題を解決するための手段】
【0016】
本発明のデータ処理システムは、表形式の行データを少なくとも一つの属性に基づいて複数のノードに配分し、それぞれのノードで配分された行データの集まりを管理するデータ処理システムであって、行データを複数のノードに配分するときに列に入力されている属性値をデータ配分条件とする分割指示手段と、データ配分条件とされた属性値の配分先ノードを決定するデータ配分先決定手段と、データ配分条件に対応して複数のノードに配分される行データごとに列を意味する属性を検索キーとするキー生成手段と、生成された検索キーを行データに属性として付与するキー付与手段と、検索キーが付与された行データを複数のノードの少なくとも一つに登録するデータ登録手段と、データ分割に利用した属性と検索キーとの対応関係が登録されるディクショナリと、を有する。
【0017】
上述のデータ分割において、本発明のデータ処理システムは、複数の属性値に基づいてテーブルのデータ分割を行う。このとき、本発明のデータ処理システムは、分割配置される各行にその行がどの属性に基づいて分割されたかの情報を差し込む。従来手法では、一つの行は加工されずに一つのノードに配分されるのに対して、提案手法では、一つの行は属性の追加が施されて一つ以上のノードに配分される。
【0018】
さらに、本発明のデータ処理システムは、上述のようなデータ分割を行った上で、少なくとも一つの表に対するデータ問合を処理するにあたり、データ問合内容とディクショナリに応じてデータ問合に検索キーを利用した選択演算を付与する問合加工手段と、加工されたデータ問合を利用して複数のノードで並列にデータ問合を処理する問合処理手段と、を有する。
【0019】
なお、本発明の各種の構成要素は、その機能を実現するように形成されていればよく、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたデータ処理システム、コンピュータプログラムによりデータ処理システムに実現された所定の機能、これらの任意の組み合わせ、等として実現することができる。
【0020】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【0021】
また、本発明のコンピュータプログラムおよびデータ処理方法は、複数の処理および動作を順番に記載してあるが、その記載の順番は複数の処理および複数の動作を実行する順番を限定するものではない。
【0022】
このため、本発明のコンピュータプログラムおよびデータ処理方法を実施するときには、その複数の処理および複数の動作の順番は内容的に支障しない範囲で変更することができる。
【0023】
さらに、本発明のコンピュータプログラムおよびデータ処理方法は、複数の処理および複数の動作が個々に相違するタイミングで実行されることに限定されない。このため、ある処理および動作の実行中に他の処理および動作が発生すること、ある処理および動作の実行タイミングと他の処理および動作の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【0024】
また、本発明で云うデータ処理システムは、コンピュータプログラムを読み取って対応する処理動作を実行できるように、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、I/F(Interface)ユニット、等の汎用デバイスで構築されたハードウェア、所定の処理動作を実行するように構築された専用の論理回路、これらの組み合わせ、等として実施することができる。
【発明の効果】
【0025】
本発明のデータ処理システムでは、複数の属性値に基づいてテーブルのデータ分割を行い、どの属性に基づいてその行が分割されたかの情報を行データごとに差し込む。そして、差し込んだ情報を利用した選択演算を問合に加えることで、結合演算を含む関係演算を再配置なしに並列処理することができる。
【図面の簡単な説明】
【0026】
【図1】本発明の実施の形態のデータ処理システムの論理構造を示す模式的なブロック図である。
【図2】結合演算による表データ操作の例を示す模式図である。
【図3】データ処理システムが表データを分割するときのデータ分割方法を示すフローチャートである。
【図4】データ処理システムが表データに対するデータ問合せを行うときの問合せ処理方法を示すフローチャートである。
【図5】本発明のデータ処理システムが表分割時に一つのタプルを一つ以上のノードへ割り当てる状態を示す模式図である。
【図6】本発明のデータ処理システムが問合せ処理時に検索キーを用いた選択演算によって問合せ対象データを絞り込んだ状態を示す模式図である。
【発明を実施するための形態】
【0027】
本発明の実施の一形態を図面を参照して以下に説明する。本実施の形態のデータ処理システム100は、表を構成する各行データを少なくとも一つの属性値に基づいて複数のノードに配分し、それぞれのノードで配分された行データの集まりを管理する。
【0028】
このため、本実施の形態のデータ処理システム100は、図1に示すように、行データを複数のノードに配分するときに列に入力されている属性値をデータ配分条件とする分割指示部110と、データ配分条件とされた属性値の配分先ノードを決定するデータ配分先決定部160と、データ配分条件に対応して複数のノードに配分される行データごとに列を意味する属性を検索キーとするキー生成部120と、生成された検索キーを行データに属性として付与するキー付与部130と、検索キーが付与された行データを複数のノードの少なくとも一つに登録するデータ登録部140と、を有する。
【0029】
さらに、本実施の形態のデータ処理システム100は、データ配分に利用した属性と検索キーとの対応関係が登録されるディクショナリ150と、少なくとも一つの表に対するデータ問合を処理するにあたり、データ問合内容とディクショナリ150を入力としてデータ問合内容に応じてデータ問合に検索キーを利用した選択演算を付与する問合加工部170と、加工されたデータ問合を利用して複数のノードで並列にデータ問合を処理する問合処理部180と、データベースの構造などが登録されているデータベースカタログ190と、を有する。
【0030】
このようなデータ処理システム100は、複数のノードで構成されるデータベースサーバに、クライアント端末が接続された構造などとして実現される(図示せず)。このようなデータベースサーバに実装されるコンピュータプログラムは、行データを複数のノードに配分するときに列に入力されている属性値をデータ配分条件とする分割指示処理と、データ配分条件とされた属性値の配分先ノードを決定するデータ配分先決定処理と、データ配分条件に対応して複数のノードに配分される行データごとに列を意味する属性を検索キーとするキー生成処理と、生成された検索キーを行データに属性として付与するキー付与処理と、検索キーが付与された行データを複数のノードの少なくとも一つに登録するデータ登録処理と、をデータ処理システム100に実行させるように記述されている。
【0031】
本実施の形態のデータ処理システム100は、属性と検索キーとの対応関係を、表データの分割処理の開始前にディクショナリ150に登録する。検索キーには、2のN乗(ただしNは0以上の整数)を属性ごとに一意に昇順に割り当てる。つまり、検索キーを2進数表現にしたとき、各ビットが、どの属性に基づいてその行が分割されたかの情報を示す。なお、属性への検索キーの割当順序は問わない。
【0032】
表データを分割をするにあたって、本実施の形態のデータ処理システム100では、図3(a)に示すように、分割指示部110がデータ配分条件として利用するN個(ただし、N>=1)の分割属性A1,…,Anを決定し(ステップS1)、つぎに、行データごとにデータ分割を行う(ステップS2)。
【0033】
ステップS2では、図3(b)に示すように、データ配分条件の各分割属性ごとにステップS3〜ステップS9が実行される。その中で、分割属性Aiに応じた検索キーをキー生成部120が決定し(ステップS4)、データ配分先決定部160が分割属性Aiの値をデータ配分条件として登録先ノードNを決定し(ステップS5)、ノードNに登録される検索キーの論理和K(N)を検索キーに利用する。このようにして、ステップS9で各行に追加される検索キーには各分割属性に応じた検索キーの論理和が利用される。
【0034】
ステップS9では、登録先ノードごとに行データを登録する。まず、図3(c)に示すように、生成された検索キーを行データに属性としてキー付与部130が付与する(ステップS10)。
【0035】
つぎに、登録先ノードに応じた検索キーが付与された加工済の行データをデータ登録部140が登録先ノードに追加する(ステップS11)。このようにステップS9により、検索キーが付与された行データが一つ以上のノードに登録される。
【0036】
上述のようにノードに登録された行データを検索するときには、図4に示すように、データ問合内容とディクショナリ150を入力として検索キーを生成する(ステップT1)。
【0037】
つぎに、データ問合内容に応じてデータ問合に検索キーを利用した選択演算を付与する(ステップT2)。そして、加工されたデータ問合を利用して複数のノードで並列にデータ問合を処理する(ステップT3)。
【0038】
データ分割時の流れを、例をあげて図5に図解する。ここでは、図3の分割指示部110がデータ配分条件としてItem属性とType属性を利用したものとする。なお、データ配分条件に利用する属性の選び方は、ここでは不問とする。本実施の形態のデータ処理システム100では、図1のDBカタログ190に記録されているテーブル間の参照関係を鑑みて分割指示部110が利用する属性を選択する。
【0039】
図5では、Idが1の行はItem属性とType属性の値により、それぞれノード1とノードNに登録されている。それぞれのノードに配分される行データには、どの属性に基づいてその行が分割されたかの情報が新規属性として付与される。
【0040】
図5では、理解のためにItemとTypeと表記しているが、実際にはそれぞれの属性に対応する検索キーを用いると、コンピュータプログラムではより効率的である。Idが3の行では、Item属性とType属性による分割で共にノード2に行が配分される。
【0041】
このときは、Item属性に対応する検索キーとType属性に対応する検索キーのビット和(論理和)が利用される。このように、本実施の形態のデータ処理装置100では、一つのタプルを1以上の分割キーに基づいて、加工を行った上で1つ以上のバケットへ割り当てる。
【0042】
図4に示すデータ問合処理時の流れを、Type属性ごとに基づいて2つの表と等結合される場合を例に図6に図解する。図4のステップT2では、分割に利用した属性がTypeである行を選ぶ選択演算が問合せに加えられる。
【0043】
図5に選択演算を加えて絞り込みを行ったあとの状態を図解する。このように、本実施の形態のデータ処理装置100は、データ問合内容に応じて、データ問合に検索キーを利用した選択演算を付与する。
【0044】
本実施の形態のデータ処理装置100では、このように適切な選択演算を加えることで、Type属性ごとにQtyの合計を求めるような問合せをノードごとに並列に処理することもできるし、Item属性ごとにQtyの合計を求めるような問合せをノードごとに並列に処理することもできる。なお、一組の属性に基づいてデータ分割を行う従来手法では、このような並列処理は行データの再配置なしに実現できない。
【0045】
なお、本発明は本実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形を許容する。例えば、上記形態では複数のノードがデータベースサーバにデータベースとして構築されていることを想定した。しかし、本実施の形態のデータ処理システム100は、データベース管理システムに限らず、テーブル形式のデータを扱うシステム全般に適用することができる。
【0046】
さらに、本実施の形態ではデータ処理システム100の各部がコンピュータプログラムにより各種機能として論理的に実現されることを例示した。しかし、このような各部の各々を固有のハードウェアとして形成することもでき、ソフトウェアとハードウェアとの組み合わせとして実現することもできる。
【0047】
なお、当然ながら、上述した実施の形態および複数の変形例は、その内容が相反しない範囲で組み合わせることができる。また、上述した実施の形態および変形例では、各部の構造などを具体的に説明したが、その構造などは本願発明を満足する範囲で各種に変更することができる。
【符号の説明】
【0048】
100 データ処理システム
110 分割指示部
120 キー生成部
130 キー付与部
140 データ登録部
150 ディクショナリ
160 データ配分先決定部
170 問合加工部
180 問合処理部
190 データベースカタログ

【特許請求の範囲】
【請求項1】
表形式の行データを少なくとも一つの属性値に基づいて複数のノードに配分し、それぞれの前記ノードで配分された前記行データの集まりを管理するデータ処理システムであって、
前記行データを複数の前記ノードに配分するときに列に入力されている属性値をデータ配分条件とする分割指示手段と、
前記データ配分条件とされた前記属性値の配分先ノードを決定するデータ配分先決定手段と、
前記データ配分条件に対応して複数の前記ノードに配分される前記行データごとに前記列を意味する属性を検索キーとするキー生成手段と、
生成された前記検索キーを前記行データに属性として付与するキー付与手段と、
前記検索キーが付与された前記行データを複数の前記ノードの少なくとも一つに登録するデータ登録手段と、
データ配分に利用した属性と前記検索キーとの対応関係が登録されるディクショナリと、
を有するデータ処理システム。
【請求項2】
少なくとも一つの表に対するデータ問合を処理するにあたり、
データ問合内容に応じて前記データ問合に前記検索キーを利用した選択演算を付与する問合加工手段と、
前記加工されたデータ問合を利用して複数の前記ノードで並列に前記データ問合を処理する問合処理手段とを、
さらに有する請求項1に記載のデータ処理システム。
【請求項3】
表形式の行データを少なくとも一つの属性値に基づいて複数のノードに配分し、それぞれの前記ノードで配分された前記行データの集まりを管理するデータ処理システムのコンピュータプログラムであって、
前記行データを複数の前記ノードに配分するときに列に入力されている属性値をデータ配分条件とする分割指示処理と、
データ配分条件とされた属性値の配分先ノードを決定するデータ配分先決定処理と、
前記データ配分条件に対応して複数の前記ノードに配分される前記行データごとに前記列を意味する属性を検索キーとするキー生成処理と、
生成された前記検索キーを前記行データに属性として付与するキー付与処理と、
前記検索キーが付与された前記行データを複数の前記ノードの少なくとも一つに登録するデータ登録処理と、
をデータ処理システムに実行させるコンピュータプログラム。
【請求項4】
少なくとも一つの表に対するデータ問合を処理するにあたり、
データ問合内容に応じて前記データ問合に前記検索キーを利用した選択演算を付与する問合加工処理と、
前記加工されたデータ問合を利用して複数の前記ノードで並列に前記データ問合を処理する問合実行処理とを、
さらに有する請求項3に記載のコンピュータプログラム。
【請求項5】
表形式の行データを少なくとも一つの属性値に基づいて複数のノードに配分し、それぞれの前記ノードで配分された前記行データの集まりを管理するデータ処理システムのデータ処理方法であって、
前記行データを複数の前記ノードに配分するときに列に入力されている属性値をデータ配分条件とする分割指示動作と、
データ配分条件とされた属性値の配分先ノードを決定するデータ配分先決定動作と、
前記データ配分条件に対応して複数の前記ノードに配分される前記行データごとに前記列を意味する属性を検索キーとするキー生成動作と、
生成された前記検索キーを前記行データに属性として付与するキー付与動作と、
前記検索キーが付与された前記行データを複数の前記ノードの少なくとも一つに登録するデータ登録動作と、
を有するデータ処理方法。
【請求項6】
少なくとも一つの表に対するデータ問合を処理するにあたり、
データ問合内容に応じて前記データ問合に前記検索キーを利用した選択演算を付与する問合加工動作と、
前記加工されたデータ問合を利用して複数の前記ノードで並列に前記データ問合を処理する問合処理動作とを、
さらに有する請求項5に記載のデータ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−84098(P2012−84098A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−232069(P2010−232069)
【出願日】平成22年10月15日(2010.10.15)
【出願人】(301021533)独立行政法人産業技術総合研究所 (6,529)
【Fターム(参考)】