説明

データ処理装置及び方法

【課題】互いに異なる処理システム間における仕様の相違を利用側で意識することなく、それら各システムの併用を可能とするデータベースの技術を提供する。
【解決手段】ユーザ側装置である個別システムU1,U2からタスクを受け付けるタスク受付手段10と、受け付けたタスクに含まれる識別情報に基づいて対応記憶手段25を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断手段20と、判断されたクエリ記述を、判断された前記種別の処理システムに実行させるとともに、その実行のジョブを管理する管理手段(30,40)と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数種類のデータ処理システムを併用する技術に関する。
【背景技術】
【0002】
従来から、多量のデータ処理に特化した情報処理技術として、各種のデータベースシステム(以下「データベース」とも呼ぶ)が用いられている。広義のデータベースは、データを系統的に格納しているデータ集合である狭義のデータベース(以下「DB」と呼ぶ)と、DB内のデータを処理するDBMS(データベース・マネジメント・システム)と、で構成される。
【0003】
このような広義のデータベースでは、行わせる処理すなわちクエリを記述する命令セットや書式などの仕様は、システムの種類に応じて互いに異なっている。例えば、広く用いられているリレーショナルデータベースの代表例では、クエリ記述はSQLで行う。
【0004】
ところで、大規模ウェブサイトにおけるウェブ広告の受注や表示に関するデータのように、組織内の様々な部署やシステムから多様なクエリが発生する環境を念頭に、本出願人は、同じデータベースに対し、特性などが互いに異なる処理システムを複数組み合わせ、それらを個別システム等のユーザ側から利用することでデータ処理を効率化することを計画した。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平8−235112号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のように異なる処理システムを併用しようとする場合に、それらシステムを利用する個別システム等のユーザ側で、ツールやユーザインタフェースなどを設計したり又は端末からのアクセスで直接利用するにあたり、タスクごとにどの処理システムを利用するかを判断した上、処理システム間における仕様の相違を意識してクエリ記述などを行うことも考えられるが、このような対応は負担が大きく実際的でないという問題があった。
【0007】
なお、同種の処理システム間で同種の負荷を分散する提案は存在するが(例えば、特許文献1参照)、データベースについて異種の処理システムの併用に関するものではなかった。
【0008】
本発明は、上記のような従来技術の課題を解決するもので、その目的は、互いに異なる処理システム間における仕様の相違を利用側で意識することなく、それら各システムの併用を可能とするデータベースの技術を提供することである。
【課題を解決するための手段】
【0009】
上記の目的をふまえ、本発明の一態様(1)は、データベースに記憶されているデータを処理するデータ処理装置において、前記データを処理する処理システムであって互いに異なる複数種類の処理システムを備え、前記処理システムが実行するクエリ記述を記憶しているクエリ記憶手段と、ユーザ側装置から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する前記処理システムの種別を対応付けて記憶している対応記憶手段と、ユーザ側装置からタスクを受け付けるタスク受付手段と、受け付けたタスクに含まれる識別情報に基づいて前記対応記憶手段を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断手段と、判断された前記クエリ記述を、判断された前記種別の前記処理システムに実行させるとともに、その実行のジョブを管理する管理手段と、を有することを特徴とする。
【0010】
上記態様を方法という見方から捉えた態様(4)としては、コンピュータで実現され、データベースに記憶されているデータを処理するデータ処理装置であって、前記データを処理する処理システムであって互いに異なる複数種類の処理システムと、前記処理システムが実行するクエリ記述を記憶しているクエリ記憶手段と、ユーザ側装置から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する前記処理システムの種別を対応付けて記憶している対応記憶手段と、を有するデータ処理装置が実行するデータ処理方法において、コンピュータが、ユーザ側装置からタスクを受け付けるタスク受付ステップと、コンピュータが、受け付けたタスクに含まれる識別情報に基づいて前記対応記憶手段を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断ステップと、コンピュータが、判断された前記クエリ記述を、判断された前記種別の前記処理システムに実行させるとともに、その実行のジョブを管理する管理ステップと、を含むことを特徴とする。
【0011】
本発明では、上記のように、ユーザ側からのデータ処理のタスクに含まれる識別情報に応じたクエリ記述のモジュールをそれに対応する処理システムに実行させ、リアルタイム又はバッチなどクエリ記述の処理特性に応じたジョブ管理も提供する。これにより、異種システム間のデータ形式など仕様の相違をユーザ側に対し隠蔽するプラットフォームが実現できるので、ユーザ側においてツールやユーザインタフェースを設計する際には、ユーザ操作に応じた識別情報を組み込んだタスクをプラットフォームへ送信するだけで、異種システムをその仕様の相違を意識することなく併用活用可能となる。この結果、システムごとの特性を組み合わせて活用した合理的なデータ処理機構を構築可能となる。
【0012】
本発明の他の態様(2)は、上記いずれかの態様において、前記複数の処理システムは、リレーショナルデータベースシステムと、大規模分散計算フレームワークで実現される大規模分散データベースシステムと、であることを特徴とする。
【0013】
このように、複数の処理システムとして、多機能性や高速性に優れてリアルタイムなデータ処理に適したリレーショナルデータベースと、大規模ログ解析など特に大容量データの分散処理に適した大規模分散データベース、という互いに補完的な異なった特性を有する処理システムを組み合わせることにより、より多様なデータ処理需要を充足できるデータ処理のプラットフォームを実現することが可能となる。
【0014】
本発明の他の態様(3)は、上記いずれかの態様において、外部の所定のデータベースを原本として、前記複数の処理システムのそれぞれに対応する各形式のデータベースへの変換及び更新差分の反映を行う同期手段(処理)を有することを特徴とする。
【0015】
このように、処理対象とするデータベースがどのようなデータ形式でも、またログ蓄積など他業務の運用負荷との兼ね合いでさらに本装置によるアクセス負荷を増やしたくない場合でも、そのようなデータベースを原本として本装置の各処理システムに対応した個々のデータ形式に変換及び同期して処理対象とすることにより、処理システムの種類に応じたデータ形式など仕様の相違をユーザ側に対し隠蔽(ラッピング)できるとともに、他業務の運用負荷との抵触も回避できるうえ、データ処理時の形式変換で処理効率が低下することも無い。
【0016】
なお、上記の各態様とは異なるカテゴリ(方法に対しプログラム、装置に対し方法など)や、以下に説明するさらに具体的な各態様も、本発明に含まれる。
【発明の効果】
【0017】
本発明によれば、互いに異なる処理システム間における仕様の相違を利用側で意識することなく、それら各システムの併用を可能とするデータベースの技術を提供することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態の構成を示す機能ブロック図。
【図2】本発明の実施形態における各情報(データ)を例示する図。
【図3】本発明の実施形態における処理手順を示すフローチャート。
【図4】本発明の実施形態における画面表示の一例を示す図。
【図5】本発明の実施形態における画面表示の一例を示す図。
【図6】本発明の実施形態における画面表示の一例を示す図。
【発明を実施するための形態】
【0019】
次に、本発明を実施するための形態(「実施形態」と呼ぶ)について、図に沿って説明する。なお、背景技術や課題などで既に述べた内容と共通の前提事項については適宜省略する。
【0020】
〔1.構成〕
本実施形態は、データベースに記憶されているデータを処理するデータ処理装置(以下「本装置」とも呼ぶ)に関するもので、前記データを処理する処理システムであって互いに異なる複数種類の処理システムを備える。この複数種類の処理システムは、本実施形態においては、Oracle(登録商標)などのリレーショナルデータベースシステムと、Hadoopなどの大規模分散計算フレームワークで実現される大規模分散データベースシステムである。
【0021】
より具体的には、データベースシステムは一般に、主にソフトウェアで実現される処理手段と、処理対象となるデータ集合と、を有するが、図1の構成図に示すように、本装置1は、前記リレーショナルデータベースシステムの処理システムとしてRDBMSなどに代表されるリアルタイム処理手段R(処理システムRとも呼ぶこととする)を有し、このリアルタイム処理手段Rは、前記リレーショナルデータベースシステムに応じた形式のデータ集合D1とともにリレーショナルデータベースシステムを実現する。また、本装置1は、前記大規模分散データベースシステムの処理手段として、HIVEなどに代表される分散DB処理手段H(hBASEなどを用いてもよい)を有し、この分散DB処理手段H(処理システムHとも呼ぶこととする)は、前記大規模分散データベースシステムに応じた形式のデータ集合D2とともに、前記大規模分散データベースシステムを実現する。
【0022】
そして、本装置1は、一般的なコンピュータの構成として少なくとも、CPUなどの演算制御部5と、外部記憶装置(HDD等)や主メモリ等の記憶装置6と、通信ネットワーク(図示省略)との通信手段7(LANアダプタなど)と、を有する。また、本装置1は、ユーザ側(図1左下側)となる個別システムU1やU2などに対して、サーバ側として、データ処理の機能を提供するプラットフォームである。さらに、これら個別システムU1やU2は、パーソナルコンピュータ(PC)や携帯電話端末装置などのユーザ端末T(単に「端末T」とも表す)に対し、データ処理要求の入力や結果表示などのためのウェブページなどのインタフェースをサーバ側として提供する役割を持つもので、「ユーザ側装置」とも呼ぶこととする。
【0023】
また、本装置1では、記憶装置6に予め記憶(インストール)した図示しない所定のコンピュータ・プログラムが演算制御部5を制御することで、図1に示す各手段などの要素(20,30など)を実現する。
【0024】
これら各要素のうち、情報の記憶手段は、記憶装置6において各種のファイルや、配列等の変数、システム設定値など任意の形式で実現できる。これら記憶手段のうち、クエリ記憶手段50は、処理システムRが実行するクエリ記述a1,a2…と、処理システムHが実行するクエリ記述b1,b2…を記憶している手段である(図1)。
【0025】
また、対応記憶手段25は、図2に例示するように、ユーザ側装置(個別システムU1,U2)から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する処理システムR又はHの種別を対応付けて記憶している手段である。なお、記憶手段以外の各手段は、以下に説明する情報処理の機能・作用を実現・実行する処理手段である。
【0026】
〔2.作用〕
上記のように構成した本実施形態における処理手順を図3のフローチャートに示す。すなわち、まず、本装置運用当初に同期手段DXが(図1)、原本となる外部の所定の(例えば広告の企画、商品、案件、実績等の)データベースSを原本として、前記複数の処理システムのそれぞれに対応する各形式のデータベースとして、全体を変換したコピーを生成しておき(ステップS01)、運用開始後は、前記各形式のデータベースに対し、夜間など所定のタイミングで(ステップS02:「YES」)更新差分の反映を行う(ステップS03)。
【0027】
より具体的には、同期手段DXは、原本となるデータベースSを基に、リレーショナルデータベースシステムに応じた形式のデータ集合D1と(図1)、大規模分散データベースシステムに応じた形式のデータ集合D2と、を生成し(ステップS01)及び更新差分反映(ステップS03)の対象とする。
【0028】
そして、タスク受付手段10が、ユーザ側装置からAPIなどの手段でタスクを受け付ける(ステップS04)。ユーザ側装置の例は、上に説明したように個別システムU1やU2(図1)であり、これら個別システムU1やU2は、端末Tに対してウェブページなどのユーザインタフェースを通じ、データ抽出などのタスクの受付や処理結果の提供などを行う。
【0029】
例えば、図4は、ユーザ側装置が端末Tからタスクを受け付けるウェブページの一例として条件指定画面を示すものである。この画面の例では、ユーザはマウスカーソルCでラジオボタンB1を選択することにより「定型出力」又は「個別出力」を選択する。「定型出力」は、データ抽出の抽出条件も出力項目も所定の初期値が選択されるものであり、選択後はそのまま「実行」ボタンB2を操作すればよい。
【0030】
「個別出力」の場合は個別のタスクごとに、抽出条件を第1欄P1において、出力項目を第2欄P2において、それぞれテキストボックスやチェックボックスなどで指定したうえ「実行」ボタンB2を操作する。「実行」ボタンB2を操作すると、図5に例示するような条件確認画面を経て、図6に例示するような受付確認画面に進み、個別システムU1やU2はこのように受け付けたタスクをAPIなどの手段でデータ処理装置(本装置)1へ送信する。
【0031】
この場合のAPIは、タスクの識別情報や、抽出条件や出力項目などのパラメータなどを、必要なドメイン名、呼び出す機能名などと組み合わせて

