(58)【調査した分野】(Int.Cl.,DB名)
前記フィールドがGROUPING句またはAGGREGATE句の少なくとも1つに関連付けられる頻度を決定することに少なくとも部分的に基づいて、前記集計の前記レベルを識別するステップをさらに含む、
請求項8に記載のコンピュータ実施方法。
前記複数のクエリが第1フィールドから値への変換を含むことを決定することに少なくとも部分的に基づいて、前記結合パスに含む前記少なくとも2つのフィールドのうちの少なくとも1つを識別するステップをさらに含む、
請求項8に記載のコンピュータ実施方法。
前記少なくとも2つのフィールド同士が関連しているという表示をユーザから受信することに少なくとも部分的に基づいて、前記結合パスを識別するステップをさらに含む、
請求項8に記載のコンピュータ実施方法。
【発明を実施するための形態】
【0005】
本開示の態様を採用して、トランザクションデータの分析操作を行うために使用し得る結合関係を識別してよい。結合関係を利用して、分析に使用可能な階層の生成に使用し得る分析クエリ等の分析クエリを自動的に生成してよい。本開示の実施形態は、リレーショナルデータベース管理システム等のトランザクションデータストアのクエリログを利用して、スキーマまたはメタデータによって明示的に識別されない結合関係を識別してよい。結合パスをさらに利用して、次元、および、関連する属性を識別し、次元属性の集計から形成され得る階層および他の分析関係を識別してよい。
【0006】
分析関係を識別するシステムは、トランザクションデータストアに通信可能に接続されたコンピュータノードを含んでよい。コンピュータノードは、トランザクションデータストアへのアクセスに使用されたクエリを含むトランザクションログまたは診断ログを受信する命令を有するメモリを含んでよい。実施形態は、ログに含まれるクエリ情報のコーパスを分析して、次元、および、次元に関連する属性を識別してよい。識別は、トランザクションデータストアへのアクセスに使用されたクエリにおいて一致するフィールド参照に少なくとも部分的に基づいてよい。比較的高い頻度で一致するフィールドは、次元に関連する属性として選択されてよい。次元に関連付けられた階層のレベルは、次元および関連する属性が基づいているフィールドを参照するクエリ情報のコーパスを分析することに基づいて識別されてよい。AGGREGATE(集計)句やGROUPING(グループ化)句にこのようなフィードを含むことによって、階層レベルと、階層内で集計され得る属性とを示唆してよい。このようなフィールドのデータ型も、階層レベルと属性を示唆してよい。
【0007】
図1は、トランザクションデータベース管理システムのデータにアクセスするパターンに基づいて、階層と結合パスを自動検出するシステムの実施形態を示すブロック図である。
【0008】
トランザクションデータベース100は、リレーショナルおよび非リレーショナルデータベース管理システムを含んでよい。本明細書において、トランザクションという語は、データ集計、階層表示、推論形成、相関識別等の分析的機能を行うデータウェアハウジングコンポーネントと区別して使用される。トランザクション操作は、記録の記憶、記録の検索、記録の更新、および、記録の挿入を含んでよい。従って、トランザクションは、リレーショナルデータベースシステム、非リレーショナルデータベースシステム、ウェブサービス、販売時点管理システム、通信システム等を含むがこれらに限らない、様々なシステムによって行われてよい。同様に、本明細書において使用される場合、結合パスという語は、リレーショナルデータベースアプリケーションに限定されない。結合パスは、あるデータセットを他のデータに論理的に関連付けるのに使用し得る、データセットの1つまたは複数の属性、特徴、または、パターンを指してよい。
【0009】
分析モジュール106は、トランザクションデータベース100とは別個のコンポーネントを含んでもよく、または、トランザクションデータベース100に一体化されたコンポーネントを含んでもよい。データベース管理システムは、トランザクション操作と分析操作の両方を支援してよいことは理解されよう。このような場合、トランザクションデータベース100および分析モジュール106は、同一場所に配置されてよい。別個の実体としてのトランザクションデータベース100および分析モジュール106の
図1の描写は、一般的な原理を示すものであり、本開示の範囲を限定するものと見なすべきではない。分析モジュール106は、トランザクションデータベース100とは別個のコンポーネントまたはシステムを含んでよい。例えば、分析モジュール106は、データウェアハウスまたはスタンドアロンのオンライン分析処理システムを含んでよい。
【0010】
トランザクションデータベース100は、操作の課程で、データを記憶、検索するために、様々なクエリを処理してよい。トランザクションデータベース100によって処理されたトランザクションデータ104の一部または全部は、分析モジュール106にも伝達、または、分析モジュール106によって取得されてよい。
【0011】
トランザクションデータベース100が行う操作を記述する情報は、クエリログ102に記録されてよい。様々な実施形態において、クエリログ102は、クエリテキストとパラメータを記録する逐次ログファイルを含んでよい。一部の実施形態においては、トランザクションログは、システムによって処理されたクエリを示す情報を含んでよい。
【0012】
本明細書において使用される場合、データソースという語は、データを取得、記憶、または、検索できる様々な機構を含んでよい。例は、トランザクションデータベース、非リレーショナルデータベース、リレーショナルデータベース、情報ストリーム、情報交換チャネル等を含むが、これらに限らない。
【0013】
本明細書において使用される場合、クエリという語は、データを記憶、検索、更新、または、削除するために、トランザクションデータベースが処理するコマンドのテキスト記述または非テキスト記述を含んでよい。クエリは、一部の場合および実施形態においては、構造化クエリ言語(「SQL」)等、クエリ言語を用いて表されてよい。他の例は、アプリケーションプログラミングインタフェース(「API」)コールを通して、または、バイナリ形式のクエリ言語文を表すのに使用されるオブジェクトグラフ等のオブジェクトグラフとして、表されるクエリを含んでよい。
【0014】
クエリログ102の情報は、分析モジュール106に伝えられてよい、または、分析モジュール106によって取得されてよい。クエリログ102に示されたクエリを本明細書に記載の様々な技術を用いて分析して、明示的に記述されていないデータ関係を識別してよい。様々な技術は、集計118およびグループ化116に基づいた技術を含み、集計118およびグループ化116は、例えば、集計関数またはGROUP‐BY句としてクエリに指定されてよい。リレーショナル、非リレーショナル、NoSQL、キーと値の対等を含む、様々なデータベース管理システムはすべて、集計118またはグループ化116を行う類似の手段を支援してよい。
【0015】
トランザクションデータ104を分析モジュール106によって処理して、クエリログ102のクエリに基づいて識別された関係をさらに識別、絞り込み(refine)、または、検証してよい。例えば、分析モジュール106は、クエリログ102を用いて可能な階層を識別してよく、トランザクションデータ104を用いて可能な階層を検証してよい。
【0016】
分析モジュール106は、クエリログ102で表されたクエリに基づいて関係を識別してよく、これらの関係をn次元立方体108に組み込ませてよい。n次元立方体108は、分析に使用された多次元データ集計を表すのに使用された様々な構造を含んでよい。n次元立方体108は、立方体、多次元立方体、超立方体、ピボットテーブル等とも呼ばれることのある様々な構造を含んでよい。n次元立方体は、多次元インデックス構造として表されてよく、スパース割当て構造をさらに利用してよい。
【0017】
前述のように、分析モジュール106は、クエリログ102に基づいて階層関係を識別してよい。この関係は、階層110としてn次元立方体108に記憶されてよい。階層110は、次元に関連付けられた様々なファクトの集計値を含んでよい。例えば、販売個数の総計(unit sales amount)は、集計プロセスを通して階層に組み込み得るファクトを表してよい。例えば、階層の最下位のレベルは、日々の販売個数を含んでよく、次のレベルは、週の販売個数を含む等である。実施形態は、分析モジュール106を含んでよく、分析モジュール106は、販売個数を含むとして、且つ、時間に基づいた階層レベルに従って適切に組織されるとして、次元を識別する。対応する階層110は、n次元立方体108に記憶されてよく、n次元立方体108および/または階層110の手動構成を必要とすることなく、分析に使用されてよい。
【0018】
分析モジュール106は、トランザクションデータベース100からの入力に加えて、または、それらの代替の入力に基づいたデータの階層関係を識別してよい。これらは、データストリーム112とキュレートされたデータセット114を含んでよい。
【0019】
データストリーム112は、モニタするデータフローを含んでよく、そこから、集計118およびグループ化116に関する情報を推論してよい。集計118は、合計、平均等の様々な集計操作を示すデータストリームの要素を含んでよい。グループ化116は、類似のデータのクラスタを含んでよい。ここで、類似性は、共通のデータ型、共通の意味タイプ等の要因によって測定されてよい。ある場合には、データストリーム112は、クエリ、または、データの消費者と生産者の間の他の形の相互作用を示すデータを含んでよいという点で、クエリログ102とも類似してよい。言い換えると、実施形態は、ある場合には、アプリケーション間の要求と応答パターンを監視してよく、そのデータを利用して推論を形成してよい。これは、データソースに送信されるデータ要求と、その要求に応答してデータソースから返信されるデータの監視を含んでよい。
【0020】
実施形態は、変換関数を繰り返し適用するクエリログ102および/またはデータストリームのパターンの検出も含み得る。例えば、同じデータセットに頻繁に適用される関数は、2つの列が関連していることを示してよい。変換関数は、可能な集計も示唆してよい。例えば、クエリが、「sum(合計)」ではなく、「count(計数)」を頻繁に計算する場合、これは、同じデータを伴う階層の集計は、合計ではなく計数を求めることによって行うべきであることを示してよい。
【0021】
キュレートされたデータセット114は、階層の洞察を取得するのに有用なデータコレクション等のデータコレクションを含む。例えば、キュレートされたデータセット114は、企業と、各企業が採用してきた事業年度カレンダーとのマッピングを含んでよい。別の例は、郵便番号と州のマッピングである。
【0022】
図2は、実施形態が結合パスおよび階層の検出に利用し得る要素を含むクエリの例を示すブロック図である。詳細には、
図2は、SQLのSELECT文等、検索する記録の識別に使用されるクエリを含む例を示す。様々な場合および実施形態において、他のクエリ形式を利用してよい。これらは、例えば、INSERT(挿入)文、UPDATE(更新)文、および、DELETE(削除)文を含んでよい。
【0023】
図2に示すように、クエリ200は、202、206等の様々な句を含んでよい。これらは、SELECT(選択)句202およびGROUPING(グループ化)句206を含んでよい。様々な場合において、追加の句(図示せず)が含まれてよく、図に示した句が省略されてもよい。
【0024】
SELECT句202は、どのフィールドをクエリで返信するべきかを示す情報を含んでよい。クエリのこの部分は、射影と呼ばれこともある。ある場合には、SELECT句202は、テーブルの列の値と対応するフィールド等、トランザクションデータのフィールドと直接、対応するフィールドリストを含んでよい。他の場合には、SELECT句202は、計算されたフィールドまたは集計値等、様々な派生値を含んでよい。SELECT句202は、派生値を指定する従属句を含んでよい。例えば、SELECT句202は、AGGREGATE(集計)句204を含んでよい。AGGREGATE句204は、合計または平均等、複数の行のフィールドを1つの値にまとめる計算を指定してよい。
【0025】
GROUPING句206を指定して、クエリによって指定された行をどのように組み合わせるべきかを示してよい。GROUPING句206は、AGGREGATE句204に関連させてよい。例えば、GROUPING句は、クエリ200の結果を月によってグループ化すべきであると示してよく、その場合、AGGREGATE句204の結果は、月間の数字となる。
【0026】
実施形態は、クエリ200に含まれる情報を利用して、可能なデータ関係を推論または識別してよい。これらの関係は、本明細書に記載のように、識別および評価されてよい。
【0027】
SELECT句202の要素は、次元に含まれる可能な結合関係と候補とを示してよい。ある場合には、SELECT句202に2つのフィールドが含まれることは、その2つのフィールドが関連していることを示し得る。SELECT句202に2つのフィールドを明示的に列挙することは、同じ行に属しているがSELECT句202に明示的に含まれていないフィールドよりも、その2つのフィールドが強く関連していることを示してよい。
【0028】
実施形態は、次元に含まれる可能な結合関係と候補とを識別するために、AGGREGATE句204に含まれるフィールドを識別してよい。例えば、AGGREGATE句204に含まれる販売個数の値は、販売の次元を示してよい。SELECT句202に指定される他のフィールドは、次元に関連付けられてよい。例えば、製品名は、AGGREGATE句204と共にSELECT句202に指定されてよい。
【0029】
実施形態は、GROUPING句206の指定に使用されるフィールドと基準を識別してよい。GROUPING句206の内容は、階層の1つまたは複数のレベルを示してよい。集計をグループ化する基準は、階層の第1のレベルに対応してよく、第1のレベルの上下に追加のレベルを示してよい。例えば、月によるグループ化を示すGROUPING句は、四半期、年、または、日によるグループ化を間接的に示唆してよい。実施形態は、GROUPING句に指定された基準から可能な階層レベルセットにマッピングしてよい。月によるグループ化の場合、グループ化は、複数のカレンダベースの階層にマッピングしてよい。別の例は、州、国、地域等を含む様々な階層に市をマッピングすることによるグループ化等、地理的データを伴う。別の例は、組織構造を含む階層を示唆する事業部門によるグループ化を含んでよい。ある場合には、(携帯電話の装置識別子等)システムまたはデータセットの識別子は、識別可能な階層を有する別のデータセットと推論可能な結合関係を有してよい。データセットへの推論された結合関係を使用して、識別された階層にマッピングしてよい。
【0030】
図3は、一致するフィールドを繰り返し指定することに基づいて、可能な結合関係と次元とを識別する実施形態によって使用可能な複数のクエリの例を示すブロック図である。
【0031】
複数のクエリ300〜304を記述する情報は、トランザクションログ、診断ログ等からなど、様々な手段を通して取得されてよい。
図3においては、クエリ300〜304を記述する情報は、クエリログ318に含まれているとして記載されている。複数のクエリ300〜304を記述する情報を分析して、一致するフィールドを検出してよい。一致するフィールドは、同じクエリで指定されたフィールドを含む。これは、クエリの同じSELECT句で指定されたフィールドを含み、また、異なる句で生じるフィールドを含んでよい。例えば、一致する2つのフィールドは、SELECT句の第1フィールドおよびWHERE句の第2フィールド、または、SELECT句の第1フィールドおよびGROUP‐BY句の第2フィールドを含んでよい。
【0032】
図3において、クエリ300は、フィールド「A」306、フィールド「B」308、および、フィールド「X」310への参照を含んでよい。これらのフィールドのうちのいずれか2つが一致すると言える。第2のクエリ302は、フィールド「A」306と、フィールド「Y」312およびフィールド「Z」314とを含んでよい。第3のクエリ304は、フィールド「A」306およびフィールド「B」308の両方と、フィールド「M」316とを含んでよい。クエリ300およびクエリ304において、フィールド「A」306は、フィールド「B」308と一致している。従って、これらの2つのフィールドは、クエリ300〜306で示された他のフィールドより高頻度で一致する。クエリ300〜306を参照して、その2つのフィールドが他のフィールドより高頻度で一致する程度に基づいて、フィールド「A」306とフィールド「B」308は、密接に関連している可能性が高いと考えられてよく、よって、結合関係の候補または次元との関連付けの候補の可能性が高いと考えられてよい。
【0033】
図4は、トランザクションデータベースシステムによって処理された複数のクエリにおける次元とレベルの識別に基づいて、階層を形成するプロセスの実施形態を示すフローチャートである。要素のシーケンスとして示されているが、図に示す順序は、本開示の範囲を制限すると解釈すべきではなく、図に示した要素の少なくとも一部は、変更、省略、順序変更、追加の要素を補充、または、並行して行われてもよいことを、当業者は理解されよう。図示のプロセスの実施形態は、本明細書に記載のコンピュータシステム等、コンピュータシステムによって実行されるコンピュータ実行可能命令の様々な組み合わせを用いて実施されてよい。
【0034】
要素400は、トランザクションデータストアによって処理された複数のクエリを示す情報を受信する実施形態を示す。複数のクエリは、例えば、データベース管理システムによって行われた操作のログから取得されたクエリに対応してよい。これらは、時間順に配置されてよく、または、要約された形で提供されてよい。実施形態は、分析すべきクエリをフィルタリングして、トランザクションデータストアまたは他のシステムによって処理されたクエリのサブセットにする機構を提供してよい。
【0035】
要素402は、クエリを分析して、SELECT句またはクエリの他の部分と頻繁に一致するフィールドを識別する実施形態を示す。実施形態は、クエリを統計的に分析して、どのフィールドが複数のクエリにおいて一緒に生じるかと、それらのフィールドが一致する相対頻度を決定してよい。実施形態は、例えば、一致するフィールドのタプルを形成してよく、各タプルをそのタプルが繰り返した回数に関連付けてよい。最大の計数を有するタプル、または、ある閾値レベルを超える計数を有するタプルが、次元の候補属性として、または、トランザクションデータストアに明示的に定義されていない結合パスを通して互いに関連しているとして、選択されてよい。
【0036】
実施形態は、クエリ内の一致するフィールドの位置を利用して、次元の可能なパスおよび属性を識別してよい。例えば、SELECT句内の2つのフィールドの一致には、第1の重みが与えられてよく、SELECT句のフィールドと、サブクエリで指定されたフィールドの一致には、第2の重みが与えられてよい。
【0037】
要素404は、候補階層で使用される次元と、その次元に関連付けられた属性とを識別する実施形態を示す。次元および関連する属性は、ログから取得されたクエリ内でフィールド同士が一致する程度に基づいてよい。上述のように、実施形態は、候補次元および関連する属性の根拠を、一致するフィールドの相対的程度または計数においてよく、最も高い頻度で生じるものが候補の可能性が最も高い。
【0038】
キュレートされたデータセットを採用して、次元と、その次元に関連付けられた属性とを識別してよい。キュレートされたデータセットは、入力データと、様々な可能な次元またはその次元に関連付けられた属性の間の可能なマッピングを含んでよい。マッピングは、データ型、データ範囲、および、データ値等、データに関する情報に基づいてよい。例えば、一定の数は、一定の値範囲に入ることに基づいて、郵便番号と推論されてよく、「WA」等、2文字のアルファベットは、州コードであると推論されてよい。
【0039】
要素406は、識別された次元に関連付けられた属性のデータ型を分析する実施形態を示す。実施形態は、可能な結合パスまたは候補次元と属性を、データ型に基づいて、さらに絞り込んでよい。例えば、整数データ型フィールドは、浮動小数点データ型フィールドより結合パスの根拠になる可能性が高い。さらに、実施形態は、一定のデータ型を可能性の高い階層と関連付けてよい。例えば、データフィールドは、一般に、階層レベルを示唆し、浮動小数点フィールドは、一般的に、集計されてよい次元値として使用されてよい。
【0040】
実施形態は、データ型に関連付けられた1つまたは複数の階層から、ある階層を選択することに少なくとも部分的に基づいて、階層レベルを識別してよい。実施形態は、様々なデータ型からデータ型と一般に関連付けられた階層へのマッピングを含んでよい。例えば、日付を表すデータ型は、暦年に基づいた階層、および、事業年度に基づいた階層等、複数の可能な階層にマッピングされてよい。
【0041】
要素408は、AGGREGATE句に関連付けられたフィールドを分析する実施形態を示す。AGGREGATE句で参照されるフィールドは、階層内で集計できる次元の候補であってよい。同様に、要素410が示すように、実施形態は、GROUPING句に関連付けられたフィールドを分析して、階層のレベルを識別してよい。
【0042】
要素412は、データ型の分析、AGGREGATE句、および、GROUPING句に基づいて、階層のレベルを識別する実施形態を示す。これは、フィールドがGROUPING句またはAGGREGATE句に関連付けられる頻度を決定することに少なくとも部分的に基づいて、階層レベルを識別することを含んでよい。
【0043】
トランザクションデータストリームによって処理されたクエリに関して
図4に記載されたプロセスは、データストリーム、または、アプリケーション間のデータ交換の観察パターン等、他のデータソースにも適用されてよいことに注意されたい。要素400〜412で示す操作は、
図4に記載するプロセスと本質的に類似のプロセスを使用して、これらのソースに適用されてよい。
【0044】
図5は、トランザクションアクセスパターンに基づいて、結合パスを識別するプロセスの実施形態を示すフローチャートである。要素のシーケンスとして図示されているが、図示の順序は、本開示の範囲を制限すると解釈すべきではなく、図示の要素の少なくとも一部は、変更、省略、順序変更、追加の要素を補充、または、並行して行われてよいことを、当業者は理解されよう。図示のプロセスの実施形態は、本明細書に記載のコンピュータシステム等のコンピュータシステムによって実行されるコンピュータ実行可能命令の様々な組み合わせを用いて実施されてよい。
【0045】
要素500は、クエリおよびトランザクションデータストアを伴う他のアクセスパターンを記述する情報のコーパスのSELECT句で表されたフィールドを識別する実施形態を示す。情報のコーパスは、トランザクションデータストアから取得したログファイルに関してよく、トランザクションログおよび/または診断ログを含んでよい。
【0046】
要素502は、クエリおよびトランザクションデータストアを伴う他のアクセスパターンを記述する情報のコーパスにおいて変換クエリを識別する実施形態を示す。これは、情報のコーパスに表されたクエリが第1フィールドからファクトに対応する値への変換を含むことを決定することに少なくとも部分的に基づいて、次元の1つまたは複数の属性を識別することを含んでよい。1つの例は、地理的位置をその地理的位置の近くにある店舗の識別子に変換することを含むが、これに限らない。このような変換の対象となるフィールドは、次元の属性として潜在的に有用であり得るファクトを表してよい。
【0047】
要素504は、情報のコーパス内でフィールド同士が一致する頻度を識別する実施形態を示す。これは、複数のクエリにおいて1つまたは複数のフィールドの一致参照を計数することを含んでよい。計数を閾値と比較して、次元の属性として使用するのに適していると思われるフィールドを識別してよい。
【0048】
要素506は、トランザクション文脈内の一致するフィールド同士を識別する実施形態を示す。これは、トランザクション文脈内で生じるフィールドの一致参照に少なくとも部分的に基づいて、次元およびその次元に関連付けられた1つまたは複数の属性を識別することを含んでよい。1つのトランザクションの文脈で更新されたフィールド、または、言い換えると、グループとして行われたまたはロールバックされたフィールドは、潜在的に関係していてよく、フィールド間の可能な結合パスを示唆している。
【0049】
要素507は、潜在的に関連する列同士をユーザが指定することを可能にする実施形態を示す。ある場合には、ユーザによる指定は、可能な結合パスの識別において、他の要因に優先してよい。他の場合には、潜在的に関連する列のユーザ指定は、情報のコーパスの他の識別された特徴と組み合わせて使用すべき要因と見なされてよい。
【0050】
要素508は、情報のコーパスの識別された特徴に基づいて、結合パスを識別する実施形態を示す。結合パスは、データのスキーマに明示的に表されていないデータセットの関係に関するとして記載されてよい。結合パスを利用して、次元、次元の属性、および、階層レベルを識別してよい。
【0051】
ある実施形態においては、トランザクションデータの分析関係を識別するシステムは、トランザクションデータストアに通信可能に接続された1つまたは複数のコンピュータノードを含んでよい。システムは、命令を含むメモリをさらに備えてよく、命令が実行されると、システムは、少なくとも、各クエリが1つまたは複数の句を含むトランザクションデータストアによって処理された複数のクエリであって、各クエリが1つまたは複数の句を含む複数のクエリが示す情報を受信し、複数のクエリの句の1つまたは複数のフィールドであって、1つまたは複数の属性に対応する1つまたは複数のフィールドを一致して参照することに少なくとも部分的に基づいて、次元およびその次元に関連付けられた1つまたは複数の属性を識別し、且つ、階層のレベルを識別する。レベルは、1つまたは複数の属性の階層組織を示す情報を求めて複数のクエリを少なくとも分析することによって次元に関連付けられ、分析される情報は、1つまたは複数のフィールドのうちの、あるフィールドのデータ型と、複数のクエリの1つまたは複数のフィールドとGROUPING句との第1の関連付けと、複数のクエリの1つまたは複数のフィールドとAGGREGATE句との第2の関連付けと、を含む。
【0052】
ある実施形態においては、非一時的コンピュータ可読記憶媒体またはコンピュータプログラム製品は、命令を記憶していてよく、命令が1つまたは複数のコンピュータ装置によって実行されると、1つまたは複数のコンピュータ装置は、複数のクエリの1つまたは複数のフィールドであって、1つまたは複数の属性に対応する1つまたは複数のフィールドを一致して参照することに少なくとも部分的に基づいて、次元およびその次元に関連付けられた1つまたは複数の属性を識別し、且つ、階層のレベルを識別する。レベルは、1つまたは複数の属性の階層組織を示す情報を求めて複数のクエリを少なくとも分析することによって次元と関連付けられ、分析される情報は、1つまたは複数のフィールドのうちの、あるフィールドのデータ型と、複数のクエリの1つまたは複数のフィールドとGROUPING句との第1の関連付けと、複数のクエリの1つまたは複数のフィールドとAGGREGATE句との第2の関連付けと、を含む。
【0053】
ある実施形態においては、トランザクションデータの分析関係を識別するコンピュータ実施方法は、複数のクエリの1つまたは複数のフィールドであって、1つまたは複数の属性に対応する1つまたは複数のフィールドを一致して参照することに少なくとも部分的に基づいて、次元およびその次元に関連付けられた1つまたは複数の属性を識別することと、1つまたは複数のフィールドの階層組織を示す情報を求めて、複数のクエリを少なくとも分析することによって、次元に関連付けられた階層レベルを識別することとを含んでよく、分析される情報は、データ型と、1つまたは複数のフィールドのうちの、あるフィールドと、複数のクエリの1つまたは複数のフィールドとGROUPING句との第1の関連付けと、複数のクエリの1つまたは複数のフィールドとAGGREGATE句との第2の関連付けと、を含む。
【0054】
様々な実施形態は、データ型に関連付けられた1つまたは複数の階層から、ある階層を選択することに少なくとも部分的に基づいて、階層レベルを識別することを含む態様を含んでよい。
【0055】
様々な実施形態において、データ型は、時間と、複数のレベルを含む階層とに対応してよく、複数のレベルの各レベルは時間に対応する。
【0056】
様々な実施形態は、1つまたは複数のフィールドがGROUPING句またはAGGREGATE句の少なくとも1つに関連付けられる頻度を決定することに少なくとも部分的に基づいて、階層レベルを識別することを伴う態様を含んでよい。
【0057】
様々な実施形態は、複数のクエリが第1フィールドからファクトに対応する値への変換を含むと決定することに少なくとも部分的に基づいて、1つまたは複数の属性を識別することを伴う態様を含んでよい。
【0058】
様々な実施形態において、一致参照は、1つまたは複数のフィールドに対応する1つまたは複数のフィールドを、SELECT句に含む。
【0059】
様々な実施形態は、複数のクエリのトランザクション文脈内で生じる1つまたは複数のフィールドの一致参照に少なくとも部分的に基づいて、次元およびその次元に関連付けられた1つまたは複数の属性を識別することを伴う態様を含んでよい。
【0060】
様々な実施形態は、階層にマッピングされてよいデータセットのフィールド値の数を決定することを伴う態様を含んでよく、階層は、次元と階層レベルを含み、階層のランク付けは、階層にマッピングされてよいフィールド値の数に少なくとも部分的に基づく。
【0061】
本明細書に記載の様々な態様は、様々な方法で組み合わされて、システム、方法、コンピュータ可読媒体、または、コンピュータプログラム製品の代替実施形態を形成してよい。本明細書に記載の様々な態様は、明示的に示されている以外は、互いに排他的ではない。
【0062】
本開示の実施形態は、多くの種類のデータベース管理システム(「DBMS」)と併せて採用されてよい。DBMSは、データの系統的なコレクションを維持するソフトウェアおよびハードウェアシステムであり、そのシステム上で、記憶操作および検索操作が行われてよい。DBMSにおいては、データは、典型的には、キー値と追加のデータとの間の関連付けによって体系化される。関連付けの性質は、データのコレクションに存在する実世界の関係に基づいてもよく、または、任意であってよい。データの定義、クエリ、更新、および、管理を含む様々な操作が、DBMSによって行われてよい。構造化クエリ言語(「SQL」)等のクエリ言語を用いて、データベースとの相互作用を提供するDBMSもあれば、PUT、GET等の操作を含むAPIを使用するDBMSもある。データベースとの相互作用は、ハイパーテキストマークアップ言語(「HTML」)および拡張マークアップ言語(「XML」)等、様々なプロトコルまたは標準にも基づいてよい。DBMSは、ソリッドステートドライブ等の1つまたは複数の記憶装置にデータを記憶するように働く記憶エンジン等、様々なアーキテクチャコンポーネントを含んでよい。
【0063】
図6は、本発明の態様を実践してよい分散コンピュータ環境の例を示す図である。様々なユーザ600aは、任意の種類のコンピュータ装置602aで動作する様々なクライアントアプリケーションと相互作用して、通信ネットワーク604を介してデータセンタ620内の様々なコンピュータノード610a、610bおよび610c上で実行するプロセスと通信してよい。あるいは、クライアントアプリケーション602bは、ユーザの介入なしに通信してよい。通信ネットワーク604は、インターネット、有線および無線のローカルエリアネットワーク、光ファイバネットワーク、衛星通信等を含む、通信技術の任意の組み合わせを含んでよい。任意の数のネットワーキングプロトコルを採用してよい。
【0064】
データセンタ620内で動作するコンピュータノード610a、610bおよび610cで実行するプロセスとの通信は、ゲートウェイ606およびルータ608を介して提供されてよい。多くの他のネットワーク構成も採用されてよい。
図6には明示していないが、様々な認証機構、ウェブサービス層、ビジネスオブジェクト、または、他の中間層を備えて、コンピュータノード610a、610bおよび610cで実行しているプロセスとの通信を仲介してよい。これらの中間層の一部は、それ自体、コンピュータノードの1つまたは複数上で実行するプロセスを含んでよい。コンピュータノード610a、610bおよび610cと、そこで実行するプロセスは、ルータ608を介して互いに通信してもよい。あるいは、別個の通信パスを採用してよい。一部の実施形態においては、データセンタ620は、追加のデータセンタと通信するように構成されてよく、そうすると、コンピュータノードと、コンピュータノード上で実行しているプロセスは、他のデータセンタ内で動作しているコンピュータノードとプロセスと通信し得る。
【0065】
コンピュータノード610aは、1つまたは複数のプロセッサ616、1つまたは複数のメモリ618、および、1つまたは複数の記憶装置614を含む物理的ハードウェア上に存在するとして図示されている。コンピュータノード610a上のプロセスは、オペレーティングシステムと併せて実行してもよく、または、代わりに、プロセッサ616、メモリ618、または、記憶装置614等、物理リソースと直接、相互作用するベアメタルプロセスを実行してよい。
【0066】
コンピュータノード610bおよび610cは、仮想マシンホスト612上で動作するとして示されており、仮想マシンホスト612は、物理プロセッサ、メモリ、記憶装置等、様々な物理リソースへの共有アクセスを提供してよい。任意の数の仮想化機構を採用してコンピュータノードをホストしてよい。
【0067】
図6に示す様々なコンピュータノードは、ウェブサービス、データベース管理システム、ビジネスオブジェクト、監視および診断設備等をホストするように構成されてよい。コンピュータノードは、パーソナルコンピュータ、サーバ、クラスタ化されたコンピュータ装置等、様々なタイプのコンピュータリソースを指してよい。コンピュータノードは、例えば、携帯電話、スマートフォン、タブレット、組み込み装置等、様々なコンピュータ装置を指してよい。ハードウェアの形態で実施されるとき、コンピュータノードは、一般的に、コンピュータ可読命令を記憶するように構成された1つまたは複数のメモリと、命令を読み出し、実行するように構成された1つまたは複数のプロセッサとに関連付けられる。ハードウェアベースのコンピュータノードは、1つまたは複数の記憶装置、ネットワークインタフェース、通信バス、ユーザインタフェース装置等も含んでよい。コンピュータノードは、ハイパーバイザ、仮想ベアメタル環境等を用いて、または、用いずに実施された仮想マシン等、仮想コンピュータリソースも含んでよい。仮想化ベースのコンピュータノードは、ハードウェアリソースへの仮想アクセスと、非仮想アクセスとを有してよい。コンピュータノードは、オペレーティングシステムと、1つまたは複数のアプリケーションプログラムとを実行するように構成されてよい。一部の実施形態においては、コンピュータノードは、ベアメタルアプリケーションプログラムも含んでよい。
【0068】
少なくとも一部の実施形態においては、本明細書に記載の技術の1つまたは複数の一部または全部を実施するサーバは、汎用コンピュータシステムを含んでよく、汎用コンピュータシステムは、1つまたは複数のコンピュータアクセス可能媒体を含む、または、それらにアクセスするように構成される。
図7は、1つまたは複数のコンピュータアクセス可能媒体を含む、または、それらにアクセスするように構成された汎用コンピュータシステムを示す。図示の実施形態においては、コンピュータ装置700は、入力/出力(「I/O」)インタフェース730を介してシステムメモリ720に接続された1つまたは複数のプロセッサ710a、710b、および/または、710n(本明細書では、単数のプロセッサ710とされる場合もあり、複数のプロセッサ710とされる場合もある)を含む。コンピュータ装置700は、I/Oインタフェース730に接続されたネットワークインタフェース740をさらに含む。
【0069】
様々な実施形態において、コンピュータ装置700は、1つのプロセッサ710を含むユニプロセッサシステム、または、幾つか(例えば、2、4、8、または、適切な数)のプロセッサ710を含むマルチプロセッサシステムであってよい。プロセッサ710は、命令を実行できる任意の適切なプロセッサであってよい。例えば、様々な実施形態において、プロセッサ610は、x86、PowerPC、SPARC若しくはMIPS ISA、または、任意の他の適切なISA等、様々な命令セットアーキテクチャ(「ISA」)のいずれかを実施する汎用または組み込みプロセッサであってよい。マルチプロセッサシステムにおいて、各プロセッサ610は、一般的に同じISAを実施してよいが、必ずしもそうとは限らない。
【0070】
一部の実施形態においては、グラフィックスプロセッシングユニット(「GPU」)712は、グラフィックスレンダリング機能、および/または、物理処理機能の提供に関与してよい。GPUは、例えば、グラフィック計算専用の高度に並列化されたプロセッサアーキテクチャを含んでよい。一部の実施形態においては、プロセッサ710およびGPU712は、1つまたは複数の同じ種類の装置として実施されてよい。
【0071】
システムメモリ720は、プロセッサ(複数可)610によってアクセス可能な命令とデータとを記憶するように構成されてよい。様々な実施形態においては、システムメモリ720は、スタティックランダムアクセスメモリ(「SRAM」)、同期型ダイナミックRAM(「SDRAM」)、不揮発/Flash(登録商標)型メモリ、または、任意の他の種類のメモリ等、任意の適切なメモリ技術を用いて実施されてよい。図示の実施形態においては、上述の方法、技術、およびデータ等、1つまたは複数の所望の機能を実施するプログラム命令およびデータは、コード725およびデータ726としてシステムメモリ720内に記憶されるとして示されている。
【0072】
一実施形態においては、I/Oインタフェース730は、ネットワークインタフェース740または他の周辺インタフェースを含む、プロセッサ710、システムメモリ720、装置内の任意の周辺装置間のI/Oトラフィックを調整するように構成されてよい。一部の実施形態においては、I/Oインタフェース730は、任意の必要なプロトコル、タイミング、または、他のデータ変換を行って、データ信号を1つのコンポーネント(例えば、システムメモリ720)から、別のコンポーネント(例えば、プロセッサ610)で使用するのに適したフォーマットに変換してよい。一部の実施形態においては、I/Oインタフェース730は、例えば、PCI(Peripheral Component InterConnect)バス規格の変形またはユニバーサルシリアルバス(「USB」)規格等、様々な種類の周辺バスを介して取り付けられた装置への支援を含んでよい。一部の実施形態においては、I/Oインタフェース730の機能は、例えば、ノースブリッジおよびサウスブリッジ等、2つ以上の別個のコンポーネントに分割されてよい。また、一部の実施形態においては、システムメモリ620へのインタフェース等、I/Oインタフェース730の機能の一部または全部は、プロセッサ710に直接、組み込まれてよい。
【0073】
ネットワークインタフェース740は、コンピュータ装置700と、例えば、他のコンピュータシステムまたは装置等、ネットワーク750(複数可)に取り付けられた他の装置760(複数可)との間でデータ交換を可能にするように構成されてよい。様々な実施形態において、ネットワークインタフェース740は、例えば、イーサネットネットワークの種類等、任意の適切な有線または無線の一般データネットワークを介して通信を支援してよい。さらに、ネットワークインタフェース740は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワーク等、電気通信/電話網を介して、ファイバチャネルSAN(ストレージエリアネットワーク)等、ストレージエリアネットワークを介して、または、任意の他の適切な種類のネットワークおよび/若しくはプロトコルを介して、通信を支援してよい。
【0074】
一部の実施形態においては、システムメモリ720は、対応する方法および装置の実施形態を実施するための上記のプログラム命令およびデータを記憶するように構成されたコンピュータアクセス可能媒体の一実施形態であってよい。しかしながら、他の実施形態においては、プログラム命令および/またはデータは、受信、送信、または、異なる種類のコンピュータアクセス可能媒体に記憶されてよい。一般的に言うと、コンピュータアクセス可能媒体は、I/Oインタフェース730を介してコンピュータ装置700に接続される、例えば、ディスクまたはDVD/CD等の磁気媒体または光媒体等、非一時的記憶媒体またはメモリ媒体を含んでよい。非一時的コンピュータアクセス可能記憶媒体は、システムメモリ720または他の種類のメモリとしてコンピュータ装置700の一部の実施形態に含まれ得る、RAM(例えば、SDRAM、DDR、SDRAM、RDRAM、SRAM等)、ROM等の任意の揮発性または不揮発性媒体も含んでよい。さらに、コンピュータアクセス可能媒体は、電気信号、電磁気信号、若しくは、デジタル信号等、ネットワークインタフェース740を介して実施されてよい、ネットワークおよび/または無線リンク等の通信媒体を介して伝えられる伝送媒体または信号を含んでよい。
図7に示すコンピュータ装置等、複数のコンピュータ装置の一部または全部を用いて、様々な実施形態において、上記機能を実施してよい。例えば、様々な異なる装置およびサーバ上で実行するソフトウェアコンポーネントが協同して機能を提供してよい。一部の実施形態においては、上記機能の一部は、汎用コンピュータシステムを用いて実施されることに加えて、または、その代わりに、記憶装置、ネットワーク装置、または、特殊用途コンピュータシステムを用いて実施されてよい。本明細書で使用される「コンピュータ装置」という語は、少なくともこれらすべての種類の装置を指すが、これらの種類の装置に限定されない。
【0075】
コンピュータノードとも呼ばれてよい計算ノードは、タブレットコンピュータ、パーソナルコンピュータ、スマートフォン、ゲームコンソール、コモディティハードウェアコンピュータ、仮想マシン、ウェブサービス、コンピューティングクラスタ、および、コンピュータ機器等、広範なコンピュータ環境で実施されてよい。これらのコンピュータ装置または環境のいずれかは、便宜上、計算ノードまたはコンピュータノードとして記載されてよい。
【0076】
分散されたクライアントのセットにインターネットおよび/または他のネットワークを介してアクセス可能な1つまたは複数のウェブサービス(様々な種類のクラウドベースのコンピューティングまたは記憶装置等)を提供する会社または公的機関等の実体によって設定されるネットワークは、プロバイダネットワークと名付けられてよい。このようなプロバイダネットワークは、プロバイダネットワークによって提供されるインフラストラクチャおよびウェブサービスの実施および分散に必要な、物理的および/または仮想のコンピュータサーバのコレクション、記憶装置、ネットワーク機器等、様々なリソースプールをホストする多くのデータセンタを含んでよい。リソースは、一部の実施形態においては、インスタンス、関連するサービスのセット等として、記憶に関する記憶容量、処理に関する処理能力等のウェブサービスに関連する様々な単位でクライアントに提供されてよい。仮想コンピューティングインスタンスは、例えば、(CPUの種類と数、メインメモリのサイズ等を示すことによって指定し得る)特定の計算能力を有する1つまたは複数のサーバと、特定のソフトウェアスタック(例えば、ハイパーバイザに加えて実行してよいオペレーティングシステムの特定のバージョン)を含んでよい。
【0077】
複数の異なる種類のコンピュータ装置を単独で、または、組み合わせて使用して、汎用または特殊用途のコンピュータサーバ、記憶装置、ネットワーク装置等を含むプロバイダネットワークのリソースを、種々の実施形態で実施してよい。一部の実施形態においては、クライアントまたはユーザに、例えば、ユーザに管理者ログインとパスワードを与えることによって、リソースインスタンスへの直接のアクセスを提供してよい。他の実施形態においては、プロバイダネットワークオペレータは、クライアントが、特定のクライアントアプリケーションの実行要件を指定するのを可能にしてよく、クライアントは、インスタンスまたは実行プラットフォームに直接アクセスする必要なく、アプリケーションに適した実行プラットフォーム(アプリケーションサーバインスタンス、Java(商標)仮想マシン(「JVM」)、汎用または特殊用途オペレーティングシステム、Ruby、Perl、Python、C、C++等の様々なインタープリタ型またはコンパイラ型プログラミング言語を支援するプラットフォーム、または、高性能コンピューティングプラットフォーム)で、クライアントのためのアプリケーションの実行をスケジュール可能にしてよい。ある実施態様においては、所与の実行プラットフォームは、1つまたは複数のリソースインスタンスを利用してよく、別の実施態様においては、複数の実行プラットフォームを1つのリソースインスタンスにマッピングしてよい。
【0078】
多くの環境において、異なるタイプの仮想コンピューティング、記憶装置、および/または、他のネットワークアクセス可能な機能を実施するプロバイダネットワークのオペレータは、顧客が、様々なリソース獲得モードで、リソースへのアクセスを予約または購入することを可能にしてよい。コンピュータリソースプロバイダは、顧客が、所望のコンピュータリソースを選択し、アプリケーションコンポーネントをコンピュータリソースに配備し、環境で実行するコンピュータを維持するための設備を提供してよい。さらに、コンピュータリソースプロバイダは、アプリケーション変更の要求または容量要件に応じて、顧客が手動または自動スケーリングによってアプリケーションに割り当てるリソースの数と種類を素早く、容易にスケールアップまたはスケールダウンするためのさらなる設備を提供してよい。コンピュータリソースプロバイダが提供するコンピュータリソースは、個別の単位で利用可能であってよく、その単位は、インスタンスと呼ばれてよい。インスタンスは、物理的なサーバハードウェアプラットフォーム、サーバで実行する仮想マシンインスタンス、または、その2つの何らかの組み合わせを表してよい。様々なインストールされたソフトウェアアプリケーション、ランタイム等を有する異なるオペレーティングシステム(OS)および/またはハイパーバイザで実行する異なるサイズのリソースを含む、インスタンスの様々な種類および構成が利用可能であってよい。インスタンスは、例えば、基盤となるコンピュータハードウェアの論理領域、フォールトトレラント領域、データセンタ、または、他の地理的位置を表す、特定のアベイラビリティゾーンでさらに利用可能であってよい。インスタンスは、アベイラビリティゾーン内で、または、アベイラビリティゾーンを超えてコピーされて、インスタンスの冗長性を向上させてよい、また、インスタンスは、特定のアベイラビリティゾーン内、または、アベイラビリティゾーン間を渡って移されてよい。一例として、アベイラビリティゾーンの特定のサーバとのクライアントの通信のレイテンシは、異なるサーバとのクライアントの通信のレイテンシより小さくてよい。このように、インスタンスは、レイテンシの高いサーバからレイテンシの低いサーバに移されて、総合的なクライアント体験を向上させてよい。
【0079】
一部の実施形態においては、プロバイダネットワークは、複数の地理的領域に体系化されてよく、各領域は、1つまたは複数のアベイラビリティゾーンを含んでよい。アベイラビリティゾーン(アベイラビリティコンテナとも呼ばれてよい)は、所与のアベイラビリティゾーンのリソースが他のアベイラビリティゾーンにおける障害から隔離または分離され得るように構成された1つまたは複数の個別の位置またはデータセンタを含んでよい。すなわち、1つのアベイラビリティゾーンにおける障害は、他のアベイラビリティゾーンのいずれにも障害を起こさない。従って、リソースインスタンスのアベイラビリティプロファイルは、異なるアベイラビリティゾーンのリソースインスタンスのアベイラビリティプロファイルから独立している。クライアントは、複数のアプリケーションインスタンスをそれぞれのアベイラビリティゾーンで開始することによって、1つの位置での障害からのアプリケーションの保護が可能であってよい。同時に、一部の実施態様において、安価な低いレイテンシのネットワーク接続が、同じ地理的領域内にあるリソースインスタンス間で提供されてよく、(そうすると、同じアベイラビリティゾーンのリソース間のネットワーク送信は、より速くなり得る)。
【0080】
上記の項に記載したプロセス、方法、および、アルゴリズムは、それぞれ、1つまたは複数のコンピュータまたはコンピュータプロセッサによって実行されるコードモジュールとして実現されてよく、コードモジュールによって全体的にまたは部分的に自動化されてよい。コードモジュールは、ハードドライブ、ソリッドステートメモリ、光ディスク等の任意の種類の非一時的コンピュータ可読媒体またはコンピュータ記憶装置に記憶されてよい。プロセスおよびアルゴリズムは、特定用途向け回路として部分的または全体的に実施されてよい。開示のプロセスおよびプロセスのステップの結果は、例えば、揮発性または不揮発性記憶装置等の任意の種類の非一時的コンピュータ記憶装置に、永続的に、または、そうでなく、記憶されてよい。
【0081】
上記の様々な特徴およびプロセスは、互いに独立して使用されてよく、様々な方法で組み合わせられてよい。すべての可能な組み合わせおよび下位の組み合わせは、本開示の範囲内にあるものとする。さらに、一定の方法またはプロセスのブロックは、一部の実施態様において省略されてよい。本明細書に記載の方法およびプロセスは、任意の特定のシーケンスに制限されず、方法およびプロセスに関連するブロックまたは状態は、適切な他のシーケンスで行うことができる。例えば、記載のブロックまたは状態は、具体的に開示した順序以外の順序で行われてよく、または、複数のブロックまたは状態は、1つのブロックまたは状態に組み合わされてよい。ブロックまたは状態の例は、直列に、並行して、または、他の方法で行われてよい。開示の実施形態例にブロックまたは状態を追加してもよく、取り除いてもよい。本明細書に記載のシステムおよびコンポーネントの例は、記載とは異なるように構成されてよい。例えば、開示の実施形態に要素を追加してよく、取り除いてよく、並べ替えてよい。
【0082】
様々な項目が、使用中に、メモリ内または記憶装置上に記憶されるとして示されており、また、これらの項目またはその一部は、メモリ管理とデータ整合性のためにメモリと他の記憶装置間で転送されてよいことも理解されよう。あるいは、他の実施形態においては、ソフトウェアモジュールおよび/またはシステムの一部または全部は、別の装置のメモリで実行してよく、コンピュータ間通信を介して図示のコンピュータシステムと通信してよい。さらに、一部の実施形態においては、システムおよび/またはモジュールの一部または全部は、1つまたは複数の特定用途向け集積回路(ASIC)、標準集積回路、コントローラ(例えば、適切な命令の実行と、マイクロコントローラおよび/または組み込みコントローラを含むことによって)、フィールドプログラマブルゲートアレイ(FPGA)、CPLD(complex programmable logic device)等を含むが、これらに限らないファームウェアおよび/またはハードウェアで少なくとも部分的に等、他の方法で実施または提供されてよい。モジュール、システム、および、データ構造の一部または全部は、ハードディスク、メモリ、ネットワーク、または、適切な装置によって、または、適切な接続を介して読み取られる携帯媒体記事(portable media article)等、コンピュータ可読媒体上に(例えば、ソフトウェア命令、または、構造化データとして)記憶されてもよい。システム、モジュール、および、データ構造は、無線ベースおよび有線/ケーブルベースの媒体を含む、様々なコンピュータ可読伝送媒体上で生成されたデータ信号(例えば、搬送波または他のアナログ若しくはデジタル伝播信号の一部として)送信されてもよく、(例えば、単一または多重化されたアナログ信号の一部として、または、複数の個別のデジタルパケット若しくはフレームとして)様々な形態を取ってよい。このようなコンピュータプログラム製品は、他の実施形態において、他の形態も取ってよい。従って、本発明は、他のコンピュータシステム構成を用いて実践されてよい。
【0083】
前述の事項は、以下の条項を考慮することでもよりよく理解されよう。
1.トランザクションデータの分析関係を識別するシステムであって、
データソースに通信可能に接続された1つまたは複数のコンピュータノードと、
コンピュータ可読命令を記憶した1つまたは複数のメモリと、
を備え、前記コンピュータ可読命令を前記1つまたは複数のコンピュータノードによって実行すると、前記システムは、少なくとも、
前記データソースによって処理された複数のクエリを示す情報を受信し、
前記複数のクエリの少なくとも2つのフィールドの一致参照の繰り返しに少なくとも部分的に基づいて、次元に関連付けられた複数の属性であって、前記少なくとも2つのフィールドに基づいた前記複数の属性を識別し、
前記複数の属性の階層組織を示す情報であって、前記少なくとも2つのフィールドのうちの、あるフィールドのデータ型と、前記複数のクエリにおける前記フィールドとGROUPING句との第1の関連付けと、前記複数のクエリの前記フィールドとAGGREGATE句との第2の関連付けとを含む前記情報を求めて、前記複数のクエリを少なくとも分析することによって、前記次元に関連付けられた階層のレベルを識別し、
前記複数の属性と前記レベルとを含む階層を形成する、
前記システム。
【0084】
2.コンピュータ可読命令を記憶した1つまたは複数のメモリをさらに含み、前記コンピュータ可読命令を前記1つまたは複数のコンピュータノードによって実行すると、前記システムは、少なくとも、
前記フィールドの前記データ型から階層へのマッピングを含むキュレートされたデータセットに少なくとも部分的に基づいて、前記階層の前記レベルを選択する、条項1に記載のシステム。
【0085】
3.コンピュータ可読命令を記憶した1つまたは複数のメモリをさらに含み、前記コンピュータ可読命令を前記1つまたは複数のコンピュータノードによって実行すると、前記システムは、少なくとも、
前記フィールドがGROUPING句またはAGGREGATE句の少なくとも1つと関連付けられる頻度を決定することに少なくとも部分的に基づいて、前記階層の前記レベルを識別する、条項1に記載のシステム。
【0086】
4.コンピュータ可読命令を記憶した1つまたは複数のメモリをさらに含み、前記コンピュータ可読命令を前記1つまたは複数のコンピュータノードによって実行すると、前記システムは、少なくとも、
前記複数のクエリが前記フィールドから第2フィールドへの変換を含むと決定することに少なくとも部分的に基づいて、前記1つまたは複数の属性を識別する、条項1に記載のシステム。
【0087】
5.コンピュータ可読命令を記憶した1つまたは複数のメモリをさらに含み、前記コンピュータ可読命令を前記1つまたは複数のコンピュータノードによって実行すると、前記システムは、少なくとも、
前記複数のクエリのSELECT句が前記少なくとも2つのフィールドへの参照を含む回数を求めることによって、一致参照の前記繰り返しを決定する、
条項1に記載のシステム。
【0088】
6.命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令を1つまたは複数のコンピュータ装置によって実行すると、前記1つまたは複数のコンピュータ装置は、少なくとも、
複数のクエリの少なくとも2つのフィールドの一致参照に少なくとも部分的に基づいて、次元に関連付けられた複数の属性であって、前記少なくとも2つのフィールドに基づいた前記複数の属性を識別し、
前記複数の属性の階層組織を示す情報を求めて前記複数のクエリを少なくとも分析することによって、前記次元に関連付けられた階層のレベルを識別し、前記分析される情報は、前記1つまたは複数のフィールドのうちの、あるフィールドのデータ型と、前記複数のクエリにおける前記フィールドとGROUPING句との第1の関連付けと、前記複数のクエリの前記フィールドとAGGREGATE句との第2の関連付けと、の少なくとも1つを含む、
前記非一時的コンピュータ可読記憶媒体。
【0089】
7.命令をさらに含み、前記命令を前記1つまたは複数のコンピュータ装置が実行すると、前記1つまたは複数のコンピュータ装置は、少なくとも、
前記データ型に関連付けられた1つまたは複数の階層に少なくとも部分的に基づいて、前記階層の前記レベルを識別する、条項6に記載の非一時的コンピュータ可読記憶媒体。
【0090】
8.前記データ型は、時間に対応し、前記階層は、複数のレベルを含み、前記複数のレベルの各レベルは、時間に対応する、条項7に記載の非一時的コンピュータ可読記憶媒体。
【0091】
9.命令をさらに含み、前記命令を前記1つまたは複数のコンピュータ装置によって実行すると、前記1つまたは複数のコンピュータ装置は、少なくとも、
前記フィールドがGROUPING句またはAGGREGATE句の少なくとも1つに関連付けられる頻度を決定することに少なくとも部分的に基づいて、前記階層の前記レベルを識別する、条項6に記載の非一時的コンピュータ可読記憶媒体。
【0092】
10.命令をさらに含み、前記命令を前記1つまたは複数のコンピュータ装置によって実行させると、前記1つまたは複数のコンピュータ装置は、少なくとも、
前記複数のクエリが第1フィールドから値への変換を含むことを決定することに少なくとも部分的に基づいて、前記少なくとも2つの属性のうちの、ある属性を識別する、条項6に記載の非一時的コンピュータ可読記憶媒体。
【0093】
11.一致参照は、SELECT句内に含まれる前記少なくとも2つのフィールドを参照することを含む、条項6に記載の非一時的コンピュータ可読記憶媒体。
【0094】
12.命令をさらに含み、前記命令を前記1つまたは複数のコンピュータ装置によって実行すると、前記1つまたは複数のコンピュータ装置は、少なくとも、
前記複数のクエリのトランザクション文脈内で生じる前記少なくとも2つフィールドの一致参照に少なくとも部分的に基づいて、前記次元と、前記次元に関連付けられた前記複数の属性とを識別する、条項6に記載の非一時的コンピュータ可読記憶媒体。
【0095】
13.命令をさらに含み、前記命令を前記1つまたは複数のコンピュータ装置によって実行すると、前記1つまたは複数のコンピュータ装置は、少なくとも、
前記次元と前記階層の前記レベルと含む前記階層にマッピングされてよいデータセットのフィールド値の数を決定し、且つ、
前記階層にマッピングされてよいフィールド値の前記数に少なくとも部分的に基づいて、前記階層をランク付けする、条項6に記載の非一時的コンピュータ可読記憶媒体。
【0096】
14.トランザクションデータの分析関係を識別するコンピュータ実施方法であって、
少なくとも2つのフィールドの結合パスを、複数のクエリの前記少なくとも2つのフィールドの一致参照に少なくとも部分的に基づいて、識別することと、
前記少なくとも2つのフィールドの階層組織を示す情報を求めて前記複数のクエリを少なくとも分析することによって、前記結合パスに関連付けられた集計のレベルを識別することと、を含み、前記分析される情報は、前記少なくとも2つのフィールドのうちの、あるフィールドのデータ型と、前記複数のクエリの前記フィールドとGROUPING句との第1の関連付けと、前記複数のクエリの前記フィールドとAGGREGATE句との第2の関連付けと、の少なくとも1つを含む、
前記方法。
【0097】
15.前記データ型と1つまたは複数の集計階層との間のマッピングに少なくとも部分的に基づいて、前記集計の前記レベルを識別することを、
さらに含む、条項14に記載のコンピュータ実施方法。
【0098】
16.前記複数のクエリは、データベース管理システムまたはデータストリームによって行われる操作のログの少なくとも1つに表されるクエリに対応する、条項14に記載のコンピュータ実施方法。
【0099】
17.前記フィールドがGROUPING句またはAGGREGATE句の少なくとも1つに関連付けられる頻度を決定することに少なくとも部分的に基づいて、前記集計の前記レベルを識別することを、
さらに含む、条項14に記載のコンピュータ実施方法。
【0100】
18.前記複数のクエリが第1フィールドから値への変換を含むと決定することに少なくとも部分的に基づいて、前記結合パスに含む前記少なくとも2つのフィールドのうちの少なくとも1つを識別することを、
さらに含む、条項14に記載のコンピュータ実施方法。
【0101】
19.前記複数のクエリの前記1つまたは複数のフィールドの一致参照を計数することを、
さらに含む、条項14に記載のコンピュータ実施方法。
【0102】
20.前記複数のクエリのトランザクション文脈内で生じる前記1つまたは複数のフィールドの一致参照に少なくとも部分的に基づいて、前記結合パスを識別することを、
さらに含む、条項14に記載のコンピュータ実施方法。
【0103】
21.前記少なくとも2つのフィールド同士が関連しているという表示をユーザから受信することに少なくとも部分的に基づいて、前記結合パスを識別することを、
さらに含む、条項14に記載のコンピュータ実施方法。
【0104】
本明細書で使用される条件語、特に、「can」「could」「might」「may」「e.g.」等は、別段の指定のない限り、または、文脈内で別なように理解されない限り、一定の特徴、要素、および/または、ステップを含む実施形態もあれば、一定の特徴、要素、および/または、ステップを含まない実施形態もあるということを一般的に意図している。従って、このような条件語は、特徴、要素、および/または、ステップが1つまたは複数の実施形態に必ず必要であるということを意味してはおらず、1つまたは複数の実施形態が、著者の入力または指示の有無に関わらず、これらの特徴、要素、および/または、ステップが任意の特定の実施形態に含まれる、または、行われるか否かを決定する論理を必ず含むことも意味してはいない。「comprising」「including」「having」等の語は、同意語であり、オープンエンド形式で包含的に使用され、追加の要素、特徴、行為、操作等を除外しない。また、「or」という語は、(排他的な意味でなく)包含的な意味で使用され、例えば、要素のリストをつなぐために使用される場合、「or」という語は、リストの要素の1つ、幾つか、または、すべてを意味する。
【0105】
一定の実施形態例を記載したが、これらの実施形態は、例示のみを意図しており、本明細書に開示の発明の範囲を制限することを意図していない。従って、前述の記載はいずれも、任意の具体的な特徴、特性、ステップ、モジュール、または、ブロックが必要または不可欠であることを意味するものではない。実際に、本明細書に記載の新規な方法およびシステムは、様々な他の形式で実現されてよく、さらに、本明細書に記載の方法およびシステムの形態における様々な省略、置き換え、変更は、本明細書に開示の発明の精神を逸脱することなく、行われてよい。添付の請求項と、その同等物とは、本明細書に開示の発明の一部の範囲および精神内にあるこのような形態および修正を含むものとする。