JP6871504B2 - 情報処理装置、データロードプログラム及びデータロード方法 - Google Patents

情報処理装置、データロードプログラム及びデータロード方法 Download PDF

Info

Publication number
JP6871504B2
JP6871504B2 JP2016253557A JP2016253557A JP6871504B2 JP 6871504 B2 JP6871504 B2 JP 6871504B2 JP 2016253557 A JP2016253557 A JP 2016253557A JP 2016253557 A JP2016253557 A JP 2016253557A JP 6871504 B2 JP6871504 B2 JP 6871504B2
Authority
JP
Japan
Prior art keywords
data
index
storage unit
stored
information 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.)
Active
Application number
JP2016253557A
Other languages
English (en)
Other versions
JP2018106518A (ja
Inventor
厚人 廣瀬
厚人 廣瀬
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016253557A priority Critical patent/JP6871504B2/ja
Priority to US15/835,506 priority patent/US10754839B2/en
Publication of JP2018106518A publication Critical patent/JP2018106518A/ja
Application granted granted Critical
Publication of JP6871504B2 publication Critical patent/JP6871504B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification

Landscapes

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

Description

本発明は、情報処理装置、データロードプログラム及びデータロード方法に関する。
例えば、利用者に対してサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、利用者に対して各種サービスの提供を行うために、用途に応じた業務システムを構築して稼働させる。
上記のような業務システムは、例えば、利用者に対してサービスを提供するためのオンライン処理を行うオンラインシステムと、利用者に対するサービス時間の終了後(例えば、夜間)にバッチ処理を行うバッチシステムとから構成される。この場合、業務システムは、例えば、利用者に対するサービス時間の終了後、オンラインシステムの停止を行うとともにバッチシステムの起動を行う。そして、業務システムは、例えば、バッチシステムによるバッチ処理の終了後、バッチシステムの停止を行うとともにオンラインシステムの起動を行う。これにより、事業者は、業務システムのリソースを効率的に活用することが可能になる。
また、上記のような業務システムは、例えば、業務要件変更に伴う列追加等の表定義変更、業務システムを構成するソフトウエアのアップデートやハードウエアの交換等のメンテナンスが行われる場合、オンラインシステムの停止を行う。そして、業務システムは、メンテナンスの終了後、オンラインシステムの起動を行う(例えば、特許文献1から3参照)。
特開平4−264973号公報 特開2012−123680号公報 特開昭60−196878号公報
上記のようなオンラインシステムは、例えば、大規模データを効率的に管理するためのDBMS(DataBase Management System)の他、DBMSが管理するデータに対する処理を高速に行うためのKVS(Key Value Store)やIMDB(In−Memory DataBase)等を構成として含む。そして、このようなオンラインシステムでは、起動時において、DBMS、KVSまたはIMDB(以下、単にDBMS等とも呼ぶ)に対するデータの格納や、DBMS等に格納したデータの検索を高速に行うために用いられるインデックスの生成等が行われることがある。
ここで、例えば、サービスを利用する利用者数が増加した場合、DBMS等に格納する必要があるデータ量は増加する。そして、この場合、DBMS等に対するデータの格納やインデックスの生成等に要する時間は、DBMS等に格納する必要があるデータ量の増加に伴って長くなる。そのため、例えば、サービスを利用する利用者数が業務システムの構築時における見積りを上回った場合、オンラインシステムの起動がサービスの開始時間までに完了しない可能性が発生する。
そこで、一つの側面では、本発明は、データの格納及びインデックスの生成に伴う時間を短縮することを可能とする情報処理装置、データロードプログラム及びデータロード方法を提供することを目的とする。
実施の形態の一態様では、第1記憶部に記憶された列及び行からなるデータ構造のデータ群を第2記憶部に記憶する情報処理装置は、前記第1記憶部に記憶された前記データ群に含まれるデータを各列に対応するデータ毎に取得するデータ取得部と、取得した前記データを前記第2記憶部に記憶するデータ管理部と、前記データ群のインデックスの生成に用いられる列に対応する生成元データが前記第1記憶部から取得されたことに応じて、取得された前記生成元データから前記インデックスを生成するインデックス生成部と、を有する。
一つの側面によれば、データの格納及びインデックスの生成に伴う時間を短縮することを可能とする。
図1は、オンラインシステム10の構成を示す図である。 図2は、情報処理装置1のハードウエア構成を示す図である。 図3は、情報処理装置1の機能ブロック図である。 図4は、第1の実施の形態におけるデータロード処理の概略を説明するフローチャート図である。 図5は、第1の実施の形態におけるデータロード処理の概略を説明するフローチャート図である。 図6は、第1の実施の形態におけるデータロード処理の概略を説明する図である。 図7は、第1の実施の形態におけるデータロード処理の概略を説明する図である。 図8は、第1の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図9は、第1の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図10は、第1の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図11は、第1の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図12は、第1の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図13は、表定義情報131及びインデックス定義情報132の具体例を説明する図である。 図14は、対象データDT1が格納された後の社員表の具体例を説明する図である。 図15は、インデックス定義情報132の具体例を説明する図である。 図16は、S24及びS25の処理の具体例を説明する図である。 図17は、S24及びS25の処理の具体例を説明する図である。 図18は、S24及びS25の処理の具体例を説明する図である。 図19は、第2の実施の形態におけるオンラインシステム10の構成を示す図である。 図20は、第2の実施の形態における第1情報処理装置1aの機能ブロック図である。 図21は、第2の実施の形態における第2情報処理装置1bの機能ブロック図である。 図22は、第2の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図23は、第2の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図24は、第2の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図25は、第2の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図26は、第2の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。 図27は、第1の実施の形態におけるオンラインシステム10の構成の具体例について説明する図である。 図28は、第1の実施の形態におけるオンラインシステム10の構成の具体例について説明する図である。 図29は、第2の実施の形態におけるオンラインシステム10の構成の具体例について説明する図である。 図30は、第2の実施の形態におけるオンラインシステム10の構成の具体例について説明する図である。
[オンラインシステムの構成]
初めに、オンラインシステム10の構成について説明を行う。図1は、オンラインシステム10の構成を示す図である。
オンラインシステム10(以下、情報処理システム10とも呼ぶ)は、例えば、情報処理装置1と、記憶装置2と、記憶装置3とを有する。以下、記憶装置2が情報処理装置1と異なる装置であるものとして説明を行うが、記憶装置2は、情報処理装置1の一部からなるものであってもよい。同様に、以下、記憶装置3が情報処理装置1と異なる装置であるものとして説明を行うが、記憶装置3は、情報処理装置1の一部からなるもの(例えば、情報処理装置1のメモリ)であってもよい。
記憶装置2は、例えば、オンラインシステム10の起動時において記憶装置3に記憶されるロード対象データDT1(以下、単に対象データDT1またはデータ群DT1とも呼ぶ)が記憶されている。対象データDT1は、列及び行からなるデータ構造のデータであり、例えば、CSV(Comma Separated Values)ファイルの形式で記憶装置1に記憶されている。
情報処理装置1は、例えば、オンラインシステム10を起動する時間になったことに応じて、記憶装置2に記憶された対象データDT1を、記憶装置3に記憶する。
具体的に、情報処理装置1は、例えば、記憶装置2から対象データDT1を行単位に取得する(図1の(1))。そして、情報処理装置1は、取得した行単位の対象データDT1を記憶装置に記憶する(図1の(2))。以下、記憶装置3に記憶されたデータを記憶済データDT2とも呼ぶ。
その後、情報処理装置1は、記憶装置3に記憶された記憶済データDT2に基づいて、記憶済データDT2に含まれる各データを高速に検索するためのインデックスを生成する(図1の(3))。具体的に、情報処理装置1は、記憶装置3に記憶された記憶済データDT2のうち、インデックスの生成に用いられる列に対応するデータを取得し、取得したデータからインデックスの生成を行う。
ここで、例えば、オンラインシステム10を含む業務システムが提供するサービスを利用する利用者数が増加した場合、記憶装置3に記憶する必要があるデータ量は増加する。そして、この場合、記憶装置3に対するデータの格納やインデックスの生成等に要する時間が長くなる。そのため、サービスを利用する利用者数等の状況の変化によって、オンラインシステム10の起動がサービスの開始時間に間に合わない可能性が発生する。
そこで、本実施の形態における情報処理装置1は、対象データDT1のインデックスの生成に用いられる列に対応するデータ(以下、生成元データとも呼ぶ)を優先して、記憶装置2に記憶された対象データDT1に含まれる各データを順に取得し、取得したデータを記憶装置3に記憶する。そして、情報処理装置1は、生成元データが第2記憶部3に記憶されたことに応じて、記憶された生成元データからインデックスを生成する。
すなわち、情報処理装置1は、対象データDT1に含まれるデータのうちのインデックスの生成に用いられる生成元データを、他のデータよりも優先して記憶装置3に記憶する。具体的に、情報処理装置1は、インデックスの生成に用いられる列に対応する生成元データを列単位に取得して記憶装置3に記憶する。そして、情報処理装置1は、あるインデックスの生成に用いられる生成元データの記憶装置3に対する記憶が完了した場合、対象データDT1に含まれる全データの記憶の完了を待つことなく、生成元データの記憶が完了したインデックスの生成を開始する。
この点、対象データDT1に含まれるデータの取得及び記憶が行単位で行われる場合、情報処理装置1は、対象データDT1に含まれる全データの記憶が完了するまで、インデックスの生成に必要な生成元データの記憶を完了させることができない。そのため、情報処理装置1は、この場合、インデックスの生成を対象データDT1に含まれる全データの記憶の完了に先行して行うことができない。したがって、情報処理装置1は、インデックスの生成に用いられる生成元データを列単位に取得して記憶装置3に記憶することで、インデックスの生成を対象データDT1に含まれる全データの記憶の完了に先行して行うことが可能になる。
これにより、情報処理装置1は、対象データDT1に含まれるデータの記憶及びインデックスの生成に要する時間を短縮することが可能になる。そのため、情報処理装置1は、オンラインシステム10の起動時間に制約がある場合であっても、その制約が満たされる確率を高めることが可能になる。
[情報処理システムのハードウエア構成]
次に、オンラインシステム10のハードウエア構成について説明する。図2は、情報処理装置1のハードウエア構成を示す図である。
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、例えば、記憶媒体104内のプログラム格納領域(図示しない)に、対象データDT1に含まれる各データを記憶装置3に記憶する処理(以下、データロード処理とも呼ぶ)を行うためのプログラム110を記憶する。また、記憶媒体104は、例えば、データロード処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。
CPU101は、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働してデータロード処理を行う。また、外部インターフェース103は、例えば、記憶装置2及び記憶装置3と通信を行う。
[オンラインシステムの機能]
次に、オンラインシステム10の機能について説明する。図3は、情報処理装置1の機能ブロック図である。
情報処理装置1のCPU101は、プログラム110と協働することにより、例えば、データ取得部111と、データ管理部112と、インデックス生成部113と、データアクセス部114として動作する。そして、情報格納領域130には、例えば、表定義情報131と、インデックス定義情報132とが記憶される。なお、データ取得部111、データ管理部112、インデックス生成部113及びデータアクセス部114は、それぞれ異なる物理マシンにおいて動作するものであってもよい。
データ取得部111は、対象データDT1のインデックスIDX(以下、インデックス情報IDXとも呼ぶ)の生成に用いられる列に対応する生成元データを優先して、記憶装置2に記憶された対象データDT1に含まれる各データを順に取得する。具体的に、データ取得部111は、インデックス情報IDXの生成に用いられる列を識別するインデックス定義情報132(以下、識別情報132とも呼ぶ)が記憶された情報格納領域130を参照し、インデックス情報IDXの生成に用いられる列の特定を行う。インデックス定義情報132の具体例については後述する。
データ管理部112は、データ取得部111が取得したデータのそれぞれを記憶装置3に記憶する。
インデックス生成部113は、生成元データが記憶装置3から取得されたことに応じて、取得された生成元データからインデックス情報IDXを生成する。その後、データ管理部112は、生成したインデックス情報IDXを記憶装置3に記憶する。なお、インデックス生成部113は、生成元データが記憶装置3に記憶されたことに応じて、記憶された生成元データからインデックス情報IDXを生成するものであってもよい。
データアクセス部114は、記憶装置3に記憶された対象データDT1に含まれるデータに対するアクセス要求を受け付けた場合、アクセス要求があったデータに対してアクセスを行う。具体的に、データアクセス部114は、例えば、アクセス要求があったデータに対応するインデックス情報IDXが生成されている場合であって、そのインデックス情報IDXを利用する場合、インデックス生成部113が生成したインデックス情報IDXが記憶された情報格納領域130を参照し、アクセス要求があったデータの記憶位置を特定する。そして、データアクセス部114は、特定した記憶位置に対してアクセスを行う。なお、表定義情報131の説明については後述する。
[第1の実施の形態]
次に、第1の実施の形態の概略について説明する。図4及び図5は、第1の実施の形態におけるデータロード処理の概略を説明するフローチャート図である。また、図6及び図7は、第1の実施の形態におけるデータロード処理の概略を説明する図である。図6及び図7を参照しながら、図4及び図5のデータロード処理の詳細を説明する。
情報処理装置1は、図4に示すように、データロードタイミングになるまで待機する(S1のNO)。データロードタイミングは、例えば、オンラインシステム10を起動する時間として予め定められた時間であってよい。また、データロードタイミングは、例えば、事業者が操作端末(図示しない)を介してオンラインシステム10を起動する旨の情報を入力したタイミングであってよい。
そして、データロードタイミングになった場合(S1のYES)、情報処理装置1は、図6に示すように、記憶装置2に記憶された対象データDT1に含まれるデータを各列に対応するデータ毎に取得する(S2)。具体的に、情報処理装置1は、対象データDT1のインデックス情報IDXの生成に用いられる列に対応する生成元データを優先しながら、記憶装置2に記憶された対象データDT1に含まれる各データの取得を行う。さらに、情報処理装置1は、図6に示すように、S2の処理で取得したデータを記憶装置3に記憶する(S3)。
その後、情報処理装置1は、対象データDT1に含まれる全てのデータの取得を行ったか否かの判定を行う(S4)。その結果、全てのデータの取得を行っていないと判定した場合(S4のNO)、情報処理装置1は、S2以降の処理を再度行う。一方、全てのデータの取得を行ったと判定した場合(S4のYES)、情報処理装置1は、次のデータロードタイミングまで待機する(S1)。
一方、情報処理装置1は、図5に示すように、対象データDT1に含まれるデータのうち、ある1つのインデックス情報IDXの生成に用いられる生成元データの取得が完了するまで待機する(S11のNO)。そして、生成元データの取得が完了した場合(S11のYES)、情報処理装置1は、図7に示すように、S11の処理で取得した生成元データからインデックス情報IDXを生成する(S12)。その後、情報処理装置1は、生成したインデックス情報IDXを記憶装置3に記憶する。
すなわち、情報処理装置1は、S1からS4の処理を行いながら、生成に用いられる生成元データの全ての取得が完了したために生成することが可能になったインデックス情報IDXの検知を行う。そして、情報処理装置1は、生成に用いられる生成元データの全ての取得が完了したインデックス情報IDXを検知した場合、対象データDT1に含まれる全データの取得の完了を待つことなく、検知したインデックス情報IDXの生成を行う。その後、情報処理装置1は、図7に示すように、検知したインデックス情報IDXの生成に用いられる生成元データ以外のデータ(以下、他のデータとも呼ぶ)の取得及び記憶装置3への記憶を継続して行う(S2、S3)。
これにより、情報処理装置1は、対象データDT1に含まれるデータの記憶及びインデックス情報IDXの生成に要する時間を短縮することが可能になる。そのため、情報処理装置1は、例えば、オンラインシステム10の起動時間に制約がある場合であっても、その制約が満たされる確率を高めることが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図8から図12は、第1の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。また、図13から図18は、第1の実施の形態におけるデータロード処理の詳細を説明する図である。図13から図18を参照しながら、図8から図12のデータロード処理の詳細を説明する。
情報処理装置のデータ取得部111は、図8に示すように、データロードタイミングになるまで待機する(S21のNO)。そして、データロードタイミングになった場合(S21のYES)、データ取得部111は、情報格納領域130に記憶された表定義情報131とインデックス定義情報132とを取得する(S22)。表定義情報131は、対象データDT1に含まれる各データが格納される表を定義する情報である。また、インデックス定義情報132は、表定義情報131に定義された表に格納された各データに対応するインデックス情報IDXを定義する情報である。以下、表定義情報131とインデックス定義情報132の具体例について説明を行う。
[表定義情報とインデックス定義情報の具体例]
図13は、表定義情報131及びインデックス定義情報132の具体例を説明する図である。また、図15は、インデックス定義情報132の具体例を説明する図である。具体的に、図13(A)は、表定義情報131の具体例を説明する図である。また、図13(B)及び図15は、インデックス定義情報132の具体例を説明する図である。
図13(A)に示す表定義情報131は、名称が社員表である表(以下、社員表とも呼ぶ)を定義する情報である。また、図13(B)に示すインデックス定義情報132は、社員表に格納されたデータに対応するインデックス情報IDXを定義する情報である。
具体的に、図13(A)に示す表定義情報131は、社員表が列として「社員番号」、「氏名」、「年齢」、「部署コード」、「部署名」、「役職」及び「入社日」を含むことを定義している。なお、図13に示す表定義情報131において、「社員番号」、「年齢」及び「部署コード」に対応する各データのデータ型が整数型であり、「氏名」、「部署名」及び「役職」に対応する各データのデータ型が文字列型であり、「入社日」に対応する各データのデータ型が日付型である。図13(A)に含まれる他の情報については説明を省略する。
そして、図13(B)に示すインデックス定義情報132は、社員表に格納されたデータに対応するインデックス情報IDXが、社員表に格納されたデータのうちの「部署コード」及び「役職」に対応するデータから生成されることを示している。図13(B)に含まれる他の情報については説明を省略する。
[対象データが格納された後の社員表の具体例]
次に、図13(A)において説明した表定義情報131に基づいて生成された社員表に、対象データDT1に含まれる各データが格納された後の具体例について説明を行う。図14は、対象データDT1が格納された後の社員表の具体例を説明する図である。
図14に示す社員表は、「社員番号」、「氏名」、「年齢」、「部署コード」、「部署名」、「役職」及び「入社日」に対応する列をそれぞれ有する。すなわち、図14に示す社員表は、図13(A)で説明した表定義情報131において定義された列をそれぞれ含む。
具体的に、図14に示す社員表において、「社員番号」が「1023」である情報には、「氏名」として「田中一郎」が設定され、「年齢」として「55」が設定されている。また、図14に示す社員表において、「社員番号」が「1023」である情報には、「部署コード」として「103」が設定され、「部署名」として「開発三部」が設定され、「役職」として「部長」が設定され、「入社日」として「1985/4/1」が設定されている。図14に含まれる他の情報については省略する。
図8に戻り、データ取得部111は、S22の処理で取得したインデックス定義情報132から、インデックス情報IDXの生成に用いられる列を特定する(S23)。以下、S23の処理の詳細について説明を行う。
[S23の処理の詳細]
図9は、S23の処理の詳細を説明する図である。データ取得部111は、図9に示すように、S22の処理で取得したインデックス定義情報132に複数のインデックス情報IDXに関する情報が含まれているか否かを判定する(S41)。
その結果、複数のインデックス情報IDXに関する情報が含まれている場合(S41のYES)、データ取得部111は、S22の処理で取得したインデックス定義情報132から、S41の処理で存在した複数のインデックス情報IDX毎に、インデックス情報IDXの生成に用いられる列を特定する(S42)。
そして、データ取得部111は、S41の処理で情報が存在した複数のインデックス情報IDXに対し、各インデックス情報IDXの生成に用いられる列の数が少ない順に順位付けを行う(S43)。
一方、S41の処理において、複数のインデックス情報IDXに関する情報が含まれていない場合(S41のNO)、データ取得部111は、S22の処理で取得したインデックス定義情報132から、インデックス情報IDX(1つのインデックス情報IDX)の生成に用いられる列を特定する(S44)。
具体的に、図13(B)で説明したインデックス定義情報132は、社員表に対応するインデックス情報IDXが、「部署コード」及び「役職」に対応して格納されたデータから生成されることを示している。そのため、データ取得部111は、S22の処理において、図13(B)で説明したインデックス定義情報132を取得した場合、インデックス情報IDXの生成に用いられるデータが格納された列である「部署コード」及び「役職」を特定する(S41のNO、S44)。
これに対し、図15に示すインデックス定義情報132は、社員表に対応するインデックス情報IDXとして2つのインデックス情報IDXを定義している。具体的に、図15に示すインデックス定義情報132は、「部署コード」及び「役職」に対応して格納されたデータから生成されるインデックス情報IDX(以下、インデックス情報IDXaとも呼ぶ)と、「社員番号」に対応して格納されたデータから生成されるインデックス情報IDX(以下、インデックス情報IDXbとも呼ぶ)とを定義している。
そのため、データ取得部111は、S22の処理において、図15に示すインデックス定義情報132を取得した場合、インデックス情報IDXaの生成に用いられるデータが格納された列である「部署コード」及び「役職」と、インデックス情報IDXbの生成に用いられるデータが格納された列である「社員番号」とをそれぞれ特定する(S41のYES、S42)。そして、データ取得部111は、生成に用いられるデータが格納された列の数が「1」であるインデックス情報IDXbの優先順位が、生成に用いられるデータが格納された列の数が「2」であるインデックス情報IDXaの優先順位よりも高くなるように、各インデックス情報IDXの優先順位の決定を行う(S43)。
図8に戻り、データ取得部111は、S23の処理で特定した列に対応する生成元データを優先して、記憶装置2に記憶された対象データDT1に含まれる各データを順に取得する(S24)。具体的に、データ取得部111は、S24の処理において、記憶装置2に記憶された対象データDT1に含まれるデータのうちの1つを取得する。以下、S24の処理の詳細について説明を行う。
[S24の処理の詳細]
図10は、S24の処理の詳細を説明する図である。データ取得部111は、図10に示すように、対象データDT1に含まれるデータのうち、生成元データの全ての取得が完了しているか否かを判定する(S51)。
その結果、生成元データの全ての取得が完了していないと判定した場合(S51のNO)、データ取得部111は、優先順位が高いインデックス情報IDXに対応する生成元データを優先して、記憶装置2に記憶された対象データDT1に含まれる各データから、S42またはS44の処理で特定した列に対応する生成元データを順に取得する(S52)。
すなわち、データ取得部111は、記憶装置2に記憶された対象データDT1に含まれる各データのうち、インデックス情報IDXの生成に用いられる生成元データの取得を優先的に行う。そして、データ取得部111は、インデックス定義情報132において複数のインデックス情報IDXが定義されている場合、インデックス情報IDXの生成に用いられる生成元データの取得を、優先順位の高いインデックス情報IDXに対応する生成元データから順に行う。
これにより、情報処理装置1のインデックス生成部113は、後述するように、インデックス情報IDXの生成を開始する時間をより早めることが可能になる。そのため、情報処理装置1は、記憶装置3に対する対象データDT1の記憶及びインデックス情報IDXの生成をより早く行うことが可能になる。
一方、S51の処理において、生成元データの全ての取得が完了していると判定した場合(S51のYES)、データ取得部111は、記憶装置2に記憶された対象データDT1に含まれる各データから、生成元データ以外のデータを順に取得する(S53)。具体的に、データ取得部111は、S22の処理で取得した表定義情報131を参照して、表定義情報131において定義された列のうち、インデックス情報IDXの生成に用いられない列を特定し、特定した列に対応するデータの取得を順に行う。
図8に戻り、データ管理部112は、S24の処理で取得したデータを記憶装置3に記憶する(S25)。その後、対象データDT1に含まれる全てのデータの取得が完了していない場合(S26のNO)、データ取得部111は、S24以降の処理を再度行う。一方、対象データDT1に含まれる全てのデータの取得が完了した場合(S26のYES)、データ取得部111は、次のデータロードタイミングまで待機する(S21)。以下、S24及びS25の処理の具体例について説明を行う。
[S24及びS25の処理の具体例]
図16から図18は、S24及びS25の処理の具体例を説明する図である。図16は、図13(B)で説明したインデックス定義情報132を取得した場合のS24及びS25の処理の具体例を説明する図である。また、図17及び図18は、図15で説明したインデックス定義情報132を取得した場合のS24及びS25の処理の具体例を説明する図である。
具体的に、S22の処理において、図13(B)で説明したインデックス定義情報132を取得した場合、データ取得部111は、対象データDT1に含まれるデータのうち、「部署コード」及び「役職」に対応するデータを取得する(S24)。そして、データ管理部112は、図16に示すように、「部署コード」及び「役職」に対応するデータの格納を行う(S25)。その後、データ管理部112は、図14に示すように、「部署コード」及び「役職」に対応するデータ以外のデータの格納を行う(S24、S25)。
また、S22の処理において、図15に示すインデックス定義情報132を取得した場合、データ取得部111は、対象データDT1に含まれるデータのうち、優先順位の高いインデックス情報IDXbの生成に用いられる列である「社員番号」に含まれるデータを取得する(S24)。そして、データ管理部112は、図17に示すように、「社員番号」に対応するデータの格納を行う(S25)。続いて、データ取得部111は、優先順位の低いインデックス情報IDXaの生成に用いられる列である「部署コード」及び「役職」に含まれるデータを取得する(S24)。そして、データ管理部112は、図18に示すように、「部署コード」及び「役職」に対応するデータの格納を行う(S25)。その後、データ管理部112は、図14に示すように、「社員番号」、「部署コード」及び「役職」に対応するデータ以外のデータの格納を行う(S24、S25)。
図11に戻り、インデックス生成部113は、生成に用いられる生成元データの全ての取得が完了したインデックス情報IDXの存在を検知するまで待機する(S61のNO)。そして、生成に用いられる生成元データの全ての取得が完了したインデックス情報IDXの存在を検知した場合(S61のYES)、インデックス生成部113は、S25の処理で記憶装置2に記憶された生成元データ(S24の処理で取得した生成元データ)からインデックス情報IDXを生成する(S62)。その後、データ管理部112は、S62の処理で生成したインデックス情報IDXを、情報格納領域130に記憶する(S63)。
具体的に、図13(B)に示すインデックス定義情報132が取得された場合、インデックス生成部113は、図16で説明したように、「部署コード」及び「役職」に対応するデータの取得が完了したことに応じて、「部署コード」及び「役職」に対応するインデックス情報IDXの生成を開始する。
また、図15に示すインデックス定義情報132が取得された場合、インデックス生成部113は、図17で説明したように、「社員番号」に対応するデータの取得が完了したことに応じて、「社員番号」に対応するインデックス情報IDX(インデックス情報IDXb)の生成を開始する。その後、インデックス生成部113は、図18で説明したように、「部署コード」及び「役職」に対応するデータの取得が完了したことに応じて、「部署コード」及び「役職」に対応するインデックス情報IDX(インデックス情報IDXa)の生成を開始する。
これにより、インデックス生成部113は、対象データDT1に含まれる全データの取得の完了を待つことなく、インデックス情報IDXの生成を先行して開始することが可能になる。そのため、情報処理装置1は、対象データDT1に含まれる各データの記憶及びインデックス情報IDXの生成に要する時間を短縮することが可能になる。
[データアクセス処理]
次に、記憶装置3に記憶された対象データDT1(記憶済データDT2)に対するアクセス要求があった場合の処理(以下、データアクセス処理とも呼ぶ)について説明を行う。図12は、データアクセス処理を説明するフローチャート図である。
データアクセス部114は、図12に示すように、記憶済データDT2に含まれるデータに対するアクセス要求(データに対する読み出し要求や書き込み要求等)を受け付けるまで待機する(S71のNO)。具体的に、データアクセス部114は、例えば、利用者が操作端末(図示しない)を介して行ったアクセス要求を受け付けるまで待機する。
そして、記憶済データDT2に含まれるデータに対するアクセス要求を受け付けた場合(S71のYES)、データアクセス部114は、例えば、情報格納領域130を参照し、S71の処理で受け付けたアクセス要求に対応するデータのインデックス情報IDXが生成されており、かつ、そのインデックス情報IDXを利用するか否かを判定する(S72)。
その結果、S71の処理で受け付けたアクセス要求に対応するデータのインデックス情報IDXが生成されており、かつ、そのインデックス情報IDXを利用すると判定した場合(S72のYES)、データアクセス部114は、情報格納領域130に記憶されたインデックス情報IDXを参照し、S71の処理で受け付けたアクセス要求に対応するデータの記憶位置を特定する。そして、データアクセス部114は、S72の処理で特定した記憶位置に対してアクセスを行う(S73)。その後、データアクセス部114は、必要に応じて、アクセス結果の出力等を行う。
一方、S71の処理で受け付けたアクセス要求に対応するデータのインデックス情報IDXが生成されていない、または、そのインデックス情報IDXを利用しないと判定した場合(S72のNO)、データアクセス部114は、インデックス情報IDXを参照することなく、S71の処理で受け付けたアクセス要求に対応するデータに対してアクセスを行う(S74)。その後、データアクセス部114は、必要に応じて、アクセス結果の出力等を行う。
このように、本実施の形態における情報処理装置1は、対象データDT1のインデックス情報IDXの生成に用いられる列に対応する生成元データを優先して、記憶装置2に記憶された対象データDT1に含まれる各データを順に取得し、取得したデータを記憶装置3に記憶する。そして、情報処理装置1は、生成元データが記憶装置3に記憶されたことに応じて、記憶された生成元データからインデックス情報IDXを生成する。
これにより、情報処理装置1は、対象データDT1に含まれるデータの記憶及びインデックス情報IDXの生成に要する時間を短縮することが可能になる。そのため、情報処理装置1は、例えば、オンラインシステム10の起動時間に制約がある場合であっても、オンラインシステム10の起動時間が制約を満たす確率を高めることが可能になる。
[第2の実施の形態]
次に、第2の実施の形態におけるデータロード処理について説明を行う。第2の実施の形態では、第1の実施の形態と異なり、記憶装置2に記憶された対象データDT1を複数の記憶装置3に記憶する。
[第2の実施の形態におけるオンラインシステムの構成]
初めに、第2の実施の形態におけるオンラインシステム10の構成について説明を行う。図19は、第2の実施の形態におけるオンラインシステム10の構成を示す図である。図19に示すオンラインシステム10は、例えば、情報処理装置1a(以下、第1情報処理装置1aとも呼ぶ)と、情報処理装置1b(以下、第2情報処理装置1bとも呼ぶ)と、記憶装置2と、記憶装置3aと、記憶装置3bとを有する。
第1情報処理装置1a及び第2情報処理装置1bは、それぞれ同じ内容のデータを保持している。そして、第1情報処理装置1a及び第2情報処理装置1bは、クラスタシステムを構成する。そのため、情報処理装置1aは、切り替えを行うことによって情報処理装置1bが行っていた処理を継続して行うことが可能である。また、情報処理装置1bは、切り替えを行うことによって情報処理装置1aが行っていた処理を継続して行うことが可能である。
なお、以下、オンラインシステム10が第1情報処理装置1a及び第2情報処理装置1bからなるクラスタシステムを含む場合について説明を行うが、オンラインシステム10は、3台以上の情報処理装置からなるクラスタシステムを含むものであってもよい。
記憶装置3a及び記憶装置3bは、記憶装置2に記憶された対象データDT1に含まれる各データをそれぞれ記憶する。以下、記憶装置3aに記憶されたデータを記憶済データDT2aとも呼び、記憶装置3bに記憶されたデータを記憶済データDT2bとも呼ぶ。そして、記憶装置3a及び記憶装置3bには、第1インデックス情報IDX1及び第2インデックス情報IDX2がそれぞれ記憶される。第1インデックス情報IDX1及び第2インデックス情報IDX2については後述する。
また、第1情報処理装置1aは、例えば、オンラインシステム10を起動する時間になったことに応じて、記憶装置2に記憶された対象データDT1を記憶装置3aに記憶する。さらに、第2情報処理装置1bは、例えば、オンラインシステム10を起動する時間になったことに応じて、記憶装置2に記憶された対象データDT1を記憶装置3bに記憶する。すなわち、第1情報処理装置1a及び第2情報処理装置1bは、第1の実施の形態における情報処理装置1にそれぞれ対応する。
[第2の実施の形態におけるオンラインシステムの機能]
次に、第2の実施の形態におけるオンラインシステム10の機能について説明する。図20は、第2の実施の形態における第1情報処理装置1aの機能ブロック図である。また、図21は、第2の実施の形態における第2情報処理装置1bの機能ブロック図である。以下、第1情報処理装置1a及び第2情報処理装置1bのCPUを、それぞれCPU101a及びCPU101bと呼ぶ。また、第1情報処理装置1a及び第2情報処理装置1bの情報格納領域(図示しない)に記憶されたプログラム(データロード処理を行うためのプログラム)を、それぞれプログラム110a及びプログラム110bと呼ぶ。なお、第1情報処理装置1a及び第2情報処理装置1bのハードウエア構成は、図2で説明した情報処理装置1のハードウエア構成とそれぞれ同じであるため説明を省略する。
第1情報処理装置1aのCPU101aは、図20に示すように、プログラム110aと協働することにより、例えば、第1データ取得部111aと、第1データ管理部112aと、第1インデックス生成部113aと、第1データアクセス部114aとして動作する。また、CPU101aは、図20に示すように、プログラム110aと協働することにより、例えば、第1インデックス送信部115aと、第1インデックス受信部116aとして動作する。
そして、情報格納領域130aには、第1の実施の形態と同様に、例えば、表定義情報131と、インデックス定義情報132とが記憶される。
一方、第2情報処理装置1bのCPU101bは、図21に示すように、プログラム110bと協働することにより、例えば、第2データ取得部111bと、第2データ管理部112bと、第2インデックス生成部113bと、第2データアクセス部114bとして動作する。また、CPU101bは、図21に示すように、プログラム110bと協働することにより、例えば、第2インデックス送信部115bと、第2インデックス受信部116bとして動作する。
そして、情報格納領域130bには、情報格納領域130aと同様に、例えば、表定義情報131と、インデックス定義情報132とがそれぞれ記憶される。
なお、第1データ取得部111a及び第2データ取得部111bは、第1の実施の形態におけるデータ取得部111と同じ機能である。また、第1データ管理部112a及び第2データ管理部112bは、第1の実施の形態におけるデータ管理部112と同じ機能である。また、第1インデックス生成部113a及び第2インデックス生成部113bは、第1の実施の形態におけるインデックス生成部113と同じ機能である。さらに、第1データアクセス部114a及び第2データアクセス部114bは、第1の実施の形態におけるデータアクセス部114と同じ機能である。そのため、以下、第2データ取得部111b、第2データ管理部112b、第2インデックス生成部113b及び第2データアクセス部114bについては説明を省略する。
[第2の実施の形態の詳細]
次に、第2の実施の形態の詳細について説明する。図22から図26は、第2の実施の形態におけるデータロード処理の詳細を説明するフローチャート図である。
第1情報処理装置1aの第1データ取得部111aは、図22に示すように、データロードタイミングになるまで待機する(S101のNO)。そして、データロードタイミングになった場合(S101のYES)、第1データ取得部111aは、情報格納領域130aに記憶された表定義情報131とインデックス定義情報132とを取得する(S102)。
その後、第1データ取得部111aは、S102の処理で取得したインデックス定義情報132から、インデックス情報IDXの生成に用いられる列を特定する(S103)。以下、S103の処理の詳細について説明を行う。
[S103の処理の詳細]
図23は、S103の処理の詳細を説明する図である。第1データ取得部111aは、図23に示すように、S102の処理で取得したインデックス定義情報132に複数のインデックス情報IDXに関する情報が含まれているか否かを判定する(S121)。
その結果、複数のインデックス情報IDXに関する情報が含まれている場合(S121のYES)、第1データ取得部111aは、S102の処理で取得したインデックス定義情報132から、S121の処理で存在した複数のインデックス情報IDX毎に、インデックス情報IDXの生成に用いられる列を特定する(S122)。
そして、第1データ取得部111aは、第1の実施の形態と異なり、S121の処理で情報が存在した複数のインデックス情報IDXのそれぞれを、第1情報処理装置1a(第1インデックス生成部113a)と第2情報処理装置1b(第2インデックス生成部113b)とのどちらが生成するのかを決定する(S123)。
すなわち、第2の実施の形態における第1インデックス生成部113a及び第2インデックス生成部113bは、S121の処理で存在した複数のインデックス情報IDXを分担して生成する。これにより、第1インデックス生成部113a及び第2インデックス生成部113bは、S121の処理で存在した複数のインデックス情報IDXの生成に要する時間をより短縮することが可能になる。
具体的に、第1データ取得部111aは、例えば、S121の処理で存在した複数のインデックス情報IDXのそれぞれの生成に用いられる列の数を特定し、特定した列の数が少ないインデックスの順位が高くなるように複数のインデックス情報IDXのそれぞれに対して順位付けを行う。そして、第1データ取得部111aは、例えば、順位が奇数であるインデックス情報IDXを、第1インデックス生成部113aが生成する第1インデックス情報IDX1として特定し、順位が偶数であるインデックス情報IDXを、第2インデックス生成部113bが生成する第2インデックス情報IDX2として特定するものであってよい。また、第1データ取得部111aは、例えば、順位が偶数であるインデックス情報IDXを、第1インデックス生成部113aが生成する第1インデックス情報IDX1として特定し、順位が奇数であるインデックス情報IDXを、第2インデックス生成部113bが生成する第2インデックス情報IDX2として特定するものであってよい。
なお、オンラインシステム10に含まれるクラスタシステムがN台(Nは3以上の整数)の情報処理装置から構成されている場合、第1データ取得部111aは、例えば、各インデックス情報IDXのうち、順位をNで除算した場合の余りが同じになるインデックス情報IDXを、情報処理装置1a(第1インデックス生成部113a)が生成するインデックス情報IDXとして特定するものであってよい。具体的に、第1データ取得部111aは、例えば、オンラインシステム10に含まれるクラスタシステムが3台の情報処理装置から構成されている場合、順位を3で除算した際の余りが0になるインデックス情報IDXと、順位を3で除算した際の余りが1になるインデックス情報IDXと、順位を3で除算した際の余りが2になるインデックス情報IDXとを、3台の情報処理装置がそれぞれ生成するインデックス情報IDXとして特定するものであってよい。
その後、第1データ取得部111aは、S121の処理で情報が存在した複数のインデックス情報IDXのうち、S123の処理で決定した第1インデックス情報IDX1に含まれるインデックス情報IDXに対し、各インデックス情報IDXの生成に用いられる列の数が少ない順に順位付けを行う(S124)。具体的に、第1データ取得部111aは、S123の処理において複数のインデックス情報IDXのそれぞれに対して決定した順位をそのまま用いるものであってもよい。
一方、S121の処理において、複数のインデックス情報IDXに関する情報が含まれていない場合(S121のNO)、第1データ取得部111aは、S102の処理で取得したインデックス定義情報132から、S121の処理で情報が存在したインデックス情報IDX(1つのインデックス情報IDX)の生成に用いられる列を特定する(S125)。その後、第1データ取得部111aは、例えば、S121の処理で情報が存在したインデックス情報IDXを、第1情報処理装置1a(第1インデックス生成部113a)と第2情報処理装置1b(第2インデックス生成部113b)とのどちらが生成するかを決定する(S126)。
図22に戻り、第1データ取得部111aは、S103の処理で特定した列に対応する生成元データを優先して、記憶装置2に記憶された対象データDT1に含まれる各データを順に取得する(S104)。以下、S104の処理の詳細について説明を行う。
[S104の処理の詳細]
図24は、S104の処理の詳細を説明する図である。第1データ取得部111aは、図24に示すように、対象データDT1に含まれるデータのうち、S123またはS126の処理で第1インデックス生成部113aが生成することを決定したインデックス情報IDXに対応する生成元データの全ての取得が完了しているか否かを判定する(S131)。
その結果、生成元データの全ての取得が完了していないと判定した場合(S131のNO)、第1データ取得部111aは、記憶装置2に記憶された対象データDT1に含まれる各データから、S122またはS125の処理で特定した列に対応する生成元データを順に取得する。具体的に、第1データ取得部111aは、優先順位が高いインデックス情報IDXに対応する生成元データを優先して、S122またはS125の処理で特定した列に対応する生成元データを順に取得する(S132)。
すなわち、第1データ取得部111aは、記憶装置2に記憶された対象データDT1に含まれる各データのうち、第1インデックス情報IDX1に含まれるインデックス情報の生成に用いられる生成元データの取得を優先的に行う。また、第1データ取得部111aは、第1インデックス情報IDX1に複数のインデックス情報が含まれている場合、第1インデックス情報IDX1の生成に用いられる生成元データの取得を、優先順位の高いインデックス情報に対応する生成元データから順に行う。
一方、S131の処理において、生成元データの全ての取得が完了していると判定した場合(S131のYES)、第1データ取得部111aは、記憶装置2に記憶された対象データDT1に含まれる各データから、生成元データ以外のデータを順に取得する(S133)。
図22に戻り、第1情報処理装置1aの第1データ管理部112aは、S104の処理で取得したデータを記憶装置3aに記憶する(S105)。その後、対象データDT1に含まれる全てのデータの取得が完了していない場合(S106のNO)、第1データ取得部111aは、S104以降の処理を再度行う。一方、対象データDT1に含まれる全てのデータの取得が完了した場合(S106のYES)、第1データ取得部111aは、次のデータロードタイミングまで待機する(S101)。
また、第1インデックス生成部113aは、図25に示すように、生成に用いられる生成元データの全ての取得が完了したインデックス情報IDXの存在を検知するまで待機する(S141のNO)。そして、生成に用いられる生成元データの全ての取得が完了したインデックス情報IDXの存在を検知した場合(S141のYES)、第1インデックス生成部113aは、存在を検知したインデックス情報IDXが第1インデックス情報IDX1であるか否かを判定する(S142)。
その結果、存在を検知したインデックス情報IDXが第1インデックス情報IDX1である場合(S142のYES)、第1インデックス生成部113aは、S105の処理で記憶装置3aに記憶された生成元データ(S104の処理で取得された生成元データ)から第1インデックス情報IDX1を生成する(S143)。そして、第1データ管理部112aは、S143の処理で生成した第1インデックス情報IDX1を、情報格納領域130aに記憶する(S144)。
さらに、第1情報処理装置1aの第1インデックス送信部115aは、S143の処理で生成した第1インデックス情報IDX1を第2情報処理装置1bに送信する(S145)。
これにより、第2情報処理装置1bの第2データアクセス部114bは、記憶済データDT2bにアクセスする際に、第2情報処理装置1bの第2インデックス生成部113bが生成した第2インデックス情報IDX2のみでなく、第1インデックス生成部113aが生成した第1インデックス情報IDX1についても参照することが可能になる。
その後、第1情報処理装置1aの第1インデックス受信部116aは、第2情報処理装置1bが送信した第2インデックス情報IDX2を受信するまで待機する(S146のNO)。そして、第2インデックス情報IDX2を受信した場合(S146のYES)、第1データ管理部112aは、S146の処理で受信した第2インデックス情報IDX2を情報格納領域130aに記憶する(S147)。
これにより、第1情報処理装置1aの第1データアクセス部114aは、記憶済データDT2aにアクセスする際に、第1インデックス生成部113aが生成した第1インデックス情報IDX1のみでなく、第2情報処理装置1bの第2インデックス生成部113bが生成した第2インデックス情報IDX2についても参照することが可能になる。
そのため、第1情報処理装置1a及び第2情報処理装置1bは、異常の発生等に伴って他方の情報処理装置にアクセスができなくなった場合であっても、第1インデックス情報IDX1及び第2インデックス情報IDX2の参照を引き続き行うことが可能になる。
なお、第1インデックス受信部116aは、自発的に第2情報処理装置1bにアクセスし、第2インデックス情報IDX2を取得するものであってもよい。
一方、S142の処理において、S141の処理で存在を検知したインデックス情報IDXが第1インデックス情報IDX1でない場合(S142のNO)、第1インデックス生成部113aは、S141の処理を再度行う。
[データアクセス処理]
次に、第2の実施の形態におけるデータアクセス処理について説明を行う。図26は、第2の実施の形態におけるデータアクセス処理を説明するフローチャート図である。
第1情報処理装置1aの第1データアクセス部114aは、図26に示すように、記憶済データDT2aに含まれるデータに対するアクセス要求(データに対する読み出し要求や書き込み要求等)を受け付けるまで待機する(S151のNO)。具体的に、第1データアクセス部114aは、例えば、利用者が操作端末(図示しない)を介して行ったアクセス要求を受け付けるまで待機する。
そして、記憶済データDT2aに含まれるデータに対するアクセス要求を受け付けた場合(S151のYES)、第1データアクセス部114aは、例えば、情報格納領域130aを参照し、S151の処理で受け付けたアクセス要求に対応するデータのインデックス情報IDX(第1インデックス情報IDX1または第2インデックス情報IDX2)が生成されているか否かを判定する(S152)。
その結果、S151の処理で受け付けたアクセス要求に対応するデータのインデックス情報IDXが生成されており、かつ、そのインデックス情報IDXを利用すると判定した場合(S152のYES)、第1データアクセス部114aは、情報格納領域130aに記憶された第1インデックス情報IDX1及び第2インデックス情報IDX2を参照し、S151の処理で受け付けたアクセス要求に対応するデータの記憶位置を特定する。そして、第1データアクセス部114aは、S152の処理で特定した記憶位置に対してアクセスを行う(S153)。その後、第1データアクセス部114aは、必要に応じて、アクセス結果の出力等を行う。
一方、S151の処理で受け付けたアクセス要求に対応するデータのインデックス情報IDXが生成されていない、または、そのインデックス情報IDXを利用しないと判定した場合(S152のNO)、第1データアクセス部114aは、インデックス情報IDXを参照することなく、S151の処理で受け付けたアクセス要求に対応するデータに対してアクセスを行う(S154)。その後、第1データアクセス部114aは、必要に応じて、アクセス結果の出力等を行う。
すなわち、第1データアクセス部114aは、記憶装置3aに記憶された記憶済データDT2aに含まれるデータに対するアクセスを行う際に、第1インデックス生成部113aが生成した第1インデックス情報IDX1のみでなく、第2情報処理装置1bから受信した第2インデックス情報IDX2についても参照してデータアクセスを行う。
これにより、第1データアクセス部114aは、第1インデックス生成部113aがインデックス情報IDXの一部(第1インデックス情報IDX1)のみの生成を行う場合であっても、インデックス情報IDXの全てを参照してデータアクセスを行うことが可能になる。
[オンラインシステムの構成の具体例]
次に、オンラインシステム10の構成の具体例について説明を行う。図27及び図28は、第1の実施の形態におけるオンラインシステム10の構成の具体例について説明する図である。また、図29及び図30は、第2の実施の形態におけるオンラインシステム10の構成の具体例について説明する図である。なお、図27から図30においては、情報格納領域130a及び情報格納領域130bの表記を省略する。
第1の実施の形態におけるデータ取得部111は、図27に示すように、ロードコマンドの機能からなるものであってよい。ロードコマンドは、この場合、例えば、記憶装置3に対する対象データDT1の記憶を開始する旨の入力を事業者等から受け付けたことに応じて、記憶装置2に記憶された対象データDT1を取得し、取得した対象データDT1をDBMS等に送信する。また、第1の実施の形態におけるデータ管理部112、インデックス生成部113及びデータアクセス部114は、図27に示すように、DBMS等の機能からなるものであってよい。DBMS等は、この場合、例えば、ロードコマンドから対象データDT1を受信したことに応じて、受信した対象データDT1を記憶装置3に記憶する。
なお、図27に示す例では、ロードコマンド及びDBMS等が同一の物理マシン(情報処理装置)において動作している。これに対し、ロードコマンド及びDBMS等は、それぞれ異なる物理マシンにおいて動作するものであってもよい。この場合、ロードコマンドは、例えば、DBMS等にアクセスする際に、インデックス定義情報132の取得を行うものであってよい。また、ロードコマンドは、例えば、インデックス定義情報132の指定を事業者等から受け付け、受け付けた情報に基づいてインデックス定義情報132の取得を行うものであってよい。
また、第1の実施の形態におけるデータ取得部111は、図28に示すように、DBMSの機能及びKVSまたはIMDB(以下、KVS等とも呼ぶ)の機能からなるものであってよい。DBMSは、この場合、例えば、KVS等からのデータの取得要求を受け付けたことに応じて、記憶装置2に記憶された対象データDT1を取得し、取得した対象データDT1をKVS等に送信する。また、第1の実施の形態におけるデータ管理部112、インデックス生成部113及びデータアクセス部114は、図28に示すように、KVS等の機能からなるものであってよい。KVS等は、この場合、例えば、DBMSから対象データDT1を受信したことに応じて、受信した対象データDT1を記憶装置3に記憶する。
なお、図28に示す例では、DBMS及びKVS等が同一の物理マシン(情報処理装置)において動作している。これに対し、DBMS及びKVS等は、それぞれ異なる物理マシンにおいて動作するものであってもよい。そして、KVS等は、この場合、例えば、SQL(Structured Query Language)によってインデックス定義情報132の取得を行うものであってよい。また、KVS等は、この場合、例えば、インデックス定義情報132の指定を事業者等から受け付け、受け付けた情報に基づいてインデックス定義情報132の取得を行うものであってもよい。
また、第2の実施の形態における第1データ取得部111aは、図29に示すように、ロードコマンドの機能からなるものであってよい。また、第2の実施の形態における第1データ管理部112a、第1インデックス生成部113a及び第1データアクセス部114aは、図29に示すように、DBMS等の機能からなるものであってよい。同様に、第2の実施の形態における第2データ取得部111bは、図29に示すように、ロードコマンドの機能からなるものであってよい。また、第2の実施の形態における第2データ管理部112b、第2インデックス生成部113b及び第2データアクセス部114bは、図29に示すように、DBMS等の機能からなるものであってよい。
さらに、第2の実施の形態における第1データ取得部111aは、図30に示すように、DBMSの機能及びKVS等の機能からなるものであってよい。また、第2の実施の形態における第1データ管理部112a、第1インデックス生成部113a及び第1データアクセス部114aは、図30に示すように、KVS等の機能からなるものであってよい。同様に、第2の実施の形態における第2データ取得部111bは、図30に示すように、DBMSの機能及びKVS等の機能からなるものであってよい。また、第2の実施の形態における第2データ管理部112b、第2インデックス生成部113b及び第2データアクセス部114bは、図30に示すように、KVS等の機能からなるものであってよい。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
第1記憶部に記憶された列及び行からなるデータ構造のデータ群を第2記憶部に記憶する情報処理装置において、
前記第1記憶部に記憶された前記データ群に含まれるデータを各列に対応するデータ毎に取得するデータ取得部と、
取得した前記データを前記第2記憶部に記憶するデータ管理部と、
前記データ群のインデックスの生成に用いられる列に対応する生成元データが前記第1記憶部から取得されたことに応じて、取得された前記生成元データから前記インデックスを生成するインデックス生成部と、を有する、
ことを特徴とする情報処理装置。
(付記2)
付記1において、
前記データ取得部は、前記生成元データを優先して、前記データ群に含まれるデータの取得を行う、
ことを特徴とする情報処理装置。
(付記3)
付記1において、
前記データ取得部は、
前記インデックスの生成に用いられる列を識別する識別情報が記憶された記憶部を参照して、前記インデックスの生成に用いられる列を特定し、
特定した前記列に対応するデータを前記生成元データとして、前記第1記憶部に記憶された前記データ群に含まれるデータの取得を行う、
ことを特徴とする情報処理装置。
(付記4)
付記2において、
前記データ取得部は、
前記第1記憶部に記憶された前記データ群に、第1インデックスの生成に用いられる列に対応する第1生成元データと、前記第1インデックスと異なる第2インデックスの生成に用いられる列に対応する第2生成元データとが含まれている場合、前記第1インデックス及び前記第2インデックスのうち、各インデックスの生成に用いられる列の数が少ない方のインデックスを特定し、
前記第1インデックスを特定した場合、前記第1生成元データを前記第2生成元データよりも優先して取得し、前記第2インデックスを特定した場合、前記第2生成元データを前記第1生成元データよりも優先して取得し、
前記インデックス生成部は、
前記第1生成元データが取得されたことに応じて、取得された前記第1生成元データから前記第1インデックスを生成し、
前記第2生成元データが取得されたことに応じて、取得された前記第2生成元データから前記第2インデックスを生成する、
ことを特徴とする情報処理装置。
(付記5)
付記2において、
前記データ取得部は、
前記第1記憶部に記憶された前記データ群に、複数のインデックスの生成に用いられる列に対応する前記生成元データが含まれている場合、前記複数のインデックスのうち、前記インデックス生成部が生成する特定のインデックスを特定し、
特定した前記特定のインデックスに対応する前記生成元データを優先して、前記第1記憶部に記憶された前記データ群に含まれるデータの取得を行い、
前記インデックス生成部は、
前記特定のインデックスに対応する前記生成元データが取得されたことに応じて、取得された前記生成元データから前記特定のインデックスを生成し、さらに、
前記第1記憶部に記憶されたデータ群を第3記憶部に記憶する他の情報処理装置に対し、前記特定のインデックスを送信するインデックス送信部と、
前記他の情報処理装置が送信した前記他のインデックスを受信するインデックス受信部と、を有する、
ことに特徴とする情報処理装置。
(付記6)
付記5において、
前記他の情報処理装置は、
前記第1記憶部に記憶された前記データ群に、前記複数のインデックスの生成に用いられる列に対応する前記生成元データが含まれている場合、前記複数のインデックスのうち、前記特定のインデックス以外の他のインデックスを特定し、
前記他のインデックスに対応する前記生成元データを優先して、前記第1記憶部に記憶された前記データ群に含まれるデータを取得し、
取得した前記データを前記第3記憶部に記憶し、
前記他のインデックスに対応する前記生成元データが取得されたことに応じて、取得された前記生成元データから前記他のインデックスを生成し、
生成した前記他のインデックスを前記情報処理装置に送信し、
前記情報処理装置が送信した前記特定のインデックスを受信する、
ことに特徴とする情報処理装置。
(付記7)
付記5において、
特定のインデックスを特定する処理では、
前記複数のインデックスそれぞれの生成に用いられる列の数を特定し、
特定した前記列の数が少ないインデックスの順位が高くなるように前記複数のインデックスそれぞれに対して順位付けを行い、
前記複数のインデックスのうち、順位を前記情報処理装置及び前記他の情報処理装置の台数で除算した余りが同じであるインデックスを、前記特定のインデックスとして特定する、
ことに特徴とする情報処理装置。
(付記8)
付記5において、さらに、
前記第2記憶部に記憶された前記データ群に含まれるデータに対するアクセス要求を受け付けた場合、前記インデックス生成部が生成した前記特定のインデックスが記憶された記憶部と、前記インデックス受信部が受信した前記他のインデックスが記憶された記憶部とを参照して、前記アクセス要求に対応するデータの記憶位置を特定し、特定した前記記憶位置にアクセスを行うデータアクセス部を有する、
ことを特徴とする情報処理装置。
(付記9)
第1記憶部に記憶された列及び行からなるデータ構造のデータ群を第2記憶部に記憶する情報処理装置に実行させるデータロードプログラムにおいて、
前記第1記憶部に記憶された前記データ群に含まれるデータを各列に対応するデータ毎に取得し、
取得した前記データを前記第2記憶部に記憶し、
前記データ群のインデックスの生成に用いられる列に対応する生成元データが前記第1記憶部から取得されたことに応じて、取得された前記生成元データから前記インデックスを生成する、
処理を前記情報処理装置に実行させることを特徴とするデータロードプログラム。
(付記10)
付記9において、
前記データ群に含まれるデータを取得する処理では、前記生成元データを優先して、前記データ群に含まれるデータの取得を行う、
ことを特徴とするデータロードプログラム。
(付記11)
第1記憶部に記憶された列及び行からなるデータ構造のデータ群を第2記憶部に記憶するデータロード方法において、
前記第1記憶部に記憶された前記データ群に含まれるデータを各列に対応するデータ毎に取得し、
取得した前記データを前記第2記憶部に記憶し、
前記データ群のインデックスの生成に用いられる列に対応する生成元データが前記第1記憶部から取得されたことに応じて、取得された前記生成元データから前記インデックスを生成する、
ことを特徴とするデータロード方法。
(付記12)
付記11において、
前記データ群に含まれるデータを取得する処理では、前記生成元データを優先して、前記データ群に含まれるデータの取得を行う、
ことを特徴とするデータロード方法。
1:情報処理装置 2:記憶装置
3:記憶装置 DT1:対象データ
DT2:記憶済データ

Claims (8)

  1. 第1記憶部に記憶された列及び行からなるデータ構造のデータ群を第2記憶部に記憶する情報処理装置において、
    前記第1記憶部に記憶された前記データ群に含まれるデータの検索時に参照されるインデックスの生成に用いられる列を識別する識別情報が記憶された記憶部を参照して、前記インデックスの生成に用いられる列に対応する生成元データを特定し、特定した前記生成元データを優先しながら、前記第1記憶部に記憶された前記データ群に含まれるデータを各列に対応するデータ毎に取得するデータ取得部と、
    取得した前記データを前記第2記憶部に記憶するデータ管理部と、
    前記成元データが前記第1記憶部から取得されたことに応じて、前記識別情報が記憶された前記記憶部を参照し、取得された前記生成元データから前記インデックスを生成するインデックス生成部と、を有する、
    ことを特徴とする情報処理装置。
  2. 請求項において、
    前記データ取得部は、
    前記第1記憶部に記憶された前記データ群に、第1インデックスの生成に用いられる列に対応する第1生成元データと、前記第1インデックスと異なる第2インデックスの生成に用いられる列に対応する第2生成元データとが含まれている場合、前記第1インデックス及び前記第2インデックスのうち、各インデックスの生成に用いられる列の数が少ない方のインデックスを特定し、
    前記第1インデックスを特定した場合、前記第1生成元データを前記第2生成元データよりも優先して取得し、前記第2インデックスを特定した場合、前記第2生成元データを前記第1生成元データよりも優先して取得し、
    前記インデックス生成部は、
    前記第1生成元データが取得されたことに応じて、取得された前記第1生成元データから前記第1インデックスを生成し、
    前記第2生成元データが取得されたことに応じて、取得された前記第2生成元データから前記第2インデックスを生成する、
    ことを特徴とする情報処理装置。
  3. 請求項において、
    前記データ取得部は、
    前記第1記憶部に記憶された前記データ群に、複数のインデックスの生成に用いられる列に対応する前記生成元データが含まれている場合、前記複数のインデックスのうちの1以上のインデックスを特定し、
    特定した前記1以上のインデックスに対応する前記生成元データを優先して、前記第1記憶部に記憶された前記データ群に含まれるデータの取得を行い、
    前記インデックス生成部は、
    前記1以上のインデックスに対応する前記生成元データが取得されたことに応じて、取得された前記生成元データから前記1以上のインデックスを生成し、さらに、
    前記第1記憶部に記憶されたデータ群を第3記憶部に記憶する他の情報処理装置に対し、前記1以上のインデックスを送信するインデックス送信部と、
    前記複数のインデックスのうちの前記1以上のインデックス以外の他の1以上のインデックスが前記他の情報処理装置から送信された場合、前記他の1以上のインデックスを受信するインデックス受信部と、を有する、
    ことに特徴とする情報処理装置。
  4. 請求項において、
    前記他の情報処理装置は、
    前記第1記憶部に記憶された前記データ群に、前記複数のインデックスの生成に用いられる列に対応する前記生成元データが含まれている場合、前記他の1以上のインデックスを特定し、
    前記他の1以上のインデックスに対応する前記生成元データを優先して、前記第1記憶部に記憶された前記データ群に含まれるデータを取得し、
    取得した前記データを前記第3記憶部に記憶し、
    前記他の1以上のインデックスに対応する前記生成元データが取得されたことに応じて、取得された前記生成元データから前記他の1以上のインデックスを生成し、
    生成した前記他の1以上のインデックスを前記情報処理装置に送信し、
    前記1以上のインデックスが前記情報処理装置から送信された場合、前記1以上のインデックスを受信する、
    ことに特徴とする情報処理装置。
  5. 請求項において、
    データ取得部は、
    前記複数のインデックスそれぞれの生成に用いられる列の数を特定し、
    特定した前記列の数が少ないインデックスの順位が高くなるように前記複数のインデックスそれぞれに対して順位付けを行い、
    前記複数のインデックスのうち、順位を前記情報処理装置及び前記他の情報処理装置の台数で除算した余りが互いに同じであるインデックスのそれぞれを、前記1以上のインデックスとして特定する、
    ことに特徴とする情報処理装置。
  6. 請求項において、さらに、
    前記第2記憶部に記憶された前記データ群に含まれるデータに対するアクセス要求を受け付けた場合、前記インデックス生成部が生成した前記1以上のインデックスが記憶された記憶部と、前記インデックス受信部が受信した前記他の1以上のインデックスが記憶された記憶部とを参照して、前記アクセス要求に対応するデータの記憶位置を特定し、特定した前記記憶位置にアクセスを行うデータアクセス部を有する、
    ことを特徴とする情報処理装置。
  7. 第1記憶部に記憶された列及び行からなるデータ構造のデータ群を第2記憶部に記憶する情報処理装置に実行させるデータロードプログラムにおいて、
    前記第1記憶部に記憶された前記データ群に含まれるデータの検索時に参照されるインデックスの生成に用いられる列を識別する識別情報が記憶された記憶部を参照して、前記インデックスの生成に用いられる列に対応する生成元データを特定し、特定した前記生成元データを優先しながら、前記第1記憶部に記憶された前記データ群に含まれるデータを各列に対応するデータ毎に取得し、
    取得した前記データを前記第2記憶部に記憶し、
    前記成元データが前記第1記憶部から取得されたことに応じて、前記識別情報が記憶された前記記憶部を参照し、取得された前記生成元データから前記インデックスを生成する、
    処理を前記情報処理装置に実行させることを特徴とするデータロードプログラム。
  8. 第1記憶部に記憶された列及び行からなるデータ構造のデータ群を第2記憶部に記憶するデータロード方法において、
    前記第1記憶部に記憶された前記データ群に含まれるデータの検索時に参照されるインデックスの生成に用いられる列を識別する識別情報が記憶された記憶部を参照して、前記インデックスの生成に用いられる列に対応する生成元データを特定し、特定した前記生成元データを優先しながら、前記第1記憶部に記憶された前記データ群に含まれるデータを各列に対応するデータ毎に取得し、
    取得した前記データを前記第2記憶部に記憶し、
    前記成元データが前記第1記憶部から取得されたことに応じて、前記識別情報が記憶された前記記憶部を参照し、取得された前記生成元データから前記インデックスを生成する、
    処理をコンピュータに実行させることを特徴とするデータロード方法。
JP2016253557A 2016-12-27 2016-12-27 情報処理装置、データロードプログラム及びデータロード方法 Active JP6871504B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016253557A JP6871504B2 (ja) 2016-12-27 2016-12-27 情報処理装置、データロードプログラム及びデータロード方法
US15/835,506 US10754839B2 (en) 2016-12-27 2017-12-08 Apparatus for data loading and data loading method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016253557A JP6871504B2 (ja) 2016-12-27 2016-12-27 情報処理装置、データロードプログラム及びデータロード方法

Publications (2)

Publication Number Publication Date
JP2018106518A JP2018106518A (ja) 2018-07-05
JP6871504B2 true JP6871504B2 (ja) 2021-05-12

Family

ID=62629870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016253557A Active JP6871504B2 (ja) 2016-12-27 2016-12-27 情報処理装置、データロードプログラム及びデータロード方法

Country Status (2)

Country Link
US (1) US10754839B2 (ja)
JP (1) JP6871504B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60196878A (ja) 1984-03-19 1985-10-05 Olympus Optical Co Ltd 検索装置
JPH04264973A (ja) 1991-02-20 1992-09-21 Nippon Denki Joho Service Kk データベースの蓄積方式
CN101727465B (zh) * 2008-11-03 2011-12-21 中国移动通信集团公司 分布式列存储数据库索引建立、查询方法及装置与系统
US20110246550A1 (en) * 2010-04-02 2011-10-06 Levari Doron System and method for aggregation of data from a plurality of data sources
US9336263B2 (en) * 2010-06-04 2016-05-10 Yale University Data loading systems and methods
JP5659757B2 (ja) 2010-12-09 2015-01-28 日本電気株式会社 分散データベース管理システム、分散データベース管理方法
US9727606B2 (en) * 2012-08-20 2017-08-08 Oracle International Corporation Hardware implementation of the filter/project operations
CN102890714B (zh) * 2012-09-24 2015-04-15 华为技术有限公司 数据索引方法及装置
WO2016183564A1 (en) * 2015-05-14 2016-11-17 Walleye Software, LLC Data store access permission system with interleaved application of deferred access control filters

Also Published As

Publication number Publication date
US20180181602A1 (en) 2018-06-28
JP2018106518A (ja) 2018-07-05
US10754839B2 (en) 2020-08-25

Similar Documents

Publication Publication Date Title
US11150958B2 (en) Quorum based transactionally consistent membership management in distributed storage
US20200334247A1 (en) Background format optimization for enhanced queries in a distributed computing cluster
JP5049223B2 (ja) Webクエリに対する検索要求属性を自動推定する検索装置、検索方法及びプログラム
US10860450B1 (en) Automated query retry in a database environment
US11971799B2 (en) Automated query retry using a database platform
US20170228422A1 (en) Flexible task scheduler for multiple parallel processing of database data
US11874824B2 (en) Identifying software regressions based on query retry attempts in a database environment
US10095737B2 (en) Information storage system
US8549007B1 (en) System and method for indexing meta-data in a computer storage system
US20170270149A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
JP6871504B2 (ja) 情報処理装置、データロードプログラム及びデータロード方法
JP7068210B2 (ja) データベース管理システム、端末装置及び方法
WO2016067370A1 (ja) 情報処理装置、方法およびプログラム
CN101796493A (zh) 信息检索系统、信息检索方法及程序
JP2020135410A (ja) アクセス制御プログラム、データベース管理システムおよびアクセス制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200714

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210329

R150 Certificate of patent or registration of utility model

Ref document number: 6871504

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150