http://○○○.co.jp/api/○○addata?queryid=○○&arg1=・・・

のようにHTTPリクエストの文字列としたものなどが考えられるが、具体的形式はもちろん自由である。
【0032】
このようにタスクを受け付けると(ステップS04)、判断手段20が、受け付けたタスクに含まれる識別情報に基づいて対応記憶手段25を参照することにより、クエリ記憶手段50に記憶されているクエリ記述のなかでその識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断し(ステップS05)、判断した種別に応じて(ステップS06)、管理手段であるバッチジョブ管理手段30又はリアルタイムジョブ管理手段40が、判断された前記クエリ記述を、判断された種別の処理システムR又はHに実行させるとともに、その実行のジョブを管理する(ステップS07,S08)。
【0033】
より具体的には、例えば、タスクの識別情報が「0011」の場合、対応記憶手段25に記憶されている情報(図2)に基づき、判断手段20は、クエリ記述が「a1」で、このクエリ記述a1を実行する処理システムの種別が、リアルタイム処理手段Rを意味する「1」と判断する(ステップS05,S06)。この場合、この判断を受けてリアルタイムジョブ管理手段40が、判断された種別の処理システムであるリアルタイム処理手段Rに、判断されたクエリ記述a1を実行させるとともに、必要な監視プロセスを生成するなどにより、その実行のジョブを管理させる(ステップS07)。
【0034】
一方、タスクの識別情報が例えば「0012」の場合、対応記憶手段25に記憶されている情報(図2)に基づき、判断手段20は、クエリ記述が「b2」で、このクエリ記述b2を実行する処理システムの種別が、分散DB処理手段Hを意味する「2」と判断する(ステップS05,S06)。この場合、この判断を受けてバッチジョブ管理手段30が、判断された種別の処理システムである分散DB処理手段Hに、判断された前記クエリ記述b2を実行させるとともに、システム構成上等の必要に応じてその実行のジョブを管理させる(ステップS08)。
【0035】
なお、リレーショナルデータベースのクエリ記述に用いられるSQL(Structured Query Language)については広く知られているので省略するが、Hadoopなどの大規模分散計算フレームワークで実現される大規模分散データベースシステム(例えばHIVE)では、SQLに似たHQL(HIVE Query Language)を用いる。その記述としては

