JP5939583B2 - 抽出装置、データ処理システム、抽出方法および抽出プログラム - Google Patents

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

Info

Publication number
JP5939583B2
JP5939583B2 JP2013257689A JP2013257689A JP5939583B2 JP 5939583 B2 JP5939583 B2 JP 5939583B2 JP 2013257689 A JP2013257689 A JP 2013257689A JP 2013257689 A JP2013257689 A JP 2013257689A JP 5939583 B2 JP5939583 B2 JP 5939583B2
Authority
JP
Japan
Prior art keywords
node
processing
query
nodes
stream data
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.)
Expired - Fee Related
Application number
JP2013257689A
Other languages
English (en)
Other versions
JP2015114937A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2013257689A priority Critical patent/JP5939583B2/ja
Priority to CN201410662870.5A priority patent/CN104714997B/zh
Priority to US14/557,459 priority patent/US9984134B2/en
Publication of JP2015114937A publication Critical patent/JP2015114937A/ja
Priority to US14/748,205 priority patent/US10089370B2/en
Application granted granted Critical
Publication of JP5939583B2 publication Critical patent/JP5939583B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2445Data retrieval commands; View definitions
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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/2246Trees, e.g. B+trees
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Description

本発明は、クエリーを実行し、ストリーム・データおよびデータベースに格納されているデータに対して処理を行うデータ処理システム、そのデータ処理システムに用いられる、クエリーからストリーム・データを処理するためのプログラムに変換する変換対象を抽出する抽出装置、その抽出方法およびその方法をコンピュータに実行させるための抽出プログラムに関する。
ICタグ等のセンサ、ICカード、オンライン・ショッピングやオンライン・ゲーム等のオンライン・サービス、GPS(Global Positioning System)を搭載した携帯電話やスマートフォン、ネットワークに接続されたカーナビゲーション・システムの普及等に伴い、これらセンサ等により継続的に大量のデータが生成されている。これら大量のデータは、ストリーム・データと呼ばれ、ネットワーク上を流れ、分析等のためにデータベースへ格納される。
必要なデータは、データベースを管理するデータベース管理システム(DBMS)に対してクエリーを発行し、DBMSでそのクエリーを実行することによりデータベースから取得される。なお、クエリーは、データの取得のほか、データの更新、追加、削除等の処理をDBMSに実行させることができる。
近年、地球温暖化等の影響により、風の風速や雨量が急激に変化し、避難に数分遅れただけで災害に遭ってしまうといったケースが出てきている。このような急激な変化を見極め、早急に避難することができるようにするために、リアルタイムに風量データや雨量データを取得することができる高速なクエリーが求められている。
データベースには、大量のデータが格納されており、必要なデータを検索し、取得するためには、時間がかかる。その時間は、データ数やマシンの処理能力にもよるが、数分から数時間かかる場合もある。これでは、リアルタイムにデータを取得することが要求される場合に対応することができない。
そこで、データベースに格納する前の、データベースに入力されるストリーム・データに対して処理を行う技術が提案されている(例えば、特許文献1〜4参照)。これらの技術では、ストリーム・データに対して検索等の処理を行うので、リアルタイムにデータを取得することができる。
特開2006−338432号公報 特開2010−108073号公報 特開2010−217968号公報 特開2011−059967号公報
ストリーム・データに対して処理を行う場合、クエリーを登録しておき、継続的に入力されるストリーム・データに対して、そのクエリーを継続的に実行させなければならない。このため、クエリーは、ストリーム・データに対する命令を記述し、その記述に際して、SPL(Stream Processing Language)等のストリーム・データ処理言語が利用される。このクエリーは、コンパイルにより、ストリーム・データ処理コードと呼ばれる、ストリーム・データを処理するためのプログラムに変換され、そのコードの実行により処理が実行される。
一方、データベースに格納されているデータに対して処理を行う場合、データベースが保持する複数のテーブルを検索する等の複数のクエリーを、上記と同じストリーム・データ処理言語により記述するのは容易ではないため、SQL等のデータベース問い合わせ言語が利用される。
ストリーム・データとデータベースに格納されたデータとに対して処理を行うためには、異なる言語により記述したクエリーを使用する必要があった。このため、従来の技術では、ストリーム・データと、データベースに格納されたデータとに対して1つのクエリーを使用し、効率的に処理を行うことはできなかった。
ストリーム・データに対して処理を行う場合、そのストリーム・データをメモリに一度保存し、その保存したデータに対して行われる。このため、ストリーム・データをメモリに保存する必要がある。しかしながら、ストリーム・データが大量のデータである場合、その保存により、メモリ不足が生じ、システムが停止してしまう可能性がある。
また、ハード・リアルタイムを実現しようとすると、クライアント・コンピュータやエッジ・サーバ等のメモリ制約が厳しい機器で実行させる必要があるが、メモリ不足が生じやすくなり、システム停止も起こりやすくなる。
そこで、メモリ不足の発生を防止することができ、1つのクエリーでストリーム・データとデータベースに格納されたデータの両方に対して効率的に処理を実行することを可能にする装置や方法の提供が望まれていた。
本発明は、上記課題に鑑み、データベースを管理するデータベース管理システムに発行する1以上の命令をサブクエリーとして含むクエリーから、該データベースへ継続的に入力されるストリーム・データに対して処理を行うためのプログラムに変換するサブクエリーを変換対象として抽出する抽出装置であって、クエリーと、ストリーム・データの処理により使用量が増加するメモリの最大メモリ増加量と、データベース管理システムがクエリーを実行した場合と比較してプログラムによりストリーム・データを処理した場合に削減される単位メモリ増加量当たりの処理時間としての効率の下限値との入力を受け付ける入力部と、クエリーに含まれる各サブクエリーにつき、プログラムに変換してストリーム・データを処理した場合のメモリ増加量と、データベース管理システムが実行した場合と比較してストリーム・データを処理した場合に削減される処理時間とを計算し、計算した少なくとも1つのメモリ増加量と削減される処理時間とを用いて効率を算出する演算部と、算出された効率が下限値以上のサブクエリーを少なくとも1つ選択し、選択したサブクエリーにつき計算されたメモリ増加量を積算し、積算したメモリ増加量が最大メモリ増加量以下となることを条件として、選択したサブクエリーを変換対象として抽出する抽出部とを含む、抽出装置が提供される。
本発明によれば、メモリ不足の発生を防止でき、ストリーム・データとデータベースに格納されたデータに対して1つのクエリーを使用して処理を実行することが可能となる。
本実施形態のデータ処理システムの全体構成図。 図1に示すデータ処理システムが備えるクライアントおよびフロント・エンド・サーバのハードウェア構成を例示した図。 図1に示すデータ処理システムが行う処理を説明するための図。 SQLグラフを2つのノード群に分類しているところを示した図。 SQLグラフのパス毎に効率を計算しているところを示した図。 SQLグラフにおいて変換対象のノードを抽出しているところを示した図。 抽出装置として機能するクライアントの機能ブロック図。 SPLテンプレートを例示した図。 抽出装置が行う処理の流れを例示したフローチャート。 SQLで記述されたクエリーを例示した図。 SQLで記述されたクエリーに含まれるサブクエリーをノードで示した図。 パイプライン処理を行うサブクエリーの記述例と、非パイプライン処理を行うサブクエリーの記述例を示した図。 最終Inner join部分を非パイプライン処理化した例を示した図。 パイプライン処理および非パイプライン処理により生成されたテーブルの例およびそのテーブルを参照するように変換されたSQLの例を示した図。
以下、本発明を図面に示した具体的な実施の形態に沿って説明するが、本発明は、後述する実施の形態に限定されるものではない。図1は、本実施形態のデータ処理システムの全体構成図である。データ処理システムは、IOT(Internet of Things)デバイス10と、パケット通信網11と、クライアント・コンピュータ(以下、クライアントと略す)12と、フロント・エンド・サーバ13と、バック・エンド・サーバ14とを含んで構成されている。図1では、各機器は1つずつしか示されていないが、データ処理システムは、各機器を2以上含んで構成されていてもよい。
パケット通信網11は、データを分割したパケットの送受信を行う通信網で、インターネット網を含む。IOTデバイス10は、そのインターネット網に接続可能な、データを生成してインターネットへ送信するデバイスである。IOTデバイス10としては、車両、ヘルスケアデバイス、工場や学校等に取り付けられた各種センサ等を挙げることができる。IOTデバイス10とパケット通信網11との間の通信は、図示しないアクセス・ポイントを介してWi−Fi等の無線通信により行われる。
ヘルスケアデバイスとしては、例えば、体重計、体組成計、歩数計、活動量計、基礎体温計、血圧計等を挙げることができる。これらのデバイスは、計測するためのセンサ等を備えていて、計測データを生成し、それをインターネットへ送信する。
車両は、位置を計測するためのGPS、車速センサ、燃料圧等の各種圧力センサ、室温や外気温等の各種温度センサ等を備え、各センサが検出し、生成した計測データを送信する。ヘルスケアデバイスは、体重、歩数、体温、血圧等を計測し、生成した計測データを送信する。工場等に取り付けられた各種センサとしては、例えば、プラントや装置に取り付けられた温度計、流量計、圧力計、濃度計等に搭載されたそれらを計測するためのセンサを挙げることができる。
クライアント12は、ユーザが使用するPC等であり、第1処理装置として使用されるフロント・エンド・サーバ13や、第2処理装置として使用されるバック・エンド・サーバ14にて実行させるクエリーや各種パラメータの入力を受け付け、そのクエリーのコンパイル等を行う。クエリーやパラメータ、コンパイルの詳細については後述する。なお、クエリーは、バック・エンド・サーバ14が備えるデータベースに対する問い合わせを、SQL等のデータベース記述言語により記述したものである。
フロント・エンド・サーバ13は、IOTデバイス10がパケット通信網11に送信した大量の計測データ等のストリーム・データの入力を受け付け、ストリーム・データ処理を行い、その結果を、バック・エンド・サーバ14へ出力する。フロント・エンド・サーバ13は、クライアント12がクエリーをコンパイルし、このコンパイルにより生成されたストリーム・データ処理コードと呼ばれるプログラムを受け取り、このストリーム・データ処理コードを実行して、入力されるストリーム・データに対して所定の処理を行う。これにより、クエリーの一部または全部の処理を実行することができる。
バック・エンド・サーバ14は、フロント・エンド・サーバ13が処理した結果を受け取り、クエリーに、実行すべき残りの処理が存在する場合、その処理を実行し、その結果をデータベースに格納するとともに、クライアント12にその結果を返す。また、バック・エンド・サーバ14は、ストリーム・データをデータベースに格納する処理も行う。このため、バック・エンド・サーバ14は、データベースを管理し、そのデータベースに対する処理を実行するためのデータベース管理システム(DBMS)を実装する。
データベースは、バック・エンド・サーバ14内に構築され、バック・エンド・サーバ14をデータベース・サーバとして用いることができる。しかしながら、これに限られるものではなく、データベースは、バック・エンド・サーバ14からアクセス可能な外部に設置されていてもよい。また、データベースは、データをツリー構造で表した階層型データモデルを採用したデータベースや、問い合わせを論理演算により行う関係データベース等を用いることができる。なお、関係データベースを用いる場合、そのデータを管理するDBMSには、関係データベース管理システム(RDBMS)が用いられる。関係データベースやRDBMSについては良く知られたものであるので、ここでは詳述しない。以下、RDBMSを用いるものとして説明する。
ここで簡単に、図2を参照して、各機器のハードウェア構成について説明する。IOTデバイス10は、図示しないが、温度データを出力する場合はサーミスタ等を備える温度計、速度データを出力する場合は速度計、圧力データを出力する場合は圧力計をそれぞれ備えている。なお、速度計や圧力計には、速度センサや圧力センサが用いられている。また、IOTデバイス10は、計測データをインターネットへ送信するための送信機といった通信手段も備えている。
クライアント12は、ホスト・コントローラ20により相互に接続されるCPU21と、RAM22と、グラフィック・コントローラ23と、表示装置24と、入出力コントローラ25によりホスト・コントローラ20に接続される通信インタフェース26と、ハードディスク・ドライブ(HDD)27、CD/DVDドライブ28とを備えている。また、クライアント12は、入出力コントローラ25に接続されるROM29と、入出力チップ30を備えるレガシー入出力装置とを備えている。
ホスト・コントローラ20は、RAM22と、高い転送レートでRAM22をアクセスするCPU21やグラフィック・コントローラ23とを接続する。CPU21は、ROM29あるいはHDD27に格納されたブート・プログラム、OS、抽出プログラム等を実行する。CPU21は、並列処理が可能なマルチプロセッサとすることができる。
グラフィック・コントローラ23は、CPU21がRAM22内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置24上に表示させる。グラフィック・コントローラ23は、内部にこのフレーム・バッファを備えることもできる。
入出力コントローラ25は、ホスト・コントローラ20と、比較的高速な入出力装置である通信インタフェース26、HDD27、CD/DVDドライブ28を接続する。通信インタフェース26は、ネットワークを介して他の装置と通信する。HDD27は、OSや抽出プログラム、アプリケーション・プログラム、各種データ等を格納する。CD/DVDドライブ28は、CD−ROMやDVDに抽出プログラムや各種データ等が記録されている場合、それらを読み取り、RAM22を介して入出力チップ30に提供する。
入出力コントローラ25は、ROM29と、入出力チップ30等の比較的低速な入出力装置とが接続される。ROM29は、HDD27からOSをロードして起動するためのブート・プログラムや、コンピュータや機器の初期設定情報等を記録したファームウェア等を格納する。入出力チップ30は、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各部の入出力装置を接続する。
フロント・エンド・サーバ13およびバック・エンド・サーバ14は、同じハードウェア構成とし、いずれもブレード・サーバを用いることができる。このため、フロント・エンド・サーバ13についてのみ説明する。フロント・エンド・サーバ13は、CPU31、メモリ32、HDD33、通信インタフェース34を備える1以上のサーバ・ブレード35と、1以上のサーバ・ブレード35を収納する筐体とを含んで構成される。筐体には、各サーバ・ブレード35の動作を監視し、異常を検知した場合に他のサーバ・ブレードに切り替える管理モジュール、各サーバ・ブレード35が通信に必要とするLANアダプタ等を割り当てるI/Oモジュール、電源モジュール等の各種のモジュール36と、サーバ・ブレード35と各種のモジュール36とを相互接続するためのコネクタを備えるバック・プレーン37とが設けられる。
フロント・エンド・サーバ13は、追加のサーバ・ブレードを、バック・プレーン37が備えるコネクタに接続することで、サーバの台数を増やし、処理能力を向上させることができる。バック・エンド・サーバ14を、データベース・サーバとして用いる場合、バック・エンド・サーバ14の各サーバ・ブレードが備えるHDDを、データベースに使用することができる。なお、フロント・エンド・サーバ13およびバック・エンド・サーバ14は、ブレード・サーバに限定されるものではなく、その他のラック・マウント型のサーバや、タワー型のサーバ等を用いてもよい。
図3を参照して、データ処理システムが行う処理について詳細に説明する。図示しないIOTデバイスからストリーム・データが継続的に送信され、クライアント12がユーザの入力により、入力SQL40と示されたクエリーと、それに対応するユーザ定義入力パラメータ41とを受け付ける。ここでは、4つの入力SQL40が入力され、それに対応する4つのユーザ定義入力パラメータ41が入力されている。
入力SQL40は、SQLにより記述された1以上の命令をサブクエリーとして含む。サブクエリーは、データに対する処理もしくは操作(オペレーション)を記述しており、そのオペレーションとしては、例えば、ストリーム・データとして、各装置に取り付けられた温度データが入力されている場合に、温度が300℃以上を示す装置のみを抽出するという操作を挙げることができる。このとき、その温度は、1時間の平均温度が300℃以上の温度とされていてもよい。これは一例であるので、サブクエリーの操作はこれに限定されるものではない。
ユーザ定義入力パラメータ41としては、例えば、以下の3つのパラメータを設定することができる。1つ目のパラメータは、データ保存時間範囲と呼ばれるパラメータで、ストリーム・データをメモリ上に保存するデータの時間範囲を指定するものである。ストリーム・データは、パケットとして継続的に入力されるため、処理を行うためには、時間範囲またはパケット数で区切って処理を行う必要がある。ここでは、そのパラメータとして、時間範囲を入力している。
時間範囲は、例えば、1分や10分という時間を指定することができる。時間範囲として10分を指定した場合、ストリーム・データが入力され、10分間分保存したところで、その10分間分のデータに対して処理が行われる。指定する時間が長くなると、一度にメモリに保存するデータ量が増加するので、適切な時間が指定される。なお、このパラメータに代えて、上記のパケット数を指定するパラメータを入力することが可能である。
2つ目のパラメータは、最大メモリ増加量と呼ばれるパラメータである。処理を行う際、メモリにデータを一度保存し、その保存したデータに対して処理を行うことになるが、そのデータの保存により増加するメモリ増加量の最大値(上限値)を指定するものである。
3つ目のパラメータは、効率の下限値と呼ばれるパラメータである。入力SQL40は、1以上のサブクエリーを含んで構成されている。このデータ処理システムでは、クライアント12が入力SQL40をコンパイルし、その入力SQL40に含まれる1以上のサブクエリーから、ストリーム・データに対して処理を行うためのサブクエリーを抽出し、抽出したサブクエリーのみを変換してストリーム・データ処理コードを生成する。
この抽出の際、どのサブクエリーを抽出するかを決定するため、いずれのサブクエリーも変換せず、入力SQL40をRDBMSで実行した場合の処理時間と、各サブクエリーにつき、ストリーム・データ処理コードを生成して処理を行った場合の処理時間とを計算し、それらを比較して、削減される処理時間を算出する。ストリーム・データ処理コードにより処理を行う場合、メモリにデータを保存し、その保存したデータに対して処理を行うため、そのメモリの使用量が増加する。このため、その保存によりメモリが増加した量、すなわちメモリ増加量も算出する。削減される処理時間をそのメモリ増加量で除して、メモリの単位増加量当たりに削減される処理時間を算出し、これを上記の効率とする。したがって、この効率は、ストリーム・データ処理を行うことにより、どれだけ処理時間が削減され、どれだけ効率的に処理が行われるかを示す指標となるものである。3つ目のパラメータは、このように算出した効率の下限値を指定するものである。
図3中、コンパイルを行うコンパイラ42では、入力SQL40を構文解析し、各サブクエリーを各ノードとするツリー構造で表されるグラフを生成する。このツリー構造は、ストリーム・データが入力される側を根ノードとし、末端のノードを葉ノードとしている。根ノードは、それに繋がる親ノードが存在せず、葉ノードは、それに繋がる子ノードが存在しないノードである。コンパイラ42は、構文解析した結果に基づき、各ノードがパイプライン処理可能であるか否かを判断し、可能であるノードをパイプライン処理ノード(Pノード)とし、不可であるノードを非パイプライン処理ノード(NPノード)とする。
Pノードは、データを処理するための条件が固定されていて、入力されたデータを直ちに処理し、その処理結果を後続の子ノードへ出力することが可能なノードである。Pノードは、例えば、ストリーム・データにおいて流れてくるパケット毎に処理を行うことができるため、メモリ増加量が少なく、処理時間の削減効果も大きいという特徴を有している。
NPノードは、平均、合計、最大値を計算する等の集約演算を含み、一定の時間範囲のデータをメモリに保存する必要があるノードである。このため、メモリ増加量が大きく、処理時間の削減効果はないが、オン・メモリで実施することができることから、入力SQL40をRDBMSで実行する場合に比較して、処理時間を削減することができる。オン・メモリとは、プログラムを実行する際、利用するデータをすべてメモリに書き出し、データベースから読み出さないようにする技術である。
入力SQL40をツリー構造で表した例を、図4に示す。各ノード中、「P」はPノードを表し、「NP」はNPノードを表す。その左下に記載された「m1」〜「m17」はそのノードを、パイプライン処理または非パイプライン処理というストリーム・データ処理した場合のメモリ増加量で、その右隣の「e1」〜「e17」はそのノードをストリーム・データ処理した場合に、入力SQL40をRDBMSで実行する場合と比較して削減される処理時間を示す。なお、入力SQL40をRDBMSで実行する場合の処理時間は、実際に行った場合の処理時間ではなく、想定される処理時間であり、計算により算出される処理時間である。
ストリーム・データAは、根ノード50、51に入力され、ストリーム・データBは、根ノード52、53に入力され、ストリーム・データCは、根ノード54に入力され、処理が実行される。例えば、根ノード50で処理された結果と、根ノード51で処理された結果は、その子ノードであるノード55へ出力され、ノード55により処理される。そして、ノード55で処理された結果は、次のノード56へと順に出力され、最後に末端の葉ノード57へと出力され、その葉ノード57で最後の処理が実行される。葉ノード57で処理された結果がこの入力SQL40の処理結果となり、バック・エンド・サーバ14に格納されるとともに、クライアント12へ送られ、表示等される。
この処理を高速に行うために、Pノードである根ノードを検出し、検出した各根ノードをそれぞれ順に辿り、その辿った経路(パス)においてNPノードに到達するまでのPノードのみから構成される1以上のPノード群と、それ以外のノードからなる1以上のNPノード群とに分類する。図4では、色の薄い領域内にあるPノードのみから構成されるノード群がPノード群で、色の濃い領域内にあるNPノードを含むそれ以外のノードからなるノード群がNPノード群である。図4には、2つのPノード群と、1つのNPノード群とが示されている。この分類後、メモリ増加量および削減される処理時間が計算される。
メモリ増加量Mは、ストリーム・データに対してそのノードが処理を行うために必要とされるデータの保存に要するメモリ量である。削減される処理時間tredは、RDBMSで処理を行ったときの処理時間tRDBMSと、ストリーム・データ処理、すなわちパイプライン処理または非パイプライン処理を行ったときの処理時間tstreamとを計算し、その差により算出することができる。具体的には、下記式(1)により算出することができる。
メモリ増加量Mおよび削減される処理時間tredは、ストリーム・データのデータ・レート、ストリーム・データに対して処理を行う時間範囲(WINDOW)、過去にクエリーを実行した結果から得られる統計情報、クエリーの操作に関する情報に基づき算出することができる。その具体的な算出方法については後述する。このようにして算出されたメモリ増加量Mと削減される処理時間tredを用いて、単位メモリ増加量当たりに削減される処理時間、すなわち効率E(秒/byte)を、次の式(2)により算出する。
この効率Eは、Pノードを含む場合の方が、メモリ増加量が小さいため、大きな値となる傾向がある。すなわち、効率良く処理を行うことができる。メモリ増加量Mと効率Eは、ユーザが入力したパラメータの最大メモリ増加量Mmaxと効率の下限値Eminと比較される。メモリ増加量Mを加算していき、その積算値Mcomが、最大メモリ増加量Mmaxに達するまで、パイプライン処理または非パイプライン処理するストリーム・データ処理コードへの変換対象として追加していく。このとき同時に、効率Eが、下限値Emin以下でないことも確認される。
効率Eが下限値Emin以下となる場合、削減される処理時間tredが短い割に、メモリ増加量が大きく、パイプライン処理や非パイプライン処理を行ってもあまり効率が良くならないことを意味する。このため、下限値Emin以下となる場合には、変換対象として追加しない。変換対象として抽出されなかったノードについては、パイプライン処理や非パイプライン処理を行わず、RDBMSにて処理を実行する。
変換対象として追加するかどうかの評価は、ノードを順に選択して行うことができる。その選択方法の一例として、Pノード群の幅優先順にノードを選択することができる。ここで、幅優先とは、根ノードから始め、同じ階層にあるノードを優先して選択する方法である。最初に、Pノード群の1つの根ノードを選択する。どの位置にある根ノードを最初に選択するかは、予め設定により決定しておくことができる。その根ノードの変換対象の評価をし、順次同じ階層の隣接する根ノードの評価を行う。同じ階層のノードがなくなったら、1つ下の階層の子ノードを辿る。下の階層のノードにおいて、親ノードがRDBMSでの処理となっていた場合は、そのノードもRDBMSでの処理とする。Pノード群の全てのノードの評価が終了したら、別のPノード群につき、同様の評価を行う。
別のPノード群がないか、全てのPノード群につき評価が終了した場合、NPノード群について、Pノード群と同様に評価を行い、変換対象を抽出する。なお、根ノードがRDBMSにて処理を実行すると決定された場合は、同じパスにある全てのノードについて評価は行わず、それらのノードについては、RDBMSにて処理を実行すると決定する。変換対象として追加されたノードについてのメモリ増加量Mは、随時、メモリ増加量の積算値Mcomに加算される。
図5を参照して詳細に説明すると、まず、色が薄い領域にあるPノード群の1つを選択する。ここでは、ノード50、51、52、55、56から構成されるPノード群が選択される。このPノード群は、ノード50からノード55へのパス、ノード51からノード55へのパス、ノード52からノード56へのパスの3つのパスを有する。
まず、ノード50が選択され、効率Eが、上記式(2)により、e1/m1と算出される。このe1/m1が下限値Eminと比較され、下限値Emin以上で、かつこれまでのメモリ増加量の積算値Mcomにm1を加算して得られた新たな積算値が、最大メモリ増加量Mmax以下である場合、ノード50を変換対象として追加する。次にノード51、ノード52を同様に評価する。ノード55の親ノードであるノード50、ノード51が変換対象となった場合、ノード50からノード55へのパスの効率(e1+e5)/(m1+m5)、ノード51からノード55へのパスの効率(e2+e5)/(m2+m5)を算出し、大きい方を効率Eとし、同様に評価を行い、条件を満たす場合、ノード55を変換対象として追加する。このように、複数のパスをもつノードについては、計算した効率Eが最も大きい値を用いて評価を行う。
ノード55には、Pノードである子ノードが存在しないため、隣接する根ノードであるノード52について同様の評価を行う。このようにして、ノード56、別のPノード群にあるノード54についても同様の評価を行う。
ここでは、Pノード群についてのみ説明したが、色が濃い領域にあるNPノード群も同様に評価を行うことができる。なお、この場合も、根ノードがRDBMSにて処理を実行すると判断された場合は、同じパスにある全てのノードについて評価を行わず、その全てのノードは、RDBMSにて処理を実行する。
このようにして評価を行い、図5に示した全てのPノード群の全てのノードと、NPノード群の一部のノードが変換対象と決定された場合においても、メモリ増加量の積算値Mcomが、最大メモリ増加量Mmaxに達していない場合がある。高速に処理するためには、出来るだけ多くのノードを変換し、パイプライン処理や非パイプライン処理を行うことが望ましい。このため、根ノード側からだけではなく、その逆の葉ノード側からも、上記と同様にして、Pノードを評価し、変換対象に追加するか否かの判定を行う。
図6は、根ノード側からPノードを評価し、変換対象に追加した後、最大メモリ増加量Mmaxに達していないため、葉ノード側からPノードを評価しているところを示した図である。2つのPノード群におけるPノードはすべて変換対象として追加され、NPノード群における一部のノード(色の薄いノード)も変換対象として追加されている。上記の評価では、葉ノード57は、この葉ノード57へと繋がる上位ノードが、いずれもRDBMSで処理を行うと決定されたことから、評価を行わず、RDBMSで処理を行うと決定されている。
葉ノード57は、Pノードであり、メモリ増加量の積算値Mcomも最大メモリ増加量Mmaxに達していないため、この葉ノード側からも同様の評価を行っていく。図6では、葉ノード57につき計算されたメモリ増加量を加算しても、その積算値Mcomが最大メモリ増加量Mmaxにはまだ達していないので、変換対象に追加され、その上位のNPノード(色の濃いノード)については、Emが下限値Emin以下であるため、これらのノードについては変換対象に追加しないことが決定されている。なお、そのNPノードに挟まれたPノードは、根ノード側でも、葉ノード側でも、それに繋がる上位ノードであるNPノードがRDBMSで処理を実行すると決定されるので、評価は行わず、それらと同じRDBMSで処理を実行すると決定される。
このように、葉ノード側からも評価を行い、変換対象に追加できるノードを追加することで、RDBMSにおける処理結果に対する処理を、メモリ上で行うことができる。RDBMSにて行う処理を中央にまとめ、出来るだけ少なくすることで、全体的な処理の高速化を図ることができる。
再び図3を参照すると、変換対象に追加されたノードは、コンパイラ42により変換され、ストリーム・データ処理コードと呼ばれるパイプライン処理を実行するためのプログラム(パイプライン処理プログラム)および非パイプライン処理を実行するためのプログラム(非パイプライン処理プログラム)43が生成される。継続的に入力されるストリーム・データは、ETL処理プログラム44により、フィルタリング等の基本的な前処理がなされ、パイプライン処理プログラムおよび非パイプライン処理プログラム43等で利用しやすい形式に変換する処理が行われる。また、ETL処理プログラム44は、全ストリーム・データを第2のデータベース46に格納する処理を行う。
パイプライン処理プログラムおよび非パイプライン処理プログラム43は、図4〜図6で示したPノード群の、例えばノード50、ノード55の順に処理を実行するように配置され、その処理結果を第1のデータベース45に定期的な書き込みまたは残余SQL47の実行トリガーによる書き込みにより格納する。
入力SQL40は、一部のサブクエリーがストリーム・データ処理コードに変換されるため、そのサブクエリーが除かれ、RDBMSで実行する残りのサブクエリー、すなわち残余SQL47が生成される。この残余SQL47は、RDBMSにて実行され、パイプライン処理プログラムおよび非パイプライン処理プログラム43を開始させるトリガーを発生させ、第1のデータベース45に書き込みが終了した旨の通知を受け付ける。これに伴い、この残余SQL47は、第1のデータベース45からパイプライン処理プログラムおよび非パイプライン処理プログラム43による処理結果と、第2のデータベース46に格納されたデータとを取得し、クエリー処理を実行する。残余SQL47による処理結果は、ユーザに提示されたり、外部アプリケーションにより利用される。
このことから、クライアント12は、変換対象を抽出するための抽出装置や、パイプライン処理プログラムおよび非パイプライン処理プログラム43に変換する変換装置として機能する。この機能は、HDD27に格納された抽出プログラムや変換プログラムをCPU21により実行することにより実現することができる。ここでは、これらの装置が1つの機器であるクライアント12に実装されているが、別個の機器として構成することも可能である。
クライアント12は、図7に示すように、その機能部として、1以上のサブクエリーを含む入力SQL40と、ストリーム・データ処理によりその使用量が増加するメモリの最大メモリ増加量Mmaxと、効率の下限値Eminとの入力を受け付ける入力部60を備える。また、クライアント12は、各サブクエリーにつき、ストリーム・データ処理した場合のメモリ増加量と、ストリーム・データ処理したときにRDBMSで処理を行う場合に比較して削減される処理時間とを計算し、計算した少なくとも1つのメモリ増加量と削減される処理時間とから、効率を算出する演算部61を備える。
クライアント12は、演算部61により算出された効率が、入力部60が受け付けた効率の下限値Emin以上となるサブクエリーを少なくとも1つ選択し、既に抽出したサブクエリーがある場合には、その全てのサブクエリーにつき計算され積算されたメモリ増加量に、その選択したサブクエリーにつき計算されたメモリ増加量を加算し、加算した後のメモリ増加量を、ない場合には、その計算されたメモリ増加量を、最大メモリ増加量Mmax以下となることを条件として、その選択したサブクエリーを変換対象として抽出する抽出部62をさらに備える。
クライアント12は、上記の入力部60と、演算部61と、抽出部62とを少なくとも備え、それに加えて、入力SQL40を構文解析し、各サブクエリーを各ノードとし、ノード間の依存関係を示すツリー構造で表されるSQLグラフを生成するグラフ生成部63をさらに備えることができる。また、クライアント12は、その構文解析の結果に基づき、各ノードにつき、入力されたデータを処理し、処理結果を出力するパイプライン処理が可能なPノードか否かを決定し、上記のグラフを参照し、根ノードから階層的に繋がるノードがPノードのみからなる1以上のPノード群と、残りのノードからなる1以上のNPノード群とに分類する分類部64を備えることができる。
抽出部62は、サブクエリーを選択する際、設定により、効率が大きい順に選択することができる。効率が大きいサブクエリーから順に選択することで、より効率的に処理を行うことができるからである。抽出部62は、分類部64の分類結果に基づき、Pノード群に分類されたノードを優先し、効率が下限値以上であるノードのうち効率が大きい順に選択し、変換対象を抽出することができる。
メモリ増加量の積算値Mcomが、最大メモリ増加量Mmaxに達していない場合、分類部64が、葉ノード側から階層的に繋がるノードがPノードのみからなる1以上のPノード群と、残りのノードからなるNPノード群にさらに分類する。抽出部62は、そのPノード群に分類されたノードにつき、上記と同様の評価を行う。すなわち、効率Eが下限値Emin以上となるノードを選択し、それにつき計算されたメモリ増加量を加算して最大メモリ増加量Mmaxに達したかどうかを判断し、達していなければ、変換対象に追加する。
このように、変換対象を抽出することで、その後に、変換装置にてパイプライン処理プログラムや非パイプライン処理プログラムに変換し、また、入力SQLから変換対象部分を除いた残余SQLを生成し、それらを第1処理装置としてのフロント・エンド・サーバ13および第2処理装置としてのバック・エンド・サーバ14へ送り、ストリーム・データとデータベースに格納されたデータに対して1つのクエリーを使用して処理を実行することが可能となる。また、変換対象を抽出し、その変換を制限することで、パイプライン処理や非パイプライン処理により増加するメモリによるメモリ不足が発生するのを防止することも可能となる。
なお、変換対象は、SQLの節(テンプレートが用意できる節)を予め決定しておき、その予め決定されたSQLの節を探し出すことにより抽出することができる。変換対象以外が入力された場合は、警告表示し、DBアクセスのままにしておくか、エラー表示することができる。このSQLの節としては、データの照会を行うselect節、where節、group by節、order by節、having節を挙げることができる。また、ストリーム・データ処理コードの生成は、SQLの節に対応するテンプレートを用いて行うことができる。図8に、そのテンプレートの例として「select A1,agg(A2) as agg_A2 from B where C group by D1,D2 having E」というSQLに対するSPLのテンプレートを示す。
このクライアント12が行う処理について、図9に示すフローチャートを参照して簡単に説明する。ステップ900からこの処理を開始し、ステップ910では、入力部60が、ユーザから入力SQLおよびユーザ定義入力パラメータの入力を受け付ける。これらは、グラフ生成部63に送られ、ステップ920で、グラフ生成部63が、入力SQLを構文解析し、図4に示すような、サブクエリー間の依存関係を示すツリー構造で表されるSQLグラフを生成する。
ステップ930では、分類部64が、グラフ生成部63から構文解析により得られた各サブクエリーの処理タイプを取得し、その処理タイプから、各サブクエリーがPノードであるか、NPノードであるかを決定し、1以上のPノード群と1以上のNPノード群とに分類する。分類部64は、この分類結果を抽出部62へ渡す。
ステップ940では、演算部61が、各サブクエリーにつき、メモリ増加量と、ストリーム・データ処理したときにRDBMSで処理を行う場合に比較して削減される処理時間とを計算する。そして、演算部61は、計算したメモリ増加量と、削減される処理時間とから、効率を算出する。演算部61によるこの処理は、分類部64による分類の前に実行されてもよいし、その分類と並行して実行してもよい。
ステップ950では、抽出部62が、演算部61により算出されたメモリ増加量Mおよび効率Eと、分類部64の分類結果およびグラフとを受け取り、根ノード側から、その効率Eが下限値Emin以上となるサブクエリーを少なくとも1つ選択する。抽出部62は、既に抽出したサブクエリーがある場合には、その全てのサブクエリーにつき計算され積算されたメモリ増加量に、その選択したサブクエリーにつき計算されたメモリ増加量Mを加算する。そして、抽出部62は、加算した後のメモリ増加量の積算値Mcomが最大メモリ増加量Mmax以下となる場合に、その選択したサブクエリーを変換対象として抽出する。
ステップ960では、メモリ増加量の積算値Mcomが最大メモリ増加量Mmaxに達していないかどうかを判断する。例えば、最大メモリ増加量Mmaxに達するまでの残量が一定量以下である場合は、達したと判断し、一定量を超える場合は、達していないと判断することもできる。達したと判断した場合は、ステップ980へ進み、この処理を終了する。
これに対し、達していないと判断した場合は、ステップ970へ進み、抽出部62が、葉ノードの側から、効率Eが下限値Emin以上となるサブクエリーを少なくとも1つ選択する。そして、抽出部62は、上記のメモリ増加量の積算値Mcomに、その選択したサブクエリーにつき計算されたメモリ増加量を加算し、最大メモリ増加量Mmax以下となる場合に、その選択したサブクエリーを変換対象として抽出する。葉ノード側からの評価も終了したところで、ステップ980へ進み、この処理を終了する。
ここから、具体的な例を用いて、分類方法、メモリ増加量や削減される処理時間の計算方法、抽出した後に生成されるパイプライン処理プログラムや残余SQL等について詳細に説明する。図10は、入力SQL40の一例を示した図である。このSQLは、リアルタイムのクーポン発行処理を実行させるためのクエリーである。
長期間運転で休息をとっておらず、渋滞に巻き込まれていて、コンビニエンス・ストアを頻繁に訪れるドライバーに、コンビニエンス・ストアのクーポンを発行することを考える。入力SQL40は、該当する車両を抽出するためのクエリーである。入力SQL40中、car_all_tableは、車両が送信するストリーム・データである。このストリーム・データは、各車両が100m/秒ごとに送信するデータで、車両を識別するための車両ID、車両の現在の位置を識別するための位置ID、車両のエンジンを制御するエンジン制御ユニット(ECU)から出力される各種ECUデータ等が含まれる。各種ECUデータとしては、1分間の平均速度やエンジンの稼働時間等を挙げることができる。
conv_fav_car_tableは、過去の行動履歴として、データベースに蓄積されたストリーム・データから、コンビニエンス・ストアに頻繁に訪れる車両の車両情報を取得したリストである。SLOW_LONG_OP_CARSは、低速走行で、エンジン稼働時間が長い車両の車両IDリストである。稼働時間が長いかどうかは、任意の閾値を超えたかどうかにより判断することができる。CONV_STORE_FAV_CARは、頻繁にコンビニエンス・ストアを訪れる車両の車両IDリストである。
この入力SQL40を構文解析すると、ストリーム・データであるcar_all_tableが入力され、その中から低速走行で、エンジン稼働時間が長い車両の車両IDリストを抽出する処理を行うSLOW_LONG_OP_CARSが1つのノード70として得られる。また、蓄積されたストリーム・データであるconv_fav_car_tableが入力され、頻繁にコンビニエンス・ストアを訪れる車両の車両IDリストを抽出する処理を行うCONV_STORE_FAV_CARがもう1つのノード71として得られる。さらに、これらの車両IDリストを結合するノード72も得られる。このようにして、図11(a)に示すような、ツリー構造をもつSQLグラフを生成することができる。
パイプライン処理か、非パイプライン処理かは、図12(a)に示すように、where節における条件が一定であり、ストリーム・データが入力されたときに処理を行い、直ちに後続のノードへ送出可能であるノードかどうかにより判断する。図12(a)に示す例では、速度(speed)が5km/h以下の車両の車両ID(car_id)を取得し、それを直ちにリストにして送出するので、パイプライン処理である。ここで、where節は、データを選択等する際の条件を指定するコマンドである。
図12(b)に示す例では、集約演算であるAVG(平均)を含み、平均を計算するには一定の時間範囲のデータを保存する必要があるので、直ちに後続のノードへ送出できない。このため、この処理は、非パイプライン処理である。例えば、where節中に、AVG等の特定の文字を検出したかどうかにより、いずれかを判断することができる。
再び図11を参照すると、SLOW_LONG_OP_CARSはパイプライン処理として決定され、変換対象として抽出され、conv_fav_car_tableはパイプライン処理として決定されるが、効率が小さいので、変換対象として抽出されないものとする。ノード70は、図11(b)に示すように、変換対象として抽出され、パイプライン処理プログラム73へ変換される。パイプライン処理プログラム73では、その実行により、該当する車両IDを取得し、それをリストにしてテーブルを生成する。入力SQL40は、パイプライン処理プログラム73により実行される処理を除いたSQLに書き換えられる。書き換えられたSQLは、パイプライン処理プログラム73により処理された結果を参照する残余SQL74が生成される。
図11に示した例では、ノード72において2つのテーブルが、例えば車両IDに基づき結合され、結合して得られたテーブルを送出するように構成されているが、この結合処理を非パイプライン処理とし、非パイプライン処理プログラムにより行うようにすれば、RDBMSで実行すべき処理が少なくなり、より高速化を図ることができる。そこで、図13に示すように構成することができる。図13は、上記のノード72における結合処理を表す最終inner join部分を、非パイプライン処理に置き換えた残余SQLを示している。なお、Inner joinは、2つのテーブルにある共通するレコードを1つにまとめ、それら2つのテーブルを結合する操作である。
パイプライン処理プログラムや非パイプライン処理プログラムにより処理を実行すると、該当する車両IDを取得し、取得した車両IDをリストしたテーブルを生成する。図14(a)は、このようにして生成されたテーブルを例示した図である。このテーブルでは、1分間の平均速度が5km/hで、かつ120分以上の長時間運転の車両IDがWINDOW時間分含まれている。WINDOWは、入力された時間範囲である。
図14(b)は、図9に示した入力SQLの例と同じものである。この入力SQLは、パイプライン処理プログラム等により、図14(a)に示すようなテーブルが生成されると、その生成されたテーブルを参照するように、図14(c)に示すような残余SQLへ変換される。具体的には、図14(b)のオン・メモリで車両IDを抽出する処理から、テーブル(SLOW_LONG_OP_CARS)から車両IDを抽出する処理を行うように、その部分の記述が書き換えられる。
メモリ増加量、削減される処理時間の計算方法について詳細に説明する。メモリ増加量は、サブクエリーをノードとし、そのノードの処理を行うために保持しなければならないデータ量である。Pノードについては、入力されたストリーム・データをバッファリングする時間分のデータ量とされる。なお、バッファリングすることで、同時に複数のパケットを処理することができる。NPノードについては、入力されたストリーム・データのWINDOW時間分のデータ量とされる。2つのテーブルを結合(join)する処理については、それぞれから入力されたデータを直積したデータ量とされる。
削減される処理時間は、上記式(1)により算出される。式(1)中、入力SQLをRDBMSで処理を行ったときの処理時間tRDBMSは、次の式(3)により算出することができる。式(3)中、tscanは、データを検索するデータ・スキャン時間であり、topは、データの選択や演算を行うデータ操作時間である。
データ・スキャン時間tscanは、次の式(4)により、データ操作時間topは、次の式5により算出することができる。なお、式(4)中、Dinは、入力されるデータのデータ・サイズであり、Uscanは、単位データ・サイズ当たりのスキャン時間である。式(5)中、Dopは、操作対象のデータのデータ・サイズであり、Uopは、単位データ・サイズ当たりの操作時間である。これらのUscan、Uopは、実際に、RDBMSにより実行し、また、ストリーム・データ処理を行い、予め求めておき、その求めた値を用いる。
上記式(4)中、入力されるデータ・サイズは、次の(i)〜(iii)の処理を順に実行することにより求めることができる。
(i)複数のテーブルを結合(join)する処理がある場合、入力されたデータを直積したデータ・サイズを計算する。
(ii)where節、having節がある場合、予め過去に蓄積されたデータ(統計情報)からその各条件のフィルタ率、すなわち該当するデータを抽出できる確率を求めておき、上記(i)の処理後のデータに対して、そのフィルタ率を適用したときのデータ・サイズを計算する。ここで、having節は、where節と同様、条件を指定するものであるが、AVG等の集約演算において使用されるコマンドである。
(iii)上記(ii)の処理後のデータに対して、Select処理で選択されるカラム選択率を適用したときのデータ・サイズを計算する。ここで、カラム選択率は、選択されるカラム数を、入力されるデータのカラム数を除することにより算出される値である。
上記式(5)中、操作対象のデータ・サイズは、上記(i)の処理後のデータ・サイズと、上記(ii)の処理後のデータ・サイズとを加算した値を用いることができる。
具体例を用いて説明する。入力SQLは、図10に示した例の入力SQL40を使用するものとする。入力データは、ストリーム・データ(car_all_table)であり、各車両が100msec毎に100カラムのパケットを送信し、それが入力されるものとする。1カラムのデータは、4バイトとする。1000台の車両がそのパケットを送信するものとする。すると、ストリーム・データのデータ・レートは、100カラム×4バイト×10パケット/sec×1000台=4MB/secとなる。
また、蓄積されたデータ(conv_fav_car_table)は、車両10000台分の30カラムのデータとすると、10000台×30カラム×4バイト=1.2MBとなる。
ストリーム・データのノード内でのバッファリング時間、すなわちPノードでのバッファリング時間(時間範囲)を、1secとし、過去の統計情報から得られるフィルタ率を1%とする。なお、フィルタ率は、平均速度が5km/hより小さく、かつエンジン稼働時間が120分より大きいものについてのものである。RDBMSで処理を行う場合の単位データ・スキャン時間を10sec/MBとし、RDBMSで処理を行う場合の単位データ操作時間を2sec/MBとする。ストリーム・データ処理における単位データ・スキャン時間を2sec/MB、ストリーム・データ処理における単位データ操作時間を1sec/MBとする。ストリーム・データ処理は、Java(登録商標)プログラムのメモリ処理とする。
図11(a)に示したノード70(SLOW_LONG_OP_CARS)については、下記(a)〜(f)に示すようにして、各値を算出することができる。
(a)メモリ増加量は、入力されるデータのデータ量とされ、データ・レート×バッファリング時間により算出する。すなわち、4MB/sec×1sec=4MBとなる。
(b)操作対象データ・サイズは、上記(a)で算出したメモリ増加量+そのメモリ増加量×フィルタ率により算出する。すなわち、4MB+4MB×0.01=4.04MBとなる。
(c)RDBMSで処理を行う場合の処理時間tRDBMSは、上記(a)で算出したメモリ増加量×RDBMSで処理を行う場合の単位データ・スキャン時間+上記(b)で算出した操作対象データ・サイズ×RDBMSで処理を行う場合の単位データ操作時間により算出する。すなわち、tRDBMS=4MB×10sec/MB+4.04MB×2sec/MB=48.08secとなる。
(d)ストリーム・データ処理を行う場合の処理時間tは、上記(a)で算出したメモリ増加量×ストリーム・データ処理における単位データ・スキャン時間+上記(b)で算出した操作対象データ・サイズ×ストリーム・データ処理における単位データ操作時間により算出する。すなわち、t=4MB×2sec/MB+4.04MB×1sec/MB=12.04secとなる。
(e)削減される処理時間tは、tRDBMS−tにより算出する。すなわち、t=48.08sec−12.04sec=36.04secとなる。
(f)ノード72へ出力するデータのデータ・サイズは、上記(a)で算出したメモリ増加量×フィルタ率×カラム選択率により算出する。カラム選択率は、選択されるカラム数が1で、入力されるカラム数が100であるため、1/100=0.01である。すると、このデータ・サイズは、4MB×0.01×0.01=0.0004MB(0.4kB)となる。
図11(a)に示したノード71(CONV_STORE_FAV_CAR)については、下記(a’)〜(f’)に示すようにして、各値を算出することができる。なお、(c’)〜(e’)については、上記(c)〜(e)と同様の計算式により算出する。
(a’)メモリ増加量は、入力されるデータであり、1.2MBである。
(b’)操作対象データ・サイズは、上記(a’)と同じ1.2MBである。
(c’)tRDBMSは、1.2MB×10sec/MB+1.2MB×2sec/MB=14.4secとなる。
(d’)tは、1.2MB×2sec/MB+1.2MB×1sec/MB=3.6secとなる。
(e’)tは、14.4sec−3.6sec=10.8secとなる。
(f’)ノード72へ出力するデータのデータ・サイズは、上記(a’)のメモリ増加量×カラム選択率により算出する。カラム選択率は、選択されるカラム数が1で、入力されるカラム数が30であるため、1/30である。すると、このデータ・サイズは、1.2MB×1/30=0.04MB(40kB)となる。
図11(a)に示したノード72については、下記(a”)〜(e”)に示すようにして、各値を算出することができる。なお、(c”)〜(e”)については、上記(c)〜(e)と同様の計算式により算出する。
(a”)メモリ増加量は、WINDOW時間分の入力データで、WINDOW時間分のノード70から出力されるデータと、WINDOW時間分のノード71から出力されるデータとの直積により算出する。ここでは、WINDOW時間を10分(600sec)とする。すると、(0.4kB×600sec)×(40kB×600sec)=5760000kB(5760MB)となる。
(b”)操作対象データ・サイズは、上記(a”)と同じ5760MBである。
(c”)tRDBMSは、5760MB×10sec/MB+5760MB×2sec/MB=69120secとなる。
(d”)tは、5760MB×2sec/MB+5760MB×1sec/MB=17280secとなる。
(e”)tは、69120sec−17280sec=51840secとなる。
これまで、本発明の抽出装置、その抽出装置を備えるデータ処理システムおよび抽出方法について、図面を参照して詳細に説明してきたが、他の実施形態や、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、抽出装置と変換装置とを備えるクライアント等も提供することができる。
また、この抽出方法は、各機能部が実行する処理ステップを、コンピュータに実行させるための抽出プログラムにより実現することができ、本発明では、この抽出プログラムも提供することが可能である。なお、この抽出プログラムは、CD−ROM、DVD、SDカード、HDD等の記録媒体に格納して提供することができる。また、コンテンツ・サーバ等に格納され、そのコンテンツ・サーバ等からダウンロードすることにより取得することも可能である。
10…IOTデバイス、11…パケット通信網、12…クライアント、13…フロント・エンド・サーバ、14…バック・エンド・サーバ、20…ホスト・コントローラ、21…CPU、22…RAM、23…グラフィック・コントローラ、24…表示装置、25…入出力コントローラ、26…通信インタフェース、27…HDD、28…CD/DVDドライブ、29…ROM、30…入出力チップ、31…CPU、32…メモリ、33…HDD、34…通信インタフェース、35…サーバ・ブレード、36…モジュール、37…バック・プレーン、40…入力SQL、41…ユーザ定義入力パラメータ、42…コンパイラ、43、45…ETL処理プログラム、44…パイプライン処理プログラムおよび非パイプライン処理プログラム、46…第1のデータベース、47…第2のデータベース、50〜57…ノード、60…入力部、61…演算部、62…抽出部、63…グラフ生成部、64…分類部、70〜72…ノード、73…パイプライン処理プログラム、74…残余SQL

