(57)【要約】  分散システムの頻繁パターン（ＦＰ）分析をサポートする方法、システム、及びデバイスについて記載する。いくつかのデータベースシステムが、データセットを分析してデータ内のＦＰを決定し得る。しかしながら、ＦＰマイニングが組み合わせ論に依拠するため、かなり大規模なデータセットは、ＦＰ分析を取り扱うために必要とされるメモリ及び処理リソースの組み合わせ爆発を招く。大規模データセットのＦＰ分析に必要なリソースを得るために、データベースシステムは、複数のデータ処理マシンを起動し得、これらマシンにわたりマイニングプロセスを分散させ得る。データベースシステムは、共通性とデータ属性リスト長との間のトレードオフに従ってデータセットを分散させ、各データ処理マシンにおけるリソースを効率的に利用し得る。これは、多数のデータオブジェクトか、又はデータオブジェクトについて多数のデータ属性かのいずれかを有するが、双方は有さないデータサブセットを結果としてもたらし、組み合わせ爆発を制限し、対応して必要なリソースを制限し得る。
2021525907.tif 000002
【特許請求の範囲】
【請求項１】
データベースシステムにおける頻繁パターン（ＦＰ）分析の方法であって、
前記データベースシステムで、ＦＰ分析のためのデータセットを受信するステップであり、前記データセットは複数のデータオブジェクトを含み、前記複数のデータオブジェクトの各々は幾つかのデータ属性を含む、ステップと、
前記データベースシステム内の複数のデータ処理マシンの利用可能なメモリリソース能力を識別するステップと、
前記複数のデータオブジェクトを複数のデータサブセットにグループ化するステップであり、前記グループ化は、前記複数のデータオブジェクトの各々の前記データ属性の数と、前記識別された利用可能なメモリリソース能力とに少なくとも部分的に基づく、ステップと、
前記複数のデータオブジェクトを前記複数のデータ処理マシンに分散させるステップであり、前記複数のデータ処理マシンの各データ処理マシンは前記複数のデータサブセットのうち１つのデータサブセットを受信する、ステップと、
前記複数のデータ処理マシンの各データ処理マシンで別個に、前記複数のデータサブセットのうち受信した１つのデータサブセットに対してＦＰ分析手順を実行するステップと、
を含む方法。
【請求項２】
前記複数のデータ処理マシンの各データ処理マシンで別個に、前記ＦＰ分析手順を実行するステップは、
前記複数のデータ処理マシンの各データ処理マシンで、前記複数のデータサブセットのうち受信した１つのデータサブセットに対応するＦＰ木及びリンクリストを含む凝縮データ構造を生成するステップと、
前記複数のデータ処理マシンの各データ処理マシンのローカルメモリに、前記凝縮データ構造を記憶するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記複数のデータ処理マシンの各データ処理マシンで別個に、前記ＦＰ分析手順を実行するステップは、
前記複数のデータ処理マシンの各データ処理マシンでローカルに、前記凝縮データ構造に対してＦＰマイニング手順を実行するステップと、
前記複数のデータ処理マシンの各データ処理マシンで、前記ＦＰマイニング手順の結果としてＦＰのセットを識別するステップと、
をさらに含む、請求項２に記載の方法。
【請求項４】
前記データベースシステムで、ユーザデバイスから、分析のためのデータ属性を示すユーザ要求を受信するステップであり、前記ＦＰマイニング手順は前記ユーザ要求に少なくとも部分的に基づいて実行される、ステップと、
前記ユーザデバイスに、前記ユーザ要求に応答して、前記ＦＰマイニング手順に少なくとも部分的に基づいて分析のための前記示されたデータ属性に関連づけられたＦＰを送信するステップと、
をさらに含む請求項３に記載の方法。
【請求項５】
前記複数のデータ処理マシンの各データ処理マシンから、データベースにおける記憶のために前記ＦＰのセットを送信するステップ、
をさらに含む請求項３に記載の方法。
【請求項６】
前記複数のデータオブジェクトを前記複数のデータサブセットにグループ化するステップは、
各データ属性の出現頻度を決定するステップであり、前記グループ化は、各データ属性について決定された出現頻度に少なくとも部分的に基づく、ステップ
をさらに含む、請求項１乃至５のうちいずれか１項に記載の方法。
【請求項７】
前記複数のデータサブセットの各データサブセットは、データオブジェクトしきいより少数のデータオブジェクトか、又は前記データサブセットの各データオブジェクトについて、データ属性しきいより少数のデータ属性かのいずれかを含む、請求項１乃至６のうちいずれか１項に記載の方法。
【請求項８】
前記複数のデータ処理マシンの前記利用可能なメモリリソース能力を識別するステップは、
前記複数のデータ処理マシンに複数のメモリリソース能力要求を送信するステップと、
前記複数のデータ処理マシンの各データ処理マシンから、前記複数のデータ処理マシンの各データ処理マシンの利用可能なメモリリソースのそれぞれの指標を受信するステップと、
を含む、請求項１乃至７のうちいずれか１項に記載の方法。
【請求項９】
前記複数のデータ処理マシンに前記複数のメモリリソース能力要求を送信するステップは、
メモリリソース能力要求のスーパーセットをデータ処理マシンのスーパーセットに送信するステップと、
前記データ処理マシンのスーパーセットの各データ処理マシンから、前記データ処理マシンのスーパーセットの各データ処理マシンの利用可能なメモリリソースのそれぞれの指標を受信するステップと、
前記複数のデータ処理マシンの利用可能なメモリリソースの前記指標に少なくとも部分的に基づいて、前記ＦＰ分析のための前記複数のデータ処理マシンを選択するステップと、
をさらに含む、請求項８に記載の方法。
【請求項１０】
前記複数のデータ処理マシンの前記利用可能なメモリリソース能力を識別するステップは、
前記複数のデータ処理マシンの各データ処理マシンのタイプ、前記複数のデータ処理マシンの各データ処理マシンで実行している他のプロセス、前記複数のデータ処理マシンの各データ処理マシンに記憶された他のデータ、又はこれらの組み合わせに少なくとも部分的に基づいて前記複数のデータ処理マシンで利用可能なメモリリソースを推定するステップ
を含む、請求項１乃至７のうちいずれか１項に記載の方法。
【請求項１１】
前記識別された利用可能なメモリリソース能力に少なくとも部分的に基づいて前記ＦＰ分析のための前記複数のデータ処理マシンを起動するステップ、
をさらに含む請求項１乃至１０のうちいずれか１項に記載の方法。
【請求項１２】
前記データベースシステムで、擬似リアルタイムＦＰ分析手順に少なくとも部分的に基づいてＦＰ分析のための更新されたデータセットを受信するステップと、
前記データベースシステム内の前記複数のデータ処理マシンの更新された利用可能なメモリリソース能力を識別するステップと、
前記識別された更新された利用可能なメモリリソース能力と、前記更新されたデータセットのサイズに少なくとも部分的に基づいて、前記データベースシステムの１つ以上さらなるデータ処理マシンを起動するかどうかを決定するステップと、
をさらに含む請求項１乃至１１のうちいずれか１項に記載の方法。
【請求項１３】
前記複数のデータ処理マシンは、仮想マシン、コンテナ、データサーバ、サーバクラスタ、又はこれらの組み合わせを含む、請求項１乃至１２のうちいずれか１項に記載の方法。
【請求項１４】
前記複数のデータオブジェクトは、ユーザ、ユーザのセット、ユーザデバイス、ユーザデバイスのセット、又はこれらの組み合わせを含む、請求項１乃至１３のうちいずれか１項に記載の方法。
【請求項１５】
前記データ属性は、データオブジェクトにより実行されるアクティビティ、前記データオブジェクトにより実行される前記アクティビティのパラメータ、前記データオブジェクトの特性、又はこれらの組み合わせに対応する、請求項１乃至１４のうちいずれか１項に記載の方法。
【請求項１６】
前記データ属性はバイナリ値を含む、請求項１５に記載の方法。
【請求項１７】
データベースシステムにおける頻繁パターン（ＦＰ）分析のための装置であって、
前記データベースシステムで、ＦＰ分析のためのデータセットを受信する手段であり、前記データセットは複数のデータオブジェクトを含み、前記複数のデータオブジェクトの各々は幾つかのデータ属性を含む、手段と、
前記データベースシステム内の複数のデータ処理マシンの利用可能なメモリリソース能力を識別する手段と、
前記複数のデータオブジェクトを複数のデータサブセットにグループ化する手段であり、前記グループ化は、前記複数のデータオブジェクトの各々の前記データ属性の数と、前記識別された利用可能なメモリリソース能力とに少なくとも部分的に基づく、手段と、
前記複数のデータオブジェクトを前記複数のデータ処理マシンに分散させる手段であり、前記複数のデータ処理マシンの各データ処理マシンは前記複数のデータサブセットのうち１つのデータサブセットを受信する、手段と、
前記複数のデータ処理マシンの各データ処理マシンで別個に、前記複数のデータサブセットのうち受信した１つのデータサブセットに対してＦＰ分析手順を実行する手段と、
を含む装置。
【請求項１８】
前記複数のデータ処理マシンの各データ処理マシンで、前記複数のデータサブセットのうち受信した１つのデータサブセットに対応するＦＰ木及びリンクリストを含む凝縮データ構造を生成する手段と、
前記複数のデータ処理マシンの各データ処理マシンのローカルメモリに、前記凝縮データ構造を記憶する手段と、
をさらに含む請求項１７に記載の装置。
【請求項１９】
前記複数のデータサブセットの各データサブセットは、データオブジェクトしきいより少数のデータオブジェクトか、又は前記データサブセットの各データオブジェクトについて、データ属性しきいより少数のデータ属性かのいずれかを含む、請求項１７に記載の装置。
【請求項２０】
請求項１７乃至１９のうち１項に記載の装置であって、プロセッサと、前記プロセッサと電子通信するメモリと、前記メモリに記憶され、当該装置に請求項１乃至１６のうち１項に記載の方法のステップを実行させるように前記プロセッサにより実行可能な命令と、を含む装置。
【請求項２１】
１つ以上のプログラムを記憶した１つ以上のコンピュータ読取可能媒体であって、前記１つ以上のプログラムの実行は、コンピュータ又は複数のコンピュータに請求項１乃至１６のうち１項に記載の方法を実行させる、１つ以上のコンピュータ読取可能媒体。
【請求項２２】
１つ以上のコンピュータ上で実行されるのに適した１つ以上のプログラムであって、前記１つ以上のプログラムの実行は、コンピュータ又は複数のコンピュータに請求項１乃至１６のうち１項に記載の方法を実行させる、１つ以上のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［相互参照］
本特許出願は、「Frequent  Pattern  Analysis  for  Distributed  Systems」と題され、2018年5月25日に出願されたXieらによる米国仮特許出願第62/676,526号に対する優先権を主張するものであり、該出願は、本出願の譲受人に譲渡され、本明細書に参照により明示的に組み込まれている。
【０００２】
［技術分野］
本開示は、一般にデータベースシステム及びデータ処理に関し、より具体的には、分散システムのための頻繁パターン（ＦＰ）分析に関する。
【背景技術】
【０００３】
クラウドプラットフォーム（すなわち、クラウドコンピューティングのためのコンピューティングプラットフォーム）は、多くのユーザにより採用され、リモートサーバの共有ネットワークを使用してデータを記憶し、管理し、処理することができる。ユーザは、クラウドプラットフォーム上でアプリケーションを開発して、データの保存、管理、及び処理を取り扱うことができる。いくつかの場合、クラウドプラットフォームは、マルチテナントデータベースシステムを利用することがある。ユーザは、様々なユーザデバイス（例えば、デスクトップコンピュータ、ラップトップ、スマートフォン、タブレット、又は他のコンピューティングシステム等）を使用してクラウドプラットフォームにアクセスすることができる。
【０００４】
一例において、クラウドプラットフォームは、顧客関係管理（ＣＲＭ）ソリューションをサポートすることがある。これは、販売、サービス、マーケティング、コミュニティ、分析、アプリケーション、モノのインターネットに対するサポートを含み得る。ユーザは、クラウドプラットフォームを利用して、ユーザのコンタクトの管理に役立てることができる。例えば、ユーザのコンタクトを管理することは、データを分析すること、通信を記憶及び準備すること、並びに機会及び販売を追跡することを含んでもよい。
【０００５】
いくつかの場合、クラウドプラットフォームは、データセットの頻繁パターン（ＦＰ）分析をサポートすることがある。例えば、データ処理マシンは、データベース内のデータ又はユーザデバイスにより示されたデータに基づいてＦＰを決定することができる。しかしながら、かなり大規模なデータセットに対するＦＰ分析の実行は、メモリリソース、処理リソース、処理レイテンシ、又はこれらの何らかの組み合わせに非常にコストがかかる場合がある。この問題は、システムのユーザ又はユーザデバイスのアクティビティデータを追跡するとき、特に一般的であり得る。例えば、このデータに基づいて生成されたデータセットは、数千のユーザ又はユーザデバイスを含むことがあり、各ユーザ又はユーザデバイスは、異なるアクティビティ又はアクティビティパラメータに対応する数千のデータ属性に関連づけられる場合がある。ＦＰ分析が、データオブジェクト（例えば、ユーザ）とデータ属性（例えば、アクティビティ）の間の組み合わせ論を扱うため、このデータセットの大きい長さと幅は、データ処理マシンに膨大なメモリと処理のオーバーヘッドを結果としてもたらす。
【図面の簡単な説明】
【０００６】
【図１】本開示の態様による分散システムの頻繁パターン（ＦＰ）分析をサポートするデータベースシステムにおけるＦＰ分析のためのシステムの一例を示す。
【図２】本開示の態様による分散システムのＦＰ分析をサポートするＦＰ分析手順を実現するデータベースシステムの一例を示す。
【図３】本開示の態様による分散型ＦＰ分析手順を実現するデータベースシステムの一例を示す。
【図４】本開示の態様による分散システムのＦＰ分析をサポートするプロセスフローの一例を示す。
【図５】本開示の態様による分散システムのＦＰ分析をサポートする装置のブロック図を示す。
【図６】本開示の態様による分散システムのＦＰ分析をサポートする分散モジュールのブロック図を示す。
【図７】本開示の態様による分散システムのＦＰ分析をサポートするデバイスを含むシステムの図を示す。
【図８】本開示の態様による分散システムのＦＰ分析をサポートする方法を示すフローチャートを示す。
【発明を実施するための形態】
【０００７】
いくつかのデータベースシステムは、データセットに対して頻繁パターン（frequent  pattern、ＦＰ）分析を行って、データ内の共通で興味深い（interesting）パターンを決定することができる。これらの興味深いパターンは、マーケティング分析や販売追跡などの多くの顧客関係管理（ＣＲＭ）オペレーションのユーザに有用な可能性がある。いくつかの場合、データベースシステムは、データベースシステムの構成に基づいて１つ以上のデータセットのＦＰを自動的に決定することができる。他の場合に、データベースシステムは、ユーザデバイスから（例えば、ユーザデバイスにおけるユーザ入力に基づいて）コマンドを受信して、データセットのＦＰを決定してもよい。データベースシステムは、１つ以上のＦＰマイニング手法を使用して、データセット内のＦＰを決定することができる。例えば、システムの効率を改善するため、及びパターンを決定する際のレイテンシをより短くするために、データベースシステムは、データセットを、ＦＰ木（FP-tree）及びリンクリスト（linked  list）を含む凝縮データ構造（condensed  data  structure）に変換してもよく、ＦＰ成長モデルを使用してＦＰを導出してもよい。この凝縮データ構造は、元のデータセット（例えば、関係データベーステーブルとして記憶されたデータセット）がサポートできるより高速なＦＰマイニングと、決定されたパターンのより高速なクエリをサポートし得る。例えば、データベースシステム、又は、より具体的にはデータベースシステムのデータ処理マシン（例えば、ベアメタルマシン、仮想マシン、又はコンテナ）は、データセットの２回の通過だけで凝縮データ構造を生成することができる。凝縮データ構造からのＦＰの決定は、元のデータからＦＰを決定するよりも約１〜２桁速いスケールであり得るため、データベースシステムは、ＦＰ及び対応する興味深いパターンを導出することに伴うレイテンシを有意に改善し得る。さらに、これらのＦＰがデータ処理マシンでローカルに記憶され、処理される場合、データ処理マシンがデータベースシステムのデータベースに当たる必要なくローカルにクエリを取り扱うことができるので、（例えば、処理又は表示のためにユーザデバイスにより）パターンについてクエリすることに伴うレイテンシを大きく低減し得る。
【０００８】
しかしながら、フルのＦＰ木と、ＦＰ木からマイニングされたＦＰの完全なセットを生成し、ローカルに記憶することは、データ処理マシンにおいて大量のメモリ及び処理リソースを使用する可能性がある。いくつかの場合、データ処理マシンは、特にかなり大規模なデータセット（例えば、ユーザ又はユーザデバイスにより実行されたウェブブラウザアクティビティ又は他のアクティビティに関連する情報を含むデータセット）では、このＦＰ分析手順を取り扱うのに十分な利用可能メモリ又は処理リソースを含まない場合がある。大規模データセットを取り扱うために、データベースシステムは、幾つかのデータ処理マシンにわたりＦＰ分析手順を分散させることができる。各データ処理マシンは、データのサブセットを受信することができ、サブセットをＦＰ分析のために効率的なデータ構造（例えば、ローカルＦＰ木及びリンクリスト）に別個に変換することができる。次いで、マシンは、これらのローカルに記憶されたデータ構造に対してＦＰマイニングを別個に実行することができる。各データ処理マシンに送られるデータの量は、その特定のデータ処理マシンに対して識別された利用可能なリソースに基づいてもよい。
【０００９】
データ処理マシンにおいてリソースを効率的に利用するために、データベースシステムは、データセットを分散させて、データサブセットのデータオブジェクトとデータ属性との間の組み合わせを制限することができる。例えば、データオブジェクトの数と、これらデータオブジェクトのデータ属性の数との双方が大きい（例えば、何らかのしきい値より大きい）場合、ＦＰ分析は、組み合わせ爆発を経験し、データのＦＰ分析を取り扱うために必要なメモリ及び処理リソースを大きく増加させる可能性がある。データベースシステムは、代わりに、データの分散に従ってデータをデータサブセットにグループ化し（group）てもよく、それにより、各データサブセットは、データオブジェクトの特定の動的な又は予め決定されたしきい数を超えるか、あるいはデータ属性の特定の動的な又は予め決定されたしきい数を超えるが、双方は超えないことが可能である。このようにして、データベースシステムは、各データサブセット内の組み合わせ論（combinatorics）を制限するような方法で、データセットをデータサブセットに分割することができる。この手法は、各データ処理マシンにおけるリソースの効率的な利用を可能にし、レイテンシを改善し、ＦＰマイニング手順のオーバーヘッドを低減し得る。
【００１０】
本開示の態様は、最初、オンデマンドデータベースサービスをサポートする環境の文脈で説明される。本開示のさらなる態様が、データベースシステム及びプロセスフローを参照して説明される。本開示の態様はさらに、分散システムのＦＰ分析に関連する装置図、システム図、及びフローチャートにより例示され、これらを参照して説明される。
【００１１】
図１は、本開示の様々な態様による分散システムのＦＰ分析をサポートするクラウドコンピューティングのシステム１００の一例を示す。システム１００は、クラウドクライアント１０５、コンタクト１１０、クラウドプラットフォーム１１５、及びデータセンタ１２０を含む。クラウドプラットフォーム１１５は、パブリック又はプライベートクラウドネットワークの一例であり得る。クラウドクライアント１０５は、ネットワーク接続１３５を介してクラウドプラットフォーム１１５にアクセスすることができる。ネットワークは、インターネットなどのトランスファーコントロールプロトコル及びインターネットプロトコル（ＴＣＰ／ＩＰ）を実装してもよく、あるいは他のネットワークプロトコルを実装してもよい。クラウドクライアント１０５は、サーバ（例えば、クラウドクライアント１０５‐ａ）、スマートフォン（例えば、クラウドクライアント１０５‐ｂ）、又はラップトップ（例えば、クラウドクライアント１０５‐ｃ）などのユーザデバイスの一例であり得る。他の例において、クラウドクライアント１０５は、デスクトップコンピュータ、タブレット、センサ、又は通信を生成、分析、送信、又は受信することができる他のコンピューティングデバイス若しくはシステムでもよい。いくつかの例において、クラウドクライアント１０５は、ビジネス、エンタープライズ、非営利、スタートアップ、又は任意の他の組織タイプの一部であるユーザにより操作され得る。
【００１２】
クラウドクライアント１０５は、複数のコンタクト１１０と対話することができる。対話１３０は、クラウドクライアント１０５とコンタクト１１０との間の通信、機会、購入、販売、又は任意の他の対話を含んでもよい。対話１３０にデータが関連づけられてもよい。クラウドクライアント１０５は、クラウドプラットフォーム１１５にアクセスして、対話１３０に関連づけられたデータを記憶し、管理し、処理することができる。いくつかの場合、クラウドクライアント１０５は、関連づけられたセキュリティ又は許可レベルを有してもよい。クラウドクライアント１０５は、関連づけられたセキュリティ又は許可レベルに基づいてクラウドプラットフォーム１１５内の特定のアプリケーション、データ、及びデータベース情報へのアクセスを有してもよく、他のものへのアクセスを有さなくてもよい。
【００１３】
コンタクト１１０は、本人自身で、又は電話、電子メール、ウェブ、テキストメッセージ、メール、若しくは任意の他の適切な形式の対話（例えば、対話１３０‐ａ、１３０‐ｂ、１３０‐ｃ、及び１３０‐ｄ）を介して、クラウドクライアント１０５と対話することができる。対話１３０は、ビジネス対ビジネス（business-to-business、Ｂ２Ｂ）対話、又はビジネス対消費者（business-to-consumer、Ｂ２Ｃ）対話であり得る。コンタクト１１０は、顧客、潜在顧客、リード、クライアント、又は何らかの他の適切な用語で参照されてもよい。いくつかの場合、コンタクト１１０は、サーバ（例えば、コンタクト１１０‐ａ）、ラップトップ（例えば、コンタクト１１０‐ｂ）、スマートフォン（例えば、コンタクト１１０‐ｃ）、又はセンサ（例えば、コンタクト１１０‐ｄ）などのユーザデバイスの一例であり得る。他の場合には、コンタクト１１０は、別のコンピューティングシステムでもよい。いくつかの場合、コンタクト１１０は、ユーザ又はユーザのグループにより操作され得る。ユーザ又はユーザのグループは、ビジネス、製造業者、又は任意の他の適切な組織に関連づけられてもよい。
【００１４】
クラウドプラットフォーム１１５は、オンデマンドデータベースサービスをクラウドクライアント１０５に提供することができる。いくつかの場合、クラウドプラットフォーム１１５は、マルチテナントデータベースシステムの一例であり得る。この場合、クラウドプラットフォーム１１５は、単一のソフトウェアインスタンスで複数のクラウドクライアント１０５にサービス提供することができる。しかしながら、他のタイプのシステムが実現されてもよく、これらに限られないがクライアント‐サーバシステム、モバイルデバイスシステム、及びモバイルネットワークシステムが含まれる。いくつかの場合、クラウドプラットフォーム１１５は、ＣＲＭソリューションをサポートすることができる。これには、販売、サービス、マーケティング、コミュニティ、分析、アプリケーション、及びモノのインターネットに対するサポートを含んでもよい。クラウドプラットフォーム１１５は、ネットワーク接続１３５を通じてクラウドクライアント１０５からコンタクト対話１３０に関連づけられたデータを受信することができ、該データを記憶し、分析することができる。いくつかの場合、クラウドプラットフォーム１１５は、コンタクト１１０とクラウドクライアント１０５との間の対話１３０から直接データを受信してもよい。いくつかの場合、クラウドクライアント１０５は、クラウドプラットフォーム１１５上で動作するアプリケーションを開発することができる。クラウドプラットフォーム１１５は、リモートサーバを使用して実現されてもよい。いくつかの場合、リモートサーバは、１つ以上のデータセンタ１２０に配置されてもよい。
【００１５】
データセンタ１２０は、複数のサーバを含み得る。複数のサーバは、データの記憶、管理、及び処理のために使用できる。データセンタ１２０は、接続１４０を介してクラウドプラットフォーム１１５から、又はクラウドクライアント１０５、若しくはコンタクト１１０とクラウドクライアント１０５との間の対話１３０から直接、データを受信することができる。データセンタ１２０は、セキュリティの目的で複数の冗長性を利用することができる。いくつかの場合、データセンタ１２０に記憶されたデータは、異なるデータセンタ（図示されていない）でのデータのコピーによりバックアップされてもよい。
【００１６】
サブシステム１２５は、クラウドクライアント１０５、クラウドプラットフォーム１１５、及びデータセンタ１２０を含み得る。いくつかの場合、サブシステム１２５のコンポーネントのうち任意のもので、又はこれらのコンポーネントの組み合わせで、データ処理が生じてもよい。いくつかの場合、サーバがデータ処理を行ってもよい。サーバは、クラウドクライアント１０５でもよく、あるいはデータセンタ１２０に配置されてもよい。
【００１７】
いくつかのデータセンタ１２０は、データセットに対してＦＰ分析を行って、データ内の共通で興味深いパターンを決定することができる。いくつかの場合、データセンタ１２０は、データセンタ１２０の構成に基づいて１つ以上のデータセットについてＦＰを自動的に決定し得る。他の場合、データセンタ１２０は、クラウドクライアント１０５から（例えば、クラウドクライアント１０５へのユーザ入力に基づいて）コマンドを受信して、データセットのＦＰを決定してもよい。データセンタ１２０は、１つ以上のＦＰマイニング手法を使用して、データセット内のＦＰを決定することができる。例えば、システムの効率を改善し、パターンを決定する際のレイテンシをより短くするために、データセンタ１２０は、データセットを、ＦＰ木及びリンクリストを含む凝縮されたデータ構造に変換してもよく、ＦＰ成長モデルを使用してＦＰを導出してもよい。この凝縮データ構造は、元のデータセット（例えば、関係データベーステーブルとして記憶されたデータセット）がサポートするより高速なＦＰマイニングをサポートし得、また、決定されたパターンのより高速なクエリをサポートし得る。例えば、データセンタ１２０、又は、より具体的にはデータセンタ１２０のデータ処理マシン（例えば、ベアメタルマシン、仮想マシン、又はコンテナ）は、データセットの２回の通過だけで凝縮データ構造を生成することができる。凝縮データ構造からのＦＰの決定は、元のデータセットからＦＰを決定するよりも約１〜２桁速いスケールであるため、データセンタ１２０は、ＦＰ及び興味深いパターンを導出することに伴うレイテンシを有意に改善し得る。さらに、これらのＦＰがデータ処理マシンでローカルに記憶され、処理される場合、データ処理マシンがデータベースに当たる必要なくローカルにクエリを取り扱うことができるので、（例えば、処理又は表示のためにクラウドクライアント１０５により）パターンを取り出すためのクエリレイテンシを大きく低減し得る。
【００１８】
しかしながら、フルのＦＰ木と、ＦＰ木からマイニングされたＦＰの完全なセットを生成し、ローカルに記憶することは、データ処理マシンにおいて大量のメモリ及び処理リソースを使用する可能性がある。いくつかの場合、データ処理マシンは、特にかなり大規模なデータセットでは、このＦＰ分析手順を取り扱うのに十分な利用可能メモリ又は処理リソースを含まない場合がある。例えば、あるシステム内の又はテナントに対するユーザ又はユーザデバイスにより実行されるアクティビティに関連する情報を含むデータセットは、数千又は数百万のデータオブジェクト（例えば、ユーザデバイス）と、それらデータオブジェクトの各々の数千又は数百万のデータ属性（例えば、ウェブアクティビティ）を含み、ＦＰマイニングに対してかなり大規模なデータセットを結果としてもたらし得る。このような大規模データセットを取り扱うために、データセンタ１２０は、幾つかのデータ処理マシンにわたりＦＰ分析手順を分散させることができる。各データ処理マシンは、データのサブセットを受信することができ、サブセットをＦＰ分析のために効率的なデータ構造に別個に変換することができる。次いで、マシンは、これらのローカルに記憶されたデータ構造に対してＦＰマイニングを別個に実行することができる。各データ処理マシンに送られるデータの量は、その特定のデータ処理マシンによりサポートされる利用可能なリソースに基づいてもよい。
【００１９】
データ処理マシンにおいてリソースを効率的に利用するために、データセンタ１２０は、データセットを分散させて、データサブセットのデータオブジェクトとデータ属性との間の組み合わせを制限することができる。例えば、データオブジェクトの数と、これらデータオブジェクトのうち１つ以上のデータ属性の数との双方が大きい場合、ＦＰ分析は、組み合わせ爆発を経験し、このデータのＦＰ分析を取り扱うことに関連づけられたメモリ及び処理オーバーヘッドを大きく増加させる可能性がある。データセンタ１２０は、代わりに、データの分散に従ってデータをデータサブセットにグループ化してもよく、それにより、各データサブセットは、データオブジェクトのしきい数又はデータ属性のしきい数のいずれかを超えるが、双方は超えないことが可能である。このようにして、データセンタ１２０は、データセットを、各データサブセット内の組み合わせ論を制限するデータサブセットに分割することができる。この手法は、各データ処理マシンにおけるリソースの効率的な利用を可能にし、レイテンシを改善し、ＦＰマイニング手順のオーバーヘッドを低減し得る。データ処理マシンでＦＰ分析手順を取り扱うために使用される処理及びメモリリソースを制限することにより、データセンタ１２０は、大規模データセットを分析するために必要とされるデータ処理マシンの数を最小化又は低減し得る。
【００２０】
いくつかの従来のシステムでは、ＦＰマイニングは単一のデータ処理マシンで実行される場合があり、これは、データベースシステムがパターンについて分析することができるデータセットのサイズを制限する可能性がある。他の従来のシステムでは、ＦＰマイニングのための変換されたデータ又はＦＰマイニング手順の結果は、より大きいメモリ容量をサポートするために、データ処理マシンの外部に記憶される場合がある。しかしながら、データ処理マシンの外部へのデータの記憶は、データ処理マシンが分析のためにＦＰ情報をロードするたびデータ処理マシンが取り出し要求で外部のデータ記憶装置に当たるので、データをクエリするときにレイテンシヒット（latency  hit）を招く。
【００２１】
対照的に、システム１００は、ＦＰマイニングを複数のデータ処理マシンにわたり分散させることができるデータベースシステム（例えば、データセンタ１２０）をサポートする。この分散手順は、データセットが（例えば、システム１００内で進行中のユーザ又はユーザデバイスアクティビティに起因して）サイズが増大し続ける場合に、かなり大規模なデータセットの取り扱いと水平スケーリング手法をサポートすることができる。さらに、データ処理マシンにＦＰ分析結果をローカルに記憶することは、（例えば、マシンの外部のデータソースからパターンを導出し又は取り出すことと対照的に）ローカルにパターンを導出して取り出すことに伴うレイテンシを有意に低減し、かなり大規模なデータセットに対するＦＰ分析を実現可能にし得る。さらに、データベースシステムは、各データ処理マシンにおけるメモリ及び処理オーバーヘッドを制限するために、効率的な分散手法を利用する。例えば、共通性と属性リスト長との間のトレードオフを利用してデータサブセット内のデータを分散させることにより、データベースシステムは、各個々のデータ処理マシンにおける組み合わせ爆発を制限し得る。これは、データパターンを導出、記憶、及びサービス提供するために必要とされるデータ処理マシンの数を低減し、各データ処理マシンにおけるリソースの量を低減し得る。
【００２２】
当業者には、本開示の１つ以上の態様が、上述のものとは別の問題をさらに又は代わりに解決するためにシステム１００において実施されてもよいことを理解されたい。さらに、本開示の態様は、本明細書に記載される「従来の」システム又はプロセスに技術的改善を提供することができる。しかしながら、明細書及び添付の図面は、開示の態様の実施から生じる例示的な技術的改善のみを含んでおり、したがって、特許請求の範囲内で提供される技術的改善の全てを表しているわけではない。
【００２３】
図２は、本開示の態様による分散システムのＦＰ分析をサポートするＦＰ分析手順を実現するデータベースシステム２００の一例を示す。データベースシステム２００は、図１を参照して説明したデータセンタ１２０の一例であり得、データベース２１０及びデータ処理マシン２０５を含み得る。いくつかの場合、データベース２１０は、トランザクションデータベース、時系列データベース、マルチテナントデータベース、又はこれら若しくは他のタイプのデータベースの何らかの組み合わせの一例であり得る。データ処理マシン２０５は、データベースサーバ、アプリケーションサーバ、サーバクラスタ、仮想マシン、コンテナ、又はこれら若しくはデータベースシステム２００のためのデータ処理をサポートする他のハードウェア若しくはソフトウェアコンポーネントの何らかの組み合わせの一例であり得る。データ処理マシン２０５は、処理コンポーネント及びローカルデータストレージコンポーネントを含んでもよく、ローカルデータストレージコンポーネントは、データ処理マシン２０５のメモリリソースをサポートし、磁気テープ、磁気ディスク、光ディスク、フラッシュメモリ、メインメモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））、メモリキャッシュ、クラウドストレージシステム、又はこれらの組み合わせの一例であり得る。データ処理マシン２０５は、（例えば、ユーザ入力コマンドに基づいて、又はデータベースシステム２００若しくはサポートされるＦＰベースのアプリケーションの構成に基づいて自動的に）データセット２１５に対してＦＰ分析を実行することができる。
【００２４】
本明細書に記載されているように、データベースシステム２００は、凝縮データ構造２３０を利用するパターンマイニングのためのＦＰ成長モデルを実装することができる。凝縮データ構造２３０は、ＦＰ木２３５と、リンク２５０を介してＦＰ木２３５のノード２４５にリンクされたリンクリスト２４０を含み得る。しかしながら、データベースシステム２００は、記載のものとは別のＦＰ分析手法及びデータ構造を代わりに使用してもよいことを理解されたい。例えば、データベースシステム２００は、候補セット生成及びテスト手法、ツリー投影手法、又はこれら若しくは他のＦＰ分析手法の任意の組み合わせを使用してもよい。他の場合に、データベースシステム２００は、本明細書に記載されたものと同様であるが記載されたものに対してより少ない、さらなる、又は代わりのプロセスを含むＦＰ分析手順を実行してもよい。記載される分散プロセスは、ＦＰ成長手法及び凝縮データ構造２３０を用いて、又は任意の他のＦＰ分析手法若しくはデータ構造を用いて実施されてよい。
【００２５】
データ処理マシン２０５は、処理のためにデータセット２１５を受信することができる。例えば、データベース２１０が、データセット２１５をＦＰ分析のためにデータ処理マシン２０５に送信してもよい。データセット２１５は、複数のデータオブジェクトを含むことができ、各データオブジェクトは、識別子（ＩＤ）２２０と、データ属性のセットを含む。データセット２１５は、データベース２１０内の全てのデータオブジェクトを含んでもよく、あるいは、特定のテナントに（例えば、データベース２１０がマルチテナントデータベースである場合）、特定の期間に（例えば、属性が、対応するタイムスタンプを有するイベント又はアクティビティに関連づけられている場合）、又はユーザ入力値に基づくデータオブジェクトの何らかの他のサブセットに関連づけられたデータオブジェクトを含んでもよい。例えば、いくつかの場合、ユーザデバイスを操作するユーザは、データセット２１５のための１つ以上のパラメータを選択することができ、ユーザデバイスは、パラメータを（例えば、データベース又はアプリケーションサーバを介して）データベース２１０に送信することができる。データベース２１０は、受信したユーザ入力に基づいてデータセット２１５をデータ処理マシン２０５に送信することができる。
【００２６】
データセット２１５内の各データオブジェクトは、ＩＤ２２０に基づいて識別することができ、１つ以上のデータ属性に関連づけることができる。これらのデータ属性は、そのデータオブジェクトに固有でもよく、あるいは複数のデータオブジェクトにわたり共通でもよい。いくつかの場合、ＩＤ２２０は、そのデータオブジェクトに固有のテキスト文字列の一例であり得る。例えば、データオブジェクトがデータベースシステム２００内のユーザに対応する場合、ＩＤ２２０は、ユーザ識別番号、ユーザ名、社会保障番号、又は各値がユーザに固有である何らかの他の同様の形式のＩＤでもよい。データ属性は、データオブジェクト（例えば、ユーザ）により実行されるアクティビティ又はデータオブジェクトの特性の例であり得る。例えば、データ属性は、ユーザにより操作されるユーザデバイスに関連する情報（例えば、インターネットプロトコル（ＩＰ）アドレス、操作されるデバイスの総数など）、ユーザデバイスの１つを操作する間にユーザにより実行されるアクティビティに関連する情報（例えば、ウェブ検索履歴、ソフトウェアアプリケーション情報、電子メール通信など）、ユーザに具体的に関連する情報（例えば、ユーザプロファイルからの情報、ユーザに関連づけられた値又はスコアなど）、又はこれらの組み合わせを含んでもよい。図２に示すように、これらの異なるデータ属性は、異なる文字（例えば、属性｛ａ｝、｛ｂ｝、｛ｃ｝、｛ｄ｝、及び｛ｅ｝）により表すことができる。
【００２７】
図示される例示的なケースでは、データセット２１５は、５つのデータオブジェクトを含み得る。ＩＤ２２０−ａを有する第１のデータオブジェクトはデータ属性｛ｂ，ｃ，ａ，ｅ｝を含むことができ、ＩＤ２２０−ｂを有する第２のデータオブジェクトはデータ属性｛ｃ，ｅ｝を含むことができ、ＩＤ２２０−ｃを有する第３のデータオブジェクトはデータ属性｛ｄ，ａ，ｂ｝を含むことができ、ＩＤ２２０−ｄを有する第４のデータオブジェクトはデータ属性｛ａ，ｃ，ｂ｝を含むことができ、ＩＤ２２０−ｅを有する第５のデータオブジェクトはデータ属性｛ａ｝を含むことができる。一例において、各データオブジェクトは、異なるユーザ又はユーザデバイスに対応し得、各データ属性は、ユーザ又はユーザデバイスにより実行されるアクティビティ又はアクティビティパラメータに対応し得る。例えば、属性｛ａ｝が、特定の購入をオンラインで行うユーザに対応してもよく、一方、属性｛ｂ｝が、ユーザデバイスのウェブブラウザで特定のウェブサイトを訪れるユーザに対応してもよい。これらのデータ属性は、ユーザの特性に関連するバイナリ値（例えば、ブール値）でもよい。
【００２８】
データ処理マシン２０５は、データセット２１５を受信することができ、データセット２１５に基づいて凝縮データ構造２３０を構築することができる。構築プロセスは、データセット２１５の２回の通過（passes  through）を含んでもよく、そこで、データ処理マシン２０５は、各通過中にデータセット２１５内の各データオブジェクトのデータ属性を処理する。データセット２１５の第１の通過において、データ処理マシン２０５は属性リスト２２５を生成することができる。属性リスト２２５は、データセット２１５に含まれるデータ属性を、それらの対応するサポート（すなわち、データセット２１５内の出現頻度）と共に含み得る。いくつかの場合、この第１の通過の間、データ処理マシン２０５は、属性のサポート及び最小サポートしきいξに基づいて１つ以上の属性を除外する（filter  out）ことができる。これらの場合、結果として生じる、属性リスト２２５に含まれるデータ属性は、頻繁アイテム又は頻繁属性と呼ぶことができる。データ処理マシン２０５は、サポートの降順に属性リスト２２５内のデータ属性を順序付けることができる。例えば、図示のように、データ処理マシン２０５は、属性｛ａ｝がデータセット２１５内で４回出現し、属性｛ｃ｝及び｛ｂ｝が３回出現し、属性｛ｅ｝が２回出現し、属性｛ｄ｝が１回出現すると識別することができる。最小サポートしきいξが２に等しい場合、データ処理マシン２０５は、属性｛ｄ｝のサポートが最小サポートしきいより小さいため、属性リスト２２５から｛ｄ｝を除去してよい（あるいはその他の方法で、属性リスト２２５に｛ｄ｝を含まなくてよい）。いくつかの場合、ユーザは、ユーザインターフェースの入力機能を使用して最小サポートしきいξを指定することができる。データ処理マシン２０５は、属性リスト２２５をメモリ（例えば、一時メモリ又は永続メモリ）に記憶し得る。
【００２９】
データセット２１５の第２の通過において、データ処理マシン２０５は、効率的なＦＰマイニングのために凝縮データ構造２３０を生成することができ、ここで、凝縮データ構造２３０は、ＦＰ木２３５とリンクリスト２４０を含む。データ処理マシン２０５は、ＦＰ木２３５のルートノード２４５−ａを生成することができ、ルートノード２４５−ａに「ヌル」値でラベル付けすることができる。次いで、データセット２１５内の各データオブジェクトについて、データ処理マシン２０５は、属性リスト２２５の順序に従って（例えば、サポートの降順で）属性フィールドを順序付けることができ、ＦＰ木２３５の分岐を追加又は更新することができる。例えば、データ処理マシン２０５は、ＩＤ２２０−ａを有する第１のデータオブジェクトのデータ属性を、下降するサポート｛ａ，ｃ，ｂ，ｅ｝の順序で順序付けてもよい。ＦＰ木２３５に子ノード２４５が存在しないため、データ処理マシン２０５は、この順序付けられたデータ属性のセットを表す新しい子ノード２４５を生成することができる。順序付けられたセット内の第１の属性のためのノードは、ルートノード２４５−ａの子ノード２４５−ｂとして作成され、第２の属性のためのノードは、この子ノード２４５−ｂからのさらなる子ノード２４５−ｃとして作成され、以下同様である。例えば、データ処理マシンは、下降するサポートの順序に基づいて属性｛ａ｝のためのノード２４５−ｂ、属性｛ｃ｝のためのノード２４５−ｃ、属性｛ｂ｝のためのノード２４５−ｄ、及び属性｛ｅ｝のためのノード２４５−ｅを作成してもよい。ＦＰ木２３５内に新しいノード２４５を作成するとき、データ処理マシン２０５はさらに、ノード２４５のカウントを１に設定してもよい（例えば、ノード２４５により表されるデータ属性の１つのインスタンスを示す）。
【００３０】
次いで、データ処理マシン２０５は、ＩＤ２２０−ｂを有する第２のデータオブジェクトを処理することができる。データ処理マシン２０５は、（例えば、属性リスト２２５で決定されたサポートの降順に基づいて）データ属性を｛ｃ，ｅ｝として順序付けることができ、このパターンに対応するルートノード２４５−ａから生じる任意のノード２４５についてＦＰ木２３５をチェックすることができる。この順序付けられたセットの第１のデータ属性は｛ｃ｝であり、ルートノード２４５−ａは｛ｃ｝のための子ノード２４５を有さないので、データ処理マシン２０５は、属性｛ｃ｝のための、及び１のカウントを有する、ルートノード２４５−ａからの新しい子ノード２４５−ｆを生成することができる。さらに、データ処理マシン２０５は、この｛ｃ｝ノード２４５−ｆから子ノード２４５−ｇを生成することができ、ここで、ノード２４５−ｇは属性｛ｅ｝を表し、１のカウントを設定される。
【００３１】
プロセスの次のステップとして、データ処理マシン２０５は、ＩＤ２２０−ｃを有するデータオブジェクトの属性を｛ａ，ｂ，ｄ｝として順序付けることができ、この順序付けられたセットをＦＰ木２３５に追加することができる。いくつかの場合、データ属性｛ｄ｝が、（例えば、最小サポートしきいξと比較して）有意に大きい十分なサポート値を有さない場合、データ処理マシン２０５は、データオブジェクトの属性のリスト内の｛ｄ｝データ属性（及び、「頻繁」属性として分類されない任意の他のデータ属性）を無視してもよい。いずれの場合にも、データ処理マシン２０５は、この順序付けられたセットに対応するルートノード２４５−ａから生じる任意のノード２４５についてＦＰ木２３５をチェックすることができる。属性｛ａ｝のための子ノード２４５−ｂがルートノード２４５−ａから生じ、ＩＤ２２０−ｃを有するデータオブジェクトの順序付けられたセットの第１の属性が｛ａ｝であるため、データ処理マシン２０５は、新しいノード２４５を作成するのでなく、ノード２４５−ｂのカウントをインクリメントするよう決定することができる。例えば、データ処理マシン２０５は、２のカウントを有する属性｛ａ｝を示すようにノード２４５−ｂを変更してもよい。ノード２４５−ｂからの唯一の子ノード２４５が属性｛ｃ｝のための子ノード２４５−ｃであり、ＩＤ２２０−ｃを有するデータオブジェクトの順序付けられたセット内の次の属性が属性｛ｂ｝であるので、データ処理マシン２０５は、属性｛ｂ｝に対応するノード２４５−ｂからの新しい子ノード２４５−ｈを生成することができ、ノード２４５−ｈに１のカウントを割り当てることができる。属性｛ｄ｝が属性リスト２２５に含まれる場合、データ処理マシン２０５は、｛ｄ｝のための子ノード２４５−ｉをさらに作成してもよい。
【００３２】
このプロセスは、データセット２１５内の各データオブジェクトに対して継続することができる。例えば、例示されたケースでは、ＩＤ２２０−ｄを有するデータオブジェクトは、ノード２４５−ｂ、２４５−ｃ、及び２４５−ｄのカウントをインクリメントし得、ＩＤ２２０−ｅを有するデータオブジェクトは、ノード２４５−ｂのカウントをインクリメントし得る。データセット２１５内の各データオブジェクトからの属性、又は最小サポートしきいを実装するときには頻繁属性が、ＦＰ木２３５内に表現されると、ＦＰ木２３５は、データ処理マシン２０５のメモリ内に完成し得る（例えば、効率的な処理及びＦＰマイニングのためにローカルメモリに記憶され、あるいはメモリ容量の改善のために外部に記憶され得る）。データセット２１５の第１の通過において順序付けられた属性リスト２２５を生成することにより、データ処理マシン２０５は、データを表すために必要とされる分岐の数を最小化し得、なぜならば、最頻データ属性がルートノード２４５−ａの最も近くに含まれるためである。これは、ＦＰ木２３５のメモリへの効率的な記憶をサポートし得る。さらに、属性リスト２２５を生成することにより、データ処理マシン２０５は、データセット２１５に基づいてＦＰ木２３５を作成するときに頻繁でない属性を識別し、これらの頻繁でない属性を除去することができる。
【００３３】
ＦＰ木２３５に追加で、凝縮データ構造２３０は、リンクリスト２４０を含むことができる。リンクリスト２４０は、属性リスト２２５からの属性の全て（例えば、データセット２１５内の属性の全て、又はデータセット２１５内の頻繁属性の全て）を含んでもよく、各属性はリンク２５０に対応し得る。テーブル内では、これらのリンク２５０はノードリンクのヘッドの例であり得、ノードリンクは、順次又は並列でＦＰ木２３５の１つ以上のノード２４５を指す。例えば、属性｛ａ｝のためのリンクリスト２４０のエントリは、リンク２５０−ａを介して属性｛ａ｝のためのＦＰ木２３５内の各ノード２４５にリンクされ得る（本ケースでは、属性｛ａ｝はノード２４５−ｂにリンクされる）。特定の属性についてＦＰ木２３５内に複数のノード２４５が存在する場合、ノード２４５は順次リンクされてもよい。例えば、リンクリスト２４０の属性｛ｃ｝は、リンク２５０−ｂを介してノード２４５−ｃ及び２４５−ｆに順次リンクされ得る。同様に、リンク２５０−ｃは、リンクリスト２４０の属性｛ｂ｝をノード２４５−ｄ及び２４５−ｈにリンクし得、リンク２５０−ｄは、属性｛ｅ｝をノード２４５−ｅ及びノード２４５−ｇにリンクし得る。属性リスト２２５に含まれるほど十分に頻繁な場合、リンク２５０−ｅが属性｛ｄ｝をノード２４５−ｉにリンクしてもよい。
【００３４】
いくつかの場合、データ処理マシン２０５は、ＦＰ木２３５の完成に続いてリンクリスト２４０を構築することができる。他の場合に、データ処理マシン２０５は、リンクリスト２４０とＦＰ木２３５を同時に構築してもよく、あるいはデータセット２１５から各データオブジェクト表現をＦＰ木２３５に追加した後にリンクリスト２４０を更新してもよい。データ処理マシン２０５はさらに、リンクリスト２４０をＦＰ木２３５と共にメモリに記憶することができる。いくつかの場合、リンクリスト２４０はヘッダテーブルと呼ばれることがある（例えば、ノードリンクの「ヘッド」がこのテーブルにあるため）。これら２つの構造は一緒に、データ処理マシン２０５における効率的なＦＰマイニングのための凝縮データ構造２３０を形成する。凝縮データ構造２３０は、データセット２１５からのＦＰマイニングに関連する全ての情報（例えば、最小サポートしきいξのための）を含み得る。このようにして、データセット２１５をＦＰ木２３５及び対応するリンクリスト２４０に変換することにより、完全かつコンパクトなＦＰマイニングをサポートすることができる。
【００３５】
データ処理マシン２０５は、パターン成長法、ＦＰ成長を実行して、凝縮データ構造２３０に圧縮された情報からＦＰを効率的にマイニングすることができる。いくつかの場合、データ処理マシン２０５は、データセット２１５のＦＰの完全なセットを決定し得る。他の場合に、データ処理マシン２０５は、（例えば、ユーザインターフェースにおけるユーザ入力に基づいて）興味深いデータ属性を受信してもよく、そのデータ属性の全てのパターンを決定してもよい。さらに他の場合に、データ処理マシン２０５は、データ属性又はデータセット２１５の単一の「最も興味深い」パターンを決定してもよい。「最も興味深い」パターンは、データ属性の最も高い出現率、最も長いリスト、又はデータ属性の高い出現率と長いリストの何らかの組み合わせを有するＦＰに対応し得る。例えば、「最も興味深い」パターンは、最も高い出現率と共に属性しきいより多数のデータ属性を有するＦＰに対応してもよく、あるいは、「最も興味深い」パターンは、出現率と属性リストの長さとの間のトレードオフを示す式又は表に基づいて決定されてもよい。
【００３６】
データ属性のパターンの全てを決定するために、データ処理マシン２０５は、リンク２５０のヘッドから開始し、その属性のノード２４５の各々へノードリンク２５０を辿ることができる。ＦＰは、最小サポートしきいξに基づいて定義されてもよく、これは、凝縮データ構造２３０を構築するために使用されるのと同じ最小サポートしきいでもよい。例えば、ξ＝２の場合、パターンは、それがデータセット２１５内で２回以上現れる場合のみ「頻繁」とみなされる。データセット２１５のためのＦＰの完全なセットを識別するために、データ処理マシン２０５は、リンクリスト２４０内の属性に対して昇順でマイニング手順を実行することができる。属性｛ｄ｝がξ＝２の最小サポートしきいを通過しないので、データ処理マシン２０５は、データ属性｛ｅ｝を用いてＦＰ成長法を開始することができる。
【００３７】
データ属性｛ｅ｝のためのＦＰを決定するために、データ処理マシン２０５は、属性｛ｅ｝のためのリンク２５０−ｄを辿ることができ、双方が属性｛ｅ｝に対応するノード２４５−ｅ及びノード２４５−ｇを識別することができる。データ処理マシン２０５は、（例えば、識別されたノード２４５−ｅ及び２４５−ｇのカウント値を合計することに基づいて）データ属性｛ｅ｝がＦＰ木２３５内で２回出現し、したがって、（ｅ：２）の最も簡素なＦＰを少なくとも有する（すなわち、属性｛ｅ｝を含むパターンがデータセット２１５内で２回出現する）と識別し得る。データ処理マシン２０５は、識別されたノード２４５へのパス、｛ａ、ｃ、ｂ、ｅ｝及び｛ｃ、ｅ｝を決定することができる。これらのパスの各々は、ＦＰ木２３５内で１回出現する。例えば、属性｛ａ｝のためのノード２４５−ｂが４のカウントを有するとしても、この属性｛ａ｝は、（例えば、ノード２４５−ｅに対する１のカウントにより示されるように）属性｛ｅ｝と一緒には１回だけ現れる。これらの識別されたパターンは、属性｛ｅ｝のパスプレフィックス（path  prefixes）、すなわち｛ａ：１，ｃ：１，ｂ：１｝と｛ｃ：１｝を示すことができる。まとめて、これらのパスプレフィックスは、データ属性｛ｅ｝のサブパターンベース又は条件付きパターンベースと呼ばれることがある。決定された条件付きパターンベースを使用し、データ処理マシン２０５は、属性｛ｅ｝のための条件付きＦＰ木を構築することができる。すなわち、データ処理マシン２０５は、上述したものと同様の手法を使用してＦＰ木を構築することができ、ＦＰ木は、属性｛ｅ｝を含む属性組み合わせのみを含む。最小サポートしきいξと、識別されたパスプレフィックス｛ａ：１，ｃ：１，ｂ：１｝及び｛ｃ：１｝に基づいて、データ属性｛ｃ｝のみがサポートチェックを通過し得る。したがって、データ属性｛ｅ｝に対する条件付きＦＰ木は、単一の分岐を含むことができ、ルートノード２４５は、２のカウントを有する属性｛ｃ｝のための単一の子ノード２４５を有する（例えば、パスプレフィックスの双方が属性｛ｃ｝を含むため）。この条件付き木に基づいて、データ処理マシン２０５はＦＰ（ｃｅ：２）を導出することができる。すなわち、属性｛ｃ｝及び｛ｅ｝は、データセット２１５内で一緒に２回出現し、一方で属性｛ｅ｝は、データセット２１５内でいずれかの他のデータ属性と共に少なくとも２回出現しない。１つより大きい子ノード２４５を有する条件付きＦＰ木では、データ処理マシン２０５は、再帰的マイニングプロセスを実施して、調査されている属性を含む全ての適格なＦＰを決定することができる。データ処理マシン２０５は、データ属性｛ｅ｝のためのＦＰ（ｅ：２）及び（ｃｅ：２）を返すことができる。いくつかの場合、データ処理マシン２０５は、調査されているデータ属性を単に含むパターンをＦＰとしてカウントしなくてもよく、これらの場合、（ｃｅ：２）だけを返してもよい。
【００３８】
このＦＰ成長手順は、属性｛ｂ｝、次いで属性｛ｃ｝で継続し、属性｛ａ｝で終わることができる。各データ属性について、データ処理マシン２０５は、条件付きＦＰ木を構築し得る。さらに、ＦＰ成長手順がリンクリスト２４０を介して昇順で実行されるため、データ処理マシン２０５は、ＦＰを決定するとき、リンクされたノード２４５の子ノード２４５を無視することができる。例えば、属性｛ｂ｝について、リンク２５０−ｃは、ノード２４５−ｄ及び２４５−ｈを示し得る。｛ｂ｝のためのパスを識別するとき、データ処理マシン２０５は、リンクされたノード２４５−ｄ又は２４５−ｈを過ぎてＦＰ木２３５を横断しなくてもよく、なぜならば、木においてこれより下のノード２４５のいずれのパターンも前のステップで既に決定されているためである。例えば、データ処理マシン２０５は、ノード２４５−ｄのパターンを決定するときにノード２４５−ｅを無視してもよく、なぜならば、ノード２４５−ｅを含むパターンが前に導出されているためである。ＦＰ成長手順及びこれらの条件付きＦＰ木に基づいて、データ処理マシン２０５は、リンクリスト２４０内のデータ属性の残りのためのさらなるＦＰを識別することができる。例えば、再帰的マイニングプロセスを使用し、ξ＝２の最小サポートしきいに基づいて、データ処理マシン２０５は、ＦＰの完全なセット、すなわち、（ｅ：２）、（ｃｅ：２）、（ｂ：３）、（ｃｂ：２）、（ａｂ：３）、（ａｃｂ：２）、（ｃ：３）、（ａｃ：２）、及び（ａ：４）を決定し得る。
【００３９】
いくつかの場合、データ処理マシン２０５は、結果として生じるパターンをローカルデータストレージコンポーネントにローカルに記憶することができる。さらに又は代わりに、データ処理マシン２０５は、ＦＰ分析から結果として生じるパターンを記憶のためにデータベース２１０に、又はユーザデバイスに（例えば、さらなる処理のために、又はユーザインターフェース内に表示するために）送信してもよい。いくつかの場合、データ処理マシン２０５は、「最も興味深い」ＦＰ（例えば、パターンに含まれるデータ属性の数に基づいて（ａｃｂ：２））を決定することができ、「最も興味深い」ＦＰの指標をユーザデバイスに送信することができる。他の場合に、ユーザデバイスが、調査のための属性（例えば、データ属性｛ｃ｝）の指標を送信してもよく、データ処理マシン２０５が、応答において、データ属性｛ｃ｝を含むＦＰの１つ以上を返してもよい。
【００４０】
データセット２１５を凝縮データ構造２３０に変換することにより、データ処理マシン２０５は、処理及びメモリリソースの観点並びに時間の観点でかなりコストがかかる可能性のある、多数の候補パターンを生成及びテストする必要を回避することができる。かなり大規模なデータベースシステム２００、データベース２１０、又はデータセット２１５では、ＦＰ木２３５はデータセット２１５のサイズよりはるかに小さい可能性があり、条件付きＦＰ木はさらに小さい可能性がある。例えば、大規模データセット２１５をＦＰ木２３５に変換することにより、データを約１００倍縮小することができ、ＦＰ木２３５を条件付きＦＰ木に変換することにより、再度、データを約１００倍縮小することができ、ＦＰマイニングのためのかなり凝縮されたデータ構造２３０が結果としてもたらされる。
【００４１】
いくつかの場合、ＦＰ分析手順は、ＦＰ分析又はデータ取り扱いの改善のためのさらなる手法をサポートすることができる。例えば、データベースシステム２００は、分散システム、差分サポート、イプシロン（ε）閉包、又はこれらの組み合わせのための手法をサポートしてもよい。いくつかの場合、データセット２１５は、単一のデータ処理マシン２０５に対して大きすぎる可能性がある。例えば、データセット２１５から結果として生じる凝縮データ構造２３０が、データ処理マシン２０５のメモリに適合しない場合があり、あるいは、凝縮データ構造２３０に対するＦＰ分析手順により返されるＦＰセットが、データ処理マシン２０５における処理に対して大きすぎる場合がある。したがって、データベースシステム２００は、複数のデータ処理マシン２０５を起動し（spin  up）、データセット２１５を異なるデータ処理マシン２０５にわたり分散させてもよい。分散の粒度は、各データ処理マシン２０５がそれに割り当てられたデータ量を取り扱うことを可能にし得る。いくつかの場合、分散は、各データオブジェクトのデータ属性の数、データ処理マシン２０５の利用可能なメモリリソース能力、又は双方に基づくことができる。各データ処理マシン２０５は、受信したデータのサブセットからローカルの凝縮データ構造２３０を作成してもよく、凝縮データ構造２３０が成功裏に記憶されると、メモリからデータのサブセットを除去してもよい。データサブセットを除去することにより、他の機能又はプロセスのためにデータ処理マシン２０５で利用可能なメモリを増加させることができる。
【００４２】
図３は、本開示の態様による分散型ＦＰ分析手順を実現するデータベースシステム３００の一例を示す。データベースシステム３００は、図１及び図２を参照して説明したデータベースシステム２００又はデータセンタ１２０の一例であり得る。データベースシステム３００は、複数のデータ処理マシン３０５（例えば、データ処理マシン３０５−ａ、データ処理マシン３０５−ｂ、及びデータ処理マシン３０５−ｃ）を含むことができ、これらは、図２を参照して説明したデータ処理マシン２０５の例であり得る。さらに、データベースシステム３００はデータベース３１０を含むことができ、これは、データベース２１０の一例であり得、データ処理マシン３０５によりサービス提供され得る。データベースシステム３００内の各データ処理マシン３０５は、独立して動作することができ、別個のデータストレージコンポーネントを含むことができる。データベースシステム３００が、単一のデータ処理マシン３０５での処理又はメモリストレージに対して大きすぎるＦＰ分析のためのデータセット３１５を受信し又は取り出した場合、データベース３１０は、データセット３１５をＦＰ分析のために複数のデータ処理マシン３０５にわたり分散させることができる。各データ処理マシン３０５の処理及びメモリリソースを効率的に利用するために、データベースシステム３００は、データセット３１５を分散させるための特定の手法を実施することができる。
【００４３】
例えば、データベースシステム３００は、データベース３１０からデータセット３１５を受信することができる。データセット３１５は、幾つかのデータオブジェクト３２０を含むことができ、各データオブジェクトは、ＩＤ３２５及びデータ属性リスト３３０を含む。一例において、データオブジェクトは、対応するユーザＩＤを有するユーザ又はユーザデバイスの例であり得、データ属性は、ユーザにより実行される特定のプロパティ又はユーザに関連づけられた特性を有するアクティビティの例であり得る。いくつかの場合、データ属性は「アイテム」と呼ばれることがある。
【００４４】
データベースシステム３００は、データセット３１５の概算サイズを決定することができる。例えば、データベースシステム３００は、データセット３１５に関連づけられた凝縮データ構造を記憶し、かつこれらの凝縮データ構造をＦＰマイニングするのに必要とされるメモリ及び／又は処理リソースを推定するために、アルゴリズム又はルックアップテーブルを記憶してもよい。実際のサイズは、データセット３１５内の（例えば、データオブジェクト３２０とデータ属性リスト３３０からの属性との間の）組み合わせ論に基づいてもよい。これらの組み合わせ論のために必要とされるリソースは、データセット３１５の長さ（例えば、属性リスト３３０の長さ）及び幅（例えば、データオブジェクト３２０の数）に基づいて大きく増加する可能性がある。しかしながら、データ量に対して関与する組み合わせ論を制限するために、データベースシステム３００は、データセット３１５のこれらのパラメータの１つを制限することができる。例えば、長さは比較的大きいが幅はそうでないデータセット、又は幅は比較的大きいが長さはそうでないデータセットは、メモリ及び処理リソースを効率的に利用し得る。
【００４５】
データベースシステム３００は、データ処理マシン３０５における利用可能なリソースに基づいて、データセット３１５を幾つかのデータサブセット３３５に分散させることができる。例えば、データベースシステム３００は、幾つかのデータ処理マシン３０５を起動して、それらの間でデータセット３１５の概算の又は正確なサイズを取り扱うことができる。例えば、データベースシステム３００は、ＦＰ分析取り扱いのために３つのデータ処理マシン３０５（例えば、データ処理マシン３０５−ａ、３０５−ｂ、及び３０５−ｃ）を起動してもよく、したがって、データセット３１５のデータオブジェクト３２０を３つのデータサブセット３３５−ａ、３３５−ｂ、及び３３５−ｃにグループ化してもよい。いくつかの場合、データベースシステム３００は、データ処理マシン３０５の利用可能なメモリ及び／又は処理容量を決定することができる。データベースシステム３００は、マシンの容量を推定してもよく、あるいはデータ処理マシン３０５から容量の指標を受信してもよい。いくつかの場合、異なるデータ処理マシン３０５は、（例えば、マシンのタイプ、マシン上で実行している他のプロセス、どんなデータがマシンに既に記憶されているか等に基づいて）異なる量の利用可能なリソースを有し得る。データベースシステム３００は、各データ処理マシン３０５の特定のメモリ及び／又は処理しきいに従ってデータサブセット３３５を形成してもよい。
【００４６】
データベースシステム３００は、データオブジェクト３２０の分散に基づいてデータオブジェクト３２０のグループ化を実行することができる。例えば、一般に、より共通したデータ属性は、通常、より短い属性リスト３３０の部分であり得、一方、よりまれなデータ属性は、通常、より長い属性リスト３３０の部分であり得る。データベースシステム３００は、この原理に従ってデータオブジェクト３２０をグループ化することができる。例えば、データベースシステム３００は、次第により共通したデータ属性を有するデータオブジェクトのグループを反復的に形成してもよい。このようにして、データベースシステム３００は、よりまれなデータ属性を有するデータサブセット３３５−ａ、比較的より共通したデータ属性を有するデータサブセット３３５−ｂ、及び最も共通したデータ属性を有するデータサブセット３３５−ｃを生成することができる。これらのデータサブセット３３５は、処理のために対応するデータ処理マシン３０５に送信することができる。さらに又は代わりに、データベースシステム３００は、他の分散手法に基づいてデータオブジェクト３２０のグループ化を実行してもよい。例えば、データベースシステム３００は、属性リスト３３０の長さに基づいて、データオブジェクト３２０を異なるデータサブセット３３５にソートすることができる。他の例では、データベースシステム３００は、データオブジェクト３２０の特定のソートパラメータに基づいて、又はデータオブジェクトＩＤ３２５に基づいて、データオブジェクト３２０を異なるデータサブセット３３５にソートしてもよい。
【００４７】
各データ処理マシン３０５は、それ自体のデータ圧縮及びＦＰ分析を行うことができる。例えば、データ処理マシン３０５−ａは、データサブセット３３５−ａに基づいて、他のデータ処理マシン３０５及びデータサブセット３３５から独立して、ＦＰ木３４０−ａ（及び、対応するリンクリスト）を生成し得る。同様に、データ処理マシン３０５−ｂは、データサブセット３３５−ｂに基づいてＦＰ木３４０−ｂを生成し得、データ処理マシン３０５−ｃは、データサブセット３３５−ｃに基づいてＦＰ木３４０−ｃを生成し得る。このようにして、データベースシステム３００は、ＦＰ成長処理のためにフルのＦＰ木を生成するのでなく、ＦＰ木３４０及びＦＰ分析結果がメモリ及びサポート処理に適合し得るように幾つかのデータ処理マシン３０５にわたり作業を分散させることができる。データ処理マシン３０５は、属性リストの共通性又は長さによりデータオブジェクト３２０をグループ化し、各データサブセット３３５内のデータオブジェクトの数を変化させることにより、データ処理マシン３０５のメモリ又は処理能力を超えることなくデータサブセット３３５に対して組み合わせ論を効率的に実行することができる。さらに、データオブジェクト３２０が、各データオブジェクト３２０内の１つ以上のデータ属性の共通性に基づいてデータサブセット３３５に、及び対応してデータ処理マシン３０５にソートされる場合、類似のデータ属性を有するデータオブジェクト３２０が、同じデータサブセット３３５にグループ化される可能性があり得る。したがって、分散ＦＰマイニングは、複数のデータ処理マシン３０５のリソースを効率的に使用しながら、初期データセット３１５内のＦＰの大きいパーセンテージ（例えば、特定の許容しきいを上回る）を識別することができる。
【００４８】
ユーザデバイスは、ＦＰ分析に関連する情報についてデータベースシステム３００にクエリすることができる。例えば、ユーザデバイスは、「最も興味深い」ＦＰ、又は特定のデータ属性若しくはデータオブジェクトに関連するＦＰのセットを要求してもよい。いくつかの場合、データ処理マシン３０５は、ＦＰマイニング結果をローカルに記憶することができる。これらの場合、データベースシステム３００は、要求されたパターンについてＦＰ分析に使用されたデータ処理マシン３０５の各々にクエリしてもよい。あるいは、データベースシステム３００は、そのデータサブセット３３５において興味深いデータ属性を受信したデータベース処理マシン３０５を決定し、決定されたデータベース処理マシン３０５に、パターンについてクエリしてもよい。他の場合に、データ処理マシン３０５は、識別されたＦＰを記憶のためにデータベース３１０に送信することができる。このような場合、ユーザクエリは、データベース３１０で集中的に処理することができ、データベースは、ユーザデバイスから受信したクエリメッセージに応答して、要求されたＦＰを送信することができる。ユーザデバイスは、クエリ結果をユーザインターフェースに表示してもよく、ユーザインターフェース内の１つ以上の取り出されたＦＰに関連する特定の情報を表示してもよく、取り出されたＦＰに対してデータ処理又は分析を実行してもよく、あるいはこれらのアクションの何らかの組み合わせを実行してもよい。
【００４９】
図４は、本開示の態様による分散システムのＦＰ分析をサポートするプロセスフロー４００の一例を示す。プロセスフロー４００は、データベースシステム４０５及び複数のデータ処理マシン４１０（例えば、データ処理マシン４１０−ａ及びデータ処理マシン４１０−ｂ）を含むことができ、これらは、仮想マシン、コンテナ、又はベアメタルマシンの例であり得る。これらは、図１〜図３を参照して説明した対応するデバイスの例であり得る。いくつかの場合、データ処理マシン４１０は、データベースシステム４０５のコンポーネントでもよい。ＦＰ分析の間、データベースシステム４０５は、データ処理マシン４１０−ａ及び４１０−ｂの間でデータを分散させて、利用可能なメモリ及び処理リソースを効率的に利用し得る。いくつかの場合、データベースシステム４０５は、処理するデータ量とデータ処理マシンにおける利用可能なメモリリソースに依存して、データをさらなるデータ処理マシン４１０に分散させてもよい。いくつかの実装において、本明細書に記載されるプロセスは、異なる順序で実行されてもよく、あるいはデバイスにより実行される１つ以上のさらなる又は代わりのプロセスを含んでもよい。
【００５０】
４１５において、データベースシステム４０５が、ＦＰ分析のためのデータセットを受信し得る。いくつかの場合、データベースシステム４０５は、（例えば、ユーザ入力、データ処理マシン４１０上で実行しているアプリケーション、又はデータベースシステム４０５の構成に基づいて）データベースからデータセットを取り出すことができる。このデータセットは複数のデータオブジェクトを含み得、各データオブジェクトは幾つかの（a  number  of）データ属性を含む。各データオブジェクトは、ＩＤをさらに含むことができる。いくつかの場合、データオブジェクトは、ユーザ又はユーザデバイスに対応し得、データ属性は、ユーザ又はユーザデバイスにより実行されるアクティビティ、ユーザ又はユーザデバイスにより実行されるアクティビティのパラメータ、又はユーザ又はユーザデバイスの特性に対応し得る。一具体例において、データベースシステム４０５は、擬似リアルタイムＦＰ分析手順を実行してもよい。この例では、データベースシステム４０５は、ＦＰ分析のための更新されたデータセットを周期的又は非周期的に受信することができる（例えば、１日に１回、１週間に１回など）。これらの更新されたデータセットには、新しいデータオブジェクト、新しいデータ属性、又は双方を含み得る。例えば、新しいデータ属性は、擬似リアルタイムＦＰ分析手順で最後のデータセットを受信してからの時間間隔内にユーザにより実行されたアクティビティに対応してもよい。
【００５１】
４２０において、データベースシステム４０５が、データベースシステム４０５内又はそれに関連づけられたデータ処理マシン４１０のセット（例えば、データ処理マシン４１０−ａ及び４１０−ｂ）の利用可能なメモリリソース能力を識別し得る。いくつかの場合、データベースシステム４０５は、データ処理マシン４１０のセットの処理能力をさらに識別してもよい。データベースシステム４０５は、リソース能力要求をデータ処理マシン４１０に送信することにより、又はデータ処理マシン４１０のリソース能力を推定することにより、データ処理マシン４１０のメモリ及び／又は処理能力を識別することができる。いくつかの例において、利用可能なメモリリソースを識別することは、データ処理マシン４１０の各々についてマシン特有のメモリリソースを識別することを含み得る。いくつかの場合、利用可能なメモリリソースの初期決定に基づいて、データベースシステム４０５は、１つ以上のさらなるデータ処理マシン４１０を起動して、ＦＰ分析のためのデータセットのサイズを取り扱うことができる。
【００５２】
４２５において、データベースシステム４０５が、データセットのデータオブジェクトを複数のデータサブセットにグループ化し得、グループ化は、データオブジェクトの各々のデータ属性の数と、識別された利用可能なメモリリソース能力に基づく。データベースシステム４０５は、データ処理マシン４１０の数に等しい数のデータサブセットを形成することができ、各データサブセットは、それがメモリに適合し、かつデータ処理マシン４１０のセットのうち特定のデータ処理マシン４１０により処理できるように、サイズ設定される。データベースシステム４０５は、データオブジェクトの属性の数又はサブセット内のデータオブジェクトの数のいずれかが潜在的に大きいが双方がそうではないデータサブセットを構築することができる。このようにして、データベースシステム４０５は、各データサブセット内の組み合わせ論を制限し、各データサブセットに対するＦＰ分析の実行に関連づけられた処理及びメモリコストを低減し得る。一例において、データベースシステム４０５は、各データサブセットが、データオブジェクトしきいより少数のデータオブジェクト、又はサブセットの各データオブジェクトについて、データ属性しきいより少数のデータ属性を含むように、データオブジェクトをグループ化し得る。データサブセットを形成するために、必ずしも双方ではないがこれら２つのしきいのうち１つを使用することにより、データベースシステム４０５は、各サブセットに関連づけられたオブジェクトと属性との間の組み合わせ論を制限することができる。別の例において、データベースシステム４０５は、一連の属性共通性しきい、一連の属性リスト長しきい、一連のデータサブセットサイズしきい、又はこれらの何らかの組み合わせを実装して、複数のデータ処理マシン４１０のためのデータサブセットを決定してもよい。
【００５３】
４３０において、データベースシステム４０５が、データサブセットに従ってデータセットのデータオブジェクトを複数のデータ処理マシン４１０に分散させ得る。例えば、データベースシステム４０５は、第１のデータサブセットをデータ処理マシン４１０−ａに、第２のデータサブセットをデータ処理マシン４１０−ｂに送信することができる。これらのデータサブセットは具体的に、マシンのメモリ又は処理制限を超えないように、データ処理マシン４１０に分散されてもよい。
【００５４】
４３５において、データ処理マシン４１０が、受信したデータサブセットに対してＦＰ分析手順を別個に実行し得る。例えば、データ処理マシン４１０−ａは、第１のデータサブセットに対してＦＰ分析手順を実行することができ、データ処理マシン４１０−ｂは、第２のデータサブセットに対してＦＰ分析手順を実行することができる。このＦＰ分析手順は、各データ処理マシン４１０が、その特定のデータ処理マシン４１０に対応するデータサブセットのためのＦＰ木及びリンクリストを含む凝縮データ構造を生成し、この凝縮データ構造をローカルにメモリに、又はデータ処理マシン４１０に関連づけられた外部メモリストレージに記憶することを含み得る。これらの凝縮データ構造は、データ処理マシン４１０によるＦＰ分析に使用されてもよい。このように、データベースシステム４０５は、複数のデータ処理マシン４１０のメモリ及び処理リソースを効率的に利用しながら、ＦＰ分析作業を複数の異なるマシンにわたり分散させることができる。
【００５５】
図５は、本開示の態様による分散システムのＦＰ分析をサポートする装置５０５のブロック図５００を示す。装置５０５は、入力モジュール５１０、分散モジュール５１５、及び出力モジュール５４５を含み得る。装置５０５は、プロセッサをさらに含んでもよい。これらのコンポーネントの各々は、互いに（例えば、１つ以上のバスを介して）通信し得る。いくつかの場合、装置５０５は、ユーザ端末、データベースサーバ、又は複数のコンピューティングデバイスを含むシステム、例えば、分散データ処理マシンを備えたデータベースシステムなどの一例であり得る。
【００５６】
入力モジュール５１０は、装置５０５の入力信号を管理することができる。例えば、入力モジュール５１０は、モデム、キーボード、マウス、タッチスクリーン、又は類似のデバイスとの対話に基づいて入力信号を識別し得る。これらの入力信号は、他のコンポーネント又はデバイスにおけるユーザ入力又は処理に関連づけられてもよい。いくつかの場合、入力モジュール５１０は、ｉＯＳ（登録商標）、ＡＮＤＲＯＩＤ（登録商標）、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／２（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、又は他の既知のオペレーティングシステムなどのオペレーティングシステムを利用して、入力信号を取り扱うことができる。入力モジュール５１０は、これらの入力信号のアスペクトを処理のために装置５０５の他のコンポーネントに送ってもよい。例えば、入力モジュール５１０は、分散システムのＦＰ分析をサポートするために、入力信号を分散モジュール５１５に送信することができる。いくつかの場合、入力モジュール５１０は、図７を参照して説明される入力／出力（Ｉ／Ｏ）コントローラ７１５のコンポーネントであり得る。
【００５７】
分散モジュール５１５は、受信コンポーネント５２０、メモリリソース識別器５２５、データグループ化コンポーネント５３０、分散コンポーネント５３５、及びＦＰ分析コンポーネント５４０を含み得る。分散モジュール５１５は、図６及び図７を参照して説明される分散モジュール６０５又は７１０の態様の一例であり得る。
【００５８】
分散モジュール５１５及び／又はその様々なサブコンポーネントの少なくとも一部は、ハードウェア、プロセッサにより実行されるソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実装することができる。プロセッサにより実行されるソフトウェアで実装される場合、分散モジュール５１５及び／又はその様々なサブコンポーネントの少なくとも一部の機能は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は他のプログラマブル論理デバイス、ディスクリートゲート又はトランジスタ論理、ディスクリートハードウェアコンポーネント、又は本開示に記載の機能を実行するように設計されたこれらの任意の組み合わせにより実行されてもよい。分散モジュール５１５及び／又はその様々なサブコンポーネントの少なくとも一部は様々な位置に物理的に配置されてもよく、機能の部分が１つ以上の物理デバイスにより異なる物理的位置に実装されるように分散されることが含まれる。いくつかの例において、分散モジュール５１５及び／又はその様々なサブコンポーネントの少なくとも一部は、本開示の様々な態様に従って、別個かつ区別可能なコンポーネントでもよい。他の例において、分散モジュール５１５及び／又はその様々なサブコンポーネントの少なくとも一部は１つ以上の他のハードウェアコンポーネントと組み合わせられてもよく、本開示の様々な態様に従って、これらに限られないがＩ／Ｏコンポーネント、トランシーバ、ネットワークサーバ、別のコンピューティングデバイス、本開示に記載の１つ以上の他のコンポーネント、又はこれらの組み合わせが含まれる。
【００５９】
受信コンポーネント５２０は、データベースシステム（例えば、装置５０５）においてＦＰ分析のためのデータセットを受信することができ、データセットはデータオブジェクトのセットを含み、データオブジェクトのセットのうち各々は幾つかのデータ属性を含む。いくつかの場合、受信コンポーネント５２０は、入力モジュール５１０の態様又はコンポーネントでもよい。
【００６０】
メモリリソース識別器５２５は、データベースシステム内のデータ処理マシンのセットの利用可能なメモリリソース能力を識別することができる。いくつかの場合、メモリリソース識別器５２５は、データ処理マシンのセットの利用可能な処理リソース能力をさらに識別してもよい。
【００６１】
データグループ化コンポーネント５３０は、データオブジェクトのセットをデータサブセットのセットにグループ化することができ、グループ化は、データオブジェクトのセットのうち各々のデータ属性の数と、識別された利用可能なメモリリソース能力に基づく。
【００６２】
分散コンポーネント５３５は、データオブジェクトのセットをデータ処理マシンのセットに分散させることができ、データ処理マシンのセットの各データ処理マシンは、データサブセットのセットのうち１つのデータサブセットを受信する。ＦＰ分析コンポーネント５４０は、データ処理マシンのセットの各データ処理マシンで別個に、データサブセットのうち受信した１つのデータサブセットに対するＦＰ分析手順を実行することができる。
【００６３】
出力モジュール５４５は、装置５０５の出力信号を管理することができる。例えば、出力モジュール５４５は、分散モジュール５１５などの装置５０５の他のコンポーネントから信号を受信し得、これらの信号を他のコンポーネント又はデバイスに送信し得る。いくつかの特定の例では、出力モジュール５４５は、ユーザインターフェースでの表示のため、データベース又はデータストアでの記憶のため、サーバ又はサーバクラスタでのさらなる処理のため、又は任意数のデバイス又はシステムでの任意の他のプロセスのために出力信号を送信することができる。いくつかの場合、出力モジュール５４５は、図７を参照して説明されるＩ／Ｏコントローラ７１５のコンポーネントでもよい。
【００６４】
図６は、本開示の態様による分散システムのＦＰ分析をサポートする分散モジュール６０５のブロック図６００を示す。分散モジュール６０５は、本明細書に記載される分散モジュール５１５又は分散モジュール７１０の態様の例であり得る。分散モジュール６０５は、受信コンポーネント６１０、メモリリソース識別器６１５、データグループ化コンポーネント６２０、分散コンポーネント６２５、ＦＰ分析コンポーネント６３０、データ構造生成器６３５、及びローカルストレージコンポーネント６４０を含み得る。これらのモジュールの各々は、互いに（例えば、１つ以上のバスを介して）直接又は間接的に通信することができる。
【００６５】
受信コンポーネント６１０は、データベースシステムにおいてＦＰ分析のためのデータセットを受信することができ、データセットはデータオブジェクトのセットを含み、データオブジェクトのセットのうち各々は幾つかのデータ属性を含む。いくつかの場合、受信コンポーネント６１０は、擬似リアルタイムＦＰ分析手順に基づいてＦＰ分析のための更新されたデータセットをデータベースシステムでさらに受信してもよい。いくつかの例において、データオブジェクトのセットは、ユーザ、ユーザのセット、ユーザデバイス、ユーザデバイスのセット、又はこれらの組み合わせを含み得る。さらに又は代わりに、データ属性は、データオブジェクトにより実行されるアクティビティ、データオブジェクトにより実行されるアクティビティのパラメータ、データオブジェクトの特性、又はこれらの組み合わせに対応し得る。いくつかの例では、データ属性はバイナリ値を含む。
【００６６】
メモリリソース識別器６１５は、データベースシステム内のデータ処理マシンのセットの利用可能なメモリリソース能力を識別することができる。いくつかの場合、データ処理マシンのセットは、仮想マシン、コンテナ、データベースサーバ、サーバクラスタ、又はこれらの組み合わせを含んでもよい。メモリリソース識別器６１５は、識別された利用可能なメモリリソース能力に基づいてＦＰ分析のためのデータ処理マシンのセットを起動することができる。いくつかの場合、分散モジュール６０５が擬似リアルタイムＦＰ分析手順をサポートする場合、メモリリソース識別器６１５は、データベースシステム内のデータ処理マシンのセットの更新された利用可能なメモリリソース能力を識別してもよく、識別された更新された利用可能なメモリリソース能力と、擬似リアルタイムＦＰ分析手順のための受信した更新されたデータセットのサイズに基づいて、データベースシステムの１つ以上のさらなるデータ処理マシンを起動するかどうかを決定してもよい。擬似リアルタイム手順は、「ライブ」手順（例えば、更新が特定の時間間隔しきい未満で発生し、それにより、手順が絶えず更新しているように見える）、又は周期的、半周期的、若しくは非周期的に更新する任意の手順に対応し得る。
【００６７】
いくつかの場合、データ処理マシンのセットの利用可能なメモリリソース能力を識別することは、メモリリソース識別器６１５がメモリリソース能力要求のセットをデータ処理マシンのセットに送信し、データ処理マシンのセットの各データ処理マシンから、各データ処理マシンの利用可能なメモリリソースのそれぞれの指標を受信することを含む。いくつかの例において、メモリリソース識別器６１５は、メモリリソース能力要求のスーパーセット（superset）をデータ処理マシンのスーパーセットに送信し、データ処理マシンのスーパーセットの各データ処理マシンから、データ処理マシンのスーパーセットの各データ処理マシンについての利用可能なメモリリソースのそれぞれの指標を受信し、データ処理マシンのセットの利用可能なメモリリソースの指標に基づいてＦＰ分析のためのデータ処理マシンのセットを選択することができる。
【００６８】
他の場合に、メモリリソース識別器６１５は、データ処理マシンのセットの各データ処理マシンのタイプ、データ処理マシンのセットの各データ処理マシン上で実行している他のプロセス、データ処理マシンのセットの各データ処理マシンに記憶される他のデータ、又はこれらの組み合わせに基づいて、データ処理マシンのセットにおける利用可能なメモリリソースを推定することにより、データ処理マシンのセットの利用可能なメモリリソース能力を識別することができる。
【００６９】
データグループ化コンポーネント６２０は、データオブジェクトのセットをデータサブセットのセットにグループ化することができ、グループ化は、データオブジェクトのセットのうち各々のデータ属性の数と、識別された利用可能なメモリリソース能力に基づく。いくつかの場合、グループ化は、データグループ化コンポーネント６２０が各データ属性の出現頻度を決定することを含み、グループ化は、各データ属性について決定された出現頻度に基づく。さらに又は代わりに、データサブセットのセットの各データサブセットは、データオブジェクトしきいより少数のデータオブジェクトか、又はデータサブセットの各データオブジェクトについて、データ属性しきいより少数のデータ属性かのいずれかを含み得る。
【００７０】
分散コンポーネント６２５は、データオブジェクトのセットをデータ処理マシンのセットに分散させることができ、データ処理マシンのセットの各データ処理マシンは、データサブセットのセットのうち１つのデータサブセットを受信する。
【００７１】
ＦＰ分析コンポーネント６３０は、データ処理マシンのセットの各データ処理マシンで別個に、データサブセットのセットのうち受信した１つのデータサブセットに対するＦＰ分析手順を別々に実行することができる。
【００７２】
データ構造生成器６３５は、データ処理マシンのセットの各データ処理マシンにおいて、データサブセットのセットのうち受信した１つのデータサブセットに対応するＦＰ木及びリンクリストを含む凝縮データ構造を（例えば、ＦＰ分析手順の一部として）生成することができる。
【００７３】
ローカルストレージコンポーネント６４０は、データ処理マシンのセットの各データ処理マシンのローカルメモリに凝縮データ構造を記憶することができる。いくつかの場合、ＦＰ分析コンポーネント６３０は、データ処理マシンのセットの各データ処理マシンにおいてローカルに、ローカルストレージコンポーネント６４０により記憶された凝縮データ構造に対するＦＰマイニング手順を実行することができる。ＦＰ分析コンポーネント６３０は、データ処理マシンのセットの各データ処理マシンにおいて、ＦＰマイニング手順の結果として、ＦＰのセットを識別することができる。
【００７４】
いくつかの場合、受信コンポーネント６１０は、データベースシステムにおいて、ユーザデバイスから、分析のためのデータ属性を示すユーザ要求を受信することができ、ＦＰマイニング手順は、ユーザ要求に基づいて実行される。ＦＰ分析コンポーネント６３０は、ユーザデバイスに対して、ユーザ要求に応答して、ＦＰマイニング手順に基づいて分析のために示されたデータ属性に関連づけられたＦＰを送信し得る。さらに又は代わりに、ＦＰ分析コンポーネント６３０は、データ処理マシンのセットの各データ処理マシンから、データベースでの記憶のためのＦＰのセットを送信してもよい。
【００７５】
図７は、本開示の態様による分散システムのＦＰ分析をサポートするデバイス７０５を含むシステム７００の図を示す。デバイス７０５は、本明細書に記載されるデータベースシステム又は装置５０５のコンポーネントの一例であり得、あるいは該コンポーネントを含み得る。デバイス７０５は、分散モジュール７１０、Ｉ／Ｏコントローラ７１５、データベースコントローラ７２０、メモリ７２５、プロセッサ７３０、及びデータベース７３５を含む、通信を送受信するためのコンポーネントを含む双方向データ通信のためのコンポーネントを含むことができる。これらのコンポーネントは、１つ以上のバス（例えば、バス７４０）を介して電子通信し得る。
【００７６】
分散モジュール７１０は、本明細書に記載される分散モジュール５１５又は６０５の一例であり得る。例えば、分散モジュール７１０は、図５及び図６を参照して本明細書に記載される方法又はプロセスのいずれかを実行してもよい。いくつかの場合、分散モジュール７１０は、ハードウェア、プロセッサにより実行されるソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実装されてもよい。
【００７７】
Ｉ／Ｏコントローラ７１５は、デバイス７０５の入力信号７４５及び出力信号７５０を管理することができる。Ｉ／Ｏコントローラ７１５は、デバイス７０５に統合されていない周辺機器をさらに管理してもよい。いくつかの場合、Ｉ／Ｏコントローラ７１５は、外部周辺機器に対する物理接続又はポートを表すことができる。いくつかの場合、Ｉ／Ｏコントローラ７１５は、ｉＯＳ（登録商標）、ＡＮＤＲＯＩＤ（登録商標）、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／２（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、又は他の既知のオペレーティングシステムなどのオペレーティングシステムを利用することができる。他の場合に、Ｉ／Ｏコントローラ７１５は、モデム、キーボード、マウス、タッチスクリーン、又は類似のデバイスを表し、あるいはこれらと対話することができる。いくつかの場合、Ｉ／Ｏコントローラ７１５は、プロセッサの一部として実装されてもよい。いくつかの場合、ユーザは、Ｉ／Ｏコントローラ７１５を介して、又はＩ／Ｏコントローラ７１５により制御されるハードウェアコンポーネントを介して、デバイス７０５と対話することができる。
【００７８】
データベースコントローラ７２０は、データベース７３５内のデータ記憶及び処理を管理することができる。いくつかの場合、ユーザは、データベースコントローラ７２０と対話することができる。他の場合に、データベースコントローラ７２０は、ユーザ対話なしに自動的に動作してもよい。データベース７３５は、単一データベース、分散データベース、複数分散データベース、データストア、データレーク、又は緊急バックアップデータベースの一例であり得る。
【００７９】
メモリ７２５は、ＲＡＭ及び読取専用メモリ（ＲＯＭ）を含み得る。メモリ７２５は、命令を含むコンピュータ読取可能な、コンピュータ実行可能なソフトウェアを記憶することができ、該命令は、実行されたときに、本明細書に記載される様々な機能をプロセッサに実行させる。いくつかの場合、メモリ７２５は、とりわけ、周辺コンポーネント又はデバイスとの対話などの基本的なハードウェア又はソフトウェア動作を制御することができる基本入力／出力システム（ＢＩＯＳ）を含み得る。
【００８０】
プロセッサ７３０は、インテリジェントハードウェアデバイス（例えば、汎用プロセッサ、ＤＳＰ、中央処理装置（ＣＰＵ）、マイクロコントローラ、ＡＳＩＣ、ＦＰＧＡ、プログラマブル論理デバイス、ディスクリートゲート又はトランジスタ論理コンポーネント、ディスクリートハードウェアコンポーネント、又はこれらの任意の組み合わせ）を含み得る。いくつかの場合、プロセッサ７３０は、メモリコントローラを使用してメモリアレイを動作させるように構成され得る。他の場合に、メモリコントローラが、プロセッサ７３０に統合されてもよい。プロセッサ７３０は、メモリ７２５に記憶されたコンピュータ読取可能命令を実行して、様々な機能（例えば、分散システムのＦＰ分析をサポートする機能又はタスク）を実行するように構成され得る。
【００８１】
図８は、本開示の態様による分散システムのＦＰ分析をサポートする方法８００を示すフローチャートを示す。方法８００の動作は、本明細書に記載されるデータベースシステム又はそのコンポーネントにより実施され得る。例えば、方法８００の動作は、図５〜図７を参照して説明される分散モジュールにより実行されてもよい。いくつかの例において、データベースシステムは、本明細書に記載の機能を実行するようにデータベースシステムの機能要素を制御するための命令セットを実行し得る。さらに又は代わりに、データベースシステムは、専用ハードウェアを使用して本明細書に記載の機能の態様を実行してもよい。
【００８２】
８０５において、データベースシステムが、ＦＰ分析のためのデータセットを受信し得、データセットはデータオブジェクトのセットを含み、データオブジェクトのセットのうち各々は幾つかのデータ属性を含む。８０５の動作は、本明細書に記載される方法に従って行うことができる。いくつかの例において、８０５の動作の態様は、図５〜図７を参照して説明される受信コンポーネントにより実行されてもよい。
【００８３】
８１０において、データベースシステムが、データベースシステム内のデータ処理マシンのセットの利用可能なメモリリソース能力を識別し得る。８１０の動作は、本明細書に記載される方法に従って行うことができる。いくつかの例において、８１０の動作の態様は、図５〜図７を参照して説明されるメモリリソース識別器により実行されてもよい。
【００８４】
８１５において、データベースシステムが、データオブジェクトのセットをデータサブセットのセットにグループ化し得、グループ化は、データオブジェクトのセットのうち各々のデータ属性の数と、識別された利用可能なメモリリソース能力に基づく。８１５の動作は、本明細書に記載される方法に従って行うことができる。いくつかの例において、８１５の動作の態様は、図５〜図７を参照して説明されるデータグループ化コンポーネントにより実行されてもよい。
【００８５】
８２０において、データベースシステムが、データオブジェクトのセットをデータ処理マシンのセットに分散させ得、データ処理マシンのセットの各データ処理マシンは、データサブセットのセットのうち１つのデータサブセットを受信する。８２０の動作は、本明細書に記載される方法に従って行うことができる。いくつかの例において、８２０の動作の態様は、図５〜図７を参照して説明される分散コンポーネントにより実行されてもよい。
【００８６】
８２５において、データベースシステムが、データ処理マシンのセットの各データ処理マシンで別個に、データサブセットのセットのうち受信した１つのデータサブセットに対してＦＰ分析手順を実行し得る。８２５の動作は、本明細書に記載される方法に従って行うことができる。いくつかの例において、８２５の動作の態様は、図５〜図７を参照して説明されるＦＰ分析コンポーネントにより実行されてもよい。
【００８７】
データベースシステムにおけるＦＰ分析の方法について記載する。当該方法は、データベースシステムで、ＦＰ分析のためのデータセットを受信するステップであり、データセットはデータオブジェクトのセットを含み、データオブジェクトのセットのうち各々は幾つかのデータ属性を含む、ステップと、データベースシステム内のデータ処理マシンのセットの利用可能なメモリリソース能力を識別するステップと、データオブジェクトのセットをデータサブセットのセットにグループ化するステップであり、グループ化は、データオブジェクトのセットのうち各々のデータ属性の数と、識別された利用可能なメモリリソース能力に基づく、ステップを含み得る。当該方法は、データオブジェクトのセットをデータ処理マシンのセットに分散させるステップであり、データ処理マシンのセットの各データ処理マシンはデータサブセットのセットのうち１つのデータサブセットを受信する、ステップと、データ処理マシンのセットの各データ処理マシンで別個に、データサブセットのセットのうち受信した１つのデータサブセットに対してＦＰ分析手順を実行するステップをさらに含み得る。
【００８８】
データベースシステムにおけるＦＰ分析のための装置について記載する。当該装置は、プロセッサと、プロセッサと電子通信するメモリと、メモリに記憶された命令を含み得る。命令は、当該装置に、データベースシステムで、ＦＰ分析のためのデータセットを受信することであり、データセットはデータオブジェクトのセットを含み、データオブジェクトのセットのうち各々は幾つかのデータ属性を含む、ことと、データベースシステム内のデータ処理マシンのセットの利用可能なメモリリソース能力を識別することと、データオブジェクトのセットをデータサブセットのセットにグループ化することであり、グループ化は、データオブジェクトのセットのうち各々のデータ属性の数と、識別された利用可能なメモリリソース能力に基づく、ことをさせるようにプロセッサにより実行可能であり得る。命令はさらに、当該装置に、データオブジェクトのセットをデータ処理マシンのセットに分散させることであり、データ処理マシンのセットの各データ処理マシンはデータサブセットのセットのうち１つのデータサブセットを受信する、ことと、データ処理マシンのセットの各データ処理マシンで別個に、データサブセットのセットのうち受信した１つのデータサブセットに対してＦＰ分析手順を実行することをさせるようにプロセッサによりさらに実行可能であり得る。
【００８９】
データベースシステムにおけるＦＰ分析のための別の装置について記載する。当該装置は、データベースシステムで、ＦＰ分析のためのデータセットを受信する手段であり、データセットはデータオブジェクトのセットを含み、データオブジェクトのセットのうち各々は幾つかのデータ属性を含む、手段と、データベースシステム内のデータ処理マシンのセットの利用可能なメモリリソース能力を識別する手段と、データオブジェクトのセットをデータサブセットのセットにグループ化する手段であり、グループ化は、データオブジェクトのセットのうち各々のデータ属性の数と、識別された利用可能なメモリリソース能力に基づく、手段を含み得る。当該装置は、データオブジェクトのセットをデータ処理マシンのセットに分散させる手段であり、データ処理マシンのセットの各データ処理マシンはデータサブセットのセットのうち１つのデータサブセットを受信する、手段と、データ処理マシンのセットの各データ処理マシンで別個に、データサブセットのセットのうち受信した１つのデータサブセットに対してＦＰ分析手順を実行する手段をさらに含み得る。
【００９０】
データベースシステムにおけるＦＰ分析のためのコードを記憶した非一時的コンピュータ読取可能媒体について記載する。コードは、データベースシステムで、ＦＰ分析のためのデータセットを受信することであって、データセットはデータオブジェクトのセットを含み、データオブジェクトのセットのうち各々は幾つかのデータ属性を含み、データベースシステム内のデータ処理マシンのセットの利用可能なメモリリソース能力を識別し、データオブジェクトのセットをデータサブセットのセットにグループ化することであって、グループ化は、データオブジェクトのセットのうち各々のデータ属性の数と、識別された利用可能なメモリリソース能力に基づくように、プロセッサにより実行可能な命令を含み得る。コードは、データオブジェクトのセットをデータ処理マシンのセットに分散させることであって、データ処理マシンのセットの各データ処理マシンはデータサブセットのセットのうち１つのデータサブセットを受信し、データ処理マシンのセットの各データ処理マシンで別個に、データサブセットのセットのうち受信した１つのデータサブセットに対してＦＰ分析手順を実行するように、プロセッサにより実行可能な命令をさらに含み得る。
【００９１】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データ処理マシンのセットの各データ処理マシンで別個にＦＰ分析手順を実行することは、データ処理マシンのセットの各データ処理マシンで、データサブセットのセットのうち受信した１つのデータサブセットに対応するＦＰ木及びリンクリストを含む凝縮データ構造を生成し、データ処理マシンのセットの各データ処理マシンのローカルメモリに凝縮データ構造を記憶する動作、特徴、手段、又は命令を含んでもよい。
【００９２】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データ処理マシンのセットの各データ処理マシンで別個にＦＰ分析手順を実行することは、データ処理マシンのセットの各データ処理マシンでローカルに、凝縮データ構造に対するＦＰマイニング手順を実行し、データ処理マシンのセットの各データ処理マシンで、ＦＰマイニング手順の結果としてＦＰのセットを識別する動作、特徴、手段、又は命令を含んでもよい。
【００９３】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例は、データベースシステムで、ユーザデバイスから、分析のためのデータ属性を示すユーザ要求を受信することであって、ＦＰマイニング手順はユーザ要求に基づいて実行される動作、特徴、手段、又は命令をさらに含んでもよい。本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例は、ユーザデバイスに対して、ユーザ要求に応答して、ＦＰマイニング手順に基づいて分析のための示されたデータ属性に関連づけられたＦＰを送信する動作、特徴、手段、又は命令をさらに含んでもよい。
【００９４】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例は、データ処理マシンのセットの各データ処理マシンから、データベースにおける記憶のためにＦＰのセットを送信する動作、特徴、手段、又は命令をさらに含んでもよい。
【００９５】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データオブジェクトのセットをデータサブセットのセットにグループ化することは、各データ属性の出現頻度を決定することであって、グループ化は、各データ属性について決定された出現頻度に基づく動作、特徴、手段、又は命令を含んでもよい。
【００９６】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データサブセットのセットの各データサブセットは、データオブジェクトしきい未満であり得る数のデータオブジェクトか、又はデータサブセットの各データオブジェクトについて、データ属性しきい未満であり得る数のデータ属性かのいずれかを含む。
【００９７】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データ処理マシンのセットの利用可能なメモリリソース能力を識別することは、メモリリソース能力要求のセットをデータ処理マシンのセットに送信し、データ処理マシンのセットの各データ処理マシンから、データ処理マシンのセットの各データ処理マシンの利用可能なメモリリソースのそれぞれの指標を受信する動作、特徴、手段、又は命令を含んでもよい。
【００９８】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、メモリリソース能力要求のセットをデータ処理マシンのセットに送信することは、メモリリソース能力要求のスーパーセットをデータ処理マシンのスーパーセットに送信し、データ処理マシンのスーパーセットの各データ処理マシンから、データ処理マシンのスーパーセットの各データ処理マシンの利用可能なメモリリソースのそれぞれの指標を受信する動作、特徴、手段、又は命令を含んでもよい。本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例は、データ処理マシンのセットの利用可能なメモリリソースの指標に基づいて、ＦＰ分析のためのデータ処理マシンのセットを選択する動作、特徴、手段、又は命令をさらに含んでもよい。
【００９９】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データ処理マシンのセットの利用可能なメモリリソース能力を識別することは、データ処理マシンのセットの各データ処理マシンのタイプ、データ処理マシンのセットの各データ処理マシンで実行している他のプロセス、データ処理マシンのセットの各データ処理マシンに記憶された他のデータ、又はこれらの組み合わせに基づいて、データ処理マシンのセットで利用可能なメモリリソースを推定する動作、特徴、手段、又は命令を含んでもよい。
【０１００】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例は、識別された利用可能なメモリリソース能力に基づいて、ＦＰ分析のためのデータ処理マシンのセットを起動する動作、特徴、手段、又は命令をさらに含んでもよい。
【０１０１】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例は、データベースシステムで、擬似リアルタイムＦＰ分析手順に基づいてＦＰ分析のための更新されたデータセットを受信し、データベースシステム内のデータ処理マシンのセットの更新された利用可能なメモリリソース能力を識別する動作、特徴、手段、又は命令をさらに含んでもよい。本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例は、識別された更新された利用可能なメモリリソース能力と、更新されたデータセットのサイズに基づいて、データベースシステムの１つ以上のさらなるデータ処理マシンを起動するかどうかを決定する動作、特徴、手段、又は命令をさらに含んでもよい。
【０１０２】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データ処理マシンのセットは、仮想マシン、コンテナ、データベースサーバ、サーバクラスタ、又はこれらの組み合わせを含む。
【０１０３】
本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データオブジェクトのセットは、ユーザ、ユーザのセット、ユーザデバイス、ユーザデバイスのセット、又はこれらの組み合わせを含む。本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データ属性は、データオブジェクトにより実行されるアクティビティ、データオブジェクトにより実行されるアクティビティのパラメータ、データオブジェクトの特性、又はこれらの組み合わせに対応する。本明細書に記載される方法、装置、及び非一時的コンピュータ読取可能媒体のいくつかの例において、データ属性はバイナリ値の例である。
【０１０４】
本明細書に記載の方法は可能な実装を説明しており、動作及びステップは再配置又はその他の方法で変更されてもよく、他の実装が可能であることに留意されたい。さらに、２つ以上の方法からの態様が組み合わせられてもよい。
【０１０５】
添付の図面に関連して本明細書に記載された説明は例示的な構成を記載しており、実施され得る又は特許請求の範囲の範囲内にある全ての例を表しているわけではない。本明細書で用いられる用語「例示的」は、「例、インスタンス、又は例示として機能する」ことを意味し、「好適」又は「他の例より有利」ではない。詳細な説明は、説明された手法の理解を提供する目的で特定の詳細を含む。しかしながら、これらの手法は、これらの特定の詳細なしに実施され得る。いくつかの例において、良く知られた構造及びデバイスは、説明された例の概念を分かりにくくすることを避けるためにブロック図形式で示されている。
【０１０６】
添付の図面において、同様のコンポーネント又は特徴は、同じ参照ラベルを有し得る。さらに、同じタイプの様々なコンポーネントは、ダッシュ及び同様のコンポーネント間を区別する第２のラベルによって参照ラベルを辿ることにより区別され得る。第１の参照ラベルだけが本明細書で用いられている場合、説明は、第２の参照ラベルにかかわらず同じ第１の参照ラベルを有する同様のコンポーネントのうち任意の１つに適用可能である。
【０１０７】
本明細書に記載される情報及び信号は、様々な異なる技術及び手法のいずれかを使用して表され得る。例えば、上記説明の全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場若しくは磁性粒子、光学場若しくは光学粒子、又はこれらの任意の組み合わせにより表わされてもよい。
【０１０８】
本明細書の開示に関連して説明される様々な例示的なブロック及びモジュールは、汎用プロセッサ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ若しくは他のプログラマブル論理デバイス、ディスクリートゲート若しくはトランジスタ論理、ディスクリートハードウェアコンポーネント、又は本明細書に記載の機能を実行するように設計されたこれらの任意の組み合わせを用いて実施又は実行されてもよい。汎用プロセッサはマイクロプロセッサでもよいが、代替的に、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンでもよい。プロセッサは、コンピューティングデバイスの組み合わせ（例えば、ＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと関連した１つ以上のマイクロプロセッサ、又は任意の他のそのような構成）として実装されてもよい。
【０１０９】
本明細書に記載される機能は、ハードウェア、プロセッサにより実行されるソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実装されてもよい。プロセッサにより実行されるソフトウェアで実装される場合、機能は、コンピュータ読取可能媒体上の１つ以上の命令又はコードとして記憶され、あるいは送信されてもよい。他の例及び実装が、本開示及び別記の特許請求の範囲の範囲内である。例えば、ソフトウェアの性質に起因して、本明細書に記載の機能は、プロセッサにより実行されるソフトウェア、ハードウェア、ファームウェア、ハードウェア配線、又はこれらのいずれかの組み合わせを使用して実装できる。機能を実装する特徴は様々な位置に物理的に配置されてもよく、機能の部分が異なる物理的位置に実装されるように分散されることが含まれる。また、特許請求の範囲を含め、本明細書で用いられるとき、アイテムのリスト（例えば、「のうち少なくとも１つ」又は「のうち１つ以上」などのフレーズにより始められたアイテムのリスト）で用いられる「又は」は、包括的なリストを示し、したがって、例えば、Ａ、Ｂ、又はＣのうち少なくとも１つのリストは、Ａ、又はＢ、又はＣ、又はＡＢ、又はＡＣ、又はＢＣ、又はＡＢＣ（すなわち、Ａ及びＢ及びＣ）を意味する。また、本明細書で用いられるとき、フレーズ「に基づく」は、閉じた条件のセットを指すものと解釈されてはならない。例えば、「条件Ａに基づく」と記載されている例示的なステップは、本開示の範囲から逸脱することなく、条件Ａ及び条件Ｂの双方に基づき得る。換言すれば、本明細書で用いられるとき、フレーズ「に基づく」は、フレーズ「少なくとも部分的に基づく」と同じように解釈されるものとする。
【０１１０】
コンピュータ読取可能媒体は、ある場所から他の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む非一時的コンピュータ記憶媒体及び通信媒体の双方を含む。非一時的記憶媒体は、汎用又は専用コンピュータによりアクセス可能な任意の利用可能媒体でもよい。限定でなく例として、非一時的コンピュータ読取可能媒体は、ＲＡＭ、ＲＯＭ、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、コンパクトディスク（ＣＤ）  ＲＯＭ若しくは他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、又は所望のプログラムコード手段を命令又はデータ構造の形式で搬送又は記憶するために使用でき、かつ汎用若しくは専用コンピュータ又は汎用若しくは専用プロセッサによりアクセスできる任意の他の非一時的媒体を含むことができる。また、任意の接続が、適切にコンピュータ読取可能媒体と呼ばれる。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などの無線技術を用いてウェブサイト、サーバ、又は他のリモートソースから伝送される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などの無線技術は、媒体の定義に含まれる。本明細書で用いられるディスク（Disk）及びディスク（disc）には、ＣＤ、レーザーディスク（登録商標）、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピーディスク、及びブルーレイ（登録商標）ディスクが含まれ、ディスク（disks）は通常、磁気的にデータを再現し、ディスク（discs）は、レーザで光学的にデータを再現する。上記の組み合わせもまた、コンピュータ読取可能媒体の範囲内に含まれる。
【０１１１】
本明細書の説明は、当業者が本開示を製造又は使用することを可能にするように提供されている。本開示に対する様々な修正が当業者に容易に明らかになり、本明細書で定義される一般原理は、本開示の範囲から逸脱することなく他の変形に適用され得る。したがって、本開示は、本明細書に記載された例及び設計に限定されず、本明細書に開示された原理及び新規の特徴と一致する最も広い範囲を与えられるべきである。
【図１】
2021525907.tif 000003
【図２】
2021525907.tif 000004
【図３】
2021525907.tif 000005
【図４】
2021525907.tif 000006
【図５】
2021525907.tif 000007
【図６】
2021525907.tif 000008
【図７】
2021525907.tif 000009
【図８】
2021525907.tif 000010
【国際調査報告】
2021525907.tif 000011
2021525907.tif 000012