SELECT m.service_name, m.operator
FROM data1 m JOIN data2 y ON (m.xxid = y.xxid);

のような例を挙げることができる。
【0036】
上記のようなデータ処理の結果は、結果提供手段80が本装置1から直接又は個別システムU1やU2を経て、タスクを発した端末Tに提供するが、その提供の態様は自由である。例えば、リレーショナルデータベースなどによるリアルタイム処理の場合は、図4や図5のようなタスクの受付や確認などの画面から、その場で、結果を表示している画面に遷移することが考えられる。
【0037】
また、大規模分散データベースなどによるバッチ処理の場合は、図6の例で示されているようなLAN内の所定のディレクトリ等に結果のファイルを本装置1が処理終了次第保存し、後にそれをユーザが取得する態様や、また、所定の待ち時間後にユーザが個別システムU1やU2にユーザIDなどでログインすると、処理結果を閲覧できるなどの態様でなどが考えられる。なお、適宜な外部システムとの間で各処理システムがデータの授受を行う外部インタフェース手段70を設ければ、より多様なデータ活用が可能となる。
【0038】
〔3.効果〕
以上のように、本実施形態では、ユーザ側からのデータ処理のタスクに含まれる識別情報に応じたクエリ記述のモジュールをそれに対応する処理システムに実行させ、リアルタイム又はバッチなどクエリ記述の処理特性に応じたジョブ管理も提供する。これにより、異種システム間のデータ形式など仕様の相違をユーザ側に対し隠蔽するプラットフォームが実現できるので、ユーザ側においてツールやユーザインタフェースを設計する際には、ユーザ操作に応じた識別情報を組み込んだタスクをプラットフォームへ送信するだけで、異種システムをその仕様の相違を意識することなく併用活用可能となる。この結果、システムごとの特性を組み合わせて活用した合理的なデータ処理機構を構築可能となる。
【0039】
特に、本実施形態では、複数の処理システムとして、多機能性や高速性に優れてリアルタイムなデータ処理に適したリレーショナルデータベースと、大規模ログ解析など特に大容量データの分散処理に適した大規模分散データベース、という互いに補完的な異なった特性を有する処理システムを組み合わせることにより、より多様なデータ処理需要を充足できるデータ処理のプラットフォームを実現することが可能となる。
【0040】
さらに、本実施形態では、処理対象とするデータベースがどのようなデータ形式でも、またログ蓄積など他業務の運用負荷との兼ね合いでさらに本装置によるアクセス負荷を増やしたくない場合でも、そのようなデータベースを原本として本装置の各処理システムに対応した個々のデータ形式に変換及び同期して処理対象とすることにより、処理システムの種類に応じたデータ形式など仕様の相違をユーザ側に対し隠蔽(ラッピング)できるとともに、他業務の運用負荷との抵触も回避できるうえ、データ処理時の形式変換で処理効率が低下することも無い。
【0041】
〔4.他の実施形態〕
なお、上記各実施形態は例示に過ぎず、本発明は、以下に例示するものやそれ以外の他の実施態様も含むものである。例えば、上記実施形態で示した各手段などの要素は、コンピュータの演算制御部に限らず、ワイヤードロジック等に基づく電子回路など他の情報処理機構で実現してもよい。また、各構成図、データの図、フローチャートの図、処理や動作の順序の記述などは例示に過ぎず、各要素の有無や順序、各処理ステップの実行順序、具体的内容などは適宜変更可能である。
【0042】
例えば、データの処理システムは、データベースシステムに限らずデータを処理するどのような種類の電子情報処理組織でもよい。また、タスクをユーザ側から受け付ける手段は、APIには限定されず、

