(57)【要約】  一実施形態によれば、本明細書には、表形式データから、多次元データベース環境に使用されるキューブスキーマを自動的に推論するためのシステムおよび方法が記載される。キューブスキーマ推論要素は、列方向の分割を連続的に行うことによって、表形式データ内の複数列のうち、各対の列の情報利得比を計算することができる。各対の列の情報利得比から、相互相関行列を構築することができる。システムは、相互相関行列に基づいて、複数列の間の関係を決定し、その関係を表す階層性有向グラフを作成し、階層性有向グラフを、多次元データベース環境内で表形式データをロードするためのキューブを作成するためまたは多次元データベース環境内で表形式データを既存のキューブにマッピングするために使用できるキューブスキーマに変換することができる。
2018536909.tif 000002
【特許請求の範囲】
【請求項１】
表形式データから、多次元データベース環境に使用されるキューブスキーマを自動的に推論するためのシステムであって、
１つ以上のマイクロプロセッサを含むコンピュータと、
前記コンピュータ上で動作する多次元データベースサーバと、
前記多次元データベースサーバのクライアントとして動作するキューブスキーマ推論要素とを備え、
前記キューブスキーマ推論要素は、
前記キューブスキーマ推論要素に受信された表形式データ内の複数列のうち、各対の列の情報利得比を計算し、
各対の列の前記情報利得比を用いて、各対の列の関係を決定し、
決定された関係を用いて、階層性有向グラフを構築し、
前記階層性有向グラフを、多次元データベースサーバ内でキューブを作成する際に使用されるキューブスキーマに変換する、システム。
【請求項２】
前記キューブスキーマ推論要素は、各対の列の前記情報利得比を格納するマトリックスを構築するようにさらに構成されている、請求項１に記載のシステム。
【請求項３】
前記階層性有向グラフの各エッジは、２つの隣接ノードの間の情報利得比で標記され、
前記階層性有向グラフの各ノードは、そのノードによって表される列のエントロピーで標記される、請求項１または２に記載のシステム。
【請求項４】
前記階層性有向グラフは、階層性有向グラフパーサによって解析され、ＸＭＬ型キューブスキーマに変換される、請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
前記ＸＭＬ型キューブスキーマは、前記多次元データベースサーバ内のデータベースアウトラインである、請求項４に記載のシステム。
【請求項６】
各対の列の第１列と第２列との間の各情報利得比は、前記第１列に含まれた前記第２列に関する情報の量を測る、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
前記キューブスキーマ推論要素は、各列の値を解釈せず、各対の列の前記情報利得比を計算する、請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
前記表形式データは、Excelシート、テキストファイルまたはデータベーステーブルに格納されたデータである、請求項１〜７のいずれか１項に記載のシステム。
【請求項９】
前記キューブスキーマ推論要素は、前記階層性有向グラフを解析し、発見的プロセスを実行することによって、前記キューブスキーマを構築する際に使用される複数のキューブ要素を特定するように構成され、
前記発見的プロセスは、
前記階層性有向グラフ上に表示された複数列から、１つ以上のメジャー列および１つ以上のフラット階層次元列を特定するステップと、
特定された前記１つ以上のメジャー列および前記１つ以上のフラット階層次元列を前記複数列から除去するステップと、
残りの列から、１つ以上の次元階層を特定するステップと、
前記１つ以上のメジャー列、前記１つ以上のフラット階層次元列および前記１つ以上の次元階層を用いて、キューブスキーマを作成する、請求項１〜８のいずれか１項に記載のシステム。
【請求項１０】
表形式データから、多次元データベース環境に使用されるキューブスキーマを自動的に推論するための方法であって、
１つ以上のマイクロプロセッサ上で動作するキューブスキーマ推論要素を提供するステップを備え、前記キューブスキーマ推論要素は、前記多次元データベース環境内の多次元データベースサーバのクライアントとして動作し、
前記キューブスキーマ推論要素を用いて、前記キューブスキーマ推論要素に受信された表形式データ内の複数列のうち、各対の列の情報利得比を計算するステップと、
各対の列の前記情報利得比を用いて、各対の列の関係を決定するステップと、
前記決定された関係を用いて、階層性有向グラフを構築するステップと、
前記階層性有向グラフを、前記多次元データベースサーバ内でキューブを作成する際に使用されるキューブスキーマに変換するステップとを備える、方法。
【請求項１１】
前記キューブスキーマ推論要素は、各対の列の前記情報利得比を格納するマトリックスを構築するようにさらに構成されている、請求項１０に記載の方法。
【請求項１２】
前記階層性有向グラフの各エッジは、２つの隣接ノードの間の情報利得比で標記され、
前記階層性有向グラフの各ノードは、そのノードによって表される列のエントロピーで標記される、請求項１０または１１に記載の方法。
【請求項１３】
前記階層性有向グラフは、階層性有向グラフパーサによって解析され、ＸＭＬ型キューブスキーマに変換される、請求項１０〜１２のいずれか１項に記載の方法。
【請求項１４】
前記ＸＭＬ型キューブスキーマは、前記多次元データベースサーバ内のデータベースアウトラインである、請求項１３に記載の方法。
【請求項１５】
各対の列の第１列と第２列との間の各情報利得比は、前記第１列に含まれた前記第２列に関する情報の量を測る、請求項１０〜１４のいずれか１項に記載の方法。
【請求項１６】
前記キューブスキーマ推論要素は、各列の値を解釈せず、各対の列の前記情報利得比を計算する、請求項１０〜１５のいずれか１項に記載の方法。
【請求項１７】
前記表形式データは、Excelシート、テキストファイルまたはデータベーステーブルに格納されたデータである、請求項１０〜１６のいずれか１項に記載の方法。
【請求項１８】
前記キューブスキーマ推論要素は、前記階層性有向グラフを解析し、発見的プロセスを実行することによって、前記キューブスキーマを構築する際に使用される複数のキューブ要素を特定するように構成され、
前記発見的プロセスは、
前記階層性有向グラフ上に表示された複数列から、１つ以上のメジャー列および１つ以上のフラット階層次元列を特定するステップと、
特定された前記１つ以上のメジャー列および前記１つ以上のフラット階層次元列を前記複数列から除去するステップと、
残りの列から、１つ以上の次元階層を特定するステップと、
前記１つ以上のメジャー列、前記１つ以上のフラット階層次元列および前記１つ以上の次元階層を用いて、キューブスキーマを作成する、請求項１０〜１７のいずれか１項に記載の方法。
【請求項１９】
命令を格納する非一時的なコンピュータ可読記憶媒体であって、これらの命令は、１つ以上のコンピュータによって読み込まれ実行されると、前記１つ以上のコンピュータに以下のステップを実行させ、これらのステップは、
１つ以上のマイクロプロセッサ上で動作するキューブスキーマ推論要素を提供するステップを含み、前記キューブスキーマ推論要素は、多次元データベース環境内の多次元データベースサーバのクライアントとして動作し、
前記キューブスキーマ推論要素を用いて、前記キューブスキーマ推論要素に受信された表形式データ内の複数列のうち、各対の列の情報利得比を計算するステップと、
各対の列の前記情報利得比を用いて、各対の列の関係を決定するステップと、
前記決定された関係を用いて、階層性有向グラフを構築するステップと、
前記階層性有向グラフを、前記多次元データベースサーバ内でキューブを作成する際に使用されるキューブスキーマに変換するステップとを含む、非一時的なコンピュータ可読記憶媒体。
【請求項２０】
前記キューブスキーマ推論要素は、各対の列の前記情報利得比を格納するマトリックスを構築するようにさらに構成されている、請求項１９に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２１】
前記階層性有向グラフの各エッジは、２つの隣接ノードの間の情報利得比で標記され、
前記階層性有向グラフの各ノードは、そのノードによって表される列のエントロピーで標記される、請求項１９または２０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２２】
前記階層性有向グラフは、階層性有向グラフパーサによって解析され、ＸＭＬ型キューブスキーマに変換される、請求項１９〜２１のいずれか１項に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２３】
前記ＸＭＬ型キューブスキーマは、前記多次元データベースサーバ内のデータベースアウトラインである、請求項２２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２４】
各対の列の第１列と第２列との間の各情報利得比は、前記第１列に含まれた前記第２列に関する情報の量を測る、請求項１９〜２３のいずれか１項に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２５】
前記キューブスキーマ推論要素は、各列の値を解釈せず、各対の列の前記情報利得比を計算する、請求項１９〜２４のいずれか１項に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２６】
前記表形式データは、Excelシート、テキストファイルまたはデータベーステーブルに格納されたデータである、請求項１９〜２５のいずれか１項に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２７】
前記キューブスキーマ推論要素は、前記階層性有向グラフを解析し、発見的プロセスを実行することによって、前記キューブスキーマを構築する際に使用される複数のキューブ要素を特定するように構成され、
前記発見的プロセスは、
前記階層性有向グラフ上に表示された複数列から、１つ以上のメジャー列および１つ以上のフラット階層次元列を特定するステップと、
特定された前記１つ以上のメジャー列および前記１つ以上のフラット階層次元列を前記複数列から除去するステップと、
残りの列から、１つ以上の次元階層を特定するステップと、
前記１つ以上のメジャー列、前記１つ以上のフラット階層次元列および前記１つ以上の次元階層を用いて、キューブスキーマを作成する、請求項１９〜２６のいずれか１項に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２８】
命令を格納する非一時的なコンピュータ可読記憶媒体であって、これらの命令は、１つ以上のコンピュータによって読み込まれ実行されると、前記１つ以上のコンピュータに請求項１０〜１８のいずれか１項に記載の方法を実行させる、非一時的なコンピュータ可読記憶媒体。
【請求項２９】
機械可読プログラム命令を含むコンピュータプログラムであって、これらの命令は、コンピュータシステムによって実行されると、前記コンピュータプログラムに請求項１０〜１８のいずれか１項に記載の方法を実行させる、コンピュータプログラム。
【請求項３０】
非一時的な機械可読データ記憶媒体に格納された請求項２９に記載のコンピュータプログラムを含むコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部は、著作権保護の対象となるものを含んでいる。著作権者は、特許商標庁の特許ファイルまたは記録に掲載された特許文書または特許開示の複製に対しては異議を唱えないが、その他の場合、全ての著作権を留保する。
【０００２】
優先権の主張
本願は、２０１５年１０月２３日に出願され、「表形式データから、多次元データベース環境に使用されるキューブを自動的に推論するためのシステムおよび方法」と題された米国仮出願第６２／２４５８８５号の優先権を主張する。当該出願は、参照により本明細書に組み込まれる。
【０００３】
発明の分野
本発明の実施形態は、一般的には、データベースおよびデータの格納に関し、具体的には、表形式データから、多次元データベース環境に使用されるキューブスキーマ（cube schema）を自動的に推論するためのシステムおよび方法に関する。
【背景技術】
【０００４】
背景
多次元データベース、例えば、Oracle（登録商標）Essbaseは、複数の視点から観察され、分析され得る大量のデータを効率的且つ便利に格納および検索するために設計されている。このような多次元データベースは、多次元データを論理的に表すキューブを含むことができる。これらのキューブは、フラットファイルまたはデータベーステーブルに格納された表形式データから構築することができる。表形式データからキューブを構築するためには、ユーザまたはシステムが、表形式データ内の列間の関係および依存性を特定することによって、キューブのスキーマを抽出する必要がある。しかしながら、数百列からなる表形式データの場合、キューブを構築する際に使用されるスキーマを特定することは、困難である。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
一実施形態によれば、本明細書には、表形式データから、多次元データベース環境に使用されるキューブスキーマを自動的に推論するためのシステムおよび方法が記載される。システムは、キューブスキーマ推論要素を含むことができる。キューブスキーマ推論要素は、列方向の分割を連続的に行うことによって、表形式データ内の複数列のうち、各対の列の情報利得比を計算することができる。各対の列の情報利得比から、相互相関マトリックスを構築することができる。システムは、相互相関マトリックスに基づいて、複数列の間の関係を決定し、その関係を表す階層性有向グラフ（hierarchy directed graph）を作成することができる。さらに、システムは、階層性有向グラフを、多次元データベース環境内で表形式データをロードするためのキューブを作成するためまたは多次元データベース環境内で表形式データを既存のキューブにマッピングするために使用できるキューブスキーマに変換することができる。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に従って、多次元データベース環境の一例を示す図である。
【図２】一実施形態に従って、表形式データから、多次元データベース環境に使用されるキューブスキーマを自動的に推論するためのシステムを示す図である。
【図３】一実施形態に従って、表形式データから、多次元データベース環境に使用されるキューブスキーマの自動推論を示す図である。
【図４】一実施形態に従って、本発明のシステムを用いて、表形式データから、キューブスキーマを自動的に推論する例を示す図である。
【図５Ａ】一実施形態に従って、表形式データの列を複数のキューブ要素にマッピングするためのフローチャートを示す図である。
【図５Ｂ】一実施形態に従って、表形式データの列を複数のキューブ要素にマッピングするためのフローチャートを示す図である。
【図６】一実施形態に従って、表形式データから、多次元データベース環境に使用されるキューブスキーマを自動的に推論するための方法を示す図である。
【図７】一実施形態に従って、本発明のシステムを使用することができる環境を示すアーキテクチャ図である。
【発明を実施するための形態】
【０００７】
詳細な説明
上記の特徴および実施形態は、他の特徴および実施形態と共に、以下の明細書、特許請求の範囲および添付図面を参照して、より明らかになるであろう。特定の詳細は、様々な実施形態の理解を提供するために記載される。しかしながら、これらの具体的な詳細がなくても、様々な実施形態を実施できることは明らかであろう。添付の明細書および図面は、限定的であることを意図していない。
【０００８】
多次元データベース環境、一例としてOracle（登録商標）Essbaseを含む多次元データベース環境を用いて、大量のデータ、場合によって複数のデータソースからの大量のデータを統合し、エンドユーザの特定の要求に応じて、フィルタされた情報をこれらのユーザに配信することができる。
【０００９】
図１は、一実施形態に従って、多次元データベース環境１００の一例を示す図である。
図１に示すように、一実施形態によれば、データベース層（database tier）として動作する多次元データベース環境は、１つ以上の多次元データベースサーバシステム１０２を含むことができる。各々の多次元データベースサーバシステム１０２は、物理コンピュータリソースまたは要素１０４（例えば、マイクロプロセッサ／ＣＰＵ、物理メモリ、ネットワーク要素）と、オペレーティングシステム１０６と、１つ以上の多次元データベースサーバ（例えば、Essbaseサーバ）１１０とを含む。
【００１０】
一実施形態によれば、中間層（middle tier）１２０は、１つ以上のサービス、例えば、プロバイダサービス１２２（例えば、Hyperionプロバイダサービス）、管理サービス１２４（例えば、Essbase管理サービス）、またはスタジオ／統合サービス１２６（例えば、Essbaseスタジオ/Essbase統合サービス）を含むことができる。中間層は、ＯＤＢＣ／ＪＤＢＣ１２７および１２８または他の種類のインターフェイスを介して、メタデータカタログ１２９および／または多次元データベース環境と共に使用される１つ以上のデータソース１３０（例えば、関係データベース）へのアクセスを提供することができる。
【００１１】
一実施形態によれば、１つ以上の多次元データベースサーバは、多次元データベースを提供するために、ＯＤＢＣ／ＪＤＢＣ１３２または他の種類のインターフェイスを介して、１つ以上のデータソースにアクセスすることができる。
【００１２】
一実施形態によれば、クライアント層（client tier）１４０は、１つ以上の多次元データベースクライアント１４２（例えば、Essbaseサーバクライアント）を含むことができる。これらの多次元データベースクライアント１４２は、多次元データベース（例えば、スマートビュー（Smart View）、スプレッドシートアドイン（Spreadsheet Add-in）、スマートサーチ（Smart Search）、管理サービス、ＭａｘＬ、ＸＭＬＡ、ＣＡＰＩまたはＶＢ  ＡＰＩアプリケーション、Oracle（登録商標）ビジネスインテリジェンスエンタープライズ版Plus（Oracle Business Intelligence Enterprise Edition Plus）、または他の種類の多次元データベースクライアント）にアクセスすることができる。また、クライアント層は、中間層のサービスと共に使用されるコンソール、例えば、管理サービスコンソール１４４またはスタジオ／統合サービスコンソール１４６を含むこともできる。
【００１３】
一実施形態によれば、クライアント層、中間層層およびデータベース層の間の通信は、ＴＣＰ／ＩＰ、ＨＴＴＰ、または他の種類のネットワーク通信プロトコルのうち１つ以上によって提供されてもよい。
【００１４】
一実施形態によれば、多次元データベースサーバは、１つ以上のデータソースからのデータを統合することによって、多次元データベース、データ構造またはキューブ１５０を提供することができる。多次元データベースサーバは、キューブ１５０を利用して、フィルタされた情報をエンドユーザに提供することができる。
【００１５】
一般的には、多次元データベース内の各データ値は、キューブのセルに格納される。キューブの次元上の座標を特定することによって、特定のデータ値を参照することができる。１つの次元上のメンバと１つ以上の他の各次元上のメンバとの交差点は、データ値を表す。
【００１６】
例えば、販売型ビジネスアプリケーションに使用され得るキューブ１６２を示す図１に示すように、クエリが「売上高」（Sales）を表す場合、システムは、このクエリを、全ての「売上高」データ値を含むデータベース内のデータ値１６４のスライスまたはレイヤとして解釈することができる。「売上高」は、「実績」（Actual）および「予算」（Budget）と交差している。多次元データベース内の特定のデータ値１６６を照会するために、クエリは、例えば「売上高、実績、一月」を指定することによって、各次元上のメンバを特定することができる。異なる方法でデータベースをスライスすることによって、様々な視点のデータを提供することができる。例えば、「二月」に対応するデータ値１６８のスライスは、時間／年次元が「二月」に固定された全てのデータ値を検査する。
【００１７】
データベースアウトライン
一実施形態によれば、多次元データベースの開発は、データベースアウトラインの作成から始まる。データベースアウトラインは、データベース内のメンバ間の構造関係を定義し、データベース内のデータを編成し、集約および数学関係を定義する。データベースアウトラインの階層木またはデータ構造において、各次元は、１つ以上のメンバを含み、各メンバは、さらに他のメンバを含むことができる。次元を指定することによって、個々のメンバの値を統合する方法をシステムに指示することができる。集約は、木の１つの分岐内のメンバ群を意味する。
【００１８】
次元およびメンバ
一実施形態によれば、次元は、データベースアウトラインにおいて最も高い集約レベルを表す。標準次元を選択して、部門別機能（例えば、時間、勘定科目、製品ライン、市場、部門）に関連する事業計画の構成要素を表すことができる。標準次元に関連付けられた属性次元によって、ユーザは、メンバの属性または特性に基づいて、標準次元のメンバをグループ化および分析することができる。メンバ（商品Ａ、商品Ｂ、商品Ｃなど）は、次元の個々の構成要素である。
【００１９】
次元およびメンバの関係
一実施形態によれば、多次元データベースは、ファミリ（親、子および兄弟、または子孫および祖先）および階層（世代およびレベル、またはルートおよびリーフ）などの用語を用いて、データベースアウトライン内のメンバの役割および関係を記述する。
【００２０】
一実施形態によれば、親は、下位に分岐を持つメンバである。例えば、「売上総利益」（Margin）は、「売上高」（Sales）および「売上原価」（ＣＯＧＳ）の親であり得る。子は、上位に親を持つメンバである。上記の例では、「売上高」および「売上原価」は、親の「売上総利益」の子である。兄弟は、すぐ上に同一親を持つ同一世代の子メンバである。
【００２１】
一実施形態によれば、子孫は、親の下位の分岐に位置するメンバである。例えば、「利益」（Profit）、「在庫」（Inventory）および「利益率」（Ratios）は、メジャーの子孫であり得る。この場合、「利益」、「在庫」および「利益率」の子も、メジャーの子孫である。祖先は、メンバの上位の分岐に位置するメンバである。上記の例では、「売上総利益」、「利益」およびメジャーは、「売上高」の祖先であり得る。
【００２２】
一実施形態によれば、ルートは、分岐内の最上位のメンバである。例えば、メジャーは、「利益」、「在庫」および「利益率」のルートであり、「利益」、「在庫」および「利益率」の子のルートでもある。リーフ（レベル０）メンバは、子を持たない。例えば、「期首在庫」、「追加額」、および「期末在庫」は、リーフメンバであり得る。
【００２３】
一実施形態によれば、世代とは、１つの次元内の集約レベルを指す。木のルートは、「第１世代」と見なされる。世代の番号は、ルートからリーフメンバに向かって大きくなる。レベルは、次元内の分岐を表す。レベルは、世代に使用された順序と逆の順序で番号付けられる。レベルの番号は、リーフメンバからルートに向かって小さくなる。
【００２４】
一実施形態によれば、ユーザは、世代またはレベルに名前を指定し、その名前をその世代またはレベル内のメンバ全員の略語として使用することができる。
【００２５】
疎次元および密次元
多次元データベース内のデータセットは、通常、２つの特性、すなわち、データが円滑且つ均一に分布されていないという特性、およびデータがメンバの組み合わせの大半に存在していないという特性を共有している。
【００２６】
一実施形態によれば、このようなデータセットを処理するために、システムは、２種類の標準次元、すなわち、疎次元および密次元を認識することができる。疎次元は、使用可能なデータ位置が占有された割合が比較的低い次元である。密次元は、次元の全ての組み合わせにおいて１つ以上のセルが占有された確率が比較的高い次元である。多くの多次元データベースは、メンバの組み合わせの大半がデータ値を有しないため、本質的に疎である。
【００２７】
データブロックおよび索引体系
一実施形態によれば、多次元データベースは、データブロックおよび索引を用いて、データを格納し、アクセスする。システムは、疎次元の標準メンバの各特定の組み合わせに対して多次元配列またはデータブロックを作成することができる。各データブロックは、疎次元のメンバの組み合わせに対応する密次元のメンバを表す。各データブロックに索引を作成する。索引は、疎次元の標準メンバの組み合わせを表し、少なくとも１つのデータ値が存在する疎次元の標準メンバの各特定の組み合わせに対応するエントリまたはポインタを含む。
【００２８】
一実施形態によれば、多次元データベースサーバは、データ値を検索する時に、索引によって提供されたポインタを用いて、適切なデータブロックを特定し、そのデータブロック内でデータ値を含むセルを特定することができる。
【００２９】
管理サービス
一実施形態によれば、管理サービス（例えば、Essbase管理サービス）は、ユーザがサーバ、アプリケーションおよびデータベースを設計、開発、維持および管理することを可能にする単一のアクセスポイントを提供する。
【００３０】
スタジオ
一実施形態によれば、スタジオ（例えば、Essbaseスタジオ）は、データのモデル化、キューブの設計および分析アプリケーションの構築に関連するタスクを実行するためのウィザード駆動型ユーザインターフェイス（wizard-driven user interface）を提供する。
【００３１】
スプレッドシートアドイン
一実施形態によれば、スプレッドシートアドインは、多次元データベースをスプレッドシートと統合することによって、接続（Connect）、ピボット（Pivot）、ドリルダウン（Drill-down）および計算（Calculate）などの拡張命令をサポートする。
【００３２】
統合サービス
一実施形態によれば、統合サービス（例えば、Essbase統合サービス）は、多次元データベースに格納されたデータと関係データベースに格納されたデータとを統合する時に使用されるメタデータ駆動型環境を提供する。
【００３３】
プロバイダサービス
一実施形態によれば、プロバイダサービス（例えば、Hyperionプロバイダサービス）は、Ｊａｖａ（登録商標）ＡＰＩ、スマートビュー（Smart View）、およびＸＭＬＡクライアントのデータソースプロバイダとして動作する。
【００３４】
スマートビュー
一実施形態によれば、スマートビューは、例えば、Hyperion収益管理、Hyperion計画、およびHyperionエンタープライズパフォーマンス管理ワークスペースデータの共通インターフェイスを提供する。
【００３５】
開発製品
一実施形態によれば、開発製品は、カスタマイズされたエンタープライズ分析アプリケーションの迅速な作成、管理および配置を可能にする。
【００３６】
ライフサイクル管理
一実施形態によれば、ライフサイクル管理（例えば、Hyperionエンタープライズパフォーマンス管理システムのライフサイクル管理）は、エンタープライズパフォーマンス管理製品がアプリケーション、リポジトリまたは個々のアイテムを製品環境の全体に亘って移行することを可能にする手段を提供する。
【００３７】
ＯＬＡＰ
一実施形態によれば、オンライン分析処理（ＯＬＡＰ）は、ユーザによる企業データの分析を可能にする環境を提供する。例えば、財務部門は、ＯＬＡＰを予算、活動に基づく原価の計算、財務実績分析および財務モデル化などに応用することによって、「ジャストインタイム」（just-in-time）情報を提供することができる。
【００３８】
キューブの自動推論
表形式データファイル（表形式データ）において、列は、一般に不均一に相関され、列（属性）間には多くの隠然依存性が存在する。手動で表形式データからキューブスキーマを抽出することは、手間および労力がかかる作業である。
【００３９】
一実施形態によれば、本明細書に記載のシステムおよび方法を用いて、表形式データから、多次元データベース環境に使用されるキューブスキーマを自動的に推論することができる。システムは、キューブスキーマ推論要素を含むことができる。キューブスキーマ推論要素は、表形式データに対して列方向の分割を連続的に行うことによって、表形式データ内の複数列のうち、各対の列の情報利得比を計算することができる。各対の列の情報利得比から、相互相関マトリックスを構築することができる。システムは、相互相関マトリックスに基づいて、複数列の間の関係を決定し、その関係を表す階層性有向グラフ（hierarchy directed graph）を作成することができる。さらに、システムは、階層性有向グラフをキューブスキーマに変換し、表形式データをロードするために、変換したキューブスキーマを用いて多次元データベース環境内でキューブを作成することができる。
【００４０】
一実施形態によれば、システムは、表形式データから推論された階層性有向グラフを既存のキューブからの階層性有向グラフと比較することによって、２つの階層性有向グラフが一致するか否かを判定することができる。一致する場合に、既存のキューブに表形式データをロードすることができる。それ以外の場合に、新しいキューブを作成して、表形式データを格納することができる。
【００４１】
一実施形態によれば、表形式データは、異なるデータドメイン、例えば、医療データドメインおよび金融データドメインからのデータを含むことができる。システムは、データの値を解釈せず、列間のエントロピーおよび／または情報利得比で統計的相関を計算するため、列が異なるエンコードを使用しても、表形式データ内の列間の隠然関係を検出することができる。
【００４２】
一実施形態によれば、列間の統計的相関を計算する際に、システムは、各文字列パターンに関連する意味を分析または解釈する必要がなく、セル内の文字列パターンまたはセル内の値から変換された文字列パターンを検査することができる。
【００４３】
序文
一実施形態によれば、以下の用語が本明細書に使用される。
【００４４】
エントロピー
一実施形態によれば、ＸのエントロピーＨ（Ｘ）は、以下のように定義することができる。
【００４５】
【数１】
2018536909.tif 000003
【００４６】
式中、Ｘは、例えば、データベーステーブルまたはExcelシートのような表形式データの列／属性である。エントロピーは、確率分布の関数として見なすことができ、属性の実際値から独立していてもよい。
【００４７】
条件付きエントロピー
一実施形態によれば、ＸおよびＹの条件付きエントロピーは、以下のように定義することができる。
【００４８】
【数２】
2018536909.tif 000004
【００４９】
式中、ＸおよびＹは、例えば、データベーステーブルまたはExcelシートのような表形式データの列／属性である。属性Ｙの情報が与えられた場合、条件付きエントロピーＨ（Ｘ｜Ｙ）は、属性Ｘの不確定性を測ることができる。これは、非負の実数であり、Ｘ＝ＹまたはＹとＸとの間に関数依存性が存在する時に、属性Ｘが不確定性を有しないため、０になる。一方、２つの属性ＸおよびＹが独立している場合、条件付きエントロピーＨ（Ｘ｜Ｙ）は、Ｈ（Ｘ）に等しくなる。
【００５０】
情報利得
一実施形態によれば、ＸおよびＹの情報利得は、エントロピーおよび条件付きエントロピーを用いて、以下のように定義することができる。
【００５１】
【数３】
2018536909.tif 000005
【００５２】
式中、ＸおよびＹは、例えば、データベーステーブルまたはExcelシートのような表形式データの列／属性である。情報利得は、確率分布の関数であり、属性の実際値とは無関係である。
【００５３】
情報利得比
一実施形態によれば、Ｘの情報利得比は、以下のように定義することができる。
【００５４】
【数４】
2018536909.tif 000006
【００５５】
式中、ＸおよびＹは、例えば、データベーステーブルまたはExcelシートのような表形式データの列／属性である。情報利得比は、他の属性の情報による１つの属性の不確実性の減少を測定する。情報利得比は、１つの属性に含まれた他の属性に関する情報の量を測る。２つの属性が独立している場合、情報利得比は、０になり、２つの属性間の依存性が大きくなることに連れて増加する。１つの属性とそれ自体との情報利得比は、１に等しい。
【００５６】
図２は、一実施形態に従って、表形式データから、多次元データベース環境に使用されるキューブスキーマを自動的に推論するためのシステムを示す図である。
【００５７】
図２に示すように、キューブスキーマ推論要素２０７は、相互相関マトリックスコンポーザ２１１と、階層性有向グラフビルダ２１５と、階層性有向グラフパーサ２１７とを含むことができる。キューブスキーマ推論要素２０７を実行することによって、表形式データ記憶装置２０５から受信した表形式データから、キューブスキーマ２１９を推論することができる。表形式データは、列または表から構成されてもよく、列または表で表示されてもよい。表形式データは、Excelシート、プレーンテキストファイルまたは関係データベーステーブルに格納されたデータであってもよい。
【００５８】
本開示の一実施形態によれば、表形式データは、表形式データを格納する表形式データファイルを照会することができる。したがって、表形式データと表形式データファイルとは、交換可能に使用することができる。
【００５９】
一実施形態によれば、キューブスキーマ推論要素は、ユーザ２０１からの要求に応じて、ユーザインターフェイス２０３を介して表形式データを検索し、その表形式データをキューブスキーマ推論要素の入力として提供することができる。
【００６０】
一実施形態によれば、キューブスキーマ推論要素は、多次元データベースクライアント２３０の一部であってもよく、独立型アプリケーションとして実行してもよい。
【００６１】
一実施形態によれば、相互相関マトリックスコンポーザは、表形式データに対して列方向の分割を連続的に行うことによって、表形式データ内の複数列のうち、各対の列の情報利得比を計算し、各対の列の情報利得比を表す相互相関マトリックスを構築することができる。
【００６２】
一実施形態によれば、列方向の分割を連続的に行うことによって、システムは、各対の列に対して２つの情報利得比を計算することができる。例えば、１対の列Ａおよび列Ｂに対して２つの情報利得比を計算することによって、一方の属性に含まれた他方の属性に関する情報の量を測ることができる。
【００６３】
一実施形態によれば、上述したように、情報利得比は、以下の式を用いて計算することができる。
【００６４】
【数５】
2018536909.tif 000007
【００６５】
一実施形態によれば、相互相関マトリックスは、１対の列の間の関係属性（例えば、情報利得比）を格納するデータ構造（例えば、２次元配列）であってもよい。
【００６６】
一実施形態によれば、階層性有向グラフビルダは、相互相関マトリックスを検査することによって、各対の列の関係を判定し、相互相関マトリックスから階層性有向グラフを構築することによって、その関係を表すことができる。階層性有向グラフは、表形式データ内の全ての列／属性対の各対の情報利得比を含むように構成することができる。
【００６７】
一実施形態によれば、階層性有向グラフは、頂点（ノード）の有限集合と、有序エッジ対の有限集合とを含むデータ構造であってもよい。階層性有向グラフパーサは、階層性有向グラフを解析することができる。階層性有向グラフパーサは、階層性有向グラフをＸＭＬ型キューブスキーマ２１９、例えばEssbaseデータベースアウトラインに変換することができる。このキューブスキーマ２１９を用いて、データベースサーバ上でキューブ２２１を作成することができる。
【００６８】
図３は、一実施形態に従って、表形式データから、多次元データベース環境に使用されるキューブスキーマの自動推論を示す図である。
【００６９】
図３に示すように、システムは、複数列を含む表形式データ３１３を列ごとに分割することによって、各対の列の情報利得比を計算することができる。
【００７０】
ステップ３１９において、列ｉ３１５と列ｊ３１７との情報利得比（すなわち、ＩＧＲｉｊおよびＩＧＲｊｉ）を計算することができる。情報利得比を用いて、１対の列の間の関係を判断することができる。
【００７１】
ステップ３２１において、ＸＯＲ演算子を用いて、１対の列の間の関係を判断することができる。１対の列の情報利得比のうち一方且つ一方のみが１である場合、ＸＯＲ演算子の値は、真である。
【００７２】
ステップ３２２において、ＸＯＲ演算子の値が真である場合、システムは、１対の列の間に１対多関係が存在すると判断することができる。
【００７３】
ステップ３２３において、ＸＯＲ演算の値が偽である場合、ＡＮＤ演算子を用いて、続けて１対の列の関係を検査することができる。ＡＮＤ演算子の値が真になるためには、両方の情報利得比が真になる必要がある。
【００７４】
ステップ３２７において、ＡＮＤ演算子の値が真である場合、システムは、１対の列の間に１対１関係が存在すると判定することができる。それ以外の場合に、この対の列の間に相関関係または依存性が存在せず、システムは、異なる対の列の間の関係を検査することができる。
【００７５】
ステップ３２９において、決定された各対の列の間の関係を用いて、階層性有向グラフを更新することができる。
【００７６】
一実施形態によれば、各対の列の間の関係で更新可能な階層性有向グラフのテンプレートとして、ＸＭＬファイルを作成することができる。
【００７７】
ステップ３３１において、階層性有向グラフをキューブスキーマに変換することができる。
【００７８】
図４は、一実施形態に従って、本発明のシステムを用いて、表形式データから、キューブスキーマを自動的に推論する例を示す図である。
【００７９】
図４に示すように、表形式データ４１１は、次元Ａおよび次元Ｃ並びに数値属性Ｄを有するキューブを表すことができる４列のデータを含む。
【００８０】
表形式データにおいて、列Ａのａ１は、列Ｂのｂ２およびｂ３に対応し、列Ａのａ２は、列Ｂのｂ１およびｂ３に対応し、列Ｃの列ｃ２は、列Ｄのｄ８およびｄ９に対応し、列Ｃのｃ１およびｃ４は、列Ｄのｄ７およびｄ１０に各々対応する。
【００８１】
一実施形態によれば、各列の連続的な分割によって計算された情報利得比を用いて、情報利得比の相互相関マトリックス４１３を構築することができる。
【００８２】
例えば、列Ａを分割する場合、計算された情報利得比は、列Ａおよび列Ｂの情報利得比（１．００）、列Ａおよび列Ｃの情報利得比（０．５）、列Ａおよび列Ｄの情報利得比（１．００）を含むことができる。
【００８３】
同様に、列Ｂを分割する場合、計算された情報利得比は、列Ｂおよび列Ａの情報利得比（０．５０）、列Ｂおよび列Ｃの情報利得比（０．７５）、列Ｂおよび列Ｄの情報利得比（１．００）を含むことができる。
【００８４】
上述したように、情報利得比は、１つの属性に含まれた他の属性に関する情報の量を測ることができる。この特定の例において、列Ａに含まれた列Ｂに関する情報量は、列Ｂに含まれた列Ａに関する情報量よりも多い。
【００８５】
列Ａの観点から、列Ａ内のセルの値がａ１である場合、列Ｂ内の対応セルの値は、ｂ２およびｂ４である。列Ａ内のセルの値がａ１ではない場合、列Ｂ内の対応セルの値は、ｂ２またはｂ４にならない。
【００８６】
列Ｂの視点から、列Ｂ内のセルの値がｂ２である場合、列Ａ内の対応セルの値は、ａ１である。しかしながら、列Ｂ内のセルの値がｂ２ではない場合、列Ａ内の対応セルの一方の値は、ａ１のままである。
【００８７】
したがって、列Ａおよび列Ｂの情報利得比は、１であるが、列Ｂおよび列Ａの情報利得比は、０．５である。
【００８８】
一実施形態によれば、情報利得比の相互相関マトリックス４１３は、同一属性間の相互相関をさらに含むことができる。マトリックスの主対角線は、各列自身との相互情報に相当する値を含むことができる。この値は、上記のエントロピー公式を用いて計算することができる。
【００８９】
さらに図４に示すように、相互相関マトリックスから、階層性有向グラフ４１５を構築することができる。有向グラフは、複数のノードと、ノードＡおよびノードＣを除き、各対のノードの間のエッジとを含む。各ノードは、表形式データ４１１内の属性または列を表し、各エッジは、各対のノードの間の関係を表す。各エッジ上の標記は、２つの隣接ノードの間の情報利得比を示す。
【００９０】
例えば、ノードＡとノードＢとの間の情報利得比は、１．０であり、ノードＢとノードＡとの間の情報利得比は、０．５０である。ノード上の標記は、各列自身との相互情報または各列自身の情報に相当する属性または列のエントロピーを表す。
【００９１】
この特定の例において、列Ａと列Ｃとの間に相関または依存性が存在しないため、２つのノード間にエッジが存在しない。
【００９２】
一実施形態によれば、階層性有向グラフから、キューブスキーマ４１７を生成することができる。キューブスキーマは、データベースアウトラインを特定するＸＭＬファイルであってもよい。このデータベースアウトラインを用いて、表形式データをロードする際に使用されるキューブを多次元データベース環境に作成することができ、または生成されたアウトラインとデータベースサーバ内の既存のアウトラインとの比較に基づいて、表形式データを既存のキューブにロードすることができるか否かを判断することができる。
【００９３】
キューブ要素の特定
一実施形態によれば、階層性有向グラフをキューブスキーマまたはデータベースアウトラインに変換する時に、システムは、階層性有向グラフ上の各列をキューブスキーマによって定義されたキューブの特定の要素（例えば、メジャー列、上位列、下位列、または属性列）にマッピングする必要がある。
【００９４】
一実施形態によれば、発見的プロセス（heuristic process）を用いて、キューブスキーマ／スタースキーマを構築する時に使用される階層性有向グラフ上の複数列から、キューブ要素を特定することができる。
【００９５】
発見的プロセスによって、高い確率で特定され得る１つ以上のキューブ要素、例えば、１つ以上のメジャー列および／または１つ以上のフラット次元列（フラット階層次元列）を最初に特定し、複数列から除去することができる。
【００９６】
残りの列から、より複雑なキューブ要素（例えば、次元階層内の列）を特定することができる。
【００９７】
一実施形態によれば、ある列が数値列または浮動小数点列であり且つ複数列のうち他の列と関係（すなわち、１対１関係、多対１関係、または１対多関係）を有しない場合、この列をメジャー列として特定することができる。
【００９８】
一実施形態によれば、システムは、無限キューブに対応するスタースキーマの構築をサポートすることができる。例えば、Excelシートにメジャー列が含まれていない場合、システムは、各行に任意の数値（例えば、数字「１」）を保持することができる仮想列をメジャー列として追加し、この列をメジャー列として使用することができる。この場合、Excelシート内の実際の列は、次元階層になり、仮想列は、メジャー列になる。
【００９９】
一実施形態によれば、ある列が複数列のうち他の列と関係を有しないテキスト列である場合またはある列が他の全ての列と１対１または多対１関係を有する数値列または文字列である場合、この列をフラット階層次元列として特定することができる。デフォルトでは、重複値を有しない数値列は、フラット階層次元列として特定することができる。
【０１００】
一実施形態によれば、残りの列は、複数の次元および１つ以上のメジャー列を含むことができる。各次元は、残り列の列集合を含むことができる。
【０１０１】
一実施形態によれば、システムは、次元の次元階層を作成するために、次元に関連する列の集合から、下位列および１つ以上の上位列を特定することができる。
【０１０２】
一実施形態によれば、下位列は、次元を構成する１群の列内の他の各列と多対１または１対１関係のみを有する列である。上位列は、次元を構成する１群の列内の他の各列と１対多または１対１関係のみを有する列である。次元列のセットでは、中間列は、１群の列内の下位列と１対多関係を有し且つ上位列と多対１関係を有する列である。
【０１０３】
一実施形態によれば、次元階層は、下位列、上位列、および１つ以上の中間列を用いて作成されることができ、１つ以上のフラット階層次元列に追加されることができる。１つ以上のメジャー列、１つ以上のフラット階層次元列および次元階層を用いて、キューブスキーマを作成することができる。
【０１０４】
一実施形態によれば、次元内の列の集合に対して複数の上位列が特定された場合、１つ以上の中間列および下位列と組み合わせて、最トップレベル／最長の組み合わせ／チェーンを作成することができる１つの上位列は、上位列として選択される。残りの上位列は、属性として特定されまたは代替の次元階層の上位列として特定されてもよい。
【０１０５】
一実施形態によれば、下位列、選択された上位列および中間列を用いて構築された最トップレベルの階層は、主な次元階層として見なすことができる。主な次元階層に含まれていない次元列群内の列は、下位列の属性として特定することができる。
【０１０６】
一実施形態によれば、上位列および中間列を除去した後、上記のプロセスを繰り返すことによって、代替の次元階層を特定することができる。特定の次元に対応する各代替の次元階層および（最初に特定された）主な次元階層は、同様の下位列を共有することができる。
【０１０７】
図５Ａ〜図５Ｂは、一実施形態に従って、表形式データの列を複数のキューブ要素にマッピングするためのフローチャートを示す図である。
【０１０８】
図５Ａ〜５Ｂに示すように、ステップ５１９において、キューブスキーマ推論要素は、階層性有向グラフ上に表示された複数列からの間の関係に基づいて、表形式データ内の複数列から、１つ以上のメジャー列および１つ以上のフラット次元列を特定することができる。
【０１０９】
ステップ５２１において、特定されたメジャー列およびフラット次元列を複数列から除去することができる。
【０１１０】
ステップ５２３において、キューブスキーマ推論要素は、複数列のうち残りの列から、１組以上の列を特定することができる。各組の列は、次元を定義し、組内の他の列と多対１関係または１対１関係を有する下位列を含む。
【０１１１】
ステップ５２５において、キューブスキーマ推論要素は、各次元に対応する列の組から、１つ以上の上位列を特定することができる。各上位列は、群内の他の列と１対多関係または１対１関係を有する。
【０１１２】
ステップ５２７において、キューブスキーマ推論要素は、特定された１つ以上の上位列から、各次元の最高階層の構築に使用できる列を選択することができる。
【０１１３】
ステップ５２９において、キューブスキーマ推論要素は、各次元階層の１つ以上の中間列を特定することができる。各中間列は、選択された上位列と多対１関係を有し、下位列と多対多関係を有する。
【０１１４】
ステップ５３１において、キューブスキーマ推論要素は、特定された下位列、選択された上位列および特定された中間列を用いて、各次元の次元階層を作成することができる。
【０１１５】
ステップ５３３において、キューブスキーマ推論要素は、１組以上の列の各々から、対応の次元階層に含まれていない１つ以上の列を決定し、これらの列を対応の次元階層内の下位列の属性列としてマークする。下位列の属性列としてマークされた１つ以上の列は、下位列または選択された上位列および上記に上位列として特定されたが選択されていない上位列との間に１対１関係を有する任意の列を含むことができる。
【０１１６】
ステップ５３５において、キューブスキーマ推論要素は、１つ以上のメジャー列、１つ以上のフラット次元列、１つ以上の次元階層および１つ以上の次元階層の各々の下位列の１つ以上の属性列を用いて、キューブスキーマを作成することができる。
【０１１７】
図６は、一実施形態に従って、表形式データから、多次元データベース環境に使用されるキューブスキーマを自動的に推論するための方法を示す図である。
【０１１８】
図６に示すように、ステップ６１３において、１つ以上のマイクロプロセッサ上で動作するキューブスキーマ推論要素を提供する。キューブスキーマ推論要素は、多次元データベースサーバのクライアントとして動作する。
【０１１９】
ステップ６１５において、キューブスキーマ推論要素を用いて、キューブスキーマ推論要素に受信された表形式データ内の複数列のうち、各対の列の情報利得比を計算する。
【０１２０】
ステップ６１７において、各対の列の情報利得比を用いて、各対の列の関係を決定する。
【０１２１】
ステップ６１９において、決定された関係を用いて、階層性有向グラフを構築する。
ステップ６２１において、階層性有向グラフは、多次元データベースサーバ内にキューブを作成する際に使用されるキューブスキーマに変換される。
【０１２２】
図７は、一実施形態に従って、本発明のシステムを使用することができる環境を示すアーキテクチャ図である。
【０１２３】
図７に示すように、キューブスキーマ推論要素７１３は、多次元データベースサーバ７１７のクライアントＡ７１１上で動作し、表形式データ記憶装置Ａ７０５に格納された表形式データからキューブスキーマを抽出し、多次元データベースサーバ内のキューブスキーマを用いて作成されたキューブに、クライアントＢ７１５に利用される表形式データをロードすることができる。
【０１２４】
一実施形態によれば、多次元データベースサーバは、表形式データ記憶装置Ｂ７０７と通信することができる。これによって、表形式データ記憶装置Ｂ７０７は、表形式データおよびデータベースファイルを提供して、多次元データベースサーバをサポートすることができる。
【０１２５】
例えば、表形式データおよびデータベースファイルは、ログファイルおよびEssbaseスタジオのメタデータを含むことができる。
【０１２６】
本発明は、本開示の教示に従ってプログラムされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ可読記憶媒体を含む１つ以上の従来の汎用または専用コンピュータ、コンピューティング装置、機械、またはマイクロプロセッサを使用して都合よく実施することができる。ソフトウェア分野の当業者には明らかであるように、熟練したプログラマは、本開示の教示に基づいて、適切なソフトウェアのコーディングを容易に準備することができる。
【０１２７】
いくつかの実施形態において、本発明は、命令を格納した非一時的記憶媒体またはコンピュータ可読媒体であるコンピュータプログラム製品を含み、これらの命令を用いてコンピュータをプログラムすることによって、本発明の任意の処理を実行することができる。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／もしくはデータを格納するのに適した任意の種類の媒体もしくは装置を含むことができるが、これらに限定されない。
【０１２８】
本発明の上記記載は、例示および説明を目的として提供される。本発明を網羅的なものまたは開示された形態そのものに限定することを意図していない。本発明の広さおよび範囲は、上記の例示的な実施形態のいずれかによって限定されるべきではない。数多くの変更および変形は、当業者にとって明らかであろう。修正例および変形例は、開示された特徴の任意可能な組み合わせを含む。実施形態は、本発明の原理およびその実際の応用を最も良く説明することによって、他の当業者がさまざまな実施形態および考えられる特定の用途に適したさまざまな変形に応じて本発明を理解できるように、選択され説明される。本発明の範囲は、添付の特許請求の範囲およびそれらの同等物によって規定されると意図する。
【図１】
2018536909.tif 000008
【図２】
2018536909.tif 000009
【図３】
2018536909.tif 000010
【図４】
2018536909.tif 000011
【図５Ａ】
2018536909.tif 000012
【図５Ｂ】
2018536909.tif 000013
【図６】
2018536909.tif 000014
【図７】
2018536909.tif 000015
【国際調査報告】
2018536909.tif 000016
2018536909.tif 000017
2018536909.tif 000018