(57)【要約】【課題】互いに異なる処理システム間における仕様の相違を利用側で意識することなく、それら各システムの併用を可能とするデータベースの技術を提供する。【解決手段】ユーザ側装置である個別システムＵ１，Ｕ２からタスクを受け付けるタスク受付手段１０と、受け付けたタスクに含まれる識別情報に基づいて対応記憶手段２５を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断手段２０と、判断されたクエリ記述を、判断された前記種別の処理システムに実行させるとともに、その実行のジョブを管理する管理手段（３０，４０）と、を有する。【選択図】図１
2011133925.tif 000002
【特許請求の範囲】
【請求項１】
データベースに記憶されているデータを処理するデータ処理装置において、
前記データを処理する処理システムであって互いに異なる複数種類の処理システムを備え、
前記処理システムが実行するクエリ記述を記憶しているクエリ記憶手段と、
ユーザ側装置から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する前記処理システムの種別を対応付けて記憶している対応記憶手段と、
ユーザ側装置からタスクを受け付けるタスク受付手段と、
受け付けたタスクに含まれる識別情報に基づいて前記対応記憶手段を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断手段と、
判断された前記クエリ記述を、判断された前記種別の前記処理システムに実行させるとともに、その実行のジョブを管理する管理手段と、
を有することを特徴とするデータ処理装置。
【請求項２】
前記複数の処理システムは、
リレーショナルデータベースと、
大規模分散計算フレームワークで実現される大規模分散データベースシステムと、
であることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
外部の所定のデータベースを原本として、前記複数の処理システムのそれぞれに対応する各形式のデータベースへの変換及び更新差分の反映を行う同期手段を有することを特徴とする請求項１又は２記載のデータ処理装置。
【請求項４】
コンピュータで実現され、データベースに記憶されているデータを処理するデータ処理装置であって、
前記データを処理する処理システムであって互いに異なる複数種類の処理システムと、
前記処理システムが実行するクエリ記述を記憶しているクエリ記憶手段と、
ユーザ側装置から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する前記処理システムの種別を対応付けて記憶している対応記憶手段と、
を有するデータ処理装置が実行するデータ処理方法において、
コンピュータが、ユーザ側装置からタスクを受け付けるタスク受付ステップと、
コンピュータが、受け付けたタスクに含まれる識別情報に基づいて前記対応記憶手段を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断ステップと、
コンピュータが、判断された前記クエリ記述を、判断された前記種別の前記処理システムに実行させるとともに、その実行のジョブを管理する管理ステップと、
を含むことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種類のデータ処理システムを併用する技術に関する。
【背景技術】
【０００２】
従来から、多量のデータ処理に特化した情報処理技術として、各種のデータベースシステム（以下「データベース」とも呼ぶ）が用いられている。広義のデータベースは、データを系統的に格納しているデータ集合である狭義のデータベース（以下「ＤＢ」と呼ぶ）と、ＤＢ内のデータを処理するＤＢＭＳ（データベース・マネジメント・システム）と、で構成される。
【０００３】
このような広義のデータベースでは、行わせる処理すなわちクエリを記述する命令セットや書式などの仕様は、システムの種類に応じて互いに異なっている。例えば、広く用いられているリレーショナルデータベースの代表例では、クエリ記述はＳＱＬで行う。
【０００４】
ところで、大規模ウェブサイトにおけるウェブ広告の受注や表示に関するデータのように、組織内の様々な部署やシステムから多様なクエリが発生する環境を念頭に、本出願人は、同じデータベースに対し、特性などが互いに異なる処理システムを複数組み合わせ、それらを個別システム等のユーザ側から利用することでデータ処理を効率化することを計画した。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−２３５１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように異なる処理システムを併用しようとする場合に、それらシステムを利用する個別システム等のユーザ側で、ツールやユーザインタフェースなどを設計したり又は端末からのアクセスで直接利用するにあたり、タスクごとにどの処理システムを利用するかを判断した上、処理システム間における仕様の相違を意識してクエリ記述などを行うことも考えられるが、このような対応は負担が大きく実際的でないという問題があった。
【０００７】
なお、同種の処理システム間で同種の負荷を分散する提案は存在するが（例えば、特許文献１参照）、データベースについて異種の処理システムの併用に関するものではなかった。
【０００８】
本発明は、上記のような従来技術の課題を解決するもので、その目的は、互いに異なる処理システム間における仕様の相違を利用側で意識することなく、それら各システムの併用を可能とするデータベースの技術を提供することである。
【課題を解決するための手段】
【０００９】
上記の目的をふまえ、本発明の一態様（１）は、データベースに記憶されているデータを処理するデータ処理装置において、前記データを処理する処理システムであって互いに異なる複数種類の処理システムを備え、前記処理システムが実行するクエリ記述を記憶しているクエリ記憶手段と、ユーザ側装置から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する前記処理システムの種別を対応付けて記憶している対応記憶手段と、ユーザ側装置からタスクを受け付けるタスク受付手段と、受け付けたタスクに含まれる識別情報に基づいて前記対応記憶手段を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断手段と、判断された前記クエリ記述を、判断された前記種別の前記処理システムに実行させるとともに、その実行のジョブを管理する管理手段と、を有することを特徴とする。
【００１０】
上記態様を方法という見方から捉えた態様（４）としては、コンピュータで実現され、データベースに記憶されているデータを処理するデータ処理装置であって、前記データを処理する処理システムであって互いに異なる複数種類の処理システムと、前記処理システムが実行するクエリ記述を記憶しているクエリ記憶手段と、ユーザ側装置から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する前記処理システムの種別を対応付けて記憶している対応記憶手段と、を有するデータ処理装置が実行するデータ処理方法において、コンピュータが、ユーザ側装置からタスクを受け付けるタスク受付ステップと、コンピュータが、受け付けたタスクに含まれる識別情報に基づいて前記対応記憶手段を参照することにより、その識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断する判断ステップと、コンピュータが、判断された前記クエリ記述を、判断された前記種別の前記処理システムに実行させるとともに、その実行のジョブを管理する管理ステップと、を含むことを特徴とする。
【００１１】
本発明では、上記のように、ユーザ側からのデータ処理のタスクに含まれる識別情報に応じたクエリ記述のモジュールをそれに対応する処理システムに実行させ、リアルタイム又はバッチなどクエリ記述の処理特性に応じたジョブ管理も提供する。これにより、異種システム間のデータ形式など仕様の相違をユーザ側に対し隠蔽するプラットフォームが実現できるので、ユーザ側においてツールやユーザインタフェースを設計する際には、ユーザ操作に応じた識別情報を組み込んだタスクをプラットフォームへ送信するだけで、異種システムをその仕様の相違を意識することなく併用活用可能となる。この結果、システムごとの特性を組み合わせて活用した合理的なデータ処理機構を構築可能となる。
【００１２】
本発明の他の態様（２）は、上記いずれかの態様において、前記複数の処理システムは、リレーショナルデータベースシステムと、大規模分散計算フレームワークで実現される大規模分散データベースシステムと、であることを特徴とする。
【００１３】
このように、複数の処理システムとして、多機能性や高速性に優れてリアルタイムなデータ処理に適したリレーショナルデータベースと、大規模ログ解析など特に大容量データの分散処理に適した大規模分散データベース、という互いに補完的な異なった特性を有する処理システムを組み合わせることにより、より多様なデータ処理需要を充足できるデータ処理のプラットフォームを実現することが可能となる。
【００１４】
本発明の他の態様（３）は、上記いずれかの態様において、外部の所定のデータベースを原本として、前記複数の処理システムのそれぞれに対応する各形式のデータベースへの変換及び更新差分の反映を行う同期手段（処理）を有することを特徴とする。
【００１５】
このように、処理対象とするデータベースがどのようなデータ形式でも、またログ蓄積など他業務の運用負荷との兼ね合いでさらに本装置によるアクセス負荷を増やしたくない場合でも、そのようなデータベースを原本として本装置の各処理システムに対応した個々のデータ形式に変換及び同期して処理対象とすることにより、処理システムの種類に応じたデータ形式など仕様の相違をユーザ側に対し隠蔽（ラッピング）できるとともに、他業務の運用負荷との抵触も回避できるうえ、データ処理時の形式変換で処理効率が低下することも無い。
【００１６】
なお、上記の各態様とは異なるカテゴリ（方法に対しプログラム、装置に対し方法など）や、以下に説明するさらに具体的な各態様も、本発明に含まれる。
【発明の効果】
【００１７】
本発明によれば、互いに異なる処理システム間における仕様の相違を利用側で意識することなく、それら各システムの併用を可能とするデータベースの技術を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態の構成を示す機能ブロック図。
【図２】本発明の実施形態における各情報（データ）を例示する図。
【図３】本発明の実施形態における処理手順を示すフローチャート。
【図４】本発明の実施形態における画面表示の一例を示す図。
【図５】本発明の実施形態における画面表示の一例を示す図。
【図６】本発明の実施形態における画面表示の一例を示す図。
【発明を実施するための形態】
【００１９】
次に、本発明を実施するための形態（「実施形態」と呼ぶ）について、図に沿って説明する。なお、背景技術や課題などで既に述べた内容と共通の前提事項については適宜省略する。
【００２０】
〔１．構成〕
本実施形態は、データベースに記憶されているデータを処理するデータ処理装置（以下「本装置」とも呼ぶ）に関するもので、前記データを処理する処理システムであって互いに異なる複数種類の処理システムを備える。この複数種類の処理システムは、本実施形態においては、Ｏｒａｃｌｅ（登録商標）などのリレーショナルデータベースシステムと、Ｈａｄｏｏｐなどの大規模分散計算フレームワークで実現される大規模分散データベースシステムである。
【００２１】
より具体的には、データベースシステムは一般に、主にソフトウェアで実現される処理手段と、処理対象となるデータ集合と、を有するが、図１の構成図に示すように、本装置１は、前記リレーショナルデータベースシステムの処理システムとしてＲＤＢＭＳなどに代表されるリアルタイム処理手段Ｒ（処理システムＲとも呼ぶこととする）を有し、このリアルタイム処理手段Ｒは、前記リレーショナルデータベースシステムに応じた形式のデータ集合Ｄ１とともにリレーショナルデータベースシステムを実現する。また、本装置１は、前記大規模分散データベースシステムの処理手段として、ＨＩＶＥなどに代表される分散ＤＢ処理手段Ｈ（ｈＢＡＳＥなどを用いてもよい）を有し、この分散ＤＢ処理手段Ｈ（処理システムＨとも呼ぶこととする）は、前記大規模分散データベースシステムに応じた形式のデータ集合Ｄ２とともに、前記大規模分散データベースシステムを実現する。
【００２２】
そして、本装置１は、一般的なコンピュータの構成として少なくとも、ＣＰＵなどの演算制御部５と、外部記憶装置（ＨＤＤ等）や主メモリ等の記憶装置６と、通信ネットワーク（図示省略）との通信手段７（ＬＡＮアダプタなど）と、を有する。また、本装置１は、ユーザ側（図１左下側）となる個別システムＵ１やＵ２などに対して、サーバ側として、データ処理の機能を提供するプラットフォームである。さらに、これら個別システムＵ１やＵ２は、パーソナルコンピュータ（ＰＣ）や携帯電話端末装置などのユーザ端末Ｔ（単に「端末Ｔ」とも表す）に対し、データ処理要求の入力や結果表示などのためのウェブページなどのインタフェースをサーバ側として提供する役割を持つもので、「ユーザ側装置」とも呼ぶこととする。
【００２３】
また、本装置１では、記憶装置６に予め記憶（インストール）した図示しない所定のコンピュータ・プログラムが演算制御部５を制御することで、図１に示す各手段などの要素（２０，３０など）を実現する。
【００２４】
これら各要素のうち、情報の記憶手段は、記憶装置６において各種のファイルや、配列等の変数、システム設定値など任意の形式で実現できる。これら記憶手段のうち、クエリ記憶手段５０は、処理システムＲが実行するクエリ記述ａ１，ａ２…と、処理システムＨが実行するクエリ記述ｂ１，ｂ２…を記憶している手段である（図１）。
【００２５】
また、対応記憶手段２５は、図２に例示するように、ユーザ側装置（個別システムＵ１，Ｕ２）から送信されるタスクの識別情報に対し、どの前記クエリ記述を実行すべきか及びそのクエリ記述に対応する処理システムＲ又はＨの種別を対応付けて記憶している手段である。なお、記憶手段以外の各手段は、以下に説明する情報処理の機能・作用を実現・実行する処理手段である。
【００２６】
〔２．作用〕
上記のように構成した本実施形態における処理手順を図３のフローチャートに示す。すなわち、まず、本装置運用当初に同期手段ＤＸが（図１）、原本となる外部の所定の（例えば広告の企画、商品、案件、実績等の）データベースＳを原本として、前記複数の処理システムのそれぞれに対応する各形式のデータベースとして、全体を変換したコピーを生成しておき（ステップＳ０１）、運用開始後は、前記各形式のデータベースに対し、夜間など所定のタイミングで（ステップＳ０２：「ＹＥＳ」）更新差分の反映を行う（ステップＳ０３）。
【００２７】
より具体的には、同期手段ＤＸは、原本となるデータベースＳを基に、リレーショナルデータベースシステムに応じた形式のデータ集合Ｄ１と（図１）、大規模分散データベースシステムに応じた形式のデータ集合Ｄ２と、を生成し（ステップＳ０１）及び更新差分反映（ステップＳ０３）の対象とする。
【００２８】
そして、タスク受付手段１０が、ユーザ側装置からＡＰＩなどの手段でタスクを受け付ける（ステップＳ０４）。ユーザ側装置の例は、上に説明したように個別システムＵ１やＵ２（図１）であり、これら個別システムＵ１やＵ２は、端末Ｔに対してウェブページなどのユーザインタフェースを通じ、データ抽出などのタスクの受付や処理結果の提供などを行う。
【００２９】
例えば、図４は、ユーザ側装置が端末Ｔからタスクを受け付けるウェブページの一例として条件指定画面を示すものである。この画面の例では、ユーザはマウスカーソルＣでラジオボタンＢ１を選択することにより「定型出力」又は「個別出力」を選択する。「定型出力」は、データ抽出の抽出条件も出力項目も所定の初期値が選択されるものであり、選択後はそのまま「実行」ボタンＢ２を操作すればよい。
【００３０】
「個別出力」の場合は個別のタスクごとに、抽出条件を第１欄Ｐ１において、出力項目を第２欄Ｐ２において、それぞれテキストボックスやチェックボックスなどで指定したうえ「実行」ボタンＢ２を操作する。「実行」ボタンＢ２を操作すると、図５に例示するような条件確認画面を経て、図６に例示するような受付確認画面に進み、個別システムＵ１やＵ２はこのように受け付けたタスクをＡＰＩなどの手段でデータ処理装置（本装置）１へ送信する。
【００３１】
この場合のＡＰＩは、タスクの識別情報や、抽出条件や出力項目などのパラメータなどを、必要なドメイン名、呼び出す機能名などと組み合わせて
http://○○○.co.jp/api/○○addata?queryid=○○&arg1=・・・
のようにＨＴＴＰリクエストの文字列としたものなどが考えられるが、具体的形式はもちろん自由である。
【００３２】
このようにタスクを受け付けると（ステップＳ０４）、判断手段２０が、受け付けたタスクに含まれる識別情報に基づいて対応記憶手段２５を参照することにより、クエリ記憶手段５０に記憶されているクエリ記述のなかでその識別情報に対応するクエリ記述と、このクエリ記述を実行する処理システムの種別を判断し（ステップＳ０５）、判断した種別に応じて（ステップＳ０６）、管理手段であるバッチジョブ管理手段３０又はリアルタイムジョブ管理手段４０が、判断された前記クエリ記述を、判断された種別の処理システムＲ又はＨに実行させるとともに、その実行のジョブを管理する（ステップＳ０７，Ｓ０８）。
【００３３】
より具体的には、例えば、タスクの識別情報が「００１１」の場合、対応記憶手段２５に記憶されている情報（図２）に基づき、判断手段２０は、クエリ記述が「ａ１」で、このクエリ記述ａ１を実行する処理システムの種別が、リアルタイム処理手段Ｒを意味する「１」と判断する（ステップＳ０５，Ｓ０６）。この場合、この判断を受けてリアルタイムジョブ管理手段４０が、判断された種別の処理システムであるリアルタイム処理手段Ｒに、判断されたクエリ記述ａ１を実行させるとともに、必要な監視プロセスを生成するなどにより、その実行のジョブを管理させる（ステップＳ０７）。
【００３４】
一方、タスクの識別情報が例えば「００１２」の場合、対応記憶手段２５に記憶されている情報（図２）に基づき、判断手段２０は、クエリ記述が「ｂ２」で、このクエリ記述ｂ２を実行する処理システムの種別が、分散ＤＢ処理手段Ｈを意味する「２」と判断する（ステップＳ０５，Ｓ０６）。この場合、この判断を受けてバッチジョブ管理手段３０が、判断された種別の処理システムである分散ＤＢ処理手段Ｈに、判断された前記クエリ記述ｂ２を実行させるとともに、システム構成上等の必要に応じてその実行のジョブを管理させる（ステップＳ０８）。
【００３５】
なお、リレーショナルデータベースのクエリ記述に用いられるＳＱＬ（Structured  Query  Language）については広く知られているので省略するが、Ｈａｄｏｏｐなどの大規模分散計算フレームワークで実現される大規模分散データベースシステム（例えばＨＩＶＥ）では、ＳＱＬに似たＨＱＬ（HIVE  Query  Language）を用いる。その記述としては
SELECT  m.service_name,  m.operator
FROM  data1  m  JOIN  data2  y  ON  (m.xxid  =  y.xxid);
のような例を挙げることができる。
【００３６】
上記のようなデータ処理の結果は、結果提供手段８０が本装置１から直接又は個別システムＵ１やＵ２を経て、タスクを発した端末Ｔに提供するが、その提供の態様は自由である。例えば、リレーショナルデータベースなどによるリアルタイム処理の場合は、図４や図５のようなタスクの受付や確認などの画面から、その場で、結果を表示している画面に遷移することが考えられる。
【００３７】
また、大規模分散データベースなどによるバッチ処理の場合は、図６の例で示されているようなＬＡＮ内の所定のディレクトリ等に結果のファイルを本装置１が処理終了次第保存し、後にそれをユーザが取得する態様や、また、所定の待ち時間後にユーザが個別システムＵ１やＵ２にユーザＩＤなどでログインすると、処理結果を閲覧できるなどの態様でなどが考えられる。なお、適宜な外部システムとの間で各処理システムがデータの授受を行う外部インタフェース手段７０を設ければ、より多様なデータ活用が可能となる。
【００３８】
〔３．効果〕
以上のように、本実施形態では、ユーザ側からのデータ処理のタスクに含まれる識別情報に応じたクエリ記述のモジュールをそれに対応する処理システムに実行させ、リアルタイム又はバッチなどクエリ記述の処理特性に応じたジョブ管理も提供する。これにより、異種システム間のデータ形式など仕様の相違をユーザ側に対し隠蔽するプラットフォームが実現できるので、ユーザ側においてツールやユーザインタフェースを設計する際には、ユーザ操作に応じた識別情報を組み込んだタスクをプラットフォームへ送信するだけで、異種システムをその仕様の相違を意識することなく併用活用可能となる。この結果、システムごとの特性を組み合わせて活用した合理的なデータ処理機構を構築可能となる。
【００３９】
特に、本実施形態では、複数の処理システムとして、多機能性や高速性に優れてリアルタイムなデータ処理に適したリレーショナルデータベースと、大規模ログ解析など特に大容量データの分散処理に適した大規模分散データベース、という互いに補完的な異なった特性を有する処理システムを組み合わせることにより、より多様なデータ処理需要を充足できるデータ処理のプラットフォームを実現することが可能となる。
【００４０】
さらに、本実施形態では、処理対象とするデータベースがどのようなデータ形式でも、またログ蓄積など他業務の運用負荷との兼ね合いでさらに本装置によるアクセス負荷を増やしたくない場合でも、そのようなデータベースを原本として本装置の各処理システムに対応した個々のデータ形式に変換及び同期して処理対象とすることにより、処理システムの種類に応じたデータ形式など仕様の相違をユーザ側に対し隠蔽（ラッピング）できるとともに、他業務の運用負荷との抵触も回避できるうえ、データ処理時の形式変換で処理効率が低下することも無い。
【００４１】
〔４．他の実施形態〕
なお、上記各実施形態は例示に過ぎず、本発明は、以下に例示するものやそれ以外の他の実施態様も含むものである。例えば、上記実施形態で示した各手段などの要素は、コンピュータの演算制御部に限らず、ワイヤードロジック等に基づく電子回路など他の情報処理機構で実現してもよい。また、各構成図、データの図、フローチャートの図、処理や動作の順序の記述などは例示に過ぎず、各要素の有無や順序、各処理ステップの実行順序、具体的内容などは適宜変更可能である。
【００４２】
例えば、データの処理システムは、データベースシステムに限らずデータを処理するどのような種類の電子情報処理組織でもよい。また、タスクをユーザ側から受け付ける手段は、ＡＰＩには限定されず、
ClientProxy  proxy  =  new  ClientProxy();
String[]  args  =  {"apiname",  "arg1=xxx",
"arg2=yyy  zzz",  "arg3=abcd"};
ClientResponse  res  =  proxy.call(args);
のようにＴＣＰのリクエストなどでもよい。
【００４３】
また、本発明の装置（本装置１）は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をＡＰＩ（アプリケーション・プログラム・インタフェース）やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。また、本発明は、端末Ｔを含むシステム全体や、システム全体に対応する情報処理の方法やコンピュータ・プログラムなどとしても把握することもできる。
【符号の説明】
【００４４】
１  データ処理装置（本装置）
５  演算制御部
６  記憶装置
７  通信手段
１０  タスク受付手段
２０  判断手段
２５  対応記憶手段
３０  バッチジョブ管理手段
４０  リアルタイムジョブ管理手段
５０  クエリ記憶手段
ａ１，ａ２，ｂ１，ｂ２  クエリ記述
Ｂ１  ラジオボタン
Ｂ２  「実行」ボタン
Ｃ  マウスカーソル
Ｄ１，Ｄ２  データ集合
ＤＸ  同期手段
Ｈ  分散ＤＢ処理手段
Ｐ１  第１欄
Ｐ２  第２欄
Ｒ  リアルタイム処理手段
Ｔ  ユーザ端末（端末）
Ｕ１，Ｕ２  個別システム
【図１】
2011133925.tif 000003
【図２】
2011133925.tif 000004
【図３】
2011133925.tif 000005
【図４】
2011133925.tif 000006
【図５】
2011133925.tif 000007
【図６】
2011133925.tif 000008