JP2010271931A - データ処理システム、データ処理方法、およびデータ処理プログラム - Google Patents

データ処理システム、データ処理方法、およびデータ処理プログラム Download PDF

Info

Publication number
JP2010271931A
JP2010271931A JP2009123304A JP2009123304A JP2010271931A JP 2010271931 A JP2010271931 A JP 2010271931A JP 2009123304 A JP2009123304 A JP 2009123304A JP 2009123304 A JP2009123304 A JP 2009123304A JP 2010271931 A JP2010271931 A JP 2010271931A
Authority
JP
Japan
Prior art keywords
data
calculation processing
calculation
storage unit
processing
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
Application number
JP2009123304A
Other languages
English (en)
Inventor
Ryoichi Ueda
良一 植田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009123304A priority Critical patent/JP2010271931A/ja
Priority to PCT/JP2010/053114 priority patent/WO2010134370A1/ja
Publication of JP2010271931A publication Critical patent/JP2010271931A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】情報処理装置における計算処理時間や計算処理能力の効率的な利用を図る。
【解決手段】他装置と通信する通信部107と、計算処理対象データの母集団を記憶する記憶部101と、所定数の計算処理対象データからなるデータ群をデータ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部101に格納する部分データ作成部110と、端末200からの計算処理要求を前記通信部107を介して受信し当該計算処理要求が示す計算処理を前記記憶部101における各部分データに対し順次実行し1または所定数の部分データに対する計算処理結果が得られるごとに該当部分データに関する計算処理結果を前記端末200に返信する計算処理実行部111とを備える情報処理装置100からデータ処理システム10を構成する。
【選択図】図1

Description