ClientProxy proxy = new ClientProxy();
String[] args = {"apiname", "arg1=xxx",
"arg2=yyy zzz", "arg3=abcd"};
ClientResponse res = proxy.call(args);

のようにTCPのリクエストなどでもよい。
【0043】
また、本発明の装置(本装置1)は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(アプリケーション・プログラム・インタフェース)やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。また、本発明は、端末Tを含むシステム全体や、システム全体に対応する情報処理の方法やコンピュータ・プログラムなどとしても把握することもできる。
【符号の説明】
【0044】
1 データ処理装置(本装置)
5 演算制御部
6 記憶装置
7 通信手段
10 タスク受付手段
20 判断手段
25 対応記憶手段
30 バッチジョブ管理手段
40 リアルタイムジョブ管理手段
50 クエリ記憶手段
a1,a2,b1,b2 クエリ記述
B1 ラジオボタン
B2 「実行」ボタン
C マウスカーソル
D1,D2 データ集合
DX 同期手段
H 分散DB処理手段
P1 第1欄
P2 第2欄
R リアルタイム処理手段
T ユーザ端末(端末)
U1,U2 個別システム

【特許請求の範囲】
【請求項1】
データベースに記憶されているデータを処理するデータ処理装置において、
前記データを処理する処理システムであって互いに異なる複数種類の処理システムを備え、
前記処理システムが実行するクエリ記述を記憶しているクエリ記憶手段と、
ユーザ側装置から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する前記処理システムの種別を対応付けて記憶している対応記憶手段と、
ユーザ側装置からタスクを受け付けるタスク受付手段と、
受け付けたタスクに含まれる識別情報に基づいて前記対応記憶手段を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断手段と、
判断された前記クエリ記述を、判断された前記種別の前記処理システムに実行させるとともに、その実行のジョブを管理する管理手段と、
を有することを特徴とするデータ処理装置。
【請求項2】
前記複数の処理システムは、
リレーショナルデータベースと、
大規模分散計算フレームワークで実現される大規模分散データベースシステムと、
であることを特徴とする請求項1記載のデータ処理装置。
【請求項3】
外部の所定のデータベースを原本として、前記複数の処理システムのそれぞれに対応する各形式のデータベースへの変換及び更新差分の反映を行う同期手段を有することを特徴とする請求項1又は2記載のデータ処理装置。
【請求項4】
コンピュータで実現され、データベースに記憶されているデータを処理するデータ処理装置であって、
前記データを処理する処理システムであって互いに異なる複数種類の処理システムと、
前記処理システムが実行するクエリ記述を記憶しているクエリ記憶手段と、
ユーザ側装置から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する前記処理システムの種別を対応付けて記憶している対応記憶手段と、
を有するデータ処理装置が実行するデータ処理方法において、
コンピュータが、ユーザ側装置からタスクを受け付けるタスク受付ステップと、
コンピュータが、受け付けたタスクに含まれる識別情報に基づいて前記対応記憶手段を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断ステップと、
コンピュータが、判断された前記クエリ記述を、判断された前記種別の前記処理システムに実行させるとともに、その実行のジョブを管理する管理ステップと、
を含むことを特徴とするデータ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate