JP2014241042A - 仮想dbシステムおよび仮想dbシステムの情報処理方法 - Google Patents

仮想dbシステムおよび仮想dbシステムの情報処理方法 Download PDF

Info

Publication number
JP2014241042A
JP2014241042A JP2013123056A JP2013123056A JP2014241042A JP 2014241042 A JP2014241042 A JP 2014241042A JP 2013123056 A JP2013123056 A JP 2013123056A JP 2013123056 A JP2013123056 A JP 2013123056A JP 2014241042 A JP2014241042 A JP 2014241042A
Authority
JP
Japan
Prior art keywords
query
virtual
data source
schema
unit
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.)
Granted
Application number
JP2013123056A
Other languages
English (en)
Other versions
JP6022409B2 (ja
Inventor
直樹 武
Naoki Take
直樹 武
学 西尾
Manabu Nishio
学 西尾
瀬社家 光
Hikaru Seshake
光 瀬社家
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013123056A priority Critical patent/JP6022409B2/ja
Publication of JP2014241042A publication Critical patent/JP2014241042A/ja
Application granted granted Critical
Publication of JP6022409B2 publication Critical patent/JP6022409B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】イベント通知を発信する機能を備えたデータソースも含めて仮想DB内で情報を一元的に処理することができる、仮想DBシステムおよび仮想DBシステムの情報処理方法を提供する。【解決手段】仮想DBシステム(仮想DB)1は、AP2が参照可能なクライアントAP用スキーマ21、データソースそれぞれに対応したデータソース用スキーマ22、および、クライアントAP用スキーマ21とデータソース用スキーマ22とを対応付けるマッピングルール24が格納されるスキーマ/ルール格納部20と、仮想DB1が実行するクエリを、データソースが実行するクエリ、および、データソースに対応するプロトコルに基づく処理に変換する複数のアダプタ30とを備える。そして、仮想DB1は、AP2からクエリを受け取り、マッピングルール24に基づきクエリを書き換えて最適化した上で、各アダプタ30を介してそのクエリを実行する。【選択図】図2

Description

異なる種類の複数のデータソースを単一のデータソースとしてクライアントAP(Application)に見せる仮想DB(DataBase)システムおよび仮想DBシステムの情報処理方法に関する。
昨今のネットワークの高度化やサービスライフスタイルの短命化に伴い、その運用を支援するOSS(Operation Support System)は、サービス毎にその提供時期に合わせて個別にかつ短期間で開発・導入されている。この個別に開発されたOSSが乱立することで、通信事業者のOSSの構成は複雑になり、OSSの開発・維持コストが増加する一因となっている。
図8(a)は、個別に開発されたOSSとそのOSSに接続されたNE(Network Element)5とを含むシステムを示す図である。OSS毎に、対応する各クライアントAP2(以下、単に「AP」と記載する場合がある。)やDB3が開発され、図8(a)に示すように、その各AP2とNE5とがそれぞれ接続される。
このようなシステム構成において、個別に開発されたOSSの開発・維持コストが増加するのは、以下に示す、(1)AP間連携の複雑化、(2)個別DB内のデータ重複、(3)NEアクセスのための機能重複、が主な原因となる。
(1)AP間連携の複雑化
OSSのAP2同士が個別に1対1で連携する場合、全体として連携がメッシュ構成となる。仮にn個のAP2がメッシュ構成で連携を行った場合、nの2乗オーダのIF(インタフェース)開発が必要になる。
(2)個別DB内のデータ重複
異なるOSSで同じデータが管理されている場合、情報の一貫性を維持するためのデータ同期等の機能を要する。
(3)NEアクセスのための機能重複
複数のOSS上のAP2が個別にNEアクセスのIFを開発した結果、同等または類似のデータを参照・更新する機能の重複が生じる場合がある。
このような問題を解決するため、異なる種類の複数のデータソース(DBMS(Database Management System)やファイルシステム等)をクライアントAPに対して1つのデータソースとして統合して見せる技術として仮想DBシステム(以下、単に「仮想DB」とよぶ場合がある。)がある(例えば、非特許文献1参照)。図8(b)に示す従来の仮想DB100では、複数のDB3を仮想DB100として統合し、各AP2は仮想DB100に対してアクセスすることで、各DB3に関する情報処理を実行することができる。
この図8(b)に示すような仮想DB100を構築し、各DB3を論理的に統合することで、「(2)個別DB内のデータ重複」の問題を解決し、同時に、データが共有されることにより、データ流通を目的としたAP間連携が必要なくなるため、「(1)AP連携の複雑化」の問題も解決することができる。
Red Hat、[online]、[平成25年 6月 1日検索]、インターネット<URL:http://jp.redhat.com/products/jbossenterprisemiddleware/data-services/>
しかしながら、従来の仮想DBが想定しているデータソースは、DBやファイル等の静的なものであり、自身が記憶する情報に変更があった場合に自ら(つまり「動的に」)情報を発信するようなデータソース(例えば、NEや、他のAP、GUI(Graphical User Interface)等)からの情報を処理する機構を備えていなかった。NEが動的に発信する情報としては、例えば、故障等の障害の発生を知らせるアラームや、NEの管理情報(CPU(Central Processing Unit)使用率やメモリ使用率等)のような時間経過により変化する情報についての発信情報等(以下、これらを総称して「イベント通知」とよぶ。)があげられる。従来の仮想DBは、このような動的に情報を発信するデータソースには対応していないため、「(3)NEアクセスのための機能重複」の問題を解決しNEも含めて仮想DBに統合する、つまり、NEに対する操作や、NEから発信される情報を処理する操作も含めてすべて仮想DB中のデータに対する処理として扱う、ことについては実現していなかった。
このような背景に鑑みて本発明がなされたのであり、本発明は、データソース側から発信される情報(イベント通知)も含めて仮想DB内で情報を一元的に処理することができる仮想DBシステムおよびその仮想DBシステムの情報処理方法を提供することを課題とする。
つまり、従来のDBやファイル等の静的なデータソースに加えて、イベント通知を送信するような動的なデータソース(NE等)を含めて仮想DBに統合し情報処理することができる、仮想DBシステムおよび仮想DBシステムの情報処理方法を提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、複数のデータソースを統合して、複数の前記データソースそれぞれとクライアントAP(Application)との間の情報を処理する仮想DB(DataBase)システムであって、複数の前記データソースには、前記データソース自身が記憶する情報についてのイベント発生時に、イベント通知を発信する機能を備えた前記データソースが含まれており、前記クライアントAPが参照可能な形式でデータ構造が格納されるクライアントAP用スキーマ、および、複数の前記データソースそれぞれに対応したデータ構造が格納されるデータソース用スキーマが格納されると共に、前記クライアントAP用スキーマと複数の前記データソース用のスキーマとを相互に関係付ける情報であるマッピングルールが格納されるスキーマ/ルール格納部と、前記クライアントAPからクエリを受け取り解析するクエリ解析部と、前記解析されたクエリに対して、前記マッピングルールに基づき、前記クライアントAP用スキーマから前記データソース用スキーマへの、前記解析されたクエリの書き換えを行うクエリ書き換え部と、前記クエリ書き換え部において書き換えられた書き換え済みクエリに対して、最適な実行計画を策定するクエリ最適化部と、前記クエリ最適化部が策定した最適化済みクエリを、前記データソースに対応するアダプタを介して実行するクエリ実行部と、前記データソースそれぞれに対応付けて設けられ、前記最適化済みクエリを、前記データソースが実行するクエリ、および、前記データソースに対応するプロトコルに基づく処理に変換する、複数の前記アダプタと、を備えることを特徴とする仮想DBシステムとした。
また、請求項4に記載の発明は、複数のデータソースを統合して、複数の前記データソースそれぞれとクライアントAPとの間の情報を処理する仮想DBシステムの情報処理方法であって、複数の前記データソースには、前記データソース自身が記憶する情報についてのイベント発生時に、イベント通知を発信する機能を備えた前記データソースが含まれており、前記仮想DBシステムが、前記クライアントAPが参照可能な形式でデータ構造が格納されるクライアントAP用スキーマ、および、複数の前記データソースそれぞれに対応したデータ構造が格納されるデータソース用スキーマが格納されると共に、前記クライアントAP用スキーマと複数の前記データソース用のスキーマとを相互に関係付ける情報であるマッピングルールが格納されるスキーマ/ルール格納部と、前記データソースそれぞれに対応付けて設けられ、前記仮想DBシステムが実行するクエリを、前記データソースが実行するクエリ、および、前記データソースに対応するプロトコルに基づく処理に変換する、複数のアダプタと、を備え、前記クライアントAPからクエリを受け取り解析するステップと、前記解析されたクエリに対して、前記マッピングルールに基づき、前記クライアントAP用スキーマから前記データソース用スキーマへの、前記解析されたクエリの書き換えを行うステップと、書き換えられた前記クエリを示す書き換え済みクエリに対して、最適な実行計画を策定するステップと、策定された前記最適な実行計画を示す最適化済みクエリを、前記データソースに対応する前記アダプタを介して実行するステップと、を実行することを特徴とする仮想DBシステムの情報処理方法とした。
このようにすることにより、仮想DBシステムは、従来の仮想DBシステムにおいて統合していたDBやファイル等の静的なデータソースに加え、イベント発生時においてイベント通知を発信するようなNE等の動的なデータソースも含めて統合し、APからの情報を一元的に処理することができる。
請求項2に記載の発明は、前記仮想DBシステムが、さらに、イベント発生時に発行される前記イベント通知に対応付けた前記最適化済みクエリを格納する最適化済みクエリ格納部と、前記イベント通知を発信する機能を備えたデータソースからの前記イベント通知を受け付ける通知受付部と、前記最適化済みクエリ格納部を参照し、受け付けた前記イベント通知を前記最適化済みクエリに変換する通知-クエリ変換部と、当該変換された最適化クエリを、前記クエリ実行部に投入するクエリ投入部と、を備えることを特徴とする請求項1に記載の仮想DBシステムとした。
また、請求項5に記載の発明は、前記仮想DBシステムが、さらに、イベント発生時に発行される前記イベント通知に対応付けた前記最適化済みクエリを格納する最適化済みクエリ格納部を備えており、前記イベント通知を発信する機能を備えたデータソースからの前記イベント通知を受け付けるステップと、前記最適化済みクエリ格納部を参照し、受け付けた前記イベント通知を前記最適化済みクエリに変換するステップと、当該変換された最適化クエリを、前記データソースに対応するアダプタを介して実行するステップと、を実行することを特徴とする請求項4に記載の仮想DBシステムの情報処理方法とした。
このようにすることにより、仮想DBシステムは、イベント通知に対応付けた最適化クエリを格納する最適化済みクエリ格納部を備え、データソースからイベント通知を受け付け、最適化済みクエリ格納部を参照して、受け付けたイベント通知を最適化クエリに変換して実行することができる。よって、イベント通知を仮想DBシステムの内部で処理するためのクエリに変換する必要がないため、オーバヘッドを抑制することができる。
請求項3に記載の発明は、前記最適化済みクエリ格納部には、前記最適化済みクエリに加え、最適化が実行時に必要なクエリについては、前記イベント通知に対応付けた前記書き換え済みクエリが格納されており、前記通知-クエリ変換部が、さらに、当該最適化済みクエリ格納部を参照し、受け付けた前記イベント通知を前記書き換え済みクエリに変換し、前記クエリ投入部が、さらに、前記通知-クエリ変換部が変換したクエリが、前記書き換え済みクエリである場合に、当該書き換え済みクエリを、前記クエリ最適化部に投入すること、を特徴とする請求項2に記載の仮想DBシステムとした。
このように、最適化が実行時において必要なクエリについても、最適化前の書き換え済みクエリとして最適化済みクエリ格納部に格納しておくことにより、受け付けたイベント通知を、書き換え済みクエリに変換してクエリ最適化部に投入し、最適な実行計画を策定することができる。よって、最適化が実行時において必要なイベント通知に対応するクエリについても、他の情報と同様に処理することができる。
本発明によれば、イベント通知を発信する機能を備えたデータソースも含めて仮想DB内で情報を一元的に処理する仮想DBシステムおよび仮想DBシステムの情報処理方法を提供することができる。
本実施形態に係る仮想DBの概要を説明するための図である。 本実施形態に係る仮想DBの構成例を示す機能ブロック図である。 本実施形態に係るスキーマ/ルール格納部のデータ構成例を説明するための図である。 本実施形態に係る仮想DBが、APからクエリを受信した場合の処理の流れを示すフローチャートである。 本実施形態に係る仮想DBが、APからクエリを受信した場合の処理の具体例を説明するための図である。 本実施形態に係る仮想DBによる最適化済みクエリの格納処理を示すフローチャートである。 本実施形態に係る仮想DBが、データソースからのイベント通知を受信した場合の処理の流れを示すフローチャートである。 従来の仮想DBを用いた複数のDBの統合を説明するための図である。 比較例の仮想DBの構成例を示す機能ブロック図である。 比較例の仮想DBにおいて、イベント通知を処理する手法を例示する図である。
次に、本発明を実施するための形態(以下、「本実施形態」という。)における仮想DBシステム1等について説明する。
まず、比較例として従来の仮想DBシステム100を説明し、その後に、本実施形態に係る仮想DBシステム1について説明する。
<比較例の仮想DBシステム>
図9は、比較例の仮想DBシステム(仮想DB)100の構成例を示す機能ブロック図である。
比較例の仮想DB100は、クライアントAP(以下、単に「AP」という。)2からクエリを受け取り、そのクエリを各データソース用のクエリに変換した上で、各データソース用のアダプタ130を介してそのクエリを出力し各データソースに実行させる。ここでの各データソースは、DBMS(図では「DB3」と記載。)やファイルシステム(図では、「ファイル4」と記載。)等であり、イベント通知等を送信する機能を備えたデータソース(図1に示す、NE5や他のAP2等)は含んでいない。
この比較例の仮想DB100は、図9に示すように、クエリエンジン110と、スキーマ/ルール格納部120と、データソースそれぞれに対応した複数のアダプタ130(130D,130D,130F)とを備えて構成される。
クエリエンジン110は、AP2から、例えばSQL(Structured Query Language)で記述されたクエリを受け取り、そのクエリを各データソース用のクエリに変換し、実行計画を立て実行する。このクエリエンジン110は、クエリ解析部111、クエリ書き換え部112、クエリ最適化部113およびクエリ実行部114を備える。
クエリ解析部111は、AP2からのクエリを受け取り、そのクエリの字句解析を行う。
クエリ書き換え部112は、クエリ解析部111で解析されたクエリに対して、スキーマ/ルール格納部120を参照し、クライアントAP用スキーマ121からデータソース(DS)用スキーマ122へのクエリの書き換えを行う。
クエリ最適化部113は、クエリ書き換え部112で書き換えられたクエリに対して、最適な実行計画を策定する。
クエリ実行部114は、策定された実行計画を、そのクエリが要求する処理対象のデータソース用のアダプタ130を介して実行する。
スキーマ/ルール格納部120は、不図示の記憶手段に記憶される情報であり、AP2に見せるクライアントAP用スキーマ121、各データソースに対応したデータソース(DS)用スキーマ122およびそのデータソース用のアダプタ情報123、並びに、クライアントAP用スキーマ121と各データソース用スキーマ122とを対応付けるマッピングルール124が格納される。
なお、ここでアダプタ情報123とは、クエリ書き換え部112が、クライアントAP用スキーマ121からあるデータソース(DS)用スキーマ122にクエリの書き換えを行ったときに、そのデータソースに対応するアダプタ130を識別するための情報である。そして、このアダプタ情報123は、クエリ実行部114が、書き換えたクエリを実行するため、対応するデータソース用のアダプタ130を識別する際に利用される。
アダプタ130は、各データソースに対応して設けられる。例えば、アダプタ130(130D)は、DB「1」用のアダプタであり、アダプタ130(130D)は、DB「2」用のアダプタであり、アダプタ130(130F)は、ファイル(ファイルシステム)用のアダプタである。そして、各アダプタ130は、クエリ実行部114が実行したクエリを各データソースにおけるクエリへ変換する。
比較例の仮想DB100は、このように、データソースそれぞれに対応したアダプタ130を備え、仮想DB100に対するクエリを各データソースに対するクエリに変換することにより、各データソース(DBMSやファイルシステム)の仮想的な統合を実現している。
しかしながら、前記したように、比較例の仮想DB100では、データソース側で発生したイベント通知を検知して処理を実行する機能を備えていない。そのため、仮に比較例の仮想DB100を用いて、データソース(DS)側からのイベント通知を処理しようとすると、図10に示すように、新たに外部のAP(外部AP)2(2a)を設けて、AP側でイベント通知を受け取り、その通知を解析し、仮想DB100に投入するためのクエリに変換する必要がある。図10では、外部AP2(2a)に、通知受付機能と、通知-クエリ変換機能と、クエリ投入機能とを備えた例を示している。NE5(5N)からのイベント通知を、外部AP2の通知受付機能が受け付け、通知-クエリ変換機能が、イベント通知を解析し仮想DB100に対応したクエリに変換した上、クエリ投入機能が仮想DB100に対して、クエリを送信する。
このように、外部AP2(2a)を設けることで、データソース(DS)側で発生したイベント通知を仮想DB100において処理することは可能であるが、AP側でイベント通知をクエリに変換する必要が生じることや、仮想DB100内のクエリエンジン110を経由することになりオーバヘッドが大きくなるという問題があった。
また、これとは別に、仮想DB100が備えるアダプタ130の機能を拡張することにより、データソース(例えば、NE5)側で発生したイベント通知を検知して処理することも考えられる。しかしながら、この場合、AP2から前もってクエリを発行しておき、NE5側からのイベント通知を受け取ったときに初めて前もって発行しておいたクエリを処理しその応答を返す必要がある。そのため、AP2側では、発行したクエリに対するイベント通知を受信するまでの間においても他の処理を並行して実行するために、別スレッドを設けることが必要となる。つまり、仮想DB100内の機能の追加だけでなく、AP2側でも機能を追加するなどの対応が必要となるというデメリットがある。
よって、従来のDB3やファイル4等のデータソースに加えて、NE5等のイベント通知を発信するような動的なデータソースを含めて仮想DBに統合し情報処理することは、実現していなかった。
(本実施形態)
次に、本実施形態に係る仮想DBシステム(仮想DB)1等について説明する。
<概要>
上記において説明したように、従来の仮想DBが想定しているデータソースは、DB3やファイル4等の静的なものである。よって、従来の仮想DBは、自らイベント通知を発信するようなデータソースからの情報を処理する機能を備えていなかった。
これに対し、本実施形態に係る仮想DB1は、図1に示すように、データソースとして、DB3やファイル4に加え、自らイベント通知を発信する機能を備えた装置である、NE5や、GUI6、他のAP2等も含めて統合し情報を一元的に扱う。つまり、例えば、管理対象装置としてのNE5との間のアクセスや、GUI6への出力、他のAP2との連携等を含めて、全ての情報処理を、仮想DB1を通して行う。
そのため、仮想DB1は、各データソースに対応したアダプタ30を備える。例えば、仮想DB1は、NE5用のアダプタ30(30N)、GUI6用のアダプタ30(30G)、他のAP2用のアダプタ30(30A)等を備える。
また、仮想DB1は、データソース側からのイベント通知を処理するため、イベント通知処理機能40を備える。このイベント通知処理機能40が、データソースから発信されたイベント通知を受け取り、その情報に対する処理を、単に仮想DB1の入力用のSQLに変換するのではなく、文法解釈、最適化済みのSQLとして変換する処理を行う(詳細は後記)。なお、図1は、NE5からのイベント通知を仮想DB1のイベント通知処理機能40が受け取り、GUI6において画面出力する例を示している。これにより、仮想DB1は、AP2側への構成追加等の負担なく、データソースからのイベント通知も他の情報と同様に一元的に取り扱うことができる。また、仮想DB1は、仮想DB1内部で処理するためのクエリに一旦変換する必要がないため、オーバヘッドをなくし処理性能を向上させることができる(詳細は後記)。
<仮想DBの構成>
次に、本実施形態に係る仮想DB1等について、具体的に説明する。
図2は、本実施形態に係る仮想DB1の構成例を示す機能ブロック図である。
図2に示した仮想DB1は、図9に示した比較例の仮想DB100と比べ、イベント通知処理機能40を備える点が異なる。また、仮想DB1は、自らイベント通知を発信する機能を備えた装置の一例としてNE5(5N)と接続され、そのNE5(5N)用のアダプタ30(30N)を備えている。
仮想DB1は、図2に示すように、クエリエンジン10と、スキーマ/ルール格納部20と、データソースそれぞれに対応した複数のアダプタ30(30D,30D,30N)と、イベント通知処理機能40とを備えて構成される。
クエリエンジン10は、AP2から、例えばSQLで記述されたクエリを受け取り、そのクエリを解析して各データソース用のクエリに変換し、実行計画を立て実行する。このクエリエンジン10は、クエリ解析部11、クエリ書き換え部12、クエリ最適化部13およびクエリ実行部14を備える。
クエリ解析部11は、AP2からのクエリを受け取り、そのクエリの字句解析を行う。
クエリ書き換え部12は、クエリ解析部11で解析されたクエリに対して、スキーマ/ルール格納部20を参照し、クライアントAP用スキーマ21からデータソース(DS)用スキーマ22へのクエリの書き換えを行う。
クエリ最適化部13は、クエリ書き換え部12で書き換えられたクエリ(書き換え済みクエリ)に対して、最適な実行計画を策定する。
クエリ実行部14は、策定された実行計画を、そのクエリが要求する処理対象のデータソース用のアダプタ30を介して実行する。
スキーマ/ルール格納部20は、不図示の記憶手段に記憶される情報であり、AP2に見せるクライアントAP用スキーマ21、各データソースに対応したデータソース(DS)用スキーマ22およびそのデータソース用のアダプタ30を識別するためのアダプタ情報23、並びに、クライアントAP用スキーマ21と各データソース用スキーマ22とを対応付けるマッピングルール24が格納される。
なお、クライアントAP用スキーマ21には、AP2が参照可能な形式(例えば、テーブル形式)でデータ構造が格納される。また、データソース(DS)用スキーマ22には、データソースそれぞれに対応したデータ構造が格納される。
図3は、本実施形態に係るスキーマ/ルール格納部20のデータ構成例を説明するための図である。
図3に示すように、スキーマ/ルール格納部20は、クライアントAP用スキーマ21と、データソース(DS)用スキーマ22(22D,22N)と、図示を省略したアダプタ情報23と、マッピングルール24とから構成される。
データソース(DS)用スキーマ22は、各データソースが格納する情報が、テーブル形式で格納される。例えば、DB3(3D)にテーブル名「device_info」として格納されている情報(符号300)に対応付けて、テーブル名「device_info」のDB用のスキーマ22(22D)がスキーマ/ルール格納部20に格納される。また、NE5(5N)に格納されている情報(符号500)に対応付けて、NE用のスキーマ22(22N)が格納される。ここでは、一例として、NE5(NE)がSNMP(Simple Network Management Protocol)による管理対象装置であるものとし、MIB(Management Information Base)に管理情報(符号500)を格納している。そして、スキーマ/ルール格納部20には、このMIBの管理情報(符号500)に対応付けて、テーブル名「device」のNE用のスキーマ22(22N)が格納される。
また、マッピングルール24には、この各データソース(DS)用スキーマ22(22D,22N)の情報と、仮想DB1としてAP2に見せるためのクライアントAP用スキーマ21とを、相互に関係付ける情報が格納される。図3においては、テーブル名「device_info」のDB用のスキーマ22(22D)の情報のうちの「id」,「name」,「location」のデータと、テーブル名「device」のNE用のスキーマ22(22N)の情報のうちの「cpu」,「disk」とが取得され、テーブル名「device_device_info_view」のクライアントAP用スキーマ21のデータを構成していることを示している。
図2に戻り、アダプタ30は、クエリ実行部14が実行したクエリを各データソースにおけるクエリや対応するプロトコルに基づく操作(コマンド)等に変換する。アダプタ30は、各データソースに対応して設けられ、例えば、アダプタ30(30D)は、DB「1」用のアダプタであり、アダプタ30(30D)は、DB「2」用のアダプタであり、アダプタ30(30N)は、NE5(5N)用のアダプタである。このNE5(5N)用のアダプタ30(30N)は、クエリ実行部14が実行したクエリを、NE5が実行するための操作(コマンド)等に変換する機能を備える。
次に、イベント通知処理機能40について説明する。
イベント通知処理機能40は、イベント発生時に発行されるクエリについて、予め最適化を行い、データソース用の最適化済みクエリとして格納しておき、データソース側からイベント通知を受信すると、そのイベント通知を最適化済みクエリに変換し、クエリエンジン10に投入する。
このイベント通知処理機能40は、最適化済みクエリ格納部41と、通知受付部42と、通知-クエリ変換部43と、クエリ投入部44とを備える。
最適化済みクエリ格納部41には、NE5(5N)等のイベント発生時に発行されるイベント通知に対応するクエリを、予めクエリエンジン10のクエリ解析部11からクエリ最適化部13まで通しておき、その結果の情報である最適化されたクエリ(最適化済みクエリ)を当該イベント通知に対応付けて格納しておく。なお、後記するように、最適化が実行時に必要なクエリについては、クエリ書き換え部12まで通した結果の情報である書き換え済みクエリがイベント通知に対応付けられて格納される。
通知受付部42は、データソースからのイベント通知を受け付ける。
通知-クエリ変換部43は、通知受付部42が受け付けたイベント通知について、最適化済みクエリ格納部41を参照し、実行可能なクエリの形式に変換する。通知-クエリ変換部43は、最適化済みクエリ格納部41を参照し、そのイベント通知に対応したクエリとして、最適化済みクエリまたは書き換え済みクエリに変換する。
クエリ投入部44は、通知-クエリ変換部43が変換した実行可能なクエリが、最適化済みクエリか否かを判定する。そして、クエリ投入部44は、判定結果が最適化済みクエリの場合には、そのクエリをクエリエンジン10のクエリ実行部14に投入する。また、クエリ投入部44は、判定結果が最適化済みクエリではなく書き換え済みクエリである場合には、そのクエリをクエリ最適化部13に投入する。
<処理の流れ>
次に、本実施形態に係る仮想DB1の処理の流れについて図4〜図7を参照して説明する(適宜図2を参照)。
≪APからのクエリ受信時の流れ≫
まず、仮想DB1がAP2からのクエリを受信した場合の処理の流れを図4および図5を参照して説明する。
図4は、本実施形態に係る仮想DB1が、AP2からクエリを受信した場合の処理の流れを示すフローチャートである。また、図5は、本実施形態に係る仮想DB1が、AP2からクエリを受信した場合の処理の具体例を説明するための図である。なお、図5においては、仮想DB1に、DB3(3D)とNE5(5N)とが統合されている例を示している。図5に示すように、仮想DB1には、DB3用のアダプタ30(30D)と、NE用のアダプタ30(30N)とが備えられている。また、仮想DB1のスキーマ/ルール格納部20には、クライアントAP用スキーマ21、DB用スキーマ22(22D)およびDB用のアダプタ情報23(23D)、NE用スキーマ22(22N)およびNE用のアダプタ情報23(23N)、並びに、マッピングルール24が格納されているものとする。
まず、仮想DB1のクエリ解析部11は、AP2からのSQLで記述されたクエリを受け付け、字句解析を行う(図4のステップS10)。
図5において、仮想DB1のクエリ解析部11は、クエリとして、例えば、「SELECT * FROM Table1;」を受け取ったものとする。なお、「Table1」は、AP2から見えるクライアントAP用スキーマ21中のテーブルを示すものである。
次に、クエリ書き換え部12は、スキーマ/ルール格納部20のマッピングルール24を参照し、クエリ解析部11において解析されたクエリに対して、クライアントAP用スキーマ21から各データソース(DS)用スキーマ22へのクエリの書き換えを行う(図4のステップS11)。
図5においては、クエリ書き換え部12が、クライアントAP用スキーマ21に対するクエリを、マッピングルール24(符号1001)を参照し、「Table2」に示すDB用スキーマ22(22D)に対応するクエリ「SELECT col1,col2 FROM Table2;」と、「Table3」に示すNE用スキーマ22(22N)に対応するクエリ「SELECT col3 FROM Table3;」とに書き換えた例を示している。
続いて、クエリ最適化部13は、クエリ書き換え部12において書き換えられたクエリに対して、最適な実行計画を策定(クエリ最適化)する(図4のステップS12)。
なお、図5においては、説明を簡単にするため、クエリ最適化部13の処理を省略している。
そして、クエリ実行部14は、クエリ最適化部13が策定した最適化された実行計画を、処理の対象となるデータソースに対し、そのデータソース用のアダプタ30を介して送信することにより実行する(図4のステップS13)。
具体的には、クエリ実行部14は、図5に示す、スキーマ/ルール格納部20のアダプタ情報23により、DB3のアダプタ30(30D)として「Adapter1」を識別し、その「Adapter1」を介して、DB3の「Table2」に相当するテーブルから「col1」および「col2」のデータを取得し、「Table2」の「col1」「col2」それぞれに格納する。そして、クエリ実行部14は、「Table2」の「col1」および「col2」に格納されたデータを、クライアントAP用スキーマ21の「col1」「col2」それぞれに格納する。
また、クエリ実行部14は、スキーマ/ルール格納部20のアダプタ情報23により、NE5(5N)のアダプタ30(30N)として「Adapter2」を識別し、クエリ「SELECT col3 FROM Table3;」を「Adapter2」に送信する。「Adapter2」は、符号1002に示すように、取得したクエリの解析を行い、NE5(5N)に対するコマンドに変換してそのコマンドをNE5(5N)に送信すると共に、NE5(5N)での処理結果を受信する。そして、クエリ実行部14がアダプタ30(30N)を介してその処理結果を受け取り、「Table3」の「col3」に格納する。クエリ実行部14は、この「Table3」の「col3」に格納されたデータを、クライアントAP用スキーマ21の「Table1」の「col3」に格納する処理を行う。
このようにすることで、仮想DB1に、NE5等を含めて統合し、AP2からの情報を一元的に処理することができる。
≪最適化済みクエリの格納処理≫
次に、仮想DB1が実行する最適化済みクエリの格納処理について説明する(適宜図2参照)。
図6は、本実施形態に係る仮想DB1による最適化済みクエリの格納処理を示すフローチャートである。
この最適化済みクエリの格納処理は、仮想DB1が、NE5等のデータソースからのイベント発生時に発信されるイベント通知に対応するクエリを、予め最適化しておき、最適化済みクエリ格納部41に格納しておく処理である。
なお、ここで仮想DB1に入力される情報は、NE5等のデータソースが発信する情報(イベント通知)に対応付けて、そのイベント通知を仮想DB1に投入するためのクエリ(以下、「イベント発生時に発行されるクエリ」とよぶ。)に書き換えた情報が、管理装置(不図示)等から入力されるものとする。
まず、仮想DB1のクエリ解析部11は、管理装置(不図示)等から、イベント発生時に発行されるクエリを受け付け、字句解析を行う(ステップS20)。
次に、クエリ書き換え部12は、スキーマ/ルール格納部20のマッピングルール24を参照し、クエリ解析部11において解析されたクエリに対して、クライアントAP用スキーマ21から各データソース(DS)用スキーマ22へのクエリの書き換えを行う(ステップS21)。
続いて、クエリ最適化部13は、クエリ書き換え部12において書き換えられたクエリ(書き換え済みクエリ)に対して、最適な実行計画を策定(クエリ最適化)する(ステップS22)。そして、クエリ最適化部13は、最適化済みのクエリを元となるイベント通知に対応付けて最適化済みクエリ格納部41に格納する(ステップS23)。
なお、クエリ最適化部13は、クエリ書き換え部12から書き換え済みクエリを受け取った際に、そのクエリを解析し、最適化を予め行うべきではない、つまり、最適化が実行時に必要なクエリであるか否かを判定する。そして、クエリ最適化部13は、最適化が実行時に必要なクエリに関しては、書き換え済みクエリを元となるイベント通知に対応付けて最適化済みクエリ格納部41に格納するようにする。ここで、最適化が実行時に必要なクエリとは、例えば、対象となるデータを格納するデータソースのアクセス頻度やデータ量の増減等の統計情報に基づき最適化する必要のあるクエリである。このように最適化の処理に統計情報等を用いるときには、実際にデータソース側からイベント通知を受け取ったときに、最適化処理を行わなければ適切な最適化ができないため、クエリ最適化部13は、最適化が実行時に必要なクエリについては、その前の段階の書き換え済みクエリを最適化済みクエリ格納部41に格納しておく。
このようにすることにより、仮想DB1は、データソースからのイベント通知に対応する最適化済みクエリ、若しくは、書き換え済みクエリを、予め格納しておくことができる。
なお、仮想DB1は、この最適化済みクエリの格納処理を、ステップS20で説明したように、管理装置(不図示)等からイベント発生時に発行されるクエリを受け付けることにより実行してもよいが、それ以外にも、例えば、次のようにして実行することができる。
仮想DB1は、各データソースからイベント通知を受信した場合にその受信したイベント通知に対応するクエリ(イベント発生時に発行されるクエリ)を発行するためのルールを予め記憶しておく。そして、仮想DB1が、バックグラウンドで(任意のタイミングで)そのクエリ(イベント発生時に発行されるクエリ)について、字句解析や、クエリの書き換え、クエリ最適化を実行し、最適化済みクエリ格納部14に格納しておく。
このようにすることによっても、仮想DB1は、データソースからのイベント通知に対応する最適化済みクエリ、若しくは、書き換え済みクエリを、予め格納しておくことができる。
≪データソースからのイベント通知受信時の流れ≫
次に、仮想DB1が、データソースからのイベント通知を受信した場合の処理の流れを説明する。
図7は、本実施形態に係る仮想DB1が、データソースからのイベント通知を受信した場合の処理の流れを示すフローチャートである。
まず、仮想DB1の通知受付部42は、データソースからのイベント通知を受け付ける(ステップS30)。
次に、通知-クエリ変換部43は、通知受付部42が受け付けたイベント通知について、最適化済みクエリ格納部41を参照し、実行可能なクエリの形式(最適化クエリ、または、書き換え済みクエリ)に変換する(ステップS31)。
続いて、クエリ投入部44が、通知-クエリ変換部43が変換したクエリの形式が、最適化済みのクエリであるか否かを判定する(ステップS32)。つまり、クエリ投入部44は、変換したクエリが、最適化済みクエリであるか、最適化前の書き換え済みクエリであるかを判定する。
そして、クエリ投入部44は、通知-クエリ変換部43が変換したクエリが、最適化済みのクエリである場合には(ステップS32→Yes)、その最適化済みクエリを、クエリ実行部14に投入する(ステップS33)。そして、クエリ実行部14は、処理対象となるデータソースに対し、最適化された実行計画に基づきクエリを実行する(ステップS34)。
一方、ステップS32において、変換したクエリが、最適化済みのクエリでない場合には(ステップS32→No)、つまり、書き換え済みクエリである場合には、クエリ投入部44は、その書き換え済みクエリを、クエリ最適化部13に投入する(ステップS35)。
そして、クエリ最適化部13が、受信した書き換え済みクエリに対して、最適な実行計画を策定(クエリ最適化)する(ステップS36)。続いて、クエリ実行部14が、処理対象となるデータソース(DS)に対し、最適化された実行計画に基づきクエリを実行する(ステップS37)。
以上のように、本実施形態に係る仮想DBシステム(仮想DB1)およびその情報処理方法によれば、仮想DB1が、データソースから受け付けたイベント通知を、他のデータと同様に一元的に扱うことができる。また、イベント通知処理機能40(最適化済みクエリ格納部41)を備えることによって、データソースからイベント通知を受け付けた場合に、クエリ解析部11、クエリ書き換え部12、最適化が予め可能な場合にはクエリ最適化部13を経由する必要がないため、オーバヘッドを抑制することができる。また、本実施形態に係る仮想DB1およびその情報処理方法によれば、データソースからのイベント通知を、仮想DB1の内部のみで処理することができるため、クライアントAP側への負担をかけることをなく、イベント通知を他のデータと同様に処理することができる。
1 仮想DB(仮想DBシステム)
2 AP(クライアントAP)
3 DB
4 ファイル(ファイルシステム)
5 NE
6 GUI
10 クエリエンジン
11 クエリ解析部
12 クエリ書き換え部
13 クエリ最適化部
14 クエリ実行部
20 スキーマ/ルール格納部
21 クライアントAP用スキーマ
22 データソース(DS)用スキーマ
23 アダプタ情報
24 マッピングルール
30 アダプタ
40 イベント通知処理機能
41 最適化済みクエリ格納部
42 通知受付部
43 通知-クエリ変換部
44 クエリ投入部

Claims (5)

  1. 複数のデータソースを統合して、複数の前記データソースそれぞれとクライアントAP(Application)との間の情報を処理する仮想DB(DataBase)システムであって、
    複数の前記データソースには、前記データソース自身が記憶する情報についてのイベント発生時に、イベント通知を発信する機能を備えた前記データソースが含まれており、
    前記クライアントAPが参照可能な形式でデータ構造が格納されるクライアントAP用スキーマ、および、複数の前記データソースそれぞれに対応したデータ構造が格納されるデータソース用スキーマが格納されると共に、前記クライアントAP用スキーマと複数の前記データソース用のスキーマとを相互に関係付ける情報であるマッピングルールが格納されるスキーマ/ルール格納部と、
    前記クライアントAPからクエリを受け取り解析するクエリ解析部と、
    前記解析されたクエリに対して、前記マッピングルールに基づき、前記クライアントAP用スキーマから前記データソース用スキーマへの、前記解析されたクエリの書き換えを行うクエリ書き換え部と、
    前記クエリ書き換え部において書き換えられた書き換え済みクエリに対して、最適な実行計画を策定するクエリ最適化部と、
    前記クエリ最適化部が策定した最適化済みクエリを、前記データソースに対応するアダプタを介して実行するクエリ実行部と、
    前記データソースそれぞれに対応付けて設けられ、前記最適化済みクエリを、前記データソースが実行するクエリ、および、前記データソースに対応するプロトコルに基づく処理に変換する、複数の前記アダプタと、
    を備えることを特徴とする仮想DBシステム。
  2. 前記仮想DBシステムは、さらに、
    イベント発生時に発行される前記イベント通知に対応付けた前記最適化済みクエリを格納する最適化済みクエリ格納部と、
    前記イベント通知を発信する機能を備えたデータソースからの前記イベント通知を受け付ける通知受付部と、
    前記最適化済みクエリ格納部を参照し、受け付けた前記イベント通知を前記最適化済みクエリに変換する通知-クエリ変換部と、
    当該変換された最適化クエリを、前記クエリ実行部に投入するクエリ投入部と、
    を備えることを特徴とする請求項1に記載の仮想DBシステム。
  3. 前記最適化済みクエリ格納部には、前記最適化済みクエリに加え、最適化が実行時に必要なクエリについては、前記イベント通知に対応付けた前記書き換え済みクエリが格納されており、
    前記通知-クエリ変換部は、さらに、当該最適化済みクエリ格納部を参照し、受け付けた前記イベント通知を前記書き換え済みクエリに変換し、
    前記クエリ投入部は、さらに、前記通知-クエリ変換部が変換したクエリが、前記書き換え済みクエリである場合に、当該書き換え済みクエリを、前記クエリ最適化部に投入すること、
    を特徴とする請求項2に記載の仮想DBシステム。
  4. 複数のデータソースを統合して、複数の前記データソースそれぞれとクライアントAPとの間の情報を処理する仮想DBシステムの情報処理方法であって、
    複数の前記データソースには、前記データソース自身が記憶する情報についてのイベント発生時に、イベント通知を発信する機能を備えた前記データソースが含まれており、
    前記仮想DBシステムは、
    前記クライアントAPが参照可能な形式でデータ構造が格納されるクライアントAP用スキーマ、および、複数の前記データソースそれぞれに対応したデータ構造が格納されるデータソース用スキーマが格納されると共に、前記クライアントAP用スキーマと複数の前記データソース用のスキーマとを相互に関係付ける情報であるマッピングルールが格納されるスキーマ/ルール格納部と、
    前記データソースそれぞれに対応付けて設けられ、前記仮想DBシステムが実行するクエリを、前記データソースが実行するクエリ、および、前記データソースに対応するプロトコルに基づく処理に変換する、複数のアダプタと、を備え、
    前記クライアントAPからクエリを受け取り解析するステップと、
    前記解析されたクエリに対して、前記マッピングルールに基づき、前記クライアントAP用スキーマから前記データソース用スキーマへの、前記解析されたクエリの書き換えを行うステップと、
    書き換えられた前記クエリを示す書き換え済みクエリに対して、最適な実行計画を策定するステップと、
    策定された前記最適な実行計画を示す最適化済みクエリを、前記データソースに対応する前記アダプタを介して実行するステップと、
    を実行することを特徴とする仮想DBシステムの情報処理方法。
  5. 前記仮想DBシステムは、さらに、
    イベント発生時に発行される前記イベント通知に対応付けた前記最適化済みクエリを格納する最適化済みクエリ格納部を備えており、
    前記イベント通知を発信する機能を備えたデータソースからの前記イベント通知を受け付けるステップと、
    前記最適化済みクエリ格納部を参照し、受け付けた前記イベント通知を前記最適化済みクエリに変換するステップと、
    当該変換された最適化クエリを、前記データソースに対応するアダプタを介して実行するステップと、
    を実行することを特徴とする請求項4に記載の仮想DBシステムの情報処理方法。
JP2013123056A 2013-06-11 2013-06-11 仮想dbシステムおよび仮想dbシステムの情報処理方法 Expired - Fee Related JP6022409B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013123056A JP6022409B2 (ja) 2013-06-11 2013-06-11 仮想dbシステムおよび仮想dbシステムの情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013123056A JP6022409B2 (ja) 2013-06-11 2013-06-11 仮想dbシステムおよび仮想dbシステムの情報処理方法

Publications (2)

Publication Number Publication Date
JP2014241042A true JP2014241042A (ja) 2014-12-25
JP6022409B2 JP6022409B2 (ja) 2016-11-09

Family

ID=52140258

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013123056A Expired - Fee Related JP6022409B2 (ja) 2013-06-11 2013-06-11 仮想dbシステムおよび仮想dbシステムの情報処理方法

Country Status (1)

Country Link
JP (1) JP6022409B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956505B2 (en) 2017-01-31 2021-03-23 Fujitsu Limited Data search method, data search apparatus, and non-transitory computer-readable storage medium storing program for data search

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109758A (ja) * 1999-10-06 2001-04-20 Hitachi Ltd 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
JP2005018430A (ja) * 2003-06-26 2005-01-20 Ntt Data Corp データベース管理システム及び問い合わせ最適化方法
JP2008511928A (ja) * 2004-08-31 2008-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション メタデータの管理
JP2009054023A (ja) * 2007-08-28 2009-03-12 Ricoh Co Ltd データ管理方法、データ管理装置、データ管理システム、プログラム及び記録媒体
JP2011253526A (ja) * 1999-09-09 2011-12-15 Aegis Analytical Corp 医薬及びその他のキャピタルインテンシブ製造プロセスの分析、改善のためのシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011253526A (ja) * 1999-09-09 2011-12-15 Aegis Analytical Corp 医薬及びその他のキャピタルインテンシブ製造プロセスの分析、改善のためのシステム
JP2001109758A (ja) * 1999-10-06 2001-04-20 Hitachi Ltd 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
JP2005018430A (ja) * 2003-06-26 2005-01-20 Ntt Data Corp データベース管理システム及び問い合わせ最適化方法
JP2008511928A (ja) * 2004-08-31 2008-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション メタデータの管理
JP2009054023A (ja) * 2007-08-28 2009-03-12 Ricoh Co Ltd データ管理方法、データ管理装置、データ管理システム、プログラム及び記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016023470; 武 直樹: '仮想DBを用いたOSSデータ統合の実現性(ICM2012-71)' 電子情報通信学会技術研究報告 第112巻,第492号, 20130307, pp.71-76 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956505B2 (en) 2017-01-31 2021-03-23 Fujitsu Limited Data search method, data search apparatus, and non-transitory computer-readable storage medium storing program for data search

Also Published As

Publication number Publication date
JP6022409B2 (ja) 2016-11-09

Similar Documents

Publication Publication Date Title
US11860874B2 (en) Multi-partitioning data for combination operations
US10824398B2 (en) System and method for generating an application structure for an application in a computerized organization
US11151137B2 (en) Multi-partition operation in combination operations
US20220004557A1 (en) Dynamic data processor for streaming and batch queries
US11799728B2 (en) Multistage device clustering
US9582528B2 (en) System and method for operating a big-data platform
US8977600B2 (en) System and method for continuous analytics run against a combination of static and real-time data
US20180004833A1 (en) Data linking
JP2015146183A (ja) プロセス制御システムにおけるビッグデータの管理
WO2020238597A1 (zh) 基于Hadoop的数据更新方法、装置、系统及介质
US20190045008A1 (en) Systems and methods for generating, deploying, and managing data infrastructure stacks
Ward et al. Semantic based data collection for large scale cloud systems
US9256641B1 (en) Dynamic optimization of data aggregation
US20140379691A1 (en) Database query processing with reduce function configuration
JP6022409B2 (ja) 仮想dbシステムおよび仮想dbシステムの情報処理方法
JP2004062566A (ja) データベースシステム及びそれを構成するマスターノード装置及びプログラム
US20170149892A1 (en) Large data set updating for network usage records
US20230196240A1 (en) Multi-Dimensional Process Mining and Analysis
EP2809032A1 (en) Integrating data from various network nodes using a template stack
WO2018212863A1 (en) Network device monitoring
JP2016194907A (ja) キャッシュメモリを更新する装置、プログラム、及び方法
JP6200377B2 (ja) 仮想dbシステム、および、仮想dbシステムの情報処理方法
US20230376498A1 (en) Enriching Search Results with Provenance Information in an Observability Pipeline System
CN113486024B (zh) 数据字典信息的传输方法及装置、存储介质及电子设备
US20230376491A1 (en) Targeting System State Context in a Search Process in an Observability Pipeline System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160822

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161005

R150 Certificate of patent or registration of utility model

Ref document number: 6022409

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees