(57)【要約】      （修正有）【課題】トランザクションデータ列の複数の集合から分析的に有用な関係を抽出する。【解決手段】選択された列の集合のそれぞれのためのテーブルスキャンの間に、ｈｙｐｅｒｌｏｇｌｏｇなどの確率的計数構造が形成される。それぞれの列のデータ型に基づいてもよく、関連度の初期推定に基づいて列が選択されてもよい。確率的データ構造の交点に基づいて、列の交点または和集合の基数推定が行われる。列の交点または和集合の推定された基数に基づいて、結合パスが判定されてもよい。【選択図】図１
2018190450.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサと、
命令を格納した少なくとも１つのメモリと、
を備えるシステムであって、
前記命令は、前記少なくとも１つのプロセッサによって実行されることに応答して、前記システムに、少なくとも、
第１の列のデータに格納される一意の値の第１の推定計数を格納させ、
第２の列のデータに格納される一意の値の第２の推定計数を格納させ、
前記第１および第２の推定計数の交点を計算させ、
前記交点に少なくとも部分的に基づいて、前記第１の列と前記第２の列との間の結合パスを識別させる、
システム。
【請求項２】
前記少なくとも１つのメモリは、命令を格納し、前記命令は、前記少なくとも１つのプロセッサによって実行されることに応答して、前記システムに、少なくとも、
前記第１および第２の列の間の関連性の推定に基づいて、前記第１および第２の列のデータを選択させる、
請求項１に記載のシステム。
【請求項３】
関連性の前記推定は、前記第１および第２の列に共通のデータ型に少なくとも部分的に基づく、
請求項２に記載のシステム。
【請求項４】
前記結合パスは、前記第１および第２の列のフィールド間の一致度の推定に少なくとも部分的に基づいて識別される、
請求項１に記載のシステム。
【請求項５】
前記第１の推定計数は、第１の確率的計数構造に格納され、前記第２の推定計数は、第２の確率的計数構造に格納される、
請求項１に記載のシステム。
【請求項６】
前記確率的計数構造は、ｌｏｇｌｏｇ、ｈｙｐｅｒｌｏｇｌｏｇ、ブルームフィルタまたはｍｉｎ−ｈａｓｈの少なくとも１つを含む、
請求項５に記載のシステム。
【請求項７】
前記第１の推定計数は、データベーステーブルの複数の列の第１の走査を実行することによって生成される、
請求項１に記載のシステム。
【請求項８】
第１の列のデータに格納される一意の値の第１の推定計数を格納するステップと、
第２の列のデータに格納される一意の値の第２の推定計数を格納するステップと、
前記第１および第２の推定計数の交点を計算するステップと、
前記交点に少なくとも部分的に基づいて、前記第１の列と前記第２の列との間の結合パスを識別するステップと、
を含む方法。
【請求項９】
前記第１および第２の列の間の関連性の推定に基づいて、前記第１および第２の列のデータを選択するステップをさらに含む、
請求項８に記載の方法。
【請求項１０】
関連性の前記推定は、前記第１および第２の列に共通のデータ型に少なくとも部分的に基づく、
請求項９に記載の方法。
【請求項１１】
前記結合パスは、前記第１および第２の列のフィールド間の一致度の推定に少なくとも部分的に基づいて識別される、
請求項８に記載の方法。
【請求項１２】
前記第１の推定計数は、第１の確率的計数構造に格納され、前記第２の推定計数は、第２の確率的計数構造に格納される、
請求項８に記載の方法。
【請求項１３】
前記確率的計数構造は、ｌｏｇｌｏｇ、ｈｙｐｅｒｌｏｇｌｏｇ、ブルームフィルタまたはｍｉｎ−ｈａｓｈの少なくとも１つを含む、
請求項１２に記載の方法。
【請求項１４】
前記第１の推定計数は、データベーステーブルの複数の列の第１の走査を実行することによって生成される、
請求項８に記載の方法。
【請求項１５】
前記第１および第２の列のための一致度の推定と、２つ以上の追加の列のための一致度の追加の推定と、を少なくともに比較することによって、前記結合パスを識別するステップをさらに含み、
一致度の前記推定は、前記交点に少なくとも部分的に基づく、
請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は２０１４年１２月２２日に出願された米国特許出願第１４／５７８，８４１の利益を主張し、その開示内容全体を本明細書に参照として援用する。
【背景技術】
【０００２】
データウェアハウスおよびオンライン分析処理（「ＯＬＡＰ」）システムは、分析クエリの自動生成を可能にする様々なツールを含んでもよい。これらのツールは場合によって、分析されるデータの構造に関する様々な詳細を提供する上でユーザに依拠してもよい。しかし、この情報の提供は複雑なプロセスとなる可能性がある。その他の場合にツールは、主キーと外部キーとの関係などの明示的に定義されるスキーマ情報を利用して分析クエリを自動的に生成してもよい。しかし明示的に定義されない場合であっても、分析的に有用な関係が存在してもよい。また、分析ツールのユーザが意識しない分析的に有用な関係があってもよい。
【０００３】
以下の詳細な説明は、添付図面と併せ読むことでよりよく理解することができる。例示のために、図面において本開示の態様の様々な実施例が示されるが、本発明は開示される特定の方法および手段に限定されるものではない。
【図面の簡単な説明】
【０００４】
【図１】２列内のフィールド一致度を推定するために確率的計数構造を利用して結合関係を識別するシステムおよびプロセスの実施形態を示すブロック図である。
【図２】基数推定を利用して算出される、推定されたフィールド一致度に基づく２列間の結合パスの識別を示すブロック図である。
【図３】確率的計数構造の交点および和集合を算出するプロセスを示す。
【図４】確率的計数構造を利用して結合パスを識別するプロセスの実施形態を示す。
【図５】複数の列の内の２列間の結合パスを識別するプロセスの実施形態を示す。
【図６】本開示の態様を実施することができる計算環境の実施形態を示すブロック図である。
【図７】本開示の態様を実施することができる計算システムの実施形態を示すブロック図である。
【発明を実施するための形態】
【０００５】
本開示の態様は、トランザクションデータの分析操作を実行するために利用されてもよい結合関係を識別するために利用してもよい。結合関係は、分析クエリの生成などの様々な目的のために利用されてもよい。場合によっては、分析を実行するために利用可能である階層を生成するために結合関係を利用してもよい。
【０００６】
本開示の実施形態においては、ｈｙｐｅｒｌｏｇｌｏｇなどの、列間の結合関係を識別するための確率的データ構造を利用してもよい。実施形態においては潜在的に関連する各列のための確率的データ構造が生成されてもよく、その場合、関連性の初期推定は共通データ型などの要因に基づいてもよい。実施形態においては、２つ以上の確率的データ構造の、交点に基づく列の値の間の一致度または交点に基づく和集合が推定されてもよい。列の値の間の一致度はその後、列間の結合関係を識別するための根拠として利用されてもよい。
【０００７】
確率的データ構造は、集合の基数を推定するために、近似化または無作為化などの様々な統計的手法に関連するものを含んでもよい。データセットの基数は、集合内の異なる値の数を指してもよい。確率的データ構造の実施例は、ｈｙｐｅｒｌｏｇｌｏｇ、ｌｏｇｌｏｇ、およびブルームフィルタ手法に関連するものを含む。ｈｙｐｅｒｌｏｇｌｏｇ、ｌｏｇｌｏｇ、ｍｉｎ−ｈａｓｈ、およびブルームフィルタの用語は、手法に対応する構造を指すために利用されてもよい。
【０００８】
確率的データ構造は、いくつかのバケットを含んでもよい。各バケットはデータストリームの区分に対応してもよく、区分内の推定された基数に関する情報を含んでもよい。データストリームは、様々な基準に基づいて区分されてもよい。場合によって、区分は実質的に無作為であってもよく、その場合にバケットはデータセットの実質的に無作為な部分に対応してもよい。これは例えば、特定のハッシュ関数を利用してデータストリームが区分される場合である。その他の場合には、区分はキー範囲などの無作為でない基準に基づいてもよい。
【０００９】
データストリームは通常、大規模な（場合によっては非常に大規模な）データセットをスキャンすることによって取得されてもよい。確率的データ構造は、メモリ効率のよい方法で大規模なデータセットの基数を推定するために利用されてもよい。しかし基数推定の正確性は、データストリームにおける区分の数および確率的データ構造内の対応するバケットの数に依拠してもよい。
【００１０】
実施形態においては、複数のデータストリームにおけるデータ間の一致度を推定するために複数の確率的データ構造が利用されてもよい。本明細書にて使用されるように、データストリームの用語は、データベース管理システムからの列指向データに適用してもよい。したがって実施形態においては、複数のデータ列におけるデータ間の一致度を推定するために複数の確率的データ構造が利用されてもよい。
【００１１】
図１は、２列内のフィールド一致度を推定するために確率的計数構造を利用して結合関係を識別するシステムおよびプロセスの実施形態を示すブロック図である。フィールドと称されてもよい特定の行内の列の値は、両方のフィールドが行内で同じ値を有する場合に、別のフィールドと一致してもよい。実施形態は一致頻度に基づいて、結合パスが２列間に存在することを判定してもよい。
【００１２】
図１において、テーブル１００はいくつかの行１１４を含んでもよい。各行は、列１０２〜１０６などのいくつかの列を含んでもよい。特定の列および特定の行の交点は、フィールドと記載してもよい。用語フィールドは、行および列の交点またはこのような交点の値を説明するために利用されてもよい。図１において、フィールド１０８は列１０２に対応してもよく、フィールド１１０は列１０４に対応してもよく、フィールド１１２は列１０６に対応してもよい。様々な実施形態において、テーブル１００のデータは、行指向フォーマットおよび／または列指向フォーマットにおいて１つまたは複数の記憶装置上に格納されてもよい。
【００１３】
実施形態において、関連性の初期推定に基づく分析のための特定の列が識別されてもよい。例えば実施形態において、列１０２および列１０６が潜在的に関連があると判定される可能性がある。初期推定は場合によって、データ型に基づいてもよい。結合パスは、同じデータ型、類似のデータ型、または共通データ型に変換することができる異なるデータ型の列の間に存在する可能性がより高い。非限定的な実施例として、示される列１０２および１０６はいずれも、整数データ型などの同じデータ型であることが推定されてもよい。
【００１４】
特定の列内の値の基数を判定するために確率的計数技術が利用されてもよい。例えば確率的計数構造１１６が、フィールド１１２のために形成され、列１０６に対応する基数推定をもたらすために利用されてもよい。同様に、確率的計数構造１２８はフィールド１０８のために形成され、列１０２に対応する基数推定をもたらすために利用されてもよい。列のための基数推定は、列のフィールド内のいくつかの一意の値を示してもよい。
【００１５】
確率的計数構造１１６は、いくつかのバケット１１８〜１２６を含んでもよい。バケット１２０などの個別のバケットは、フィールド１１２に存在することができる値の範囲の基数、または、フィールド１１２における行の範囲の基数に対応してもよい。
【００１６】
実施形態は、分析モジュール１４６を含んでもよい。分析モジュール１４６は、確率的計数構造１１６と確率的計数構造１２８の交点を算出してもよい交点／和集合手順１４０を含んでもよい。これらの構造はいずれも、ベクトルとして可視化されてもよい。２つのベクトルの交点は、２つの元のベクトルの対応する要素の交点を含む、新規ベクトルの要素を含んでもよい。例えば交点は、５つの要素がバケット１１８と１３０、バケット１２０と１３２、バケット１２２と１３４、バケット１２４と１３６、およびバケット１２６と１３８の交点を含むベクトルとして算出される可能性がある。図１において確率的計数構造１１６および１２８は、それぞれ５つのバケットを有するものとして示される。より多いまたは少ないバケットが様々な場合および実施形態において利用されてもよい。
【００１７】
分析モジュール１４６は、フィールド一致度推定手順１４２を含んでもよい。フィールド一致度の推定は、確率的データ構造１１６および１２８の交点を利用することを含んでもよい。交点は例えば、包除原理を利用してフィールド１０８および１１２の和集合の基数の推定値を決定するために利用されてもよい。
【００１８】
実施形態においては、フィールド１０８および１１２の和集合の推定された基数が利用されてもよい。分析モジュール１４６が含んでもよい結合パス判定手順１４４は、和集合の推定された基数に、または和集合を判定せずに交点に基づいて列１０２と列１０６の間の結合パスを識別してもよい。
【００１９】
図２は、基数推定を利用して算出される、推定されたフィールド一致度に基づく２列間の結合パスの識別を示すブロック図である。２００および２０２の２列間に自然結合パスが存在するか否かを判定するために、列２００および列２０２が分析されてもよい。基数推定２２０を形成するために列２００が分析されてもよい。基数推定２２０は、列２００の全体の基数の指示を含んでもよい。同様に基数推定２２２は、列２０２の全体の基数の指示を含んでもよい。
【００２０】
例えば図２において、フィールド２０４、２０６、および２１０は同じ「Ａ」の値を共有し、フィールド２０８は「Ｘ」の値を有するため、列２００はアルファベットの「Ａ〜Ｃ」の範囲内の２つの全体の基数および１つの基数を有するとしてもよい。フィールド２１２および２１８はＡの値を共有し、フィールド２１４は「Ｂ」の値を有し、フィールド２１６は「Ｙ」の値を有するため、列２０２は「Ａ〜Ｃ」の範囲内の３つの全体の基数および２つの基数を有するとすることができる。これらの実施例は、一般的な原理を説明することを意図しており、本開示の範囲を限定するものとして見なされるべきではないことが理解される。本明細書に記載の技術の応用においては、多数のフィールド値ならびに、場合によっては、高い基数値および基数を算出することができる多くの範囲が存在してもよい。
【００２１】
実施形態においては、「Ａ〜Ｃ」の範囲などのそれぞれの範囲において推定された基数に基づき、列２００および列２０２に関する結合パスを識別するために結合パス判定２２４が実行されてもよい。結合パス判定２２４は、基数推定表現の交点に基づいてもよい。結合パス判定２２４はまた、包除原理を介した交点に基づくことができる基数推定表現の和集合に基づいてもよい。
【００２２】
図３は、確率的計数構造の交点および和集合を算出するプロセスを示す。確率的計数構造は、示されるバケット３００および３０４などの様々なバケットを含んでもよい。各バケットは、そのバケットに関する基数推定の表現を含んでもよい。示されるように、基数推定３０２はバケット３００に対応してもよく、基数推定３０６はバケット３０４に対応してもよい。なお、それぞれが２度の算出において利用されるため、バケット３００および３０４ならびに対応する基数推定３０２および３０６は図３においてそれぞれ２度示される。
【００２３】
確率的計数構造の交点は、交点算出３０８を含んでもよい。これは、基数推定３０２と基数推定３０６との間の交点を含んでもよい。交点算出の性質は部分的に、基数推定の表現に依拠してもよい。場合によっては、対応するバケットの交点または和集合を形成するために集合論の応用が利用されてもよい。その他の場合には、集合論は全体としての表現に応用されてもよい。さらに別の場合には、バケットの検証により、２つの確率的計数構造の交点または和集合算出の推論手段を支援してもよい。例えばｈｙｐｅｒｌｏｇｌｏｇの場合、ｈｙｐｅｒｌｏｇｌｏｇバケットの二進表現における先頭ゼロの検証を交点または和集合の判定において利用することができる。いくつかの実施形態においては、２つの基数表現の間でビットごとのＡＮＤ演算が実行されてもよい。図３において、結果として得られる構造は、基数推定３０８の交点として示される。これは減算３１２によって、加算３１０を通じて得られてもよい基数推定３０２と基数推定３０６との合計から減じられてもよい。加算３１０および減算３１２の性質は、基数推定が表現される方法に基づいて変化してもよい。
【００２４】
基数推定３０２と２０６との合計から基数推定３０８の交点を減じた結果を、基数推定３１４の和集合としてもよい。様々な実施形態において、基数推定３１４の和集合は２列における値の間の重複度を表してもよい。なお、様々な実施形態において、本明細書に記載の様々な技術を利用して２つより多い列に関する分析を支援してもよい。
【００２５】
図４は、確率的計数構造を利用して結合パスを識別するプロセスの実施形態を示す。要素の順序が示されているが、示される順序は本開示の範囲を限定するものとして見なされるべきではなく、示される要素の少なくとも一部を変更し、省略し、並び替え、付加的な要素を補足し、あるいは並列に実行してもよいことが当業者には理解される。示されるプロセスの実施形態は、本明細書に記載の計算システムなどの計算システムによって実行されるコンピュータ実行可能命令を含むモジュールを利用して実装されてもよい。示されるプロセスの実施形態は場合によって、複数の計算ノードを含む分散データベース管理システムによってテーブルがホストされる分散計算環境において実施されてもよい。分析操作は、分散データベース管理システムに通信可能に接続され、図１に示される分析モジュール１４６などの分析モジュールを含む計算ノードによって実行されてもよい。
【００２６】
要素４００によって示されるように、実施形態において、関連性の初期推定に基づき、分析のための列を選択してもよい。初期推定は、テーブルまたは共通データ型を有するデータ集合の列の識別を含んでもよい。実施形態において、同一のまたは類似の型の、または同一のまたは類似の型に変換することができる列を含むタプルへとテーブルの列を分類してもよい。初期推定はまた、行の様々な列のためのフィールド値のサンプリングに基づいてもよい。このような場合、実施形態においては通常、この段階でのフルテーブルのスキャンを回避する。
【００２７】
実施形態において、分析のための列の複数のタプルを識別してもよい。要素４０２によって示されるように、実施形態においてテーブルのスキャンを開始してもよい。実施形態において、１度のスキャンの間に構築される確率的計数構造に基づき、複数のタプルの分析が実行されてもよい。いくつかの場合および実施形態において、テーブルスキャンはフルテーブルスキャンを含んでもよい。他の場合および実施形態において、テーブルスキャンは部分的であってもよい。フルテーブルスキャンの実行に関連する時間または他のコストを削減するために、様々なサンプリング技術が利用されてもよい。列指向ストレージに関する場合に、それぞれの選択された列の確率的計数構造を形成するために、関連する列のフルまたは部分スキャンを実行してもよい。
【００２８】
要素４０４および４０６は、第１の列のための第１の確率的計数構造および、第２の列のための第２の確率的計数構造を形成する実施形態を示す。列は、要素４００が示す操作によって選択された列に対応してもよい。確率的計数構造は、ｈｙｐｅｒｌｏｇｌｏｇ、ｌｏｇｌｏｇ、ブルームフィルタ、ｍｉｎ−ｈａｓｈ、または他の類似の構造であってもよい。実施形態は、２つ以上のこのような構造上の交点および／または和集合演算子のメモリ効率性、正確性、および実現可能性などの要因に基づき、特定の型の確率的計数構造を利用するように構築されてもよい。
【００２９】
列のためのｈｙｐｅｒｌｏｇｌｏｇ構造の形成には、ｈｙｐｅｒｌｏｇｌｏｇ構造のバケットに対するメモリの割り当てが含まれてもよい。要素４０２において開始されたテーブルのスキャンの間、ハッシュ関数を各行ごとの第１の列の値に応用し、ハッシュ関数の出力に対応するバケットに格納することができる。結果として得られる構造は、基数が第１の列の基数と相関するランダム分布を表してもよい。バケットに対して割り当てられたより大きなメモリにより、基数推定のためのより精密なハッシュ関数およびより高い正確性が可能になる。他の確率的計数構造が類似の方法で形成されてもよい。これらの構造は、計算装置のメモリにおいて、または計算装置が通信可能に接続される記憶装置上で形成されてもよい。場合によっては、ｈｙｐｅｒｌｏｇｌｏｇを用いるなどして、構造に位置する空間の大きさは、それがもたらす基数推定の正確性に対応する。場合によって実施形態は、利用可能なメモリまたは記憶領域と推定のための所望の正確性レベルといった要因の均衡化に基づいてｈｙｐｅｒｌｏｇｌｏｇまたは他の確率的データ構造を形成してもよい。
【００３０】
要素４０８は、第１および第２の確率的計数構造の交点算出を行う実施形態を示す。２つの確率的計数構造の交点は、確率的計数構造における対応するバケットの交点の算出を含んでもよい。実施形態においては、その後確率的計数構造の和集合を算出するために、交点が利用されてもよい。交点は例えば、図３に示す手順を利用して算出されてもよい。
【００３１】
要素４１０によって示されるように、実施形態において、第１および第２の列のフィールド間の一致度が推定されてもよい。推定は、交点に、交点に基づいて算出される和集合に、または交点に存在しない要素の数の判定に基づいてもよい。フィールド一致度の推定は、第２の列にも存在する第１の列の要素からなる集合の推定された基数を算出するための包除原理の利用に基づいてもよい。あるいは、フィールド一致度の推定は、第２の列には存在しない第１の列の要素からなる集合の基数および、第１の列には存在しない第２の列の要素に基づいてもよい。
【００３２】
要素４１２によって示されるように、実施形態においては、推定された一致度に基づいて、第１および第２の列の間の結合パス候補が識別されてもよい。これには、少なくとも第１および第２の確率的データ構造の交点または和集合に基づく、第１および第２の列における値の間の一致度が閾値を超えることの判定が含まれてもよい。一致度の推定値が高いほど、結合パスが２列間に存在する可能性がより高いことを示す。したがって、２列間の結合パスの識別は、閾値を超える一致度の推定に基づき得る。
【００３３】
図５は、複数の列の内の２列間の結合パスを識別するプロセスの実施形態を示す。要素の順序が示されているが、示される順序は本開示の範囲を限定するものとして見なされるべきではなく、示される要素の少なくとも一部を変更し、省略し、並び替え、付加的な要素を補足し、あるいは並列に実行してもよいことが当業者には理解される。示されるプロセスの実施形態は、本明細書に記載の計算システムなどの計算システムによって実行されるコンピュータ実行可能命令を含むモジュールを利用して実装されてもよい。
【００３４】
要素５００によって示されるように、実施形態において、複数の列の間から少なくとも第１の列のタプルおよび第２の列のタプルが選択されてもよい。列のタプルは、さらなる評価のために潜在的な結合パスとして選択される２列を含んでもよい。タプルは、同一のまたは類似のデータ型を共有するか、または共通データ型へと変換されてもよいこれらの列の間から選択されてもよい。データ型は、関連性の初期推定の根拠とすることができる。いくつかの場合および実施形態において、付加的な要因は、列におけるデータの予備サンプリング、列名に基づく分析などを含んでもよい。列のタプルの選択は、計算装置のメモリに保持されるリスト構造へのタプルの追加を含んでもよい。リスト内のタプルはその後、それに続く分析のために、アクセスされてもよい。
【００３５】
要素５０２によって示されるように、実施形態において、タプル内の各一意の列の確率的データ構造を構築しながらテーブルをスキャンしてもよい（またはそれ以外のデータストリームを処理してもよい）。例えば、タプルが（列Ａ、列Ｂ）および（列Ａ、列Ｃ）である場合、実施形態はその後、３つの確率的データ構造―列Ａ、ＢおよびＣのそれぞれにつき１つずつを形成してもよい。要素５０４によって示されるように、交点はその後、各タプルにおける列の間で算出されてもよい。例えば実施形態において、列Ａの確率的データ構造の列Ｂのそれとの交点が算出され、列Ａの確率的データ構造の列Ｃのそれとの交点が算出される可能性がある。テーブルのスキャンまたはそれ以外のデータストリームの処理は、テーブルまたはストリーム内のデータにおける行のレコード単位での検査を含み得る。場合によってはすなわち、ストリームのテーブルまたは要素内のすべての行において検証を実行してスキャンを完全に行ってもよい。その他の場合には、例えばストリームにおけるテーブルまたはレコード内の行の部分集合を検査するためのサンプリングまたはスキッピング技術を利用して、スキャンを部分的に行ってもよい。
【００３６】
要素５０６によって示されるように、列の値の一致度がタプルごとに推定されてもよい。すなわち、列Ａの列Ｂに対する、また、列Ａの列Ｃに対する列の値の一致度が推定されてもよい。推定された一致度が最高であるか、ある閾値レベルを超えるこれらのタプルは、要素５０８に示されるように、結合パスとして識別されてもよい。図４において、タプルの一致度の推定および結合パスの識別に関してさらに詳細に示す。
【００３７】
実施形態において、いくつかの列のためにｈｙｐｅｒｌｏｇｌｏｇまたは他の確率的計数構造を形成しながら、初期スキャンが実行されてもよい。様々なメモリの制約に従うために、構造のサイズは実施形態によって限定されてもよい。その後第２のスキャンが実行され、その間により少数の列のためにより少数のｈｙｐｅｒｌｏｇｌｏｇまたは他の確率的計数構造が形成されてもよい。これらの構造のサイズは、第１のスキャンの間に形成されるものよりも大きくてもよい。この手法により、第１のスキャンにおいて形成される確率的計数構造に必要なメモリが少なくて済み、第２のスキャンの間に形成される構造の正確性が高まる。第２のスキャンにおいて利用される列は、第１のスキャンの間に形成される確率的計数構造に基づいて、有力なものとして識別されてもよい。
【００３８】
本開示の実施形態は、多くの型のデータベース管理システム（「ＤＢＭＳ」）と併せて利用されてもよい。ＤＢＭＳは、格納および検索操作が実行されてもよい、データの集大成を維持するためのソフトウェアおよびハードウェアシステムである。ＤＢＭＳにおいて、データは通常、キー値と付加的なデータとの間の関連性によって整理される。関連性の性質は、データの集合に存在する現実世界の関係に基づいてもよいか、または、任意であってもよい。データ定義、クエリ、更新、および管理を含めて、様々な操作がＤＢＭＳによって実行されてもよい。いくつかのＤＢＭＳは構造化照会言語（ＳＱＬ）などの問合せ言語を利用したデータベースとの対話を提供し、一方他のＤＢＭＳはｐｕｔおよびｇｅｔなどの操作を含むＡＰＩを利用する。データベースとの対話はまた、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）および拡張マークアップ言語（「ＸＭＬ」）などの様々なプロトコルまたは規格に基づいてもよい。ＤＢＭＳは、ソリッドステートドライブといった、データまたは１つもしくは複数の記憶装置を格納するよう作用するストレージエンジンなどの様々なアーキテクチャ構成要素を含んでもよい。
【００３９】
図６は、本発明の態様を実施することができる計算環境の実施例を示す図である。様々なユーザ６００ａは、任意の型の計算装置６０２ａを動作させながら様々なクライアントアプリケーションと対話し、通信ネットワーク６０４を介してデータセンター６２０内の様々な計算ノード６１０ａ、６１０ｂ、および６１０ｃ上で実行するプロセスと通信してもよい。あるいは、クライアントアプリケーション６０２ｂは、ユーザの介入なしに通信を行ってもよい。通信ネットワーク６０４は、インターネット、有線および無線ローカルエリアネットワーク、光ファイバネットワーク、衛星通信などを含む通信技術の任意の組み合わせを含んでもよい。任意の数のネットワークプロトコルが利用されてもよい。
【００４０】
データセンター６２０内で動作する、計算ノード６１０ａ、６１０ｂおよび６１０ｃ上で実行するプロセスとの通信は、ゲートウェイ６０６およびルータ６０８を介してもたらされてもよい。多数の他のネットワーク構成をまた、利用してもよい。図６において明示的に記されてはいないが、計算ノード６１０ａ、６１０ｂ、および６１０ｃ上で実行するプロセスとの通信を仲介するための様々な認証機構、ウェブサービス層、ビジネスオブジェクト、または他の中間層が設けられてもよい。これらの中間層の一部はそれ自体が、１つまたは複数の計算ノード上で実行するプロセスを含んでもよい。計算ノード６１０ａ、６１０ｂ、および６１０ｃ、ならびにその上で実行されるプロセスはまた、ルータ６０８を介して互い通信してもよい。あるいは、別個の通信パスが利用されてもよい。いくつかの実施形態においては、計算ノードおよびその上で実行されるプロセスが他のデータセンター内で動作する計算ノードおよびプロセスと通信できるように、データセンター６２０が付加的なデータセンターと通信するよう構成されてもよい。
【００４１】
計算ノード６１０ａは、１つまたは複数のプロセッサ６１６、１つまたは複数のメモリ６１８、および１つまたは複数の記憶装置６１４を備える物理ハードウェア上に存在するように示される。計算ノード６１０ａ上のプロセスは、オペレーティングシステムと併せて実行してもよいか、あるいは、プロセッサ６１６、メモリ６１８、または記憶装置６１４などの物理リソースと直接対話するベアメタルプロセスとして実行してもよい。
【００４２】
計算ノード６１０ｂおよび６１０ｃは、物理プロセッサ、メモリ、および記憶装置などの様々な物理リソースへの共有アクセスを提供することができる仮想マシンホスト６１２上で動作するように記される。任意の数の仮想化機構が計算ノードをホストするために利用される可能性がある。
【００４３】
図６に示す様々な計算ノードは、ウェブサービス、データベース管理システム、ビジネスオブジェクト、監視および診断設備などをホストするよう構成されてもよい。計算ノードは、パーソナルコンピュータ、サーバ、クラスタ化計算装置などの様々な型の計算リソースを指してもよい。計算ノードは例えば、携帯電話、スマートフォン、タブレット、組込み機器など様々な計算装置を指してもよい。ハードウェア形式で実装された場合、計算ノードは通常、コンピュータ読み取り可能命令を格納するよう構成される１つまたは複数のメモリおよび、命令を読み出し、実行するよう構成される１つまたは複数のプロセッサに関連する。ハードウェアベースの計算ノードはまた、１つまたは複数の記憶装置、ネットワークインターフェース、通信バス、ユーザインターフェース装置などを備えてもよい。計算ノードはまた、ハイパーバイザ、仮想化ベアメタル環境などの有無に関わらず実装される仮想マシンなどの仮想化計算リソースを含む。仮想化に基づく計算ノードは、ハードウェアリソースへの仮想化アクセスおよび非仮想化アクセスを有してもよい。計算ノードは、オペレーティングシステムおよび１つまたは複数のアプリケーションプログラムを実行するよう構成されてもよい。いくつかの実施形態において、計算ノードはまた、ベアメタルアプリケーションプログラムを含む可能性がある。
【００４４】
少なくともいくつかの実施形態において、本明細書に記載の１つまたは複数の技術の一部または全部を実装するサーバは、１つまたは複数のコンピュータアクセス可能媒体を含むかまたはそれにアクセスするよう構成される、汎用コンピュータシステムを含んでもよい。図７は、１つまたは複数のコンピュータアクセス可能媒体を含むか、またはそれにアクセスするよう構成される汎用コンピュータシステムを示す。示される実施形態において、計算装置７００は、入力／出力（「Ｉ／Ｏ」）インターフェース７３０を介してシステムメモリ７２０へと接続される、１つまたは複数のプロセッサ７１０ａ、７１０ｂ、および／または７１０ｎ（本明細書において、単数、複数のプロセッサ７１０と称されてもよい）を含む。計算装置７００はさらに、Ｉ／Ｏインターフェース７３０へと接続されるネットワークインターフェース７４０を含む。
【００４５】
様々な実施形態において、計算装置７００は、１つのプロセッサ７１０を含むユニプロセッサシステムまたはいくつかの（例えば、２つ、４つ、８つ、または他の好適な数の）プロセッサ７１０を含むマルチプロセッサシステムであってもよい。プロセッサ７１０は、命令を実行することが可能な任意の好適なプロセッサであってもよい。例えば様々な実施形態において、プロセッサ６１０は、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣ、もしくはＭＩＰＳ  ＩＳＡまたは任意の他の好適なＩＳＡなどの任意の様々な命令セットアーキテクチャ（「ＩＳＡ」）を実装する汎用または組込みプロセッサであってもよい。マルチプロセッサシステムにおいて、プロセッサ６１０のそれぞれ、共通して同じＩＳＡを実装してもよいが、必ずしもそうでなくてもよい。
【００４６】
いくつかの実施形態において、グラフィック処理ユニット（「ＧＰＵ」）７１２は、グラフィックスレンダリングおよび／または物理演算能力の提供に関与してもよい。ＧＰＵは例えば、グラフィック計算に特化した高並列化プロセッサアーキテクチャを含んでもよい。いくつかの実施形態において、プロセッサ７１０およびＧＰＵ７１２は、１つまたは複数の同じ型の装置として実装されてもよい。
【００４７】
システムメモリ７２０は、プロセッサ（複数可）６１０によってアクセス可能な命令およびデータを格納するよう構成されてもよい。様々な実施形態において、スタティックランダムアクセスメモリ（「ＳＲＡＭ」）、同期式ダイナミックＲＡＭ（「ＳＤＲＡＭ」）、不揮発性／フラッシュ（登録商標）タイプメモリ、または任意の他のタイプのメモリなどの任意の好適なメモリ技術を利用して、システムメモリ７２０が実装されてもよい。示される実施形態において、上述のそれらの方法、技術およびデータなどの１つまたは複数の所望の機能を実装するプログラム命令およびデータが、コード７２５およびデータ７２６としてシステムメモリ７２０内に格納されて示される。
【００４８】
一実施形態において、Ｉ／Ｏインターフェース７３０は、装置内のプロセッサ７１０、システムメモリ７２０、と任意の周辺機器との間のＩ／Ｏトラフィックを調整するよう構成されてもよく、ネットワークインターフェース７４０または他の周辺インターフェースを含む。いくつかの実施形態において、Ｉ／Ｏインターフェース７３０は、任意の必要なプロトコル、タイミングまたは他のデータ変換を実行して、１つの構成要素（例えば、システムメモリ７２０）からのデータ信号を、別の構成要素（例えば、プロセッサ６１０）による利用に適したフォーマットへと変換してもよい。いくつかの実施形態において、Ｉ／Ｏインターフェース７３０は例えば、周辺構成要素相互接続（ＰＣＩ）バス規格またはユニバーサルシリアルバス（「ＵＳＢ」）規格の変形などの様々な型の周辺バスを通じて取り付けられた装置の支持を含んでもよい。いくつかの実施形態において、Ｉ／Ｏインターフェース７３０の機能は、例えばノースブリッジおよびサウスブリッジなどの２つ以上の別個の構成要素に分割されてもよい。また、いくつかの実施形態において、システムメモリ６２０へのインターフェースなどのＩ／Ｏインターフェース７３０の機能の一部または全部が、プロセッサ７１０に直接組み込まれてもよい。
【００４９】
ネットワークインターフェース７４０は例えば、他のコンピュータシステムまたは装置など、計算装置７００と他の装置またはネットワークまたはネットワーク７５０に付属の装置７６０との間でのデータの交換を可能にするよう構成されてもよい。様々な実施形態において、ネットワークインターフェース７４０は、例えばイーサネットネットワークなどの型の任意の好適な有線または無線汎用データネットワークを介した通信を支持してもよい。さらに、ネットワークインターフェース７４０は、ファイバチャネルＳＡＮ（ストレージエリアネットワーク）などのストレージエリアネットワークを介した、または任意の他の好適な型のネットワークおよび／またはプロトコルを介した、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの通信／回線ネットワークを介した通信を支持してもよい。
【００５０】
いくつかの実施形態において、システムメモリ７２０は、上述のように対応する方法および機器の実施形態を実装するための、プログラム命令およびデータを格納するよう構成されるコンピュータアクセス可能媒体の一実施形態であってもよい。しかし、他の実施形態において、プログラム命令および／またはデータは、受領され、送信され、または異なる型のコンピュータアクセス可能媒体上に格納されてもよい。一般的に、コンピュータアクセス可能媒体は、Ｉ／Ｏインターフェース７３０を介して計算装置７００へと接続される、例えば、ディスクまたはＤＶＤ／ＣＤなどの磁気または光学媒体などの非一時的記憶媒体またはメモリ媒体を含んでもよい。非一時的コンピュータアクセス可能記憶媒体はまた、システムメモリ７２０または別の型のメモリとして計算装置７００のいくつかの実施形態に含まれてもよい、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの任意の揮発性または不揮発性媒体を含んでもよい。さらに、コンピュータアクセス可能媒体は、ネットワークインターフェース７４０を介して実装されてもよいネットワークおよび／または無線リンクなどの通信媒体を介して伝達される電気、電磁気またはデジタル信号などの、伝送媒体または信号を含んでもよい。図７に示すような複数の計算装置の一部または全部は、様々な実施形態において示される機能を実装するために利用されてもよい。例えば、様々な異なる装置およびサーバ上で実行されるソフトウェア構成要素は、機能を提供するために協働してもよい。いくつかの実施形態においては、汎用コンピュータシステムを利用した実装に加えて、またはその代わりに、記憶装置、ネットワーク装置、または専用コンピュータシステムを利用して示される機能の一部が実装されてもよい。用語「ｃｏｍｐｕｔｉｎｇ  ｄｅｖｉｃｅ（計算装置）」は、本明細書にて使用されるように、少なくともすべてのこれらの型の装置を指し、これらの型の装置に限定されない。
【００５１】
計算ノードと称されてもよいコンピュートノードは、タブレットコンピュータ、パーソナルコンピュータ、スマートフォン、ゲームコンソール、コモディティハードウェアコンピュータ、仮想マシン、ウェブサービス、計算クラスタ、および計算機器などの多種多様な計算環境において実装されてもよい。これらの計算装置または環境はいずれも、便宜上、コンピュートノードとして、または計算ノードとして示されてもよい。
【００５２】
インターネットおよび／または他のネットワークを介してクライアントの分散集合にアクセス可能な（様々な型のクラウドベースの計算またはストレージなどの）１つまたは複数のウェブサービスを提供するために企業または公的部門組織などの法人によって設定されたネットワークは、プロバイダネットワークと称されてもよい。このようなプロバイダネットワークは、プロバイダネットワークが提供するインフラストラクチャおよびウェブサービスを実装し、分散するために必要な、物理および／または仮想化コンピュータサーバ、記憶装置、ネットワーク機器などの集合といった様々なリソースプールをホストする多数のデータセンターを含んでもよい。いくつかの実施形態においてリソースは、記憶するための記憶容量、処理を行うための処理能力などの、ウェブサービスに関連する様々な単位でインスタンスとして、関連サービスの集合としてなどの形で、クライアントに提供されてもよい。仮想計算インスタンスは例えば、特定の計算能力（ＣＰＵの型および数、メインメモリのサイズなどを示すことで特定されてもよい）および特定のソフトウェアスタック（例えば、ハイパーバイザ上で次に実行されてもよい、特定のバージョンのオペレーティングシステム）を有する１つまたは複数のサーバを含んでもよい。
【００５３】
いくつかの異なる型の計算装置は、汎用または専用コンピュータサーバ、記憶装置、ネットワーク装置などを含む、異なる実施形態におけるプロバイダネットワークのリソースを実装するために、単独でまたは組み合わせて利用することができる。いくつかの実施形態においては、例えばユーザに管理者ログインおよびパスワードを与えることで、クライアントまたはユーザがリソースインスタンスに直接アクセスすることが可能になってもよい。他の実施形態において、プロバイダネットワークオペレータにより、例えばクライアントがインスタンスにアクセスしたり、プラットフォームを直接実行したりする必要がなく、クライアントが特定のクライアントアプリケーションのための実行要件を特定し、クライアントのためにアプリケーションに好適な実行プラットフォーム（様々な解釈された、またはコンパイルされたプログラミング言語―Ｒｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、Ｃ、Ｃ＋＋などを支援する、アプリケーションサーバインスタンス、Ｊａｖａ（商標）仮想マシン（「ＪＶＭ」）汎用または専用オペレーティングシステム、プラットフォームまたは、高性能計算プラットフォームなど）上でアプリケーションの実行を予定することが可能になってもよい。ある実施態様において、所定の実行プラットフォームは１つまたは複数のリソースインスタンスを利用してもよく、他の実施態様において、複数の実行プラットフォームは単一のリソースインスタンスにマッピングされてもよい。
【００５４】
多くの環境において、異なる型の仮想化計算、記憶、および／または他のネットワークアクセス可能な機能を実装するプロバイダネットワークのオペレータにより、顧客が様々なリソース獲得モードにおいて、リソースへのアクセスを確保するか、または購入することが可能になってもよい。計算リソースプロバイダにより、顧客が所望の計算リソースを選択してそれに着手し、アプリケーション構成要素を計算リソースに配置し、環境において実行するアプリケーションを維持することが容易になってもよい。さらに計算リソースプロバイダにより、要求に応じて、またはアプリケーション変更の容量要件にしたがって、手動で、または自動スケーリングを通じて、顧客がアプリケーションに割り当てられるリソースの数および型を迅速かつ簡潔にスケールアップ、またはスケールダウンすることがさらに容易になってもよい。計算リソースプロバイダが提供する計算リソースは、インスタンスと称することができる個別の単位において利用可能であってもよい。インスタンスは、物理サーバハードウェアプラットフォーム、サーバ上で実行する仮想マシンインスタンス、または２つの何らかの組み合わせを表してもよい。様々なインストールされたソフトウェアアプリケーション、ランタイムなどを有する、異なるオペレーティングシステム（「ＯＳ」）および／またはハイパーバイザを実行する、異なるサイズのリソースを含めて、インスタンスの様々な型および構成が利用可能となってもよい。インスタンスはさらに、例えば基盤となる計算ハードウェアの論理領域、フォールトトレラント領域、データセンター、または他の地理的位置を表す特定のアベイラビリティゾーンにおいて、利用可能であってもよい。インスタンスの冗長性を向上させるために、アベイラビリティゾーン内で、またはアベイラビリティゾーンを挟んでインスタンスがコピーされてもよく、インスタンスは特定のアベイラビリティゾーン内で、またはアベイラビリティゾーンを挟んで移行してもよい。一実施例として、アベイラビリティゾーンにおける、クライアントの特定のサーバとの通信のレイテンシは、クライアントの異なるサーバとの通信のレイテンシよりも小さくてもよい。したがって全体のクライアントエクスペリエンスを向上させるために、インスタンスをより高いレイテンシのサーバからより低いレイテンシのサーバに移行させてもよい。
【００５５】
いくつかの実施形態において、プロバイダネットワークは複数の地理的領域に整理されてもよく、各領域は１つまたは複数のアベイラビリティゾーンを含んでもよい。アベイラビリティゾーン（利用可能なコンテナと称されてもよい）は次に、所定のアベイラビリティゾーンにおけるリソースが他のアベイラビリティゾーンにおける障害から孤立し、または遮断されることができるように構成された、１つまたは複数の異なる位置またはデータセンターを含んでもよい。すなわち、１つのアベイラビリティゾーン障害は他のアベイラビリティゾーンにおける障害にはつながらない。したがって、リソースインスタンスのアベイラビリティプロファイルは、異なるアベイラビリティゾーンにおけるリソースインスタンスとは独立することを意図されている。クライアントはそれぞれのアベイラビリティゾーンにおける複数のアプリケーションインスタンスを起動することで、単一の位置における障害から自らのアプリケーションを保護することができる。同時に、いくつかの実施態様において、同じ地理的領域内に存在するリソースインスタンス間に提供されるネットワーク接続は、費用が安くレイテンシが低い場合がある（また、同じアベイラビリティゾーンのリソース間のネットワーク伝送の方が速い場合すらある）。
【００５６】
前述のプロセス、方法、およびアルゴリズムはそれぞれ、１つまたは複数のコンピュータまたはコンピュータプロセッサによって実行されるコードモジュールにおいて実現されてもよく、またそれによって全体にまたは部分的に自動化されてもよい。コードモジュールは、ハードドライブ、ソリッドステートメモリ、光学ディスクなどの任意の型の非一時的コンピュータ可読媒体またはコンピュータ記憶装置上に格納されてもよい。プロセスおよびアルゴリズムは、特定用途向け回路において、部分的に、または全体として実装されてもよい。開示されたプロセスの結果およびプロセスのステップは、永続的に、あるいは例えば揮発性または不揮発性ストレージなどの任意の型の非一時的コンピュータストレージ内に格納されてもよい。
【００５７】
上述の様々な特徴およびプロセスは、互いに独立して利用されてもよいか、または、様々な方法で組み合わせられてもよい。潜在的な組み合わせおよび副組み合わせは、本開示の範囲を包含することが意図される。さらに、いくつかの実施態様において、特定の方法またはプロセスブロックが省略されてもよい。本明細書に記載の方法およびプロセスは特定の順序に限定されず、それに関連するブロックまたは状態は、適切な他の順序で実行することができる。例えば、記されるブロックまたは状態は具体的に開示される順序とは異なる順序で実行されてもよいか、あるいは複数のブロックまたは状態が単一のブロックまたは状態に組み合わせられてもよい。例示的なブロックまたは状態は、連続して、並行して、または別の何らかの方法で実行されてもよい。ブロックまたは状態が開示された例示的な実施形態に追加され、またはそこから取り除かれてもよい。本明細書に記載の例示的なシステムおよび構成要素は、記載とは異なって構成されてもよい。例えば、開示された例示的な実施形態と比較して、要素が加えられ、取り除かれ、再整理されてもよい。
【００５８】
さらに、上述の事項は、以下の条項を考慮しても理解され得る。
１．トランザクションデータにおける、分析関係の識別システムであって、
複数の行を含むテーブルを維持する１つまたは複数の計算ノードと、
コンピュータ可読命令を格納した１つまたは複数のメモリであって、計算装置による実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記複数の行の第１の列および第２の列を、前記第１および第２の列の間の関連性の第１の推定に少なくとも部分的に基づいて選択させ、
第１のｈｙｐｅｒｌｏｇｌｏｇを、前記第１の列に対応する前記複数の行における第１の複数のフィールドに少なくとも部分的に基づいて形成させ、
第２のｈｙｐｅｒｌｏｇｌｏｇを、前記第２の列に対応する前記複数の行における第２の複数のフィールドに少なくとも部分的に基づいて形成させ、
前記第１のｈｙｐｅｒｌｏｇｌｏｇと前記第２のｈｙｐｅｒｌｏｇｌｏｇとの交点を算出させ、
前記交点に少なくとも部分的に基づく、前記第１の複数のフィールドのフィールドと前記第２の複数のフィールドのフィールドとの間の第２の一致度の推定に少なくとも部分的に基づき、前記第１の列と前記第２の列との間の結合パスを識別させる、
前記メモリと、
を含む、前記システム。
【００５９】
２．コンピュータ可読命令を格納した１つまたは複数のメモリであって、前記１つまたは複数の計算ノードによる実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記第１の列および前記第２の列に共通のデータ型に基づいて、関連性の前記第１の推定を行わせる、
前記メモリ、
をさらに含む、条項１に記載のシステム。
【００６０】
３．コンピュータ可読命令を格納した１つまたは複数のメモリであって、前記１つまたは複数の計算ノードによる実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記第１および第２の列のための前記第２の一致度の推定を２つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別させる、
前記メモリ、
をさらに含む、条項１に記載のシステム。
【００６１】
４．コンピュータ可読命令を格納した１つまたは複数のメモリであって、前記１つまたは複数の計算ノードによる実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記第１のｈｙｐｅｒｌｏｇｌｏｇと前記第２のｈｙｐｅｒｌｏｇｌｏｇとの交点を、前記第１のｈｙｐｅｒｌｏｇｌｏｇと前記第２のｈｙｐｅｒｌｏｇｌｏｇとの和集合から少なくとも減じることにより、前記第２の一致度の推定を行わせる、
前記メモリ、
をさらに含む、条項１に記載のシステム。
【００６２】
５．コンピュータ可読命令を格納した１つまたは複数のメモリであって、前記１つまたは複数の計算ノードによる実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記複数の行の第１のスキャンを少なくとも実行することにより、複数のｈｙｐｅｒｌｏｇｌｏｇを形成させ、
前記複数の行の第２のスキャンを少なくとも実行することにより、前記第１のｈｙｐｅｒｌｏｇｌｏｇを形成させ、
前記第１のｈｙｐｅｒｌｏｇｌｏｇのサイズが前記第１のスキャンの間に形成される前記複数のｈｙｐｅｒｌｏｇｌｏｇ内のｈｙｐｅｒｌｏｇｌｏｇのサイズよりも大きい、
前記メモリ、
をさらに含む、条項１に記載のシステム。
【００６３】
６．命令を格納した非一時的コンピュータ可読記憶媒体であって、１つまたは複数の計算装置による実行時に前記命令が、前記計算装置に少なくとも、
複数の行において前記複数の行の第１の列に対応する第１の複数のフィールドに少なくとも部分的に基づいて、第１の確率的計数構造を形成させ、
前記複数の行において前記複数の行の第２の列に対応する第２の複数のフィールドに少なくとも部分的に基づいて、第２の確率的計数構造を形成させ、
前記第１および第２の確率的計数構造の交点を算出させ、
前記交点に少なくとも部分的に基づく、前記第１の複数のフィールドのフィールドと前記第２の複数のフィールドのフィールドとの間の一致度の推定に少なくとも部分的に基づいて、前記第１の列と前記第２の列との間の結合パスを識別させる、
前記非一時的コンピュータ可読記憶媒体。
【００６４】
７．前記１つまたは複数の計算装置による実行時に、前記１つまたは複数の計算装置に少なくとも、
前記第１および第２の列に共通のデータ型に少なくとも部分的に基づいて、前記第１および第２の確率的計数構造を形成するために、前記第１の列および前記第２の列を選択させる、
命令、
をさらに含む、条項６に記載の非一時的コンピュータ可読記憶媒体。
【００６５】
８．前記１つまたは複数の計算装置による実行時に、前記１つまたは複数の計算装置に少なくとも、
前記第１および第２の列のための前記一致度の推定を２つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別させる、
命令、
をさらに含む、条項６に記載の非一時的コンピュータ可読記憶媒体。
【００６６】
９．前記１つまたは複数の計算装置による実行時に、前記１つまたは複数の計算装置に少なくとも、前記第１および第２の確率的計数構造の交点を前記第１および第２の確率的計数構造の和集合から少なくとも減じることにより、前記一致度の推定を行わせる、
命令、
をさらに含む、条項６に記載の非一時的コンピュータ可読記憶媒体。
【００６７】
１０．前記一致度の推定が、前記交点に含まれないフィールドの計数に少なくとも部分的に基づく、条項６に記載の非一時的コンピュータ可読記憶媒体。
【００６８】
１１．前記１つまたは複数の計算装置による実行時に、前記１つまたは複数の計算装置に少なくとも、
前記複数の行の第１のスキャンおよび前記複数の行の第２のスキャンを少なくとも実行することで、前記第１の確率的計数構造を形成させる命令であって、前記第２のスキャンのために前記第１の確率的計数構造のサイズが増大される前記命令、
をさらに含む、条項６に記載の非一時的コンピュータ可読記憶媒体。
【００６９】
１２．前記１つまたは複数の計算装置による実行時に、前記１つまたは複数の計算装置に少なくとも、
前記第１および第２の確率的計数構造において対応するバケットを少なくとも組み合わせることによって、前記交点を算出させる、
命令、
をさらに含む、条項６に記載の非一時的コンピュータ可読記憶媒体。
【００７０】
１３．前記確率的計数構造がｌｏｇｌｏｇ、ｈｙｐｅｒｌｏｇｌｏｇ、ブルームフィルタ、またはｍｉｎ−ｈａｓｈの少なくとも１つを含む、条項６に記載の非一時的コンピュータ可読記憶媒体。
【００７１】
１４．トランザクションデータにおける分析関係を識別するためのコンピュータ実装方法であって、
計算装置のメモリにおいて、前記計算装置に通信可能に接続される１つまたは複数の記憶装置に格納され、第１の列に対応する第１の複数のフィールドのスキャンに少なくとも部分的に基づき、第１の確率的計数構造を形成することと、
前記計算装置の前記メモリにおいて、前記１つまたは複数の記憶装置に格納され、第２の列に対応する第２の複数のフィールドに少なくとも部分的に基づき、第２の確率的計数構造を形成することと、
前記第１および第２の確率的計数構造の交点を算出することと、
前記交点に少なくとも部分的に基づく、前記第１の複数のフィールドのフィールドと前記第２の複数のフィールドのフィールドとの間の一致度の推定に少なくとも部分的に基づき、前記第１の列と前記第２の列との間の結合パスを識別することと、
を含む、前記方法。
【００７２】
１５．前記第１および第２の列に共通のデータ型に少なくとも部分的に基づき、前記第１および第２の確率的計数構造を形成するために、前記第１の列および前記第２の列を選択すること、
をさらに含む、条項１４に記載のコンピュータ実装方法。
【００７３】
１６．前記第１および第２の列のための前記一致度の推定を２つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別すること、
をさらに含む、条項１４に記載のコンピュータ実装方法。
【００７４】
１７．前記第１および第２の確率的計数構造の交点を前記第１および第２の確率的計数構造の和集合から減じることにより、前記一致度の推定を行うこと、
をさらに含む、条項１４に記載のコンピュータ実装方法。
【００７５】
１８．前記一致度の推定が、前記交点に含まれないフィールドの計数を確率的に判定することに少なくとも部分的に基づく、条項１４に記載のコンピュータ実装方法。
【００７６】
１９．前記識別された結合パスに少なくとも部分的に基づき、階層を形成すること、
をさらに含む、条項１４に記載のコンピュータ実装方法。
【００７７】
２０．前記第１および第２の確率的計数構造において対応するバケットを少なくとも組み合わせることによって、前記交点を算出すること、
をさらに含む、条項１４に記載のコンピュータ実装方法。
【００７８】
使用時に様々な項目がメモリ内にまたはストレージ上に格納されていること、かつ、メモリ管理およびデータ保全の目的のために、これらの項目またはその一部がメモリと他の記憶装置との間で受け渡されてもよいことが、理解される。あるいは、他の実施形態において、ソフトウェアモジュールおよび／またはシステムに一部または全部が別の装置上のメモリにおいて実行され、コンピュータ間通信を介して示される計算システムと通信してもよい。さらにいくつかの実施形態において、システムおよび／またはモジュールの一部または全部が少なくとも部分的に、１つまたは複数の特定用途向け集積回路（「ＡＳＩＣ」）、標準集積回路、制御装置（例えば適切な命令を実行し、マイクロコントローラおよび／または組込みコントローラを含むことによる）、フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）、複合プログラマブルロジックデバイス（「ＣＰＬＤ」）、などを含むがそれに限定されないファームウェアおよび／またはハードウェア内にあるなどの、他の方法で実装されるか、または提供されてもよい。モジュール、システムおよびデータ構造の一部または全部はまた、（例えばソフトウェア命令または構造化データとして）ハードディスク、メモリ、ネットワーク、または適切な装置によって、または適切な接続を介して読み出す可搬型媒体品などのコンピュータ可読媒体内に格納されてもよい。システム、モジュールおよびデータ構造はまた、生成されたデータ信号として（例えば、搬送波または他のアナログもしくはデジタル伝搬信号として）、無線および有線／ケーブルを介した媒体を含む様々なコンピュータ可読伝送媒体上で送信されてもよく、様々な形式（例えば、単一または多重化アナログ信号に一部として、または、複数の個別デジタルパケットまたはフレームとして）を取ってもよい。このようなコンピュータプログラム製品はまた、他の実施形態において、他の形式を取ってもよい。したがって、他のコンピュータシステム構成を用いて本発明を実施することができる。
【００７９】
本明細書において用いられる、「ｃａｎ（できる）」、「ｃｏｕｌｄ（可能性がある）」、「ｍｉｇｈｔ（かもしれない）」、「ｍａｙ（してもよい）」「ｅ．ｇ．（例えば）」などの条件付き言語は、別段の明記がない限り、あるいは使用される文脈によって理解されない限り、通常は、他の実施形態は含まないが、特定の実施形態が特定の特徴、要素、および／またはステップを含むことを意図する。したがって、このような条件付き言語は通常、特徴、要素および／またはステップが何としても１つまたは複数の実施形態にとって必要である、あるいは、１つまたは複数の実施形態が、作成者の入力またはプロンプティングの有無にかかわらず、これらの特徴、要素、および／またはステップが含まれるかまたは任意の特定の実施形態において実行されるか否かを判断するための論理を必ず含むことを示唆することを意図しない。「ｃｏｍｐｒｉｓｉｎｇ（備える）」、「ｉｎｃｌｕｄｉｎｇ（含む）」、「ｈａｖｉｎｇ（有する）」などの用語は同義語であり、オープンエンド様式で包含的に使用されるため、付加的な要素、特徴、行動、操作などを除外しない。また、用語「ｏｒ（または）」は、（除外的な意味ではなく）包含的な意味で使用される。例えば、リストの要素を接続するために使用する際に、用語「ｏｒ」は、リスト上の１つ、いくつか、または、すべての要素を意味する。
【００８０】
特定の例示的な実施形態が示されるが、これらの実施形態は、例示の目的のみで示され、本明細書において開示される本発明の範囲を限定するものではない。したがって、上記説明は一切、特定の特徴、特色、ステップ、モジュール、またはブロックが必要あるいは不可欠であることを示すものではない。本明細書に記載の新規方法およびシステムは、様々な他の形式で実現されてもよく、本明細書に記載の方法およびシステムの形式で様々な省略、代替、変更が、本明細書に開示される本発明の趣旨から逸脱することなく加えられてもよい。添付の特許請求の範囲およびその均等物はこのような形式や修正を、本明細書に開示する本発明の趣旨の範囲に該当するものとして網羅することを意図されている。
【００８１】
以下、親出願（特願２０１７−５３３９２２号）の出願当初の特許請求の範囲である。
[請求項１]
トランザクションデータにおける、分析関係の識別システムであって、
複数の行を含むテーブルを維持する１つまたは複数の計算ノードと、
コンピュータ可読命令を格納した１つまたは複数のメモリと、
を含み、
前記コンピュータ可読命令は、計算装置による実行時に、前記システムに少なくとも、
前記複数の行の第１の列および第２の列を、前記第１および第２の列の間の関連性の第１のｙに少なくとも部分的に基づいて選択させ、
第１のｈｙｐｅｒｌｏｇｌｏｇを、前記第１の列に対応する前記複数の行における第１の複数のフィールドに少なくとも部分的に基づいて形成させ、
第２のｈｙｐｅｒｌｏｇｌｏｇを、前記第２の列に対応する前記複数の行における第２の複数のフィールドに少なくとも部分的に基づいて形成させ、
前記第１のｈｙｐｅｒｌｏｇｌｏｇと前記第２のｈｙｐｅｒｌｏｇｌｏｇとの交点を算出させ、
前記交点に少なくとも部分的に基づく、前記第１の複数のフィールドのフィールドと前記第２の複数のフィールドのフィールドとの間の第２の一致度の推定に少なくとも部分的に基づき、前記第１の列と前記第２の列との間の結合パスを識別させる、
システム。
[請求項２]
コンピュータ可読命令を格納した１つまたは複数のメモリをさらに含み、
前記コンピュータ可読命令は、前記１つまたは複数の計算ノードによる実行時に、前記システムに少なくとも、
前記第１の列および前記第２の列に共通のデータ型に基づいて、関連性の前記第１の推定を行わせる、
請求項１に記載のシステム。
[請求項３]
コンピュータ可読命令を格納した１つまたは複数のメモリをさらに含み、
前記コンピュータ可読命令は、前記１つまたは複数の計算ノードによる実行時に、前記システムに少なくとも、
前記第１および第２の列のための前記第２の一致度の推定を２つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別させる、
請求項１に記載のシステム。
[請求項４]
コンピュータ可読命令を格納した１つまたは複数のメモリをさらに含み、
前記コンピュータ可読命令は、前記１つまたは複数の計算ノードによる実行時に、前記システムに少なくとも、
前記第１のｈｙｐｅｒｌｏｇｌｏｇと前記第２のｈｙｐｅｒｌｏｇｌｏｇとの交点を、前記第１のｈｙｐｅｒｌｏｇｌｏｇと前記第２のｈｙｐｅｒｌｏｇｌｏｇとの和集合から少なくとも減じることにより、前記第２の一致度の推定を行わせる、
請求項１に記載のシステム。
[請求項５]
コンピュータ可読命令を格納した１つまたは複数のメモリをさらに含み、
前記コンピュータ可読命令は、前記１つまたは複数の計算ノードによる実行時に、前記システムに少なくとも、
前記複数の行の第１のスキャンを少なくとも実行することにより、複数のｈｙｐｅｒｌｏｇｌｏｇを形成させ、
前記複数の行の第２のスキャンを少なくとも実行することにより、前記第１のｈｙｐｅｒｌｏｇｌｏｇを形成させ、
前記第１のｈｙｐｅｒｌｏｇｌｏｇのサイズが前記第１のスキャンの間に形成される前記複数のｈｙｐｅｒｌｏｇｌｏｇ内のｈｙｐｅｒｌｏｇｌｏｇのサイズよりも大きい、
請求項１に記載のシステム。
[請求項６]
１つまたは複数のプロセッサと、
命令を格納した１つまたは複数のメモリと、
を含むシステムであって、
前記命令は、１つまたは複数の計算装置による実行時に、前記計算装置に少なくとも、
複数の行において前記複数の行の第１の列に対応する第１の複数のフィールドに少なくとも部分的に基づいて、第１の確率的計数構造を形成させ、
前記複数の行において前記複数の行の第２の列に対応する第２の複数のフィールドに少なくとも部分的に基づいて、第２の確率的計数構造を形成させ、
前記第１および第２の確率的計数構造の交点を算出させ、
前記交点に少なくとも部分的に基づく、前記第１の複数のフィールドのフィールドと前記第２の複数のフィールドのフィールドとの間の一致度の推定に少なくとも部分的に基づいて、前記第１の列と前記第２の列との間の結合パスを識別させる、
システム。
[請求項７]
さらに命令を含み、
前記命令は、前記１つまたは複数の計算装置による実行時に、前記１つまたは複数の計算装置に少なくとも、
前記第１および第２の列に共通のデータ型に少なくとも部分的に基づいて、前記第１および第２の確率的計数構造を形成するために、前記第１の列および前記第２の列を選択させる、
請求項６に記載のシステム。
[請求項８]
前記確率的計数構造がｌｏｇｌｏｇ、ｈｙｐｅｒｌｏｇｌｏｇ、ブルームフィルタ、またはｍｉｎ−ｈａｓｈの少なくとも１つを含む、
請求項６に記載のシステム。
[請求項９]
トランザクションデータにおける分析関係を識別するためのコンピュータ実装方法であって、前記コンピュータ実装方法は、
計算装置のメモリにおいて、前記計算装置に通信可能に接続される１つまたは複数の記憶装置に格納され、第１の列に対応する第１の複数のフィールドのスキャンに少なくとも部分的に基づき、第１の確率的計数構造を形成するステップと、
前記計算装置の前記メモリにおいて、前記１つまたは複数の記憶装置に格納され、第２の列に対応する第２の複数のフィールドに少なくとも部分的に基づき、第２の確率的計数構造を形成するステップと、
前記第１および第２の確率的計数構造の交点を算出するステップと、
前記交点に少なくとも部分的に基づく、前記第１の複数のフィールドのフィールドと前記第２の複数のフィールドのフィールドとの間の一致度の推定に少なくとも部分的に基づき、前記第１の列と前記第２の列との間の結合パスを識別するステップと、
を含むコンピュータ実装方法。
[請求項１０]
前記第１および第２の列に共通のデータ型に少なくとも部分的に基づき、前記第１および第２の確率的計数構造を形成するために、前記第１の列および前記第２の列を選択するステップをさらに含む、
請求項９に記載のコンピュータ実装方法。
[請求項１１]
前記第１および第２の列のための前記一致度の推定を２つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別するステップをさらに含む、
請求項９に記載のコンピュータ実装方法。
[請求項１２]
前記第１および第２の確率的計数構造の交点を前記第１および第２の確率的計数構造の和集合から減じることにより、前記一致度の推定を行うステップをさらに含む、
請求項９に記載のコンピュータ実装方法。
[請求項１３]
前記一致度の推定が、前記交点に含まれないフィールドの計数を確率的に判定することに少なくとも部分的に基づく、
請求項９に記載のコンピュータ実装方法。
[請求項１４]
前記識別された結合パスに少なくとも部分的に基づき、階層を形成するステップをさらに含む、
請求項９に記載のコンピュータ実装方法。
[請求項１５]
前記第１および第２の確率的計数構造において対応するバケットを少なくとも組み合わせることによって、前記交点を算出するステップをさらに含む、
請求項９に記載のコンピュータ実装方法。
【図１】
2018190450.tif 000003
【図２】
2018190450.tif 000004
【図３】
2018190450.tif 000005
【図４】
2018190450.tif 000006
【図５】
2018190450.tif 000007
【図６】
2018190450.tif 000008
【図７】
2018190450.tif 000009
【外国語明細書】
2018190450.tif 000010
2018190450.tif 000011
2018190450.tif 000012
2018190450.tif 000013
2018190450.tif 000014
2018190450.tif 000015
2018190450.tif 000016
2018190450.tif 000017
2018190450.tif 000018
2018190450.tif 000019
2018190450.tif 000020
2018190450.tif 000021
2018190450.tif 000022
2018190450.tif 000023
2018190450.tif 000024
2018190450.tif 000025
2018190450.tif 000026
2018190450.tif 000027
2018190450.tif 000028
2018190450.tif 000029
2018190450.tif 000030
2018190450.tif 000031
2018190450.tif 000032
2018190450.tif 000033
2018190450.tif 000034
2018190450.tif 000035
2018190450.tif 000036
2018190450.tif 000037
2018190450.tif 000038
2018190450.tif 000039
2018190450.tif 000040
2018190450.tif 000041
2018190450.tif 000042
2018190450.tif 000043
2018190450.tif 000044
2018190450.tif 000045
2018190450.tif 000046
2018190450.tif 000047