Claims (16)

  1. データベースを管理するデータベース管理システムに発行する1以上の命令をサブクエリーとして含むクエリーから、前記データベースへ継続的に入力されるストリーム・データに対して処理を行うためのプログラムに変換するサブクエリーを変換対象として抽出する抽出装置であって、
    前記クエリーと、前記ストリーム・データの処理により使用量が増加するメモリの最大メモリ増加量と、前記データベース管理システムが前記クエリーを実行した場合と比較して前記プログラムにより前記ストリーム・データを処理した場合に削減される単位メモリ増加量当たりの処理時間としての効率の下限値との入力を受け付ける入力部と、
    前記クエリーに含まれる各前記サブクエリーにつき、前記プログラムに変換して前記ストリーム・データを処理した場合のメモリ増加量と、前記データベース管理システムが実行した場合と比較して前記ストリーム・データを処理した場合に削減される処理時間とを計算し、計算した少なくとも1つの前記メモリ増加量と前記削減される処理時間とを用いて前記効率を算出する演算部と、
    算出された前記効率が前記下限値以上の前記サブクエリーを少なくとも1つ選択し、選択した前記サブクエリーにつき計算されたメモリ増加量を積算し、積算した前記メモリ増加量が前記最大メモリ増加量以下となることを条件として、選択した前記サブクエリーを前記変換対象として抽出する抽出部とを含む、抽出装置。
  2. 前記抽出部は、算出された前記効率が大きい順に前記サブクエリーを選択する、請求項1に記載の抽出装置。
  3. 前記クエリーを構文解析し、各前記サブクエリーを各ノードとするツリー構造で表されるグラフを生成するグラフ生成部と、
    前記クエリーを構文解析した結果に基づき、前記各ノードにつき、入力されたデータを処理し、処理結果を出力するパイプライン処理が可能な第1ノードか、前記パイプライン処理が不可の第2ノードかを決定し、生成された前記グラフを参照して、根ノードから階層的に繋がるノードが前記第1ノードのみからなる1以上の第1ノード群と、残りのノードからなる1以上の第2ノード群とに分類する分類部とをさらに含み、
    前記抽出部は、前記第1ノード群に分類されたノードにつき、前記効率が前記下限値以上であるノードを選択し、前記変換対象を抽出する、請求項1に記載の抽出装置。
  4. 前記分類部は、前記グラフを参照して、1以上の前記第2ノード群を、葉ノードから階層的に繋がるノードが前記第1ノードのみからなる1以上の第3ノード群と、残りのノードからなる1以上の第4ノード群に分類し、
    前記抽出部は、前記第1ノード群に分類されたノードにつき、前記下限値以上であるノードを選択し、前記変換対象を全て抽出した後、積算した前記メモリ増加量が前記最大メモリ増加量に達していない場合、前記第3ノード群に分類されたノードにつき、前記効率が前記下限値以上であるノードを選択し、前記変換対象を抽出する、請求項3に記載の抽出装置。
  5. 前記演算部は、前記メモリ増加量と前記削減される処理時間を、前記ストリーム・データのデータ・レート、前記ストリーム・データに対して処理を行う時間範囲、過去に前記クエリーを実行した結果から得られた統計情報、前記クエリーの操作に関する情報に基づき算出する、請求項1に記載の抽出装置。
  6. 請求項1に記載の抽出装置と、前記抽出装置により抽出された変換対象のサブクエリーを、ストリーム・データを処理するためのプログラムに変換し、変換されない残りのサブクエリーを生成する変換装置と、変換された前記プログラムを実行して、前記ストリーム・データを処理し、処理結果を出力する第1処理装置と、前記残りのクエリーを実行し、前記処理結果とデータベースに格納されたストリーム・データとに対して処理を行う該データベースを管理するデータベース管理システムを備える第2処理装置とを含む、データ処理システム。
  7. データベースを管理するデータベース管理システムに発行する1以上の命令をサブクエリーとして含むクエリーから、前記データベースへ継続的に入力されるストリーム・データに対して処理を行うためのプログラムに変換するサブクエリーを変換対象として抽出する方法であって、
    前記クエリーと、前記ストリーム・データの処理により使用量が増加するメモリの最大メモリ増加量と、前記データベース管理システムが前記クエリーを実行した場合と比較して前記プログラムにより前記ストリーム・データを処理した場合に削減される単位メモリ増加量当たりの処理時間としての効率の下限値との入力を受け付けるステップと、
    前記クエリーに含まれる各前記サブクエリーにつき、前記プログラムに変換して前記ストリーム・データを処理した場合のメモリ増加量と、前記データベース管理システムが実行した場合と比較して前記ストリーム・データを処理した場合に削減される処理時間とを計算し、計算した少なくとも1つの前記メモリ増加量と前記削減される処理時間とを用いて前記効率を算出するステップと、
    算出された前記効率が前記下限値以上の前記サブクエリーを少なくとも1つ選択し、選択した前記サブクエリーにつき計算されたメモリ増加量を積算し、積算した前記メモリ増加量が前記最大メモリ増加量以下となることを条件として、選択した前記サブクエリーを前記変換対象として抽出するステップとを含む、抽出方法。
  8. 前記抽出するステップでは、前記算出するステップで算出された前記効率が大きい順に前記サブクエリーを選択する、請求項7に記載の抽出方法。
  9. 前記入力を受け付けるステップ後、前記クエリーを構文解析し、各前記サブクエリーを各ノードとするツリー構造で表されるグラフを生成するステップと、
    前記クエリーを構文解析した結果に基づき、前記各ノードにつき、入力されたデータを処理し、処理結果を出力するパイプライン処理が可能な第1ノードか、前記パイプライン処理が不可の第2ノードかを決定し、生成された前記グラフを参照して、根ノードから階層的に繋がるノードが前記第1ノードのみからなる1以上の第1ノード群と、残りのノードからなる1以上の第2ノード群とに分類するステップとをさらに含み、
    前記抽出するステップでは、前記第1ノード群に分類されたノードにつき、前記効率が前記下限値以上であるノードを選択し、前記変換対象を抽出する、請求項7に記載の抽出方法。
  10. 前記分類するステップでは、前記グラフを参照して、1以上の前記第2ノード群を、葉ノードから階層的に繋がるノードが前記第1ノードのみからなる1以上の第3ノード群と、残りのノードからなる1以上の第4ノード群に分類し、
    前記抽出するステップでは、前記第1ノード群に分類されたノードにつき、前記下限値以上であるノードを選択し、前記変換対象を全て抽出した後、積算した前記メモリ増加量が前記最大メモリ増加量に達していない場合、前記第3ノード群に分類されたノードにつき、前記効率が前記下限値以上であるノードを選択し、前記変換対象を抽出する、請求項9に記載の抽出方法。
  11. 前記算出するステップでは、前記メモリ増加量と前記削減される処理時間を、前記ストリーム・データのデータ・レート、前記ストリーム・データに対して処理を行う時間範囲、過去に前記クエリーを実行した結果から得られた統計情報、前記クエリーの操作に関する情報に基づき算出する、請求項7に記載の抽出方法。
  12. データベースを管理するデータベース管理システムに発行する1以上の命令をサブクエリーとして含むクエリーから、前記データベースへ継続的に入力されるストリーム・データに対して処理を行うためのプログラムに変換するサブクエリーを変換対象として抽出する処理をコンピュータに実行させるための抽出プログラムであって、前記コンピュータに、
    前記クエリーと、前記ストリーム・データの処理により使用量が増加するメモリの最大メモリ増加量と、前記データベース管理システムが前記クエリーを実行した場合と比較して前記プログラムにより前記ストリーム・データを処理した場合に削減される単位メモリ増加量当たりの処理時間としての効率の下限値との入力を受け付けるステップと、
    前記クエリーに含まれる各前記サブクエリーにつき、前記プログラムに変換して前記ストリーム・データを処理した場合のメモリ増加量と、前記データベース管理システムが実行した場合と比較して前記ストリーム・データを処理した場合に削減される処理時間とを計算し、計算した少なくとも1つの前記メモリ増加量と前記削減される処理時間とを用いて前記効率を算出するステップと、
    算出された前記効率が前記下限値以上の前記サブクエリーを少なくとも1つ選択し、選択した前記サブクエリーにつき計算されたメモリ増加量を積算し、積算した前記メモリ増加量が前記最大メモリ増加量以下となることを条件として、選択した前記サブクエリーを前記変換対象として抽出するステップとを実行させる、抽出プログラム。
  13. 前記抽出するステップでは、前記算出するステップで算出された前記効率が大きい順に前記サブクエリーを選択するステップを実行させる、請求項12に記載の抽出プログラム。
  14. 前記入力を受け付けるステップ後、前記クエリーを構文解析し、各前記サブクエリーを各ノードとするツリー構造で表されるグラフを生成するステップと、
    前記クエリーを構文解析した結果に基づき、前記各ノードにつき、入力されたデータを処理し、処理結果を出力するパイプライン処理が可能な第1ノードか、前記パイプライン処理が不可の第2ノードかを決定し、生成された前記グラフを参照して、根ノードから階層的に繋がるノードが前記第1ノードのみからなる1以上の第1ノード群と、残りのノードからなる1以上の第2ノード群とに分類するステップとをさらに実行させ、
    前記抽出するステップでは、前記第1ノード群に分類されたノードにつき、前記効率が前記下限値以上であるノードを選択し、前記変換対象を抽出するステップを実行させる、請求項12に記載の抽出プログラム。
  15. 前記分類するステップでは、前記グラフを参照して、1以上の前記第2ノード群を、葉ノードから階層的に繋がるノードが前記第1ノードのみからなる1以上の第3ノード群と、残りのノードからなる1以上の第4ノード群に分類するステップを実行させ、
    前記抽出するステップでは、前記第1ノード群に分類されたノードにつき、前記下限値以上であるノードを選択し、前記変換対象を全て抽出した後、積算した前記メモリ増加量が前記最大メモリ増加量に達していない場合、前記第3ノード群に分類されたノードにつき、前記効率が前記下限値以上であるノードを選択し、前記変換対象を抽出するステップを実行させる、請求項14に記載の抽出プログラム。
  16. 前記算出するステップでは、前記メモリ増加量と前記削減される処理時間を、前記ストリーム・データのデータ・レート、前記ストリーム・データに対して処理を行う時間範囲、過去に前記クエリーを実行した結果から得られた統計情報、前記クエリーの操作に関する情報に基づき算出するステップを実行させる、請求項12に記載の抽出プログラム。
