JP2018041322A - 異種データベース管理装置、方法及びプログラム - Google Patents

異種データベース管理装置、方法及びプログラム Download PDF

Info

Publication number
JP2018041322A
JP2018041322A JP2016175716A JP2016175716A JP2018041322A JP 2018041322 A JP2018041322 A JP 2018041322A JP 2016175716 A JP2016175716 A JP 2016175716A JP 2016175716 A JP2016175716 A JP 2016175716A JP 2018041322 A JP2018041322 A JP 2018041322A
Authority
JP
Japan
Prior art keywords
data
database
rule
request
information
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.)
Granted
Application number
JP2016175716A
Other languages
English (en)
Other versions
JP6674871B2 (ja
Inventor
真彦 辻
Masahiko Tsuji
真彦 辻
真一郎 永徳
Shinichiro Naganori
真一郎 永徳
片山 幸久
Yukihisa Katayama
幸久 片山
昂平 高橋
Kohei Takahashi
昂平 高橋
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016175716A priority Critical patent/JP6674871B2/ja
Publication of JP2018041322A publication Critical patent/JP2018041322A/ja
Application granted granted Critical
Publication of JP6674871B2 publication Critical patent/JP6674871B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】システム運用者とクライアントとが異なる場合適切な格納先DB種別の指定ができる。
【解決手段】異種データベース管理装置は、データ特性分析部と、ルール生成部と、を備えている。データ特性分析部は、クライアントから受け付けた1以上のリクエストに関するデータをテーブルIDごとに含んだリクエスト履歴テーブルと、データ実体をデータIDごとに含んだデータテーブルを取得し、これからテーブルIDごとに1以上の特性情報項目に対する値を含んだ特性情報テーブルを生成する。ルール生成部は、特性情報テーブルから1以上の特性情報を抽出しこれらの特性情報を、1以上の情報からテーブルIDごとに格納先として最適なデータベースを選択する判定ロジックに適用して、テーブルIDごとに振り分ける際に最適なデータベースを対応付けるルールテーブルを生成する。
【選択図】図1

Description

この発明は、異種データベース管理装置、方法及びプログラムに関する。
異なる複数のテーブルを複数の種別の異なるデータベース(DBとも略す)に管理する技術としてマルチDB技術がある。従来では、テーブル生成時にユーザが明示的に格納先のDBの種別を指定することで、複数のDBと管理サーバ(システムと呼ぶこともある)との間でデータの読み書きを可能とする(例えば、非特許文献1参照)。
IBM(2002) Garlic: A New Flavor of Federated Query Processing for DB2
しかし、システム運用者とクライアントが異なる場合、システム運用者はテーブルに含まれるそれぞれのデータの非単体特性(データ単体からは判明しない特性)を把握できず、またクライアントはシステム構成及びDB構成を把握できないため、データの非単体特性に応じてデータの格納先のDB種別を指定することが困難であるという課題がある。
この発明は上記事情に着目してなされたもので、その目的とするところは、システム運用者とクライアントとが異なる場合でも異なる複数のテーブルを格納先の適切なDB種別の指定ができる異種データベース管理装置、方法及びプログラムを提供することにある。
上記目的を達成するためにこの発明の観点は、以下のような構成要素を備えている。すなわち、異種データベース管理装置は、データ特性分析部と、ルール生成部と、を備えている。データ特性分析部は、クライアントから受け付けた1以上のリクエストに関するデータをテーブルIDごとに含んだリクエスト履歴テーブルと、データ実体をデータIDごとに含んだデータテーブルを取得し、それらからテーブルIDごとに1以上の特性情報項目に対する値を含んだ特性情報テーブルを生成する。ルール生成部は、特性情報テーブルから1以上の特性情報を抽出しこれらの特性情報を、1以上の情報からテーブルIDごとに格納先として最適なデータベースを選択する判定ロジックに適用して、テーブルIDごとに振り分ける際に最適なデータベースを対応付けるルールテーブルを生成する。
この発明によれば、システム運用者とクライアントとが異なる場合でも要件の異なる複数のデータを適切な格納先DB種別の指定ができる異種データベース管理装置、方法及びプログラムを提供することができる。
実施形態に係る異種データベース管理装置を示すブロック図。 図1の振り分け情報DBが事前処理として各テーブルの定義を行うことを示すシーケンス図。 振り分けルールを示すルールテーブルを更新することを示すシーケンス図。 ルールテーブルを定期的に更新することを示すシーケンス図。 データテーブルを永続化することを示すシーケンス図。 図1のSecondary−DBの更新を示すシーケンス図。 リクエストの振り分けを示すシーケンス図。 特性情報テーブルの一例を示す図。 判定ロジックの一例を示す図。 ルールテーブルの一例を示す図。 リクエスト履歴テーブルの一例を示す図。
以下、図面を参照してこの発明に係わる実施形態の異種データベース管理装置、方法及びプログラムを説明する。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。
本実施形態の異種データベース管理装置(以下、異種DB管理装置と称す)について図1を参照して説明する。
本実施形態の異種DB管理装置100は、振り分けエンジン部101、振り分け情報DB102、メモリ103、データ特性分析部104、ルール生成部105、永続化部106、アダプタA107、アダプタZ108、DB−A109、DB−Z110を備えている。本実施形態の異種DB管理装置は、複数種別のデータベースを対象とする。異種データベース管理装置は、上述したシステムに対応している。
振り分けエンジン部101は、データ特性分析部104が生成した振り分けルールに従って、リクエスト先となるDBまたはメモリを決定する。振り分けエンジン部101は、クライアントのリクエストに含まれるデータのURI(Uniform Resource Identifiers)情報からテーブル名を特定し、振り分けルールにテーブル名ごとに登録された格納先DB情報を取得する。
また、振り分けエンジン部101がデータテーブルの新規定義リクエストを受けた場合及び振り分けルールの更新依頼を受けた場合には、振り分けエンジン部101は以下のように動作する。(1)ルールテーブル及びリクエスト履歴テーブルに該当するテーブルのIDを持つデータを追加する。その際、ルールテーブル上の当該データテーブルIDのPrimary−DB(プライマリーデータベース)をメモリに設定する。(2)クライアントからリクエストを受けると、データをメモリ103上のデータテーブルに読み書きする。さらにリクエスト履歴テーブルを更新する。(3)一定量のデータがメモリ103上に蓄積されると、データ特性分析部104にデータ特性分析を依頼する。なお、データテーブルは、クライアントのデータテーブルを定義する度に生成され通常複数ある。また、テーブルIDは、複数あるデータテーブルを識別するためのものである。各データテーブルには、複数のデータ実体を記録するため、データ実体を特定するデータIDを、各データ実体に対応付けている。
この他の場合には、振り分けエンジン部101は、取得した格納先DBにデータのリクエスト先を送信する。ここでは、データの新規作成リクエストの場合、Primary−DBを参照先とする。データの新規作成リクエスト以外の場合、Primary−DBとSecondary−DB(セカンダリーデータベース)を参照先とする。複数のテーブルを対象としたリクエストの場合、格納先DBごとにリクエストを分解し、各リクエストを実行する。
メモリ103は、クライアントからのデータテーブル及びリクエストを一時的に格納する。なお、これらのデータテーブル及びリクエストはデータ特性分析部104の指示に従い永続化部106によって各データベースへ振り分けられる。なお便宜上、ここではメモリ103を設けたが、異種DB管理装置100内の各部がそれぞれ情報格納部(バッファ、メモリ等)を持ちそこで、種々のデータを格納していてもよい。データの格納に関しては様々な変形版が考えられ、本実施形態の異種DB管理装置が機能すればその変形版を採用してもよい。
データ特性分析部104は、テーブル単位でデータの単体特性及び非単体特性を分析する。単体特性とは、データ単体の特性であり、例えばサイズや属性数がある。非単体特性とは、データ単体からは知り得ない特性であり、例えばリクエスト頻度や検索時の条件数がある。データ特性分析部104は、振り分けエンジン部101からの依頼時またはスケジュールによって指定されたタイミングで以下を実行する。なお、スケジュールは、外部ファイルから取得してもよい。(1)振り分け情報DB102から該当するデータテーブルのリクエスト履歴を取得及び分析し、このデータテーブルの特性情報を生成する。(2)生成した特性情報を引数に、ルール生成部105に振り分けルールの生成を依頼する。振り分けルールが生成されると、振り分け情報DB102からこのデータテーブルに関するリクエスト履歴を削除し、振り分けルールの更新を行う。(3)最後に、メモリ103上に保持されたデータテーブルの永続化を永続化部106に依頼する。
DB−A109からDB−Z110は、それぞれが互いに異種のデータベースであり、それぞれアダプタA107からアダプタZ108によって振り分けエンジン部101に接続されている。図1ではデータベースは2つしか記載していないが、通常データベースは2以上で多数ある。
ルール生成部105は、最適な蓄積DB(DB−A109からDB−Z110のいずれか)を判定する判定ロジックを用い、テーブルごとに格納先DBを振り分ける振り分けルールを生成する。なお、判定ロジックは、ルール生成部105に格納されていてもよいし、外部ファイルから取得してもよい。またルール生成部105は、クライアントからのリクエストを受け付ける前に、ルールテーブルを振り分け情報DB上に定義する。
ルール生成部105は、データ特性分析部104が分析したテーブルの特性情報をデータ特性分析部104から取得し、取得した特性情報と判定ロジックから、当該テーブルのデータを格納するDBを振り分ける振り分けルール(図10のルールテーブルがそれに対応する)を生成する。振り分けルールは、テーブルごとにPrimary−DBとSecondary−DBを設定する。Primary−DBは、テーブルに含まれるデータを格納する。そして、データの生成時にはPrimary−DBを参照先とし、データの取得/更新/削除/検索時には、Primary−DBとSecondary−DBの両方を参照先とする。Secondary−DBは定期的にデータの有無を確認する等して、データが無くなった場合にはSecondary−DBを振り分けルールから削除する。
永続化部106は、ルール生成部105による振り分けルールの生成が完了したタイミング、または振り分け情報DB102による振り分けルールの更新が完了したタイミングで、メモリ103上のデータの実体を振り分けルールに従って異種DBに移動またはコピーし永続化する。永続化部106は、メモリ103上のデータの書き込み処理を振り分けエンジン部101に依頼する。
振り分け情報DB102は、リクエストの種類(データの生成、更新、取得、削除、及び検索)のうちの属性(例えば、回数、時刻、合計値、条件数)を1以上含むリクエスト履歴テーブル、特性情報を含むテーブルである特性情報テーブル、及び振り分けルールを含むルールテーブルを定義し、さらに定義されたそれらのテーブルにデータを格納し蓄積する。なお、振り分けルールテーブルは、テーブル名(テーブルIDで示してもよい)に格納先DBであるPrimary−DBとSecondary−DBとを紐付けた情報を含む。
次に、振り分け情報DB102が事前処理として各テーブルの定義を行うことについて図2を参照して説明する。
データ特性分析部104がリクエスト履歴テーブルの作成を振り分け情報DB102に依頼する(ステップS201)。振り分け情報DB102がリクエスト履歴テーブルの定義を行い(ステップS202)、その定義を行った旨をデータ特性分析部104に知らせる。リクエスト履歴テーブルは、テーブル名の項目と、リクエスト内容を示す1以上の項目と、が設定されている。リクエスト履歴テーブルについては後に図11を参照して説明する。
同様に、データ特性分析部104が特性情報テーブルの作成を振り分け情報DB102に依頼する(ステップS203)。振り分け情報DB102が特性情報テーブルの定義を行い(ステップS204)、その行った旨をデータ特性分析部104に知らせる。特性情報テーブルは、テーブル名の項目と、データに関する特性情報を示す1以上の項目とが設定されている。特性情報テーブルについては後に図8を参照して説明する。
さらに同様に、データ特性分析部104がルールテーブルの定義を振り分け情報DB102に依頼する(ステップS205)。振り分け情報DB102がルールテーブルの定義を行い(ステップS206)、その行った旨をデータ特性分析部104に知らせる。ルールテーブルは、テーブル名の項目と、Primary−DBとSecondary−DBとの項目が設定されている。ルールテーブルについては後に図10を参照して説明する。
次に、データテーブルを新規生成する場合、またはリクエストを異種DB管理装置100へ送信する場合の異種DB管理装置100での動作について図3を参照して説明する。
振り分けエンジン部101がクライアントからデータテーブルの新規定義の依頼を受け、振り分けエンジン部101は上述した動作を行う(ステップS301)。これはデータテーブルの新規定義及び当該データテーブルのテーブルIDを定義することである。ルールテーブル及びリクエスト履歴テーブルのそれぞれに依頼されたデータテーブルのデータテーブルIDを追加し、情報DB102に蓄積する(ステップS302、ステップS303)。その旨を振り分けエンジン部101及びクライアントに知らせる(ステップS305)。これでクライアントからのリクエスト受け付ける準備ができたことになる。
クライアントがリクエストを異種DB管理装置100に送信すると(ステップS305)、リクエストに応じた処理を実行する。振り分けエンジン部101が、実行した結果のデータを含んだデータテーブルをメモリ103にキャッシュするように指示し(ステップS306)、メモリ103がそのデータテーブルを格納する(ステップS307)。
その後振り分けエンジン部101がメモリ103に格納されたデータテーブルに基づいて振り分け情報DB102がリクエスト履歴テーブルを更新するように指示し(ステップS308)、振り分け情報DB102がリクエスト履歴テーブルを更新する(ステップS309)。この更新は、該当するテーブルIDに対応する項目の更新である。その旨をクライアントに送信する(ステップS310)。振り分けエンジン部101は、データ特性分析部104へデータ特性分析の実施を依頼する(ステップS311)。この依頼は、例えばメモリ103に蓄積したメモリ量が一定値を超えた場合に行う。
データ特性分析部104が振り分け情報DB102から更新されたリクエスト履歴テーブルを取得し、該当するテーブルID(これは複数でもよい)に対してデータ分析し、特性情報テーブルを生成する(ステップS313)。このように、データの非単体特性を分析し特性情報テーブルを得て、非単体特性を持つデータに対しても格納先DBの種別を指定することができる。この生成された特性情報テーブルをルール生成部105が取得し、特性情報テーブルから情報を抽出し(図9で説明する)判定ロジックを適用して、該当するテーブルIDに対応するPrimary−DBにするデータベース名、及びSecondary−DBにするデータベース名を算出し、ルールテーブルの該当テーブルIDに対応する項目内容を生成する。換言すれば、判定ロジックの結果、テーブル名と格納先DB(Primary−DBまたはSecondary−DB)の組み合わせを振り分けルールとして保持する。したがって、このルールテーブルによって種別の異なるDBの特性を考慮した振り分けルールを生成することができるようになる。
ルール生成部105はルールテーブルが作成されたことをデータ特性分析部104及び振り分け情報DB102に伝える(ステップS315)。注目している該当テーブルIDの振り分けルールが生成できたので、振り分け情報DB102はステップS309で更新したリクエスト履歴テーブルは不要なので削除する(ステップS316)。振り分け情報DB102は、ステップS314で生成されたルールテーブルの該当テーブルIDに対応する項目内容をルールテーブルに追加し(図10では行を追加することに対応する)に追加してルールテーブルを更新する(ステップS317)。振り分けルールであるルールテーブルを自動的に異種DB管理装置が生成することによって、クライアントが非単体特性を持つデータに対して格納先DBを把握または指定することができたとして、この把握または指定のための設計作業を行う必要がなくなる。
ステップS309での該当ルールIDに対してルールテーブルの更新が完了した旨をデータ特性分析部104及び振り分けエンジン部101に知らせる。
次に、判定ロジックを適用してルールテーブルを更新することについて図4を参照して説明する。判定ロジックは例えば、データテーブルが生成された後1度のみ実行する設定と、定期的に複数回実行する設定とがある。判定ロジックを定期的に複数回実行する設定の場合を説明する。
データ特性分析部104が、振り分け情報DB102へ定期的な分析を依頼する(ステップS401)。この依頼は特定の複数のテーブルIDに対する分析でもよいし、1つのテーブルIDについての分析でもよい。すなわち、1以上のテーブルIDについて分析することができる。振り分け情報DB102はルールテーブルの更新を受け付け(ステップS402)、データ特性分析部104へその旨を伝える。
分析対象のテーブルIDの振り分け先を一時的にメモリ103とする。対象となるテーブルIDについて図3のステップS305から処理を開始する。最終的にステップS317でルールテーブルの該当テーブルIDに対応する格納先DBを示した項目内容(判定結果)を得ることができる。この判定結果が前回の判定結果と格納先DBが異なる場合、前回の判定結果の格納先DBをSecondary−DBとし、最新の判定結果をPrimary−DBとする。なお、判定ロジックを1度のみ実行する設定の場合及び、複数回実行するが判定結果が合致する場合には、Secondary−DBの値は存在しない。
次に、メモリ103に格納されているデータテーブルごとに対応するデータベースに永続化することについて図5を参照して説明する。
図3のルールテーブルの更新がなされた後に、振り分け情報DB102からデータ特性分析部104にその旨の知らせが送信され、これを受けてデータ特性分析部104はデータの永続化の処理に入り永続化部106へメモリ103が格納しているデータを永続化する処理を開始する(ステップS501)。永続化部106がメモリ103内にあるデータを取得する(ステップS502)。図3の処理で得ているルールテーブルに基づいて、メモリ103にあるデータテーブルごとに対応するデータ実体をDB−A109からDB−Z110のいずれかのデータベースへデータテーブルを移動させ(ステップS504、506)そこに格納し(永続化:ステップS505、S507)永続化した旨を永続化部106へ返す。DB−A109からDB−Z110は複数であれば任意の個数あり、それぞれの仕様も任意あるが、特性情報テーブルの項目に対応する仕様はそれぞれのデータベースで異なっていることが想定される。換言すれば、図9の判定ロジックで選択が多様になるようなデータベースの仕様であればよい。
次に、Secondary−DBの更新について図6を参照して説明する。
ルール生成部105は、振り分けルールを振り分け情報DB102から取得する(ステップS601)。ルール生成部105は、取得した振り分けルールに基づいて、Secondary−DBであるデータベースを特定しそのデータベース名を抽出する(ステップS602)。ルール生成部105が、抽出されたSecondary−DBであるデータベースのそれぞれにデータ実体が格納されているかどうかを検索する(ステップS603)。その後、ルール生成部105が、抽出された全てのSecondary−DBそれぞれにデータが格納されているかどうかを判定して更新するかどうかを判定する(ステップS604)。この更新判定では、データが格納されていないDBはルールテーブル(振り分けルール)から記載を削除し、一方、1つでもデータが格納されているDBはそのままルールテーブルに記載を残しておく。その後、ルール生成部105がこの更新判定の結果を振り分け情報DB102に送信し、振り分け情報DB102がルールテーブルを更新する(ステップS606)。
ここで、リクエストの送信からリクエストを実行する前にリクエストがどのように振り分けられるかについて図7を参照して説明する。ここでは、既にルールテーブル(すなわち、振り分けルール)が決定している場合である。
クライアントがリクエストを送信し振り分けエンジン部101が受け付けると、振り分けエンジン部101がリクエストに含まれるデータのURI情報からテーブル名を特定し、振り分け情報DB102に格納されているルールテーブル(振り分けルールが記載)にテーブル名ごとに登録された格納先DB情報を取得する(ステップS702)。その後、振り分け先がDB−A109であった場合にはDB−A109へ送信し(ステップS703)、DB−A109でリクエストが実行される(ステップS704)。一方、振り分け先がDB−Z110であった場合にはDB−Z110へ送信し(ステップS705)、DB−Z110でリクエストが実行される(ステップS706)。
ここで、特性情報テーブルについて一具体例である図8を参照して説明する。
特性情報テーブルは、データ特性分析部104が、メモリ103に格納されているデータテーブルと、振り分けエンジン部101に格納されて更新されているリクエスト履歴テーブルから作成する。リクエスト履歴テーブルは、後に図11を参照して詳細に説明するが、リクエストの統計情報である次のものをテーブルIDごとに格納している。このリクエストの統計情報は、例えば、データの生成回数、最新及び最古のデータ生成リクエストの受信時刻、データの更新回数、最新及び最古のデータ更新リクエストの受信時刻、データの取得回数、最新及び最古のデータ取得リクエストの受信時刻、削除されたデータの生成時刻、削除されたデータの削除時刻、データの検索回数、及び検索クエリの条件数(リスト形式)を含んでいる。
特性情報テーブルは、テーブルに格納したデータの単体特性、非単体特性を表現する項目で構成される。例えば以下の(1)から(6)のうちの1以上を含む。(1)テーブルにおけるデータの合計生成頻度(例えば、10(回/時)):リクエスト履歴テーブルからデータの生成回数及び最新/最古の生成時刻を取得し、生成頻度を算出する。(2)テーブルにおけるデータの合計更新頻度(例えば、1(回/時)):リクエスト履歴テーブルからデータの更新回数及び最新/最古の更新時刻を取得し、更新頻度を算出する。(3)テーブルにおけるデータの合計取得頻度(例えば、10(回/時)):リクエスト履歴テーブルからデータの取得回数及び最新/最古の取得時刻を取得し、生成頻度を算出する。(4)テーブルにおけるデータの平均生存時間(例えば、148(時間)):リクエスト履歴テーブルから総生存時間及び削除回数を取得し、生存時間の平均値を算出する。(5)テーブルにおけるデータの平均サイズ(例えば、1000(KB)):データテーブルから各データのデータサイズを取得する。平均値を算出する。(6)テーブルにおける検索クエリの平均条件数:リクエスト履歴テーブルから総検索条件数及び検索回数を取得し、検索条件の平均値を算出する。(7)テーブルにおけるデータの平均属性数:データテーブルから各データの属性数を取得する。平均値を算出する(例えば、10(属性))。
次に、ルール生成部105が振り分けルール(ルールテーブル)を生成するための判定ロジックについて図9を参照して説明する。
判定ロジックは、ステップS312でデータ特性分析部104が分析して生成し特性情報テーブルから、特性情報項目の1つ以上を用いてルールテーブルを得るためのロジックである。そのロジックの一例が図9に示されている。図9の例では、まず、平均データサイズの大きさで分け、平均データサイズが第1閾値(ここでは1000[KB])よりも小さいかどうか判定する(ステップS901)。ステップS901で平均データサイズが第1閾値よりも小さいと判定された場合には、データの合計生成頻度が合計更新頻度よりも大きいかどうか判定し(ステップS902)、ステップS901で平均データサイズが第1閾値よりも小さくないと判定された場合には、平均データサイズが第2閾値(8000[KB])よりも小さいかどうか判定する(ステップS903)。
ステップS902でデータの合計生成頻度が合計更新頻度よりも大きい場合には、データの合計生成頻度が第3閾値よりも大きいかどうかを判定し(ステップS904)、ステップS902でデータの合計生成頻度が合計更新頻度よりも大きくない場合には、データのサービス頻度が所定値(X)であるかどうかを判定する(ステップS905)。
ステップS904でデータの合計生成頻度が第3閾値よりも大きい場合にはデータベースAを採用し、ステップS904でデータの合計生成頻度が第3閾値よりも大きくない場合にはデータベースBを採用する。また、ステップS905でデータのサービス頻度が所定値である場合にはデータベースBを採用し、ステップS905でデータのサービス頻度が所定値でない場合にはデータベースCを採用する。さらに、ステップS903で平均データサイズが第2閾値よりも小さい場合にはデータベースDを採用し、ステップS903で平均データサイズが第2閾値よりも小さくない場合にはデータベースEを採用する。
この判定ロジックに対応するテーブルIDの特性情報テーブルを適用することによって、ルール生成部105がこのテーブルIDに対応するPrimary−DBを決定することができ、テーブルIDごとにこの判定ロジックを適用すれば、図10に示すルールテーブルを作成することができる。図10は、ルール生成部105によって得られる振り分けルールを示すルールテーブルである。図10の例では、テーブル名(テーブルID)が「userTable001」「userTable002」「userTable003」及び「userTable004」では、それぞれPrimary−DBが「A」「B」「C」及び「D」となり、Secondary−DBが「なし」「なし」「なし」及び「A、B」となることを示している。
次に、リクエスト履歴テーブルについて図11を参照して説明する。
リクエスト履歴テーブルは、(1)データの生成リクエスト、(2)データの更新リクエスト、(3)データの取得リクエスト、(4)データの削除リクエスト、及び(5)データの検索リクエストの情報のうち少なくとも1つ以上を保持する。
(1)データの生成リクエストを受信した場合に、以下の項目を更新する。1.データの生成回数(回)。ルールテーブルに格納された生成回数を+1加算する。2.最新/最古の生成時刻(時刻)。データ生成回数が0である場合に、最新/最古の生成時刻を更新する。データ生成回数が0ではない場合に、最新生成時刻を更新する。3.データの生成時刻({ID:時刻})。データIDとデータ生成時刻の組を追加する。なお、データテーブル上に生成時刻を記録してもよい。
(2)データの更新リクエストを受信した場合に、以下の項目を更新する。1.データの更新回数(回)。ルールテーブルに格納された更新回数を+1加算する。2.最新/最古の更新時刻(時刻)。データ更新回数が0である場合に、最新/最古の更新時刻を更新する。データ更新回数が0ではない場合に、最新の更新時刻を更新する。
(3)データの取得リクエストを受信した場合に、以下の項目を更新する。1.データの取得回数(回)。ルールテーブルに格納された取得回数を+1加算する。2.最新/最古の取得時刻(時刻)。データ取得回数が0である場合に、最新/最古の取得時刻を更新する。データ取得回数が0ではない場合に、最新の取得時刻を更新する。
(4)データの削除リクエストを受信した場合に、以下の項目を更新する。1.削除回数(回)。ルールテーブルに格納された削除回数を+1加算する。2.生存時間の合計値(時間)。ルールテーブルに格納された生存時間に、削除対象の生存時間を加算する。生存時間は、データの生成時刻と削除リクエストの受信時刻の減算から算出する。3.データ生成時刻(時刻)。ルールテーブルに格納されたデータ生成時刻から削除されたデータのIDと合致するデータID/生成時刻情報を削除する。
(5)データの検索リクエストを受信した場合に、以下の項目を更新する。1.検索回数(回)。ルールテーブルに格納された生成回数を+1加算する。2.検索条件数の総和(数)。ルールテーブルに格納された属性数に、生成リクエストに含まれるデータの属性数を加算する。
以上の情報を含んだ具体的な一例が図11である。
以上の実施形態に係る異種データベース管理装置によれば、サイズや属性数などのデータ単体の「単体特性」とは別に、クエリ頻度や検索方法などのデータ単体からはわらない「非単体特性」を持つデータであっても、ルールテーブルがデータIDごとに種別の異なる格納先となるデータベースを決定するので、クライアントとデータベースの構成を熟知しているシステム運用者とが異なる場合でもデータごとに適切な格納先データベースを指定することができる。したがって、クライアントはデータベースの構成を知らなくても、クライアントからの非単体特性を持つリクエストでも、適切なデータベースを格納先に指定することができる。
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
100…異種DB管理装置、101…振り分けエンジン部、102…振り分け情報DB、103…メモリ、104…データ特性分析部、105…ルール生成部、106…永続化部、107…アダプタA、108…アダプタZ、109…データベースA、110…データベースB。

Claims (8)

  1. クライアントから受け付けた1以上のリクエストに関するデータをテーブルIDごとに含んだリクエスト履歴テーブルと、データ実体をデータIDごとに含んだデータテーブルとを取得し、このデータテーブルからテーブルIDごとに1以上の特性情報項目に対する値を含んだ特性情報テーブルを生成するデータ特性分析部と、
    前記特性情報テーブルから1以上の特性情報を抽出しこれらの特性情報を、1以上の情報からテーブルIDごとに格納先として最適なデータベースを選択する判定ロジックに適用して、テーブルIDごとに振り分ける際に最適なデータベースを対応付けるルールテーブルを生成するルール生成部と、を備える異種データベース管理装置。
  2. 前記ルールテーブルは、テーブルIDごとにプライマリーデータベースとセカンダリーデータベースとを設定する請求項1に記載の異種データベース管理装置。
  3. 前記ルールテーブルに従って、一時的に格納しているデータの実体を、対応するデータベースに書き込む永続化部をさらに備える請求項1または2に記載の異種データベース管理装置。
  4. 前記ルールテーブルを取得し前記リクエストに含まれるデータのURI情報からテーブルIDを特定し、ルールテーブルに従って当該テーブルIDの格納先データベースにリクエストを送信し、新規作成リクエストの場合にプライマリーデータベースを格納先とし、新規作成以外のリクエストの場合にプライマリーデータベースとセカンダリーデータベースを格納先とする請求項1から3のいずれか1項に記載の異種データベース管理装置。
  5. クライアントから受け付けた1以上のリクエストに関するデータをテーブルIDごとに含んだリクエスト履歴テーブルと、データ実体をデータIDごとに含んだデータテーブルとを取得し、このデータテーブルからテーブルIDごとに1以上の特性情報項目に対する値を含んだ特性情報テーブルを生成するステップと、
    前記特性情報テーブルから1以上の特性情報を抽出しこれらの特性情報を、1以上の情報からテーブルIDごとに格納先として最適なデータベースを選択する判定ロジックに適用して、テーブルIDごとに振り分ける際に最適なデータベースを対応付けるルールテーブルを生成するステップと、を備える異種データベース管理方法。
  6. 前記ルールテーブルに従って、一時的に格納しているデータの実体を、対応するデータベースに書き込むステップをさらに備える請求項5に記載の異種データベース管理方法。
  7. 前記ルールテーブルを取得し前記リクエストに含まれるデータのURI情報からテーブルIDを特定し、ルールテーブルに従って当該テーブルIDの格納先データベースにリクエストを送信し、新規作成リクエストの場合にプライマリーデータベースを格納先とし、新規作成以外のリクエストの場合にプライマリーデータベースとセカンダリーデータベースを格納先とする請求項5または6に記載の異種データベース管理方法。
  8. コンピュータに、請求項5から7のいずれか1項に記載の異種データベース管理方法の各ステップを実行させるためのプログラム。
JP2016175716A 2016-09-08 2016-09-08 異種データベース管理装置、方法及びプログラム Active JP6674871B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016175716A JP6674871B2 (ja) 2016-09-08 2016-09-08 異種データベース管理装置、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016175716A JP6674871B2 (ja) 2016-09-08 2016-09-08 異種データベース管理装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2018041322A true JP2018041322A (ja) 2018-03-15
JP6674871B2 JP6674871B2 (ja) 2020-04-01

Family

ID=61626070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016175716A Active JP6674871B2 (ja) 2016-09-08 2016-09-08 異種データベース管理装置、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6674871B2 (ja)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078903A (ja) * 1996-09-04 1998-03-24 Hitachi Ltd データ分散設計支援装置
JP2000267903A (ja) * 1999-03-16 2000-09-29 Nec Corp 複数性質別データ格納装置
JP2006221513A (ja) * 2005-02-14 2006-08-24 Hitachi Ltd 計算機システムにおけるデータ配置設定
JP2007310569A (ja) * 2006-05-17 2007-11-29 Hitachi Ltd 情報配置決定方法の評価方法及び評価プログラム
JP2009122966A (ja) * 2007-11-15 2009-06-04 Nomura Research Institute Ltd データベース振分装置、データベース振分方法、プログラム、および記録媒体
JP2013030035A (ja) * 2011-07-29 2013-02-07 Nippon Telegr & Teleph Corp <Ntt> 呼処理データ保存方法、呼処理データ振り分け装置およびプログラム
JP2013065104A (ja) * 2011-09-15 2013-04-11 Toshiba Corp 負荷分散システム、データアクセス装置、及び負荷分散方法
JP2013065120A (ja) * 2011-09-15 2013-04-11 Toshiba Corp 負荷分散システム、データアクセス装置、及び負荷分散方法
JP2015132972A (ja) * 2014-01-14 2015-07-23 株式会社野村総合研究所 データ再配置システム
JP2015179449A (ja) * 2014-03-19 2015-10-08 Kddi株式会社 仮想データベースシステム管理装置、管理方法及び管理プログラム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078903A (ja) * 1996-09-04 1998-03-24 Hitachi Ltd データ分散設計支援装置
JP2000267903A (ja) * 1999-03-16 2000-09-29 Nec Corp 複数性質別データ格納装置
JP2006221513A (ja) * 2005-02-14 2006-08-24 Hitachi Ltd 計算機システムにおけるデータ配置設定
JP2007310569A (ja) * 2006-05-17 2007-11-29 Hitachi Ltd 情報配置決定方法の評価方法及び評価プログラム
JP2009122966A (ja) * 2007-11-15 2009-06-04 Nomura Research Institute Ltd データベース振分装置、データベース振分方法、プログラム、および記録媒体
JP2013030035A (ja) * 2011-07-29 2013-02-07 Nippon Telegr & Teleph Corp <Ntt> 呼処理データ保存方法、呼処理データ振り分け装置およびプログラム
JP2013065104A (ja) * 2011-09-15 2013-04-11 Toshiba Corp 負荷分散システム、データアクセス装置、及び負荷分散方法
JP2013065120A (ja) * 2011-09-15 2013-04-11 Toshiba Corp 負荷分散システム、データアクセス装置、及び負荷分散方法
JP2015132972A (ja) * 2014-01-14 2015-07-23 株式会社野村総合研究所 データ再配置システム
JP2015179449A (ja) * 2014-03-19 2015-10-08 Kddi株式会社 仮想データベースシステム管理装置、管理方法及び管理プログラム

Also Published As

Publication number Publication date
JP6674871B2 (ja) 2020-04-01

Similar Documents

Publication Publication Date Title
US8738572B2 (en) System and method for storing data streams in a distributed environment
JP6006267B2 (ja) 索引キーを使用して検索を絞込むシステムおよび方法
US8706710B2 (en) Methods for storing data streams in a distributed environment
US8140495B2 (en) Asynchronous database index maintenance
CN103729471B (zh) 数据库查询方法和装置
US20220083618A1 (en) Method And System For Scalable Search Using MicroService And Cloud Based Search With Records Indexes
US9183267B2 (en) Linked databases
JP6281225B2 (ja) 情報処理装置
JP6135509B2 (ja) 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造
KR20210121315A (ko) 데이터베이스 동기화
Borkar et al. Have your data and query it too: From key-value caching to big data management
US10902069B2 (en) Distributed indexing and aggregation
US11811851B2 (en) Method and system for enforcing governance across multiple content repositories using a content broker
KR20200094074A (ko) 인덱스 관리 방법, 장치, 기기 및 저장 매체
US10019483B2 (en) Search system and search method
JP6084700B2 (ja) 検索システム及び検索方法
JP5684671B2 (ja) 条件検索データ保存方法、条件検索データベースクラスタシステム、ディスパッチャ、およびプログラム
JP6674871B2 (ja) 異種データベース管理装置、方法及びプログラム
KR20190129474A (ko) 데이터 검색 장치 및 방법
US8666972B2 (en) System and method for content management and determination of search conditions
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム
KR101646954B1 (ko) 데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체
US10311155B2 (en) Dynamic master record selection
JP2015176276A (ja) データ処理装置及びデータ処理方法
WO2020225925A1 (ja) 情報処理装置、情報処理システムおよび情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190918

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: 20200303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200309

R150 Certificate of patent or registration of utility model

Ref document number: 6674871

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150