(57)【要約】【課題】データ抽出を高速化することを課題とする。【解決手段】データ抽出装置は、キー情報とデータ情報とを対応付けた各第１のデータにおけるデータ情報が、抽出条件を満たすか否かを判定する。続いて、データ抽出装置は、判定したデータ情報に対応付けられるキー情報と判定結果とを対応付けた第２のデータを生成する。その後、データ抽出装置は、受信データに含まれるキー情報を用いて、各第２のデータから判定結果を特定する。【選択図】図２
2014228894.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
キー情報とデータ情報とを対応付けた各第１のデータにおける前記データ情報が、抽出条件を満たすか否かを判定し、
判定した前記データ情報に対応付けられる前記キー情報と判定結果とを対応付けた第２のデータを生成し、
受信データに含まれるキー情報を用いて、各第２のデータから前記判定結果を特定する
処理を実行させるデータ抽出プログラム。
【請求項２】
前記第２のデータを生成する処理は、前記各第１のデータのうち前記データ情報が前記抽出条件を満たすと判定された前記第１のデータのキー情報と判定結果とを対応付けた前記第２のデータを生成することを特徴とする請求項１に記載のデータ抽出プログラム。
【請求項３】
前記第２のデータを生成する処理は、前記第１のデータのデータ情報が更新された場合に、更新された前記第１のデータのキー情報に対応する判定結果を、更新後の前記データ情報に対する判定結果で更新し、前記第１のデータが削除された場合に、削除された前記第１のデータのキー情報に対応する判定結果を、削除されたことを示す削除情報で更新することを特徴とする請求項１または２に記載のデータ抽出プログラム。
【請求項４】
前記判定する処理が、前記データ情報が前記抽出条件を満たすか否かを判定するのに際して、前記データ情報を構成する各構成データについて、前記抽出条件を構成する各条件のうち当該構成データに対応する条件を満たすか否かを判定した第３のデータを生成し、
前記抽出条件が更新された場合に、更新された前記条件に対応する各構成データが当該条件を満たすか否かを判定して前記第３のデータを更新し、
前記更新した前記第３のデータと前記抽出条件とに基づいて、前記第２のデータの判定結果を更新する処理をさらにコンピュータに実行させることを特徴とする請求項１から３のいずれか一つに記載のデータ抽出プログラム。
【請求項５】
コンピュータが、
キー情報とデータ情報とを対応付けた各第１のデータにおける前記データ情報が、抽出条件を満たすか否かを判定し、
判定した前記データ情報に対応付けられる前記キー情報と判定結果とを対応付けた第２のデータを生成し、
受信データに含まれるキー情報を用いて、各第２のデータから前記判定結果を特定する
処理を含むことを特徴とするデータ抽出方法。
【請求項６】
キー情報とデータ情報とを対応付けた各第１のデータにおける前記データ情報が、抽出条件を満たすか否かを判定する判定部と、
前記判定部によって判定された前記データ情報に対応付けられる前記キー情報と判定結果とを対応付けた第２のデータを生成する生成部と、
受信データに含まれるキー情報を用いて、前記生成部によって生成された各第２のデータから前記判定結果を特定する特定部と
を有することを特徴とするデータ抽出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ抽出プログラム、データ抽出方法およびデータ抽出装置に関する。
【背景技術】
【０００２】
従来から、受信データが抽出条件に該当するか否かを判定して、データを抽出する技術が利用されている。例えば、データがコード化されたストリームデータを用いて、センサデータやＰＯＳ（Point  Of  Sale  system）データなどのデータを収集することが行われている。ストリームデータは、データがコード化されている。このため、ストリームデータとマスタ情報と照合して、データの具体的な内容を抽出することが行われる。
【０００３】
例えば、マスタ情報は、キーと複数のカラムとから構成されるマスタデータを複数有する。このマスタ情報とストリームデータを用いて、マスタデータを抽出する手法としては、マスタ照合後に抽出条件の判定を行う手法や、マスタデータに対して事前に判定処理を行った結果とストリームデータとを照合する手法とが知られている。
【０００４】
例えば、マスタ照合後に抽出条件の判定を行う手法は、ストリームデータ内のコードをキーにして、マスタ情報から該当するマスタデータを特定する。そして、特定したマスタデータの各カラムに対応するデータが、抽出条件を満たすか否かを判定し、抽出条件を満たす場合に、当該マスタデータを抽出する。
【０００５】
また、事前に判定処理を行う手法は、マスタ情報の各カラムについて、抽出条件を満たすか否かを判定し、カラムごとに条件を満たすキーを抽出した抽出情報を生成する。そして、ストリームデータのコードをキーにして、各カラムの抽出情報を参照して、各カラムの抽出情報にキーが含まれる場合に、当該マスタデータを抽出する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０４−１０２１７２号公報
【特許文献２】特開平０６−１８７３７９号公報
【特許文献３】特開２００６−１７１８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記技術では、例えばカラム数、レコード数、ストリームデータの受信頻度が多くなると、データ抽出にかかる処理時間が増大するという問題がある。
【０００８】
例えば、マスタ照合後に抽出条件の判定を行う手法では、マスタデータがＭ個ある場合には、１つのストリームデータについてＭ回の判定処理を実行するので、処理時間が長くなる。また、事前に判定処理を行う手法は、カラム数がＮ個ある場合には、Ｎ個の抽出情報を生成することになるので、１つのストリームデータについてＮ回の判定処理を実行することになり、処理時間が長くなる。
【０００９】
１つの側面では、データ抽出を高速化することができるデータ抽出プログラム、データ抽出方法およびデータ抽出装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の案では、コンピュータに、キー情報とデータ情報とを対応付けた各第１のデータにおける前記データ情報が、抽出条件を満たすか否かを判定する処理を実行させる。コンピュータに、判定した前記データ情報に対応付けられる前記キー情報と判定結果とを対応付けた第２のデータを生成する処理を実行させる。コンピュータに、受信データに含まれるキー情報を用いて、各第２のデータから前記判定結果を特定する処理を実行させる。
【発明の効果】
【００１１】
本発明の１実施形態によれば、データ抽出を高速化することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係るシステムの全体構成例を示す図である。
【図２】図２は、実施例１に係るデータ抽出装置の機能構成を示す機能ブロック図である。
【図３】図３は、マスタ情報ＤＢに記憶される情報の例を示す図である。
【図４】図４は、抽出条件式ＤＢに記憶される情報の例を示す図である。
【図５】図５は、中間情報ＤＢに記憶される情報の例を示す図である。
【図６】図６は、真偽判定表の例を示す図である。
【図７】図７は、ストリームデータの例を示す図である。
【図８】図８は、真偽判定表の生成例１を説明する図である。
【図９】図９は、真偽判定表の生成例２を説明する図である。
【図１０】図１０は、実施例１に係るデータ抽出処理の流れを示すフローチャートである。
【図１１】図１１は、実施例２に係るマスタ情報の削除例を説明する図である。
【図１２】図１２は、実施例２に係る抽出条件の更新例を説明する図である。
【図１３】図１３は、実施例３に係る真偽判定表更新時のストリームデータ処理例１を説明する図である。
【図１４】図１４は、実施例３に係る真偽判定表更新時のストリームデータ処理例１を説明する図である。
【図１５】図１５は、実施例３に係る真偽判定表更新時のストリームデータ処理例２を説明する図である。
【図１６】図１６は、実施例３に係る真偽判定表更新時のストリームデータ処理例２を説明する図である。
【図１７】図１７は、真偽判定表の別例を説明する図である。
【図１８】図１８は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するデータ抽出プログラム、データ抽出方法およびデータ抽出装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は矛盾しない範囲で適宜組み合わせることができる。
【実施例１】
【００１４】
［全体構成］
図１は、実施例１に係るシステムの全体構成例を示す図である。図１に示すように、このシステムは、ストリームデータ送信装置１とデータ抽出装置１０とが、インターネットなどのネットワーク２を介して接続される。なお、ここでは、ストリームデータを例にして説明するが、これに限定されるものではなく、一般的なデータであっても同様に処理することができる。
【００１５】
ストリームデータ送信装置１は、センサデータやＰＯＳデータなどをストリームデータとして、データ抽出装置１０に送信する装置の一例である。なお、図１では、１台のストリームデータ送信装置１を図示したが、これに限定されるものではなく、このシステムは複数のストリームデータ送信装置１を有していてもよい。
【００１６】
データ抽出装置１０は、ストリームデータとマスタ情報と照合して、データの具体的な内容を抽出するサーバ装置の一例である。データ抽出装置１０は、キー情報とデータ情報とを対応付けた第１のデータにおけるデータ情報が、抽出条件を満たすか否かを判定する。そして、データ抽出装置１０は、判定したデータ情報に対応付けられるキー情報と判定結果とを対応付けた第２のデータを生成する。その後、データ抽出装置１０は、受信ストリーミングデータに含まれるキー情報を用いて、各第２のデータから判定結果を特定する。
【００１７】
このように、データ抽出装置１０は、ストリームデータ受信前に、マスタ情報のデータ抽出判定を行って、キー毎に真偽判定結果を作成しておき、ストリームデータ受信時に、当該データ内のキーと真偽判定結果とを照合することで、データ抽出を高速化する。
【００１８】
［データ抽出装置の構成］
図２は、実施例１に係るデータ抽出装置の機能構成を示す機能ブロック図である。図２に示すように、データ抽出装置１０は、通信部１１、第１記憶部１２、第２記憶部１３、制御部１５を有する。
【００１９】
通信部１１は、他の装置との通信を確立する処理部であり、例えばネットワークインタフェースカードや無線インタフェースなどである。例えば、通信部１１は、ストリームデータ送信装置１が送信したストリームデータを受信する。
【００２０】
第１記憶部１２は、比較的容量が多いハードディスクなどの記憶装置の一例であり、マスタ情報ＤＢ１２ａと抽出条件式ＤＢ１２ｂと中間情報ＤＢ１２ｃとを記憶する。また、第１記憶部１２は、データ抽出装置１０の各種機能を実行するためのデータや各種プログラムを記憶する。
【００２１】
マスタ情報ＤＢ１２ａは、ストリームデータで特定される具体的な内容を示すマスタデータを記憶するデータベースである。図３は、マスタ情報ＤＢに記憶される情報の例を示す図である。図３に示すように、マスタ情報ＤＢ１２ａは、「キー、製品、スタイル、価格」を対応付けたマスタデータを記憶する。なお、ここでは、パーソナルコンピュータの製品情報を一例として説明するが、マスタ情報の内容がこれに限定されるものではない。
【００２２】
ここで記憶される「キー」は、マスタデータを検索する際に使用されるキー情報である。「製品」は、マスタデータが記憶する製品がパーソナルコンピュータなのか他の製品なのかを示す情報である。「スタイル」は、マスタデータが記憶するパーソナルコンピュータがデスクトップ、タブレット、ノードのいずれであるかを示す情報である。「価格」は、製品の価格を示す情報である。
【００２３】
図３の場合、「キー」が「０００１」である先頭のマスタデータは、価格が「６００００円」である「デスクトップ」型の「ＰＣ」であることを示している。「キー」が「０００３」である先頭から３番目のマスタデータは、価格が「１５００００円」である「ノート」型の「ＰＣ」であることを示している。
【００２４】
抽出条件式ＤＢ１２ｂは、ストリームデータからマスタデータを抽出する条件式を記憶するデータベースである。ここで記憶される抽出条件式は、管理者等によって設定されて格納される。図４は、抽出条件式ＤＢに記憶される情報の例を示す図である。
【００２５】
図４に示す抽出条件は、ストリームデータの「キー」と一致するマスタデータのうち、「製品」が「ＰＣ」であり、「スタイル」が「ノート」または「価格」が「１０００００未満」であるマスタデータを抽出することを示す。
【００２６】
中間情報ＤＢ１２ｃは、マスタデータから真偽判定表を生成する際に生成される中間データを記憶するデータベースである。図５は、中間情報ＤＢに記憶される情報の例を示す図である。図５に示すように、中間情報ＤＢ１２ｃは、「キー、製品、スタイル、価格」それぞれについて、抽出条件の判定結果を記憶する。
【００２７】
ここで記憶される「キー、製品、スタイル、価格」が示す情報は、図３と同様なので、説明を省略する。図５の場合、キーが「０００１」のマスタデータについて、「製品」については「Ｔｒｕｅ」と判定され、「スタイル」については「Ｆａｌｓｅ」と判定され、「価格」については「Ｔｒｕｅ」と判定されたことを示す。
【００２８】
第２記憶部１３は、プロセッサが直接読み書きするメモリなどの記憶装置の一例であり、真偽判定表１３ａを記憶する。真偽判定表１３ａは、制御部１５が第１記憶部１２のマスタ情報ＤＢ１２ａを第２記憶部１３に展開する際に格納される。
【００２９】
図６は、真偽判定表の例を示す図である。図６に示すように、真偽判定表１３ａは、「キー」と「判定結果」とを対応付けて記憶する。「キー」は、マスタ情報ＤＢ１２ａのマスタデータの「キー」に対応する。「判定結果」は、抽出条件を満たす場合には「１」が格納され、抽出条件を満たさない場合には「０」が格納される。なお、図６では、ＦＢＴヒドラの形で生成された真偽判定表を例示したが、これに限定されるものではなく、任意に形式で格納することができる。
【００３０】
制御部１５は、データ抽出装置１０全体の処理を司る処理部であり、条件判定部１６、中間情報生成部１７、真偽判定表生成部１８、ストリームデータ処理部１９を有する。この制御部１５は、プロセッサなどの電子回路などの一例である。また、条件判定部１６、中間情報生成部１７、真偽判定表生成部１８、ストリームデータ処理部１９は、プロセッサが実行するプロセスの一例である。
【００３１】
条件判定部１６は、マスタデータを構成する各構成データが抽出条件を満たすか否かを判定する処理部である。具体的には、条件判定部１６は、マスタ情報ＤＢ１２ａからマスタデータを読み込み、抽出条件式ＤＢ１２ｂから抽出条件式を読み込み、各マスタデータを構成する構成データの一例である各カラムが条件を満たすか否かを判定し、その結果を中間情報生成部１７に出力する。
【００３２】
例えば、条件判定部１６は、マスタ情報ＤＢ１２ａからマスタデータとして「キー（０００１）、製品（ＰＣ）、スタイル（Ｄｅｓｋｔｏｐ）、価格（６００００）」を抽出する。また、条件判定部１６は、図４示す抽出条件式「製品＝ＰＣ  ＡＮＤ  （スタイル＝ノート）ｏｒ（価格＝１０００００未満）」を抽出条件式ＤＢ１２ｂから読み込む。
【００３３】
そして、条件判定部１６は、製品が「ＰＣ」であることから「製品」のカラムについては条件を満たすと判定する。また、条件判定部１６は、スタイルが「Ｄｅｓｋｔｏｐ」であることから「スタイル」のカラムについては条件を満たさないと判定する。また、条件判定部１６は、価格が「６００００」であることから「価格」のカラムについては条件を満たすと判定する。
【００３４】
その後、条件判定部１６は、「キー」が「０００１」のマスタデータについては「製品（Ｔｒｕｅ）、スタイル（Ｆａｌｓｅ）、価格（Ｔｒｕｅ）」であることを中間情報生成部１７に出力する。
【００３５】
中間情報生成部１７は、条件判定部１６による判定結果に基づいて、中間情報を生成する処理部である。具体的には、中間情報生成部１７は、条件判定部１６による判定結果をキーごとに組み合わせて中間情報ＤＢ１２ｃに格納する。
【００３６】
例えば、中間情報生成部１７は、「キー」が「０００１」のマスタデータについて「製品（Ｔｒｕｅ）、スタイル（Ｆａｌｓｅ）、価格（Ｔｒｕｅ）」であることを条件判定部１６から受信する。この場合、中間情報生成部１７は、「キー、製品、スタイル、価格」として「０００１、Ｔｒｕｅ、Ｆａｌｓｅ、Ｔｒｕｅ」を生成して、中間情報ＤＢ１２ｃに格納する。
【００３７】
真偽判定表生成部１８は、中間情報生成部１７が生成した中間情報から真偽判定表を生成する処理部である。具体的には、真偽判定表生成部１８は、中間情報ＤＢ１２ｃから中間データを読み込み、抽出条件式ＤＢ１２ｂから抽出条件式を読み込み、各中間データが条件を満たすか否かを判定し、その結果を真偽判定表１３ａとして第２記憶部１３に格納する。
【００３８】
例えば、真偽判定表生成部１８は、中間データとして「キー（０００１）、製品（Ｔｒｕｅ）、スタイル（Ｆａｌｓｅ）、価格（Ｔｒｕｅ）」を中間情報ＤＢ１２ｃから読み込む。また、真偽判定表生成部１８は、図４示す抽出条件式「製品＝ＰＣ  ＡＮＤ  （スタイル＝ノート）ｏｒ（価格＝１０００００未満）」を抽出条件式ＤＢ１２ｂから読み込む。
【００３９】
そして、真偽判定表生成部１８は、キーが「０００１」の中間データについて、抽出条件に基づいて特定される「製品がＴｒｕｅ  かつ  （スタイルがＴｒｅｕ）または（価格がＴｒｕｅ）」を満たすか否かを判定する。この場合、真偽判定表生成部１８は、「キー（０００１）、製品（Ｔｒｕｅ）、スタイル（Ｆａｌｓｅ）、価格（Ｔｒｕｅ）」であることから、製品かつ価格がＴｒｕｅであるので、抽出条件を満たすと判定する。この結果、真偽判定表生成部１８は、「キー、判定結果」として「０００１、１」を対応付けて、真偽判定表１３ａに追加する。
【００４０】
ここでは、一例として真偽判定表生成部１８が真偽判定表１３ａを生成する例を説明するが、これに限定されるものではない。例えば、真偽判定表生成部１８は、真偽判定表１３ａではなく、「キー」と「判定結果」と対応付けたＫＶＳ（Key  Value  Store）形式のデータベースを生成することもできる。
【００４１】
ストリームデータ処理部１９は、ストリームデータを受信し、真偽判定表１３ａに基づいてデータの抽出を実行する処理部である。具体的には、ストリームデータ処理部１９は、受信したストリームデータからキーを抽出する。そして、ストリームデータ処理部１９は、抽出したキーに対応する「判定結果」を真偽判定表１３ａから検索する。その後、ストリームデータ処理部１９は、検索した「判定結果」が「１」である場合には、抽出対象と特定する。そして、ストリームデータ処理部１９は、当該ストリームデータのキーに対応するマスタデータをマスタ情報ＤＢ１２ａから抽出する。一方、ストリームデータ処理部１９は、検索した「判定結果」が「０」である場合には、抽出対象外と特定し、マスタデータの抽出を抑制する。
【００４２】
ここで具体例を説明する。図７は、ストリームデータの例を示す図である。図７のストリームデータは、一例としてＰＯＳデータを例示した。図７に示すように、ストリームデータ送信装置１が送信するストリームデータは、「時間、キー、名前」から構成されるコード化されたデータである。「時間」は、ストリームデータが送信された時間またはストリームデータが生成された時間である。「キー」は、具体的なデータを特定するコードであり、マスタデータの検索に使用される。「名前」は、ストリームデータすなわちＰＯＳデータを生成したユーザを示す。図７の場合、「2012-08-07  10：30」に生成された「キー」が「０００３」で「名前」が「ＴＯＫＫＹＯ」であるストリームデータを示す。
【００４３】
例えば、図７のストリームデータと図６の真偽判定表を用いて具体例を説明する。ストリームデータ処理部１９は、受信したストリームデータ「2012-08-07  10：30、０００３、ＴＯＫＫＹＯ」からキーとして「０００３」を抽出する。そして、ストリームデータ処理部１９は、抽出したキー「０００３」を検索キーにして、図６の真偽判定表を検索し、判定結果として「１」を特定する。
【００４４】
この結果、ストリームデータ処理部１９は、当該ストリームデータを抽出対象のデータと判定する。そして、ストリームデータ処理部１９は、ストリームデータ内のキー「０００３」を検索キーにしてマスタ情報ＤＢ１２ａを検索して、「キー（０００３）、製品（ＰＣ）、スタイル（Ｎｏｔｅ）、価格（６００００）」を抽出する。
【００４５】
［真偽判定表の生成例］
図８は、真偽判定表の生成例１を説明する図であり、図９は、真偽判定表の生成例２をを説明する図である。図８に示すように、条件判定部１６は、マスタ情報ＤＢ１２ａのキーが「０００１」のマスタデータについて、製品（ＰＣ）、スタイル（Ｄｅｓｋｔｏｐ）、価格（６００００）の各々が抽出条件を満たすか否かを判定する。そして、条件判定部１６は、それぞれについて条件を満たすか否かを示す「Ｔｒｕｅ」か「Ｆａｌｓｅ」を決定する。
【００４６】
続いて、中間情報生成部１７は、キー「０００１」のマスタデータについて、条件判定部１６による判定結果「製品（Ｔｒｕｅ）、スタイル（Ｆａｌｓｅ）、価格（Ｔｒｕｅ）」を対応付けた中間データを生成して、中間情報ＤＢ１２ｃに格納する。
【００４７】
その後、真偽判定表生成部１８は、キー「０００１」のマスタデータの中間データ「製品（Ｔｒｕｅ）、スタイル（Ｆａｌｓｅ）、価格（Ｔｒｕｅ）」と、抽出条件とから、当該マスタデータを抽出対象と特定する。すると、真偽判定表生成部１８は、「キー（０００１）」と「Ｔｒｕｅ」とを対応付けた真偽判定表１３ａを生成する。
【００４８】
続いて、図９に示すように、条件判定部１６は、マスタ情報ＤＢ１２ａのキーが「０００２」のマスタデータについて、製品（ＰＣ）、スタイル（Ｄｅｓｋｔｏｐ）、価格（１０００００）の各々が抽出条件を満たすか否かを判定する。そして、条件判定部１６は、それぞれについて条件を満たすか否かを示す「Ｔｒｕｅ」か「Ｆａｌｓｅ」を決定する。
【００４９】
続いて、中間情報生成部１７は、キー「０００２」のマスタデータについて、条件判定部１６による判定結果「製品（Ｔｒｕｅ）、スタイル（Ｆａｌｓｅ）、価格（Ｆａｌｓｅ）」を対応付けた中間データを生成して、中間情報ＤＢ１２ｃに格納する。
【００５０】
その後、真偽判定表生成部１８は、キー「０００２」のマスタデータの中間データ「製品（Ｔｒｕｅ）、スタイル（Ｆａｌｓｅ）、価格（Ｆａｌｓｅ）」と、抽出条件とから、当該マスタデータを抽出対象外と特定する。すると、真偽判定表生成部１８は、「キー（０００２）」と「Ｆａｌｓｅ」とを対応付けた真偽判定表１３ａを生成する。このようにして、データ抽出装置１０は、ストリームデータ受信前に、マスタ情報のデータ抽出判定を行って、キー毎に真偽判定表１３ａを生成する。
【００５１】
［処理の流れ］
図１０は、実施例１に係るデータ抽出処理の流れを示すフローチャートである。図１０に示すように、データ抽出装置１０の条件判定部１６は、処理が開始されると、すなわち、マスタ情報のメモリ展開が指示されると（Ｓ１０１：Ｙｅｓ）、抽出条件式ＤＢ１２ｂから抽出条件式を読み出す（Ｓ１０２）。
【００５２】
続いて、条件判定部１６は、マスタ情報ＤＢ１２ａから１つのレコードを読み出して、すなわち、１つのマスタデータを読み出して、各カラムのデータが抽出条件を満たすか否かを判定する（Ｓ１０３）。
【００５３】
そして、中間情報生成部１７は、条件判定部１６の結果に基づいて、中間情報を生成して、中間情報ＤＢ１２ｃに格納する（Ｓ１０４）。続いて、真偽判定表生成部１８は、中間情報ＤＢ１２ｃに記憶される中間データと、抽出条件式ＤＢ１２ｂに記憶される抽出条件式とから、真偽判定表１３ａを生成する（Ｓ１０５）。
【００５４】
その後、マスタ情報ＤＢ１２ａに未判定のマスタデータが存在する場合には（Ｓ１０６：Ｙｅｓ）、データ抽出装置１０は、Ｓ１０３に戻って以降の処理を繰り返す。一方、マスタ情報ＤＢ１２ａに未判定のマスタデータが存在しない場合には（Ｓ１０６：Ｎｏ）、真偽判定表生成部１８は、真偽判定表１３ａをメモリへ展開する（Ｓ１０７）。例えば、真偽判定表生成部１８は、生成した真偽判定表１３ａを第２記憶部１３に格納する。
【００５５】
その後、ストリームデータ処理部１９は、ストリームデータを受信すると（Ｓ１０８：Ｙｅｓ）、ストリームデータからキーを抽出する（Ｓ１０９）。続いて、ストリームデータ処理部１９は、抽出したキーを用いて真偽判定表１３ａを検索する（Ｓ１１０）。
【００５６】
そして、ストリームデータ処理部１９は、判定結果に「１」が格納されている場合（Ｓ１１１：Ｙｅｓ）、マスタ情報ＤＢ１２ａから、ストリームデータのキーに対応するマスタデータを抽出する（Ｓ１１２）。すなわち、ストリームデータ処理部１９は、検索した真偽判定表１３ａが「１」である場合、マスタデータを抽出する。
【００５７】
その後、ストリームデータ処理部１９は、Ｓ１０８に戻って以降の処理を繰り返す。また、ストリームデータ処理部１９は、判定結果に「０」が格納されている場合、すなわち、検索した真偽判定表１３ａが「０」である場合（Ｓ１１１：Ｎｏ）、マスタデータの抽出を行わずに、Ｓ１０８に戻って以降の処理を繰り返す。
【００５８】
このように、実施例１に係るデータ抽出装置１０は、ストリームデータ受信前に、マスタ情報のデータ抽出判定を行って、キー毎に真偽判定結果を作成する。そして、データ抽出装置１０は、ストリームデータ受信時に、当該データ内のキーと真偽判定結果とを照合する。したがって、データ抽出装置１０は、受信したストリームデータのキーを用いて、真偽判定表１３ａを検索することで、データ抽出の対象か否かを特定できるので、データ抽出を高速化することができる。
【００５９】
また、データ抽出装置１０は、ストリームデータ到着後に１回のキーの照合を行うだけで、抽出処理結果を得ることができるので、リアルタイム性を求められるストリームデータ処理において、処理遅延のリスクを削減できる。
【００６０】
また、データ抽出装置１０は、マスタデータに対する抽出条件の複雑度に依存せず、抽出処理結果を得ることができる。また、データ抽出装置１０は、マスタデータに対する抽出条件の数に依存せず、抽出処理結果を得ることができる。データ抽出装置１０は、マスタデータに対する抽出条件が複数の場合でも、判定表を１つ保持し、使用メモリ量を抑制できる。データ抽出装置１０は、ストリームデータ到着後に演算処理を実行しないので、プロセッサの負荷を抑えることができる。
【実施例２】
【００６１】
次に、真偽判定表１３ａを更新する例を説明する。ここでは、マスタ情報１２ａに記憶されるマスタデータが更新された場合に、真偽判定表１３ａを更新する例と、抽出条件式が更新された場合に、真偽判定表１３ａを更新する例とを説明する。
【００６２】
（マスタ情報の更新例）
図１１は、実施例２に係るマスタ情報の削除例を説明する図である。図１１では、マスタデータの更新によって真偽判定表１３ａの判定結果を更新する例を説明する。ここでは、一例としてマスタデータの削除を説明する。
【００６３】
図１１に示すように、データ抽出装置１０の真偽判定表生成部１８は、マスタ情報ＤＢ１２ａに格納されるマスタデータのうちキーが「０００３」のマスタデータが削除されたことを検出する。すると、真偽判定表生成部１８は、真偽判定表１３ａにおいてキー「０００３」に対応付けられる判定結果に「−１（ＮＵＬＬ）」を格納する。ここで、「−１」は、マスタデータが存在しないことを示す情報の一例である。
【００６４】
このようにすることで、マスタデータが削除された場合でも、データ抽出装置１０は、真偽判定表１３ａを作成しなおさずにデータ抽出処理を実行できるので、データ処理の遅延等を抑制できる。また、どのマスタデータが削除されたかを簡単に識別できるので、真偽判定表１３ａやマスタデータ等のデータ管理を効率的に行うことができる。
【００６５】
（抽出条件の更新例）
図１２は、実施例２に係る抽出条件の更新例を説明する図である。図１２に示すように、データ抽出装置１０は、抽出条件式「製品＝ＰＣ  ＡＮＤ  （スタイル＝ノート）ｏｒ（価格＝１０００００未満）」に基づいてデータ抽出判定を行った途中経過として、図５に示した中間データを記憶する。
【００６６】
このような状態において、抽出条件式「製品＝ＰＣ  ＡＮＤ  （スタイル＝ノート）ｏｒ（価格＝１０００００未満）」が抽出条件式「製品＝ＰＣ  ＡＮＤ  （スタイル＝ノート）ｏｒ（価格＝５００００未満）」に更新されたとする。つまり、価格の条件が「価格＜１０００００」から「価格＜５００００」に更新されたとする。
【００６７】
この場合、条件判定部１６は、マスタ情報ＤＢ１２ａに記憶される各マスタデータについて、更新された「価格」についてのみ抽出条件を満たすか否かの判定処理を再度実行する。そして、中間情報生成部１７は、条件判定部１６が判定した「価格」の判定結果のみを、中間情報ＤＢ１２ｃの中間データに反映させる。図１２では、キー「０００１」に対応する価格が「Ｔｒｕｅ」から「Ｆａｌｓｅ」に変更される。
【００６８】
その後、真偽判定表生成部１８は、更新された中間データと、更新された抽出条件式とを用いて、真偽判定表１３ａを更新する。このように、データ抽出装置１０は、検索条件式が更新された場合でも、更新された箇所について抽出判定をし直して、中間データを更新する。この結果、データ抽出装置１０は、検索条件式が更新された場合でも、真偽判定表１３ａを高速に変更することができるので、データ処理の遅延等を抑制できる。
【実施例３】
【００６９】
次に、図１３から図１６を用いて、真偽判定表１３ａを更新する際のストリームデータ処理について説明する。
【００７０】
（処理手法１）
図１３と図１４は、実施例３に係る真偽判定表更新時のストリームデータ処理例１を説明する図である。図１３に示すように、データ抽出装置１０は、ストリームデータを受信し、真偽判定表１３ａを用いてデータ抽出を行っている状況で、マスタ情報ＤＢ１２ａに記憶されるキーが「０００４」のマスタデータを更新する（Ｓ２０１）。
【００７１】
すると、データ抽出装置１０は、ストリームデータの受信をブロックする（Ｓ２０２）。ここでブロックとは、例えば、受信を抑制してストリームデータ送信装置１に再送を行わせることや、ストリームデータを受信してデータ抽出処理を抑止することなどである。つまり、図１３の場合、データ抽出装置１０は、ストリームデータＡについては受信またはデータ抽出を抑制する。この間、データ抽出対象ではあるが、未処理であるストリームデータＡ、ストリームデータＢが滞留する。
【００７２】
続いて、図１４に示すように、データ抽出装置１０は、キーが「０００４」のマスタデータに対応する真偽判定表１３ａの判定結果を「Ｆａｌｓｅ」から「Ｔｒｕｅ」に更新する（Ｓ２０３）。その後、データ抽出装置１０は、ストリームデータの受信ブロックを解除する（Ｓ２０４）。
【００７３】
このように、データ抽出装置１０は、真偽判定表１３ａを更新する間、ストリームデータを用いたデータ抽出を抑制できる。したがって、データ抽出装置１０は、最新の真偽判定表１３ａを用いて、データ抽出判定処理を実行することができ、判定ミス等を回避することができる。
【００７４】
（処理手法２）
図１５と図１６は、実施例３に係る真偽判定表更新時のストリームデータ処理例２を説明する図である。図１５に示すように、データ抽出装置１０は、真偽判定表１３ａを記憶するとともに、真偽判定表１３ａと同じデータで構成される真偽判定表１３ａ´を記憶する。通常、データ抽出装置１０は、真偽判定表１３ａを用いて、データ抽出判定処理を実行する。
【００７５】
このような状態において、データ抽出装置１０は、マスタ情報ＤＢ１２ａに記憶されるキーが「０００４」のマスタデータを更新する（Ｓ３０１）。続いて、データ抽出装置１０は、キーが「０００４」のマスタデータに対応する真偽判定表１３ａ´の判定結果を「Ｆａｌｓｅ」から「Ｔｒｕｅ」に更新する（Ｓ３０２）。
【００７６】
その後、図１６に示すように、データ抽出装置１０は、真偽判定表１３ａ´の更新を完了すると、次から受信したストリームデータについては、真偽判定表１３ａ´を用いて、データ抽出判定処理を実行する（Ｓ３０３）。例えば、データ抽出装置１０は、真偽判定表を参照するポインタを切替えて、ストリームデータの入口をスイッチさせる。
【００７７】
その後、データ抽出装置１０は、真偽判定表１３ａについても同様に更新する。このように、データ抽出装置１０は、真偽判定表の更新中も、受信をロックせずにストリームデータを処理することができる。この結果、データ抽出の高速化を維持できる。
【実施例４】
【００７８】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００７９】
（複数の抽出条件式）
例えば、データ抽出装置１０は、複数の抽出条件式が抽出条件式ＤＢ１２ｂに格納されている場合、条件式ごとに真偽判定表を生成することができる。図１７は、真偽判定表の別例を説明する図である。
【００８０】
図１７に示すように、データ抽出装置１０は、キー各々について、各条件式の判定結果を対応付けた真偽判定表を生成して保持する。そして、データ抽出装置１０は、ストリームデータの種別、ストリームデータに含まれる識別子、管理者による事前指示等によって、参照する判定結果を動的に変更する。
【００８１】
この結果、データ抽出装置１０は、各条件式に真偽判定表を作成しないので、メモリ容量の削減にもつながり、１つのストリームデータで複数のデータ抽出を実行することができるので、処理の高速化が図れる。
【００８２】
（中間情報）
実施例１等では、データ抽出装置１０が中間情報を生成する例を説明したが、これに限定されるものではなく、中間情報を生成することなく、マスタ情報から真偽判定表を生成することもできる。
【００８３】
（真偽判定表）
実施例１等では、データ抽出装置１０が、真偽判定表に、判定結果として「１（Ｔｒｕｅ）」、「０（Ｆａｌｓｅ）」、「−１（ＮＵＬＬ）」のいずれかを対応付ける例を説明したがこれに限定されるものではない。例えば、データ抽出装置１０が、判定結果が「１（Ｔｒｕｅ）」であるデータだけを、真偽判定表に登録してもよい。こうすることで、データ抽出装置１０は、データ抽出を高速化するとともに、メモリ容量の浪費を削減できる。
【００８４】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８６】
（ハードウェア）
図１８は、ハードウェア構成例を示す図である。図１８に示すように、データ抽出装置１０は、ＣＰＵ（Central  Processing  Unit）１０１、メモリ１０２、ＨＤＤ（Hard  Disk  Drive）１０３、通信インタフェース１０４、入力装置１０５、表示装置１０６を有する。また、図１８に示した各部は、バス等で相互に接続される。
【００８７】
ＨＤＤ１０３は、図２に示した機能を動作させるプログラムやテーブルを記憶する。通信インタフェース１０４は、ネットワークインタフェースカードや無線インタフェースなどである。入力装置１０５は、例えばキーボードなどであり、表示装置１０６は、例えばタッチパネルやディスプレイなど、各種情報を表示する表示装置である。
【００８８】
ＣＰＵ１０１は、図２に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０３等から読み出してメモリ１０２に展開することで、図２等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、データ抽出装置１０が有する各処理部と同様の機能を実行する。具体的には、ＣＰＵ１０１は、条件判定部１６、中間情報生成部１７、真偽判定表生成部１８、ストリームデータ処理部１９等と同様の機能を有するプログラムをＨＤＤ１０３等から読み出す。そして、ＣＰＵ１０１は、中間情報生成部１７、真偽判定表生成部１８、ストリームデータ処理部１９と同様の処理を実行するプロセスを実行する。
【００８９】
このようにデータ抽出装置１０は、プログラムを読み出して実行することでデータ抽出方法を実行する情報処理装置として動作する。また、データ抽出装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、データ抽出装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００９０】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９１】
（付記１）コンピュータに、
キー情報とデータ情報とを対応付けた各第１のデータにおける前記データ情報が、抽出条件を満たすか否かを判定し、
判定した前記データ情報に対応付けられる前記キー情報と判定結果とを対応付けた第２のデータを生成し、
受信データに含まれるキー情報を用いて、各第２のデータから前記判定結果を特定する
処理を実行させるデータ抽出プログラム。
【００９２】
（付記２）前記第２のデータを生成する処理は、前記各第１のデータのうち前記データ情報が前記抽出条件を満たすと判定された前記第１のデータのキー情報と判定結果とを対応付けた前記第２のデータを生成することを特徴とする付記１に記載のデータ抽出プログラム。
【００９３】
（付記３）前記第２のデータを生成する処理は、前記第１のデータのデータ情報が更新された場合に、更新された前記第１のデータのキー情報に対応する判定結果を、更新後の前記データ情報に対する判定結果で更新し、前記第１のデータが削除された場合に、削除された前記第１のデータのキー情報に対応する判定結果を、削除されたことを示す削除情報で更新することを特徴とする付記１または２に記載のデータ抽出プログラム。
【００９４】
（付記４）前記判定する処理が、前記データ情報が前記抽出条件を満たすか否かを判定するのに際して、前記データ情報を構成する各構成データについて、前記抽出条件を構成する各条件のうち当該構成データに対応する条件を満たすか否かを判定した第３のデータを生成し、
前記抽出条件が更新された場合に、更新された前記条件に対応する各構成データが当該条件を満たすか否かを判定して前記第３のデータを更新し、
前記更新した前記第３のデータと前記抽出条件とに基づいて、前記第２のデータの判定結果を更新する処理をさらにコンピュータに実行させることを特徴とする付記１から３のいずれか一つに記載のデータ抽出プログラム。
【００９５】
（付記５）コンピュータが、
キー情報とデータ情報とを対応付けた各第１のデータにおける前記データ情報が、抽出条件を満たすか否かを判定し、
判定した前記データ情報に対応付けられる前記キー情報と判定結果とを対応付けた第２のデータを生成し、
受信データに含まれるキー情報を用いて、各第２のデータから前記判定結果を特定する
処理を含むことを特徴とするデータ抽出方法。
【００９６】
（付記６）キー情報とデータ情報とを対応付けた各第１のデータにおける前記データ情報が、抽出条件を満たすか否かを判定する判定部と、
前記判定部によって判定された前記データ情報に対応付けられる前記キー情報と判定結果とを対応付けた第２のデータを生成する生成部と、
受信データに含まれるキー情報を用いて、前記生成部によって生成された各第２のデータから前記判定結果を特定する特定部と
を有することを特徴とするデータ抽出装置。
【００９７】
（付記７）メモリと
前記メモリに接続されるプロセッサと、を有し、
前記プロセッサは、
キー情報とデータ情報とを対応付けた各第１のデータにおける前記データ情報が、抽出条件を満たすか否かを判定し、
判定した前記データ情報に対応付けられる前記キー情報と判定結果とを対応付けた第２のデータを生成し、
受信データに含まれるキー情報を用いて、各第２のデータから前記判定結果を特定する
処理を実行するデータ抽出装置。
【００９８】
（付記８）キー情報とデータ情報とを対応付けた各第１のデータにおける前記データ情報が、抽出条件を満たすか否かを判定し、
判定した前記データ情報に対応付けられる前記キー情報と判定結果とを対応付けた第２のデータを生成し、
受信データに含まれるキー情報を用いて、各第２のデータから前記判定結果を特定する処理をコンピュータに実行させるデータ抽出プログラムを記憶する、コンピュータ読み取り可能な記憶媒体。
【符号の説明】
【００９９】
１  ストリームデータ送信装置
２  ネットワーク
１０  データ抽出装置
１１  通信部
１２  第１記憶部
１２ａ  マスタ情報ＤＢ
１２ｂ  抽出条件式ＤＢ
１２ｃ  中間情報ＤＢ
１３  第２記憶部
１３ａ  真偽判定表
１５  制御部
１６  条件判定部
１７  中間情報生成部
１８  真偽判定表生成部
１９  ストリームデータ処理部
【図１】
2014228894.tif 000003
【図２】
2014228894.tif 000004
【図３】
2014228894.tif 000005
【図４】
2014228894.tif 000006
【図５】
2014228894.tif 000007
【図６】
2014228894.tif 000008
【図７】
2014228894.tif 000009
【図８】
2014228894.tif 000010
【図９】
2014228894.tif 000011
【図１０】
2014228894.tif 000012
【図１１】
2014228894.tif 000013
【図１２】
2014228894.tif 000014
【図１３】
2014228894.tif 000015
【図１４】
2014228894.tif 000016
【図１５】
2014228894.tif 000017
【図１６】
2014228894.tif 000018
【図１７】
2014228894.tif 000019
【図１８】
2014228894.tif 000020
【手続補正書】
【提出日】平成26年4月22日(2014.4.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに、
マスタ情報と抽出条件とに基づいて、前記マスタ情報が抽出対象か否かを示す判断結果を生成し、
ストリームデータの受信に応じ、前記判断結果を用いて、前記ストリームデータで特定される前記マスタ情報の抽出要否を判定する
処理を実行させるデータ抽出プログラム。
【請求項２】
前記生成する処理は、キー情報とデータ情報とを有する複数のマスタ情報のうち前記データ情報が前記抽出条件を満たすと判定された前記マスタ情報のキー情報を対応付けた前記判断結果を生成することを特徴とする請求項１に記載のデータ抽出プログラム。
【請求項３】
前記生成する処理は、前記マスタ情報のデータ情報が更新された場合に、更新された前記マスタ情報のキー情報に対応する判断結果を、更新後の前記データ情報に基づいた判断結果で更新し、前記マスタ情報が削除された場合に、削除された前記マスタ情報のキー情報に対応する判断結果を、削除されたことを示す削除情報で更新することを特徴とする請求項２に記載のデータ抽出プログラム。
【請求項４】
前記データ情報が前記抽出条件を満たすか否かを判定するのに際して、前記データ情報を構成する各構成データについて、前記抽出条件を構成する各条件のうち当該構成データに対応する条件を満たすか否かを判定した中間データを生成し、
前記抽出条件が更新された場合に、更新された前記条件に対応する各構成データが当該条件を満たすか否かを判定して前記中間データを更新し、
前記更新した前記中間データと前記抽出条件とに基づいて、前記判断結果を更新する処理をさらにコンピュータに実行させることを特徴とする請求項２に記載のデータ抽出プログラム。
【請求項５】
コンピュータが、
マスタ情報と抽出条件とに基づいて、前記マスタ情報が抽出対象か否かを示す判断結果を生成し、
ストリームデータの受信に応じ、前記判断結果を用いて、前記ストリームデータで特定される前記マスタ情報の抽出要否を判定する
処理を含むことを特徴とするデータ抽出方法。
【請求項６】
マスタ情報と抽出条件とに基づいて、前記マスタ情報が抽出対象か否かを示す判断結果を生成する生成部と、
ストリームデータの受信に応じ、前記生成部によって生成された前記判断結果を用いて、前記ストリームデータで特定される前記マスタ情報の抽出要否を判定する判定部と
を有することを特徴とするデータ抽出装置。