JP2018190450A - 基数推定を介した結合パスの効率的な判定 - Google Patents

基数推定を介した結合パスの効率的な判定 Download PDF

Info

Publication number
JP2018190450A
JP2018190450A JP2018141008A JP2018141008A JP2018190450A JP 2018190450 A JP2018190450 A JP 2018190450A JP 2018141008 A JP2018141008 A JP 2018141008A JP 2018141008 A JP2018141008 A JP 2018141008A JP 2018190450 A JP2018190450 A JP 2018190450A
Authority
JP
Japan
Prior art keywords
columns
column
data
intersection
estimate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018141008A
Other languages
English (en)
Inventor
ウィンドラス グプタ アニュラグ
Windlass Gupta Anurag
ウィンドラス グプタ アニュラグ
アンドルー ラース ティモシー
Andrew Rath Timothy
アンドルー ラース ティモシー
スンダール ラグハヴァン スリニヴァサン
Sundar Raghavan Srinivasan
スンダール ラグハヴァン スリニヴァサン
カルキ サントシュ
Kalki Santosh
カルキ サントシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2018190450A publication Critical patent/JP2018190450A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

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

Abstract

【課題】トランザクションデータ列の複数の集合から分析的に有用な関係を抽出する。
【解決手段】選択された列の集合のそれぞれのためのテーブルスキャンの間に、hyperloglogなどの確率的計数構造が形成される。それぞれの列のデータ型に基づいてもよく、関連度の初期推定に基づいて列が選択されてもよい。確率的データ構造の交点に基づいて、列の交点または和集合の基数推定が行われる。列の交点または和集合の推定された基数に基づいて、結合パスが判定されてもよい。
【選択図】図1

Description

