JP6652490B2 - 多ディメンション・データー構造に対する実行のためのクエリー構築 - Google Patents

多ディメンション・データー構造に対する実行のためのクエリー構築 Download PDF

Info

Publication number
JP6652490B2
JP6652490B2 JP2016541673A JP2016541673A JP6652490B2 JP 6652490 B2 JP6652490 B2 JP 6652490B2 JP 2016541673 A JP2016541673 A JP 2016541673A JP 2016541673 A JP2016541673 A JP 2016541673A JP 6652490 B2 JP6652490 B2 JP 6652490B2
Authority
JP
Japan
Prior art keywords
query
dimension
cube
data
component
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.)
Active
Application number
JP2016541673A
Other languages
English (en)
Other versions
JP2017500664A (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017500664A publication Critical patent/JP2017500664A/ja
Application granted granted Critical
Publication of JP6652490B2 publication Critical patent/JP6652490B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • 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/23Updating
    • G06F16/235Update request formulation
    • 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/2423Interactive query statement specification based on a database schema
    • 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/2425Iterative querying; Query formulation based on the results of a preceding query
    • 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/2428Query predicate definition using graphical user interfaces, including menus and forms
    • 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/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

[0001] コンピューター実装ビジネス・インテリジェンス(BI)アプリケーションは、ビジネスの目標に到達する際にビジネスを補助することができる知識の発見(例えば、ビジネスの事実)を容易にするために開発された。更に特定すると、ビジネス・インテリジェンス・アプリケーションのユーザーは、特定のビジネスに関連するデーターに対して実行しようとするクエリーを定式化することができる。従来では、ビジネスに関連するデーターは、少なくとも1つの二ディメンション・テーブルを含む少なくとも1つのリレーショナル・データーベースとして構造化されていた。
[0002] 従来のビジネス・インテリジェンス(BI)アプリケーションはビジネスに関連するデーターがリレーショナル・データーベースとして構造化されるとき、ビジネス知識を取得する際にユーザーを補助するのに適したインターフェースを提供するが、従来のビジネス・インテリジェンス・アプリケーションは、多ディメンション・データー構造(例えば、データー・キューブ、「ハイパーキューブ」と呼ばれることもある)からビジネス知識を発見するには余り適していない。一例では、ビジネスに関連するデーターがデーター・キューブとして構造化されるとき、データー・キューブに問い合わせることによってビジネス知識を得ることを望むユーザーは、キューブの内容について先験的知識を有していなければならない。更に、ユーザーは、データー・キューブに対してクエリーを実行するために使用することができるクエリー言語について精通していなければならない。更に、ユーザーは、クエリーを定式化するときに対象となるデーター・キューブのスライスおよび/またはダイスの知識も有していなければならない。つまり、ユーザーは最終的なクエリーを定式化しなければならないが、所望のビジネス知識が提示される結果にならないこともあり得る。
[0003] 以下に、本明細書において更に詳細に説明する主題についての端的な摘要を示す。この摘要は、請求項の範囲に関して限定することは意図していない。
[0004] 本明細書では計算システムについて記載する。この計算システムは、プロセッサーおよびメモリーを含む。メモリーは、プロセッサーによって実行されるビジネス・インテリジェンス(BI)アプリケーションを含む。ビジネス・インテリジェンス(BI)アプリケーションは、クエリーの以前のバージョンに対する増分変更(incremental modification)に基づいて、クエリーを構築するように構成される。クエリーは、クエリー・ステップのシーケンスとして表現され、クエリー・ステップのシーケンスにおける各ステップは、前述の増分変更におけるそれぞれの増分変更に対応する。ビジネス・インテリジェンス(BI)アプリケーションは、更に、クエリーに基づいてデーター・キューブからテーブル形式データーを引き出すように構成される。
図1は、多ディメンション・データー構造に対する実行のためのクエリーを構築し易くするシステム例の機能ブロック図である。 図2は、多ディメンション・データー構造に対する実行のためのクエリーを構築する方法例を示す流れ図である。 図3は、多ディメンション・データー構造の少なくとも1つのディメンションの属性を圧縮(collapse)または拡張(expand)する要求に基づいて、クエリーを改訂する(refine)方法例を示す流れ図である。 図4は、融合データー構造を作成するために少なくとも2つの多ディメンション・データー構造を融合する方法例を示す流れ図である。 図5は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図6は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図7は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図8は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図9は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図10は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図11は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図12は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図13は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図14は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図15は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図16は、多ディメンション・データー構造に対して実行することができるクエリーを構築し易くするグラフィカル・ユーザー・インターフェースの例である。 図17は、計算システム例である。
[0011] 一連の段階にわたってクエリーを構築することに関連する種々の技術において、クエリーは多ディメンション・データー構造に対して実行するように構成される。これより、図面を参照しながら、これらの技術について説明する。図面では、同様の参照番号が全体を通じて同様のエレメントを指すために使用される。以下の説明では、説明の目的に限って、1つ以上の態様の完全な理解を得るために、多数の具体的な詳細を明記する。しかしながら、このような態様(1つまたは複数)は、これらの具体的な詳細がなくても実施できることは明白であろう。他の場合では、周知の構造およびデバイスは、1つ以上の態様を説明し易くするために、ブロック図で示される。更に、1つのシステム・コンポーネントによって実行されると説明される機能は、多数のコンポーネントによって実行されてもよいことは理解されよう。同様に、例えば、多数のコンポーネントによって実行されると説明される機能を実行するために1つのコンポーネントが構成されてもよい。
[0012] 更に、「または」(or)という用語は、排他的な「または」ではなく、包含的な「または」を意味することを意図している。即ち、別段指定されない限り、または文脈から明らかでない限り、「XはAまたはBを採用する」という句は、自然な包含的置換(natural inclusive permutation)のいずれかを意味することを意図している。即ち、「XはAまたはBを採用する」という句は、以下の実例、XはAを採用する、XはBを採用する、またはXはAおよびB双方を採用する、のいずれによっても満たされる。加えて、冠詞「a」および「an」は、本願および添付する特許請求の範囲において使用する場合、一般に、別段指定されない限り、または文脈から単数形に向けられることが明らかでない限り、「1つ以上」を意味するように解釈されてしかるべきである。
[0013] 更に、本明細書において使用する場合、「コンポーネント」および「システム」という用語は、プロセッサーによって実行されるとある種の機能を実行させるコンピューター実行可能命令が構成されたコンピューター読み取り可能データー・ストレージを含むことを意図している。コンピューター実行可能命令は、ルーチン、関数等を含むことができる。また、コンポーネントまたはシステムは1つのデバイス上に配置されても、または様々なデバイスにわたって分散されてもよいことも理解されよう。更に、本明細書において使用する場合、「例示的」(exemplary)という用語は、あるものの実証例または一例として役割を果たすことを意味することを意図しており、好み(preference)を示すことを意図するのではない。
[0014] 本明細書において記載するのは、多ディメンション・データー構造(例えば、キューブであり、ハイパーキューブ、データー・キューブ等と呼ばれることもある)に対して実行されるように構成されたクエリーの構築に関連する種々の技術である。キューブは、1組の関係するテーブルにわたって定義され、例えば、少なくとも1つのファクト・テーブル(fact table)およびこのファクト・テーブルに関係する一連のディメンション・テーブル(「ディメンション」とも呼ぶ)を含む、スターまたはスノーフレーク・スキーマを使用する。ファクト行(fact row)(ファクト・テーブルにおける行)は、ディメンション「属性」(例えば、ディメンション・テーブルの列)によって分類することができる。「メジャー」(measures)は、1組のファクト行の列に対して適用される集計関数(例えば、1組のファクト行における値に対する加算関数)である。
[0015] 更に特定すると、キューブのファクト・テーブルは、ビジネス・プロセスのメジャー、メトリック(metric)、またはファクトを含み、スターまたはスノーフレーク・スキーマの中心に位置し、ディメンションによって包囲される。ディメンションは、他の順序付けられない数値メジャー(numeric measure)に対して、構造型ラベリング情報(structured labeling information)を提供する。したがって、ディメンションはそれぞれの個々の重複しないデーター・エレメントを含む。ディメンションは、通例、フィルタリング、分類、およびラベリング・データーと共に使用される。「スライシング」(slicing)という用語は、キューブからのデーターをフィルタリングすることを意味し、一方「ダイシング」(dicing)という用語はキューブにおけるデーターを分類することを意味する。多くの場合、ディメンションは、階層的に編成される、ディメンション属性を有する。例えば、ディメンションは、様々な可能な階層属性と共に、時間を表すことができる。例えば、ディメンションは、ディメンション属性「日」、「週」、「月」、および「年」を含むことができる。属性「日」は、「月」に分類(圧縮)することができ、「月」は「年」に圧縮することができる。同様に、日は「週」に圧縮することができ、「週」は「年」に圧縮することができる等である。最後に、キューブのメジャーとは、計算を行うことができるプロパティであり、このような計算は、加算、計数、平均、最小、および最大を含む。
[0016] キューブ・データーは、属性およびメジャー適用を含む1つのフラット・テーブル(flat table)において表すことができる。このフラット・テーブルは「ファクト・テーブル」と呼ぶことができる。キューブ演算(cube operation)は、関係演算子に関して表された(express)表現(representation)に下げられる(lower)。「ディメンション・テーブル」とは、ディメンションの属性毎に列を含むテーブルを指す。各ディメンション属性のメンバーを列挙し、ディメンションの属性のメンバーのクロス積を求めることができる。キューブに関する種々の例について、本明細書において説明する。
[0017] これより図1を参照すると、多ディメンション・データー構造(ここではキューブと呼ぶ)に対して実行することができるクエリーを構築し易くするシステム例100が例示されている。更に、システム100は、段階的手法(staged approach)でクエリーを構築し易くすることもでき、ユーザー(または計算デバイス)にデーターが提示されるに連れて、クエリーを改訂する(refine)ことができ、提示されたデーターのユーザー分析または提示されたデーターのコンピューター分析によって、クエリーを改訂する。システム100は、キューブ104を含むデーター・ストア102を含む。キューブ104は、データー・ストア102に含まれることが示されているが、キューブ104は、多数のデーター・ストアにわたって分散されてもよいことは理解されよう。更に、キューブ104は、潜在的に異なるそれぞれの構造を有する可能性がある様々なキューブの組み合わせを表すこともできる。
[0018] 加えて、システム100はサーバー計算デバイス106も含むことができる。サーバー計算デバイス106にはコンピューター実行可能命令が構成され(configured with)、コンピューター実行可能命令は、サーバー計算デバイス106がキューブ104に対してクエリーを実行し、キューブに対してクエリーを実行したことに応答してデーターを出力することを可能にする。
[0019] 更に、システム100はクライアント計算デバイス108も含むことができる。クライアント計算デバイス108は、ユーザー110またはコンピューター・プログラムからの入力に基づいて、キューブ104に対する実行のためのクエリーを受け取るおよび/または構築するように構成することができる。クライアント計算デバイス108は、サーバー計算デバイス106と通信することができ、クエリーをサーバー計算デバイス106に送信することができる。クライアント計算デバイス108は、任意の適した計算デバイスとすることができ、デスクトップ計算デバイス、ラップトップ計算デバイス、タブレット(スレート)計算デバイス、移動体電話機、変換可能計算デバイス、ウェアラブル計算デバイス(例えば、腕時計、ヘアバンド等)、ファブレット(phablet)、ビデオ・ゲーム・コンソール等を含むがこれらに限定されるのではない。
[0020] クライアント計算デバイス108は、プロセッサー111およびメモリー112を含み、プロセッサー11はメモリー112内にある命令を実行することができる。図示のように、メモリー112は、ビジネス・インテリジェンス(BI)アプリケーション114を含み、これはプロセッサー111によって実行される。ビジネス・インテリジェンス(BI)アプリケーション114は、キューブ104からビジネス知識を抽出し、このビジネス知識をユーザー110に提示する(例えば、ビジネス知識を可視化する)ように構成されている。実施形態例では、ビジネス・インテリジェンス(BI)アプリケーション114は、スプレッドシート・アプリケーションである、またはスプレッドシート・アプリケーションに含まれることが可能である。ビジネス・インテリジェンス(BI)アプリケーション114はクライアント計算デバイス108上で実行されることが示されているが、ビジネス・インテリジェンス(BI)アプリケーション114は、ネットワーク接続を介してクライアント計算デバイス108にアクセス可能な計算デバイスにおいて実行してもよいことは理解されよう。例えば、クライアント計算デバイス108は、そこで実行するブラウザーまたは他の適したアプリケーションを有することもでき、例えば、ビジネス・インテリジェンス(BI)アプリケーション114を実行する、離れて位置する計算デバイスにブラウザーを導くことができる。即ち、ビジネス・インテリジェンス(BI)アプリケーション114はウェブ・ベース・アプリケーションとすることができ、またはウェブ・サービスとして提供することができる。更に、データー・ストア102、サーバー計算デバイス106、および/またはクライアント計算デバイス108は、1つの計算デバイス上に位置するのでもよく、つまり、システム100のアーキテクチャは性質上例示であり、限定することは意図していないことは理解されよう。
[0021] ビジネス・インテリジェンス(BI)アプリケーション114は、データー・キューブ104に関してユーザー110(またはコンピューター実行可能プログラム)からの入力を受ける入力受入コンポーネント115を含む。例えば、入力受入コンポーネント115は、キューブ104のコンテンツ(キューブ104の少なくとも一部)をビジネス・インテリジェンス(BI)アプリケーション114に割り当てられたクライアント計算デバイス108のメモリー112の一部にロードする要望(desire)を示す入力を受けることができる。加えてまたは代わりに、性能を高めるために、入力受入コンポーネント115が、キューブ104にアクセスすることが望ましいという指示を受けたことに応答して、ビジネス・インテリジェンス(BI)アプリケーション114はキューブ104の全体をクライアント計算デバイス108のメモリー112にロードする必要がないように、サーバー計算デバイス106の通信チャネルを開くように構成することができる。
[0022] ビジネス・インテリジェンス(BI)アプリケーション114は、更に、クエリー構築コンポーネント116も含む。クエリー構築コンポーネント116は、入力受入コンポーネント115が受けた入力に基づいてクエリーを構築する。例えば、入力受入コンポーネント115がキューブ104をメモリー112にロードする要求を受けたことに応答して、クエリー構築コンポーネント116はクエリーを生成することができる。このクエリーがサーバー計算デバイス106によってキューブ104に対して実行されると、キューブ104の全体をデーター・ストア102から引き出させ、クライアント計算デバイス108のメモリー112にロードさせる(例えば、データー117として表されている)。既に示したように、ビジネス・インテリジェンス(BI)アプリケーション114は多ディメンション構造の多数の異なるタイプに対して実行することができるクエリーを生成するように構成することもできる。したがって、本明細書において更に詳しく説明するように、クエリー構築コンポーネント116は、ビジネス・インテリジェンス(BI)アプリケーション114がサポートするように構成された全てのタイプのキューブにわたって共通である、比較的高いレベルの言語で最初にクエリーを生成することができる。このようなクエリーは、「上位」クエリーと呼ぶことができる。クエリー構築コンポーネント116は、クエリー変換コンポーネント118を含むことができる。クエリー変換コンポーネント118は、上位クエリーを、サーバー計算デバイス106によってサポートされるクエリーに変換することができる。したがって、一例では、ビジネス・インテリジェンス(BI)アプリケーション114が3つの異なるキューブの問い合わせをサポートするように構成されるとき、ユーザー110はこれら3つの異なるタイプのキューブに問い合わせるために3つの異なるクエリー言語を学習する必要はない。代わりに、クエリー構築コンポーネント116およびクエリー変換コンポーネント118は、アクセスされたキューブに対応するクエリー言語でのクエリー構築を扱うように構成されている。
[0023] 加えて、ビジネス・インテリジェンス(BI)アプリケーション114は提示コンポーネント120も含む。提示コンポーネント120は、例えば、クライアント計算デバイス108のディスプレイ上に、メモリー112内のデーター117を提示するように構成されている。一例によれば、クエリー構築コンポーネント116は、入力受入コンポーネント115が受けた入力に基づいてクエリーを構築するとき、クエリー構築コンポーネント116はこのクエリーをサーバー計算デバイス106に送信するように構成することができる。
[0024] サーバー計算デバイス106は、サーバー・プロセッサー122およびサーバー・メモリー124を含み、サーバー・メモリー124は、サーバー・プロセッサー122によって実行することができるコンポーネントを含む。サーバー・メモリー124は、クエリー実行コンポーネント126を含み、クエリー実行コンポーネント126はクライアント計算デバイス108からクエリーを受け、データー・ストア102内にあるキューブ104に対してこのクエリーを実行する。更に、サーバー・メモリー124は、データー提供コンポーネント128も含む。データー提供コンポーネント128は、クエリー実行コンポーネント122によって実行されたクエリーに基づいてキューブ104からデーターを受け、そしてデーター提供コンポーネント124は、このようなデーター117をクライアント計算デバイス108に提供する。データー117は、ビジネス・インテリジェンス(BI)アプリケーション114によってアクセス可能なメモリー112の一部に置かれている。提示コンポーネント120は、データー117をメモリー115から引き出し、このようなデーターをユーザー110に(例えば、テーブル形式フォーマットで)提示する。
[0025] 一旦データーが提示されると、ユーザー110は、提示されたデーターに関して追加の入力を供給することができる。例えば、ユーザー110は、特定のディメンション属性(例えば、時間を表すディメンションに対するディメンション属性「日」)に対応するメジャーが提示されることを望むかもしれない。他の例では、ユーザー110が、特定のディメンション属性に基づいて、メジャーをフィルタリングすることを望むかもしれない(例えば、ユーザー110がデーター117において表されるある日を除外することを望むかもしれない)。他の例では、ユーザーは、表示画面上に更に粒度が高い属性が示されるように、ディメンション属性を拡張することを望むかもしれない(これによって、ユーザー110に提示されるデーターの行数を増やす)。更にまた、ユーザー110は、表示画面上にもっと粗い属性が示されるように、ディメンション属性を圧縮することを望むかもしれない(これによって、ユーザー110に提示されるデーターの行数を減らす)。入力受入コンポーネント114は、このような入力を受け、クエリー構築コンポーネント116は、この入力に基づいて、前述のクエリーを改訂することができる。クエリーは、クライアント計算デバイス108によってサーバー計算デバイス106に送信され、サーバー計算デバイス106のクエリー実行コンポーネント126がキューブ104に対して、改訂されたクエリーを実行する。データー提供コンポーネント128は、キューブ104に対するクエリーの実行に基づいて、戻されたデーターをクライアント計算デバイス108に提供し、データー117としてメモリー112内に置かれる。提示コンポーネント120は、データー117をテーブル形式でユーザー110に提示する。次いで、ユーザー110は、更にクエリーを改訂するために、提示されたデーターに関して、またはクエリーの以前の段階に関して追加の入力を任意に供給することができる。
[0026] したがって、ユーザー110が複数の段階(またはステップ)に対してクエリーを構築させることができ、ユーザー110には、キューブに問い合わせたことによって引き出されたテーブル状データーを提示することができ、次いでクエリーを改訂するためにこのテーブル状データーに対して実行するとよい追加の動作をユーザーが選択できることを確認することができる。このように、ユーザー110は、データーを検討し次いでデーターに対して実行する追加の動作を指定することによって、クエリーを構築するまたは改訂することができる。これは、ユーザー110が、クエリー実行コンポーネント126によってサポートされるクエリー言語の知識を有していなければならず、ユーザー110に関心があるキューブの一部の知識を有していなければならず、更に関心があるキューブの一部を引き出すためにクエリーを構築しなければならない従来の手法とは対照的である。尚、クエリーは先に参照したクエリー言語で作られる。従来の手法では、構築されたクエリーがユーザー110に所望のデーターを提示しない場合、ユーザー110は、本明細書において明記する「クエリー例証」(query by example)手法によるのではなく、新たなクエリーを(例えば、最初から)構築しなければならない。つまり、本明細書において説明する態様を利用すると、ユーザー110は、ビジネス知識を獲得するために、キューブ104のコンテンツを容易に探索することができる。
[0027] これより、システム100の動作に関連する種々の例について説明する。既に示したように、キューブ104は、ディメンション属性およびメジャー適用を含むフラット・テーブルとして表すことができ、このフラット・テーブルを「ファクト」テーブルと呼ぶことができる。キューブ104に対して実行されるクエリーは、関係演算子に関して表された表現に下げることができ、ユーザー110は、具体的なクエリー言語を学習することを強いられることなく、キューブ104と対話処理することが可能になる。一般に、関係演算子とは、2つのエンティティ間の関係を検査するまたは定義するしくみ(construct)である。関係演算子の例には、とりわけ、行フィルター、列選択、ソートが含まれるが、これらに限定されるのではない。
[0028] ディメンション・テーブルとは、ディメンションの属性毎に列を含むテーブルである。つまり、例えば、「時間」ディメンション・テーブルは、年、月、週、日等に別個の列を含むことができる。ディメンション・テーブルでは、各ディメンション属性のメンバーが列挙され、ディメンションの属性のメンバーのクロス積を求める。例えば、「顧客地理」(Customer Geography)ディメンションの顧客テーブルを以下のテーブル1に明記する。
Figure 0006652490
[0029] 概念的に、ファクト・テーブルは、ジョイント(「拡張」されたディメンション)またはネスト・ジョイント(「圧縮」されたディメンション)によって、それに関係付けられたディメンション・テーブルを有する。例えば、「顧客地理」および「製品」を圧縮ディメンションとして有するファクト・テーブルをテーブル2に示す。
Figure 0006652490
このテーブルから、ファクト・テーブルのこれらのディメンション・テーブルの各々とのネスト・ジョイントが得られる。たとえば、
Figure 0006652490
ここで、引数を順に追っていくと、"factTable"はファクト・テーブルであり、"{ }"は左側のサイド・キー(side keys)であり、 "#'Customer Geography'"はディメンション・テーブルであり、"{ }"は右側のサイド・キーであり、"Customer Geography"はネスト・テーブルを置くために作られる列の名称である。このファクト・テーブルにおける各行は、キューブにおけるデーターのある部分集合を選択する座標を表す。この場合、1組のディメンションはフィルタリングも拡張もされておらず、キューブ104におけるデーターの全てが、ファクト・テーブルにおけるこの1つの(唯一の)行のために選択される。ビジネス・インテリジェンス(BI)アプリケーション114は、表示のためにコンテンツをフィルタリングするように機能し、こうして表示レイヤーを出力することができる。この表示レイヤーは、圧縮ディメンションを隠すことができる(たとえば、より良く混乱が少ないユーザー体験を提供するため)。尚、あらゆるディメンションを1つ1つこのように提示する必要はなく、代わりに、ユーザー110によって「タッチ」されたディメンションを、ユーザー110がキューブ104で作業をしているときに提示できることは理解されよう。
[0030] 既に示したように、ディメンション・テーブルは、更に粒度を細かくした座標を生成するために拡張することができ、クエリー構築コンポーネント116は、このような拡張を行わせるクエリーを構築することができる。たとえば、「顧客地理」ディメンションを拡張し、国、県、および都市属性を選択すると、テーブル3に示すような、これらの拡張された属性およびファクト・テーブルの行のクロス積が得られる。
Figure 0006652490
この例では、これは、先に表されたネスト・ジョイントから得られた「顧客地理」列を拡張したものとしてモデル化することができる。例えば、
Figure 0006652490
ここで、"Customer Geography"引数は、拡張する列を特定し、テーブルから除外する列のリストも与えられる。また、これは、ファクト・テーブルとディメンション・テーブルとの間の(フラット)ジョイントと等価であり、例えば、
Figure 0006652490
ここで、"factTable"はファクト・テーブルを特定し、"{ }"は左側のサイド・キーであり、 "#’Customer Geography'"はディメンション・テーブルであり、"{ }"は右側のサイド・キーである。尚、"Product"ディメンションは圧縮されたまま残っており、視野から隠せることを注記することができる。各行は、注記された座標に対応する、キューブ104におけるデーターの部分集合を選択することができる。例えば、行3は、全ての製品に対して、オーストラリア、ニュー・サウス・ウェールズにおけるダーリングハーストから全てのデーターを選択することができる。
[0031] 既に示したように、メジャーは、行のディメンション座標に対する集計列としてモデル化することができる。テーブルにおける各行に同じ関数を適用した結果が列である。例えば、"Internet Sales Amt."メジャーを適用すると、表4に示すように、集計列が追加される結果となる。
Figure 0006652490
入力受入コンポーネント115が前述のメジャーを計算する要求を受けたことに応答して、クエリー構築コンポーネント116は、このメジャーを計算させる以下のようなクエリーを構築することができる。
Figure 0006652490
この例では、メジャー"#'Internet Sales Amount"が、入手可能なディメンション座標から構築されたレコードに対して適用される。以上で説明した例では、「顧客地理」ディメンションの属性の個々のメンバー(行による)を、メジャーの各呼び出しに対して渡すことができ、一方「製品」メンバーの圧縮された1組全体を、メジャーの各呼び出しに対して渡すことができる。このように、メジャーは、その行によって記述されたキューブ104の部分集合に適用される。例えば、上のテーブル4における行3は、全ての製品に対して、そしてダーリングハースト、ニュー・サウス・ウェールズ、オーストラリア地理的領域においてキューブ104の部分集合に、インターネット販売量メジャーを適用する。
[0032] キューブ104のテーブルの上に、最終的なプロジェクション・レイヤー(projection layer)を置くことができ、圧縮されたディメンション列がユーザー110を妨害しないように、またはユーザー110を混乱させないように、これらを隠すことができる。プロジェクションは、テーブルから列を除去するように構成された演算子(例えば、Table.RemoveColumns)を使用して実行することができる。
[0033] 更に、クエリー構築コンポーネント116は、ディメンションの拡張または圧縮を要求する指示があったときに、メジャーを「浮動させる」クエリーを構築することができる。例えば、ユーザーが、選択したメジャーを現在の1組のディメンション座標に適用すること、およびディメンション座標を変更したときにこのメジャーを更新することを期待する場合がある。例えば、「インターネット販売量」メジャーを、最大限圧縮したキューブに適用する場合、以下のテーブル例を提示することができる。
Figure 0006652490
入力受入コンポーネント115は、「顧客地理」ディメンションの「国」属性を拡張する要求を受けることができ、クエリー構築コンポーネント116は、ユーザー110が見ることを期待するテーブルを提示させるクエリーを構築することができる。
Figure 0006652490
これを「浮動」(floating)メジャーと呼ぶ。既に示したように、クエリー構築コンポーネント116は、メジャーを計算する要求を識別することができ、その計算を、構築するクエリーにおいて、関連するディメンション属性が選択された後の地点に位置付けることができる。
[0034] 他の例では、列が集計列であることができ、集計列は、その列を構築するために使用された関数を持ち込む(carry)。例えば、ユーザーがテーブル6を見て、「インターネット販売量」列を計算するために使用された関数を求めることができる。
Figure 0006652490
この関数を使用して新たな列が作られようとする場合、元の列の正確なコピーが与えられる。
[0035] 集計列は、メジャーを浮動させるために使用することができる。キューブのディメンショナリティ(dimensionality)を変化させるキューブ演算が適用されるときはいつでも(例えば、ディメンションが追加される、ディメンションが拡張される、またはディメンションが圧縮される)、正しい1組のディメンション座標に対してメジャーが再計算されるように、全てのメジャーを浮動させることができる。システム100は、メジャーをしかるべく浮動させるためにマルチステップ・プロセスを実行することができる。更に具体的には、第一に、クエリー構築コンポーネント116は、メジャー適用(measure application)を表すテーブルの集計列についての式を収集することができる。その後、クエリー構築コンポーネント116は、メジャー適用に対する集計列をテーブルから除去することができる。次いで、例えば、メジャーを追加する、メジャーを拡張する、またはメジャーを圧縮することによって、テーブルのディメンショナリティを更新することができる。メジャー適用式は、新たなディメンショナリティを組み込むために調節され、新たなメジャー適用式はテーブルに適用される。このように、メジャー適用は、キューブのディメンショナリティが調節された後に発生したかのように見えるように並び替えられる(reorder)。
[0036] 例えば、ユーザー119が、「国」ディメンション属性だけに適用される「インターネット販売量」メジャーから開始し、「都市」属性を含ませるために「顧客地理」ディメンションを拡張させる場合、以下のプロセスを実行することができる(テーブル6参照)。最初に、クエリー構築コンポーネント116は、集計列についての式を抽出することができる。
Figure 0006652490
その後、クエリー構築コンポーネント116は、集計列が除去されるように、クエリーを構築することができる。
Figure 0006652490
テーブル7は、結果的に得られたテーブルを示す(テーブル6における集計列は除去されている)。
Figure 0006652490
[0037] 続いて、ディメンション変化(dimensionality change)を適用することができる。例えば、
Figure 0006652490
この拡張をテーブル1に示す。
[0038] クエリー構築コンポーネント116は、新たなディメンショナリティを含ませるために、メジャーについての式を調節する。
Figure 0006652490
ここでは、次に、メジャーについての式は、「顧客地理」ディメンションの「都市」属性を考える(contemplate)。
[0039] 最後に、クエリー構築コンポーネント116は、新たなメジャーを適用し直すことができる。
Figure 0006652490
例えば、この結果、テーブル8をクエリー実行コンポーネント126によって生成することができる。
Figure 0006652490
[0040] メジャー列のこの「浮動」は、機能的および反復組成の下で永続性がある(sound)。言い換えると、クエリーにおいてキューブ・テーブル(したがって浮動メジャー)のディメンショナリティ(dimensionality)を変更する他のステップがあっても、チェインにおける以前のステップのいずれにも戻ることも調節することもなく、蓄積され(accumulate)続けることができる。
[0041] 更に、システム100は、キューブ・データーを操作するために使用することができるキューブ演算子もサポートする。このような演算子は、既存のリレーショナル・プリミティブを取り巻くラッパー(wrapper)とすることができるが、これらの演算子は中核の関係演算の回りにメジャーを浮動させるために他の演算を追加する。完全を期するために、全てのディメンションのクロス積から、基礎のキューブ104におけるデーターから実際にあるファクト行を選択する座標の組み合わせのみを選択するFactRowsExist関数について以下で紹介する。同様なフィルターは、関係空間に下げられるときにキューブ演算の正しいセマンティクスを保存するために使用することができる。
[0042] 最初に、ディメンションをテーブルに追加する"AddDimension"演算子について説明する。この演算子は、ファクト・テーブルの識別情報(identity)、ディメンション・テーブルの列名称の識別情報、およびディメンション・テーブルの識別情報を入力として受ける。例えば、AddDimension(factTable, dimensionColumnName, dimensionTable)は、(恐らくはフィルタリングされた)ディメンション・テーブルをファクト・テーブルに、ネスト・ジョイントを使用して組み込むことができる。この演算子は、ディメンション・テーブルがフィルタリングされた場合、キューブのディメンショナリティ(dimensionality)を変化させることができる。尚、ディメンション・テーブルのフィルタリングは、テーブルにおける行を選択する演算子(例えば、Table.SelectRows)によって遂行できることを注記することができる。以下に、演算子例の低位関係形式(lowered relational form)を明記する。
Figure 0006652490
[0043] "ExpandDimension"演算子は、既に添付された(例えば、AddDimension演算子によって)ディメンション・テーブルの属性を拡張し、キューブのディメンショナリティを変化させる。この演算子例は、ファクト・テーブル、ディメンション列名称の識別情報、および少なくとも1つの属性名称の識別情報を入力として取り込む。例えば、ExpandDimension(factTable, dimensionColumnName, {dimensionAttributeName1, ... })。この演算子の低位関係形式例を以下に明記する。
Figure 0006652490
[0044] "CollapseDimension"演算子は、以前に拡張されたディメンションの属性を圧縮し、キューブのディメンショナリティ(dimensionality)を変化させる。CollapseDimension演算子例は、ファクト・テーブル、および少なくとも1つの属性名称の識別情報を入力として取り込む。例えば、CollapseDimension(factTable, {dimensionAttributeName1, ... })。尚、ディメンションを圧縮する前に行を選択する演算子によって、ディメンション・メンバー(およびメジャー)に対してフィルターを追加できることを注記することができる。例えば、これは、ディメンションに対してスライスを作成することができ、ディメンションおよびメジャーのクロス・フィルタリング(cross-filtering)を実施するために使用することができる(例えば、「オア」(or)クローズにおいて一度に多数のディメンションを参照するフィルター)。CollapseDimension演算子の低位関係形式の一例を以下に示す。
Figure 0006652490
[0045] "AddMeasure"演算子は、メジャーをファクト・テーブルに適用し、ディメンション座標レコードは、先の例において示した形態をなすことができる。AddMeasure演算子は、入力として、factTable、列名称の識別情報、および適用されようとするメジャー関数の識別情報、例えば、AddMeasure(factTable, columnName, measureFunction)を取り込む。AddMeasure演算子の低位関係形式の一例を以下に示す。
Figure 0006652490
[0046] 以上で記した形態で表現されたクエリーは、目標キューブ104に対して実行することができるクエリーに、任意の順序で変換して供給することができる(例えば、クエリー構築コンポーネント116および/またはクエリー実行コンポーネント126によって)。以下に明記する説明は、抽象シンタックス・ツリー(AST:abstract syntax tree)および/または式ツリーに精通していることを想定しており、更に、このようなツリーの標準的形態への正規化にも精通していることも想定している。概念的に、クエリー変換のプロセスについて以下に説明する。最初に、ユーザー110(またはプログラム)は、演算をキューブおよび関係演算子に関して表現する。その後、キューブ演算は関係演算子および浮動メジャーに「下げられる」。その後、式は正規化され、演算子を並び替え、正規化式ツリー・パターンに落ち着く(settle)。次いで、正規化式ツリー・パターンは、キューブ・サーバーの予測に一致するように、例えば、クエリー実行コンポーネント126がクエリーを実行することができるように、「キューブ式」(cube expression)に「上げる」(raise)ことができる。次いで、キューブ式をサーバー特定シンタックスに変換することができる。
[0047] クエリー構築コンポーネント116によって適用することができるクエリー正規化規則の例について、これより説明する。例えば、列選択および行フィルターを、できるだけ深くまで式ツリー内にプッシュすることができる。拡張されたネスト・ジョイントをフラット・ジョイント、例えば、ExpandTableColumn(NestedJoin(x,y),{all cols of y}) -> Join(x,y)に変換することができる。追加された列の除去は、その列が決して追加されなかったかのように行われる。例えば、RemoveColumn(AddColumn(x),x) -> no-op。フラット・ジョイントの上における分類は、ある種の場合にはネスト・ジョイントに変換することができる。例えば、Group(Join(x,y), {all cols of x}, {table of y}) -> NestedJoin(x,y)。
[0048] クエリー構築コンポーネント116によって実行することができる「キューブ式」への変換に関連するアクション例について、これより説明する。低位クエリー式内(lowered query expression)において、特定の正規化パターンを検出し、「キューブ式」に変換することができる。これは、多ディメンション・クエリー言語の文法に密接に一致する式ツリーである。一例では、ディメンション・テーブルとのフラット・ジョイントが、ディメンションの属性をキューブ式に追加する。例えば、Join(factTable, {}, dimensionTable, {})は、以下のように変換する。
Figure 0006652490
[0049] 他の例では、フィルタリングされたディメンション・テーブルとのネスト・ジョイントが、ディメンション(例えば、スライサー)の属性に対抗してフィルターをキューブ式のサブクエリーにプッシュする。例えば、NestedJoin(factTable, {}, SelectRows(dimensionTable, (r) => r[City] = "Seattle"))は次のように変換する。
Figure 0006652490
[0050] 更に他の例では、メジャー適用がメジャー参照をキューブ式に追加する。例えば、
Figure 0006652490
は、
Figure 0006652490
に変換する。
[0051] 更に他の例では、行フィルター(例えば、SelectRows)を、メジャーおよびディメンションに対するフィルター式に変換することができる。つまり、例えば、Table.SelectRows(factTable, each [Internet Sales Amount] > 500)は、次のように変換する。
Figure 0006652490
[0052] 更にまた別の例では、全ての他のディメンションのグループが、残りのディメンションの「圧縮」動作に変換される。圧縮されたディメンションは、キューブ式においてサブクエリーにプッシュすることができ、他のディメンションは外部キューブ式内に残る。したがって、例えば、Table. Group(factTable, {"dim2", "dim3"}, {"collapsed diml", (rows) => rows[diml]}) は、次のように変換する。
Figure 0006652490
[0053] クエリー構築コンポーネント116は、キューブ式を、目標キューブ・サーバーの期待言語およびシンタックスに変換することができる。以上で説明したアクションを明確にするために、以下に多数の例について説明する。
例1−ディメンションの追加
[0054] 以下のクエリーは、ユーザーまたはプログラムによって提示することができる。
Figure 0006652490
クエリー構築コンポーネント116は、このクエリーを以下のように下げることができる。
Figure 0006652490
このクエリー例では、正規化は実行されず、上のクエリーは空キューブ式に変換される(実行するキューブ演算がないため)。更に、キューブ104に対して実行されるクエリーがないので、クエリーをキューブ・サーバーの言語に変換する必要はない。その結果、空テーブルが戻される。
例2−ディメンションの拡張
[0055] 以下の例では、キューブ式のフォーマットは次の通りである。
「から」(From)は入力キューブを指す。「ディメンション」(Dimensions)は拡張するディメンションを指す。「メジャー」(Measures)は、適用するメジャーであり、例において参照されるフィルターは、その述部(predicate)に基づいて、結果的に得られた行をフィルタリングする。以下のクエリーは、ユーザーまたはプログラムによって提示することができる。
Figure 0006652490
クエリー構築コンポーネント116は、このクエリーを以下のように下げることができる。
Figure 0006652490
次いで、クエリー構築コンポーネント116は、以下のように、ExpandTableColumnをSelectRowsによってプッシュし、次いでExpandTableColumn(NestedJoin)パターンをフラット・ジョイントに変換することによって、低位式(lowered expression)を正規化することができる。
Figure 0006652490
[0056] 次いで、クエリー構築コンポーネント116は、正規化された式をキューブ式に変換することができる。
Figure 0006652490
クエリー構築コンポーネント116および/またはクエリー実行コンポーネント126は、キューブ式を、キューブ104に問い合わせることをサポートされた言語に変換することができる。次いで、データー提供コンポーネント128はテーブル1をクライアント計算デバイス108に表示のために供給することができる。
例3:メジャーの追加
[0057] 以下のクエリーは、ユーザーまたはプログラムによって提示することができる。
Figure 0006652490
クエリー構築コンポーネント116は、このようなクエリーを以下のように下げることができる。
Figure 0006652490
次いで、クエリー構築コンポーネント116はこの式を、直前の例におけるように、フラット・ジョイントを有するように変換することができる。
Figure 0006652490
[0058] 次いで、クエリー構築コンポーネント116は、正規化された式をキューブ式に変換することができる。
Figure 0006652490
クエリー構築コンポーネント116および/またはクエリー実行コンポーネント126は、キューブ式を、キューブ104に対応する言語および/またはシンタックスに変換することができる。このようなクエリーの実行によって得られたテーブルをテーブル4に示す。
例4:フィルター
[0059] 以下のクエリーは、ユーザーまたはプログラムによって提示することができる。
Figure 0006652490
クエリー構築コンポーネント116は、このようなクエリーを以下のように下げることができる。
Figure 0006652490
次いで、クエリー構築コンポーネント116は以上の式を、フラット・ジョイントを有するように正規化することができる。また、クエリー構築コンポーネント116は、「顧客地理」ディメンション・テーブルとのジョイントの下にある都市ディメンション属性に対する「行」フィルターを、ここに示すように、プッシュすることができる。
Figure 0006652490
次いで、クエリー構築コンポーネント116は、正規化された式をキューブ式に変換することができる。
Figure 0006652490
クエリー構築コンポーネント116および/またはクエリー実行コンポーネント126は、以上の式を、キューブ104に問い合わせるために使用することができる言語および/またはシンタックスに変換することができる。このクエリーを実行すると、その結果以下のテーブルを得ることができる。
Figure 0006652490
例5:圧縮
[0060] 以下のクエリーは、ユーザーまたはプログラムによって提示することができる。
Figure 0006652490
尚、本明細書における以前の例にあるメジャー・フィルタは、簡潔にするために省略されていることを注記しておく。クエリー構築コンポーネント116は、このクエリーを以下のように下げることができる。
Figure 0006652490
[0061] メジャーを「浮動」させる動作の追加について注記すべきであろう。何故なら、テーブルのディメンショナリティが変化するからである。更に、新たな1組のディメンション(国)を拠り所にするために、メジャー適用が調節されたことも注記することができる。更に、圧縮されていない残りのディメンション属性によって分類するグループ動作が採用されることも注記することができる。最初に、以前の例におけるように、ExpandTableColumn(NestedJoin)をフラット・ジョイントと置き換える。
Figure 0006652490
都市ディメンションに対するフィルターは、ディメンション・テーブルにプッシュ(push down)される。
Figure 0006652490
また、除去された列はもはや必要でないので、RemoveColumns(AddColumn)対も消去される。尚、これはメジャーの「浮動」の主要部分であり、クエリーに正規化後に効率的に評価させることを注記することができる。
Figure 0006652490
[0062] 最後に、クエリー構築コンポーネント116は、Group(Join)コンビネーションをNestedJoinに正規化することができる。
Figure 0006652490
次いで、クエリー構築コンポーネント116はこの式をキューブ式に変換することができる。
Figure 0006652490
クエリー構築コンポーネント116および/またはクエリー実行コンポーネント126は、このクエリーを、キューブ104に対してクエリーを実行するために使用することができる言語および/またはシンタックスに変換することができる。以下のテーブルは、このクエリーに基づいて引き出すことができる。
Figure 0006652490
[0063] 図2〜図4は、キューブに対する実行のためのクエリーの構築に関係する方法例を示す。これらの方法は、シーケンスで実行される一連のアクトであることが示され説明されるが、これらの方法はそのシーケンスの順序には限定されないことは理解され認められよう。例えば、あるアクトは、本明細書において説明する以外の異なる順序で行うことができる。加えて、あるアクトが他のアクトと同時に実行することもできる。更に、ある場合には、本明細書において説明する方法を実施するためには、全てのアクトが必要とされない場合もある。
[0064] 更に、本明細書において説明するアクトは、1つ以上のプロセッサーによって実施すること、および/または1つまたは複数のコンピューター読み取り可能媒体上に格納することができるコンピューター実行可能命令であることも可能である。コンピューター実行可能命令は、ルーチン、サブルーチン、プログラム、実行のスレッドおよび/またはその他を含むことができる。更にまた、方法のアクトの結果は、コンピューター読み取り可能媒体に格納すること、ディスプレイ・デバイス上に表示すること、および/またはその他が可能である。
[0065] これより図2を参照すると、キューブに対して実行することができるクエリーを構築する方法例200を示す流れ図が示されている。方法200は202において開始し、204においてキューブを受ける。206において、キューブにおける少なくとも1つのディメンション属性、および少なくとも1つのメジャーの選択を受ける。例では、キューブは、場所および時間によって販売を特定するデーターを含むことができる。このような例では、販売がメジャーであり、位置および時間がディメンションとなる。位置ディメンションの属性は、都市、州、および国とすることができ、一方時間ディメンションの属性は、週、月、および年とすることができる。
[0066] 208において、少なくとも1つのディメンション属性および少なくとも1つのメジャーの選択に基づいて、クエリーを構築する。例では、選択が位置ディメンション属性「都市」についてであり、選択されたメジャーが「販売」である場合、構築されるクエリーは、キューブから都市毎に販売を引き出すように構成することができる。
[0067] 210において、クエリーに基づいてデーターを受ける。具体的には、クエリーをキューブに対して実行し、このキューブに対するクエリーの実行に基づいて生成されたデーターを受ける。このデーターは、テーブル形態で計算デバイスのディスプレイ上においてユーザーに提示することができる。212において、提示されたデーターに関する入力を受ける。このような入力は、特定の属性値に基づいて提示されたデーターをフィルタリングする要求、ディメンション属性の圧縮、ディメンション属性の拡張、ディメンション属性の追加、メジャーの追加等であってもよい。このタイプのユーザー入力の例をここで明示する。ユーザーがディメンション属性「都市」によって販売数を取得した例を続けると、ユーザーは、文字「A」で始まる都市から販売数を提供されることを望むかもしれない。つまり、入力は、入力文字「A」に基づいて都市をフィルタリングする要求である可能性がある。他の例では、ディメンション属性「位置」を圧縮するために、ユーザーは、都市による販売数ではなく、州による販売数が提供されることを望むかもしれない。つまり、212において受ける入力は、「都市」から「州」にディメンション属性「位置」を圧縮する要求であってもよい。更に他の例では、ディメンション属性「位置」を拡張するために、ユーザーが、都市毎の販売数ではなく、選挙区(voting ward)毎の販売数が提供されることを望むかもしれない。したがって、212においてうける入力は、ディメンション属性「位置」を「都市」から「選挙区」に拡張する要求であってもよい。更にまた他の例では、ユーザーは、販売データーと共に利益情報を提供されることを望むかもしれない。ユーザーは、ユーザーが都市毎の販売および年毎の利益の双方が提供されるように、利益を戻すことを要求することもできる。これは、メジャーを追加する例である。加えてまたは代わりに、ユーザーはメジャーを削除することを望むのでもよい。
[0068] 214において、212において受けた入力に基づいてクエリーを更新する。216において、214において更新したクエリーに基づいて、更に他のデーターを受ける。即ち、キューブに対して更新クエリーを実行し、このような実行の結果を受けて表示画面上においてユーザーに提示する。したがって、ユーザーは、データーを見て、そのデーターに対して実行すべき少なくとも1つの動作を識別することによって、クエリーを構築する。このプロセスは、ユーザーが望むデーターが得られるまで継続することができる。218において、ユーザーが追加入力を供給しているか否かについて判定を行う。ユーザーが追加の入力を供給する場合、本方法は212に戻り、それ以外の場合本方法は220において終了する。
[0069] これより図3を参照すると、キューブに対する実行のためのクエリー構築を容易にする方法例300が示されている。方法300は、302において開始し、304においてキューブを受ける。306において、少なくとも1つのディメンション属性(例えば、ディメンション「時間」に対する属性「日」)および少なくとも1つのメジャーの選択を受ける。308において、少なくとも1つのディメンション属性および少なくとも1つのメジャーの選択に基づいて、クエリーを構築する。310において、クエリーに基づいてデーターを受ける。前述のように、308において構築されたクエリーは、キューブに対して実行することができ、その結果、ディスプレイ上にテーブル形態で提示することができるデーターが供給される。312において、テーブル形態データーで表された少なくとも1つのディメンションを圧縮または拡張する要求を受ける。ディメンションを圧縮するとは、更に粗い属性に対して粒度が更に粗い座標を生成することを意味し、一方ディメンションを拡張するとは、粒度が更に高い属性に対して粒度が更に細かい座標を生成することを意味する。314において、少なくとも1つのディメンションを圧縮または拡張する要求に基づいて、クエリーを改訂する。
[0070] 加えて、少なくとも1つのメジャーの計算は、例えば、しかるべきディメンション属性に対して属性値が引き出される後までメジャーが計算されないように、このクエリーでは「浮動」になっている。これは、ユーザーが、クエリー構築の以前のステップにおいて、メジャーを計算することを要求したという事実にも拘わらず(例えば、ディメンション属性の拡張または圧縮を要求する前)、自動的に行われる。メジャー計算の浮動は、メジャー計算の要求を識別し、メジャー計算がディメンション属性を識別した後に行われるように、クエリーにおけるメジャー計算コマンドをある位置に移動させることによって、引き継ぐことができる。
[0071] 尚、このアクトは、例えば、コマンドをクエリーの終端に追加することとは異なることを注記しておく。例えば、初期のクエリー例が以下の形態を有するとしてもよい。
ディメンション=時間、属性=日、メジャー=販売
このようなクエリーに基づいて引き出されるデーターは、日毎の販売であるとすることができる。このクエリーが定式化し直されると、クエリーは次の形態を有することができる。
ディメンション=時間、属性=日、属性=週、メジャー=販売。
このように、属性の選択は、メジャー計算コマンドよりも前に置かれ、メジャー計算は「浮動」となる。この場合も、これは、次のように、属性選択をクエリーの終端に添付するのとは対照的である。ディメンション=時間、属性=日、メジャー=販売、属性=週。方法300は316において完了する。
[0072] これより図4を参照すると、キューブの融合を容易にする方法例400が示されている。方法400は402において開始し、404において、第1ソース(任意に、第1フォーマットの)からの第1キューブをを第2ソースからの(そして任意に第2フォーマットの)第2キューブと融合する要求を受ける。406において、第1キューブを第2キューブと融合して融合キューブを生成する。408において、この融合キューブに対してクエリーを実行する。このように、異なるデーター・ソースからのキューブを融合し、1つのクエリーをこの融合キューブに対して実行することができる。方法400は、410において完了する。
[0073] これより図5を参照すると、キューブに対して実行するクエリーの構築を容易にするグラフィカル・ユーザー・インターフェース例500が示されている。グラフィカル・ユーザー・インターフェース500は、キューブ(例えば、キューブ104)を表すグラフィカル・アイコン502を含む。グラフィカル・アイコン502が選択されたことに応答して、複数のアイコン504〜512を提示することができる。アイコン504〜512は、アイコン502によって表されたキューブにおけるオブジェクトを表す。例では、グラフィカル・アイコン506は、ビジネスの顧客に関係するオブジェクトを表すことができる。グラフィカル・アイコン506を選択すると、グラフィカル・アイコン514および516を提示させることができ、グラフィカル・アイコン514および516はキューブ104におけるディメンションを表す。グラフィカル・アイコン516を選択すると、複数のグラフィカル・アイコン518〜524を提示させることができ、このようなグラフィカル・アイコン518〜524は、アイコン516によって表されたディメンションのそれぞれの属性を表す。グラフィカル・ユーザー・インターフェース500においてアイコンと対応付けて示される数値は、アイコンの下にあるオブジェクトの数をユーザーに示すことができる。例えば、アイコン516によって表されたディメンションは4つの属性を有し、数値(4)がアイコン516に図式的に関係付けて示されている。ユーザー110は、オブジェクト全体をナビゲートし、ユーザー110に関心があるキューブ104のディメンション属性およびメジャーを選択することができる。
[0074] これより図6を参照すると、他のグラフィカル・ユーザー・インターフェース例600が示されており、グラフィカル・ユーザー・インターフェース600は、ユーザー110によるある種のディメンション属性およびメジャーの選択を図示する。アイコン512の選択を受けたことに応答して、複数のアイコン602および604が示される。これらは、メジャーの2つの分類を識別する(それぞれ、購入に関するメジャーおよび製品に関するメジャー)。アイコン602が選択されたことに応答して、複数の選択可能なアイコン606〜610が提示され、アイコン606〜610はそれぞれメジャーを表す。図6において「購入」分類の下に示されているメジャー例は、「注文個数」、「受領個数」、および「コスト」を含む。更に、アイコン508が選択されたことに応答して、アイコン612および614が提示され、アイコン614が選択されたことに応答して、アイコン616が示される。アイコン612および614は、製品に関するディメンション(例えば、「製品ID」および「カテゴリー名」)を表し、アイコン616は、アイコン614によって表されるディメンション「カテゴリー名」に対する属性「カテゴリー名」を表す。
[0075] グラフィカル・ユーザー・インターフェース例600において示すように、アイコン606が選択されており、したがって商品の注文個数(例えば、「注文個数」)を識別するメジャーが選択される。加えて、ディメンション「顧客名」の属性「都市」および「国」、ならびにディメンション「カテゴリー名」の属性「カテゴリー名」も選択されている。一旦ユーザー110が所望のディメンション属性およびメジャーを選択したなら、ユーザー110は「ロード」ボタン618を選択することができる。入力受入コンポーネント115(図1)は、ディメンション属性およびメジャーの選択を受けることができ(例えば、「ロード」ボタン618が選択されたことに応答して)、クエリー構築コンポーネント116は、入力受入コンポーネント115が受けた入力に基づいて、クエリーを構築する。サーバー計算デバイス106はこのクエリーを受信し、クエリー実行コンポーネント126はキューブ104に対してこのクエリーを実行する。データー提供コンポーネント128は、キューブ104に対するクエリーの実行に基づいて、戻されたデーターを受信し、このデーターをクライアント計算デバイス108に送信し、クライアント計算デバイス108において、データー117としてメモリー112に入れられる。
[0076] これより図7を参照すると、ワークシートを含むグラフィカル・ユーザー・インターフェース例700が示されており、提示コンポーネント120が、構築されたクエリーに基づいて引き出されたデーター117を、テーブル形態で提示する。グラフィカル・ユーザー・インターフェース700は、選択されたそれぞれのディメンション属性に対する列、およびディメンション属性の値のメジャーに対する行を含むテーブル形式データー702を含む。つまり、グラフィカル・ユーザー・インターフェース600を参照して先に説明したユーザー選択例を続けると、テーブル形式データー702は、ディメンション「顧客名」に対する属性「都市」を表す第1列704、ディメンション「顧客名」に対する属性「国」を表す第2列706、およびディメンション「カテゴリー名」に対する属性「カテゴリー名」を表す第3列708を含む。第4列710は、メジャー「注文個数」を表し、第4列710内の値は、列704、706、および708に示すそれぞれの属性を有する製品の注文個数を表す。
[0077] これより図8を参照すると、クエリーの構築および編集を容易にするクエリー・エディター・ツールのグラフィカル・ユーザー・インターフェース例800が示されている。例えば、図7に示したワークシートにおいてデーターを提示されたことに応答して、ユーザー110は、異なるデーターをユーザー110に提示させるクエリーを構築することを望むのでもよい。グラフィカル・ユーザー・インターフェース800は、グラフィカル・ユーザー・インターフェース700に示したデーターを得るために実行されたステップのリストを明示するフィールド802を含む。フィールド804は、フィールド802に示すステップに基づいて、キューブ104から引き出されたデーターを示す。例えば、フィールドにおける「ソース」ステップは、アイコン502によって表されたキューブ104の選択を表す。フィールド802に示すステップ "expand diml"は、ディメンション「顧客名」のディメンション属性「都市」および「国」の選択を表す。ステップ "expand dim2"は、ディメンション「カテゴリー名」のディメンション属性「カテゴリー名」の選択を表す。本明細書において説明するように、フィールド802に示すステップは選択可能であり、フィールド804に提示されるデーターは、異なるステップが選択されると変化する。
[0078] これより図9を参照すると、クエリー・エディター・ツールの他のグラフィカル・ユーザー・インターフェース例900が示されている。この例では、ユーザー110は、フィールド802に図示されたステップのリストからステップ"expand diml"を選択した。ステップ"expand diml"が選択されたことに応答して、ビジネス・インテリジェンス(BI)アプリケーションは、ディメンション「顧客名」からのディメンション属性「都市」および「国」に対する属性値は示されるが、ディメンション属性「カテゴリー名」およびメジャーに対する属性値はフィールド804に図示されないように、フィールド804に示されるコンテンツを更新することができる。
[0079] これより図10を参照すると、クエリー・エディター・ツールの他のグラフィカル・ユーザー・インターフェース例1000が示されている。ここでは、ユーザー110は、フィールド802からクエリーを構築するために使用される第3ステップ("expand dim2")を選択し、最初の3つのステップに基づいて(しかし"add measure 1”ステップを除く)クエリーが構築されるときにデーターを提示するために、フィールド804のコンテンツが更新される。即ち、クエリー構築コンポーネント116は、最初の3つのステップに基づいてクエリーを構築し、クエリー実行コンポーネント126はこのようなクエリーをキューブ104に対して実行する。第3ステップはカテゴリー名の拡張に関係するので、第3コラム708が提示される。図9および図10が提示されたのは、本明細書において説明したステップ毎の手法においてクエリーを構築および/または編集するときに、ユーザー110が、新たなクエリー・ステップを挿入するため、既に実行されたクエリー・ステップを変更するため等で逆方向に進めることを例示するためである。
[0080] これより図11を参照すると、クエリー・エディター・ツールの他のグラフィカル・ユーザー・インターフェース例1100が示されており(present)、ここでは、ユーザー110はクエリー構築ステップ"add measure 1"を選択している。これは、メジャー「注文個数」の選択を表す。フィールド804のコンテンツは、前述のステップが選択されたことに応答して更新され、ディメンション属性の属性値に対するメジャー値を提示する。この場合も、ユーザーは、フィールド802に示すステップの間にクエリー構築ステップを挿入することができ、フィールド802に示すステップからクエリー構築ステップを削除すること、フィールド802に示される最後のクエリー構築ステップの後にクエリー構築ステップを追加すること等ができる。
[0081] 図12を参照すると、クエリー・エディター・ツールによって構築されたクエリーのテキスト・ベース・バージョンを説明するために使用することができるグラフィカル・ユーザー・インターフェース例1200が表示されている。図12に示すテキストを編集することによって、ユーザー110は、テキストを挿入する、テキストを除去する等によって、構築したクエリーを変更することを選択することができる。テキスト・ベース・エディタは、特に、ビジネス・インテリジェンス・アプリケーション112によって採用されるクエリー言語に精通したユーザーに非常に適しているであろう。
[0082] これより図13を参照すると、ディメンション属性の圧縮を例示するグラフィカル・ユーザー・インターフェース例1300が示されている。図11に示したように、メジャー「注文個数」が、ディメンション属性「都市」および「国」に対するディメンション「顧客名」に関して計算され、ディメンション属性「都市」はディメンション属性「国」よりも粒度が細かい。図13に戻り、「都市」から「国」にディメンションを圧縮すると、メジャー「注文個数」の値が、ディメンション属性「国」に巻き上げられる(roll up)。これは、フィールド802における"collapse diml "ステップによって表されている。
[0083] 本明細書において説明したステップ毎の手法を使用したクエリーの構築は、 ディメンション属性を圧縮または拡張するときにおいて重要なプロセスとなる。何故なら、ディメンション属性を圧縮または拡張する機能は、以前のクエリー構築ステップと共に順次適用できないからである。クエリー構築コンポーネント116は、先に説明したように、メジャーの計算をクエリー式の後ろに「浮動させる」ことによって、クエリーを構築する。リレーショナル・データーベースの設定では、この手法に類似するものはない。即ち、リレーショナル・データーベースの設定において列をテーブルから除去しても、行が除去されることにはならない。
[0084] この例を続けると、クエリー構築コンポーネント116は、最初に、識別されたディメンション属性を引き出す第1式を定義し、次いで識別されたディメンション属性の属性値に対して識別されたメジャーを計算する第2式を定義することによって、クエリーを構築する("collapse diml"ステップの前)。クエリー構築コンポーネント116が、属性ディメンションを圧縮する第3式を定義することを試みる場合、第3関数は第1および第2関数の後に実行し(例えば、フィールド802におけるステップの順序にマッピングする)、メジャーは、所望の(粗い)ディメンション属性「国」に対してではなく、粒度が細かいディメンション属性(「都市」)に対して計算され続ける。圧縮および拡張の場合、線形に式を追加する代わりに、メジャーを計算するための式は、所望の属性ディメンションが識別された後にこの式が実行されるように、クエリーの外部に浮動させられる。フィールド804に示す結果的に得られたテーブル1302は、2つの列を含む。即ち、ディメンション「顧客名」に対するディメンション属性「国」に対応する第1列1304、および第1列1304に示す属性値に対して計算されたメジャー値を識別する第2列1306である。
[0085] これより図14を参照すると、他のグラフィカル・ユーザー・インターフェース例1400が示されている(present)。ユーザー110がフィールド802において以前のクエリー構築ステップ(例えば、"add measurel"ステップ)を選択したことを確認することができる。つまり、例えば、クエリーがディメンション属性「都市」をディメンション属性「国」に圧縮させる前に、ユーザー110がクエリーを変更することを望む場合もあり得る。例えば、ユーザー110が、第1列704における第1の値を有する特定のセル1402を選択するのでもよい。これは、ポップアップ・ウィンドウ1404をユーザー110に提示させることができる。ポップアップ・ウィンドウ1404は、テーブル形式データー702からの結果をフィルタリングするための選択可能な選択肢を含むことができる。例えば、ユーザー110は、第1の値を有するテーブル形式データー702における行をいずれもテーブル形式データー702からフィルタリングしたいことを示すのでもよい。他の例では、ユーザー110が、テーブル形式データー702において、他のフィルター選択肢の中でもとりわけ、第1の値を有する行だけを供給して欲しいことを示すのでもよい。ポップアップ・ウィンドウ1404からユーザー110によって選択されたフィルター動作は、次に、フィールド802におけるクエリー構築プロセスにおける1ステップとして追加することができ、選択されたステップの直後に(例えば、"add measure 1"の後であるが、"collapse diml"ステップの前)提示することができる。クエリー構築コンポーネント116は、ユーザー110がフィルターを選択したことの指示を入力受入コンポーネント114が受けたことに応答して、構築されたクエリーを更新することができる。
[0086] 図15を参照すると、ユーザー110は、次に、フィールド802に示すクエリー・ステップの内最後のステップ(例えば、"collapse diml"ステップ)を選択することができる。これは、クエリー構築コンポーネント116に、改訂されたクエリーをクエリー実行コンポーネント126に送信させることができ、クエリー実行コンポーネント126は、改訂されたクエリーをキューブ104に対して実行する。データー提供コンポーネント128はデーター117を戻し、データー117はクライアント計算デバイス108のメモリー112に保持される。提示コンポーネント120は、フィールド804内にデーター117をテーブル形式フォーマットで提示する。ここで、テーブル形式データー1502は、クエリーを実行することによって戻されたデーターを例示する。例えば、セル1504における値は、(図13に示したセルにおける対応する値と比較すると)クエリーにフィルタリング・ステップが含まれたことによって更新されている。
[0087] 図16を参照すると、テキスト・ベース・クエリー・エディター・ツールの他のグラフィカル・ユーザー・インターフェース例1600が示されている。グラフィカル・ユーザー・インターフェース1600は、以上で説明したようにして構築されたクエリーのテキスト表現を示す。
[0088] これより、種々の例について説明する。
[0089] 例1:計算システムは、プロセッサーと、メモリーとを含む。メモリーは、プロセッサーによって実行されるビジネス・インテリジェンス(BI)アプリケーションを含む。ビジネス・インテリジェンス(BI)アプリケーションは、クエリーの以前のバージョンに対する増分変更に基づいてクエリーを構築するように構成され、クエリーはクエリー・ステップのシーケンスとして表現され、このクエリー・ステップのシーケンスにおける各ステップは、増分変更におけるそれぞれの増分変更に対応する。ビジネス・インテリジェンス(BI)アプリケーションは、更に、クエリーに基づいてデーター・キューブからテーブル形式データーを引き出すように構成される。
[0090] 例2:例1による計算システムにおいて、ビジネス・インテリジェンス(BI)アプリケーションがクエリー構築コンポーネントを含む。クエリー構築コンポーネントは、増分変更を受け、この増分変更、および以前に受けた増分変更のシーケンスに基づいてクエリーを構築する。クエリー構築コンポーネントは、クエリーを複数の関係演算子として表現する。
[0091] 例3:例2による計算システムにおいて、クエリー構築コンポーネントが、複数の演算子を既定の式ツリー・パターンに正規化する。
[0092] 例4:例1による計算システムにおいて、ビジネス・インテリジェンス(BI)アプリケーションが、クエリーに対する増分変更を受けるクエリー構築コンポーネントを含み、クエリーに対する増分変更が、キューブにおけるディメンションを拡張する要求、またはキューブにおけるディメンションを圧縮する要求の内の1つであり、クエリー構築コンポーネントが、増分変更に基づいてクエリーを構築する。
[0093] 例5:例4による計算システムにおいて、クエリーが第2増分変更を含み、第2増分変更が、ディメンションに対するメジャーを計算する要求であり、クエリー構築コンポーネントが、ディメンションの属性が選択された後にメジャーが計算されるように、クエリーを構築する。
[0094] 例6:例5による計算システムにおいて、第2増分変更が前述の増分変更の前に行われる。
[0095] 例7:例1から6のいずれかによる計算システムであって、更に、データー・キューブから引き出されたテーブル形式データーをディスプレイ上に提示する提示コンポーネントを含み、提示コンポーネントが更にクエリーをディスプレイ上に提示する。
[0096] 例8:例7による計算システムにおいて、提示コンポーネントがクエリー・ステップのシーケンスをディスプレイ上に提示する。
[0097] 例9:例8による計算システムにおいて、ビジネス・インテリジェンス(BI)アプリケーションが、前述のクエリー・ステップにおける以前のクエリー・ステップの選択を受ける入力受入コンポーネントを含み、入力受入コンポーネントが選択を受けたことに応答して、提示コンポーネントがデーター・キューブからの第2テーブル形式データーをディスプレイ上に提示し、第2テーブル形式データーが、前述のクエリー・ステップにおける以前のステップにおいて、クエリーに基づいて引き出される。
[0098] 例10:例9による計算システムにおいて、入力受入コンポーネントが以前のクエリー・ステップの選択を受けた後に、入力受入コンポーネントが中間増分変更を受け、クエリー構築コンポーネントが、以前のクエリー・ステップの後であり、かつクエリー・ステップのシーケンスにおける最後のクエリー・ステップの前に、追加のクエリー・ステップを追加するためのクエリーを構築する。
[0099] 例11:例1〜10のいずれかによる計算システムにおいて、ウェブ・ブラウザーによってアクセス可能なサーバー計算デバイスが含まれる。
[00100] 例12:コンピューター・プロセッサーによって実行される方法であって、この方法が、テーブル形式データーをディスプレイ上に提示するステップであって、テーブル形式データーが、以前に発行されたクエリー・ステップに基づいてデーター・キューブから引き出される、ステップと、後続のクエリー・ステップを受けるステップと、以前に発行されたクエリー・ステップおよび後続のクエリー・ステップに基づいてクエリーを構築するステップと、クエリーに基づいてデーター・キューブから更新テーブル形式データーを引き出すステップと、更新テーブル形式データーを引き出したことに応答して、更新テーブル形式データーをディスプレイ上に提示するステップとを含む。
[00101] 例13:例12による方法において、以前に発行されたクエリー・ステップが、ディメンションの第1属性に対するメジャーを計算させ、後続のクエリー・ステップが、このディメンションの第2属性に対するメジャーを計算させる。
[00102] 例14:例13による方法であって、更に、後続のクエリー・ステップを受けたことに応答して、クエリーにおいてディメンションの第2属性が指定された後に、ディメンションの第2属性に対してメジャーが計算されるように、クエリーを構築するステップを含む。
[00103] 例15:例12〜14のいずれかによる方法であって、更に、クエリー・ステップのシーケンスをディスプレイ上に提示するステップを含み、クエリー・ステップのシーケンスが、以前に発行されたクエリー・ステップと、後続のクエリー・ステップとを含み、クエリー・ステップのシーケンスにおける各クエリー・ステップが選択可能である。
[00104] 例16:例15による方法であって、更に、クエリー・ステップのシーケンスにおけるクエリー・ステップの選択を受けるステップと、クエリー・ステップのシーケンスにおけるクエリー・ステップの選択に基づいてクエリーを構築するステップと、選択されたクエリー・ステップまでのクエリーに対応するテーブル・テーターを提示するステップとを含む。
[00105] 例17:例12〜16による方法において、後続のクエリー・ステップが、少なくとも1つのディメンションを圧縮または拡張する要求であり、この方法は、少なくとも1つのディメンションを圧縮または拡張する要求に基づいてクエリーを改訂するステップを含む。
[00106] 例18:例12〜17のいずれかによる方法において、クエリーを構築するステップが、以前のクエリー・ステップおよび後続のクエリー・ステップを複数の関係演算子に変換するステップと、既定のパターンに基づいて複数の関係演算子を正規化するステップとを含む。
[00107] 例19:例12〜18のいずれかによる方法であって、更に、クエリーに対する多数の増分変更を受けるステップと、増分変更毎に、クエリーを構築するステップと、それぞれの増分変更に基づいてテーブル形式データーを引き出すステップとを含む。
[00108] 例20:命令を含むコンピューター読み取り可能記憶媒体であって、プロセッサーによって命令が実行されると、プロセッサーに以下のアクトを実行させ、これらのアクトが、クエリーをうけるアクトと、クエリーを受けたことに応答して、データー・キューブからテーブル形式データーを引き出すアクトと、データー・キューブからテーブル形式データーを引き出したことに応答して、テーブル形式データーおよびクエリー・ステップのシーケンスをディスプレイ上に提示するアクトであって、クエリー・ステップのシーケンスが、クエリーを表し、テーブル形式データーが、データー・キューブにおけるディメンションの第1属性に対して計算されたメジャーを含む、アクトと、クエリーに対する増分変更を受けるアクトであって、増分変更が、データー・キューブにおけるディメンションの第2属性に対してメジャーを計算する要求である、アクトと、クエリーに対する増分変更を受けたことに応答して、クエリーに対する増分変更に基づいて第2テーブル形式データーを引き出すアクトであって、第2テーブル形式データーがディメンションの第2属性に対して計算されたメジャーを含む、アクトとを含む。
[00109] 例21:コンピューター実装システムであって、ディスプレイ上にテーブル形式データーを提示する手段であって、テーブル形式データーが、以前に発行されたクエリー・ステップに基づいてデーター・キューブから引き出される、手段と、後続のクエリー・ステップを受ける手段と、以前に発行されたクエリー・ステップおよび後続のクエリー・ステップに基づいてクエリーを構築する手段と、クエリーに基づいてデーター・キューブから更新テーブル形式データーを引き出す手段と、更新テーブル形式データーを引き出したことに応答して、更新テーブル形式データーをディスプレイ上に提示する手段とを含む。
[00110] これより図17を参照すると、本明細書において開示したシステムおよび方法にしたがって使用することができる計算デバイス例1700の上位図が示されている。例えば、計算デバイス1700は、データー・キューブに対して実行するためのクエリーの構築および改訂をサポートするシステムにおいて使用されるのでもよい。他の例として、計算デバイス1700は、キューブから抽出されたデーターの提示をサポートするシステムにおいて使用することができる。計算デバイス1700は、メモリー1704に格納された命令を実行する少なくとも1つのプロセッサー1702を含む。命令は、例えば、先に論じた1つ以上のコンポーネントによって実行されると説明した機能を実現するための命令、または先に説明した方法の内1つ以上を実現するための命令であってもよい。プロセッサー1702は、システム・バス1706を介してメモリー1704にアクセスすることができる。実行可能命令を格納することに加えて、メモリー1704はファクト・テーブル、ディメンション・テーブル、階層情報等も格納することができる。
[00111] 加えて、計算デバイス1700は、システム・バス1706を介してプロセッサー1702によってアクセス可能であるデーター・ストア1708も含む。データー・ストア1708は、実行可能命令、キューブ、キューブのスライス等を含むことができる。また、計算デバイス1700は、外部デバイスが計算デバイス1700と通信することを可能にする入力インターフェース1710も含む。例えば、入力インターフェース1710は、外部計算デバイスから、ユーザー等から命令を受けるために使用することができる。また、計算デバイス1700は、計算デバイス1700を1つ以上の外部デバイスとインターフェースする出力インターフェース1712も含む。例えば、計算デバイス1700は、テキスト、画像等を、出力インターフェース1712を介して表示することができる。
[00112] 尚、入力インターフェース1710および出力インターフェース1712を介して計算デバイス1700と通信する外部デバイスは、ユーザーが対話処理することができる実質的にあらゆるタイプのユーザー・インターフェースを設ける環境に含むことができると考えられる。ユーザー・インターフェース・タイプの例には、グラフィカル・ユーザー・インターフェース、自然ユーザー・インターフェース等が含まれる。例えば、グラフィカル・ユーザー・インターフェースは、キーボード、マウス、リモコン等のような入力デバイス(1つまたは複数)を使用するユーザーからの入力を受け入れ、ディスプレイのような出力デバイス上に出力を供給するのでもよい。更に、自然ユーザー・インターフェースは、ユーザーが、キーボード、マウス、リモコン等のような入力デバイスによって強いられる制約を受けないように、計算デバイス1700と対話処理することを可能にするのでもよい。逆に、自然ユーザー・インターフェースは、音声認識、タッチおよびスタイラス認識、画面上および画面近く双方におけるジェスチャ認識、エア・ジェスチャ、頭部および眼球追跡、声および発話(voice and speech)、視覚、接触、ジェスチャ、機械インテリジェンス等に頼るのでもよい。
[00113] 加えて、1つのシステムとして例示したが、計算デバイス1700は分散型システムであってもよいことは理解されよう。つまり、例えば、様々なデバイスがネットワーク接続を介して通信することができ、計算デバイス1700によって実行されると説明したタスクを、集合的に実行するのでもよい。
[00114] 本明細書において説明した種々の機能は、ハードウェア、ソフトウェア、またはこれらの任意の組み合わせで実現することができる。ソフトウェアで実現する場合、機能は、コンピューター読み取り可能媒体上の1つ以上の命令またはコードとして格納することまたは送信することができる。コンピューター読み取り可能媒体は、コンピューター読み取り可能記憶媒体を含む。コンピューター読み取り可能記憶媒体は、コンピューターによってアクセスすることができる任意の入手可能な記憶媒体とすることができる。一例として、そして限定ではなく、このようなコンピューター読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク・ストレージ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは命令またはデーター構造の形態で所望のプログラム・コードを搬送または格納するために使用することができ、コンピューターによってアクセスすることができる任意の他の媒体を含むことができる。ディスク(disk and disc)は、本明細書において使用する場合、コンパクト・ディスク(CD)、レーザ・ディスク、光ディスク、ディジタル・バーサタイル・ディスク(DVD)、フロッピー・ディスク、ブルーレイ・ディスク(BD)を含み、ディスク(disk)は通常データーを磁気的に再生し、ディスク(disc)は通常レーザを使用してデーターを光学的に再生する。更に、伝搬信号は、コンピューター読み取り可能記憶媒体の範囲には含まれない。また、コンピューター読み取り可能媒体は、1つの場所から他の場所へのコンピューター・プログラムの転送を容易にする任意の媒体を含む通信媒体も含む。例えば、接続は通信媒体となることができる。例えば、ソフトウェアがウェブサイト、サーバー、または他の離れたソースから、同軸ケーブル、光ファイバ・ケーブル、撚り線対、ディジタル加入者線(DSL)、あるいは赤外線、無線、およびマイクロ波のようなワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバ・ケーブル、撚り線対、DSL、または赤外線、無線、およびマイクロ波のようなワイヤレス技術は、通信媒体の定義に含まれる。以上のものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
[00115] あるいは、または加えて、本明細書において説明した機能は、少なくとも部分的に、1つ以上のハードウェア・ロジック・コンポーネントによって実行することができる。例えば、そして限定ではなく、使用することができる実証的なタイプのハードウェア・ロジック・コンポーネントには、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定プログラム集積回路(ASIC)、特定プログラム標準的製品(ASSP)、システム・オン・チップ・システム(SOC)、複合プログラマブル・ロジック・デバイス(CPLD)等が含まれる。
[00116] 以上で説明したことには、1つ以上の実施形態の例が含まれる。勿論、以上のデバイスまたは方法の着想可能なあらゆる変更(modification)および変形(alteration)を、先に述べた態様を説明する目的で記載することは不可能であるが、種々の態様には多くの更に他の変更および置換が可能であることを、当業者は認めることができよう。したがって、説明した態様は、添付する請求項の主旨および範囲に該当する、このような変形、変更、および変種(variation)を全て包含することを意図している。更に、「含む」(includes)という用語が詳細な説明または特許請求の範囲において使用される限りにおいて、このような用語は、「備える」(comprising)という用語が請求項において移行性単語として採用されるときに「備える」が解釈されるときと同様に、包含的であることを意図している。

Claims (9)

  1. 計算システムであって、
    プロセッサーと、
    前記プロセッサーによって実行されるビジネス・インテリジェンス(BI)アプリケーションを含むメモリーと、
    を含み、前記ビジネス・インテリジェンス(BI)アプリケーションが、
    クエリーを、当該クエリーの以前のバージョンに対する増分変更に基づいて構築し、前記クエリーがクエリー・ステップのシーケンスとして表され、前記クエリー・ステップのシーケンスにおける各ステップが、前記増分変更におけるそれぞれの増分変更に対応し、
    前記クエリーに基づいて、データー・キューブからテーブル形式データーを引き出す、
    ように構成される、計算システムにおいて、
    前記ビジネス・インテリジェンス(BI)アプリケーションが、前記クエリーに対する増分変更を受けるクエリー構築コンポーネントを含み、前記クエリーに対する前記増分変更が、前記キューブにおけるディメンションを拡張する要求または前記キューブにおける前記ディメンションを圧縮する要求の内1つであり、前記クエリー構築コンポーネントが、前記増分変更に基づいて前記クエリーを構築し、
    前記クエリーが第2増分変更を含み、前記第2増分変更が、ディメンションに対するメジャーを計算する要求であり、前記クエリー構築コンポーネントが、前記ディメンションの属性が選択された後に前記メジャーが計算されるように、前記クエリーを構築し、
    前記ディメンションに対するメジャーを計算する要求は、前記クエリー構築コンポーネントによって、前記キューブにおけるディメンションを拡張する要求または前記キューブにおける前記ディメンションを圧縮する要求より前に受信されている、
    ことを特徴とする計算システム。
  2. 請求項1記載の計算システムにおいて、前記ビジネス・インテリジェンス(BI)アプリケーションが、クエリー構築コンポーネントを含み、前記クエリー構築コンポーネントが、増分変更を受け、前記増分変更および以前に受けた増分変更のシーケンスに基づいて前記クエリーを構築し、前記クエリー構築コンポーネントが、前記クエリーを複数の関係演算子として表現する、計算システム。
  3. 請求項1記載の計算システムであって、更に、前記データー・キューブから引き出されたテーブル形式データーをディスプレイ上に提示する提示コンポーネントを含み、前記提示コンポーネントが更に前記クエリーを前記ディスプレイ上に提示する、計算システム。
  4. 請求項3記載の計算システムにおいて、前記提示コンポーネントが、前記クエリー・ステップのシーケンスを前記ディスプレイ上に提示する、計算システム。
  5. 請求項4記載の計算システムにおいて、前記ビジネス・インテリジェンス(BI)アプリケーションが、前記クエリー・ステップにおける以前のクエリー・ステップの選択を受ける入力受入コンポーネントを含み、前記入力受入コンポーネントが前記選択を受けたことに応答して、前記提示コンポーネントが、前記データー・キューブからの第2テーブル形式データーを前記ディスプレイ上に提示し、前記第2テーブル形式データーが、前記クエリー・ステップにおける前記以前のステップにおいて前記クエリーに基づいて引き出される、計算システム。
  6. 請求項5記載の計算システムにおいて、前記入力受入コンポーネントが、前記入力受入コンポーネントが前記以前のクエリー・ステップの選択を受けた後に、中間増分変更を受け、前記クエリー構築コンポーネントが、前記以前のクエリー・ステップの後でありかつ前記クエリー・ステップのシーケンスにおける最後のクエリー・ステップの前に、他のクエリー・ステップを追加するように前記クエリーを構築する、計算システム。
  7. コンピューター・プロセッサーによって実行される方法であって、
    テーブル形式データーをディスプレイ上に提示するステップであって、前記テーブル形式データーが、以前に発行されたクエリー・ステップに基づいてデーター・キューブから引き出される、ステップと、
    後続のクエリー・ステップを受けるステップと、
    前記以前に発行されたクエリー・ステップおよび前記後続のクエリー・ステップに基づいてクエリーを構築するステップと、
    前記クエリーに基づいて前記データー・キューブから更新テーブル形式データーを引き出すステップと、
    前記更新テーブル形式データーを引き出したことに応答して、前記更新テーブル形式データーを前記ディスプレイ上に提示するステップと、
    を含む、方法において、
    前記以前に発行されたクエリー・ステップが、ディメンションの第1属性に対してメジャーを計算させ、
    更に、
    前記後続のクエリー・ステップを受けたことに応答して、前記ディメンションの第2属性が前記クエリー内において指定された後に、前記ディメンションの第2属性に対して前記メジャーが計算されるように、前記クエリーを構築するステップを、
    含むことを特徴とする方法。
  8. 請求項7記載の方法において、前記後続のクエリー・ステップが、少なくとも1つのディメンションを圧縮または拡張する要求であり、前記方法が、前記少なくとも1つのディメンションを圧縮または拡張する前記要求に基づいて、前記クエリーを改訂するステップを含む、方法。
  9. 請求項7記載の方法において、前記クエリーを構築するステップが、
    前記以前のクエリー・ステップおよび前記後続のクエリー・ステップを複数の関係演算子に変換するステップと、
    既定のパターンに基づいて、前記複数の関係演算子を正規化するステップと、
    を含む、方法。
JP2016541673A 2013-12-20 2014-12-18 多ディメンション・データー構造に対する実行のためのクエリー構築 Active JP6652490B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361919349P 2013-12-20 2013-12-20
US61/919,349 2013-12-20
US14/325,642 2014-07-08
US14/325,642 US9619581B2 (en) 2013-12-20 2014-07-08 Constructing queries for execution over multi-dimensional data structures
PCT/US2014/071004 WO2015095429A1 (en) 2013-12-20 2014-12-18 Constructing queries for execution over multi-dimensional data structures

Publications (2)

Publication Number Publication Date
JP2017500664A JP2017500664A (ja) 2017-01-05
JP6652490B2 true JP6652490B2 (ja) 2020-02-26

Family

ID=53400301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016541673A Active JP6652490B2 (ja) 2013-12-20 2014-12-18 多ディメンション・データー構造に対する実行のためのクエリー構築

Country Status (7)

Country Link
US (2) US9619581B2 (ja)
EP (1) EP3084644A1 (ja)
JP (1) JP6652490B2 (ja)
CN (1) CN105849725B (ja)
BR (1) BR112016013584B1 (ja)
RU (1) RU2679977C1 (ja)
WO (1) WO2015095429A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619581B2 (en) 2013-12-20 2017-04-11 Microsoft Technology Licensing, Llc Constructing queries for execution over multi-dimensional data structures
US20160063047A1 (en) * 2014-08-29 2016-03-03 Mckesson Financial Holdings Method and Apparatus for Providing a Data Manipulation Framework
US10102269B2 (en) * 2015-02-27 2018-10-16 Microsoft Technology Licensing, Llc Object query model for analytics data access
US9760618B2 (en) * 2015-03-16 2017-09-12 International Business Machines Corporation Distributed iceberg cubing over ordered dimensions
US11604795B2 (en) * 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
CN108268193B (zh) * 2017-01-04 2021-03-02 珠海金山办公软件有限公司 电子表格中函数对应的提示信息的显示方法及装置
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US11675761B2 (en) 2017-09-30 2023-06-13 Oracle International Corporation Performing in-memory columnar analytic queries on externally resident data
US10509805B2 (en) * 2018-03-13 2019-12-17 deFacto Global, Inc. Systems, methods, and devices for generation of analytical data reports using dynamically generated queries of a structured tabular cube
US10956384B2 (en) * 2019-03-05 2021-03-23 International Business Machines Corporation Assessing aggregated data quality
US10895973B2 (en) * 2019-04-23 2021-01-19 Google Llc Browsing hierarchical datasets
US10884599B2 (en) * 2019-05-23 2021-01-05 Amadeus S.A.S. Graphical user interface for refocusing the scope of a series of queries
US11734308B2 (en) 2019-09-12 2023-08-22 Oracle International Corporation Autonomous caching for views
US11630848B2 (en) * 2019-09-20 2023-04-18 International Business Machines Corporation Managing hypercube data structures
US11232158B2 (en) * 2019-10-29 2022-01-25 Google Llc Single view presentation of multiple queries in a data visualization application
US11797520B2 (en) 2019-11-29 2023-10-24 Oracle International Corporation ROWID elimination rewrite
US11461328B2 (en) 2020-09-21 2022-10-04 Oracle International Corporation Method for using a sematic model to transform SQL against a relational table to enable performance improvements
US11556533B2 (en) 2020-11-12 2023-01-17 Oracle International Corporation Method for generating views based on a semantic model, that allows for autonomous performance improvements and complex calculations

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752016A (en) * 1990-02-08 1998-05-12 Hewlett-Packard Company Method and apparatus for database interrogation using a user-defined table
JPH0756933A (ja) * 1993-06-24 1995-03-03 Xerox Corp 文書検索方法
US5832475A (en) * 1996-03-29 1998-11-03 International Business Machines Corporation Database system and method employing data cube operator for group-by operations
US5983218A (en) * 1997-06-30 1999-11-09 Xerox Corporation Multimedia database for use over networks
US6711585B1 (en) * 1999-06-15 2004-03-23 Kanisa Inc. System and method for implementing a knowledge management system
US6750864B1 (en) 1999-11-15 2004-06-15 Polyvista, Inc. Programs and methods for the display, analysis and manipulation of multi-dimensional data implemented on a computer
US6704740B1 (en) * 2000-08-10 2004-03-09 Ford Motor Company Method for analyzing product performance data
US7174342B1 (en) * 2001-08-09 2007-02-06 Ncr Corp. Systems and methods for defining executable sequences to process information from a data collection
CA2372092C (en) * 2002-02-15 2010-04-06 Cognos Incorporated A queuing model for a plurality of servers
US8015143B2 (en) * 2002-05-22 2011-09-06 Estes Timothy W Knowledge discovery agent system and method
US7162470B2 (en) 2002-06-07 2007-01-09 Oracle International Corporation Contextual search interface for business directory services
US7383513B2 (en) * 2002-09-25 2008-06-03 Oracle International Corporation Graphical condition builder for facilitating database queries
US7698441B2 (en) * 2002-10-03 2010-04-13 International Business Machines Corporation Intelligent use of user data to pre-emptively prevent execution of a query violating access controls
US6938036B2 (en) * 2002-10-24 2005-08-30 International Business Machines Corporation Query modification analysis
US7644361B2 (en) * 2002-12-23 2010-01-05 Canon Kabushiki Kaisha Method of using recommendations to visually create new views of data across heterogeneous sources
US8200612B2 (en) * 2003-05-07 2012-06-12 Oracle International Corporation Efficient SQL access to multidimensional data
US7305408B2 (en) * 2003-08-12 2007-12-04 Oracle International Corporation System and method for cross attribute analysis and manipulation in online analytical processing (OLAP) and multi-dimensional planning applications by dimension splitting
US7707045B2 (en) * 2003-08-28 2010-04-27 Cerner Innovation, Inc. System and method for multi-dimensional extension of database information
FR2859552B1 (fr) 2003-09-10 2006-03-31 Granite Software Procede et systeme de manipulation de donnees issues de bases de donnees multidimensionnelles a l'aide d'un tableur
US7188098B2 (en) * 2003-09-24 2007-03-06 International Business Machines Corporation Query transformation for union all view join queries using join predicates for pruning and distribution
US7337163B1 (en) 2003-12-04 2008-02-26 Hyperion Solutions Corporation Multidimensional database query splitting
US7809678B2 (en) * 2004-07-09 2010-10-05 Microsoft Corporation Fact dimensions in multidimensional databases
US20060112123A1 (en) 2004-11-24 2006-05-25 Macnica, Inc. Spreadsheet user-interfaced business data visualization and publishing system
US7800613B2 (en) * 2004-12-02 2010-09-21 Tableau Software, Inc. Computer systems and methods for visualizing data with generation of marks
US8150893B2 (en) * 2004-12-29 2012-04-03 Alcatel Lucent Method and apparatus for incremental evaluation of schema-directed XML publishing
US7640237B2 (en) * 2005-01-11 2009-12-29 International Business Machines Corporation System and method for database query with on demand database query reduction
US7694212B2 (en) * 2005-03-31 2010-04-06 Google Inc. Systems and methods for providing a graphical display of search activity
US8935273B2 (en) * 2005-06-23 2015-01-13 International Business Machines Corporation Method of processing and decomposing a multidimensional query against a relational data source
US7543003B2 (en) * 2005-08-25 2009-06-02 Microsoft Corporation Providing change notifications to an entity-regarding a change of a specific type to data in a relational database
US7581189B2 (en) * 2005-09-09 2009-08-25 Microsoft Corporation Dynamically generating a database report during a report building process
US20070078823A1 (en) * 2005-09-30 2007-04-05 Microsoft Corporation Expression templates and object classes for multidimensional analytics expressions
US8180789B1 (en) * 2005-12-05 2012-05-15 Teradata Us, Inc. Techniques for query generation, population, and management
US7844603B2 (en) * 2006-02-17 2010-11-30 Google Inc. Sharing user distributed search results
US20080016041A1 (en) * 2006-07-14 2008-01-17 Frost Brandon H Spreadsheet-based relational database interface
US8589357B2 (en) * 2006-10-20 2013-11-19 Oracle International Corporation Techniques for automatically tracking and archiving transactional data changes
US7779031B2 (en) * 2007-02-15 2010-08-17 International Business Machines Corporation Multidimensional query simplification using data access service having local calculation engine
US8121975B2 (en) * 2008-02-20 2012-02-21 Panorama Software Inc. Creating pivot tables from tabular data
CN102084363B (zh) * 2008-07-03 2014-11-12 加利福尼亚大学董事会 一种用于在结构化数据上高效地支持交互式模糊搜索的方法
US8229923B2 (en) * 2008-09-26 2012-07-24 Microsoft Corporation Multidimensional data space queries with expression evaluation
US8706681B2 (en) 2008-10-01 2014-04-22 Prophix Software Inc. System and method for processing and/or analyzing OLAP based data according to one or more parameters
US20170060856A1 (en) * 2008-12-10 2017-03-02 Chiliad Publishing Incorporated Efficient search and analysis based on a range index
US8234344B2 (en) * 2009-05-06 2012-07-31 Business Objects S.A. Providing analytical view of email information
US8825601B2 (en) * 2010-02-01 2014-09-02 Microsoft Corporation Logical data backup and rollback using incremental capture in a distributed database
US8924379B1 (en) * 2010-03-05 2014-12-30 Google Inc. Temporal-based score adjustments
US9262482B2 (en) * 2010-04-19 2016-02-16 Facebook, Inc. Generating default search queries on online social networks
US8542205B1 (en) * 2010-06-24 2013-09-24 Amazon Technologies, Inc. Refining search results based on touch gestures
US8655841B1 (en) * 2010-12-31 2014-02-18 Symantec Corporation Selection of one of several available incremental modification detection techniques for use in incremental backups
US8825620B1 (en) * 2011-06-13 2014-09-02 A9.Com, Inc. Behavioral word segmentation for use in processing search queries
US9462040B2 (en) * 2011-12-07 2016-10-04 Cisco Technology, Inc. Network-based dynamic data management
EP2637112B1 (en) * 2012-03-05 2020-07-22 Hasso-Plattner-Institut für Softwaresystemtechnik GmbH Online reorganization of hybrid in-memory databases
US9501550B2 (en) * 2012-04-18 2016-11-22 Renmin University Of China OLAP query processing method oriented to database and HADOOP hybrid platform
US8930374B2 (en) * 2012-06-29 2015-01-06 Nokia Corporation Method and apparatus for multidimensional data storage and file system with a dynamic ordered tree structure
GB2505183A (en) * 2012-08-21 2014-02-26 Ibm Discovering composite keys
US9659082B2 (en) * 2012-08-27 2017-05-23 Microsoft Technology Licensing, Llc Semantic query language
WO2014053825A2 (en) * 2012-10-01 2014-04-10 Neutrino Concepts Ltd. Search
US20150134676A1 (en) * 2013-11-11 2015-05-14 International Business Machines Corporation Amorphous data query formulation
US9619581B2 (en) 2013-12-20 2017-04-11 Microsoft Technology Licensing, Llc Constructing queries for execution over multi-dimensional data structures

Also Published As

Publication number Publication date
US10565232B2 (en) 2020-02-18
RU2016124134A (ru) 2017-12-21
JP2017500664A (ja) 2017-01-05
BR112016013584B1 (pt) 2023-01-17
US9619581B2 (en) 2017-04-11
US20170228451A1 (en) 2017-08-10
CN105849725B (zh) 2019-10-01
BR112016013584A8 (pt) 2020-05-19
CN105849725A (zh) 2016-08-10
US20150178407A1 (en) 2015-06-25
EP3084644A1 (en) 2016-10-26
BR112016013584A2 (ja) 2017-08-08
WO2015095429A1 (en) 2015-06-25
RU2679977C1 (ru) 2019-02-14

Similar Documents

Publication Publication Date Title
JP6652490B2 (ja) 多ディメンション・データー構造に対する実行のためのクエリー構築
US11995407B2 (en) Analyzing underspecified natural language utterances in a data visualization user interface
US11675781B2 (en) Dynamic dashboard with guided discovery
AU2020260374B2 (en) Building reports
CN105493075B (zh) 基于所标识的实体的属性值检索
US7899837B2 (en) Apparatus and method for generating queries and reports
US9721006B2 (en) Systems and methods for enabling searches of a document corpus and generation of search queries
US20090024940A1 (en) Systems And Methods For Generating A Database Query Using A Graphical User Interface
EP1643386A2 (en) Easy-to-use data context filtering
US20180113887A1 (en) Generating tables based upon data extracted from tree-structured documents
WO2014182585A1 (en) Recommending context based actions for data visualizations
IES20060273A2 (en) A dynamic user interface and a method for generating a dynamic user interface for interfacing with an electronic data repository storing a collection of data elements
JP2006172446A (ja) 複合データアクセス
US8204895B2 (en) Apparatus and method for receiving a report
US20140012869A1 (en) Business object browser
US11809698B1 (en) Phrase builder for data analytic natural language interface
US11550805B2 (en) Compact display of matching results
US20140068425A1 (en) System and method of modifying order and structure of a template tree of a document type by splitting component of the template tree
IE20060273U1 (en) A dynamic user interface and a method for generating a dynamic user interface for interfacing with an electronic data repository storing a collection of data elements

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181115

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200123

R150 Certificate of patent or registration of utility model

Ref document number: 6652490

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250