JP2021157288A - 情報処理システム、情報処理方法、情報処理プログラム及び情報処理装置 - Google Patents
情報処理システム、情報処理方法、情報処理プログラム及び情報処理装置 Download PDFInfo
- Publication number
- JP2021157288A JP2021157288A JP2020054536A JP2020054536A JP2021157288A JP 2021157288 A JP2021157288 A JP 2021157288A JP 2020054536 A JP2020054536 A JP 2020054536A JP 2020054536 A JP2020054536 A JP 2020054536A JP 2021157288 A JP2021157288 A JP 2021157288A
- Authority
- JP
- Japan
- Prior art keywords
- query
- information
- information processing
- database server
- record
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 249
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims description 78
- 238000006243 chemical reaction Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 35
- 230000005540 biological transmission Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 17
- 238000004458 analytical method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】外部データベースの利用を効率良く行うことを可能とする情報処理システム、情報処理方法、情報処理プログラム及び情報処理装置を提供する。【解決手段】第1情報処理装置は、端末より入力を受け付けたクエリの対象となるレコードが外部データベースサーバに存在するか否かを判定し、クエリの対象となるレコードが外部データベースサーバに存在すると判定した場合、外部データベースサーバにアクセスするための接続情報を特定し、クエリと接続情報とを第2情報処理装置に送信し、第2情報処理装置は、第1情報処理装置から受信した接続情報に基づいて外部データベースサーバに接続して、外部データベースサーバに記憶されたレコードのうち、クエリの対象となるレコードの格納状況を示す情報を取得し、取得した格納状況を示す情報に基づいて、クエリの対象となるレコードについての複数のタスク毎の処理対象範囲を決定する。【選択図】図11
Description
本発明は、情報処理システム、情報処理方法、情報処理プログラム及び情報処理装置に関する。
例えば、利用者に対してサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、サービスの提供を行うために必要な業務システムの構築を行う。具体的に、事業者は、例えば、ビッグデータの活用を目的として複数種類のデータベースを組み合わせた業務システムの構築を行う。
上記のような業務システムの構築を行う場合、事業者は、例えば、アプリケーションの開発や保守を複数種類のデータベースごとに行う。そのため、業務システムの開発等に要するコストは、この場合、他の業務システムと比較して大きくなる。
そこで、事業者は、上記のような業務システムの構築を行う場合、例えば、複数種類のデータベースを統合的に管理するデータベース(以下、管理データベースとも呼ぶ)を用いたマルチモデルデータベースを構築する。具体的に、事業者は、例えば、複数種類のデータベースのそれぞれを外部データベース(管理データベースからアクセス可能な外部のデータベース)に配置する外部データベース仮想化を行うことによって、マルチモデルデータベースの構築を行う。
これにより、利用者は、管理データベースにアクセスを行うことで、複数種類のデータベース(以下、外部データベースとも呼ぶ)に格納されたデータについても利用することが可能になる。そのため、事業者は、この場合、外部データベースにアクセスするアプリケーションの開発コスト等を抑制することが可能になる(例えば、特許文献1及び2参照)。
しかしながら、上記のようにマルチモデルデータベースを用いた業務システムを構築した場合であっても、データそのものの管理は、外部データベースにおいてそれぞれ行われる。そのため、業務システムでは、データベースにおいて一般的に行われる性能最適化等を行うことができず、外部データベースを効率的に利用することができない場合がある。
そこで、一つの側面では、本発明は、外部データベースの利用を効率良く行うことを可能とする情報処理システム、情報処理方法、情報処理プログラム及び情報処理装置を提供することを目的とする。
実施の形態の一態様では、処理対象のクエリの入力を受け付ける第1情報処理装置と、前記クエリの実行を複数のタスク毎に並列して行う第2情報処理装置とを有する情報処理システムであって、前記第1情報処理装置は、端末より入力を受け付けたクエリの対象となるレコードが外部データベースサーバに存在するか否かを判定し、前記クエリの対象となるレコードが前記外部データベースサーバに存在すると判定した場合、前記外部データベースサーバにアクセスするための接続情報を特定し、前記クエリと前記接続情報とを前記第2情報処理装置に送信し、前記第2情報処理装置は、前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバに接続して、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの格納状況を示す情報を取得し、取得した前記格納状況を示す情報に基づいて、前記クエリの対象となるレコードについての前記複数のタスク毎の処理対象範囲を決定する。
一つの側面によれば、外部データベースの利用を効率良く行うことを可能とする。
[情報処理システムの構成]
初めに、情報処理システム10の構成について説明を行う。図1は、情報処理システム10の構成について説明する図である。
初めに、情報処理システム10の構成について説明を行う。図1は、情報処理システム10の構成について説明する図である。
図1に示す情報処理システム10は、情報処理装置1(以下、第1情報処理装置とも呼ぶ)と、情報処理装置2(以下、第2情報処理装置2とも呼ぶ)とを有する。また、図1に示す情報処理システム10は、データベースサーバ3a(以下、外部DB3aとも呼ぶ)と、データベースサーバ3b(以下、外部DB3bとも呼ぶ)と、データベースサーバ3c(以下、外部DB3cとも呼ぶ)とを有する。さらに、情報処理システム10は、利用者が各種情報の入力等を行う利用者端末4と、事業者が各種情報の入力等を行う事業者端末5とを有する。以下、外部DB3a、3b及び3cを総称して外部DB3とも呼ぶ。
情報処理装置1は、例えば、管理データベース1a(以下、内部DB1aとも呼ぶ)を有するデータベースサーバである。また、情報処理装置2は、例えば、並列分散処理基盤として機能する複数のサーバからなるサーバ群である。
外部DB3は、利用者が利用者端末4を介してアクセスを行うデータが格納されるデータベースを有するデータベースサーバである。具体的に、外部DB3のそれぞれには、例えば、異なるデータモデルに対応するデータが格納される。そして、外部DB3のそれぞれに格納されるデータは、例えば、IoT(Internet of Things)センサから送信されたログデータや、利用者が利用者端末4を介して入力したドキュメント等である。
情報処理装置1は、例えば、利用者が利用者端末4を介して入力したクエリの入力を受け付けた場合、受け付けたクエリの対象となるレコードの少なくとも一部が外部DB3に存在するか否かを判定する。そして、クエリの対象となるレコードの少なくとも一部が外部DB3に存在すると判定した場合、情報処理装置1は、その外部DB3にアクセスするための接続情報を特定する。その後、情報処理装置1は、例えば、入力を受け付けたクエリと、特定した接続情報とを情報処理装置2に送信する。
また、情報処理装置1は、例えば、受け付けたクエリの対象となるレコードの少なくとも一部が内部DB1aに存在するか否かを判定する。そして、クエリの対象となるレコードの少なくとも一部が内部DB1aに存在すると判定した場合、情報処理装置1は、内部DB1aに格納されたレコードを対象としてクエリを実行する。
情報処理装置2は、情報処理装置1からクエリと接続情報とを受信した場合、受信した接続情報に基づいて外部DB3に接続して、外部DB3に格納されたレコードのうち、クエリの対象となるレコードの格納状況を示す情報を取得する。そして、情報処理装置2は、取得した情報に基づいて、受信したクエリの対象となるレコードについての複数のタスク毎の処理対象範囲を決定する。
その後、情報処理装置2は、タスク分割数に対応するタスク毎に、各タスクの処理対象範囲に対応するレコードを対象としてクエリを実行する。具体的に、情報処理装置2を構成する複数のサーバのそれぞれは、各サーバに割り振られたタスクの処理対象範囲に対応するレコードを対象としてクエリを並列に実行する。
すなわち、情報処理装置1は、外部DB3に格納されたレコードを対象とするクエリを受け付けた場合、そのクエリの実行を情報処理装置2にオフロードする。そして、情報処理装置2は、情報処理装置1からオフロードされたクエリの実行を複数のサーバにおいて並列して行う。
これにより、情報処理システム10は、利用者が入力したクエリの実行を効率良く行うことが可能になる。そのため、事業者は、外部DB3の利用を効率良く行うことが可能なマルチモデルデータベースを構築することが可能になる。
なお、図1に示す例において、情報処理装置1は、内部DB1aを有しないものであってもよい。すなわち、事業者は、例えば、利用者が各種操作を行うデータの全てを外部DB3に格納するものであってもよい。また、図1に示す例において、情報処理システム10が3つの外部DB3を有する場合について説明を行ったが、情報処理システム10は、3つ以外の数の外部DB3を有するものであってもよい。
[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明する。図2は、情報処理装置1のハードウエア構成を説明する図である。また、図3は、情報処理装置2のハードウエア構成を説明する図である。また、図4は、外部DB3のハードウエア構成を説明する図である。
次に、情報処理システム10のハードウエア構成について説明する。図2は、情報処理装置1のハードウエア構成を説明する図である。また、図3は、情報処理装置2のハードウエア構成を説明する図である。また、図4は、外部DB3のハードウエア構成を説明する図である。
初めに、情報処理装置1のハードウエア構成について説明を行う。
情報処理装置1は、図2に示すように、プロセッサであるCPU101と、メモリ102と、通信装置103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、例えば、クエリを実行する処理(以下、クエリ実行処理とも呼ぶ)を行うためのプログラム110を記憶するプログラム格納領域(図示しない)を有する。また、記憶媒体104は、例えば、クエリ実行処理を行う際に用いられる情報を記憶する情報格納領域130を有する。なお、記憶媒体104は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)であってよい。
CPU101は、記憶媒体104からメモリ102にロードされたプログラム110を実行してクエリ実行処理を行う。
また、通信装置103は、例えば、ネットワークを介して情報処理装置2や利用者端末4や事業者端末5との通信を行う。
次に、情報処理装置2のハードウエア構成について説明を行う。
情報処理装置2は、図3に示すように、プロセッサであるCPU201と、メモリ202と、通信装置203と、記憶媒体204とを有する。各部は、バス205を介して互いに接続される。
記憶媒体204は、例えば、クエリ実行処理を行うためのプログラム210を記憶するプログラム格納領域(図示しない)を有する。また、記憶媒体204は、例えば、クエリ実行処理を行う際に用いられる情報を記憶する情報格納領域230を有する。なお、記憶媒体204は、例えば、HDDやSSDであってよい。
CPU201は、記憶媒体204からメモリ202にロードされたプログラム210を実行してクエリ実行処理を行う。
また、通信装置203は、例えば、ネットワークを介して情報処理装置1や外部DB3との通信を行う。
次に、外部DB3のハードウエア構成について説明を行う。
外部DB3は、図4に示すように、プロセッサであるCPU301と、メモリ302と、通信装置303と、記憶媒体304とを有する。各部は、バス305を介して互いに接続される。
記憶媒体304は、例えば、クエリ実行処理を行うためのプログラム310を記憶するプログラム格納領域(図示しない)を有する。また、記憶媒体304は、例えば、クエリ実行処理を行う際に用いられる情報を記憶する情報格納領域330を有する。なお、記憶媒体304は、例えば、HDDやSSDであってよい。
CPU301は、記憶媒体304からメモリ302にロードされたプログラム310を実行してクエリ実行処理を行う。
また、通信装置303は、例えば、ネットワークを介して情報処理装置2との通信を行う。
[情報処理システムの機能]
次に、情報処理システム10の機能について説明を行う。図5は、情報処理装置1の機能のブロック図である。また、図6は、情報処理装置2の機能のブロック図である。また、図7は、外部DB3の機能のブロック図である。
次に、情報処理システム10の機能について説明を行う。図5は、情報処理装置1の機能のブロック図である。また、図6は、情報処理装置2の機能のブロック図である。また、図7は、外部DB3の機能のブロック図である。
初めに、情報処理装置1の機能のブロック図について説明を行う。
情報処理装置1は、図5に示すように、例えば、CPU101やメモリ102等のハードウエアとプログラム110とが有機的に協働することにより、クエリ受信部111と、DB判定部112と、クエリ変換部113と、接続情報特定部114と、クエリ送信部115と、クエリ実行部116と、結果受信部117と、結果送信部118とを含む各種機能を実現する。
また、情報処理装置1は、例えば、図5に示すように、解析結果131と、テーブル情報132と、DB情報133と、接続情報134とを情報格納領域130に記憶する。
クエリ受信部111は、例えば、利用者が利用者端末4を介して発行したクエリを受信する。
DB判定部112は、クエリ受信部111が受信したクエリの対象となるレコードの少なくとも一部が外部DB3に格納されているテーブルTB(以下、外部テーブルTBとも呼ぶ)に含まれるか否かを判定する。
クエリ変換部113は、例えば、クエリ受信部111が受信したクエリの対象となるレコードの少なくとも一部が外部テーブルTBに含まれているとDB判定部112が判定した場合、クエリ受信部111が受信したクエリを情報処理装置2が実行可能なクエリ(以下、第1変換クエリとも呼ぶ)に変換する。
接続情報特定部114は、情報格納領域130に記憶したテーブル情報132とDB情報133とを参照し、クエリの対象となるレコードの少なくとも一部が格納されている外部テーブルTBにアクセスするための接続情報134を特定する。テーブル情報132は、外部DB3のそれぞれに格納されている外部テーブルTBを示す情報である。また、DB情報133は、外部DB3のそれぞれに関する情報である。
クエリ送信部115は、クエリ変換部113が変換した第1変換クエリと、接続情報特定部114が特定した接続情報134とを情報処理装置2に送信する。接続情報134は、外部テーブルTBのそれぞれにアクセスするために要する情報である。
クエリ実行部116は、例えば、内部DB1aにされた各テーブルに含まれるレコードを対象として、クエリ受信部111が受信したクエリを実行する。
結果受信部117は、クエリ送信部115が情報処理装置2に送信した第1変換クエリの実行結果を情報処理装置2から受信する。
結果送信部118は、結果受信部117が受信した実行結果を、クエリ受信部111が受信したクエリを発行した利用者端末4に送信する。解析結果131の説明については後述する。
次に、情報処理装置2の機能のブロック図について説明を行う。
情報処理装置2は、図6に示すように、例えば、CPU201やメモリ202等のハードウエアとプログラム210とが有機的に協働することにより、クエリ受信部211と、格納情報取得部212と、範囲決定部213と、クエリ変換部214と、クエリ送信部215と、結果受信部216と、結果集計部217と、結果送信部218とを含む各種機能を実現する。
なお、クエリ受信部211、格納情報取得部212、範囲決定部213、結果集計部217及び結果送信部218は、例えば、情報処理装置2を構成するサーバ群のうちのマスターサーバにおける機能であり、クエリ変換部214、クエリ送信部215及び結果受信部216は、例えば、情報処理装置2を構成するサーバ群のうちのスレーブサーバのそれぞれにおける機能である。
また、情報処理装置2は、例えば、図6に示すように、格納情報231と、分割数情報232と、処理対象範囲情報233とを情報格納領域230に記憶する。
クエリ受信部211は、情報処理装置1から送信された第1変換クエリと接続情報134とを受信する。
格納情報取得部212は、クエリ受信部211が受信した接続情報134に基づいて外部DB3に接続し、その外部DB3に記憶された外部テーブルTBのうち、クエリ受信部211が受信した第1変換クエリの対象となる外部テーブルTBの格納位置を示す格納情報231を取得する。
範囲決定部213は、格納情報取得部212が取得した格納情報231を参照し、情報格納領域130に記憶された分割数情報232に対応する数のタスク毎に、クエリ受信部211が受信した第1変換クエリの対象となるレコード(外部テーブルTBに含まれるレコード)についての処理対象範囲を決定する。そして、範囲決定部213は、例えば、タスク毎に決定した処理対象を示す処理対象範囲情報233を生成する。
クエリ変換部214は、情報格納領域130に記憶された分割数情報232に対応する数のタスク毎に、クエリ受信部111が受信した第1変換クエリを、各タスクの処理対象範囲に含まれるレコードを記憶する外部DB3が実行可能な状態であって、各タスクの処理対象範囲に含まれるレコードを実行対象とするクエリ(以下、第2変換クエリとも呼ぶ)に変換する。
クエリ送信部215は、情報格納領域130に記憶された分割数情報232に対応する数のタスク毎に、各タスクの処理対象範囲に対応する外部テーブルTBを記憶する外部DB3に対して、各タスクに対応する第2変換クエリを送信する。
結果受信部216は、クエリ送信部215が外部DB3に対して送信した第2変換クエリの実行結果(タスク毎の実行結果)を、クエリ送信部115が第2変換クエリを送信した外部DB3から受信する。
結果集計部217は、例えば、結果受信部216が受信した実行結果(タスク毎の実行結果)の結合、加工、集計及びソートを行う。
結果送信部218は、結果集計部217が集計等を行った実行結果を情報処理装置1に送信する。
次に、外部DB3の機能のブロック図について説明を行う。
外部DB3は、図7に示すように、例えば、CPU301やメモリ302等のハードウエアとプログラム310とが有機的に協働することにより、クエリ受信部311と、クエリ実行部312と、結果送信部313とを含む各種機能を実現する。
また、外部DB3は、例えば、図7に示すように、1以上の外部テーブルTBを情報格納領域330に記憶する。
クエリ受信部311は、情報処理装置2から送信された第2変換クエリを受信する。
クエリ実行部312は、クエリ受信部311が受信した第2変換クエリを実行する。
結果送信部313は、クエリ実行部312が実行した第2変換クエリの実行結果を情報処理装置2に送信する。
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。図8及び図9は、第1の実施の形態におけるクエリ実行処理の概略を説明するフローチャート図である。図10及び図11は、第1の実施の形態におけるクエリ実行処理の概略を説明する図である。
次に、第1の実施の形態の概略について説明する。図8及び図9は、第1の実施の形態におけるクエリ実行処理の概略を説明するフローチャート図である。図10及び図11は、第1の実施の形態におけるクエリ実行処理の概略を説明する図である。
情報処理装置1は、図8に示すように、例えば、利用者が利用者端末4を介して入力したクエリを受け付けるまで待機する(S1のNO)。
そして、クエリを受け付けた場合(S1のYES)、情報処理装置1は、S1の処理で入力を受け付けたクエリの対象となるレコードが外部DB3に存在するか否かを判定する(S2)。
その結果、S1の処理で入力を受け付けたクエリの対象となるレコードが外部DB3に存在すると判定した場合(S3のYES)、情報処理装置1は、S2の処理で存在すると判定した外部DB3にアクセスするための接続情報134を特定する(S4)。
その後、情報処理装置1は、S1の処理で入力を受け付けたクエリと、S4の処理で特定した接続情報134とを情報処理装置2に送信する(S5)。
また、S1の処理で入力を受け付けたクエリの対象となるレコードが外部DB3に存在しないと判定した場合(S3のNO)、情報処理装置1は、S4及びS5の処理を行わない。
一方、情報処理装置2は、図9に示すように、情報処理装置1が送信したクエリ及び接続情報134を受信するまで待機する(S11のNO)。
そして、情報処理装置1が送信したクエリ及び接続情報134を受信した場合(S11のYES)、情報処理装置2は、受信した接続情報134に基づいて外部DB3に接続して、その外部DB3に記憶されたレコードのうち、S11の処理で受信したクエリの対象となるレコードの格納状況を示す格納情報231を取得する(S12)。
その後、情報処理装置2は、S12の処理で取得した格納情報231に基づいて、S11の処理で受信したクエリの対象となるレコードについての複数のタスク毎の処理対象範囲を決定する(S13)。
すなわち、情報処理装置1は、外部DB3に格納されたレコードを対象とするクエリを受け付けた場合、そのクエリの実行を情報処理装置2にオフロードする。そして、情報処理装置2は、情報処理装置1からオフロードされたクエリの実行を複数のサーバにおいて分散して行う。
具体的に、例えば、図10に示すように、クエリの実行対象が外部テーブルTBに含まれるレコードである場合、情報処理装置2を構成するサーバ2a、2b及び2c(スレーブサーバ2a、2b及び2c)のそれぞれは、例えば、図11に示すように、外部テーブルTBにおいて連続して格納されているレコード群RGa、RGb及びRGcのうち、各サーバの処理対象範囲として決定されたレコード群を対象としてクエリを実行する。
これにより、情報処理システム10は、情報処理装置2によるクエリの実行を効率良く行うことが可能になる。そのため、事業者は、外部DB3の利用を効率良く行うことが可能なマルチモデルデータベースを構築することが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図12から図16は、第1の実施の形態におけるクエリ実行処理の詳細を説明するフローチャート図である。また、図17から図24は、第1の実施の形態におけるクエリ実行処理の詳細を説明する図である。
次に、第1の実施の形態の詳細について説明する。図12から図16は、第1の実施の形態におけるクエリ実行処理の詳細を説明するフローチャート図である。また、図17から図24は、第1の実施の形態におけるクエリ実行処理の詳細を説明する図である。
[第1情報処理装置において行われるクエリ実行処理]
初めに、クエリ実行処理のうち、情報処理装置1において行われるクエリ実行処理について説明を行う。図12及び図13は、情報処理装置1において行われるクエリ実行処理について説明する図である。
初めに、クエリ実行処理のうち、情報処理装置1において行われるクエリ実行処理について説明を行う。図12及び図13は、情報処理装置1において行われるクエリ実行処理について説明する図である。
情報処理装置1のクエリ受信部111は、図12に示すように、例えば、利用者が利用者端末4を介して入力したクエリを受け付けるまで待機する(S21のNO)。
そして、クエリを受け付けた場合(S21のYES)、クエリ受信部111は、例えば、受け付けたクエリの解析を行う(S22)。以下、クエリの解析結果について説明を行う。
[クエリの解析結果の具体例]
図17は、クエリの解析結果131の具体例について説明する図である。
図17は、クエリの解析結果131の具体例について説明する図である。
図17に示す解析結果131には、例えば、後述する各処理において参照される各種情報が含まれる。具体的に、図17に示す解析結果131には、例えば、S21の処理で受け付けたクエリの対象となる外部テーブルTB(「relid(外部テーブルID)」が「16001」である外部テーブル)が存在することを示す情報が含まれている。
図12に戻り、情報処理装置1のDB判定部112は、S21の処理で入力を受け付けたクエリの対象となるレコードが外部DB3に格納されている外部テーブルTBに含まれているか否かを判定する(S23)。
具体的に、DB判定部112は、例えば、図17で説明した解析結果131を参照し、S21の処理で入力を受け付けたクエリの対象となる外部テーブルTBとして「外部テーブルID」が「16001」である外部テーブルが存在する旨の判定を行う。
そして、S21の処理で入力を受け付けたクエリの対象となるレコードが外部DB3に格納されている外部テーブルTBに含まれていると判定した場合(S24のYES)、情報処理装置1のクエリ変換部214は、S21の処理で受け付けたクエリを情報処理装置2が実行可能なクエリに変換することによって第1変換クエリを生成する(S25)。
その後、情報処理装置1の接続情報特定部114は、情報格納領域130に記憶されたテーブル情報132とDB情報133とを参照し、S23の処理で存在すると判定した外部テーブルTBにアクセスするための接続情報134を特定する(S26)。以下、テーブル情報132、DB情報133及び接続情報134の具体例について説明を行う。
[テーブル情報の具体例]
初めに、テーブル情報132の具体例について説明を行う。図18は、テーブル情報132の具体例について説明する図である。
初めに、テーブル情報132の具体例について説明を行う。図18は、テーブル情報132の具体例について説明する図である。
図18に示すテーブル情報132は、外部テーブルTBを識別する「外部テーブルID」と、外部DB3を識別する「外部DBID」とを項目として有する。
具体的に、図18に示すテーブル情報132において、1行目の情報には、「外部テーブルID」として「16001」が設定され、「外部DBID」として「21001」が設定されている。
また、図18に示すテーブル情報132において、2行目の情報には、「外部テーブルID」として「16002」が設定され、「外部DBID」として「21002」が設定されている。図18に含まれる他の情報についての説明は省略する。
[DB情報の具体例]
次に、DB情報133の具体例について説明を行う。図19は、DB情報133の具体例について説明する図である。
次に、DB情報133の具体例について説明を行う。図19は、DB情報133の具体例について説明する図である。
図19に示すDB情報133は、外部DB3を識別する「外部DBID」と、外部DB3のIPアドレスが設定される「host」と、外部DB3のポート番号が設定される「port」と、外部DB3の名称が設定される「DB名」とを項目として有する。また、図19に示すDB情報133は、外部DB3にアクセスするために必要なユーザ名及びパスワードのそれぞれが設定される「user」及び「password」を項目として有する。
具体的に、図19に示すDB情報133において、1行目の情報には、「外部DBID」として「21001」が設定され、「host」として「192.168.100.100」が設定され、「port」として「1234」が設定されている。また、1行目の情報には、「DB名」として「DB1」が設定され、「user」として「user1」が設定され、「password」として「AAAA」が設定されている。
また、図19に示すDB情報133において、2行目の情報には、「外部DBID」として「21002」が設定され、「host」として「192.168.100.200」が設定され、「port」として「5678」が設定されている。また、2行目の情報には、「DB名」として「DB2」が設定され、「user」として「user2」が設定され、「password」として「BBBB」が設定されている。図19に含まれる他の情報についての説明は省略する。
[接続情報の具体例]
次に、接続情報134の具体例について説明を行う。図20は、接続情報134の具体例について説明する図である。
次に、接続情報134の具体例について説明を行う。図20は、接続情報134の具体例について説明する図である。
図20に示す接続情報134は、外部テーブルを識別する「外部テーブルID」と、外部DB3のIPアドレスが設定される「host」と、外部DB3のポート番号が設定される「port」と、外部DB3の名称が設定される「DB名」とを項目として有する。また、図20に示す接続情報134は、外部DB3にアクセスするために必要なユーザ名及びパスワードのそれぞれが設定される「user」及び「password」を項目として有する。
具体的に、図18で説明したテーブル情報132において、1行目の情報には、「外部テーブルID」として「16001」が設定され、「外部DBID」として「21001」が設定されている。また、図19で説明したテーブル情報132において、1行目の情報には、「外部DBID」として「21001」が設定され、「host」として「192.168.100.100」が設定され、「port」として「1234」が設定され、「DB名」として「DB1」が設定され、「user」として「user1」が設定され、「password」として「AAAA」が設定されている。さらに、図17で説明した解析結果131には、S21の処理で入力を受け付けたクエリの対象となる外部テーブルとして、「外部テーブルID」が「16001」である外部テーブルが存在している旨の情報が含まれている。
そのため、接続情報特定部114は、S26の処理において、例えば、図20に示すように、「外部テーブルID」に「16001」が設定され、「host」に「192.168.100.100」が設定され、「port」に「1234」が設定され、「DB名」に「DB1」が設定され、「user」に「user1」が設定され、「password」に「AAAA」が設定された情報(1行目の情報)を特定する。
図13に戻り、情報処理装置1のクエリ送信部115は、S25の処理で変換した第1変換クエリと、S26の処理で特定した接続情報134とを情報処理装置2に送信する(S31)。
そして、DB判定部112は、S21の処理で入力を受け付けたクエリの対象となるレコードが内部DB1aに格納されているテーブルに含まれているか否かを判定する(S32)。
その結果、S21の処理で入力を受け付けたクエリの対象となるレコードが内部DB1aに格納されているテーブルに含まれていると判定した場合(S33のYES)、情報処理装置1のクエリ実行部116は、内部DB1aに記憶された各テーブルを対象として、S21の処理で入力を受け付けたクエリを実行する(S34)。
一方、S21の処理で入力を受け付けたクエリの対象となるレコードが内部DB1aに格納されているテーブルに含まれていないと判定した場合(S33のNO)、クエリ実行部116は、S34の処理を実行しない。
その後、情報処理装置1の結果受信部117は、S31の処理で送信した第1変換クエリの実行結果を情報処理装置2から受け付けるまで待機する(S35のNO)。
そして、S31の処理で送信した第1変換クエリの実行結果を情報処理装置2から受け付けた場合(S35のYES)、情報処理装置1の結果送信部118は、S35の処理で受け付けた実行結果を、例えば、S21の処理で入力を受け付けたクエリの送信元である利用者端末4に送信する(S36)。
[第2情報処理装置において行われるクエリ実行処理]
次に、クエリ実行処理のうち、情報処理装置2において行われるクエリ実行処理について説明を行う。図14及び図15は、情報処理装置2において行われるクエリ実行処理について説明する図である。
次に、クエリ実行処理のうち、情報処理装置2において行われるクエリ実行処理について説明を行う。図14及び図15は、情報処理装置2において行われるクエリ実行処理について説明する図である。
情報処理装置2(マスターサーバ)のクエリ受信部211は、図14に示すように、情報処理装置1が送信した第1変換クエリ及び接続情報134を受信するまで待機する(S41のNO)。
そして、情報処理装置1が送信した第1変換クエリ及び接続情報134を受信した場合(S41のYES)、情報処理装置2(マスターサーバ)の格納情報取得部212は、受信した接続情報134に基づいて外部DB3に接続して、その外部DB3に記憶された外部テーブルTBのうち、S41の処理で受信した第1変換クエリの対象となる外部テーブルTBの格納情報231を取得する(S42)。以下、外部テーブルTB及び格納情報231の具体例について説明を行う。
[外部テーブルの具体例]
初めに、外部テーブルTBの具体例について説明を行う。図21は、外部テーブルTBの具体例について説明する図である。
初めに、外部テーブルTBの具体例について説明を行う。図21は、外部テーブルTBの具体例について説明する図である。
図21に示す外部テーブルTBにおいて、各レコードの格納位置を示す「ctid」が「(0,1)」であるレコード(1行目のレコード)の「カラムA」及び「カラムB」には、「100」及び「東京」がそれぞれ設定されている。
また、図21に示す外部テーブルTBにおいて、「ctid」が「(0,2)」であるレコード(2行目のレコード)の「カラムA」及び「カラムB」には、「200」及び「大阪」がそれぞれ設定されている。図21に示す外部テーブルTBに含まれる他の情報についての説明は省略する。
[格納情報の具体例]
次に、格納情報231の具体例について説明を行う。図22は、格納情報231の具体例について説明する図である。
次に、格納情報231の具体例について説明を行う。図22は、格納情報231の具体例について説明する図である。
図22に示す格納情報231では、「外部レコードID」が「16001」であるレコードを示す情報と、図21で説明した外部テーブルTBの「ctid」に設定された情報とが対応付けられている。
図14に戻り、情報処理装置1(マスターサーバ)の範囲決定部213は、S42の処理で取得した格納情報231を参照し、情報格納領域130に記憶した分割数情報232に対応する数のタスク毎に、S41の処理で受信した第1変換クエリの対象となる外部テーブルTBについての処理対象範囲を示す処理対象範囲情報233を生成する(S43)。具体的に、範囲決定部213は、S41の処理で受信した第1変換クエリの対象となる外部テーブルTBに含まれるレコードを分割数情報232に対応する数で分割することによって、各タスクに対応する処理対象範囲を決定する。
なお、S41の処理で受信した第1変換クエリの対象となる外部テーブルTBが複数存在する場合、範囲決定部213は、複数存在して外部テーブルTBごとに、各外部テーブルTBに含まれるレコードを分割数情報232に対応する数で分割することによって、各タスクに対応する処理対象範囲を決定する。以下、分割数情報232及び処理対象範囲情報233の具体例について説明を行う。
[分割数情報の具体例]
初めに、分割数情報232についての説明を行う。図23は、分割数情報232について説明する具体例である。
初めに、分割数情報232についての説明を行う。図23は、分割数情報232について説明する具体例である。
図23に示す分割数情報232には、例えば、事業者が事業者端末5を介して予め入力した値である「100」が設定されている。
[処理対象範囲情報の具体例]
次に、処理対象範囲情報233についての説明を行う。図24は、処理対象範囲情報233について説明する具体例である。
次に、処理対象範囲情報233についての説明を行う。図24は、処理対象範囲情報233について説明する具体例である。
図24に示す処理対象範囲情報233では、「外部レコードID」が「16001」であるレコードを示す情報と、各タスクに対応する処理対象範囲を示す情報とが対応付けられている。そして、図24に示す処理対象範囲情報233のうち、各タスクに対応する処理対象範囲を示す情報は、各タスクを識別する「タスクID」と、各タスクに対応する処理対象範囲の下限が設定される「下限」と、各タスクに対応する処理対象範囲の上限が設定される「上限」とを項目として有している。
具体的に、図24に示す処理対象範囲情報233において、「タスクID」が「1」である情報(1行目の情報)には、「下限」として「(0,1)」が設定され、「上限」として「(1,10)」が設定されている。
また、図24に示す処理対象範囲情報233において、「タスクID」が「2」である情報(2行目の情報)には、「下限」として「(1,11)」が設定され、「上限」として「(2,30)」が設定されている。図24に含まれる他の情報についての説明は省略する。
すなわち、外部DB3の外部テーブルTBに格納されているレコードは、クエリの実行に伴うデータの更新に応じて格納順序が変化する。そのため、各タスクの処理対象範囲がカラムをキーとして分割される場合、情報処理装置2におけるクエリの実行は、外部DB3におけるランダムアクセスの発生に起因して効率的に行われなくなる。そして、このような状況は、クエリの実行に伴うデータの更新が高頻度に行われる場合において顕著に発生する。
そこで、情報処理装置2は、外部DB3における外部テーブルTBの物理的な格納位置(すなわち、「ctid」に設定されている値)によって、各タスクの処理対象範囲を分割する。具体的に、情報処理装置2は、物理的な格納位置が連続するレコード群毎に、各タスクの処理対象範囲を分割する。
これにより、情報処理装置2は、外部データDBに格納されているデータの更新状況等に依らず、クエリの実行を効率的に行うことが可能になる。
図14に戻り、情報処理装置2(スレーブサーバ)のクエリ変換部214は、情報格納領域130に記憶された分割数情報232に対応する数のタスク毎に、S41の処理で受信した第1変換クエリを、各タスクの処理対象範囲に含まれるレコードを記憶する外部DB3が実行可能な状態であって、各タスクの処理対象範囲に含まれるレコードを実行対象とする第2変換クエリに変換する(S44)。
そして、情報処理装置2(スレーブサーバ)のクエリ送信部215は、図15に示すように、情報格納領域130に記憶された分割数情報232に対応する数のタスク毎に、各タスクの処理対象範囲に対応する外部テーブルTBを記憶する外部DB3に対して、S44の処理で変換した第2変換クエリのうちの各タスクに対応するクエリを送信する(S51)。
すなわち、情報処理装置2における複数のスレーブサーバは、情報処理装置1から受信した同一のクエリ(第1変換クエリ)を複数の多重度で実行する。なお、この場合におけるクエリの実行多重度は、例えば、複数のスレーブサーバに含まれるCPUのコアの数と同じ数である。
その後、情報処理装置2(スレーブサーバ)の結果受信部216は、S51の処理で第2変換クエリを送信した全ての外部DB3から第2変換クエリの実行結果を受信するまで待機する(S52のNO)。
そして、S51の処理で第2変換クエリを送信した全ての外部DB3から第2変換クエリの実行結果を受信した場合(S52のYES)、情報処理装置2(マスターサーバ)の結果集計部217は、受信した第2変換クエリの実行結果を集計する(S53)。具体的に、結果集計部217は、例えば、第2変換クエリの実行結果の結合、加工、集計及びソートを行う。
その後、情報処理装置2(マスターサーバ)の結果送信部218は、S53の処理で集計した実行結果を、情報処理装置1に送信する(S54)。
[外部DBにおいて行われるクエリ実行処理]
次に、クエリ実行処理のうち、外部DB3において行われるクエリ実行処理について説明を行う。図16は、外部DB3において行われるクエリ実行処理について説明する図である。
次に、クエリ実行処理のうち、外部DB3において行われるクエリ実行処理について説明を行う。図16は、外部DB3において行われるクエリ実行処理について説明する図である。
外部DB3のクエリ受信部311は、図16に示すように、情報処理装置2が送信した第2変換クエリを受信するまで待機する(S61のNO)。
そして、情報処理装置2が送信した第2変換クエリを受信した場合(S61のYES)、外部DB3のクエリ実行部312は、S61の処理で受信した第2変換クエリを実行する(S62)。
その後、外部DB3の結果送信部313は、S62の処理で実行した第2変換クエリの実行結果を第2情報処理装置2に送信する(S63)。
このように、本実施の形態における情報処理装置1は、例えば、利用者が利用者端末4を介して入力したクエリの入力を受け付けた場合、受け付けたクエリの対象となるレコードが外部DB3に存在するか否かを判定する。そして、クエリの対象となるレコードが外部DB3に存在すると判定した場合、情報処理装置1は、その外部DB3にアクセスするための接続情報134を特定する。その後、情報処理装置1は、例えば、入力を受け付けたクエリと、特定した接続情報134とを情報処理装置2に送信する。
一方、情報処理装置2は、情報処理装置1からクエリと接続情報134とを受信した場合、受信した接続情報に基づいて外部DB3に接続して、外部DB3に格納されたレコードのうち、クエリの対象となるレコードの格納情報231を取得する。そして、情報処理装置2は、取得した格納情報231に基づいて、受信したクエリの対象となるレコードについての複数のタスク毎の処理対象範囲情報233を生成する。
すなわち、情報処理装置1は、外部DB3に格納されたレコードを対象とするクエリを受け付けた場合、そのクエリの実行を情報処理装置2にオフロードする。そして、情報処理装置2は、情報処理装置1からオフロードされたクエリの実行を複数のサーバにおいて並列に行う。
これにより、情報処理システム10は、情報処理装置2によるクエリの実行を効率良く行うことが可能になる。そのため、事業者は、外部DB3の利用を効率良く行うことが可能なマルチモデルデータベースを構築することが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
処理対象のクエリの入力を受け付ける第1情報処理装置と、前記クエリの実行を複数のタスク毎に並列して行う第2情報処理装置とを有する情報処理システムであって、
前記第1情報処理装置は、
端末より入力を受け付けたクエリの対象となるレコードが外部データベースサーバに存在するか否かを判定し、
前記クエリの対象となるレコードが前記外部データベースサーバに存在すると判定した場合、前記外部データベースサーバにアクセスするための接続情報を特定し、
前記クエリと前記接続情報とを前記第2情報処理装置に送信し、
前記第2情報処理装置は、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバに接続して、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの格納状況を示す情報を取得し、
取得した前記格納状況を示す情報に基づいて、前記クエリの対象となるレコードについての前記複数のタスク毎の処理対象範囲を決定する、
ことを特徴とする情報処理システム。
処理対象のクエリの入力を受け付ける第1情報処理装置と、前記クエリの実行を複数のタスク毎に並列して行う第2情報処理装置とを有する情報処理システムであって、
前記第1情報処理装置は、
端末より入力を受け付けたクエリの対象となるレコードが外部データベースサーバに存在するか否かを判定し、
前記クエリの対象となるレコードが前記外部データベースサーバに存在すると判定した場合、前記外部データベースサーバにアクセスするための接続情報を特定し、
前記クエリと前記接続情報とを前記第2情報処理装置に送信し、
前記第2情報処理装置は、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバに接続して、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの格納状況を示す情報を取得し、
取得した前記格納状況を示す情報に基づいて、前記クエリの対象となるレコードについての前記複数のタスク毎の処理対象範囲を決定する、
ことを特徴とする情報処理システム。
(付記2)
付記1において、
前記第2情報処理装置は、並列分散処理基盤を構成するサーバ群であり、
前記サーバ群は、前記複数のタスクのそれぞれに対応する処理を実行する複数のサーバを含む、
ことを特徴とする情報処理システム。
付記1において、
前記第2情報処理装置は、並列分散処理基盤を構成するサーバ群であり、
前記サーバ群は、前記複数のタスクのそれぞれに対応する処理を実行する複数のサーバを含む、
ことを特徴とする情報処理システム。
(付記3)
付記1において、
前記第2情報処理装置は、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバへ接続して、前記外部データベースサーバに記憶された前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理システム。
付記1において、
前記第2情報処理装置は、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバへ接続して、前記外部データベースサーバに記憶された前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理システム。
(付記4)
付記3において、
前記第2情報処理装置は、前記物理的格納位置が連続する複数のレコードが同一のタスクの処理対象範囲に含まれるように、前記処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理システム。
付記3において、
前記第2情報処理装置は、前記物理的格納位置が連続する複数のレコードが同一のタスクの処理対象範囲に含まれるように、前記処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理システム。
(付記5)
付記3において、
前記第2情報処理装置は、前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信する、
ことを特徴とする情報処理システム。
付記3において、
前記第2情報処理装置は、前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信する、
ことを特徴とする情報処理システム。
(付記6)
付記1において、
前記第1情報処理装置は、
前記クエリの対象となるレコードが前記外部データベースサーバに存在しないと判定した場合、前記第1情報処理装置に記憶されたレコードを対象として前記クエリを実行する、
ことを特徴とする情報処理システム。
付記1において、
前記第1情報処理装置は、
前記クエリの対象となるレコードが前記外部データベースサーバに存在しないと判定した場合、前記第1情報処理装置に記憶されたレコードを対象として前記クエリを実行する、
ことを特徴とする情報処理システム。
(付記7)
処理対象のクエリの入力を受け付ける第1情報処理装置と、前記クエリの実行を複数のタスク毎に並列して行う第2情報処理装置とを有する情報処理システムにおける情報処理方法であって、
前記第1情報処理装置が、
端末より入力を受け付けたクエリの対象となるレコードが外部データベースサーバに存在するか否かを判定し、
前記クエリの対象となるレコードが前記外部データベースサーバに存在すると判定した場合、前記外部データベースサーバにアクセスするための接続情報を特定し、
前記クエリと前記接続情報とを前記第2情報処理装置に送信し、
前記第2情報処理装置が、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバに接続して、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの格納状況を示す情報を取得し、
取得した前記格納状況を示す情報に基づいて、前記クエリの対象となるレコードについての前記複数のタスク毎の処理対象範囲を決定する、
ことを特徴とする情報処理方法。
処理対象のクエリの入力を受け付ける第1情報処理装置と、前記クエリの実行を複数のタスク毎に並列して行う第2情報処理装置とを有する情報処理システムにおける情報処理方法であって、
前記第1情報処理装置が、
端末より入力を受け付けたクエリの対象となるレコードが外部データベースサーバに存在するか否かを判定し、
前記クエリの対象となるレコードが前記外部データベースサーバに存在すると判定した場合、前記外部データベースサーバにアクセスするための接続情報を特定し、
前記クエリと前記接続情報とを前記第2情報処理装置に送信し、
前記第2情報処理装置が、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバに接続して、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの格納状況を示す情報を取得し、
取得した前記格納状況を示す情報に基づいて、前記クエリの対象となるレコードについての前記複数のタスク毎の処理対象範囲を決定する、
ことを特徴とする情報処理方法。
(付記8)
付記7において、
前記2情報処理装置が、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバへ接続して、前記外部データベースサーバに記憶された前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理方法。
付記7において、
前記2情報処理装置が、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバへ接続して、前記外部データベースサーバに記憶された前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理方法。
(付記9)
付記8において、
前記第2情報処理装置は、前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信する、
ことを特徴とする情報処理方法。
付記8において、
前記第2情報処理装置は、前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信する、
ことを特徴とする情報処理方法。
(付記10)
処理対象のクエリと外部データベースサーバにアクセスするための接続情報とを受け付け、
受け付けた前記接続情報に基づいて外部データベースサーバに接続し、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
処理対象のクエリと外部データベースサーバにアクセスするための接続情報とを受け付け、
受け付けた前記接続情報に基づいて外部データベースサーバに接続し、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
(付記11)
付記10において、
前記決定する処理では、前記物理的格納位置が連続する複数のレコードが同一のタスクの処理対象範囲に含まれるように、前記処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理プログラム。
付記10において、
前記決定する処理では、前記物理的格納位置が連続する複数のレコードが同一のタスクの処理対象範囲に含まれるように、前記処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理プログラム。
(付記12)
付記10において、さらに、
前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
付記10において、さらに、
前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
(付記13)
処理対象のクエリと外部データベースサーバにアクセスするための接続情報とを受け付けるクエリ受信部と、
受け付けた前記接続情報に基づいて外部データベースサーバに接続し、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの物理的格納位置に関する情報を取得する格納情報取得部と、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する範囲決定部と、を有する、
ことを特徴とする情報処理装置。
処理対象のクエリと外部データベースサーバにアクセスするための接続情報とを受け付けるクエリ受信部と、
受け付けた前記接続情報に基づいて外部データベースサーバに接続し、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの物理的格納位置に関する情報を取得する格納情報取得部と、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する範囲決定部と、を有する、
ことを特徴とする情報処理装置。
(付記14)
付記13において、
前記範囲決定部は、前記物理的格納位置が連続する複数のレコードが同一のタスクの処理対象範囲に含まれるように、前記処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理装置。
付記13において、
前記範囲決定部は、前記物理的格納位置が連続する複数のレコードが同一のタスクの処理対象範囲に含まれるように、前記処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理装置。
(付記15)
付記13において、さらに、
前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信するクエリ送信部を有する、
ことを特徴とする情報処理装置。
付記13において、さらに、
前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信するクエリ送信部を有する、
ことを特徴とする情報処理装置。
(付記16)
処理対象のクエリと外部データベースサーバにアクセスするための接続情報とを受け付け、
受け付けた前記接続情報に基づいて外部データベースサーバに接続し、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
処理をコンピュータに実行させることを特徴とする情報処理方法。
処理対象のクエリと外部データベースサーバにアクセスするための接続情報とを受け付け、
受け付けた前記接続情報に基づいて外部データベースサーバに接続し、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
処理をコンピュータに実行させることを特徴とする情報処理方法。
(付記17)
付記16において、
前記決定する処理では、
前記物理的格納位置が連続する複数のレコードが同一のタスクの処理対象範囲に含まれるように、前記処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理方法。
付記16において、
前記決定する処理では、
前記物理的格納位置が連続する複数のレコードが同一のタスクの処理対象範囲に含まれるように、前記処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理方法。
(付記18)
付記16において、さらに、
前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
付記16において、さらに、
前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
1:情報処理装置 1a:内部DB
2:情報処理装置 3a:外部DB
3b:外部DB 3c:外部DB
10:情報処理システム
2:情報処理装置 3a:外部DB
3b:外部DB 3c:外部DB
10:情報処理システム
Claims (10)
- 処理対象のクエリの入力を受け付ける第1情報処理装置と、前記クエリの実行を複数のタスク毎に並列して行う第2情報処理装置とを有する情報処理システムであって、
前記第1情報処理装置は、
端末より入力を受け付けたクエリの対象となるレコードが外部データベースサーバに存在するか否かを判定し、
前記クエリの対象となるレコードが前記外部データベースサーバに存在すると判定した場合、前記外部データベースサーバにアクセスするための接続情報を特定し、
前記クエリと前記接続情報とを前記第2情報処理装置に送信し、
前記第2情報処理装置は、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバに接続して、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの格納状況を示す情報を取得し、
取得した前記格納状況を示す情報に基づいて、前記クエリの対象となるレコードについての前記複数のタスク毎の処理対象範囲を決定する、
ことを特徴とする情報処理システム。 - 請求項1において、
前記第2情報処理装置は、並列分散処理基盤を構成するサーバ群であり、
前記サーバ群は、前記複数のタスクのそれぞれに対応する処理を実行する複数のサーバを含む、
ことを特徴とする情報処理システム。 - 請求項1において、
前記第2情報処理装置は、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバへ接続して、前記外部データベースサーバに記憶された前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理システム。 - 請求項3において、
前記第2情報処理装置は、前記物理的格納位置が連続する複数のレコードが同一のタスクの処理対象範囲に含まれるように、前記処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
ことを特徴とする情報処理システム。 - 請求項3において、
前記第2情報処理装置は、前記タスク分割数に対応するタスク毎に、各タスクの前記処理対象範囲に対応するレコードを記憶する前記外部データベースサーバに対して前記クエリを送信する、
ことを特徴とする情報処理システム。 - 請求項1において、
前記第1情報処理装置は、
前記クエリの対象となるレコードが前記外部データベースサーバに存在しないと判定した場合、前記第1情報処理装置に記憶されたレコードを対象として前記クエリを実行する、
ことを特徴とする情報処理システム。 - 処理対象のクエリの入力を受け付ける第1情報処理装置と、前記クエリの実行を複数のタスク毎に並列して行う第2情報処理装置とを有する情報処理システムにおける情報処理方法であって、
前記第1情報処理装置が、
端末より入力を受け付けたクエリの対象となるレコードが外部データベースサーバに存在するか否かを判定し、
前記クエリの対象となるレコードが前記外部データベースサーバに存在すると判定した場合、前記外部データベースサーバにアクセスするための接続情報を特定し、
前記クエリと前記接続情報とを前記第2情報処理装置に送信し、
前記第2情報処理装置が、
前記第1情報処理装置から受信した前記接続情報に基づいて前記外部データベースサーバに接続して、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの格納状況を示す情報を取得し、
取得した前記格納状況を示す情報に基づいて、前記クエリの対象となるレコードについての前記複数のタスク毎の処理対象範囲を決定する、
ことを特徴とする情報処理方法。 - 処理対象のクエリと外部データベースサーバにアクセスするための接続情報とを受け付け、
受け付けた前記接続情報に基づいて外部データベースサーバに接続し、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。 - 処理対象のクエリと外部データベースサーバにアクセスするための接続情報とを受け付けるクエリ受信部と、
受け付けた前記接続情報に基づいて外部データベースサーバに接続し、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの物理的格納位置に関する情報を取得する格納情報取得部と、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する範囲決定部と、を有する、
ことを特徴とする情報処理装置。 - 処理対象のクエリと外部データベースサーバにアクセスするための接続情報とを受け付け、
受け付けた前記接続情報に基づいて外部データベースサーバに接続し、前記外部データベースサーバに記憶されたレコードのうち、前記クエリの対象となるレコードの物理的格納位置に関する情報を取得し、
取得した前記物理的格納位置に関する情報と、予め設定されたタスク分割数とに基づいて、前記クエリの対象となるレコードの処理対象範囲を前記タスク分割数に対応するタスク毎に決定する、
処理をコンピュータに実行させることを特徴とする情報処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020054536A JP2021157288A (ja) | 2020-03-25 | 2020-03-25 | 情報処理システム、情報処理方法、情報処理プログラム及び情報処理装置 |
EP21153715.4A EP3885930A1 (en) | 2020-03-25 | 2021-01-27 | Information processing system, information processing device, information processing program, and information processing method |
US17/162,935 US11709832B2 (en) | 2020-03-25 | 2021-01-29 | Information processing system, information processing device, and non-transitory computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020054536A JP2021157288A (ja) | 2020-03-25 | 2020-03-25 | 情報処理システム、情報処理方法、情報処理プログラム及び情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021157288A true JP2021157288A (ja) | 2021-10-07 |
Family
ID=74285383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020054536A Pending JP2021157288A (ja) | 2020-03-25 | 2020-03-25 | 情報処理システム、情報処理方法、情報処理プログラム及び情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11709832B2 (ja) |
EP (1) | EP3885930A1 (ja) |
JP (1) | JP2021157288A (ja) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4533974B2 (ja) | 1996-08-01 | 2010-09-01 | 康 清木 | 異種データベース統合システム |
JP4822889B2 (ja) | 2006-03-20 | 2011-11-24 | 富士通株式会社 | データベース統合参照プログラム、データベース統合参照方法及びデータベース統合参照装置 |
US9424315B2 (en) * | 2007-08-27 | 2016-08-23 | Teradata Us, Inc. | Methods and systems for run-time scheduling database operations that are executed in hardware |
EP2275951A1 (en) * | 2009-07-17 | 2011-01-19 | Accenture Global Services GmbH | A data processing method, system, and computer program product |
JP6107218B2 (ja) * | 2013-02-25 | 2017-04-05 | 富士通株式会社 | 制御装置,制御方法,および制御プログラム |
JP6107429B2 (ja) * | 2013-05-30 | 2017-04-05 | 富士通株式会社 | データベースシステム、検索方法およびプログラム |
JP6651736B2 (ja) * | 2015-08-21 | 2020-02-19 | 富士通株式会社 | タスク実行支援方法、タスク実行支援装置およびタスク実行支援プログラム |
US11159338B1 (en) * | 2016-06-17 | 2021-10-26 | Amazon Technologies, Inc. | Device state information access through machine-readable labels |
US11023463B2 (en) * | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US10366082B2 (en) * | 2016-12-09 | 2019-07-30 | Oracle International Corporation | Parallel processing of queries with inverse distribution function |
US11172014B2 (en) * | 2019-08-21 | 2021-11-09 | Open Text Sa Ulc | Smart URL integration using serverless service |
-
2020
- 2020-03-25 JP JP2020054536A patent/JP2021157288A/ja active Pending
-
2021
- 2021-01-27 EP EP21153715.4A patent/EP3885930A1/en not_active Withdrawn
- 2021-01-29 US US17/162,935 patent/US11709832B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11709832B2 (en) | 2023-07-25 |
US20210303567A1 (en) | 2021-09-30 |
EP3885930A1 (en) | 2021-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11349940B2 (en) | Server side data cache system | |
US10769148B1 (en) | Relocating data sharing operations for query processing | |
AU2014212780B2 (en) | Data stream splitting for low-latency data access | |
US11301446B1 (en) | System and method for interacting with a plurality of data sources | |
US20070226177A1 (en) | Evaluating a current partitioning of a database | |
US9489429B2 (en) | Computer system, data management method, and program | |
JP2007025785A (ja) | データベース処理方法、システム及びプログラム | |
US12026159B2 (en) | Transient materialized view rewrite | |
US11216421B2 (en) | Extensible streams for operations on external systems | |
US20070198482A1 (en) | Dynamic data formatting during transmittal of generalized byte strings, such as XML or large objects, across a network | |
EP4097602A1 (en) | Streams on shared database objects | |
US20230267130A1 (en) | Analytical query processing with decoupled compute instances | |
US8719269B2 (en) | Configuration information management device, distributed information management system, and distributed information management method | |
US20200293446A1 (en) | In-memory normalization of cached objects to reduce cache memory footprint | |
EP3507699B1 (en) | Method and systems for master establishment using service-based statistics | |
JP2021157288A (ja) | 情報処理システム、情報処理方法、情報処理プログラム及び情報処理装置 | |
US11461274B2 (en) | Processing streams on external data sources | |
US11995080B1 (en) | Runtime join pruning to improve join performance for database tables | |
US20190370259A1 (en) | Devices and methods for implementing dynamic collaborative workflow systems | |
US12045221B1 (en) | Compact representation of table columns via templatization | |
JP2022011746A (ja) | 情報処理プログラム、情報処理装置及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231024 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20240416 |