関連出願の相互参照
本出願は2014年12月22日に出願された米国特許出願第14/578,841の利益を主張し、その開示内容全体を本明細書に参照として援用する。
データウェアハウスおよびオンライン分析処理(「OLAP」)システムは、分析クエリの自動生成を可能にする様々なツールを含んでもよい。これらのツールは場合によって、分析されるデータの構造に関する様々な詳細を提供する上でユーザに依拠してもよい。しかし、この情報の提供は複雑なプロセスとなる可能性がある。その他の場合にツールは、主キーと外部キーとの関係などの明示的に定義されるスキーマ情報を利用して分析クエリを自動的に生成してもよい。しかし明示的に定義されない場合であっても、分析的に有用な関係が存在してもよい。また、分析ツールのユーザが意識しない分析的に有用な関係があってもよい。
以下の詳細な説明は、添付図面と併せ読むことでよりよく理解することができる。例示のために、図面において本開示の態様の様々な実施例が示されるが、本発明は開示される特定の方法および手段に限定されるものではない。
2列内のフィールド一致度を推定するために確率的計数構造を利用して結合関係を識別するシステムおよびプロセスの実施形態を示すブロック図である。 基数推定を利用して算出される、推定されたフィールド一致度に基づく2列間の結合パスの識別を示すブロック図である。 確率的計数構造の交点および和集合を算出するプロセスを示す。 確率的計数構造を利用して結合パスを識別するプロセスの実施形態を示す。 複数の列の内の2列間の結合パスを識別するプロセスの実施形態を示す。 本開示の態様を実施することができる計算環境の実施形態を示すブロック図である。 本開示の態様を実施することができる計算システムの実施形態を示すブロック図である。
本開示の態様は、トランザクションデータの分析操作を実行するために利用されてもよい結合関係を識別するために利用してもよい。結合関係は、分析クエリの生成などの様々な目的のために利用されてもよい。場合によっては、分析を実行するために利用可能である階層を生成するために結合関係を利用してもよい。
本開示の実施形態においては、hyperloglogなどの、列間の結合関係を識別するための確率的データ構造を利用してもよい。実施形態においては潜在的に関連する各列のための確率的データ構造が生成されてもよく、その場合、関連性の初期推定は共通データ型などの要因に基づいてもよい。実施形態においては、2つ以上の確率的データ構造の、交点に基づく列の値の間の一致度または交点に基づく和集合が推定されてもよい。列の値の間の一致度はその後、列間の結合関係を識別するための根拠として利用されてもよい。
確率的データ構造は、集合の基数を推定するために、近似化または無作為化などの様々な統計的手法に関連するものを含んでもよい。データセットの基数は、集合内の異なる値の数を指してもよい。確率的データ構造の実施例は、hyperloglog、loglog、およびブルームフィルタ手法に関連するものを含む。hyperloglog、loglog、min−hash、およびブルームフィルタの用語は、手法に対応する構造を指すために利用されてもよい。
確率的データ構造は、いくつかのバケットを含んでもよい。各バケットはデータストリームの区分に対応してもよく、区分内の推定された基数に関する情報を含んでもよい。データストリームは、様々な基準に基づいて区分されてもよい。場合によって、区分は実質的に無作為であってもよく、その場合にバケットはデータセットの実質的に無作為な部分に対応してもよい。これは例えば、特定のハッシュ関数を利用してデータストリームが区分される場合である。その他の場合には、区分はキー範囲などの無作為でない基準に基づいてもよい。
データストリームは通常、大規模な(場合によっては非常に大規模な)データセットをスキャンすることによって取得されてもよい。確率的データ構造は、メモリ効率のよい方法で大規模なデータセットの基数を推定するために利用されてもよい。しかし基数推定の正確性は、データストリームにおける区分の数および確率的データ構造内の対応するバケットの数に依拠してもよい。
実施形態においては、複数のデータストリームにおけるデータ間の一致度を推定するために複数の確率的データ構造が利用されてもよい。本明細書にて使用されるように、データストリームの用語は、データベース管理システムからの列指向データに適用してもよい。したがって実施形態においては、複数のデータ列におけるデータ間の一致度を推定するために複数の確率的データ構造が利用されてもよい。
図1は、2列内のフィールド一致度を推定するために確率的計数構造を利用して結合関係を識別するシステムおよびプロセスの実施形態を示すブロック図である。フィールドと称されてもよい特定の行内の列の値は、両方のフィールドが行内で同じ値を有する場合に、別のフィールドと一致してもよい。実施形態は一致頻度に基づいて、結合パスが2列間に存在することを判定してもよい。
図1において、テーブル100はいくつかの行114を含んでもよい。各行は、列102〜106などのいくつかの列を含んでもよい。特定の列および特定の行の交点は、フィールドと記載してもよい。用語フィールドは、行および列の交点またはこのような交点の値を説明するために利用されてもよい。図1において、フィールド108は列102に対応してもよく、フィールド110は列104に対応してもよく、フィールド112は列106に対応してもよい。様々な実施形態において、テーブル100のデータは、行指向フォーマットおよび/または列指向フォーマットにおいて1つまたは複数の記憶装置上に格納されてもよい。
実施形態において、関連性の初期推定に基づく分析のための特定の列が識別されてもよい。例えば実施形態において、列102および列106が潜在的に関連があると判定される可能性がある。初期推定は場合によって、データ型に基づいてもよい。結合パスは、同じデータ型、類似のデータ型、または共通データ型に変換することができる異なるデータ型の列の間に存在する可能性がより高い。非限定的な実施例として、示される列102および106はいずれも、整数データ型などの同じデータ型であることが推定されてもよい。
特定の列内の値の基数を判定するために確率的計数技術が利用されてもよい。例えば確率的計数構造116が、フィールド112のために形成され、列106に対応する基数推定をもたらすために利用されてもよい。同様に、確率的計数構造128はフィールド108のために形成され、列102に対応する基数推定をもたらすために利用されてもよい。列のための基数推定は、列のフィールド内のいくつかの一意の値を示してもよい。
確率的計数構造116は、いくつかのバケット118〜126を含んでもよい。バケット120などの個別のバケットは、フィールド112に存在することができる値の範囲の基数、または、フィールド112における行の範囲の基数に対応してもよい。
実施形態は、分析モジュール146を含んでもよい。分析モジュール146は、確率的計数構造116と確率的計数構造128の交点を算出してもよい交点/和集合手順140を含んでもよい。これらの構造はいずれも、ベクトルとして可視化されてもよい。2つのベクトルの交点は、2つの元のベクトルの対応する要素の交点を含む、新規ベクトルの要素を含んでもよい。例えば交点は、5つの要素がバケット118と130、バケット120と132、バケット122と134、バケット124と136、およびバケット126と138の交点を含むベクトルとして算出される可能性がある。図1において確率的計数構造116および128は、それぞれ5つのバケットを有するものとして示される。より多いまたは少ないバケットが様々な場合および実施形態において利用されてもよい。
分析モジュール146は、フィールド一致度推定手順142を含んでもよい。フィールド一致度の推定は、確率的データ構造116および128の交点を利用することを含んでもよい。交点は例えば、包除原理を利用してフィールド108および112の和集合の基数の推定値を決定するために利用されてもよい。
実施形態においては、フィールド108および112の和集合の推定された基数が利用されてもよい。分析モジュール146が含んでもよい結合パス判定手順144は、和集合の推定された基数に、または和集合を判定せずに交点に基づいて列102と列106の間の結合パスを識別してもよい。
図2は、基数推定を利用して算出される、推定されたフィールド一致度に基づく2列間の結合パスの識別を示すブロック図である。200および202の2列間に自然結合パスが存在するか否かを判定するために、列200および列202が分析されてもよい。基数推定220を形成するために列200が分析されてもよい。基数推定220は、列200の全体の基数の指示を含んでもよい。同様に基数推定222は、列202の全体の基数の指示を含んでもよい。
例えば図2において、フィールド204、206、および210は同じ「A」の値を共有し、フィールド208は「X」の値を有するため、列200はアルファベットの「A〜C」の範囲内の2つの全体の基数および1つの基数を有するとしてもよい。フィールド212および218はAの値を共有し、フィールド214は「B」の値を有し、フィールド216は「Y」の値を有するため、列202は「A〜C」の範囲内の3つの全体の基数および2つの基数を有するとすることができる。これらの実施例は、一般的な原理を説明することを意図しており、本開示の範囲を限定するものとして見なされるべきではないことが理解される。本明細書に記載の技術の応用においては、多数のフィールド値ならびに、場合によっては、高い基数値および基数を算出することができる多くの範囲が存在してもよい。
実施形態においては、「A〜C」の範囲などのそれぞれの範囲において推定された基数に基づき、列200および列202に関する結合パスを識別するために結合パス判定224が実行されてもよい。結合パス判定224は、基数推定表現の交点に基づいてもよい。結合パス判定224はまた、包除原理を介した交点に基づくことができる基数推定表現の和集合に基づいてもよい。
図3は、確率的計数構造の交点および和集合を算出するプロセスを示す。確率的計数構造は、示されるバケット300および304などの様々なバケットを含んでもよい。各バケットは、そのバケットに関する基数推定の表現を含んでもよい。示されるように、基数推定302はバケット300に対応してもよく、基数推定306はバケット304に対応してもよい。なお、それぞれが2度の算出において利用されるため、バケット300および304ならびに対応する基数推定302および306は図3においてそれぞれ2度示される。
確率的計数構造の交点は、交点算出308を含んでもよい。これは、基数推定302と基数推定306との間の交点を含んでもよい。交点算出の性質は部分的に、基数推定の表現に依拠してもよい。場合によっては、対応するバケットの交点または和集合を形成するために集合論の応用が利用されてもよい。その他の場合には、集合論は全体としての表現に応用されてもよい。さらに別の場合には、バケットの検証により、2つの確率的計数構造の交点または和集合算出の推論手段を支援してもよい。例えばhyperloglogの場合、hyperloglogバケットの二進表現における先頭ゼロの検証を交点または和集合の判定において利用することができる。いくつかの実施形態においては、2つの基数表現の間でビットごとのAND演算が実行されてもよい。図3において、結果として得られる構造は、基数推定308の交点として示される。これは減算312によって、加算310を通じて得られてもよい基数推定302と基数推定306との合計から減じられてもよい。加算310および減算312の性質は、基数推定が表現される方法に基づいて変化してもよい。
基数推定302と206との合計から基数推定308の交点を減じた結果を、基数推定314の和集合としてもよい。様々な実施形態において、基数推定314の和集合は2列における値の間の重複度を表してもよい。なお、様々な実施形態において、本明細書に記載の様々な技術を利用して2つより多い列に関する分析を支援してもよい。
図4は、確率的計数構造を利用して結合パスを識別するプロセスの実施形態を示す。要素の順序が示されているが、示される順序は本開示の範囲を限定するものとして見なされるべきではなく、示される要素の少なくとも一部を変更し、省略し、並び替え、付加的な要素を補足し、あるいは並列に実行してもよいことが当業者には理解される。示されるプロセスの実施形態は、本明細書に記載の計算システムなどの計算システムによって実行されるコンピュータ実行可能命令を含むモジュールを利用して実装されてもよい。示されるプロセスの実施形態は場合によって、複数の計算ノードを含む分散データベース管理システムによってテーブルがホストされる分散計算環境において実施されてもよい。分析操作は、分散データベース管理システムに通信可能に接続され、図1に示される分析モジュール146などの分析モジュールを含む計算ノードによって実行されてもよい。
要素400によって示されるように、実施形態において、関連性の初期推定に基づき、分析のための列を選択してもよい。初期推定は、テーブルまたは共通データ型を有するデータ集合の列の識別を含んでもよい。実施形態において、同一のまたは類似の型の、または同一のまたは類似の型に変換することができる列を含むタプルへとテーブルの列を分類してもよい。初期推定はまた、行の様々な列のためのフィールド値のサンプリングに基づいてもよい。このような場合、実施形態においては通常、この段階でのフルテーブルのスキャンを回避する。
実施形態において、分析のための列の複数のタプルを識別してもよい。要素402によって示されるように、実施形態においてテーブルのスキャンを開始してもよい。実施形態において、1度のスキャンの間に構築される確率的計数構造に基づき、複数のタプルの分析が実行されてもよい。いくつかの場合および実施形態において、テーブルスキャンはフルテーブルスキャンを含んでもよい。他の場合および実施形態において、テーブルスキャンは部分的であってもよい。フルテーブルスキャンの実行に関連する時間または他のコストを削減するために、様々なサンプリング技術が利用されてもよい。列指向ストレージに関する場合に、それぞれの選択された列の確率的計数構造を形成するために、関連する列のフルまたは部分スキャンを実行してもよい。
要素404および406は、第1の列のための第1の確率的計数構造および、第2の列のための第2の確率的計数構造を形成する実施形態を示す。列は、要素400が示す操作によって選択された列に対応してもよい。確率的計数構造は、hyperloglog、loglog、ブルームフィルタ、min−hash、または他の類似の構造であってもよい。実施形態は、2つ以上のこのような構造上の交点および/または和集合演算子のメモリ効率性、正確性、および実現可能性などの要因に基づき、特定の型の確率的計数構造を利用するように構築されてもよい。
列のためのhyperloglog構造の形成には、hyperloglog構造のバケットに対するメモリの割り当てが含まれてもよい。要素402において開始されたテーブルのスキャンの間、ハッシュ関数を各行ごとの第1の列の値に応用し、ハッシュ関数の出力に対応するバケットに格納することができる。結果として得られる構造は、基数が第1の列の基数と相関するランダム分布を表してもよい。バケットに対して割り当てられたより大きなメモリにより、基数推定のためのより精密なハッシュ関数およびより高い正確性が可能になる。他の確率的計数構造が類似の方法で形成されてもよい。これらの構造は、計算装置のメモリにおいて、または計算装置が通信可能に接続される記憶装置上で形成されてもよい。場合によっては、hyperloglogを用いるなどして、構造に位置する空間の大きさは、それがもたらす基数推定の正確性に対応する。場合によって実施形態は、利用可能なメモリまたは記憶領域と推定のための所望の正確性レベルといった要因の均衡化に基づいてhyperloglogまたは他の確率的データ構造を形成してもよい。
要素408は、第1および第2の確率的計数構造の交点算出を行う実施形態を示す。2つの確率的計数構造の交点は、確率的計数構造における対応するバケットの交点の算出を含んでもよい。実施形態においては、その後確率的計数構造の和集合を算出するために、交点が利用されてもよい。交点は例えば、図3に示す手順を利用して算出されてもよい。
要素410によって示されるように、実施形態において、第1および第2の列のフィールド間の一致度が推定されてもよい。推定は、交点に、交点に基づいて算出される和集合に、または交点に存在しない要素の数の判定に基づいてもよい。フィールド一致度の推定は、第2の列にも存在する第1の列の要素からなる集合の推定された基数を算出するための包除原理の利用に基づいてもよい。あるいは、フィールド一致度の推定は、第2の列には存在しない第1の列の要素からなる集合の基数および、第1の列には存在しない第2の列の要素に基づいてもよい。
要素412によって示されるように、実施形態においては、推定された一致度に基づいて、第1および第2の列の間の結合パス候補が識別されてもよい。これには、少なくとも第1および第2の確率的データ構造の交点または和集合に基づく、第1および第2の列における値の間の一致度が閾値を超えることの判定が含まれてもよい。一致度の推定値が高いほど、結合パスが2列間に存在する可能性がより高いことを示す。したがって、2列間の結合パスの識別は、閾値を超える一致度の推定に基づき得る。
図5は、複数の列の内の2列間の結合パスを識別するプロセスの実施形態を示す。要素の順序が示されているが、示される順序は本開示の範囲を限定するものとして見なされるべきではなく、示される要素の少なくとも一部を変更し、省略し、並び替え、付加的な要素を補足し、あるいは並列に実行してもよいことが当業者には理解される。示されるプロセスの実施形態は、本明細書に記載の計算システムなどの計算システムによって実行されるコンピュータ実行可能命令を含むモジュールを利用して実装されてもよい。
要素500によって示されるように、実施形態において、複数の列の間から少なくとも第1の列のタプルおよび第2の列のタプルが選択されてもよい。列のタプルは、さらなる評価のために潜在的な結合パスとして選択される2列を含んでもよい。タプルは、同一のまたは類似のデータ型を共有するか、または共通データ型へと変換されてもよいこれらの列の間から選択されてもよい。データ型は、関連性の初期推定の根拠とすることができる。いくつかの場合および実施形態において、付加的な要因は、列におけるデータの予備サンプリング、列名に基づく分析などを含んでもよい。列のタプルの選択は、計算装置のメモリに保持されるリスト構造へのタプルの追加を含んでもよい。リスト内のタプルはその後、それに続く分析のために、アクセスされてもよい。
要素502によって示されるように、実施形態において、タプル内の各一意の列の確率的データ構造を構築しながらテーブルをスキャンしてもよい(またはそれ以外のデータストリームを処理してもよい)。例えば、タプルが(列A、列B)および(列A、列C)である場合、実施形態はその後、3つの確率的データ構造―列A、BおよびCのそれぞれにつき1つずつを形成してもよい。要素504によって示されるように、交点はその後、各タプルにおける列の間で算出されてもよい。例えば実施形態において、列Aの確率的データ構造の列Bのそれとの交点が算出され、列Aの確率的データ構造の列Cのそれとの交点が算出される可能性がある。テーブルのスキャンまたはそれ以外のデータストリームの処理は、テーブルまたはストリーム内のデータにおける行のレコード単位での検査を含み得る。場合によってはすなわち、ストリームのテーブルまたは要素内のすべての行において検証を実行してスキャンを完全に行ってもよい。その他の場合には、例えばストリームにおけるテーブルまたはレコード内の行の部分集合を検査するためのサンプリングまたはスキッピング技術を利用して、スキャンを部分的に行ってもよい。
要素506によって示されるように、列の値の一致度がタプルごとに推定されてもよい。すなわち、列Aの列Bに対する、また、列Aの列Cに対する列の値の一致度が推定されてもよい。推定された一致度が最高であるか、ある閾値レベルを超えるこれらのタプルは、要素508に示されるように、結合パスとして識別されてもよい。図4において、タプルの一致度の推定および結合パスの識別に関してさらに詳細に示す。
実施形態において、いくつかの列のためにhyperloglogまたは他の確率的計数構造を形成しながら、初期スキャンが実行されてもよい。様々なメモリの制約に従うために、構造のサイズは実施形態によって限定されてもよい。その後第2のスキャンが実行され、その間により少数の列のためにより少数のhyperloglogまたは他の確率的計数構造が形成されてもよい。これらの構造のサイズは、第1のスキャンの間に形成されるものよりも大きくてもよい。この手法により、第1のスキャンにおいて形成される確率的計数構造に必要なメモリが少なくて済み、第2のスキャンの間に形成される構造の正確性が高まる。第2のスキャンにおいて利用される列は、第1のスキャンの間に形成される確率的計数構造に基づいて、有力なものとして識別されてもよい。
本開示の実施形態は、多くの型のデータベース管理システム(「DBMS」)と併せて利用されてもよい。DBMSは、格納および検索操作が実行されてもよい、データの集大成を維持するためのソフトウェアおよびハードウェアシステムである。DBMSにおいて、データは通常、キー値と付加的なデータとの間の関連性によって整理される。関連性の性質は、データの集合に存在する現実世界の関係に基づいてもよいか、または、任意であってもよい。データ定義、クエリ、更新、および管理を含めて、様々な操作がDBMSによって実行されてもよい。いくつかのDBMSは構造化照会言語(SQL)などの問合せ言語を利用したデータベースとの対話を提供し、一方他のDBMSはputおよびgetなどの操作を含むAPIを利用する。データベースとの対話はまた、ハイパーテキストマークアップ言語(「HTML」)および拡張マークアップ言語(「XML」)などの様々なプロトコルまたは規格に基づいてもよい。DBMSは、ソリッドステートドライブといった、データまたは1つもしくは複数の記憶装置を格納するよう作用するストレージエンジンなどの様々なアーキテクチャ構成要素を含んでもよい。
図6は、本発明の態様を実施することができる計算環境の実施例を示す図である。様々なユーザ600aは、任意の型の計算装置602aを動作させながら様々なクライアントアプリケーションと対話し、通信ネットワーク604を介してデータセンター620内の様々な計算ノード610a、610b、および610c上で実行するプロセスと通信してもよい。あるいは、クライアントアプリケーション602bは、ユーザの介入なしに通信を行ってもよい。通信ネットワーク604は、インターネット、有線および無線ローカルエリアネットワーク、光ファイバネットワーク、衛星通信などを含む通信技術の任意の組み合わせを含んでもよい。任意の数のネットワークプロトコルが利用されてもよい。
データセンター620内で動作する、計算ノード610a、610bおよび610c上で実行するプロセスとの通信は、ゲートウェイ606およびルータ608を介してもたらされてもよい。多数の他のネットワーク構成をまた、利用してもよい。図6において明示的に記されてはいないが、計算ノード610a、610b、および610c上で実行するプロセスとの通信を仲介するための様々な認証機構、ウェブサービス層、ビジネスオブジェクト、または他の中間層が設けられてもよい。これらの中間層の一部はそれ自体が、1つまたは複数の計算ノード上で実行するプロセスを含んでもよい。計算ノード610a、610b、および610c、ならびにその上で実行されるプロセスはまた、ルータ608を介して互い通信してもよい。あるいは、別個の通信パスが利用されてもよい。いくつかの実施形態においては、計算ノードおよびその上で実行されるプロセスが他のデータセンター内で動作する計算ノードおよびプロセスと通信できるように、データセンター620が付加的なデータセンターと通信するよう構成されてもよい。
計算ノード610aは、1つまたは複数のプロセッサ616、1つまたは複数のメモリ618、および1つまたは複数の記憶装置614を備える物理ハードウェア上に存在するように示される。計算ノード610a上のプロセスは、オペレーティングシステムと併せて実行してもよいか、あるいは、プロセッサ616、メモリ618、または記憶装置614などの物理リソースと直接対話するベアメタルプロセスとして実行してもよい。
計算ノード610bおよび610cは、物理プロセッサ、メモリ、および記憶装置などの様々な物理リソースへの共有アクセスを提供することができる仮想マシンホスト612上で動作するように記される。任意の数の仮想化機構が計算ノードをホストするために利用される可能性がある。
図6に示す様々な計算ノードは、ウェブサービス、データベース管理システム、ビジネスオブジェクト、監視および診断設備などをホストするよう構成されてもよい。計算ノードは、パーソナルコンピュータ、サーバ、クラスタ化計算装置などの様々な型の計算リソースを指してもよい。計算ノードは例えば、携帯電話、スマートフォン、タブレット、組込み機器など様々な計算装置を指してもよい。ハードウェア形式で実装された場合、計算ノードは通常、コンピュータ読み取り可能命令を格納するよう構成される1つまたは複数のメモリおよび、命令を読み出し、実行するよう構成される1つまたは複数のプロセッサに関連する。ハードウェアベースの計算ノードはまた、1つまたは複数の記憶装置、ネットワークインターフェース、通信バス、ユーザインターフェース装置などを備えてもよい。計算ノードはまた、ハイパーバイザ、仮想化ベアメタル環境などの有無に関わらず実装される仮想マシンなどの仮想化計算リソースを含む。仮想化に基づく計算ノードは、ハードウェアリソースへの仮想化アクセスおよび非仮想化アクセスを有してもよい。計算ノードは、オペレーティングシステムおよび1つまたは複数のアプリケーションプログラムを実行するよう構成されてもよい。いくつかの実施形態において、計算ノードはまた、ベアメタルアプリケーションプログラムを含む可能性がある。
少なくともいくつかの実施形態において、本明細書に記載の1つまたは複数の技術の一部または全部を実装するサーバは、1つまたは複数のコンピュータアクセス可能媒体を含むかまたはそれにアクセスするよう構成される、汎用コンピュータシステムを含んでもよい。図7は、1つまたは複数のコンピュータアクセス可能媒体を含むか、またはそれにアクセスするよう構成される汎用コンピュータシステムを示す。示される実施形態において、計算装置700は、入力/出力(「I/O」)インターフェース730を介してシステムメモリ720へと接続される、1つまたは複数のプロセッサ710a、710b、および/または710n(本明細書において、単数、複数のプロセッサ710と称されてもよい)を含む。計算装置700はさらに、I/Oインターフェース730へと接続されるネットワークインターフェース740を含む。
様々な実施形態において、計算装置700は、1つのプロセッサ710を含むユニプロセッサシステムまたはいくつかの(例えば、2つ、4つ、8つ、または他の好適な数の)プロセッサ710を含むマルチプロセッサシステムであってもよい。プロセッサ710は、命令を実行することが可能な任意の好適なプロセッサであってもよい。例えば様々な実施形態において、プロセッサ610は、x86、PowerPC、SPARC、もしくはMIPS ISAまたは任意の他の好適なISAなどの任意の様々な命令セットアーキテクチャ(「ISA」)を実装する汎用または組込みプロセッサであってもよい。マルチプロセッサシステムにおいて、プロセッサ610のそれぞれ、共通して同じISAを実装してもよいが、必ずしもそうでなくてもよい。
いくつかの実施形態において、グラフィック処理ユニット(「GPU」)712は、グラフィックスレンダリングおよび/または物理演算能力の提供に関与してもよい。GPUは例えば、グラフィック計算に特化した高並列化プロセッサアーキテクチャを含んでもよい。いくつかの実施形態において、プロセッサ710およびGPU712は、1つまたは複数の同じ型の装置として実装されてもよい。
システムメモリ720は、プロセッサ(複数可)610によってアクセス可能な命令およびデータを格納するよう構成されてもよい。様々な実施形態において、スタティックランダムアクセスメモリ(「SRAM」)、同期式ダイナミックRAM(「SDRAM」)、不揮発性/フラッシュ(登録商標)タイプメモリ、または任意の他のタイプのメモリなどの任意の好適なメモリ技術を利用して、システムメモリ720が実装されてもよい。示される実施形態において、上述のそれらの方法、技術およびデータなどの1つまたは複数の所望の機能を実装するプログラム命令およびデータが、コード725およびデータ726としてシステムメモリ720内に格納されて示される。
一実施形態において、I/Oインターフェース730は、装置内のプロセッサ710、システムメモリ720、と任意の周辺機器との間のI/Oトラフィックを調整するよう構成されてもよく、ネットワークインターフェース740または他の周辺インターフェースを含む。いくつかの実施形態において、I/Oインターフェース730は、任意の必要なプロトコル、タイミングまたは他のデータ変換を実行して、1つの構成要素(例えば、システムメモリ720)からのデータ信号を、別の構成要素(例えば、プロセッサ610)による利用に適したフォーマットへと変換してもよい。いくつかの実施形態において、I/Oインターフェース730は例えば、周辺構成要素相互接続(PCI)バス規格またはユニバーサルシリアルバス(「USB」)規格の変形などの様々な型の周辺バスを通じて取り付けられた装置の支持を含んでもよい。いくつかの実施形態において、I/Oインターフェース730の機能は、例えばノースブリッジおよびサウスブリッジなどの2つ以上の別個の構成要素に分割されてもよい。また、いくつかの実施形態において、システムメモリ620へのインターフェースなどのI/Oインターフェース730の機能の一部または全部が、プロセッサ710に直接組み込まれてもよい。
ネットワークインターフェース740は例えば、他のコンピュータシステムまたは装置など、計算装置700と他の装置またはネットワークまたはネットワーク750に付属の装置760との間でのデータの交換を可能にするよう構成されてもよい。様々な実施形態において、ネットワークインターフェース740は、例えばイーサネットネットワークなどの型の任意の好適な有線または無線汎用データネットワークを介した通信を支持してもよい。さらに、ネットワークインターフェース740は、ファイバチャネルSAN(ストレージエリアネットワーク)などのストレージエリアネットワークを介した、または任意の他の好適な型のネットワークおよび/またはプロトコルを介した、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの通信/回線ネットワークを介した通信を支持してもよい。
いくつかの実施形態において、システムメモリ720は、上述のように対応する方法および機器の実施形態を実装するための、プログラム命令およびデータを格納するよう構成されるコンピュータアクセス可能媒体の一実施形態であってもよい。しかし、他の実施形態において、プログラム命令および/またはデータは、受領され、送信され、または異なる型のコンピュータアクセス可能媒体上に格納されてもよい。一般的に、コンピュータアクセス可能媒体は、I/Oインターフェース730を介して計算装置700へと接続される、例えば、ディスクまたはDVD/CDなどの磁気または光学媒体などの非一時的記憶媒体またはメモリ媒体を含んでもよい。非一時的コンピュータアクセス可能記憶媒体はまた、システムメモリ720または別の型のメモリとして計算装置700のいくつかの実施形態に含まれてもよい、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどの任意の揮発性または不揮発性媒体を含んでもよい。さらに、コンピュータアクセス可能媒体は、ネットワークインターフェース740を介して実装されてもよいネットワークおよび/または無線リンクなどの通信媒体を介して伝達される電気、電磁気またはデジタル信号などの、伝送媒体または信号を含んでもよい。図7に示すような複数の計算装置の一部または全部は、様々な実施形態において示される機能を実装するために利用されてもよい。例えば、様々な異なる装置およびサーバ上で実行されるソフトウェア構成要素は、機能を提供するために協働してもよい。いくつかの実施形態においては、汎用コンピュータシステムを利用した実装に加えて、またはその代わりに、記憶装置、ネットワーク装置、または専用コンピュータシステムを利用して示される機能の一部が実装されてもよい。用語「computing device(計算装置)」は、本明細書にて使用されるように、少なくともすべてのこれらの型の装置を指し、これらの型の装置に限定されない。
計算ノードと称されてもよいコンピュートノードは、タブレットコンピュータ、パーソナルコンピュータ、スマートフォン、ゲームコンソール、コモディティハードウェアコンピュータ、仮想マシン、ウェブサービス、計算クラスタ、および計算機器などの多種多様な計算環境において実装されてもよい。これらの計算装置または環境はいずれも、便宜上、コンピュートノードとして、または計算ノードとして示されてもよい。
インターネットおよび/または他のネットワークを介してクライアントの分散集合にアクセス可能な(様々な型のクラウドベースの計算またはストレージなどの)1つまたは複数のウェブサービスを提供するために企業または公的部門組織などの法人によって設定されたネットワークは、プロバイダネットワークと称されてもよい。このようなプロバイダネットワークは、プロバイダネットワークが提供するインフラストラクチャおよびウェブサービスを実装し、分散するために必要な、物理および/または仮想化コンピュータサーバ、記憶装置、ネットワーク機器などの集合といった様々なリソースプールをホストする多数のデータセンターを含んでもよい。いくつかの実施形態においてリソースは、記憶するための記憶容量、処理を行うための処理能力などの、ウェブサービスに関連する様々な単位でインスタンスとして、関連サービスの集合としてなどの形で、クライアントに提供されてもよい。仮想計算インスタンスは例えば、特定の計算能力(CPUの型および数、メインメモリのサイズなどを示すことで特定されてもよい)および特定のソフトウェアスタック(例えば、ハイパーバイザ上で次に実行されてもよい、特定のバージョンのオペレーティングシステム)を有する1つまたは複数のサーバを含んでもよい。
いくつかの異なる型の計算装置は、汎用または専用コンピュータサーバ、記憶装置、ネットワーク装置などを含む、異なる実施形態におけるプロバイダネットワークのリソースを実装するために、単独でまたは組み合わせて利用することができる。いくつかの実施形態においては、例えばユーザに管理者ログインおよびパスワードを与えることで、クライアントまたはユーザがリソースインスタンスに直接アクセスすることが可能になってもよい。他の実施形態において、プロバイダネットワークオペレータにより、例えばクライアントがインスタンスにアクセスしたり、プラットフォームを直接実行したりする必要がなく、クライアントが特定のクライアントアプリケーションのための実行要件を特定し、クライアントのためにアプリケーションに好適な実行プラットフォーム(様々な解釈された、またはコンパイルされたプログラミング言語―Ruby、Perl、Python、C、C++などを支援する、アプリケーションサーバインスタンス、Java(商標)仮想マシン(「JVM」)汎用または専用オペレーティングシステム、プラットフォームまたは、高性能計算プラットフォームなど)上でアプリケーションの実行を予定することが可能になってもよい。ある実施態様において、所定の実行プラットフォームは1つまたは複数のリソースインスタンスを利用してもよく、他の実施態様において、複数の実行プラットフォームは単一のリソースインスタンスにマッピングされてもよい。
多くの環境において、異なる型の仮想化計算、記憶、および/または他のネットワークアクセス可能な機能を実装するプロバイダネットワークのオペレータにより、顧客が様々なリソース獲得モードにおいて、リソースへのアクセスを確保するか、または購入することが可能になってもよい。計算リソースプロバイダにより、顧客が所望の計算リソースを選択してそれに着手し、アプリケーション構成要素を計算リソースに配置し、環境において実行するアプリケーションを維持することが容易になってもよい。さらに計算リソースプロバイダにより、要求に応じて、またはアプリケーション変更の容量要件にしたがって、手動で、または自動スケーリングを通じて、顧客がアプリケーションに割り当てられるリソースの数および型を迅速かつ簡潔にスケールアップ、またはスケールダウンすることがさらに容易になってもよい。計算リソースプロバイダが提供する計算リソースは、インスタンスと称することができる個別の単位において利用可能であってもよい。インスタンスは、物理サーバハードウェアプラットフォーム、サーバ上で実行する仮想マシンインスタンス、または2つの何らかの組み合わせを表してもよい。様々なインストールされたソフトウェアアプリケーション、ランタイムなどを有する、異なるオペレーティングシステム(「OS」)および/またはハイパーバイザを実行する、異なるサイズのリソースを含めて、インスタンスの様々な型および構成が利用可能となってもよい。インスタンスはさらに、例えば基盤となる計算ハードウェアの論理領域、フォールトトレラント領域、データセンター、または他の地理的位置を表す特定のアベイラビリティゾーンにおいて、利用可能であってもよい。インスタンスの冗長性を向上させるために、アベイラビリティゾーン内で、またはアベイラビリティゾーンを挟んでインスタンスがコピーされてもよく、インスタンスは特定のアベイラビリティゾーン内で、またはアベイラビリティゾーンを挟んで移行してもよい。一実施例として、アベイラビリティゾーンにおける、クライアントの特定のサーバとの通信のレイテンシは、クライアントの異なるサーバとの通信のレイテンシよりも小さくてもよい。したがって全体のクライアントエクスペリエンスを向上させるために、インスタンスをより高いレイテンシのサーバからより低いレイテンシのサーバに移行させてもよい。
いくつかの実施形態において、プロバイダネットワークは複数の地理的領域に整理されてもよく、各領域は1つまたは複数のアベイラビリティゾーンを含んでもよい。アベイラビリティゾーン(利用可能なコンテナと称されてもよい)は次に、所定のアベイラビリティゾーンにおけるリソースが他のアベイラビリティゾーンにおける障害から孤立し、または遮断されることができるように構成された、1つまたは複数の異なる位置またはデータセンターを含んでもよい。すなわち、1つのアベイラビリティゾーン障害は他のアベイラビリティゾーンにおける障害にはつながらない。したがって、リソースインスタンスのアベイラビリティプロファイルは、異なるアベイラビリティゾーンにおけるリソースインスタンスとは独立することを意図されている。クライアントはそれぞれのアベイラビリティゾーンにおける複数のアプリケーションインスタンスを起動することで、単一の位置における障害から自らのアプリケーションを保護することができる。同時に、いくつかの実施態様において、同じ地理的領域内に存在するリソースインスタンス間に提供されるネットワーク接続は、費用が安くレイテンシが低い場合がある(また、同じアベイラビリティゾーンのリソース間のネットワーク伝送の方が速い場合すらある)。
前述のプロセス、方法、およびアルゴリズムはそれぞれ、1つまたは複数のコンピュータまたはコンピュータプロセッサによって実行されるコードモジュールにおいて実現されてもよく、またそれによって全体にまたは部分的に自動化されてもよい。コードモジュールは、ハードドライブ、ソリッドステートメモリ、光学ディスクなどの任意の型の非一時的コンピュータ可読媒体またはコンピュータ記憶装置上に格納されてもよい。プロセスおよびアルゴリズムは、特定用途向け回路において、部分的に、または全体として実装されてもよい。開示されたプロセスの結果およびプロセスのステップは、永続的に、あるいは例えば揮発性または不揮発性ストレージなどの任意の型の非一時的コンピュータストレージ内に格納されてもよい。
上述の様々な特徴およびプロセスは、互いに独立して利用されてもよいか、または、様々な方法で組み合わせられてもよい。潜在的な組み合わせおよび副組み合わせは、本開示の範囲を包含することが意図される。さらに、いくつかの実施態様において、特定の方法またはプロセスブロックが省略されてもよい。本明細書に記載の方法およびプロセスは特定の順序に限定されず、それに関連するブロックまたは状態は、適切な他の順序で実行することができる。例えば、記されるブロックまたは状態は具体的に開示される順序とは異なる順序で実行されてもよいか、あるいは複数のブロックまたは状態が単一のブロックまたは状態に組み合わせられてもよい。例示的なブロックまたは状態は、連続して、並行して、または別の何らかの方法で実行されてもよい。ブロックまたは状態が開示された例示的な実施形態に追加され、またはそこから取り除かれてもよい。本明細書に記載の例示的なシステムおよび構成要素は、記載とは異なって構成されてもよい。例えば、開示された例示的な実施形態と比較して、要素が加えられ、取り除かれ、再整理されてもよい。
さらに、上述の事項は、以下の条項を考慮しても理解され得る。
1.トランザクションデータにおける、分析関係の識別システムであって、
複数の行を含むテーブルを維持する1つまたは複数の計算ノードと、
コンピュータ可読命令を格納した1つまたは複数のメモリであって、計算装置による実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記複数の行の第1の列および第2の列を、前記第1および第2の列の間の関連性の第1の推定に少なくとも部分的に基づいて選択させ、
第1のhyperloglogを、前記第1の列に対応する前記複数の行における第1の複数のフィールドに少なくとも部分的に基づいて形成させ、
第2のhyperloglogを、前記第2の列に対応する前記複数の行における第2の複数のフィールドに少なくとも部分的に基づいて形成させ、
前記第1のhyperloglogと前記第2のhyperloglogとの交点を算出させ、
前記交点に少なくとも部分的に基づく、前記第1の複数のフィールドのフィールドと前記第2の複数のフィールドのフィールドとの間の第2の一致度の推定に少なくとも部分的に基づき、前記第1の列と前記第2の列との間の結合パスを識別させる、
前記メモリと、
を含む、前記システム。
2.コンピュータ可読命令を格納した1つまたは複数のメモリであって、前記1つまたは複数の計算ノードによる実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記第1の列および前記第2の列に共通のデータ型に基づいて、関連性の前記第1の推定を行わせる、
前記メモリ、
をさらに含む、条項1に記載のシステム。
3.コンピュータ可読命令を格納した1つまたは複数のメモリであって、前記1つまたは複数の計算ノードによる実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記第1および第2の列のための前記第2の一致度の推定を2つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別させる、
前記メモリ、
をさらに含む、条項1に記載のシステム。
4.コンピュータ可読命令を格納した1つまたは複数のメモリであって、前記1つまたは複数の計算ノードによる実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記第1のhyperloglogと前記第2のhyperloglogとの交点を、前記第1のhyperloglogと前記第2のhyperloglogとの和集合から少なくとも減じることにより、前記第2の一致度の推定を行わせる、
前記メモリ、
をさらに含む、条項1に記載のシステム。
5.コンピュータ可読命令を格納した1つまたは複数のメモリであって、前記1つまたは複数の計算ノードによる実行時に前記コンピュータ可読命令が、前記システムに少なくとも、
前記複数の行の第1のスキャンを少なくとも実行することにより、複数のhyperloglogを形成させ、
前記複数の行の第2のスキャンを少なくとも実行することにより、前記第1のhyperloglogを形成させ、
前記第1のhyperloglogのサイズが前記第1のスキャンの間に形成される前記複数のhyperloglog内のhyperloglogのサイズよりも大きい、
前記メモリ、
をさらに含む、条項1に記載のシステム。
6.命令を格納した非一時的コンピュータ可読記憶媒体であって、1つまたは複数の計算装置による実行時に前記命令が、前記計算装置に少なくとも、
複数の行において前記複数の行の第1の列に対応する第1の複数のフィールドに少なくとも部分的に基づいて、第1の確率的計数構造を形成させ、
前記複数の行において前記複数の行の第2の列に対応する第2の複数のフィールドに少なくとも部分的に基づいて、第2の確率的計数構造を形成させ、
前記第1および第2の確率的計数構造の交点を算出させ、
前記交点に少なくとも部分的に基づく、前記第1の複数のフィールドのフィールドと前記第2の複数のフィールドのフィールドとの間の一致度の推定に少なくとも部分的に基づいて、前記第1の列と前記第2の列との間の結合パスを識別させる、
前記非一時的コンピュータ可読記憶媒体。
7.前記1つまたは複数の計算装置による実行時に、前記1つまたは複数の計算装置に少なくとも、
前記第1および第2の列に共通のデータ型に少なくとも部分的に基づいて、前記第1および第2の確率的計数構造を形成するために、前記第1の列および前記第2の列を選択させる、
命令、
をさらに含む、条項6に記載の非一時的コンピュータ可読記憶媒体。
8.前記1つまたは複数の計算装置による実行時に、前記1つまたは複数の計算装置に少なくとも、
前記第1および第2の列のための前記一致度の推定を2つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別させる、
命令、
をさらに含む、条項6に記載の非一時的コンピュータ可読記憶媒体。
9.前記1つまたは複数の計算装置による実行時に、前記1つまたは複数の計算装置に少なくとも、前記第1および第2の確率的計数構造の交点を前記第1および第2の確率的計数構造の和集合から少なくとも減じることにより、前記一致度の推定を行わせる、
命令、
をさらに含む、条項6に記載の非一時的コンピュータ可読記憶媒体。
10.前記一致度の推定が、前記交点に含まれないフィールドの計数に少なくとも部分的に基づく、条項6に記載の非一時的コンピュータ可読記憶媒体。
11.前記1つまたは複数の計算装置による実行時に、前記1つまたは複数の計算装置に少なくとも、
前記複数の行の第1のスキャンおよび前記複数の行の第2のスキャンを少なくとも実行することで、前記第1の確率的計数構造を形成させる命令であって、前記第2のスキャンのために前記第1の確率的計数構造のサイズが増大される前記命令、
をさらに含む、条項6に記載の非一時的コンピュータ可読記憶媒体。
12.前記1つまたは複数の計算装置による実行時に、前記1つまたは複数の計算装置に少なくとも、
前記第1および第2の確率的計数構造において対応するバケットを少なくとも組み合わせることによって、前記交点を算出させる、
命令、
をさらに含む、条項6に記載の非一時的コンピュータ可読記憶媒体。
13.前記確率的計数構造がloglog、hyperloglog、ブルームフィルタ、またはmin−hashの少なくとも1つを含む、条項6に記載の非一時的コンピュータ可読記憶媒体。
14.トランザクションデータにおける分析関係を識別するためのコンピュータ実装方法であって、
計算装置のメモリにおいて、前記計算装置に通信可能に接続される1つまたは複数の記憶装置に格納され、第1の列に対応する第1の複数のフィールドのスキャンに少なくとも部分的に基づき、第1の確率的計数構造を形成することと、
前記計算装置の前記メモリにおいて、前記1つまたは複数の記憶装置に格納され、第2の列に対応する第2の複数のフィールドに少なくとも部分的に基づき、第2の確率的計数構造を形成することと、
前記第1および第2の確率的計数構造の交点を算出することと、
前記交点に少なくとも部分的に基づく、前記第1の複数のフィールドのフィールドと前記第2の複数のフィールドのフィールドとの間の一致度の推定に少なくとも部分的に基づき、前記第1の列と前記第2の列との間の結合パスを識別することと、
を含む、前記方法。
15.前記第1および第2の列に共通のデータ型に少なくとも部分的に基づき、前記第1および第2の確率的計数構造を形成するために、前記第1の列および前記第2の列を選択すること、
をさらに含む、条項14に記載のコンピュータ実装方法。
16.前記第1および第2の列のための前記一致度の推定を2つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別すること、
をさらに含む、条項14に記載のコンピュータ実装方法。
17.前記第1および第2の確率的計数構造の交点を前記第1および第2の確率的計数構造の和集合から減じることにより、前記一致度の推定を行うこと、
をさらに含む、条項14に記載のコンピュータ実装方法。
18.前記一致度の推定が、前記交点に含まれないフィールドの計数を確率的に判定することに少なくとも部分的に基づく、条項14に記載のコンピュータ実装方法。
19.前記識別された結合パスに少なくとも部分的に基づき、階層を形成すること、
をさらに含む、条項14に記載のコンピュータ実装方法。
20.前記第1および第2の確率的計数構造において対応するバケットを少なくとも組み合わせることによって、前記交点を算出すること、
をさらに含む、条項14に記載のコンピュータ実装方法。
使用時に様々な項目がメモリ内にまたはストレージ上に格納されていること、かつ、メモリ管理およびデータ保全の目的のために、これらの項目またはその一部がメモリと他の記憶装置との間で受け渡されてもよいことが、理解される。あるいは、他の実施形態において、ソフトウェアモジュールおよび/またはシステムに一部または全部が別の装置上のメモリにおいて実行され、コンピュータ間通信を介して示される計算システムと通信してもよい。さらにいくつかの実施形態において、システムおよび/またはモジュールの一部または全部が少なくとも部分的に、1つまたは複数の特定用途向け集積回路(「ASIC」)、標準集積回路、制御装置(例えば適切な命令を実行し、マイクロコントローラおよび/または組込みコントローラを含むことによる)、フィールドプログラマブルゲートアレイ(「FPGA」)、複合プログラマブルロジックデバイス(「CPLD」)、などを含むがそれに限定されないファームウェアおよび/またはハードウェア内にあるなどの、他の方法で実装されるか、または提供されてもよい。モジュール、システムおよびデータ構造の一部または全部はまた、(例えばソフトウェア命令または構造化データとして)ハードディスク、メモリ、ネットワーク、または適切な装置によって、または適切な接続を介して読み出す可搬型媒体品などのコンピュータ可読媒体内に格納されてもよい。システム、モジュールおよびデータ構造はまた、生成されたデータ信号として(例えば、搬送波または他のアナログもしくはデジタル伝搬信号として)、無線および有線/ケーブルを介した媒体を含む様々なコンピュータ可読伝送媒体上で送信されてもよく、様々な形式(例えば、単一または多重化アナログ信号に一部として、または、複数の個別デジタルパケットまたはフレームとして)を取ってもよい。このようなコンピュータプログラム製品はまた、他の実施形態において、他の形式を取ってもよい。したがって、他のコンピュータシステム構成を用いて本発明を実施することができる。
本明細書において用いられる、「can(できる)」、「could(可能性がある)」、「might(かもしれない)」、「may(してもよい)」「e.g.(例えば)」などの条件付き言語は、別段の明記がない限り、あるいは使用される文脈によって理解されない限り、通常は、他の実施形態は含まないが、特定の実施形態が特定の特徴、要素、および/またはステップを含むことを意図する。したがって、このような条件付き言語は通常、特徴、要素および/またはステップが何としても1つまたは複数の実施形態にとって必要である、あるいは、1つまたは複数の実施形態が、作成者の入力またはプロンプティングの有無にかかわらず、これらの特徴、要素、および/またはステップが含まれるかまたは任意の特定の実施形態において実行されるか否かを判断するための論理を必ず含むことを示唆することを意図しない。「comprising(備える)」、「including(含む)」、「having(有する)」などの用語は同義語であり、オープンエンド様式で包含的に使用されるため、付加的な要素、特徴、行動、操作などを除外しない。また、用語「or(または)」は、(除外的な意味ではなく)包含的な意味で使用される。例えば、リストの要素を接続するために使用する際に、用語「or」は、リスト上の1つ、いくつか、または、すべての要素を意味する。
特定の例示的な実施形態が示されるが、これらの実施形態は、例示の目的のみで示され、本明細書において開示される本発明の範囲を限定するものではない。したがって、上記説明は一切、特定の特徴、特色、ステップ、モジュール、またはブロックが必要あるいは不可欠であることを示すものではない。本明細書に記載の新規方法およびシステムは、様々な他の形式で実現されてもよく、本明細書に記載の方法およびシステムの形式で様々な省略、代替、変更が、本明細書に開示される本発明の趣旨から逸脱することなく加えられてもよい。添付の特許請求の範囲およびその均等物はこのような形式や修正を、本明細書に開示する本発明の趣旨の範囲に該当するものとして網羅することを意図されている。
以下、親出願(特願2017−533922号)の出願当初の特許請求の範囲である。
[請求項1]
トランザクションデータにおける、分析関係の識別システムであって、
複数の行を含むテーブルを維持する1つまたは複数の計算ノードと、
コンピュータ可読命令を格納した1つまたは複数のメモリと、
を含み、
前記コンピュータ可読命令は、計算装置による実行時に、前記システムに少なくとも、
前記複数の行の第1の列および第2の列を、前記第1および第2の列の間の関連性の第1のyに少なくとも部分的に基づいて選択させ、
第1のhyperloglogを、前記第1の列に対応する前記複数の行における第1の複数のフィールドに少なくとも部分的に基づいて形成させ、
第2のhyperloglogを、前記第2の列に対応する前記複数の行における第2の複数のフィールドに少なくとも部分的に基づいて形成させ、
前記第1のhyperloglogと前記第2のhyperloglogとの交点を算出させ、
前記交点に少なくとも部分的に基づく、前記第1の複数のフィールドのフィールドと前記第2の複数のフィールドのフィールドとの間の第2の一致度の推定に少なくとも部分的に基づき、前記第1の列と前記第2の列との間の結合パスを識別させる、
システム。
[請求項2]
コンピュータ可読命令を格納した1つまたは複数のメモリをさらに含み、
前記コンピュータ可読命令は、前記1つまたは複数の計算ノードによる実行時に、前記システムに少なくとも、
前記第1の列および前記第2の列に共通のデータ型に基づいて、関連性の前記第1の推定を行わせる、
請求項1に記載のシステム。
[請求項3]
コンピュータ可読命令を格納した1つまたは複数のメモリをさらに含み、
前記コンピュータ可読命令は、前記1つまたは複数の計算ノードによる実行時に、前記システムに少なくとも、
前記第1および第2の列のための前記第2の一致度の推定を2つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別させる、
請求項1に記載のシステム。
[請求項4]
コンピュータ可読命令を格納した1つまたは複数のメモリをさらに含み、
前記コンピュータ可読命令は、前記1つまたは複数の計算ノードによる実行時に、前記システムに少なくとも、
前記第1のhyperloglogと前記第2のhyperloglogとの交点を、前記第1のhyperloglogと前記第2のhyperloglogとの和集合から少なくとも減じることにより、前記第2の一致度の推定を行わせる、
請求項1に記載のシステム。
[請求項5]
コンピュータ可読命令を格納した1つまたは複数のメモリをさらに含み、
前記コンピュータ可読命令は、前記1つまたは複数の計算ノードによる実行時に、前記システムに少なくとも、
前記複数の行の第1のスキャンを少なくとも実行することにより、複数のhyperloglogを形成させ、
前記複数の行の第2のスキャンを少なくとも実行することにより、前記第1のhyperloglogを形成させ、
前記第1のhyperloglogのサイズが前記第1のスキャンの間に形成される前記複数のhyperloglog内のhyperloglogのサイズよりも大きい、
請求項1に記載のシステム。
[請求項6]
1つまたは複数のプロセッサと、
命令を格納した1つまたは複数のメモリと、
を含むシステムであって、
前記命令は、1つまたは複数の計算装置による実行時に、前記計算装置に少なくとも、
複数の行において前記複数の行の第1の列に対応する第1の複数のフィールドに少なくとも部分的に基づいて、第1の確率的計数構造を形成させ、
前記複数の行において前記複数の行の第2の列に対応する第2の複数のフィールドに少なくとも部分的に基づいて、第2の確率的計数構造を形成させ、
前記第1および第2の確率的計数構造の交点を算出させ、
前記交点に少なくとも部分的に基づく、前記第1の複数のフィールドのフィールドと前記第2の複数のフィールドのフィールドとの間の一致度の推定に少なくとも部分的に基づいて、前記第1の列と前記第2の列との間の結合パスを識別させる、
システム。
[請求項7]
さらに命令を含み、
前記命令は、前記1つまたは複数の計算装置による実行時に、前記1つまたは複数の計算装置に少なくとも、
前記第1および第2の列に共通のデータ型に少なくとも部分的に基づいて、前記第1および第2の確率的計数構造を形成するために、前記第1の列および前記第2の列を選択させる、
請求項6に記載のシステム。
[請求項8]
前記確率的計数構造がloglog、hyperloglog、ブルームフィルタ、またはmin−hashの少なくとも1つを含む、
請求項6に記載のシステム。
[請求項9]
トランザクションデータにおける分析関係を識別するためのコンピュータ実装方法であって、前記コンピュータ実装方法は、
計算装置のメモリにおいて、前記計算装置に通信可能に接続される1つまたは複数の記憶装置に格納され、第1の列に対応する第1の複数のフィールドのスキャンに少なくとも部分的に基づき、第1の確率的計数構造を形成するステップと、
前記計算装置の前記メモリにおいて、前記1つまたは複数の記憶装置に格納され、第2の列に対応する第2の複数のフィールドに少なくとも部分的に基づき、第2の確率的計数構造を形成するステップと、
前記第1および第2の確率的計数構造の交点を算出するステップと、
前記交点に少なくとも部分的に基づく、前記第1の複数のフィールドのフィールドと前記第2の複数のフィールドのフィールドとの間の一致度の推定に少なくとも部分的に基づき、前記第1の列と前記第2の列との間の結合パスを識別するステップと、
を含むコンピュータ実装方法。
[請求項10]
前記第1および第2の列に共通のデータ型に少なくとも部分的に基づき、前記第1および第2の確率的計数構造を形成するために、前記第1の列および前記第2の列を選択するステップをさらに含む、
請求項9に記載のコンピュータ実装方法。
[請求項11]
前記第1および第2の列のための前記一致度の推定を2つ以上の付加的な列のための付加的な一致度の推定と少なくとも比較することにより、前記結合パスを識別するステップをさらに含む、
請求項9に記載のコンピュータ実装方法。
[請求項12]
前記第1および第2の確率的計数構造の交点を前記第1および第2の確率的計数構造の和集合から減じることにより、前記一致度の推定を行うステップをさらに含む、
請求項9に記載のコンピュータ実装方法。
[請求項13]
前記一致度の推定が、前記交点に含まれないフィールドの計数を確率的に判定することに少なくとも部分的に基づく、
請求項9に記載のコンピュータ実装方法。
[請求項14]
前記識別された結合パスに少なくとも部分的に基づき、階層を形成するステップをさらに含む、
請求項9に記載のコンピュータ実装方法。
[請求項15]
前記第1および第2の確率的計数構造において対応するバケットを少なくとも組み合わせることによって、前記交点を算出するステップをさらに含む、
請求項9に記載のコンピュータ実装方法。

Claims (15)

  1. 少なくとも1つのプロセッサと、
    命令を格納した少なくとも1つのメモリと、
    を備えるシステムであって、
    前記命令は、前記少なくとも1つのプロセッサによって実行されることに応答して、前記システムに、少なくとも、
    第1の列のデータに格納される一意の値の第1の推定計数を格納させ、
    第2の列のデータに格納される一意の値の第2の推定計数を格納させ、
    前記第1および第2の推定計数の交点を計算させ、
    前記交点に少なくとも部分的に基づいて、前記第1の列と前記第2の列との間の結合パスを識別させる、
    システム。
  2. 前記少なくとも1つのメモリは、命令を格納し、前記命令は、前記少なくとも1つのプロセッサによって実行されることに応答して、前記システムに、少なくとも、
    前記第1および第2の列の間の関連性の推定に基づいて、前記第1および第2の列のデータを選択させる、
    請求項1に記載のシステム。
  3. 関連性の前記推定は、前記第1および第2の列に共通のデータ型に少なくとも部分的に基づく、
    請求項2に記載のシステム。
  4. 前記結合パスは、前記第1および第2の列のフィールド間の一致度の推定に少なくとも部分的に基づいて識別される、
    請求項1に記載のシステム。
  5. 前記第1の推定計数は、第1の確率的計数構造に格納され、前記第2の推定計数は、第2の確率的計数構造に格納される、
    請求項1に記載のシステム。
  6. 前記確率的計数構造は、loglog、hyperloglog、ブルームフィルタまたはmin−hashの少なくとも1つを含む、
    請求項5に記載のシステム。
  7. 前記第1の推定計数は、データベーステーブルの複数の列の第1の走査を実行することによって生成される、
    請求項1に記載のシステム。
  8. 第1の列のデータに格納される一意の値の第1の推定計数を格納するステップと、
    第2の列のデータに格納される一意の値の第2の推定計数を格納するステップと、
    前記第1および第2の推定計数の交点を計算するステップと、
    前記交点に少なくとも部分的に基づいて、前記第1の列と前記第2の列との間の結合パスを識別するステップと、
    を含む方法。
  9. 前記第1および第2の列の間の関連性の推定に基づいて、前記第1および第2の列のデータを選択するステップをさらに含む、
    請求項8に記載の方法。
  10. 関連性の前記推定は、前記第1および第2の列に共通のデータ型に少なくとも部分的に基づく、
    請求項9に記載の方法。
  11. 前記結合パスは、前記第1および第2の列のフィールド間の一致度の推定に少なくとも部分的に基づいて識別される、
    請求項8に記載の方法。
  12. 前記第1の推定計数は、第1の確率的計数構造に格納され、前記第2の推定計数は、第2の確率的計数構造に格納される、
    請求項8に記載の方法。
  13. 前記確率的計数構造は、loglog、hyperloglog、ブルームフィルタまたはmin−hashの少なくとも1つを含む、
    請求項12に記載の方法。
  14. 前記第1の推定計数は、データベーステーブルの複数の列の第1の走査を実行することによって生成される、
    請求項8に記載の方法。
  15. 前記第1および第2の列のための一致度の推定と、2つ以上の追加の列のための一致度の追加の推定と、を少なくともに比較することによって、前記結合パスを識別するステップをさらに含み、
    一致度の前記推定は、前記交点に少なくとも部分的に基づく、
    請求項8に記載の方法。
JP2018141008A 2014-12-22 2018-07-27 基数推定を介した結合パスの効率的な判定 Pending JP2018190450A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/578,841 2014-12-22
US14/578,841 US10120905B2 (en) 2014-12-22 2014-12-22 Efficient determination of join paths via cardinality estimation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017533922A Division JP6381170B2 (ja) 2014-12-22 2015-12-21 基数推定を介した結合パスの効率的な判定

Publications (1)

Publication Number Publication Date
JP2018190450A true JP2018190450A (ja) 2018-11-29

Family

ID=55642809

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017533922A Active JP6381170B2 (ja) 2014-12-22 2015-12-21 基数推定を介した結合パスの効率的な判定
JP2018141008A Pending JP2018190450A (ja) 2014-12-22 2018-07-27 基数推定を介した結合パスの効率的な判定

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017533922A Active JP6381170B2 (ja) 2014-12-22 2015-12-21 基数推定を介した結合パスの効率的な判定

Country Status (6)

Country Link
US (2) US10120905B2 (ja)
EP (1) EP3238100B1 (ja)
JP (2) JP6381170B2 (ja)
CN (1) CN107251017B (ja)
SG (1) SG11201705014TA (ja)
WO (1) WO2016106246A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11138170B2 (en) * 2016-01-11 2021-10-05 Oracle International Corporation Query-as-a-service system that provides query-result data to remote clients
US10983976B2 (en) * 2016-04-18 2021-04-20 Verizon Media Inc. Optimized full-spectrum cardinality estimation based on unified counting and ordering estimation techniques
US10713244B2 (en) * 2016-05-09 2020-07-14 Sap Se Calculation engine optimizations for join operations utilizing automatic detection of forced constraints
CN106997378B (zh) * 2017-03-13 2020-05-15 上海摩库数据技术有限公司 基于Redis的数据库数据聚合同步的方法
US11651382B2 (en) * 2017-05-31 2023-05-16 Adobe Inc. User data overlap determination in a digital medium environment
GB2565539A (en) * 2017-08-11 2019-02-20 Infosum Ltd Systems and methods for determining dataset intersection
US11500931B1 (en) * 2018-06-01 2022-11-15 Amazon Technologies, Inc. Using a graph representation of join history to distribute database data
KR102061879B1 (ko) 2018-08-22 2020-01-02 국민대학교산학협력단 랜섬웨어 탐지를 위한 초경량 주소 블록 카운팅 장치 및 방법
JP7307939B2 (ja) 2018-12-12 2023-07-13 株式会社WEST inx ラッチ錠
CN110580307B (zh) * 2019-08-09 2021-09-24 北京大学 一种快速统计的处理方法及装置
ZA202100191B (en) 2020-01-20 2023-12-20 EXFO Solutions SAS Method and device for estimating a number of distinct subscribers of a telecommunication network impacted by network issues
JP7335511B2 (ja) * 2020-03-03 2023-08-30 富士通株式会社 データマッチングシステム、情報処理装置およびデータマッチング方法
US11487668B2 (en) 2021-04-06 2022-11-01 Thoughtspot, Inc. Approximate unique count
US20220398220A1 (en) * 2021-06-14 2022-12-15 EMC IP Holding Company LLC Systems and methods for physical capacity estimation of logical space units

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675714A (en) 1992-03-30 1997-10-07 Canon Kabushiki Kaisha Mode identifying method and output apparatus using such a method
JPH0934759A (ja) 1995-07-21 1997-02-07 Omron Corp チューニング情報作成装置およびチューニング情報作成方法
JPH113340A (ja) 1997-06-12 1999-01-06 Mitsubishi Electric Corp 製造履歴検索装置
US6263331B1 (en) 1998-07-30 2001-07-17 Unisys Corporation Hybrid hash join process
JP2000353163A (ja) 1999-06-11 2000-12-19 Just Syst Corp データベース処理装置、及びデータベース処理のためのプログラムが記憶された記憶媒体
US6374263B1 (en) 1999-07-19 2002-04-16 International Business Machines Corp. System for maintaining precomputed views
US7676384B2 (en) * 2000-01-18 2010-03-09 Medigenesis, Inc. System and method for the automated presentation of system data to, and interaction with, a computer maintained database
US20020029207A1 (en) * 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
AU2001288469A1 (en) 2000-08-28 2002-03-13 Emotion, Inc. Method and apparatus for digital media management, retrieval, and collaboration
US7620615B1 (en) * 2001-10-26 2009-11-17 Teradata Us, Inc. Joins of relations in an object relational database system
US8868544B2 (en) 2002-04-26 2014-10-21 Oracle International Corporation Using relational structures to create and support a cube within a relational database system
US7313559B2 (en) 2002-07-19 2007-12-25 Microsoft Corporation System and method for analytically modeling data organized according to a referenced attribute
JP2004086782A (ja) 2002-08-29 2004-03-18 Hitachi Ltd 異種データベース統合支援装置
US7895191B2 (en) * 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
US7299226B2 (en) * 2003-06-19 2007-11-20 Microsoft Corporation Cardinality estimation of joins
US7761480B2 (en) 2003-07-22 2010-07-20 Kinor Technologies Inc. Information access using ontologies
US7647293B2 (en) 2004-06-10 2010-01-12 International Business Machines Corporation Detecting correlation from data
US20060020582A1 (en) 2004-07-22 2006-01-26 International Business Machines Corporation Method and system for processing abstract derived entities defined in a data abstraction model
US7908242B1 (en) 2005-04-11 2011-03-15 Experian Information Solutions, Inc. Systems and methods for optimizing database queries
US7827179B2 (en) 2005-09-02 2010-11-02 Nec Corporation Data clustering system, data clustering method, and data clustering program
US7630967B1 (en) * 2005-11-22 2009-12-08 At&T Intellectual Property Ii, L.P. Join paths across multiple databases
WO2007131545A2 (en) 2005-12-09 2007-11-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. A method and apparatus for automatic comparison of data sequences
US20070156734A1 (en) 2005-12-30 2007-07-05 Stefan Dipper Handling ambiguous joins
US7752233B2 (en) 2006-03-29 2010-07-06 Massachusetts Institute Of Technology Techniques for clustering a set of objects
JP4880376B2 (ja) * 2006-06-14 2012-02-22 株式会社日立製作所 支援装置、プログラム、情報処理システム及び支援方法
US7831617B2 (en) 2006-07-25 2010-11-09 Microsoft Corporation Re-categorization of aggregate data as detail data and automated re-categorization based on data usage context
US7562073B2 (en) * 2006-08-02 2009-07-14 Sap Ag Business object search using multi-join indexes and extended join indexes
US7870123B2 (en) * 2006-12-01 2011-01-11 Teradata Us, Inc. Database optimizer plan validation and characterizations
US7890480B2 (en) 2008-02-11 2011-02-15 International Business Machines Corporation Processing of deterministic user-defined functions using multiple corresponding hash tables
US8005868B2 (en) * 2008-03-07 2011-08-23 International Business Machines Corporation System and method for multiple distinct aggregate queries
US8073840B2 (en) * 2008-06-17 2011-12-06 Attivio, Inc. Querying joined data within a search engine index
US8204901B2 (en) 2009-09-02 2012-06-19 International Business Machines Corporation Generating query predicates for processing multidimensional data
US9189535B2 (en) 2009-12-01 2015-11-17 International Business Machines Corporation Compensating for unbalanced hierarchies when generating OLAP queries from report specifications
CN102156933A (zh) * 2010-02-11 2011-08-17 阿里巴巴集团控股有限公司 统计电子商务交易数据的方法和统计系统
US9886483B1 (en) * 2010-04-29 2018-02-06 Quest Software Inc. System for providing structured query language access to non-relational data stores
CN102314633A (zh) 2010-06-30 2012-01-11 国际商业机器公司 用于处理数据分析的设备和方法
US8484077B2 (en) * 2010-07-21 2013-07-09 Yahoo! Inc. Using linear and log-linear model combinations for estimating probabilities of events
CA2712028C (en) 2010-08-25 2011-12-20 Ibm Canada Limited - Ibm Canada Limitee Geospatial database integration using business models
CN102890678A (zh) 2011-07-20 2013-01-23 华东师范大学 一种基于格雷编码的分布式数据布局方法及查询方法
GB2493714A (en) * 2011-08-12 2013-02-20 Nec Corp A base station, having a membership-based access mode and a non-membership-based access mode, manages a list of stored membership identifiers
US9484743B2 (en) 2012-02-16 2016-11-01 General Electric Company Power distribution network event analysis using data from different data sources
US8682885B2 (en) * 2012-05-15 2014-03-25 Sap Ag Method and system for combining data objects
US8788506B1 (en) * 2012-05-21 2014-07-22 Google Inc. Methods and systems for estimating a count of unique items
US9582553B2 (en) * 2012-06-26 2017-02-28 Sap Se Systems and methods for analyzing existing data models
US9152670B2 (en) * 2012-12-20 2015-10-06 Teradata Us, Inc. Estimating number of iterations or self joins required to evaluate iterative or recursive database queries
US9183048B2 (en) * 2012-12-20 2015-11-10 Oracle International Corporation System and method for implementing scalable contention-adaptive statistics counters
CN103049556B (zh) 2012-12-28 2016-11-09 中国科学院深圳先进技术研究院 一种海量医疗数据的快速统计查询方法
US9268801B2 (en) 2013-03-11 2016-02-23 Business Objects Software Ltd. Automatic file structure and field data type detection
JP6416194B2 (ja) * 2013-03-15 2018-10-31 アマゾン・テクノロジーズ・インコーポレーテッド 半構造データのためのスケーラブルな分析プラットフォーム
US9146979B2 (en) * 2013-06-13 2015-09-29 Sap Se Optimization of business warehouse queries by calculation engines
US20150039667A1 (en) * 2013-08-02 2015-02-05 Linkedin Corporation Incremental processing on data intensive distributed applications
US20150088925A1 (en) 2013-09-20 2015-03-26 Oracle International Corporation User interface for pivot views
US9639548B2 (en) * 2013-10-28 2017-05-02 Pivotal Software, Inc. Selecting files for compaction
CN103631911B (zh) 2013-11-27 2017-11-03 中国人民大学 基于数组存储和向量处理的olap查询处理方法
US10055506B2 (en) * 2014-03-18 2018-08-21 Excalibur Ip, Llc System and method for enhanced accuracy cardinality estimation
US9633058B2 (en) * 2014-06-16 2017-04-25 International Business Machines Corporation Predictive placement of columns during creation of a large database
US9465831B2 (en) 2014-07-18 2016-10-11 Wipro Limited System and method for optimizing storage of multi-dimensional data in data storage
US9507824B2 (en) * 2014-08-22 2016-11-29 Attivio Inc. Automated creation of join graphs for unrelated data sets among relational databases

Also Published As

Publication number Publication date
EP3238100A1 (en) 2017-11-01
US10120905B2 (en) 2018-11-06
JP2018506107A (ja) 2018-03-01
WO2016106246A1 (en) 2016-06-30
US20160179894A1 (en) 2016-06-23
JP6381170B2 (ja) 2018-08-29
US10831759B2 (en) 2020-11-10
EP3238100B1 (en) 2019-06-19
SG11201705014TA (en) 2017-07-28
CN107251017A (zh) 2017-10-13
CN107251017B (zh) 2020-09-25
US20190073398A1 (en) 2019-03-07

Similar Documents

Publication Publication Date Title
JP6381170B2 (ja) 基数推定を介した結合パスの効率的な判定
US10432639B1 (en) Security management for graph analytics
CN109416643B (zh) 应用程序迁移系统
JP6778704B2 (ja) 分散ストレージシステム上でデータを分散させること
Wang et al. Performance prediction for apache spark platform
US8595262B1 (en) Resource resolution in computing environments using directed graphs
US10698926B2 (en) Clustering and labeling streamed data
Bautista Villalpando et al. Performance analysis model for big data applications in cloud computing
JP6434154B2 (ja) トランザクションアクセスパターンに基づいた結合関係の識別
Araujo et al. Availability evaluation of digital library cloud services
US10769175B1 (en) Real-time hosted system analytics
US10747764B1 (en) Index-based replica scale-out
US11886898B2 (en) GPU-remoting latency aware virtual machine migration
Zhu et al. Bigop: Generating comprehensive big data workloads as a benchmarking framework
JP2023522882A (ja) データ品質問題の動的発見及び修正
US10326826B1 (en) Migrating an on premises workload to a web services platform
Premchaiswadi et al. Optimizing and tuning MapReduce jobs to improve the large‐scale data analysis process
Anjos et al. BIGhybrid: a simulator for MapReduce applications in hybrid distributed infrastructures validated with the Grid5000 experimental platform
US10387578B1 (en) Utilization limiting for nested object queries
US11620311B1 (en) Transformation of directed graph into relational data
US11222036B1 (en) Data warehouse access reporting
Torres et al. Storage services in private clouds: Analysis, performance and availability modeling
Xu et al. Learning to optimize federated queries
US10970196B1 (en) Semantic-aware fuzz-based functional testing
WM Ribeiro et al. OLAP parallel query processing in clouds with C‐ParGRES

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201019

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210706