本発明は、データ処理システム、データ処理方法、およびデータ処理プログラムに関する。
GPS(Global Positioning System)やRFID、電子マネー、eコマースの普及により、これまで電子化されていなかった実世界の人間活動の情報が電子化されるようになりつつある。これら電子化されたデータを収集/分析/活用することで様々なメリットがある。一方、処理対象の前記電子化データは膨大な数となりがちで、計算完了までに長時間を要するため、この点を考慮した技術が提案されている。例えば、検索対象データ全体のうち一部分のみを対象として予備的な検索を実施し、その結果を確認用データとしてクライアントに返送し、その後に全データへの検索要求が来たら、あらためて全データを対象として検索を実施することで、利用者が予期しない結果の返送による転送時間の無駄をなくす技術が提案されている(特許文献1参照)。
特開平6−266760号公報
ところで、プログラム開発時などに、前記電子化データに関する計算結果がプログラムのパラメータ値など各種用途に利用される場合がある。プログラムの開発者は、一旦は前記電子化データに関する計算要求を情報処理装置に指示したが、プログラムミスなどで意図しない計算要求となったことが判明した時など、その計算要求を取りやめたい場合もある。また、各種パラメータ等の設定に躊躇しがちなプログラム開発時ゆえに、前記プログラム開発者は、前記電子化データに関する複数段階(サンプリングデータ=処理対象データの範囲や規模が複数段階)の計算処理結果を順次確認していきたい場合もある。
一方、従来技術を上記状況に適用するとすれば、データ母集団からデータをサンプリングする手法やサンプリングするデータ数などに関しバリエーションが無く、予備的計算も一度しか行われないことになる。この場合の利用者は、一度の予備的計算の結果のみで全データ対象の計算結果を推測する必要が生じる。また、予備的計算が一度のみであるから、計算要求がプログラム開発の意図に沿ったものであったか否か、プログラム開発者が計算結果を適切に検証することは難しく、結局は全データ対象の計算処理を実行せざるを得ないこととなりやすい。従って、計算要求が意図に沿わないものであったとしても、全データ対象の計算処理が実行されることになり、計算処理を行う情報処理装置における計算時間や計算能力の無駄使いが非常に大きくなるという問題点がある。こうした問題点は、処理対象のデータ数が膨大であればあるほど、より大きくなる。
そこで本発明は上記課題を鑑みてなされたものであり、情報処理装置における計算処理時間や計算処理能力の効率的な利用を図る技術の提供を主たる目的とする。
上記課題を解決する本発明のデータ処理システムは、例えば、GPS装置から得た位置データや、企業や商店等での販売実績データなど、膨大な数のデータに対して、四則演算の他、平均値、合計値、各種偏差、など各種統用の計算処理などを行う情報処理装置からなるものであり、一例としてクライアントから計算要求を受けて該当計算処理を実行するサーバ装置を想定できる。
こうしたデータ処理システムにおける前記情報処理装置は、他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部と、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する、部分データ作成部と、端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する、計算処理実行部とを備える。
なお、前記情報処理装置の部分データ作成部は、含まれる計算処理対象データ数が互いに異なる部分データを、部分データ間でのデータ重複無く前記母集団から複数抽出して記憶部に格納するとしてもよい。
この場合、前記情報処理装置の計算処理実行部は、端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における部分データのうち、含まれる計算処理対象データ数が少ない順に順次実行し、含まれる計算処理対象データ数が少ない部分データ順に計算処理結果を前記端末に返信することとなる。
また、前記情報処理装置の記憶部は、計算処理の種類毎に、前記部分データに関する計算処理結果の各部分データ間での統合可否の情報を記憶しているとしてもよい。
この時、前記情報処理装置の部分データ作成部は、前記部分データたる分割データとして、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して記憶部に格納し、前記部分データたるサンプリングデータとして、含まれる計算処理対象データが互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず前記母集団から複数抽出して記憶部に格納するとしてもよい。
また、前記情報処理装置の計算処理実行部は、前記端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理の情報を、前記記憶部の前記統合可否情報に照合する。そして、該当計算処理が各部分データ間で計算処理結果の統合可であるものである時、前記計算処理実行部は、前記記憶部における各分割データに対し該当計算処理を順次実行し、1の分割データに対する計算処理結果が得られるごとに記憶部に格納し、直前に得ている他分割データに関する計算処理結果が記憶部になければ前記計算処理結果を前記端末に返信し、直前に得ている他分割データに関する計算処理結果が記憶部にあれば該当計算処理結果と統合処理し、統合処理した計算処理結果を前記端末に返信する。他方、該当計算処理が各部分データ間で計算処理結果の統合不可であるものである時、前記計算処理実行部は、前記記憶部における各サンプリングデータに対し該当計算処理を実行し、各サンプリングデータに対する計算処理結果が得られるごとに、該当サンプリングデータに関する計算処理結果を前記端末に返信する。
また、前記情報処理装置の部分データ作成部は、予め定めた所定要素を検索キーとして前記母集団から計算処理対象データを検索し、当該検索処理で得た計算処理対象データ群より、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く複数抽出して、或いは、含まれる計算処理対象データ数が互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず複数抽出して部分データとして記憶部に格納する、としてもよい。
また、前記情報処理装置の計算処理実行部は、前記端末からの計算停止要求を前記通信部を介して受信し、当該計算停止要求を受けた時点で前記部分データへの計算処理の実行を停止する、としてもよい。
また、前記情報処理装置は、ネットワークで結ばれた従属計算機と通信してその稼働状況を記憶部において記憶しているとしてもよい。この場合、前記計算処理実行部は、前記端末からの計算処理要求を前記通信部を介して受信したならば、前記記憶部において従属計算機の稼働状況を読み取り、計算処理を依頼可能な従属計算機に対し、前記計算処理要求が示す計算処理の情報と、前記記憶部から読み出した1または所定数の部分データとを含む計算依頼を送信し、前記1または所定数の部分データに対する計算処理結果を従属計算機から得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する、とすれば好適である。
また、本発明のデータ処理方法は、他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部とを備えた情報処理装置が、以下の処理を実行することを特徴とする。すなわち、前記情報処理装置は、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する処理と、端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する処理と、を実行する。
また、本発明のデータ処理プログラムは、他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部とを備えた情報処理装置に、以下の処理を実行させることを特徴とする。すなわち、前記データ処理プログラムは、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する処理と、端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する処理と、を前記情報処理装置に実行させる。
本発明によれば、情報処理装置における計算処理時間や計算処理能力の効率的な利用を図ることができる。
本実施形態のデータ処理システムのネットワーク構成図である。 サーバ計算機(情報処理装置)のハードウェア構成を示す図である。 クライアント計算機(端末)のハードウェア構成を示す図である。 母集団テーブルと部分データとの関係を説明した図である。 本実施形態の母集団テーブルの例を示す図である。 本実施形態のデータ処理方法の処理手順例1を示すフロー図である。 本実施形態における分割データの例1を示す図である。 本実施形態における分割データの例2を示す図である。 本実施形態におけるサンプリングデータの例を示す図である。 本実施形態の統合可否テーブルの例を示す図である。 本実施形態のデータ処理方法の処理手順例2を示すフロー図である。 本実施形態における計算処理要求と計算処理結果の例1を示す図である。 本実施形態における計算処理要求と計算処理結果の例2を示す図である。 他実施形態のデータ処理システムのネットワーク構成図である。 他実施形態における従属計算機のハードウェア構成を示す図である。 他実施形態におけるデータ処理方法の処理手順例を示す図である。
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態のデータ処理システム10のネットワーク構成図である。図1に示すデータ処理システム10は、利用者が大量のデータに関する計算処理結果を効率的に推測可能な情報を提供可能であり、情報処理装置における計算処理時間や計算処理能力の効率的な利用を図るコンピュータシステムである。本実施形態において、前記データ処理システム10(以下システム10)は、例えば、サーバ計算機100(情報処理装置)を含むものである。このサーバ計算機100はクライアント計算機200(端末)から計算処理要求を受けて計算処理対象データに対する計算処理を実行し、その結果を返信する。そのため、前記サーバ計算機100とクライアント計算機200はネットワーク190で結ばれている。
図2は、サーバ計算機(情報処理装置)のハードウェア構成を示す図である。こうした本実施形態における前記サーバ計算機100は、ハードディスクドライブなどの不揮発性記憶装置たる記憶部101に格納されたプログラム102をメモリ103に読み出し、演算装置たるCPU104により実行する。また、前記サーバ計算機100は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力装置105、ディスプレイなどの出力装置106を備えることができる。また、前記クライアント計算機200との間のデータ授受を担うNIC(Network Interface Card)など通信部107を有している。
続いて、前記サーバ計算機100が、例えばプログラム102に基づき前記記憶部101にて構成・保持する機能部につき説明を行う。なお、前記サーバ計算機100は、記憶装置101(記憶部)において、母集団テーブル125、分割データ126、サンプリングデータ127、統合可否テーブル128を格納している(各テーブルについては後述する)。
前記サーバ計算機100は、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団テーブル125から複数抽出して部分データとして記憶部101に格納する、部分データ作成部110を備える。
また、前記サーバ計算機100は、クライアント計算機200からの計算処理要求を前記通信部107を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部101における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記クライアント計算機200に返信する、計算処理実行部111を備える。
なお、前記部分データ作成部110は、含まれる計算処理対象データ数が互いに異なる部分データを、部分データ間でのデータ重複無く前記母集団テーブル125から複数抽出し、分割データ126として記憶部101に格納するとしてよい。
この場合、前記計算処理実行部111は、クライアント計算機200からの計算処理要求を前記通信部107を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部101における部分データ=分割データ126のうち、含まれる計算処理対象データ数が少ない順に順次実行し、含まれる計算処理対象データ数が少ない部分データ順=分割データ順に計算処理結果を前記クライアント計算機200に返信する、こととなる。
また、前記記憶部101は、計算処理の種類毎に、前記部分データに関する計算処理結果の各部分データ間での統合可否の情報として、統合可否テーブル128を記憶しているとしてもよい。この場合、前記部分データ作成部110は、前記部分データたる分割データ126として、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団テーブル125から複数抽出して記憶部101に格納する。また、前記部分データ作成部110は、前記部分データたるサンプリングデータ127として、含まれる計算処理対象データが互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず前記母集団テーブル125から複数抽出して記憶部101に格納する。
一方、前記計算処理実行部111は、前記クライアント計算機200からの計算処理要求を前記通信部107を介して受信し、当該計算処理要求が示す計算処理の情報を、前記記憶部101の前記統合可否テーブル128に照合する。この照合の結果、該当計算処理が各部分データ間で計算処理結果の統合可であるものであれば、前記計算処理実行部111は、前記記憶部101における各分割データ126に対し該当計算処理を順次実行し、1の分割データ126に対する計算処理結果が得られるごとに記憶部101に格納し、直前に得ている他分割データに関する計算処理結果が記憶部101になければ前記計算処理結果を前記クライアント計算機200に返信する。また、直前に得ている他分割データに関する計算処理結果が記憶部101にあれば該当計算処理結果と統合処理し、統合処理した計算処理結果を前記クライアント計算機200に返信する。
他方、前記照合の結果、該当計算処理が各部分データ間で計算処理結果の統合不可であるものであれば、前記計算処理実行部111は、前記記憶部101における各サンプリングデータ127に対し該当計算処理を実行し、各サンプリングデータ127に対する計算処理結果が得られるごとに、該当サンプリングデータ127に関する計算処理結果を前記クライアント計算機200に返信することとなる。
なお、上記で述べた「部分データ間で計算処理結果の統合可」とは、例えば、計算処理要求が示す計算処理が「平均」や「合計値」などであれば、ある分割データAに対して既に得られている計算処理結果aと、今時得られた分割データBに関する計算処理結果bとは「統合」できることを意味する。具体的には、前記計算処理結果aが、3つの計算処理対象データの平均値a1であり、前記計算処理結果bが、6つの計算処理対象データの平均値b1である時、“((平均値a1×3)+(平均値b1×6))/(6+3)”の計算を行えば、前記計算処理結果bに前記計算処理結果aを統合することができる。一方、例えば、計算処理要求が示す計算処理が「標準偏差」などであれば、ある分割データAに対して既に得られている計算処理結果aと、今時得られた分割データBに関する計算処理結果bとを「統合」できないことになる。
また、前記サーバ計算機100の部分データ作成部110は、予め定めた所定要素(例:ユーザIDなど)を検索キーとして前記母集団テーブル125から計算処理対象データを検索し、当該検索処理で得た計算処理対象データ群より、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く複数抽出して、或いは、含まれる計算処理対象データ数が互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず複数抽出して部分データとして記憶部101に格納するとしてもよい。
また、前記サーバ計算機100の計算処理実行部111は、前記クライアント計算機200からの計算停止要求を前記通信部107を介して受信し、当該計算停止要求を受けた時点で前記部分データへの計算処理の実行を停止する、としてもよい。
図3はクライアント計算機200のハードウェア構成を示す図である。一方、前記クライアント計算機200は、例えば、プログラム開発を行っていて、前記母集団テーブル125における計算処理対象データに関する計算処理結果を、プログラム開発に活用したいユーザが利用する端末である。このクライアント計算機200は、コンピュータとして、当然に、ハードディスクドライブなどの不揮発性記憶装置たる記憶部201に格納されたプログラム202をメモリ203に読み出し、演算装置たるCPU204により実行する。また、前記クライアント計算機200は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力装置205、ディスプレイなどの出力装置206を備える。また、前記サーバ計算機100との間のデータ授受を担うNIC(Network Interface Card)など通信部207を有している。前記クライアント計算機200は、例えば前記プログラム202として計算処理要求/結果受信/表示プログラム210を備える。前記クライアント計算機200は、このプログラム210を実行することで、入力装置205より前記ユーザからの計算処理要求の指示受け付け、受け付けた計算処理要求をサーバ計算機100へ送信、サーバ計算機100からの計算処理要求の受信、計算処理結果を出力装置206へ表示、という一連の処理を行う。
これまで示した前記システム10を構成する前記サーバ計算機100における各部110〜111はハードウェアとして実現してもよいし、メモリやHDD(Hard Disk Drive)などの適宜な記憶装置に格納したプログラムとして実現するとしてもよい。この場合、各情報処理装置のCPUがプログラム実行に合わせて記憶装置より該当プログラムをメモリに読み出して、これを実行することとなる。
−−−テーブル構造例1(母集団テーブル)−−−
次に、本実施形態の前記システム10が利用するテーブルの例について説明する。図4は母集団テーブル125と部分データとの関係を説明した図であり、図5は本実施形態の母集団テーブル125の例を示す図である。前記母集団テーブル125は、全ての計算処理対象データの集合である。図5に示す母集団テーブル125の例では、ID501が“1”〜“9”までの9レコードの計算処理対象データを含む母集団テーブル125であり、各レコードは、商品購入を行ったユーザを示す“UserID”502、購入日たる“day”503、購入額たる“Price”504、購入商品を示す“ProductID”505の各データを含んでいる。
例えば、前記母集団テーブル125内のレコード511は売上番号たるIDが「1」、ユーザIDが「U_A0017」の利用者が「2009年1月6日」に商品ID「P_0005」の商品を「1000円」で購入したことを意味する。本実施形態のデータ処理方法は多数のレコード、および多数のテーブルからなる巨大なデータを処理する際に特に効果があるが、ここでは分かりやすくするため9レコードのテーブル1つだけの小さなデータを使って説明をしている。
−−−処理フロー例1(部分データの生成処理)−−−
以下、本実施形態におけるデータ処理方法の実際手順について図に基づき説明する。なお、以下で説明するデータ処理方法に対応する各種動作は、前記システム10を構成する各装置のメモリに読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
図6は本実施形態のデータ処理方法の処理フロー例1を示す図である。この場合、前記サーバ計算機100の部分データ作成部110は、例えば、前記NIC107を介し前記クライアント計算機200から、母集団テーブル125の分割手法および分割数の指定を受け付ける(s100)。前記指定が、分割手法として「重複無く均等分割」、分割数として「3」を示すものである場合(s101:重複無し均等)、前記部分データ作成部110は、前記記憶部101の母集団テーブル125に対し、計算処理対象データ数のカウントを行ってデータ数「9」を取得し、この「9」つの計算処理対象データを「3」つにグルーピングする処理を行う(s102)。
前記部分データ作成部110が行うこのグルーピング処理は、例えばまず、各分割データが元の母集団テーブル125となるべく同様の統計的性質を持つように、前記母集団テーブル125において各計算処理対象データを時刻順(“day”を基準に)にソートする。その上で、各計算処理対象データにおける“UserID”にハッシュ関数を適用し、所定桁数の整数値に変換する。前記部分データ作成部110はこの整数値を例えば「3」で除算し、余りが「0」となった計算処理対象データを前記時刻順に3つ選択し、1つの分割データ701aとする(図7(a)に示すID“1”、“4”、“7”のレコードを含むもの)。次に前記部分データ作成部110は、前記分割データ701aに含まれる計算処理対象データを除いて、前記整数値に対する「3」での除算を同様に実行し、余りが「0」となった計算処理対象データを前記時刻順に3つ選択し、2つ目の分割データ702aとする(図7(b)に示すID“2”、“5”、“8”のレコードを含むもの)。また、前記部分データ作成部110は、最後に残った3つの計算処理対象データを3つ目の分割データ703aとする(図7(c)に示すID“3”、“6”、“9”のレコードを含むもの)。勿論、前記グルーピング処理については他の手法を採用しても構わない。前記部分データ作成部110は、こうしたグルーピング処理で得た3つの分割データ701a〜703aを記憶部101に格納し(s103)、処理を終了する。
他方、前記クライアント計算機200からの指定が、分割手法として「重複無く不均等分割」、分割数として「2」を示すものである場合(s101:重複無し不均等)、前記部分データ作成部110は、前記記憶部101の母集団テーブル125に対し、計算処理対象データ数のカウントを行ってデータ数「9」を取得し、この「9」つの計算処理対象データを「2」つにグルーピングする処理を行う(s104)。
前記部分データ作成部110が行うこのグルーピング処理は、例えばまず、各分割データが元の母集団テーブル125となるべく同様の統計的性質を持つように、前記母集団テーブル125において各計算処理対象データを時刻順(“day”を基準に)にソートする。その上で、各計算処理対象データにおける“UserID”にハッシュ関数を適用し、所定桁数の整数値に変換する。前記部分データ作成部110はこの整数値を例えば「3」で除算し、例えば、余りが「0」〜「2」となった計算処理対象データを前記時刻順に6つ選択し、1つの分割データ701bとする(図8(a)に示すID“1”、“4”、“7”、“2”、“5”、“8”のレコードを含むもの)。次に前記部分データ作成部110は、最後に残った3つの計算処理対象データを2つ目の分割データ702bとする(図8(b)に示すID“3”、“6”、“9”のレコードを含むもの)。勿論、前記グルーピング処理については他の手法を採用しても構わない。前記部分データ作成部110は、こうしたグルーピング処理で得た2つの分割データ701b、702bを記憶部101に格納し(s105)、処理を終了する。
なお、上記ではあくまで分割処理の一例として、母集団テーブル125が含む処理対象データを3つないし2つのより小さな分割データ701a〜703a、ないし701b〜702bに分割する例を示した。母集団テーブル125が含む計算処理対象データの数に応じて、上記同様の手法で10分割、100分割するとしても勿論よい。10分割する場合、前記部分データ作成部110は、例えばまず、各分割データが元の母集団テーブル125となるべく同様の統計的性質を持つように、前記母集団テーブル125において各計算処理対象データを時刻順(“day”を基準に)にソートする。その上で、各計算処理対象データにおける“UserID”にハッシュ関数を適用し、所定桁数の整数値に変換する。前記部分データ作成部110はこの整数値を例えば「10」で除算し、余りが「1」となった計算処理対象データを選択することで、元の母集団テーブル125での計算処理対象データ数を10分の1した、1つの分割データを得ることができる。また同様に、前記部分データ作成部110は前記整数値を例えば「100」で除算し、余りが「1」となった計算処理対象データを選択することで、元の母集団テーブル125での計算処理対象データ数を100分の1した、1つの分割データを得ることができる。
一方、前記クライアント計算機200からの指定が、分割手法として「重複回避せず不均等分割」、分割数として「2」を示すものである場合(s101:重複無視不均等)、前記部分データ作成部110は、前記記憶部101の母集団テーブル125に対し、計算処理対象データ数のカウントを行ってデータ数「9」を取得し、この「9」つの計算処理対象データを「2」つにグルーピングする処理を行う(s106)。
前記部分データ作成部110が行うこのグルーピング処理は、例えば、ランダムサンプリングにより前記母集団テーブル125から計算処理対象データを6つ選択し、1つのサンプリングデータ901とする(図9(a)に示すID“1”、“4”、“6”、“7”、“8”、“9”のレコードを含むもの)。次に前記部分データ作成部110は、最後に残った3つの計算処理対象データを2つ目のサンプリングデータ902とする(図9(b)に示すID“1”、“6”、“8”のレコードを含むもの)。勿論、前記グルーピング処理については他の手法を採用しても構わない。前記部分データ作成部110は、こうしたグルーピング処理で得た2つのサンプリングデータ901〜902を記憶部101に格納し(s107)、処理を終了する。なお、含まれるデータ数を「3」として均等にサンプリングデータを生成する場合、前記部分データ作成部110は、例えば、ランダムサンプリングにより前記母集団テーブル125から計算処理対象データを3つ選択し、1つのサンプリングデータとし、以下同様の処理で、前記母集団テーブル125から計算処理対象データを3つ選択する処理を2回実行して、あと2つのサンプリングデータを得ることとなる。
なお、前記部分データ作成部110は、予め定めた所定要素(例:ユーザIDなど)を検索キーとして前記母集団テーブル125から計算処理対象データを検索し、当該検索処理で得た計算処理対象データ群より、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く或いはデータ重複回避を考慮せず複数抽出して部分データとして記憶部101に格納するとしてもよい。
この場合、前記部分データ作成部110は、表形式データとなっている母集団テーブル125において、特定列に関して重複のない値の集合を算出し、この集合の大きさを1/10や1/100にするようなレコードの抽出方法を採用する。例えば、母集団テーブル125において、“UserID”502の列の値が「U_A0017、U_B0031、U_A0001、U_S0001」のうちから、1/2にあたる「U_A0001、U_S0001」の2つを選択してキーとし、該当UserIDを持つレコードを母集団テーブル125から抽出する。こうして抽出して分割データとしたのが図9(c)に示す分割データ903である。
なお、前記サーバ計算機100の部分データ作成部110は、記憶部101における前記母集団テーブル125に対する変更イベントを監視し、母集団テーブル125に変更が生じたことを検知すると、上記フローを実行して分割データやサンプリングデータを生成する。
また、前記母集団テーブル125が複数のテーブルから構成される場合、前記部分データ作成部110は、全てのテーブルに対して部分データを生成してもよいし、或いは、一部の大きなテーブル(例:データ数最大のもの)を検索して該当テーブルに対してのみ部分データを生成するとしてもよい。
−−−テーブル構造例2(部分データおよび統合可否テーブル)−−−
上述のように生成された部分データ、つまり分割データ126およびサンプリングデータ127についてその構造例を示す。図7は本実施形態における分割データの例1を示す図であり、図8は本実施形態における分割データの例2を示す図である。分割データ126は、母集団テーブル125(=処理対象データ全体)を分割して重複なく保持するものである。図7に示す分割データ126は、分割データ701a〜703aの3つの分割データを含んでいる。これら分割データ701a〜703aは、含んでいる計算処理対象データ数が同じ「3」つである。ただし、分割データ701a〜703aの各間で、各計算処理対象データは重複していない。一方、図8に示す分割データ126は、分割データ701b〜702bの2つの分割データを含んでいる。これら分割データ701b〜702bは、含んでいる計算処理対象データ数がそれぞれ「6」つと「3」つで異なっている。また、分割データ701b〜702bの各間で、各計算処理対象データは重複していない。
また、図9は本実施形態におけるサンプリングデータ127の例を示す図である。サンプリングデータ127は、母集団テーブル125(=計算処理対象データ全体)から少量をサンプリングしてサンプリング元データ(=母集団テーブル125)と重複する形で保持するものである。図9に示すサンプリングデータ127は、サンプリングデータ901〜902の2つのサンプリングデータを含んでいる。これらサンプリングデータ901〜902は、含んでいる計算処理対象データ数がそれぞれ「6」つと「3」つで異なっている。ただし、サンプリングデータ901〜902の各間で、各計算処理対象データは重複しているものがある(図の例では、ID“1”、“6”、“8”が重複)。
また、図10は本実施形態の統合可否テーブル128の例を示す図である。この統合可否テーブル128は、前記部分データに関する計算処理結果の各部分データ間での統合可否の情報を格納しているテーブルである。ここで、「部分データ間で計算処理結果の統合可」とは、例えば、計算処理要求が示す計算処理が「平均」や「合計値」などであれば、ある分割データAに対して既に得られている計算処理結果aと、今時得られた分割データBに関する計算処理結果bとは「統合」できることを意味する。具体的には、前記計算処理結果aが、3つの計算処理対象データの平均値a1であり、前記計算処理結果bが、6つの計算処理対象データの平均値b1である時、“((平均値a1×3)+(平均値b1×6))/(6+3)”の計算を行えば、前記計算処理結果bに前記計算処理結果aを統合することができる。一方、例えば、計算処理要求が示す計算処理が「標準偏差」などであれば、ある分割データAに対して既に得られている計算処理結果aと、今時得られた分割データBに関する計算処理結果bとを「統合」できないことになる。
従って、図10に示す統合可否テーブル128の例では、前記計算処理に対応する、“sum”=合計、“count”=データ数の計数、“avg”=平均値、“stddev”=標準偏差、といった「関数」1101をキーとして、統合可否1102、経過記録値103、算出式1104といったデータを対応付けたレコードの集合体となっている。前記経過記録値は、分割データ間で計算結果の統合を行う場合に必要となる値であって、計算処理結果ないし当該計算処理結果を算定するに用いた値であり、関数1101が“sum”であれば、後に統合する際にも合計値を単純加算すればよいから“sum”=合計値であり、関数1101が“count”であれば、後に統合する際にもレコード数を単純加算すればよいから“count”=レコード数であり、関数1101が、“avg”であれば、後に統合する際に必要となる、該当平均値を求めるに当たって用いた“sum”=合計値とこれを除算したレコードの数“count”である。関数1101のうち、“stddev”=標準偏差、については計算処理結果の統合は出来ないから、この経過記録値1103と算出式1104の欄は空欄となる。
また、前記算出式1104は、分割データ間で計算処理結果を統合する際の計算式であり、例えば、計算処理要求が示す計算処理が“avg”=平均であれば、ある分割データAに対して既に得られている前記経過記録値1103=“sum1”、“count1”と、今時得られた分割データBに関する前記経過記録値1103=“sum2”、“count2”とに基づき、“(sum1+sum2)/(count1+count2)”の計算を実行すれば、前記分割データAの計算処理結果を分割データBに統合することができる。或いは、例えば、計算処理結果aが、3つの計算処理対象データの平均値a1であり、計算処理結果bが、6つの計算処理対象データの平均値b1である時、“((平均値a1×3)+(平均値b1×6))/(6+3)”の計算を行えば、前記計算処理結果bに前記計算処理結果aを統合することができる。
−−−処理フロー例2−−−
続いて、クライアント計算機200から計算処理要求を受けて計算処理結果の統合等を行う処理について図に基づき説明する。図11は本実施形態のデータ処理方法の処理フロー例2を示す図である。この場合、前記サーバ計算機100の計算処理実行部111は、前記クライアント計算機200からの計算処理要求を前記通信部107を介して受信し、当該計算処理要求が示す計算処理の情報を、前記記憶部101の前記統合可否テーブル128に照合する(s200)。ここで、前記クライアント計算機200からの計算処理要求の例を図12に示す。この計算処理要求601のデータは、例えばSQL言語(Structured Query Language)で記述されており、「SoldItems」と名付けられた母集団テーブル125の「price」列の値の平均(avg)の計算結果を要求するものである。
前記ステップs200での照合処理により、該当計算処理“avg”は前記統合可否テーブル128において、統合可否が「○」=統合可であるから、各部分データ間で計算処理結果の統合処理可であると判定できる(s201:はい)。このように、計算処理要求が示す計算処理の関数が統合処理可能なものであった場合、前記計算処理実行部111は、前記記憶部101の分割データ126の集合の中から処理する分割データを選択する(s202)。当該選択処理については、例えば、分割データのうち含まれる計算処理対象データ数が少ない順に選択するとすればよい。前記計算処理実行部111はここで選択した分割データにに対して前記計算処理要求が指定した関数で計算を実行する(s203)。
ただし、ここでは前記クライアント計算機200が要求した計算結果だけでなく、後の統合処理のために、前記統合可否テーブル128における経過記録値1103に関する計算も行なう。例えば、前記計算処理実行部111は、前記計算処理要求が示す“avg”に関して、図7(a)の分割データ701aに対する「sum」と「count」を計算し、その結果、「sum:63300」、「count:4」の値を得て、記憶部101に格納しておく。
次に前記計算処理実行部111は、ステップs204に進むが、前記分割データ701aに対する処理が最初の分割データに対する処理のため、直前の結果(=他の分割データに関する計算処理結果)がない。そのため、前記計算処理実行部111は、今時の分割データ701aに関する計算処理結果だけを使って、統合可否テーブル128における前記“avg”に関する算出式1104により、平均値「15825」を算出する(s204)。
また、前記計算処理実行部111は、前記ステップ204で計算した、平均値「15825」を前記クライアント計算機200に返送し(s205)、次の分割データの処理に進む(s206)。なお、クライアント計算機200では前記平均値の値を受信し、出力装置206に表示することとなる。図12の計算処理結果のうち、レコード801にその表示例を示す(図では、レコード802,803も表示されているが、この時点ではレコード801のみが表示されているものとする)。欄811の「C」は途中経過値であることを利用者に知らせる記号である。
続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s206)。前記レコード801の表示を前記クライアント計算機200で閲覧したユーザが、これ以上の計算処理の実行を望まないとの意志を持っていたとする。その場合、前記ユーザは前記クライアント計算機200から計算停止要求をサーバ計算機100に送信してくる。一方、前記計算処理実行部111はこの計算停止要求をクライアント計算機200から受信し(s206:はい)、以降の計算処理を停止し処理を終了する。
他方、前記クライアント計算機200から計算停止要求を受信していない場合(s206:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行の分割データを検索する(s207)。このため、計算処理実行部111は計算処理結果を得る毎に、記憶部101の各分割データに対して計算済みフラグを設定するなどすればよい。計算処理が未実行の分割データが記憶部101に無ければ(s207:はい)、処理を終了する。
一方、計算処理が未実行の分割データが記憶部101に存在すれば(s207:いいえ)、前記計算処理実行部111は、処理を前記ステップs202に戻す。ここで選択した分割データが、図7(b)の分割データ702aだったとする。前記計算処理実行部111はこの分割データ702aを選択し、この分割データ702aに対し、前記計算処理要求が指定した関数“avg”で計算を実行する(s203)。上記同様に、前記計算処理実行部111は、前記クライアント計算機200が要求した計算結果だけでなく、後の統合処理のために、前記統合可否テーブル128における経過記録値1103に関する計算も行なう。例えば、前記計算処理実行部111は、前記計算処理要求が示す“avg”に関して、図7(b)の分割データ702aに対する「sum」と「count」を計算し、その結果、処理結果「sum:30480」、「count:3」を得て、記憶部101に格納しておく。
次に前記計算処理実行部111は、直前までの計算結果、つまり前記分割データ701aに対する計算処理結果である「sum:63300」、「count:4」のデータを記憶部101から読み出し、このデータと、今時の分割データ702aの計算処理結果「sum:30480」、「count:3」に、前記算出式1104を適用して統合し、新たな値「sum:93780」、「count:7」を得て、記憶部101を記憶する(s204)。
また、前記計算処理実行部111は、前記ステップs204で得た新たな平均値「13397」を、前記クライアント計算機200に返送する(s205)。前記クライアント計算機200では前記平均値の値を受信し、出力装置206に表示することとなる。図12の計算処理結果のうち、レコード802にその表示例を示す(図では、レコード801、802,803が表示されているが、この時点ではレコード801、802のみが表示されているものとする)。欄811の「C」は途中経過値であることを利用者に知らせる記号である。
続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s206)。前記レコード801に加えてレコード802の表示を前記クライアント計算機200で閲覧したユーザが、これ以上の計算処理の実行を望まないとの意志を持っていたとする。その場合、前記ユーザは前記クライアント計算機200から計算停止要求をサーバ計算機100に送信してくる。一方、前記計算処理実行部111はこの計算停止要求をクライアント計算機200から受信し(s206:はい)、以降の計算処理を停止し処理を終了する。
他方、前記クライアント計算機200から計算停止要求を受信していない場合(s206:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行の分割データを検索する(s207)。計算処理が未実行の分割データが記憶部101に無ければ(s207:はい)、処理を終了する。
一方、計算処理が未実行の分割データが記憶部101に存在すれば(s207:いいえ)、前記計算処理実行部111は、処理を前記ステップs202に戻す。ここで選択した分割データが、図7(c)の分割データ703aだったとする。前記計算処理実行部111はこの分割データ703aを選択し、この分割データ703aに対し、前記計算処理要求が指定した関数“avg”で計算を実行する(s203)。上記同様に、前記計算処理実行部111は、前記クライアント計算機200が要求した計算結果だけでなく、後の統合処理のために、前記統合可否テーブル128における経過記録値1103に関する計算も行なう。例えば、前記計算処理実行部111は、前記計算処理要求が示す“avg”に関して、図7(c)の分割データ703aに対する「sum」と「count」を計算し、その結果、処理結果「sum:22700」、「count:3」を得て、記憶部101に格納しておく。
次に前記計算処理実行部111は、直前までの計算結果、つまり前記分割データ701aと702aに対する計算処理結果を統合したデータである「sum:93780」、「count:7」のデータを記憶部101から読み出し、このデータと、今時の分割データ703aの計算処理結果「sum:22700」、「count:3」に、前記算出式1104を適用して統合し、新たな値「sum:116480」、「count:10」および新たな平均値「11648」を得て、記憶部101を記憶する(s204)。
また、前記計算処理実行部111は、前記ステップs204で得た新たな平均値「11648」を、前記クライアント計算機200に返送する(s205)。前記クライアント計算機200では前記平均値の値を受信し、出力装置206に表示することとなる。図12の計算処理結果のうち、レコード803にその表示例を示す(図では、レコード801、802,803が全て表示されている)。欄811の「F」は最終結果の値であることを利用者に知らせる記号である。
続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s206)。前記計算処理実行部111は計算停止要求をクライアント計算機200から受信した場合(s206:はい)、以降のフローを停止し処理を終了する。他方、前記クライアント計算機200から計算停止要求を受信していない場合(s206:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行の分割データを検索する(s207)。計算処理が未実行の分割データが記憶部101に無ければ(s207:はい)、処理を終了する。
一方、前記ステップ200でクライアント計算機200から受信した計算処理要求が、例えば、“stddev”=標準偏差の計算処理を要求するものであったとする。この場合、前記ステップs200での照合処理により、該当計算処理“stddev”は前記統合可否テーブル128において、統合可否が「×」=統合不可であるから、各部分データ間で計算処理結果の統合処理が出来ない判定できる(s201:いいえ)。
このように、計算処理要求が示す計算処理の関数が統合処理出来ないものであった場合、前記計算処理実行部111は、記憶部101のサンプリングデータ127中から、例えば、含まれる処理対象データ数が最少のものを選択し(s208)、このサンプリングデータに対して、前記関数“sttdev”を適用した計算処理を実行する(s209)。図9に示すサンプリングデータ127の例では、処理対象データ数最少のサンプリングデータはサンプリングデータ901となる。よって、前記計算処理実行部111はこのサンプリングデータ901に対し、標準偏差の計算を実行する。
前記計算処理実行部111は、前記ステップs209の実行の結果、前記サンプリングデータ901に関して、「stddev:8809」なる計算処理結果を得る。計算処理実行部111はこの計算処理結果を、前記クライアント計算機200に返送する(s210)。なお、クライアント計算機200では前記標準偏差の値を受信し、出力装置206に表示することとなる。図13の計算処理結果のうち、レコード1011aにその表示例を示す(図では、レコード1011a,1011b、1012も表示されているが、この時点ではレコード1101aのみが表示されているものとする)。欄1015の「C」は途中経過値であることを利用者に知らせる記号である。
続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s211)。前記レコード1101aの表示を前記クライアント計算機200で閲覧したユーザが、これ以上の計算処理の実行を望まないとの意志を持っていたとする。その場合、前記ユーザは前記クライアント計算機200から計算停止要求をサーバ計算機100に送信してくる。一方、前記計算処理実行部111はこの計算停止要求をクライアント計算機200から受信し(s211:はい)、以降の計算処理を停止し処理を終了する。
他方、前記クライアント計算機200から計算停止要求を受信していない場合(s211:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行のサンプリングデータを検索する(s212)。このため、計算処理実行部111は計算処理結果を得る毎に、記憶部101の各サンプリングデータに対して計算済みフラグを設定するなどすればよい。計算処理が未実行のサンプリングデータが記憶部101に無ければ(s212:はい)、処理を終了する。
一方、計算処理が未実行のサンプリングデータが記憶部101に存在すれば(s212:いいえ)、前記計算処理実行部111は、処理を前記ステップs209に戻す。ここで選択したサンプリングデータが、図9(b)のサンプリングデータ902だったとする。前記計算処理実行部111はこのサンプリングデータ902を選択し、このサンプリングデータ902に対し、前記計算処理要求が指定した関数“stddev”で計算を実行する(s209)。前記計算処理実行部111は、前記ステップs209の実行の結果、前記サンプリングデータ902に関して、「stddev:19813」なる計算処理結果を得る。計算処理実行部111はこの計算処理結果を、前記クライアント計算機200に返送する(s210)。なお、クライアント計算機200では前記標準偏差の値を受信し、出力装置206に表示することとなる。図13の計算処理結果のうち、レコード1011bにその表示例を示す(図では、レコード1011a,1011b、1012も表示されているが、この時点ではレコード1101a、1101bのみが表示されているものとする)。欄1015の「C」は途中経過値であることを利用者に知らせる記号である。
続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s211)。前記レコード1101a、1101bの表示を前記クライアント計算機200で閲覧したユーザが、これ以上の計算処理の実行を望まないとの意志を持っていたとする。その場合、前記ユーザは前記クライアント計算機200から計算停止要求をサーバ計算機100に送信してくる。一方、前記計算処理実行部111はこの計算停止要求をクライアント計算機200から受信し(s211:はい)、以降の計算処理を停止し処理を終了する。
他方、前記クライアント計算機200から計算停止要求を受信していない場合(s211:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行のサンプリングデータを検索する(s212)。この例では、全サンプリングデータに対する処理は完了したため、前記計算処理実行部111は母集団テーブル125が含む全処理対象データを選択し、前記関数“stddev”を適用した計算処理を実行し、最終結果として「stddev:15382」を得る。計算処理実行部111はこの結果を前記クライアント計算機200に返送し、処理を完了する(s212:はい→終了)。なお、クライアント計算機200では前記標準偏差の値を受信し、出力装置206に表示することとなる。図13の計算処理結果のうち、レコード1012にその表示例を示す(図では、レコード1011a,1011b、1012が表示されている)。欄1015の「F」は最終結果の値であることを利用者に知らせる記号である。
なお、上記例では、クライアント計算機200からSQLで記述した処理要求がサーバ計算機100に送信され、リレーショナルデータベースのテーブル形式でサーバ計算機100に記憶されたデータ(=分割データやサンプリングデータ)を処理する例を示したが、これに限定するわけではない。たとえば、HTTPプロトコルで受け付けたリクエストに対する応答を返す処理で上記実施形態での処理方法を実行するとしてもよい。
−−−他の実施例−−−
上記実施例ではサーバ計算機100で、部分データをひとつずつ処理する方法を示したが、この処理を複数の計算機で並列に処理することも可能である。これを実現する計算機システムの構成例を図14に示す。上記実施例のサーバ計算機100にネットワーク191を介して、複数の従属計算機300を接続し、これらを利用して、並列分散処理を行なうことで、全体の処理時間の短縮が期待できる。
この場合のサーバ計算機100の構成としては、上記実施例のサーバ計算機100と同様の構成を備えるものであるが、(例えば、前記計算処理実行部111が)前記従属計算機300と定期的に通信してその稼働状況のデータを記憶部101において記憶しているものとする。稼働状況のデータとは、サーバ計算機100からの計算実行の指示を受けて計算実行中、或いは、計算は実行しておらず待機中、といった状況を示すデータとなる。従って、従属計算機300側でも、自身の稼働状況についてサーバ計算機100から問い合わせが来たら、回答するアプリケーションを備えているものとする。
こうした状況において、前記サーバ計算機100の前記計算処理実行部111は新たな機能として、前記従属計算機300への計算処理の割り振り機能を備えるものとする。この場合の計算処理実行部111は、前記クライアント計算機200からの計算処理要求を前記通信部107を介して受信したならば、前記記憶部101において従属計算機300の稼働状況を読み取り、計算処理を依頼可能な従属計算機300に対し、前記計算処理要求が示す計算処理の情報と、前記記憶部101から読み出した1または所定数の部分データとを含む計算依頼を送信し、前記1または所定数の部分データに対する計算処理結果を従属計算機300から得られるごとに、該当部分データに関する計算処理結果を前記クライアント計算機200に返信する。
一方、前記従属計算機300の構成は図15に示す通りである。前記サーバ計算機100と同様、ハードディスクドライブなどの不揮発性記憶装置たる記憶部301に格納されたプログラム302をメモリ303に読み出し、演算装置たるCPU304により実行する。また、前記従属計算機300は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力装置305、ディスプレイなどの出力装置306を備えることができる。また、前記サーバ計算機100との間のデータ授受を担うNIC(Network Interface Card)など通信部307を有している。また、前記記憶部101には、前記サーバ計算機100から送信されたきた部分データを格納するものとする。
−−−処理フロー例−−−
次に、従属計算機300へ計算処理を依頼して計算処理の分散化を図る処理について説明する。図16は他の実施形態のデータ処理方法の処理フロー例を示す図である。ここでは一例として、クライアント計算機200から得た計算処理要求が、統合処理可能な関数による処理を示していた場合を想定している。
この場合、前記サーバ計算機100の計算処理実行部111は、記憶部101における各分割データを処理する従属計算機300を決定する(s300)。ここで前記計算処理実行部111は、前記記憶部101において従属計算機300の稼働状況を読み取り、例えば、“待機中”など計算処理能力に余裕がある従属計算機300を、計算処理を依頼可能な従属計算機300として特定する。或いは、従属計算機300の計算処理能力のスペックを記憶部101に予め保持している場合、稼働状況が“待機中”であり、なおかつ前記スペックがより高速な従属計算機300に対し、処理対象データ数がより多い分割データを割り当てるなどとしてもよい。
前記計算処理実行部111は、前記ステップs300で決定した割り振りに従って、各従属計算機300に対し、処理対象の分割データと処理内容とを送信する(s301)。一方、前記従属計算機300は、前記サーバ計算機100からのデータを受信し、指示に従って自身に割り振られた分割データに対する計算処理を実行し、その計算結果を前記サーバ計算機100に返すこととなる。
なお、従属計算機300で計算処理対象となる部分データであるが、前記サーバ計算機100から従属計算機300に対し必要な部分データを随時送信するとしても、部分データ作成時にサーバ計算機100から従属計算機300に部分データの事前配布を実行しておくとしてもよい。事前配布の場合、前記サーバ計算機100は、各従属計算機300に対し、従属計算機300が持つ部分データの計算処理を指示することとなる。或いは、前記サーバ計算機100と従属計算機300とで共有された記憶装置(ネットワーク191上に配置)に部分データを格納しておき、その位置情報を従属計算機300に知らせる方法でも構わない。
前記ステップs301の後、前記サーバ計算機100の計算処理実行部111は、前記従属計算機300からの返信待ち状態になる(s302)。その後、前記従属計算機300からの返信を受信すると(s303)、ステップs304に処理を進める。このステップs304では、上記実施例と同じ処理(図11のステップs204)を実行し、全分割データの計算処理が完了するまで、前記ステップs304〜s305を繰り返す。なお、前記ステップs305は、図11でのステップs205に該当する。
ここでは、分割データの場合の処理例を示したが、サンプリングデータに対しても同様に、上記実施例でサーバ計算機100が行った処理(図11のステップs208)を実行し、他方、前記ステップs209を従属計算機300に実行させることで並列分散処理可能である。
以上、本実施形態によれば、サーバ計算機100側では、処理対象データ量を段階的に増やしながら、部分データに対する処理結果をクライアント側に順次返すことで、全データを対象とした場合に長時間かかる処理について、例えば、おおまかな結果を途中段階でユーザ側に随時提供することができる。特に、ある項目の平均値の大まかな値が知りたい場合や、利用者が意図しない計算が行われてしまった場合などに対し、全データ対象の長時間の計算が完了するのを待たずに処理を中断する対応が可能となり、作業時間の大幅な短縮などの効果が期待できる。また、クライアント計算機200では、全データを処理するための処理要求と、部分データを処理するための処理要求の2種類の要求を別々に作成する必要がないため、処理要求の効率化等が期待できる。
したがって、利用者が大量のデータに関する計算処理結果を効率的に推測可能な情報を提供可能であり、情報処理装置における計算処理時間や計算処理能力の効率的な利用を図ることができる。
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
10 データ処理システム
100 サーバ計算機(情報処理装置)
101、201、301 記憶部
102、202、302 プログラム
103、203、303 メモリ(Random Access Memory)
104、204、304 CPU(Central Processing Unit)
105、205、305 入力装置
106、206、306 出力装置
107、208、307 NIC(通信部)
110 部分データ作成部
111 計算処理実行部
125 母集団テーブル
126 分割データ
127 サンプリングデータ
128 統合可否テーブル
190 ネットワーク
200 クライアント計算機(端末)
300 従属計算機

Claims (8)

  1. 他装置と通信する通信部と、
    計算処理対象データの母集団を記憶する記憶部と、
    所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する、部分データ作成部と、
    端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する、計算処理実行部と、
    を備える情報処理装置を含むデータ処理システム。
  2. 前記情報処理装置の部分データ作成部は、
    含まれる計算処理対象データ数が互いに異なる部分データを、部分データ間でのデータ重複無く前記母集団から複数抽出して記憶部に格納し、
    前記情報処理装置の計算処理実行部は、
    端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における部分データのうち、含まれる計算処理対象データ数が少ない順に順次実行し、含まれる計算処理対象データ数が少ない部分データ順に計算処理結果を前記端末に返信する、
    ことを特徴とする請求項1に記載のデータ処理システム。
  3. 前記情報処理装置の記憶部は、
    計算処理の種類毎に、前記部分データに関する計算処理結果の各部分データ間での統合可否の情報を記憶しており、
    前記情報処理装置の部分データ作成部は、
    前記部分データたる分割データとして、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して記憶部に格納し、前記部分データたるサンプリングデータとして、含まれる計算処理対象データが互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず前記母集団から複数抽出して記憶部に格納し、
    前記情報処理装置の計算処理実行部は、
    前記端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理の情報を、前記記憶部の前記統合可否情報に照合し、
    該当計算処理が各部分データ間で計算処理結果の統合可であるものであれば、前記記憶部における各分割データに対し該当計算処理を順次実行し、1の分割データに対する計算処理結果が得られるごとに記憶部に格納し、直前に得ている他分割データに関する計算処理結果が記憶部になければ前記計算処理結果を前記端末に返信し、直前に得ている他分割データに関する計算処理結果が記憶部にあれば該当計算処理結果と統合処理し、統合処理した計算処理結果を前記端末に返信し、
    該当計算処理が各部分データ間で計算処理結果の統合不可であるものであれば、前記記憶部における各サンプリングデータに対し該当計算処理を実行し、各サンプリングデータに対する計算処理結果が得られるごとに、該当サンプリングデータに関する計算処理結果を前記端末に返信する、
    ことを特徴とする請求項1または2に記載のデータ処理システム。
  4. 前記情報処理装置の部分データ作成部は、
    予め定めた所定要素を検索キーとして前記母集団から計算処理対象データを検索し、当該検索処理で得た計算処理対象データ群より、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く複数抽出して、或いは、含まれる計算処理対象データ数が互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず複数抽出して部分データとして記憶部に格納する、
    ことを特徴とする請求項1〜3のいずれかに記載のデータ処理システム。
  5. 前記情報処理装置の計算処理実行部は、
    前記端末からの計算停止要求を前記通信部を介して受信し、当該計算停止要求を受けた時点で前記部分データへの計算処理の実行を停止する、
    ことを特徴とする請求項1〜4のいずれかに記載のデータ処理システム。
  6. 前記情報処理装置は、
    ネットワークで結ばれた従属計算機と通信してその稼働状況を記憶部において記憶しており、
    前記計算処理実行部は、前記端末からの計算処理要求を前記通信部を介して受信したならば、前記記憶部において従属計算機の稼働状況を読み取り、計算処理を依頼可能な従属計算機に対し、前記計算処理要求が示す計算処理の情報と、前記記憶部から読み出した1または所定数の部分データとを含む計算依頼を送信し、前記1または所定数の部分データに対する計算処理結果を従属計算機から得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する、
    ことを特徴とする請求項1〜5のいずれかに記載のデータ処理システム。
  7. 他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部とを備えた情報処理装置が、
    所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する処理と、
    端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する処理と、
    を実行することを特徴とするデータ処理方法。
  8. 他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部とを備えた情報処理装置に、
    所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する処理と、
    端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する処理と、
    を実行させることを特徴とするデータ処理プログラム。
JP2009123304A 2009-05-21 2009-05-21 データ処理システム、データ処理方法、およびデータ処理プログラム Pending JP2010271931A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009123304A JP2010271931A (ja) 2009-05-21 2009-05-21 データ処理システム、データ処理方法、およびデータ処理プログラム
PCT/JP2010/053114 WO2010134370A1 (ja) 2009-05-21 2010-02-26 データ処理システム、データ処理方法、およびデータ処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009123304A JP2010271931A (ja) 2009-05-21 2009-05-21 データ処理システム、データ処理方法、およびデータ処理プログラム

Publications (1)

Publication Number Publication Date
JP2010271931A true JP2010271931A (ja) 2010-12-02

Family

ID=43126059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009123304A Pending JP2010271931A (ja) 2009-05-21 2009-05-21 データ処理システム、データ処理方法、およびデータ処理プログラム

Country Status (2)

Country Link
JP (1) JP2010271931A (ja)
WO (1) WO2010134370A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3792753A1 (en) 2019-09-13 2021-03-17 Fujitsu Limited Information processing apparatus, program, and information processing method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324405A (ja) * 1992-05-21 1993-12-07 Toyota Motor Corp シミュレーション方法
JPH10190734A (ja) * 1996-12-25 1998-07-21 Fuji Xerox Co Ltd パケット転送装置及びパケット転送方法
JPH10320355A (ja) * 1997-05-16 1998-12-04 Toshiba Corp 計算機接続方式及び計算機接続用プログラムを記録した記録媒体
JP2000267890A (ja) * 1999-03-19 2000-09-29 Hitachi Ltd シミュレーションプログラム実行方法及び装置
JP2006011510A (ja) * 2004-06-22 2006-01-12 Yokogawa Electric Corp 脆弱性検査システム
JP2008225758A (ja) * 2007-03-12 2008-09-25 Web Republic Kk マイニングシステム及びマイニング方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3252727B2 (ja) * 1996-12-02 2002-02-04 富士ゼロックス株式会社 ネットワークプリントシステム
JPH10275084A (ja) * 1997-03-31 1998-10-13 Toshiba Corp 制約充足問題の解決装置及び解決方法、システム構築装置及び構築方法
US7076484B2 (en) * 2002-09-16 2006-07-11 International Business Machines Corporation Automated research engine
JP2006252394A (ja) * 2005-03-14 2006-09-21 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324405A (ja) * 1992-05-21 1993-12-07 Toyota Motor Corp シミュレーション方法
JPH10190734A (ja) * 1996-12-25 1998-07-21 Fuji Xerox Co Ltd パケット転送装置及びパケット転送方法
JPH10320355A (ja) * 1997-05-16 1998-12-04 Toshiba Corp 計算機接続方式及び計算機接続用プログラムを記録した記録媒体
JP2000267890A (ja) * 1999-03-19 2000-09-29 Hitachi Ltd シミュレーションプログラム実行方法及び装置
JP2006011510A (ja) * 2004-06-22 2006-01-12 Yokogawa Electric Corp 脆弱性検査システム
JP2008225758A (ja) * 2007-03-12 2008-09-25 Web Republic Kk マイニングシステム及びマイニング方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3792753A1 (en) 2019-09-13 2021-03-17 Fujitsu Limited Information processing apparatus, program, and information processing method
US11354068B2 (en) 2019-09-13 2022-06-07 Fujitsu Limited Information processing apparatus, recording medium for information processing program, and information processing method

Also Published As

Publication number Publication date
WO2010134370A1 (ja) 2010-11-25

Similar Documents

Publication Publication Date Title
KR102011376B1 (ko) 쇼핑몰 운영 관리 시스템
WO2011148565A1 (ja) データベース、管理サーバ、および管理プログラム
EP3652658A1 (en) Systems and methods for selecting datasets
JPWO2011132421A1 (ja) データベース、業務内容データ管理サーバ、および業務内容データ管理プログラム
US20200242110A1 (en) Systems and methods for joining datasets
CN111488349A (zh) 基于业务数据区块链的数据查询方法及装置
WO2010134370A1 (ja) データ処理システム、データ処理方法、およびデータ処理プログラム
US20150120356A1 (en) Mobile terminal management server and mobile terminal management program
US9009073B1 (en) Product availability check using image processing
JP2017167843A (ja) 取引明細管理システムおよび取引明細管理方法
JP2013246752A (ja) 過去見積に基づく専門家紹介装置、方法、及びコンピュータプログラム
KR20220125443A (ko) 마케팅 데이터베이스를 포함한 온라인 쇼핑몰 중개 시스템
CN111488613A (zh) 业务数据区块链的数据高效查询方法及装置
JP2015197699A (ja) 加盟店提供データ出力システム
JP5575971B1 (ja) 帳票データ管理サーバ、および帳票データ管理プログラム
US11393050B2 (en) Resource accommodation device, schedule management device, and resource accommodation system
US20150081358A1 (en) Mobile terminal management server and mobile terminal management program
JP2002024515A (ja) 売上情報管理システム
CN108595552A (zh) 数据立方体发布方法、装置、电子设备和存储介质
KR102432067B1 (ko) 운영규칙을 이용하여 인테리어 소품 조합 기능을 가지는 웹 서비스를 제공하는 방법 및 서버
KR102432068B1 (ko) 견적 규칙을 이용하여 bom 위계 관리 기능을 가지는 웹 서비스를 제공하는 방법 및 서버
JP7261710B2 (ja) データ仲介装置およびデータ仲介方法
JP2018081369A (ja) データ提供システム、データ提供方法、およびデータ提供プログラム
JP6347374B1 (ja) カレンダー提供システムおよびカレンダー提供方法
JP6025574B2 (ja) モニタリングシステム、及び計算機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130321

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130604