(57)【要約】  本発明は、データストアアーキテクチャを自動認識し、データストアアーキテクチャにおける動的な変更及び進化を追跡するシステムである。本発明のシステムは、既存のインタフェースを用いて既存のデータストアシステムにアドオンすることが可能であるか、又はデータストアシステムと統合することが可能な補完的システムである。本システムは、データストアアーキテクチャの近似を構成するよう構成される３つの主要なコンポーネントを有する。これらのコンポーネントの第１のものは、データストアのアーキテクチャの解析を実行するよう構成される。第２のものは、データストアから統計量を収集及び構成するよう構成される。第３のものは、データストアのアーキテクチャの近似を構成するよう構成される。本発明のシステムを利用する方法がまた説明される。
2012512455.tif 000002
【特許請求の範囲】
【請求項１】
既存のインタフェースを用いて既存のデータストアシステムにアドオンされ、又はデータストアシステムと統合され、データストアのアーキテクチャの近似を構成するよう構成される補完的システムであって、
当該補完的システムは、
（ａ）前記データストアのアーキテクチャの解析を実行するよう構成されるアーキテクチャ解析コンポーザアナライザコンポーネントと、
（ｂ）前記データストアから統計量を収集及び生成するよう構成されるデータストア統計コンポーザコンポーネントと、
（ｃ）前記データストアのアーキテクチャの近似を構成するよう構成されるデータストアアーキテクチャコンポーザコンポーネントと、
を有するデータストアアナライザモジュールを有するシステム。
【請求項２】
クエリアナライザモジュールを有し、
前記クエリアナライザモジュールは、
（ａ）クエリが利用可能である場合、ユーザクエリの構文解析を実行するクエリアナライザコンポーネントと、
（ｂ）クエリコンテンツとクエリ環境特性とに関する統計量を収集するクエリ統計コンポーザコンポーネントと、
（ｃ）前記データストアのアーキテクチャの更新された近似を構成するクエリアーキテクチャコンポーザコンポーネントと、
（ｄ）前記データストアの変更が前記システムにより認識されると、コンテンツを利用して前記データストアのアーキテクチャの変更及び進化の影響の即座の効果的な解析を実行する前記クエリアナライザコンポーネントに送信される前記コンテンツを有するクエリレポジトリコンポーネントと、
（ｅ）前記データストアシステムの指定されたリソースを確認し、前記データストアシステムのリソース制限を解析し、リソース解析レポートをユーザに送信するリソース制限ディテクタコンポーネントと、
を有し、
前記各コンポーネントは、前記クエリアナライザモジュールが、前記ユーザのクエリに関する統計量を収集、解析及び生成し、前記データストアのアーキテクチャのより正確な近似を構成するため、前記データストアアナライザから受信した近似と前記統計量とを統合することを可能にするよう構成される、請求項１記載の補完的システム。
【請求項３】
前記データストアの近似は、前記データストアから抽出され、別々のエンティティとして格納されるデータから構成される統計量の集まりである、請求項１又は２記載の補完的システム。
【請求項４】
前記データストアの近似は、何れかのデータ構成アプリケーションへの入力として用いられる、請求項３記載の補完的システム。
【請求項５】
前記データストアの近似は、既存のデータストアのアーキテクチャを変更するため、前記データストアのアドミニストレータにより利用される、請求項１又は２記載の補完的システム。
【請求項６】
前記リソース制限ディテクタコンポーネントは、前記データストアシステムの利用可能なリソースがデータストアのアーキテクチャの近似の向上の他のサイクルを実行するため当該補完的システムにより利用可能であるか、又は前記データストアシステムがビジーすぎるか、若しくは前記他のサイクルを実行することを可能にするのに十分な利用可能なメモリ、ディスクスペース又はＣＰＵを有していないか確認するため、前記データストアシステムのパフォーマンスの少数のインジケータを追跡することによって、前記データストアシステムのリソースを確認する特定のソフトウェアコンポーネントを有する、請求項２記載の補完的システム。
【請求項７】
当該補完的システムは、リソース制限ディテクタを有しない、請求項２記載の補完的システム。
【請求項８】
当該補完的システムは、連続的なデータストアのアーキテクチャの解析を自動的に実行し、前記データストアのアーキテクチャの順次の近似を比較することによって、データ又はテーブルが前記データストアに対して挿入、変更又は削除されたときを動的に認識するよう構成される、請求項１又は２記載の補完的システム。
【請求項９】
当該補完的システムは、サンプリングによって、又は他の何れかのボリュームリダクション方法によって取得されるデータストアのサブセットを利用するよう構成される、請求項１又は２記載の補完的システム。
【請求項１０】
当該補完的システムは、当初のデータストアを複製することによって取得されるミラー化されたデータストアを利用するよう構成される、請求項１又は２記載の補完的システム。
【請求項１１】
当該補完的システムは、アグリゲーションレイヤを変更することによって、パフォーマンスを向上させるためにデータウェアハウスを利用するよう構成される、請求項１又は２記載の補完的システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルデータストアの分野に関する。より詳細には、本発明は、データストアアーキテクチャを自動的に認識し、データストアアーキテクチャにおける動的な変更及び進化を追跡する方法及びシステムに関する。
【背景技術】
【０００２】
ここでの“データストアアーキテクチャ”という表現は、データストアテーブルのカラム間の関係を表す。アーキテクチャの初期的な設計に関する情報は、通常はグラフィック／テキストドキュメントに格納され、データストア自体の一部でない。このドキュメントは、通常は、データストアを設計する初期段階で記述され、アップグレード／変更後に更新されない。誤ったカラム／アプリケーションのカラムに対する誤った演算を利用することは、不正確な又は誤った結果を生じさせる。初期的なデータストアアーキテクチャと同時には通常は開発されない多くのアプリケーションは、データストアを利用する。このような各アプリケーションは、データストアアーキテクチャへの変更を生じさせる。最終的な結果は、当初の設計のドキュメントがデータストアの実際のアーキテクチャを正確には反映しないというものである。その相違は、他のアプリケーションがデータストア上で実現される毎に大きくなる。
【０００３】
ここでの“ユーザ”という用語は、アプリケーションを改良する人、又はデータストアに関する情報を用いてデータストアのパフォーマンスを向上させる自動的なソフトウェアアプリケーションを表すのに用いられる。
【０００４】
ここでの“エンドユーザ”という表現は、クエリを照会し、回答を得ることを期待する人を表すのに用いられる。
【０００５】
ここでの“アーキテクチャ近似（ａｒｃｈｉｔｅｃｔｕｒｅ  ａｐｐｒｏｘｉｍａｔｉｏｎ）”という表現は、“データストアアーキテクチャアナライザ”の使用後に生成される解析レポートを表すのに用いられる。アーキテクチャ近似は、データストアアーキテクチャの技術的説明、すなわち、オブジェクトとカラムとの間の関係を、オブジェクトアクティビティのパーセンテージ、オブジェクトのサイズや可能なベストパフォーマンスに対するオブジェクト相対パフォーマンスのレベルなどのデータストアオブジェクトに関する有用な情報と共に含む。
【０００６】
ユーザによるデータストアの良好な使用は、それのアーキテクチャの完全な理解を求める。同じデータストアの多数の代替的な表現が、開発及び利用可能である。これらの表現は、関係を表現するセマティック、シンボル及び手段について異なっている。企業の要求がシンプルである場合、データマネージメントのたねの標準的なツールは、企業のニーズのすべてを充足している。しかしながら、企業のニーズがより複雑になると、それは、より多くの能力を有するより高度なデータストアマネージメントパッケージを求める必要がある。あるビジネスプロセスは、特定のビジネスの内部において情報を管理及び操作するため特別に設計された専門家のデータストアプロダクト又はアプリケーションを用いて管理される。同様に、製造業、出版業、保険業などの多数のビジネスタイプは、それらの正確なニーズ及び要求に特化したデータストア手段を有するであろう。データストアアーキテクチャは、継続的に更新、再構成及び更改される。経時的に、データストアアーキテクチャは極めて複雑なものになり、多数の人手による労力が、データストアアーキテクチャの近似を決定するために必要とされる。この問題に対する解決策を提供する努力において、“自律的データベース”の作成の方向において研究が進められてきた。この研究の目的は、自己管理データベース、又はより一般には自己管理データストアを開発することである。すなわち、この目的は、自己設定、自己最適化、自己プロテクト及び自己修復が可能なデータストアを開発することである。このタイプの研究の一例は、ＳＭＡＲＴ（Ｓｅｌｆ−Ｍａｎａｇｉｎｇ  Ａｎｄ  Ｒｅｓｏｕｒｃｅ  Ｔｕｎｉｎｇ）（ｈｔｔｐ：／／ｗｗｗ．ａｌｍａｄｅｎ．ｉｂｍ．ｃｏｍ／ｃｓ／ｐｒｏｊｅｃｔｓ／ａｕｔｏｎｏｍｉｃ）としても知られる、ＤＢ２  Ａｕｔｏｎｏｍｉｃ  Ｃｏｍｐｕｔｉｎｇ  ｐｒｏｊｅｃｔである。
【０００７】
大部分の状況では、典型的なユーザは、データストアアーキテクチャの開発及び／又はメンテナンスデータマイニングに関与せず、データストアの一部しか使用しない人である。データストアを効率的に利用するため、データストアのユーザは、データストアのアーキテクチャ又はある時点でユーザが使用する必要があるデータストアの少なくとも一部を正確に理解する必要がある。データストアのアーキテクチャを自動的に定義するため、既存のシステム（“アナライザ”と呼ばれる）は、データストアの利用とユーザのクエリのデータセットの解析とに基づく。“アナライザ”がこれら２つの知識ソースを調べなかった場合、データストアアーキテクチャの効率的なモデルは生成されない。このアプローチによる問題は、ユーザが、“アナライザ”からデータストアのアーキテクチャの推定結果を受信可能になる前に、データストアを利用する、すなわち、データを挿入、削除又は要求する必要があるということである。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従って、本発明の目的は、データストアアーキテクチャの自動認識とそこでの動的な変更及び進化を追跡する方法及びシステムを提供することである。
【０００９】
本発明の他の目的は、データストアアーキテクチャの近似を自動生成可能な方法及びシステムを提供することである。
【００１０】
本発明のさらなる他の目的は、以前に質問されたクエリを知ることなくデータストアとそのデータのみを利用してデータストアアーキテクチャの近似を生成可能な方法及びシステムを提供することである。
【００１１】
本発明のさらなる他の目的は、データストアアーキテクチャにおける変更及び進化を追跡可能な方法及びシステムを提供することである。
【００１２】
本発明のさらなる目的及び効果は、説明が進むに従って明らかになるであろう。
【課題を解決するための手段】
【００１３】
本発明は、既存のインタフェースを用いて既存のデータストアシステムにアドオンされ、又はデータストアシステムと統合され、データストアのアーキテクチャの近似を構成するよう構成される補完的システムである。当該補完的システムは、
（ａ）前記データストアのアーキテクチャの解析を実行するよう構成されるアーキテクチャ解析コンポーザアナライザコンポーネントと、
（ｂ）前記データストアから統計量を収集及び生成するよう構成されるデータストア統計コンポーザコンポーネントと、
（ｃ）前記データストアのアーキテクチャの近似を構成するよう構成されるデータストアアーキテクチャコンポーザコンポーネントと、
を有するデータストアアナライザモジュールを有する。
【００１４】
本発明の補完的システムの実施例はさらに、クエリアナライザモジュールを有し、
前記クエリアナライザモジュールは、
（ａ）クエリが利用可能である場合、ユーザクエリの構文解析を実行するクエリアナライザコンポーネントと、
（ｂ）クエリコンテンツとクエリ環境特性とに関する統計量を収集するクエリ統計コンポーザコンポーネントと、
（ｃ）前記データストアのアーキテクチャの更新された近似を構成するクエリアーキテクチャコンポーザコンポーネントと、
（ｄ）前記データストアの変更が前記システムにより認識されると、コンテンツを利用して前記データストアのアーキテクチャの変更及び進化の影響の即座の効果的な解析を実行する前記クエリアナライザコンポーネントに送信される前記コンテンツを有するクエリレポジトリコンポーネントと、
（ｅ）前記データストアシステムの指定されたリソースを確認し、前記データストアシステムのリソース制限を解析し、リソース解析レポートをユーザに送信するリソース制限ディテクタコンポーネントと、
を有する。
【００１５】
前記クエリアナライザの各コンポーネントは、前記クエリアナライザモジュールが、前記ユーザのクエリに関する統計量を収集、解析及び生成し、前記データストアのアーキテクチャのより正確な近似を構成するため、前記データストアアナライザから受信した近似と前記統計量とを統合することを可能にするよう構成される。
【００１６】
本発明の実施例では、前記データストアの近似は、前記データストアから抽出され、別々のエンティティとして格納されるデータから構成される統計量の集まりである。前記データストアの近似は、何れかのデータ構成アプリケーションへの入力として用いられてもよい。前記データストアの近似は、既存のデータストアのアーキテクチャを変更するため、前記データストアのアドミニストレータにより利用されてもよい。
【００１７】
本発明の実施例では、前記リソース制限ディテクタコンポーネントは、前記データストアシステムの利用可能なリソースがデータストアのアーキテクチャの近似の向上の他のサイクルを実行するため当該補完的システムにより利用可能であるか、又は前記データストアシステムがビジーすぎるか、若しくは前記他のサイクルを実行することを可能にするのに十分な利用可能なメモリ、ディスクスペース又はＣＰＵを有していないか確認するため、前記データストアシステムのパフォーマンスの少数のインジケータを追跡することによって、前記データストアシステムのリソースを確認する特定のソフトウェアコンポーネントを有する。
【００１８】
本発明の実施例では、当該補完的システムは、リソース制限ディテクタを有しない。
【００１９】
本発明の補完的システムの実施例は、連続的なデータストアのアーキテクチャの解析を自動的に実行し、前記データストアのアーキテクチャの順次の近似を比較することによって、データ又はテーブルが前記データストアに対して挿入、変更又は削除されたときを動的に認識するよう構成される。
【００２０】
本発明の補完的システムの実施例は、サンプリングによって、又は他の何れかのボリュームリダクション方法によって取得されるデータストアのサブセットを利用するよう構成される。
【００２１】
本発明の補完的システムの実施例は、当初のデータストアを複製することによって取得されるミラー化されたデータストアを利用するよう構成される。
【００２２】
本発明の補完的システムの実施例は、アグリゲーションレイヤを変更することによって、パフォーマンスを向上させるためにデータウェアハウスを利用するよう構成される。
【発明の効果】
【００２３】
本発明の上記及び他の特徴及び効果は、同様のコンポーネントが同じ参照番号により指定される添付した図面を参照して、以下の好適な実施例の例示的で非限定的な説明を通じてさらに理解されるであろう。
【図面の簡単な説明】
【００２４】
【図１】図１は、データストアアーキテクチャアナライザモジュールを有する従来技術によるシステムのワークフローを概略的に示す。
【図２ａ】図２ａは、任意的なデータストア近似リクエストアンサーからユーザのクエリ解析のない更新された近似データステップへのデータストアアーキテクチャデザイナによるシステムワークフローを概略的に示す。
【図２ｂ】図２ｂは、任意的なデータストア近似リクエストアンサーからユーザのクエリ解析のある更新された近似データステップへのデータストアアーキテクチャデザイナによるシステムワークフローを概略的に示す。
【図３】図３は、システムがデータストアアーキテクチャの動的な変更及び進化を検出するよう求められていないときのデータストアアナライザモジュールとクエリアナライザモジュールとを有するデータストアアーキテクチャデザイナ構成を概略的に示す。
【図４】図４は、動的な変更及び進化の認識によるデータストアアーキテクチャデザイナのワークフローを概略的に示す。
【図５】図５は、動的な変更及び進化の認識によるデータストアアーキテクチャデザイナの構成を概略的に示す。
【図６】図６は、従来のクエリレポジトリ解析ステップの導入による図４の主として異なる動的な変更及び進化の認識によるデータストアアーキテクチャのワークフローを概略的に示す。
【発明を実施するための形態】
【００２５】
本発明は、データストアのパフォーマンスを向上させるため、既存のインタフェースを用いることによって既存のデータストアシステムにアドオン可能な補完的システムとして説明される。当業者は、本発明のシステムが既存の又は新たな設計を有するデータストアシステムに完全に統合可能であることを理解するであろう。ここで用いられる“補完的システム”という用語は、本発明のアドオン及び統合された実施例の双方を表す。本発明の補完的システムは、データストアから統計量を収集し、データストアアーキテクチャの近似を構成するため、データストア構造に基づきデータストアを解析する“データストアアナライザ”を有する。データストアアーキテクチャの近似は、最も効率的なデータ構成及びクエリの実行を獲得するため、デジタルデータストアシステムの監視及び管理のための自動化されたシステムへの入力として、及び／又はデータストアテーブルの利用及び／又は有効性に関するデータストアユーザへの有用なコメント／推薦を生成するのに利用される。
【００２６】
本発明の補完的システムがアドオンされるデータストアシステムは、オリジナルデータストアを複製することによって取得されるミラー化されたシステムに適用するため拡張可能である。従って、ここでの“データストアシステム”という用語は、単一のシステムとして表されるが、単一のシステム又はミラー化されたシステム（２つの同一のデータ複製）とすることが可能である。ここでの“デジタルデータストアシステムの管理のための自動化されたシステム”という表現は、パフォーマンスやサイズなどの特定の指標を向上させるため、現在の構成及びデータに変更及び追加することが可能なシステムを表す。これらのシステムは、テーブルにインデックスを追加し、新たなテーブルを生成し、アグリゲーションレイヤにおいてアグリゲーション構造を生成又は変更することが可能である。
【００２７】
本発明は、データストアアーキテクチャの自動認識と、データストアアーキテクチャの動的な変更及び進化の自動的なオンライン及び／又はオフライン検出とを可能にする。本発明は、クエリが利用可能でないときでさえ、データストアの解析のみに基づきデータストアアーキテクチャを抽出可能である。
【００２８】
本発明の方法は、以下の２つのステップに基づく。
・第１ステップでは、それの構造とデータ統計量とに基づくデータストアの解析が、“データストアアナライザモジュール”（図２ａの２１１）によって実行される。
・第２ステップは、“クエリアナライザモジュール”（図２ｂの２１３）において行われ、エンドユーザのクエリと関連する統計量とを収集及び解析することに基づく。これらの統計量は、クエリコンテンツ、すなわち、使用されるテーブル、使用されるフィルタ、フィルタの強さ、クエリの複雑さ、クエリユーザの優先度、データストアシステムにおけるクエリの実行時間、同一のクエリテンプレートの使用頻度に関する。これらの統計量などは、エンドユーザのクエリストリームのベストパフォーマンスを取得するため、アクティブなデータストアテーブルを検出し、効果的なデータ構成を定義するため使用される。
【００２９】
“データストアアナライザモジュール”は、“クエリアナライザモジュール”から独立して機能することができる。“データストアアーキテクチャデザイナ”は、クエリの利用可能性と“クエリアナライザ”モジュールからの出力とから独立して、データストアアーキテクチャを推定するのに即座に機能を開始することが可能である。これは、最適なタイムフレーム内において、ユーザのクエリを取得する前にデータストアアーキテクチャの初期的な近似を生成することを可能にする。これら２つのモジュールの組み合わせは、“データストアアーキテクチャデザイナ”（図３〜６の２０９）を定義する。本発明のソフトウェアの実現形態は、何れか既存の又は新たなデータストアシステムとインタフェースをとることが可能である。
【００３０】
図１は、“データストアクエリアナライザ”（１１３）を有する従来技術によるデータストアシステム（１０７）を示す。データストア（１２３）のアーキテクチャの解析を開始するため、本システムは、（１１１，１１９）において分解されるエンドユーザ（１０１）のクエリ（１０３）を受信し、最小数のクエリなど、データストアアドミニストレータにより定義される制約に応答する必要がある。データストアアーキテクチャの近似は、システムにおいて生成及び保存される。この近似は、ユーザがそれをリクエストした何れかの時点においてユーザ（１２９）に送信されてもよい。この近似は、データストアからの知識（１２１）とクエリに関する知識（１１１，１１９）とに基づく。本システム（１１３）は、データストアの解析とエンドユーザのクエリの解析との双方を用いて機能する必要がある。これは、ここで理解されるように、２つのタイプの情報を別々に処理し、エンドユーザのクエリの解析を用いることなく結果を生成可能な本発明のシステムと異なる。データストア（１２３）とクエリストリーム（１０９）との間の双方向リンク（１３０）は、データストアにアクセスし、クエリに対するアンサーを受信することを表す。図１は、データフローの一般的なスキームを与えることに留意することが重要である。特に、それは、データフローが同一のマシーン上で実行されるときの重要な特殊ケースを示す。本発明は、必要な変更により他のシステムのコンフィギュレーションに適応可能であり、ここで説明される同一の効果を提供する。
【００３１】
図２ａ及び２ｂは、本発明のデータストアアーキテクチャデザイナモジュール（２０９）と既存のデータストア（１２３）との間のデータフローを示すシステム構成を示す。
【００３２】
図２ａは、本発明の基本的実施例を示す。本実施例では、データストアアーキテクチャデザイナモジュール（２０９）は、データストアアナライザモジュール（２１１）しか有さない。データストアアナライザモジュール（２１１）は、それの設置後に開始され、データストア構成解析ステップしか実行せず、データストアアーキテクチャの第１近似を生成するため即座に実行される。データストアアーキテクチャの第１近似は、ユーザがそれを要求したとき、又はデータストアオブジェクトに関する有用で新規な重要情報が本発明のシステムにより検出されたとき、保存され、ユーザにリターンされる。近似は、ユーザがこれを要求した場合、及び／又はシステムリソース制限がそれを許容した場合、第２サイクルの改良（２２１）のためデータストアアナライザ（２１１）に任意的に戻る（２１９）。
【００３３】
以下は、データストアアナライザの処理の短い具体例である。本例では、リレーショナルデータベースとＳＱＬシンタックスクエリとが利用されるが、他の何れかの言語が代わりに利用可能である。第１に、すべてのテーブル名が、シンプルなクエリ“Ｓｅｌｅｃｔ＊ｆｒｏｍ  ｔａｂ；”を用いて検出される。その後、各テーブルのカラムが、“Ｓｅｌｅｃｔ＊ｆｒｏｍ＜ｔａｂｌｅ  ｎａｍｅ＞；”を用いることによって検出される。ユーザが取得するクエリに出現する各カラムに対して、そのサイズは、“Ｓｅｌｅｃｔ  ｃｏｕｎｔ（＜ｃｏｌｕｍｎ  ｎａｍｅ＞）ｆｒｏｍ＜ｔａｂｌｅ  ｎａｍｅ＞；”と、各テーブルの関連するすべてのカラム（クエリで用いられる）のサイズと一緒に利用することによって決定される。異なるカラムが、同じ意味を表してもよい。同じ情報の重複は、パフォーマンスや他の理由のため必要とされてもよい。異なるカラムが実質的に同じ意味を有するという事実を特定することが重要である。これを行うための１つの方法は、カラム名を比較することによってである。大多数のケースでは、これは等価性の良好な指標となる。しかしながら、一部のケースでは、これは十分な性質ではない。より信頼できる性質は、２つのカラムがクエリにおいて等価として扱われる場合、例えば、それらが“＝”を有するジョイントステートメントに出現するなどの場合、おそらくそれらは実際に等価である、ということである。２つの状況がデータストアに存在可能であり、すなわち、実際に同一である異なるテーブルの異なる名前を有する２つのカラムが存在しうるものであり、２つのカラムが同じ名前を有するが、実際には異なるデータを保持している反対のケースであることに留意されたい。
【００３４】
各データソースファイル／テーブルの階層は、関連する各カラムセットの異なる値をカウントすることによって認識／推定される。概念的には、階層のより高いレベルは、より小さなカウントディスティンクト（ｃｏｕｎｔ  ｄｉｓｔｉｎｃｔ）
を有する。このカウント処理は、テーブルのデータを１回だけスキャンする単一のクエリを用いて、テーブルのすべてのカラムに対して実現可能である。これは、カラムのサイズを取得するための最も速い方法である。例えば、２つのカラムＣＯＬ１，ＣＯＬ２を有するテーブルが与えられる場合、カラムのサイズを計算するため、“Ｓｅｌｅｃｔ  ｃｏｕｎｔ（ｄｉｓｔｉｎｃｔ（ＣＯＬ１）），ｃｏｕｎｔ（ｄｉｓｔｉｎｃｔ（ＣＯＬ２））ｆｒｏｍ＜ｔａｂｌｅ  ｎａｍｅ＞；”が利用される。テーブルが以下の内容を有していると仮定する。
【００３５】
【表１】
2012512455.tif 000003
このとき、カラムのサイズは、以下の結果を返す“ＣＯＵＮＴ  ＤＩＳＴＩＮＣＴ”クエリを用いることによって決定される。
【００３６】
【表２】
2012512455.tif 000004
“カウントディスティンクト”などの例では、カラムボリュームを取得するためテーブル全体を検索することが求められるが、当該分野において既知なボリュームリダクション処理が、テーブル全体を検索する必要なく、統計的サンプルに基づく推定が利用されるように適用可能である。利用可能なボリュームリダクション処理の具体例として、Ｎｏｇａ  Ａｌｏｎ，Ｙｏｓｓｉ  Ｍａｔｉａｓ，Ｍａｒｉｏ  Ｓｚｅｇｅｄｙによる“Ｔｈｅ  ｓｐａｃｅ  ｃｏｍｐｌｅｘｉｔｙ  ｏｆ  ａｐｐｒｏｘｉｍａｔｉｎｇ  ｔｈｅ  ｆｒｅｑｕｅｎｃｙ  ｍｏｍｅｎｔｓ”、Ｐｈｉｌｉｐｐｅ  Ｆｌａｊｏｌｅｔ，Ｇ．Ｎｉｇｅｌ  Ｍａｒｔｉｎによる“Ｐｒｏｂａｂｌｉｓｔｉｃ  Ｃｏｕｎｔｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｄａｔａ  Ｂａｓｅ  Ａｐｐｌｉｃａｔｉｏｎｓ”などがあげられる。
【００３７】
図２ｂは、本発明のデータストアアーキテクチャデザイナの第２実施例を概略的に示す。本実施例では、データストアアーキテクチャデザイナモジュール（２０９）は、データストアアナライザモジュール（２１１）と、クエリアナライザモジュール（２１３）とを有する。本実施例は、ユーザのクエリが利用可能であるときに利用される。クエリアナライザモジュール（２１３）は、これらユーザのクエリ（１１１，１１９）を取得及び解析する。データストアアーキテクチャデザイナモジュール（２０９）からのデータストアアーキテクチャの近似とクエリ解析とに基づき、クエリアナライザモジュール（２１３）は、データストアアーキテクチャの更新された近似を構成及び保存する。この近似は、ユーザがこれを要求する場合、及び／又はシステムリソース制限がこれを許容する場合、第２サイクルの改良のためデータストアアナライザモジュール（２１１）に戻す（２１９）ことができる。
【００３８】
以下において、クエリアナライザの処理の短い具体例が与えられる。本例では、リレーショナルデータベースとＳＱＬシンタックスクエリとが利用される。本例は、所与のクエリセットからデータモデルを導出する方法を示す。以下の基準が利用される。
【００３９】
クエリアナライザは、ＳＥＬＥＣＴ関連のステートメント、すなわち、データストアを一般には変更することを意図しないクエリステートメントのみを処理する。クエリアナライザは、データストアアナライザモジュールによりデータ進化が解析されたかに関係なく、情報抽出処理を扱う。ＳＥＬＥＣＴステートメントはここではより広い定義を有することに留意することが重要である。特に、ＳＥＬＥＣＴサブクエリを含むネストされたクエリは、等しく重要であり、解析されるべきであり、他のテーブル（サマリテーブルなど“ｃｒｅａｔｅ  ｔａｂｌｅ  ａｓ  ｓｅｌｅｃｔ．．．”）に基づきテーブルを生成／配置するクエリがまた解析されるべきである。
【００４０】
以下の例は、単なる例示のためのものであり、本発明のスタースキーマ（ｓｔａｒ  ｓｃｈｅｍａ）への適用性を限定するものとして解釈されるべきでない。本発明は、それが他のシナリオに適用されるとき、等しく効果的である。スタースキーマは、パフォーマンスと利用性の双方の観点において他のデータ表現より有意な効果を有する有用なアーキテクチャである。典型的なスタースキーマは、ファクトテーブル、補助ルックアップテーブル及び任意的なサマリテーブルから構成される。ファクトテーブル（ｆａｃｔ  ｔａｂｌｅ）は、概略されるべき基本データを有し、フラットな構成を有する。ファクトテーブルのカラムは、ファクトカラムと説明カラムとである。ファクトカラムは、解析対象となる何れかのタイプの測定結果を表す。説明カラムは、当該測定結果が取得された時間など、測定結果の属性を表す。ルックアップテーブルは、カテゴリによる集約を可能にする階層的に構成されたデータのセットである。ルックアップテーブルの階層構造は、最下位レベルがファクトデータカラムに一致する各レベルから構成される。
【００４１】
具体例：
ファクトテーブルは、毎日取得される患者の体温の測定結果のシーケンスを表す。このデータは、“時間”と“体温”という２つのカラムにより表される。
【００４２】
【表３】
2012512455.tif 000005
ここで、“体温”が測定結果カラムであり、“時間”が説明カラムである。ルックアップテーブルは、時間の階層を表し、日、月及び年の３つのレベルなどを含むものであってもよい。日レベルは、最下位レベルであり、ファクトテーブルの“時間”カラムに一致する。
【００４３】
クエリアナライザは、上述したスタースキーマの良好な近似を提案する。提案される設計は、ユーザのクエリの構文解析の新規な方法の結果である。以下は、基本的方法の再生である。ＳＥＬＥＣＴクエリに対して、以下の分類が用いられる。
・サマリファクトのための基準：以下の性質を有するＳＥＬＥＣＴにおいて出現するカラム：１．グルーピングファンクションが存在し、当該カラムに適用される（グルーピングファンクションは、複数の値を要約し、１つの値を返すファンクションである。ＳＱＬグルーピングファンクションの具体例は、限定されることなく、和（ｓｕｍ）、ミンマックス（ｍｉｎ  ｍａｘ）、平均（ａｖｅｒａｇｅ）を含む。）
・ルックアップカラムのための基準：ＳＥＬＥＣＴ又はＧＲＯＵＰ  ＢＹクローズに出現するカラム
・最下位のルックアップカラムのための基準：ルックアップテーブルの潜在的な最下位レベルは、（１）カラムがＷＨＥＲＥクローズに出現し、（２）カラムが異なるテーブルの他のカラムと比較される（＝記号を用いて）、という性質を有するものである。
【００４４】
ＳＥＬＥＣＴクエリセットは、以下の方法により解析される。当初は、出力はエンプティである。クエリは、任意であるが固定的な順序により１つずつ解析される。各クエリに対して、２つの基本ステップが実行される。第１に、上述した基準が各クエリに適用される。第２に、抽出された分類が、現在の出力と統合される。この結果、出力は拡大される。これらのステップを終了した後、次のクエリに対して当該処理が繰り返される。この処理は、すべてのクエリが解析されると終了される。
【００４５】
クエリは複雑な構成を有し、ネストされたステートメントを伴うもの（以下の例と同様に）であってもよいことに留意されたい。この場合、各サブクエリはボトムアップ的に再帰的に処理される。
【００４６】
以下の具体例は、オラクルデータベースＳＱＬシンタックスを利用するが、本方法は何れかのデータベースＳＱＬシンタックスを用いて適用可能である。
【００４７】
【表４】
2012512455.tif 000006
2012512455.tif 000007
図３は、システムがデータストアアーキテクチャの動的な変更及び進化を検出することが求められていないときのデータストアアーキテクチャデザイナモジュール（２０９）の構成を示す。
【００４８】
データストアアナライザモジュール（２１１）は、以下の構成要素を有する。
・データストアアーキテクチャの解析を実行するアーキテクチャ解析コンポーザ＆アナライザコンポーネント（３０１）
・統計量を収集するデータストア統計コンポーザコンポーネント（３０３）
・データストアアーキテクチャの第１近似を構成するデータストアアーキテクチャコンポーザコンポーネント（３０５）
クエリアナライザモジュール（２１３）は、以下の構成要素を有する。
・（１以上の）クエリが利用可能である場合、ユーザクエリの構文解析を実行するクエリアナライザコンポーネント（３０７）
・クエリコンテンツとクエリ環境特性とに関する統計量を収集するクエリ統計コンポーザコンポーネント（３１１）
・データストアアーキテクチャ（２２１）の更新された近似を構成するクエリアーキテクチャコンポーザコンポーネント（３１５）
・クエリアーキテクチャコンポーザ（３１５）により送信されたクエリテンプレートと、任意的に以降の利用のためにデータストアアーキテクチャの更新された近似とを格納するクエリレポジトリコンポーネント（３２３）。システムがデータストアアーキテクチャの動的な変更及び進化を検出するよう求められると（図５を参照）、クエリレポジトリコンポーネント（３２３）のコンテンツがクエリアナライザコンポーネント（３０７）に送信され、データストアの変更が本発明のシステムにより認識されるとき、データストアアーキテクチャの変更及び進化の影響の即座の有効な解析を実行するのに利用される。
・データストアシステムの指定されたリソースを確認し、システムリソース制限を解析し、リソース解析（３２５）レポートをユーザに送信するリソース制限ディテクタコンポーネント（３１９）。本発明のシステムがデータストアアーキテクチャの近似の改善の他のサイクルを実行するためにデータストアシステムの利用可能なリソースを利用可能であるか、又はデータストアシステムがビジーすぎるか、又は実行するのに十分な利用可能なリソース、メモリ、ディスクスペース又はＣＰＵなどを有していないか確認するため、特定のソフトウェアコンポーネントを用いてデータストアシステムのパフォーマンスの少数のインジケータを追跡することによって、リソースの確認は実行される。本発明のシステムは、ユーザにより提供されたデータストアシステムのリソースの知識に基づき、又は何れのリソースが利用可能であるか自ら決定可能であるかに基づき、上記解析を実行可能である。
【００４９】
図４は、データストアアーキテクチャデザイナモジュール（２０９）において実行される処理のフローチャートを示す。
【００５０】
第１ステップ（４０１）では、データストアアナライザモジュール（２１１）のアーキテクチャ解析コンポーザアナライザ（３０１）が、データストアアーキテクチャの解析を実行する。この解析の結果は、当該処理の以降のステップ（４０３）のために求められる統計量を構成するデータストア統計コンポーザ（３０３）に送信される。第３ステップ（４０５）では、データストアアーキテクチャコンポーザ（３０５）は、データストアアーキテクチャの初期的な近似を構成する（４０５）。ユーザが自ら（４０７）に近似を転送する命令（２０５）（図２ｂを参照）をデータストアアナライザモジュール（２１１）に送信する場合、当該近似がユーザに送信される（４０９）。初期的な近似を転送する命令が受信されなかった場合、当該処理はステップ（４１１）に続く。
【００５１】
次のステップは、クエリアナライザモジュール（２１３）において実行される。ユーザのクエリが利用可能である場合（４１１）、クエリアナライザコンポーネント（３０７）は、クエリレポジトリ（３２３）からユーザのクエリテンプレートを取得し、それらの構文解析を実行する（４１３）。そうでない場合、クエリアナライザ（３０７）は、利用可能なクエリログ又はストリームからクエリを抽出する。この解析の結果は、クエリのコンテンツとそれらの環境特性とに関する情報を収集するクエリ統計コンポーザ（３１１）により利用される。次のステップ（４１７）では、クエリアーキテクチャコンポーザ（３１５）は、ステップ（４１５）からのデータと第１近似（４０５）とに基づく、データストアアーキテクチャの更新された近似を構成する。任意的にステップ（４１９）において、ステップ（４１７）におけるデータストアアーキテクチャの更新された近似の構成に加わったクエリのテンプレートが置き換えられ（３２１）、クエリレポジトリ（３２３）に保持される。さらなるステップでは、更新されたデータストアの近似はユーザに送信される（４２１）。ユーザのクエリがステップ（４１１）において利用可能でない場合、ステップ（４１３）〜（４１９）は実行されず、当該処理はステップ（４２１）に直接移行する。ステップ（４２３）において、リソース制限ディテクタコンポーネント３１９は、システムリソースを解析する。リソース制限が現在のデータストアの近似を向上させるためにデータストアの近似の新たなサイクルを実行することを許容する場合、又はこれを実行するユーザ命令（４２５）があった場合、当該処理は第１ステップ（４０１）において再開される。リソース制限がデータストアの近似の新たなサイクルを許容しない場合、更新されたデータストアアーキテクチャの近似がユーザに提供される。リソースが更新された近似（ステップ４２５）が所定の時間間隔により手動又は自動で生成されることを許容しない場合、システムはステップ（４２３）を実行し、現在の状態が本発明のシステムにおいて保存される現在の近似に基づき更新された近似が生成されることを許容するか判断する。
【００５２】
図５は、データストアアーキテクチャデザイナモジュール（２０９）の動的な変更及び進化認識処理のアーキテクチャを概略的に示す。経時的に、データストアアーキテクチャは変更しうる。本発明のデータストアアナライザモジュール（２１１）は、例えば、データやテーブルが挿入、変更及び削除されたときを認識するため、これらの変更を動的に認識するよう構成される。さらに、ユーザは、任意的には（６０１）（図５）、データストアアナライザモジュールにデータストアの変更を通知する。この通知は、一般的なものであってもよいし、又は特定のデータストアの変更の詳細を含むものであってもよい。しかしながら、ユーザ入力がなくても、データストアアナライザモジュール（２１１）は、連続的なデータストアアーキテクチャの解析（４０１）を実行し、順次の近似を比較することによって、データストアの変更を検出することができる。さらに、新たな解析段階が、データストアの明示的に指定された変更によってトリガーすることが可能である。例えば、データストアアナライザモジュール（２１１）は、例えば、生成／破棄テーブルコマンドによりトリガーされる新たな／古いテーブルの生成／削除や既存のテーブルの大規模な更新など、構成の変更を検出した場合、既存の解析は古いものであり、新たな段階が必要であることを決定してもよい。データストアの変更が認識された場合、データストアアーキテクチャの処理は、１つの重要なステップにおいて、図４に以前に示された処理と異なっている。クエリレポジトリコンポーネント（３２３）が用いられる場合、それは、データストアアナライザモジュール（２１１）のデータアーキテクチャコンポーザコンポーネント（３０５）から、データストアアーキテクチャデルタとして知られる入力を受信する（５０５）。“デルタ”は、システムによって自動的に利用可能であるか、又はユーザに有用となりうる変更に関する情報のレポートである。デルタの情報に基づき、クエリレポジトリ（３２３）は、データストアの変更されたコンポーネントを含まないクエリテンプレートなどの関連するクエリテンプレート（５０３）を選択し、それらをクエリアナライザコンポーネント（３０７）に転送する。このようにして、クエリアナライザコンポーネント（３０７）は、ユーザ（３２１）からの１つのクエリを待機することなく、即座に作業を開始してもよい。これは、データストアアーキテクチャの検出処理のパフォーマンスの有意な改善を導く。処理サイクルのエンドにおいて、クエリアナライザモジュール（２１３）のクエリアーキテクチャコンポーザコンポーネント（３１５）は、ユーザがそれを要求した何れかの時点においてユーザに転送されるデータストアアーキテクチャ（５０１）の更新された近似を構成及び保存する。
【００５３】
既存の近似から始まって、データストアアーキテクチャ検出処理のサイクル全体又は一部が、より良好な近似を取得するため、ユーザ設定及び／又はシステムリソース制限に従って繰り返される（２１９）。
【００５４】
図６は、本発明の動的な変更及び進化の認識ファンクションが利用されるときのデータストアアーキテクチャデザイナモジュール（２０９）において実行される処理のフローチャートを示す。図６のフローチャートにおける各段階の大部分は、図４のフローチャートの対応する段階と同一である。双方の図面において同一な段階は、同一の参照番号により特定される。
【００５５】
ステップ１（４０１）において、データストアアナライザモジュール（２１１）のアーキテクチャ解析コンポーザアナライザ（３０１）は、データストアアーキテクチャの解析を実行する。この解析は、ユーザからのデータストアアーキテクチャ通知（６０１）又はデータストア近似の新たなサイクルを許容するリソース制限解析（ステップ４２５）によって開始することが可能である。その後、その結果は、要求される統計量（４０３）を構成する統計コレクタ（３０３）に送信される。第３ステップ（４０５）において、データアーキテクチャコンポーザ（３０５）は、データストアアーキテクチャデルタを構成する。
【００５６】
クエリレポジトリ（３２３）が存在する場合、データストアアーキテクチャデルタはクエリレポジトリに転送され（ステップ６０７）、その後に、クエリアナライザ（３０７）は、クエリレポジトリからの関連するクエリテンプレートを解析する（ステップ６０９）。クエリレポジトリが存在しない場合、デルタストアアーキテクチャデルタは、データアーキテクチャコンポーザ（３１７）に転送される（６０５）。双方のケースにおいて、ユーザのクエリが利用可能である場合（４１１）、クエリアナライザコンポーネント（３０７）は、データストアからユーザのクエリを取得し、それらの構文解析を実行する（４１３）。この解析の結果は、クエリのコンテンツとそれらの環境特性とに関する情報を収集するクエリ統計コンポーザ（３１１）により利用される（４１５）。次にステップ（４１７）において、クエリアーキテクチャコンポーザ（３１５）は、ステップ（４１５）からのデータと第１近似（４０５）とに基づき、データストアアーキテクチャの更新された近似を構成する。任意的にはステップ（４１９）において、データストアアーキテクチャステップ（４１７）の更新された近似の構成に加わったクエリのテンプレートが、クエリレポジトリ（３２３）に転送及び保持される。さらなるステップでは、更新されたデータストアの近似がユーザに送信される（４２１）。ユーザのクエリがステップ（４１１）において利用可能でない場合、ステップ（４１３）〜（４１９）は実行されず、当該処理はステップ（４２１）に直接移行する。ステップ（４２３）において、リソース制限ディテクタコンポーネント（３１９）は、システムリソースを解析する。リソース制限が現在のデータストア近似を向上させるためにデータストア近似の新たなサイクルを実行することを許容する場合、又はこれを実行するユーザ命令（４２５）が存在する場合、当該処理は第１ステップ（４０１）において再開される。リソース制限がデータストア近似の新たなサイクルを許容しない場合、更新されたデータストアアーキテクチャ近似がユーザに転送される。
【００５７】
図面はデータフローの一般的なスキーマを提供していることに留意することが重要である。特に、それらは、データフローが同一のシステム／マシーン上で実行される重要な特別なケースを示している。しかしながら、システムは複数のマシーンを有することが可能であり、データは異なるマシーン上で実行される。この場合、データフローは２以上のマシーン間のものになる。何れのケースでも、特定のケースに関して上述された本発明の効果は、より一般的なケースにもまた適用される。
【００５８】
本発明の実施例が例示により説明されたが、本発明は、請求項の範囲を超えることなく多数の変形、改良及び適応によって実行されてもよい。
【図１】
2012512455.tif 000008
【図２ａ】
2012512455.tif 000009
【図２ｂ】
2012512455.tif 000010
【図３】
2012512455.tif 000011
【図４】
2012512455.tif 000012
【図５】
2012512455.tif 000013
【図６】
2012512455.tif 000014
【手続補正書】
【提出日】平成23年8月12日(2011.8.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
（ａ）データストアのアーキテクチャの解析を実行するよう構成されるアーキテクチャ解析コンポーザアナライザコンポーネントと、
（ｂ）前記データストアから統計量を収集及び生成するよう構成されるデータストア統計コンポーザコンポーネントと、
（ｃ）前記データストアのアーキテクチャの近似を構成するよう構成されるデータストアアーキテクチャコンポーザコンポーネントと、
を有するデータストアアナライザモジュールを有する補完的システムであって、
当該補完的システムは、既存のインタフェースを用いて既存のデータストアシステムにアドオンされ、又はデータストアシステムと統合され、データストアのアーキテクチャの近似を構成するよう構成される補完的システム。
【請求項２】
クエリアナライザモジュールを有し、
前記クエリアナライザモジュールは、
（ａ）クエリが利用可能である場合、ユーザクエリの構文解析を実行するクエリアナライザコンポーネントと、
（ｂ）クエリコンテンツとクエリ環境特性とに関する統計量を収集するクエリ統計コンポーザコンポーネントと、
（ｃ）前記データストアのアーキテクチャの更新された近似を構成するクエリアーキテクチャコンポーザコンポーネントと、
（ｄ）前記データストアの変更が前記システムにより認識されると、コンテンツを利用して前記データストアのアーキテクチャの変更及び進化の影響の即座の効果的な解析を実行する前記クエリアナライザコンポーネントに送信される前記コンテンツを有するクエリレポジトリコンポーネントと、
（ｅ）前記データストアシステムの指定されたリソースを確認し、前記データストアシステムのリソース制限を解析し、リソース解析レポートをユーザに送信するリソース制限ディテクタコンポーネントと、
を有し、
前記各コンポーネントは、前記クエリアナライザモジュールが、前記ユーザのクエリに関する統計量を収集、解析及び生成し、前記データストアのアーキテクチャのより正確な近似を構成するため、前記データストアアナライザから受信した近似と前記統計量とを統合することを可能にするよう構成される、請求項１記載の補完的システム。
【請求項３】
前記データストアの近似は、前記データストアから抽出され、別々のエンティティとして格納されるデータから構成される統計量の集まりである、請求項１又は２記載の補完的システム。
【請求項４】
前記データストアの近似は、何れかのデータ構成アプリケーションへの入力として用いられる、請求項１乃至３何れか一項記載の補完的システム。
【請求項５】
前記データストアの近似は、既存のデータストアのアーキテクチャを変更するため、前記データストアのアドミニストレータにより利用される、請求項１乃至４何れか一項記載の補完的システム。
【請求項６】
前記リソース制限ディテクタコンポーネントは、前記データストアシステムの利用可能なリソースがデータストアのアーキテクチャの近似の向上の他のサイクルを実行するため当該補完的システムにより利用可能であるか、又は前記データストアシステムがビジーすぎるか、若しくは前記他のサイクルを実行することを可能にするのに十分な利用可能なメモリ、ディスクスペース又はＣＰＵを有していないか確認するため、前記データストアシステムのパフォーマンスの少数のインジケータを追跡することによって、前記データストアシステムのリソースを確認する特定のソフトウェアコンポーネントを有する、請求項１乃至５何れか一項記載の補完的システム。
【請求項７】
当該補完的システムは、リソース制限ディテクタを有しない、請求項１乃至６何れか一項記載の補完的システム。
【請求項８】
当該補完的システムは、連続的なデータストアのアーキテクチャの解析を自動的に実行し、前記データストアのアーキテクチャの順次の近似を比較することによって、データ又はテーブルが前記データストアに対して挿入、変更又は削除されたときを動的に認識するよう構成される、請求項１乃至７何れか一項記載の補完的システム。
【請求項９】
当該補完的システムは、サンプリングによって、又は他の何れかのボリュームリダクション方法によって取得されるデータストアのサブセットを利用するよう構成される、請求項１乃至８何れか一項記載の補完的システム。
【請求項１０】
当該補完的システムは、当初のデータストアを複製することによって取得されるミラー化されたデータストアを利用するよう構成される、請求項１乃至９何れか一項記載の補完的システム。
【請求項１１】
当該補完的システムは、アグリゲーションレイヤを変更することによって、パフォーマンスを向上させるためにデータウェアハウスを利用するよう構成される、請求項１乃至１０何れか一項記載の補完的システム。
【請求項１２】
補完的計算システムが、データストアのアーキテクチャの解析を実行するステップと、
前記データストアから統計量を収集及び構成するステップと、
前記データストアのアーキテクチャの近似を構成するステップと、
を有する方法であって、
前記補完的計算システムは、既存のインタフェースを用いて既存のデータストアシステムにアドオンされ、又はデータストアシステムと統合され、データストアのアーキテクチャの近似を構成するよう構成される方法。
【請求項１３】
前記データストアの近似は、前記データストアから抽出され、別々のエンティティとして格納されるデータから構成される統計量の集まりを含む、請求項１２記載の方法。
【請求項１４】
前記データストアの近似は、何れかのデータ構成アプリケーションへの入力として利用される、請求項１２又は１３記載の方法。
【請求項１５】
前記データストアの近似は、既存のデータストアのアーキテクチャを変更するためデータストアのアドミニストレータにより利用される、請求項１２乃至１４何れか一項記載の方法。
【国際調査報告】
2012512455.tif 000015