JP2013257689A 2013-12-13 2013-12-13 抽出装置、データ処理システム、抽出方法および抽出プログラム Expired - Fee Related JP5939583B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013257689A JP5939583B2 (ja) 2013-12-13 2013-12-13 抽出装置、データ処理システム、抽出方法および抽出プログラム
CN201410662870.5A CN104714997B (zh) 2013-12-13 2014-11-19 提取装置、数据处理系统和提取方法
US14/557,459 US9984134B2 (en) 2013-12-13 2014-12-02 Extraction device, data processing system, and extraction method
US14/748,205 US10089370B2 (en) 2013-12-13 2015-06-23 Extraction device, data processing system, and extraction method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013257689A JP5939583B2 (ja) 2013-12-13 2013-12-13 抽出装置、データ処理システム、抽出方法および抽出プログラム

Publications (2)

Publication Number Publication Date
JP2015114937A JP2015114937A (ja) 2015-06-22
JP5939583B2 true JP5939583B2 (ja) 2016-06-22

Family

ID=53368744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013257689A Expired - Fee Related JP5939583B2 (ja) 2013-12-13 2013-12-13 抽出装置、データ処理システム、抽出方法および抽出プログラム

Country Status (3)

Country Link
US (2) US9984134B2 (ja)
JP (1) JP5939583B2 (ja)
CN (1) CN104714997B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984134B2 (en) 2013-12-13 2018-05-29 International Business Machines Corporation Extraction device, data processing system, and extraction method

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189212B2 (en) * 2014-03-31 2015-11-17 International Business Machines Corporation Predicted outputs in a streaming environment
US10303697B1 (en) * 2015-06-25 2019-05-28 National Technology & Engineering Solutions Of Sandia, Llc Temporal data system
US10671607B2 (en) * 2016-09-23 2020-06-02 Futurewei Technologies, Inc. Pipeline dependent tree query optimizer and scheduler
US10970284B2 (en) * 2017-05-12 2021-04-06 Oracle International Corporation Dynamic self-reconfiguration of nodes in a processing pipeline
CN107463623B (zh) * 2017-07-06 2020-06-09 积成电子股份有限公司 一种变电站历史事项数据库的动态查询方法
CA3119273A1 (en) 2018-11-09 2020-05-14 Iocurrents, Inc. Machine learning-based prediction, planning, and optimization of trip time, trip cost, and/or pollutant emission during navigation
JP7239433B2 (ja) * 2019-10-02 2023-03-14 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
CN111078948A (zh) * 2019-11-22 2020-04-28 深圳市元征科技股份有限公司 汽车诊断数据解析方法及系统、存储介质

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216116B1 (en) * 1996-05-06 2007-05-08 Spotfire Ab Data analysis system with automated query and visualization environment setup
US7584418B2 (en) 2001-05-31 2009-09-01 Oracle International Corporation Methods, systems, and articles of manufacture for prefabricating an information page
US7379654B2 (en) 2002-06-19 2008-05-27 Microsoft Corporation Programmable video recorder backing store for non-byte stream formats
EP1570396A4 (en) * 2002-11-15 2006-09-27 Schweber Erick Von METHOD AND APPARATUS FOR SEARCHING INFORMATION
US6865627B2 (en) 2002-12-27 2005-03-08 Microsoft Corp Regulating real-time data capture rates to match processor-bound data consumption rates
US7174328B2 (en) 2003-09-02 2007-02-06 International Business Machines Corp. Selective path signatures for query processing over a hierarchical tagged data structure
US7698267B2 (en) * 2004-08-27 2010-04-13 The Regents Of The University Of California Searching digital information and databases
US20060068911A1 (en) 2004-09-30 2006-03-30 Microsoft Corporation Game console communication with a computer
US7856523B2 (en) * 2005-06-01 2010-12-21 Microsoft Corporation Random Access Memory (RAM) based Content Addressable Memory (CAM) management
JP4687253B2 (ja) * 2005-06-03 2011-05-25 株式会社日立製作所 ストリームデータ処理システムのクエリ処理方法
US8903810B2 (en) * 2005-12-05 2014-12-02 Collarity, Inc. Techniques for ranking search results
US8429184B2 (en) * 2005-12-05 2013-04-23 Collarity Inc. Generation of refinement terms for search queries
TWI313983B (en) * 2006-06-08 2009-08-21 Nat Univ Tsing Hua A method for processing multiple continuous top-k queries
US7475214B2 (en) * 2006-08-16 2009-01-06 International Business Machines Corporation Method and system to optimize java virtual machine performance
US8219518B2 (en) 2007-01-09 2012-07-10 International Business Machines Corporation Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) process
US8005848B2 (en) 2007-06-28 2011-08-23 Microsoft Corporation Streamlined declarative parsing
US8174620B2 (en) 2007-11-06 2012-05-08 Microsoft Corporation High definition media content processing
US8156134B2 (en) * 2007-11-15 2012-04-10 International Business Machines Corporation Using different groups of query graph transform modules to generate execution plans for queries for different database types
US8156495B2 (en) * 2008-01-17 2012-04-10 Oracle America, Inc. Scheduling threads on processors
US20090259646A1 (en) * 2008-04-09 2009-10-15 Yahoo!, Inc. Method for Calculating Score for Search Query
JP4796108B2 (ja) * 2008-09-26 2011-10-19 株式会社東芝 構造化文書検索装置、方法及びプログラム
JP5337447B2 (ja) * 2008-10-28 2013-11-06 株式会社日立製作所 ストリームデータ処理方法、及びシステム
JP4870183B2 (ja) 2009-03-13 2012-02-08 株式会社日立製作所 ストリームデータ処理システムにおける障害回復方法、計算機システム及び障害回復プログラム
US8479216B2 (en) 2009-08-18 2013-07-02 International Business Machines Corporation Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node
US8479215B2 (en) 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
JP4992945B2 (ja) 2009-09-10 2012-08-08 株式会社日立製作所 ストリームデータ生成方法、ストリームデータ生成装置及びストリームデータ生成プログラム
US20110161371A1 (en) * 2009-12-29 2011-06-30 Microgen Plc Sql generation
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
JP2012059152A (ja) 2010-09-10 2012-03-22 Internatl Business Mach Corp <Ibm> データ処理を行うシステムおよびメモリを割り当てる方法
CN101996250B (zh) * 2010-11-15 2012-07-25 中国科学院计算技术研究所 一种基于Hadoop的海量流数据存储和查询方法及系统
US8745591B2 (en) 2011-10-19 2014-06-03 Microsoft Corporation Data flow visualization and debugging
JP5801732B2 (ja) * 2012-01-24 2015-10-28 株式会社日立製作所 情報処理システムの運用管理方法
WO2013145310A1 (ja) * 2012-03-30 2013-10-03 富士通株式会社 データストリームの並列処理プログラム、方法、及びシステム
US9208254B2 (en) * 2012-12-10 2015-12-08 Microsoft Technology Licensing, Llc Query and index over documents
JP2014157510A (ja) 2013-02-15 2014-08-28 International Business Maschines Corporation ストリーム・データ処理システム、方法及びプログラム
JP5939583B2 (ja) 2013-12-13 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 抽出装置、データ処理システム、抽出方法および抽出プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984134B2 (en) 2013-12-13 2018-05-29 International Business Machines Corporation Extraction device, data processing system, and extraction method
US10089370B2 (en) 2013-12-13 2018-10-02 International Business Machines Corporation Extraction device, data processing system, and extraction method

Also Published As

Publication number Publication date
US10089370B2 (en) 2018-10-02
JP2015114937A (ja) 2015-06-22
US20150293981A1 (en) 2015-10-15
US20150169714A1 (en) 2015-06-18
CN104714997B (zh) 2018-05-01
US9984134B2 (en) 2018-05-29
CN104714997A (zh) 2015-06-17

Similar Documents

Publication Publication Date Title
JP5939583B2 (ja) 抽出装置、データ処理システム、抽出方法および抽出プログラム
US11120344B2 (en) Suggesting follow-up queries based on a follow-up recommendation machine learning model
US20200183930A1 (en) Determining a user-specific approach for disambiguation based on an interaction recommendation machine learning model
KR102134494B1 (ko) 위치 정보를 가진 데이터 프로파일링
CN109388637B (zh) 数据仓库信息处理方法、装置、系统、介质
US10831648B2 (en) Intermittent failure metrics in technological processes
CN104516894B (zh) 用于管理时间序列数据库的方法和装置
JP5678620B2 (ja) データ処理方法、データ処理システム、及びデータ処理装置
US20190034498A1 (en) Determining a presentation format for search results based on a presentation recommendation machine learning model
US20170109676A1 (en) Generation of Candidate Sequences Using Links Between Nonconsecutively Performed Steps of a Business Process
JP2017037648A (ja) ハイブリッドデータを保存するためのハイブリッドデータストレージシステム、方法及びプログラム
US11170016B2 (en) Navigating hierarchical components based on an expansion recommendation machine learning model
CN102945240A (zh) 一种支持分布式计算的关联规则挖掘算法实现方法及装置
US11494395B2 (en) Creating dashboards for viewing data in a data storage system based on natural language requests
US20140095549A1 (en) Method and Apparatus for Generating Schema of Non-Relational Database
KR20160030351A (ko) 정보 처리 방법 및 장치
JP2022511093A (ja) デバイスメッセージフレームワーク
US20190034430A1 (en) Disambiguating a natural language request based on a disambiguation recommendation machine learning model
US20190213612A1 (en) Map based visualization of user interaction data
KR20110086066A (ko) 산출장치, 시스템 관리장치, 산출방법 및 프로그램
JP2007219929A (ja) 感性評価システム及び方法
US20190034519A1 (en) Methods and Systems For Optimized Visual Summarization for Sequences of Temporal Event Data
CN111445597B (zh) 用于机器学习的数据拼接和整合
CN116257663A (zh) 面向无人地面车辆的异常检测与关联分析方法及相关设备
US20170109670A1 (en) Crowd-Based Patterns for Identifying Executions of Business Processes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151127

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160114

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160218

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: 20160419

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160511

R150 Certificate of patent or registration of utility model

Ref document number: 5939583

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees