JP6377622B2 - 位置情報を用いたデータのプロファイリング - Google Patents

位置情報を用いたデータのプロファイリング Download PDF

Info

Publication number
JP6377622B2
JP6377622B2 JP2015538128A JP2015538128A JP6377622B2 JP 6377622 B2 JP6377622 B2 JP 6377622B2 JP 2015538128 A JP2015538128 A JP 2015538128A JP 2015538128 A JP2015538128 A JP 2015538128A JP 6377622 B2 JP6377622 B2 JP 6377622B2
Authority
JP
Japan
Prior art keywords
value
different
values
records
fields
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015538128A
Other languages
English (en)
Other versions
JP2015537296A (ja
Inventor
アーレン アンダーソン
アーレン アンダーソン
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
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 アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2015537296A publication Critical patent/JP2015537296A/ja
Application granted granted Critical
Publication of JP6377622B2 publication Critical patent/JP6377622B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Description

関連出願の相互参照
本出願は、2012年10月22日に出願した米国特許出願第61/716,766号の優先権を主張する2013年8月2日に出願した米国特許出願第13/958,057号の優先権を主張するものである。
本明細書は、位置情報を用いてデータをプロファイリングすることに関する。
記憶されるデータセットは、さまざまな特徴が知られていないデータを含むことが多い。データセットのデータは、(「属性」又は「列」とも呼ばれる)それぞれのフィールドに関する値を有するレコードとして編成される可能性がある。フィールドの値は、文字列、数、又はフィールドに関する関連するデータ形式情報にしたがって符号化され、形式を整えられたおそらくはヌル値を含む任意のデータを含み得る。場合によっては、フィールドに関するデータ形式情報は知られているが、フィールドに現れる実際の値は知られていない可能性がある。例えば、データセット内のレコードのフィールドに関する値の範囲若しくは典型的な値、データセット内のレコードの異なるフィールドの間の関係、又は異なるフィールドの値の間の従属性が、未知である可能性がある。データプロファイリングは、そのような特徴を判定するためにデータセットのソースを検査することをともなう可能性がある。
一態様においては、概して、少なくとも1つのデータストレージシステムに記憶されたデータをプロファイリングするための方法が、データストレージシステムに接続されたインターフェースを介してデータストレージシステムに記憶されたレコードの少なくとも1つの集合にアクセスするステップと、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成するためにレコードの集合を処理するステップとを含む。処理するステップは、異なる値から構成される第1のセットのそれぞれの異なる値に関して、異なる値が現れるすべてのレコードを特定する、対応する位置情報を、集合のレコードの1又は2以上のフィールドの第1のセットに現れる異なる値の第1のセットに関して生成するステップと、1又は2以上のフィールドの第1のセットに関して、各エントリが異なる値から構成される第1のセットの異なる値及び異なる値に関する位置情報を特定するエントリの対応するリストを生成するステップと、1又は2以上のフィールドの第1のセットと異なる集合のレコードの1又は2以上のフィールドの第2のセットに関して、各エントリが1又は2以上のフィールドの第2のセットに現れる異なる値から構成される第2のセットからの異なる値を特定するエントリの対応するリストを生成するステップと、1又は2以上のフィールドの第1のセットに現れる少なくとも1つの値に関する位置情報を用いてレコードの集合の少なくとも1つのレコードの位置を特定すること、及び位置を特定されたレコードの1又は2以上のフィールドの第2のセットに現れる少なくとも1つの値を特定することに少なくとも部分的に基づいて、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成するステップとを含む。
態様は、以下の特徴のうちの1又は2以上を含み得る。
各エントリが、異なる値が1又は2以上のフィールドに現れるレコードの数のカウントをさらに特定する。
処理するステップは、特定されたカウントによって各リストのエントリをソートするステップをさらに含む。
処理するステップは、第2の異なる値のセットのそれぞれの異なる値に関して、異なる値が現れるすべてのレコードを特定する、対応する位置情報を、第2の異なる値のセットに関して生成するステップであって、1又は2以上のフィールドの第2のセットに対応するリストに関して、第2の異なる値のセットの異なる値を特定する各エントリが異なる値に関する位置情報を含む、ステップをさらに含む。
処理するステップは、異なる値のペアのそれぞれに関して、異なる値のペアが現れるすべてのレコードを特定する、対応する位置情報を、各ペアの第1の値がレコードの1又は2以上のフィールドの第1のセットに現れ、各ペアの第2の値がレコードの1又は2以上のフィールドの第2のセットに現れる、異なる値のペアのセットに関して生成するステップをさらに含む。
異なる値のペアのセットの異なる値のペアに関する位置情報を生成するステップは、第1の異なる値のセットの第1の異なる値に関する位置情報と、第2の異なる値のセットの第2の異なる値に関する位置情報との共通部分(intersection)を判定するステップを含む。
共通部分を判定するステップは、第1の異なる値に関する位置情報を用いて集合内のレコードの位置を特定するステップと、位置を特定されたレコードを用いて第2の異なる値を特定するステップとを含む。
方法は、各リストのエントリで特定された異なる値の数によって、1又は2以上のフィールドの第1のセットに対応するリスト及び1又は2以上のフィールドの第2のセットに対応するリストを含む複数のリストのグループをソートするステップをさらに含む。
処理するステップは、異なる値のペアのそれぞれに関して、異なる値のペアが現れるすべてのレコードを特定する、対応する位置情報を、各ペアの第1の値がレコードの1又は2以上のフィールドの第1のセットに現れ、各ペアの第2の値が1又は2以上のフィールドの第1のセットと異なるレコードの1又は2以上のフィールドの第2のセットに現れる、異なる値のペアのセットに関して生成するステップと、異なる値のペアのセットに関して、各エントリが異なる値のペアのセットの異なる値のペア及び異なる値のペアに関する位置情報を特定するエントリの対応するリストを生成するステップとをさらに含む。
位置情報が、異なる値が現れるすべてのレコードに関する一意のインデックス値を特定する。
位置情報が、特定の一意のインデックス値を記憶することによってその特定の一意のインデックス値を特定する。
位置情報が、位置情報に一意のインデックス値を符号化することによって一意のインデックス値を特定する。
一意のインデックス値を符号化することが、一意のインデックス値に対応するベクトル内の位置にビットを記憶することを含む。
集合が、1又は2以上のフィールドの第1のセットを含むフィールドを有するレコードの第1のサブセットと、1又は2以上のフィールドの第2のセットを含むフィールドを有するレコードの第2のサブセットとを含む。
処理するステップは、(1)一意のインデックス値が第1のサブセットのすべてのレコードに関連付けられた第1のサブセットのレコードのフィールドのインデックス値と、(2)キー値が値の第2のサブセットのすべてのレコードに関連付けられた第2のサブセットのレコードのフィールドのキー値とのマッピングを提供する情報を生成するステップであって、キー値が第2のサブセットのレコードを第1のサブセットのレコードとリンクする、ステップをさらに含む。
位置情報は、異なる値が現れるすべてのレコードに関する一意のインデックス値を特定する。
別の態様においては、概して、少なくとも1つのデータストレージシステムに記憶されたデータをプロファイリングするためのコンピュータプログラムが、コンピュータ可読ストレージ媒体に記憶される。コンピュータプログラムは、コンピューティングシステムに、データストレージシステムに接続されたインターフェースを介してデータストレージシステムに記憶されたレコードの少なくとも1つの集合にアクセスさせ、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成するためにレコードの集合を処理させるための命令を含む。処理することは、異なる値から構成される第1のセットのそれぞれの異なる値に関して、異なる値が現れるすべてのレコードを特定する対応する位置情報を、集合のレコードの1又は2以上のフィールドの第1のセットに現れる異なる値の第1のセットに関して生成することと、1又は2以上のフィールドの第1のセットに関して、各エントリが異なる値から構成される第1のセットの異なる値及び異なる値に関する位置情報を特定するエントリの対応するリストを生成することと、1又は2以上のフィールドの第1のセットと異なる集合のレコードの1又は2以上のフィールドの第2のセットに関して、各エントリが1又は2以上のフィールドの第2のセットに現れる異なる値から構成される第2のセットからの異なる値を特定するエントリの対応するリストを生成することと、1又は2以上のフィールドの第1のセットに現れる少なくとも1つの値に関する位置情報を用いてレコードの集合の少なくとも1つのレコードの位置を特定すること、及び位置を特定されたレコードの1又は2以上のフィールドの第2のセットに現れる少なくとも1つの値を特定することに少なくとも部分的に基づいて、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成することとを含む。
別の態様においては、概して、少なくとも1つのデータストレージシステムに記憶されたデータをプロファイリングするためのコンピューティングシステムが、データストレージシステムに記憶されたレコードの少なくとも1つの集合にアクセスするように構成された、データストレージシステムに接続されたインターフェースと、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成するためにレコードの集合を処理するように構成された少なくとも1つのプロセッサとを含む。処理することは、異なる値から構成される第1のセットのそれぞれの異なる値に関して、異なる値が現れるすべてのレコードを特定する対応する位置情報を、集合のレコードの1又は2以上のフィールドの第1のセットに現れる異なる値の第1のセットに関して生成することと、1又は2以上のフィールドの第1のセットに関して、各エントリが異なる値から構成される第1のセットの異なる値及び異なる値に関する位置情報を特定するエントリの対応するリストを生成することと、1又は2以上のフィールドの第1のセットと異なる集合のレコードの1又は2以上のフィールドの第2のセットに関して、各エントリが1又は2以上のフィールドの第2のセットに現れる異なる値から構成される第2のセットからの異なる値を特定するエントリの対応するリストを生成することと、1又は2以上のフィールドの第1のセットに現れる少なくとも1つの値に関する位置情報を用いてレコードの集合の少なくとも1つのレコードの位置を特定すること、及び位置を特定されたレコードの1又は2以上のフィールドの第2のセットに現れる少なくとも1つの値を特定することに少なくとも部分的に基づいて、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成することとを含む。
別の態様においては、概して、少なくとも1つのデータストレージシステムに記憶されたデータをプロファイリングするためのコンピューティングシステムが、データストレージシステムに記憶されたレコードの少なくとも1つの集合にアクセスするための手段と、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成するためにレコードの集合を処理するための手段とを含む。処理することは、異なる値から構成される第1のセットのそれぞれの異なる値に関して、異なる値が現れるすべてのレコードを特定する対応する位置情報を、集合のレコードの1又は2以上のフィールドの第1のセットに現れる異なる値の第1のセットに関して生成することと、1又は2以上のフィールドの第1のセットに関して、各エントリが異なる値から構成される第1のセットの異なる値及び異なる値に関する位置情報を特定するエントリの対応するリストを生成することと、1又は2以上のフィールドの第1のセットと異なる集合のレコードの1又は2以上のフィールドの第2のセットに関して、各エントリが1又は2以上のフィールドの第2のセットに現れる異なる値から構成される第2のセットからの異なる値を特定するエントリの対応するリストを生成することと、1又は2以上のフィールドの第1のセットに現れる少なくとも1つの値に関する位置情報を用いてレコードの集合の少なくとも1つのレコードの位置を特定すること、及び位置を特定されたレコードの1又は2以上のフィールドの第2のセットに現れる少なくとも1つの値を特定することに少なくとも部分的に基づいて、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成することとを含む。
別の態様においては、概して、少なくとも1つのデータストレージシステムに記憶されたデータをプロファイリングするための方法、コンピュータ可読媒体、及びシステムが、データストレージシステムに接続されたインターフェースを介してデータストレージシステムに記憶されたレコードの少なくとも1つの集合にアクセスするステップと、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成するためにレコードの集合を処理するステップとを含む。処理するステップは、2又は3以上のフィールドの第1のセットに関して、それぞれのエントリが集合のレコードの2又は3以上のフィールドの第1のセットに現れる異なる値の組合せ及び異なる値の組合せに関するプロファイル情報を特定するエントリの対応するリストを生成するステップと、2又は3以上のフィールドの第1のセットに現れる値の少なくとも2つの異なる組合せに関するエントリのリストからのプロファイル情報を組み合わせること、及び組み合わせたプロファイル情報に基づいて1又は2以上の指定されたフィールドのうちの少なくとも1つに現れる少なくとも1つの値に関するプロファイル情報を判定することに少なくとも部分的に基づいて、レコードの集合の1又は2以上の指定されたフィールドに現れる値を特徴付ける結果情報を生成するステップとを含む。
態様は、以下の利点のうちの1又は2以上を含む可能性がある。
一部のデータプロファイリング手順は、データセットのレコードのドメイン(domain)の異なる値のセンサスをまとめることによってデータセットのデータ品質の測定値を計算し、「ドメイン」が、そのデータセットのレコードの1若しくは2以上のフィールド、フィールドの組合せ、又はフィールドの一部分からなる。センサスがドメインに関してまとめられるとき、そのドメインに関する異なる値のセットを数え上げ、それぞれの異なる値を有するレコードの数のカウントを含むセンサスデータが記憶される。例えば、センサスデータは、各値のカウントのエントリが選択されたドメインに現れる異なる値とその異なる値が選択されたドメインに現れるレコードの数のカウントとを含む、選択されたドメインに関する値のカウントのエントリのリストとして構成される可能性がある。一部の実施形態においては、各フィールドが、別々のドメインである。一部の実施形態においては、センサスデータは、単一のデータセットに記憶され、任意で、高速なランダムアクセスのためにフィールドによってインデックス付けされ、一方、その他の実施形態においては、センサスデータは、例えば、各フィールドにつき1つずつ複数のデータセットに記憶される可能性がある。
データ品質の測定値は、異なる値の数及び分布、指定された検証規則にしたがって妥当である値又は妥当でない値の数及び分布、1又は2以上のフィールドの別のセットの値が固定されたままにされる(「セグメンテーション(segmentation)」とも呼ばれる)ときの1又は2以上のフィールドの1つのセットの値の数及び分布、並びに2又は3以上のフィールドの値の間の相関(「関数従属性」とも呼ばれる)を含み得る。特定の測定値が計算されることになる度に、好適なセンサスが、データセットのデータを処理することによって取得され得る。しかし、フィールドの組合せに関するデータ品質の測定値を計算するときなどのいくつかの場合には、データの全体が再び処理されることを要求する代わりに、フィールドのその組合せに関する計算は、個々のフィールドに関して既に計算された記憶されたセンサスデータを用いて実行され得る。
一部の実施形態において、選択されたドメインに関するセンサスデータは、センサスデータのそれぞれの異なる値に関して、その異なる値が選択されたドメインに現れるあらゆるレコードを特定する位置情報を含む。位置情報は、データの全体に対して一回だけ計算される必要がある。フィールドの組合せを含むデータ品質の測定値、特に、複数のフィールドを組み込むセグメンテーション、相関、又は検証規則を含む測定値のその後の評価は、新しいセンサスデータを計算するためにデータセットのレコードを記憶するソースに戻ることなく位置情報を有する既存のセンサスデータから直接計算され得る。これは、さらなるデータ品質の測定値の計算を大幅に効率的にする。さらに、位置情報を有するセンサスデータは、データ品質の結果へとドリルダウンするため、つまり、データ品質の結果に関連する基礎を成すデータレコード、例えば、妥当でないレコード、又は主キーフィールドの重複するレコードを返すために使用され得る。異なるデータセットのドメインがプロファイリングされている場合、インデックスマップが、異なるデータセットのレコードを関連付けるために結合操作を実行する必要を回避するために使用され得る。
本発明のその他の特徴及び利点は、以下の説明及び請求項から明らかになるであろう。
データをプロファイリングするためのシステムブロック図である。 データプロファイリング手順のための動作及びデータの概略図である。 データプロファイリング手順に関するフローチャートである。 関数従属性の結果に関して生成されるデータの概略図である。 組み合わされたセンサスの生成のための手順のフローチャートである。 組み合わされたセンサスの生成に関するデータの概略図である。 関数従属性を判定するための手順に関するフローチャートである。 関数従属性の情報を有する組み合わされたセンサスの例の図である。 エッジのドリルダウンの手順の概略図である。 インデックスマップに関するデータの概略図である。 関数従属性の結果に関するデータの概略図である。 ノードのドリルダウンの手順の概略図である。 セグメントセンサス及びセグメント分けされた組み合わされたセンサスに関するデータの概略図である。 セグメントキューブ(segment cube)に関するデータの概略図である。
図1は、データプロファイリング技術が使用され得る例示的なデータ処理システム100を示す。システム100は、ストレージデバイス、又はオンラインデータストリームへの接続などのデータの1又は2以上のソースを含み得るデータソース102を含み、それらの1又は2以上のソースのそれぞれは、さまざまな記憶形式(例えば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブの形式)のいずれかでデータを記憶し得る。実行環境104は、プロファイリングモジュール106及び処理モジュール108を含む。実行環境104は、UNIXオペレーティングシステムなどの好適なオペレーティングシステムの制御の下で1又は2以上の多目的コンピュータでホストされる可能性がある。例えば、実行環境104は、ローカルの(例えば、SMPコンピュータなどのマルチプロセッサシステム)、又はローカルに分散された(例えば、クラスタ若しくはMPPとして接続された複数のプロセッサ)、又はリモートの若しくはリモートに分散された(例えば、ローカルエリアネットワーク(LAN,local area network)及び/若しくは広域ネットワーク(WAN,wide-area network)を介して接続された複数のプロセッサ)、又はこれらの任意の組合せのいずれかの複数の中央演算処理装置(CPU,central processing unit)を用いるコンピュータシステムの構成を含むマルチノード並列コンピューティング環境を含み得る。
プロファイリングモジュール106は、データソース102からデータを読み、プロファイリングモジュール106及び処理モジュール108がアクセス可能であるプロファイリングデータストア110にプロファイリングサマリ情報を記憶する。例えば、プロファイリングデータストア110は、データソース102のストレージデバイス内に、又は実行環境104内からアクセス可能な別個のデータストレージシステムに実装される場合がある。プロファイリングサマリ情報に基づいて、処理モジュール108は、データをクレンジングすること、データを別のシステムにロードすること、又はデータソース102に記憶されたオブジェクトへのアクセスを管理することを含め、データソース102のデータに対するさまざまな処理タスクを実行することができる。データソース102を提供するストレージデバイスは、実行環境104のローカルにあり、例えば、実行環境104を実行するコンピュータに接続されたストレージ媒体(例えば、ハードドライブ112)に記憶される場合があり、又は実行環境104のリモートにあり、例えば、(例えば、クラウドコンピューティングインフラストラクチャによって提供される)リモート接続若しくはサービスを介して実行環境104を実行するコンピュータと通信するリモートシステム(例えば、メインフレーム114)でホストされる場合がある。
プロファイリングモジュール106は、データソース102に記憶されたデータを読み、例えば、関数従属性又はセグメンテーションに基づいてデータ品質の測定値を計算するために有用な分析を含むさまざまな種類の分析を効率的に実行することができる。一部の実施形態において、分析は、データソース102に記憶されたデータセットのレコードのそれぞれの個々のフィールドに関するセンサスデータを生成し、そのセンサスデータをプロファイリングデータストア110に記憶することを含む。上述のように、ドメインに現れるそれぞれの異なる値に関するエントリを含む特定のデータセットのレコードの特定のドメインに関するセンサスデータは、異なる値が現れる特定のデータセット内のレコードのそれぞれの位置を(例えば、レコードインデックス値によって)特定する位置情報も含み得る。1つの実施形態においては、関連する値に関するセンサスエントリの生成中に、ベクトルが、関連する値を有するあらゆるレコードの一意レコード識別子と入力される。データセットの元のデータのレコードが一意レコード識別子を持たない場合、例えば、各レコードに順番に番号を割り振ることによってプロファイリング手順の一部としてそのようなレコード識別子を生成し、レコードに追加する。そして、この位置情報は、センサスエントリに含められる場合があり、以下でより詳細に説明されるように、関数従属性又はセグメンテーションに関する計算のためのさらなる組み合わされたセンサスデータの生成で使用される場合がある。
位置情報を記憶するためのその他の実施形態が可能であり、それらの実施形態の一部は性能上の利点及び/又は縮減された記憶空間をもたらし得る。例えば、ビットベクトルが、レコード識別子のベクトルの代わりに使用される。ビットベクトルの各ビットが、特定のレコード識別子に対応し、ビットは、対応するレコード識別子を有する関連するレコードが関連する値を有する場合に設定される。ビットベクトルのビットとレコード識別子との間の対応は、明示的であるか又は暗黙的である可能性がある。例えば、ビットを対応するレコード識別子に関連付ける、1対1であるとは限らない明示的なマッピングが存在する場合があり、又は各ビットの位置がレコードの位置の連続した順序付けに対応する暗黙的なマッピングが存在する場合がある。一部の実施形態において、結果として得られるビットベクトルは、ストレージのさらなる節約のために圧縮される。
位置情報は、ビットベクトルのベクトルで記憶される場合もある。例えば、ビットベクトルの各ビットは、おそらくは、ビットの位置と、相互参照付きのファイルに記憶されたレコード識別子との間のマッピングによって関連するレコード識別子に対応する。ビットベクトルのベクトルのビットベクトルエントリのベクトルインデックスが、フィールド内のワード数又は(例えば、複数のデータパーティションで並列にセンサスデータを処理するときに)値が現れるデータパーティションなどの補足情報を暗黙的に符号化するために使用される場合がある。明示的な補足情報が、ビットベクトルに関連するか、又はビットベクトルのベクトルのビットベクトルエントリに関連するさらなるフィールドで指定される場合がある。この補足情報は、後で使用するために値を含むレコードのセットを区別するために使用される。
図2Aは、データプロファイリングの手順の過程で実行される処理と、データソース102からの1又は2以上のデータセットに対してプロファイリングモジュール106において実行される手順の過程で受信され、生成されるデータの例を示す。図2Bは、手順に関するフローチャートである。図2A及び2Bを参照すると、プロファイリングモジュール106が、プロファイリングするデータセット201のそれぞれが各データセットのレコードのそれぞれに関するインデックス値を有することを保証するためのインデックス付け処理200を実行し、インデックス値は、生成される位置情報によって参照され得る各レコードに関する明確に定義された(well-defined)位置を与える。例えば、特定のデータセットに関するインデックス値は、各レコードに、そのレコードのテーブルの行番号、区切られたファイル内の位置、記憶アドレス、主キーの値、又はレコードの任意のその他の一意の属性に基づいて割り振られる(例えば、1から始まり、1ずつインクリメントされる)インクリメントされる整数である場合がある。割り振られたインデックス値は、例えば、データソース102の元のデータセット内の各レコードに関するフィールドとして値を追加することによってインデックス付けされたデータセット203を提供するために各レコードに明示的に追加されるか、又はデータソース102若しくはプロファイリングデータストア110に新しいデータセットとして記憶される場合がある。元のデータセットがインデックスとして使用され得るフィールドを既に含む場合、インデックス付け処理200は、省略されるか、又はインデックスとしてそのフィールドを使用する能力を検証するためにのみ実行される可能性がある。インデックス付け処理200は、以下でより詳細に説明されるように、1つのデータセットに関するインデックスと別のデータセットのインデックスとの間の対応を提供するインデックスマップを生成することを含み得る。
プロファイリングモジュール106は、選択された1セットのドメインのそれぞれに関して位置情報を有するセンサスデータを計算するセンサス処理205を実行する。この例において、各ドメインは、単一のフィールドである。したがって、この例において、センサス処理205の結果は、それぞれが特定のデータセットの特定のフィールドに関するセンサスデータ207の複数のセットである。各データセットは、プロファイリングのために指定された1セットのフィールドを有する場合があり、又はデフォルト設定により、各データセットのすべてのフィールドがプロファイリングされる場合がある。その他の例において、ドメインは、フィールドの一部分であるか、複数のフィールド又はフィールドの部分の組合せである場合がある。(「センサス」とも呼ばれる)特定のドメインに関するセンサスデータの各セットは、ドメイン内に現れる異なる値、特定の値が現れたレコードの数のカウント、及びどのレコードに特定の値が現れたかを特定する関連する位置情報を含むエントリのリストを含む。一部の実施形態において、カウントは、必要とされるときに位置情報から導出され得る場合がある(例えば、値が現れたレコードの位置を特定するビットベクトルのビットの合計が、値が現れたレコードの数をもたらす)のでセンサスに明示的に含まれない。一部の実施形態において、プロファイリングモジュール106は、ドメイン内の値の位置を修飾する又は特徴付ける情報などの、位置情報を拡張する追加の情報を蓄積する。
プロファイリングモジュール106は、潜在的に、センサスデータ207のセットが生成された後、長い時間が経ってから受信される場合がある、所望のマルチドメインデータプロファイリングの結果を指定する入力(例えば、ユーザ入力)を受信する。その入力により、計算に含まれることになる複数のドメインも(明示的又は暗黙的に)指定される。マルチドメインデータプロファイリングの結果を計算するために、プロファイリングモジュール106は、指定されたドメインのそれぞれのフィールドに関するセンサスの集合209を選択する。1つの種類のマルチドメインデータプロファイリングの結果は、同じレコードの(つまり、同じインデックスの)それぞれのフィールドに現れる値の一意のタプルを指定する「組み合わされた(纏められた)センサス」である。その他の種類のマルチドメインデータプロファイリングの結果は、関数従属性の結果又はセグメンテーションの結果を含み、関数従属性の結果又はセグメンテーションの結果のそれぞれは、以下でより詳細に説明されるように、組み合わされたセンサスの計算から始まる場合がある。
任意で、プロファイリングモジュール106は、センサス及びそれぞれのセンサスのセンサスエントリが現在のマルチドメインデータプロファイリングの結果又はその後のマルチドメインプロファイリングの結果の計算をより効率的な順番になるように集合209をソートする場合がある。この例において、それぞれのセンサスは、現れた回数によって降順にエントリが現れるようにソートされ(210)、したがって、最も頻度の高い値が、最初に現れる。加えて、一部の実施形態において、エントリは、現れた回数が同じである別の値よりもデータセット内で先に最初に現れる値がソートされたセンサスにおいて先に現れるように位置情報によってさらに細かくソートされる場合がある。これは、2つの異なる値に関して、一方の値の最初の登場(つまり、小さい方のレコードインデックス)が他方の値の最初の登場とは異なるはずであるので、センサスの値に明確に定義された順序付けを与える。センサスの集合209は、それぞれのセンサスにおける異なる値の数によってやはりソートされ(220)、最も頻度の高い値のカウントによって降順にさらに細かくソートされる。このソートは、(異なる値の数で)より短いセンサスが先に現れ、異なる値の数が同じである2つのセンサスに関しては、最も頻度の高い値がより大きなカウントを有する方のセンサスが先に現れるソートされたセンサスのソートされた集合225をもたらす。関数従属性に対応するマルチドメインデータプロファイリングの結果に関しては、異なる値の数が比較的少ないフィールドの間に関数従属性がより存在しやすい。異なる値の数が増えるにつれて、フィールドは、主キーなどの一意属性、又はその他の値と疑似相関を有する傾向がある、重複する値の数が少ない属性を表す可能性がより高くなる。より短いセンサスをより長いセンサスよりも前に順序付けすることによって、関数従属性の分析に関連性がある可能性がより高いフィールドを、より速く処理する。場合によっては、ソートされた集合225のセンサスのすべてのエントリのすべてを処理し続けることなく結果が計算され得る停止条件を認識することさえあり得る可能性がある。関数従属性以外のマルチドメインデータプロファイリングの結果に関しては、結果を計算するためにソートされた集合225全体を処理する必要がある場合があり、その場合、順序付けは必要ない場合がある。この例においては、順序付け210が、順序付け220の前に行われるが、その他の例においては、順序付け220が、順序付け210の前に行われる場合がある。
プロファイリングモジュール106は、ソートされた集合225のセンサスエントリを逐次的に読み込み、その他のセンサスエントリからの情報と組み合わせ、組み合わされたセンサス240をもたらす、組み合わされたセンサスの生成処理230を実行する。異なるセンサスエントリからの情報を効率的に組み合わせるために、プロファイリングモジュール106は、以下でより詳細に説明されるように、位置情報を使用して、組み合わされたセンサス240の生成に関連性があるインデックス付けされたデータセット203からのレコードの位置を特定する。組み合わされたセンサスの生成処理230が複数回、実行され得る。例えば、組み合わされたセンサス240のタプルが3つ以上のフィールドからの値を含む場合、そのタプルに関して組み合わされたセンサス240のセンサスエントリを構築するとき、プロファイリングモジュール106は、最初の実行の際に、フィールドのうちの2つに関する一対(pairwise)の組み合わせを実行する場合があり、その後の実行の際に、センサスエントリが、既に形成された組み合わされたセンサス240のバージョンからの任意のエントリと組み合わされる場合がある。
図3を参照すると、プロファイリング手順の例が、示されている。A−元のデータセット300が、A−インデックス付けされたデータセット310を提供するために(インデックス付け処理200において)インデックス付けされる。A−元のデータセット300は、3つの示された列に対応する3つのフィールドを有し、6つの示された行に対応する6つのレコードを有し、データセットの第1のレコードは、3つのフィールドに関して値「d」、「q」、「d8」をそれぞれ有する。(「1」から始まる)増加する整数値を有するサロゲートキーフィールドが、A−インデックス付けされたデータセット310の各レコードを一意に特定するための位置インデックスとしてレコードの初めに追加されている。この例において、プロファイリングモジュール106は、A−元のデータセット300の初めの2つのフィールドに関してセンサスのソートしたA−センサス集合320を計算する。第1のフィールド(すなわち、第1の列)は、「g」と名付けられ、第2のフィールド(すなわち、第2の列)は、「f」と名付けられ、第3のフィールドの名前は、この例においてはプロファイリングされていないのでこの例においては無関係である。したがって、A−センサス集合に2つのセンサス、gフィールドに関するセンサス(「g−センサス」と呼ばれる)及びfフィールドに関するセンサス(「f−センサス」と呼ばれる)が存在する。A−センサス集合320のそれぞれのセンサスは、エントリのソートされたリストを含み、各エントリは、値、その値が現れた数のカウント、及びその値に関する位置情報を示すレコードインデックスのベクトルを含む。したがって、f−センサスに関してスペースで区切られた文字列「q 3 A[1,4,5]」によって示されるこの例の第1のセンサスエントリは、値「q」がA−元のデータセット300に3回現れ、ベクトル「A[1,4,5]」によって示されるようにA−インデックス付けされたデータセット310のレコード1、4、及び5に現れることを示す。それぞれのフィールドに関するセンサスが、値のカウントによって降順にソートされ、位置情報ベクトルの第1のインデックスによって昇順にさらに細かくソートされる。A−センサス集合320のセンサスのセットは、それぞれのセンサスにおける異なる値の数でさらにソートされ、最も短いセンサスを最初に配置し、これは、この例においては、f−フィールドに関するセンサスをg−フィールドに関するセンサスの前に置く。
プロファイリングモジュール106は、組み合わされたセンサス生成処理230を実行して組み合わされたセンサス330を計算する。この例において、組み合わされたセンサスのタプルは、値のペア(組合せ)である。スペースで区切られた文字列「g f d q 2 3 2 A[1,4]」によって示されるこの例の組み合わされたセンサスの第1のエントリは、ペアのうちの第1のフィールドが「g」であり、ペアのうちの第2のフィールドが「f」であり、第1のフィールドの値が「d」であり、第2のフィールドの値が「q」であり、第1の値が2回現れ、第2の値が3回現れ、第1のフィールドの第1の値(すなわち、g−値「d」)と第2のフィールドの第2の値(すなわち、f−値「q」)との両方を含むレコードの数が2であり、ベクトル「A[1,4]」によって示されるようにA−インデックス付けされたデータセット310のこれらのレコードが1及び4であることを示す。そして、組み合わされたセンサス330が、以下でより詳細に説明されるように、さまざまなデータプロファイリングの分析結果を計算するために使用され得る。
一部の実施形態においては、上述の例に関する関数従属性の結果340などの組み合わされたセンサスに基づく結果が、ユーザインターフェースでグラフィカルに表示され得る。それぞれの円は、フィールドのラベル「g」及び「f」の下に異なる値を含み、値のカウントが、円の横(g−フィールドに関しては左、f−フィールドに関しては右)に示される。円の間のそれぞれの有向辺は、それぞれの端の値のペア(組合せ)を示し、辺の上のカウントは、ペアを共有するレコードの数である。さまざまなカウントから、個々の値及びフィールドのペアの相関の評価が、プロファイリングモジュール106によって決定され、表示され得る。この例において、プロファイリングモジュール106は、「gがfを決定する」という評価を表示する。
一部の実施形態において、組み合わされたセンサスの生成処理230は、フィールドに関する個々のセンサスに現れる異なる値のデカルト積を形成する必要なしに2つのフィールドに一緒に(つまり、同じレコードに)現れる値の異なるペアの組み合わされたセンサスを生成することができる。そのようなデカルト積は、例えば、そのようなデカルト積から形成された値のすべてのペアに関する位置情報を取得し、両方の値を共有するレコードの位置を特定するために関連する位置情報の共通部分(intersection)を計算することによってそのような組み合わされたセンサスを計算するために使用され得る。しかし、完全なデカルト積を使用するこのプロセスは、多くのペアがそれらのペアの位置情報に重なりがない可能性があるので非効率的である場合がある。図4のフローチャート及び図5の概略図は、ペアの位置情報の重なりを確かに共有するペアを効率的に特定し、組み合わせ、共有しないペアを回避することが可能な、組み合わされたセンサスの生成処理230で使用され得る手順を示す。この例において、位置情報は、レコードインデックスのベクトルとして示され、説明されるが、ベクトルに対する計算は、位置情報のその他の表現を用いて実行される場合がある。例えば、f−値の位置情報「f−A[]」及びg−値の位置情報「g−A[]」に関して、f−A[]及びg−A[]の共通部分は、それぞれのビットベクトルに対する論理積(AND)演算を実行することによって、両方のベクトルがビットベクトルとして表されるようにして実行され得る。
図4のフローチャートのステップは、フィールドf及びgに関して、概略を上述したように、A−センサス集合320が準備された後に開始され、第1のセンサス(この例においては、f−センサス)のソートされたエントリに対して繰り返し実行される。プロファイリングモジュール106が、f−センサスの次のセンサスエントリ(つまり、第1の繰り返しのための第1のセンサスエントリ)を読み込む(400)。現在のエントリのf−値に関する関連する位置情報から、その値が現れる第1のレコードが、そのレコードのg−フィールドに存在する対にされたg−値を見つけるためにA−インデックス付けされたデータセット310において検査される(410)。プロファイリングモジュール106が、そのg−値に関連するg−センサスから位置情報を取得する(420)。結果として得られるg−値の位置情報(g−A[])が、ペアを共有するすべてのレコードを特定する情報(f-A[] AND g-A[])を記憶し(430)、現在のf−値を有するがg−値は異なるレコードの残りのセットに関して位置情報を更新する情報(f-A[] = f-A[] AND (NOT g-A[]))を記憶する(440)ためにf−値の位置情報(f−A[])と組み合わされる。ペアにされた値が、組み合わされたセンサス330に書き込まれる(450)。残りのセットに関する位置情報が、その位置情報が空であるかどうかを判定するために検査される(460)。その位置情報が空でない場合、残りのセットの第1のレコードが、A−インデックス付けされたデータセット310から現在のf−値と対にされた別のg−値を見つけるために検査される(410)。残りのセットに関する位置情報が空である場合、f−センサスからの次のセンサスエントリが、別の繰り返しを実行するために読み込まれる(400)。f−センサスのエントリのすべてが手順の完全な繰り返しで読み込まれ、処理された後、組み合わされたセンサス330は、完成する。
図5は、図4の手順の例を示し、矢印は、部分的に完成された組み合わされたセンサス330’が存在するところまでプロファイリングモジュール106によって実行された一連の処理を示す。そして今度は、以前の整列に基づいて最も頻度の高いf−値であるf−値「q」を有する第1のエントリから開始し、A−センサス集合320内のf−センサスのセンサスエントリが、考慮(調査)される。位置情報ベクトルの第1の要素「1」が、A−インデックス付けされたデータセット310の対応するレコードのg−フィールドの値を検査するために使用される(522)。この例においては、対応するレコード(すなわち、インデックス位置1のレコード)で、g−フィールドは、値「d」を有する。値「d」に関するg−センサスエントリが、位置情報ベクトルによって示される値「d」を共有するレコードの完全なセットを取得するために検査される(524)。f−値「q」に関する位置情報ベクトルが、レコードの2つのセット、すなわち、値「q」及び「d」の対を有するレコードのセット527(g AND f)と、値「q」を有するが「d」は持たないレコードのセット528(f AND NOT g)とに関する位置情報を形成するためにg−値「d」に関する位置情報と比較される(526)。共有された値に関する位置情報が、組み合わされたセンサス330’の適切なエントリにベクトルとして記憶される(529)。この例において、組み合わされたセンサスのエントリは、各値に関するソース、値及びそれらの値のセンサスのカウント、両方の値を含むすべてのレコードに関する位置情報、並びにそのようなレコードの数からなる。エントリ「g f d q 2 3 2 A[1,4]」は、g−値「d」が2回現れ、f−値「q」が3回現れ、位置インデックス1及び4に対応する、両方の値を共有する2つのレコードが存在することを示す。
プロファイリングモジュール106は、値「q」を有するレコードの残りのセット528を処理する。位置情報ベクトルの第1の(及び唯一の)要素「5」が、A−インデックス付けされたデータセット310の対応するレコードのg−フィールドの値を検査するために使用され(540)、検査した結果として、g−フィールドに関する値「b」が得られる。値「b」のg−センサスエントリが、セット528と比較される位置情報A[5]を取得するために検査される(544)。これらのセットの共通部分が計算され(546)、組み合わされたセンサス330’の適切なエントリに記憶される。セットの間の差は、この場合は空であるが、空でなかったならば、手順が、f−フィールドのこの特定の値「q」と対にされたg−フィールドのさらなる値を見つけるために繰り返されることになる。f−値「q」を有するレコードのセットが検査し尽くされたとき、手順はf−センサスの次のエントリに移り、プロセスが繰り返される。
図6A及び6Bを参照すると、プロファイリングモジュール106は、フィールドのペアの値の相関(「関数従属性」)を判定するための手順を実行し、関数従属性の結果を定量化する相関の割合(correlation fraction)を含めるように組み合わされたセンサスを拡張することができる。潜在的な関数従属性に関して分析されるフィールドのペアの組み合わされたセンサスが、上述のように、フィールドに関する個々のセンサスに基づいて計算される(600)。組み合わされたセンサスのエントリに含まれる値のそれぞれのペアのそれぞれの値に関して、その値を有するレコードの数(「値のカウント」)に対する値のその対を有するレコードの数(「対のカウント」)の比を表す「相関の割合」が、計算される(610)。プロファイリングモジュール106は、拡張した組み合わされたセンサス615を生成するためにエントリに相関の割合(この例においては「1」及び「2/3」)を記憶する。例えば、組み合わされたセンサスエントリ「g f d q 2 3 2 A[1,4]」は、フィールド「g」の値「d」を有する2つのレコード、フィールド「f」の値「q」を有する3つのレコード、及びレコードのインデックス1及び4によってA−インデックス付けされたデータセット310内で位置を特定される値の対「d q」を有する2つのレコードが存在することを示す。(「q」とペアにされた(組み合わされた))g−値「d」に関する相関の割合は、2/2=1であり、一方、(「d」とペアにされた(組み合わされた))f−値「q」に関する相関の割合は、2/3である。
それぞれの値に関する相関の割合が、どの値が閾値で相互に関連付けられるかを判定する(620)ためにその閾値と比較される。例えば、相関の割合が閾値0.95を超える場合、100個の事例のうちの5つ未満が、現在の値とは異なるペアにされた値を有する。ここでは、「d」が0.95の閾値で「q」に相互に関連付けられるが、その逆には相互に関連付けられず、つまり、g−値が「d」である場合、対応するf−値は「q」であるに違いないが、f−値が「q」である場合は、対応するg−値が「d」である確率は2/3しかない。
所与の閾値で相互に関連付けられる(フィールドのうちの1つの)値に関連付けられるレコードの総数がカウントされ(630)、所与の閾値で相互に関連付けられるデータセット全体におけるレコードの割合を判定する(640)ためにレコードの総数によって割られる。この割合が第2のフィールドの相関の閾値を超える場合、フィールド全体が、他方のフィールドに相互に関連付けられると言われる。一部の実施形態において、フィールドの相関の決定に寄与するレコードのカウントは、値の事例の数が閾値未満であるときのレコードのカウントを除外する場合があり、又はそのような値に基づく相関を潜在的に疑わしいものとして報告する場合がある。これは、例えば、値の相手の値に取るに足りないくらいに相互に関連付けられるその値の単一の事例のみが存在するときのように、事例の数が少なすぎる場合、相関は偶然であるか又は取るに足りない可能性があるからである。
フィールドの相関の計算が、逆方向に相互に関連付けられるレコードの割合を決定するために他方のフィールドを用いて繰り返される。この例においては、g−値のすべてがf−値に個々に相互に関連付けられ、したがって、相互に関連付けられるレコードの総数は6であり、レコードの総数は6であり、レコードのうちの相互に関連付けられる割合は6/6=1である。結論は、「g」が「f」を決定するということであり、つまり、g−値の知識が、(このフィールドの相関の閾値で)対応するf−値の知識を保証する。対照的に、f−値は相関の閾値を超えず、したがって、f−フィールドはg−フィールドと相互に関連付けられない。
図7を参照すると、関数従属性の結果340からA−問い合わせ結果710へのエッジ(edge)のドリルダウン(700)が、レコードに現れる値のペアを示す表示された結果340のエッジによって表される、それらのレコードに関連するより詳細な情報を示すために(例えば、グラフィカルユーザインターフェースでの表示された結果340とのユーザインタラクションに応じて)実行される。エッジによって現れる値のペア「d q」が、そのペアに関する位置情報を取得するために、(現れる頻度によってソートされ、位置情報の第1のインデックスによってさらに細かくソートされ、組み合わされたセンサス330と同じである)組み合わされたセンサス330’’内で検査される(725)。そして、位置情報が、A−インデックス付けされたデータセット310から関連するレコードを取得する(735)ために使用される。これらのレコードが、A−問い合わせ結果710で表示される(745)。
前例においては、同じデータセットの2つのフィールド(g及びf)の相関が計算された。キーフィールドによってリンクされた異なるデータセットの2つのフィールドの相関の計算が、図8A及び8Bに示される。A−元のデータセット800及びB−元のデータセット820は、3つのフィールドをそれぞれ有し、共通のキーフィールドである1つのフィールドをそれぞれ有する。共通のキーフィールドのキー値は、必ずしも一意でない。しかし、キーフィールドのキー値は、それぞれのキーフィールドの同じキー値によって2つのデータセットの対応するレコードを関連付けるようにする。A−元のデータセット800の各レコードの一意識別子(A−record_idと呼ばれる)が、A−インデックス付けされたデータセット810を生成するために各レコードにフィールドとして追加される。同様に、B−元のデータセット820の各レコードの一意識別子(B−record_idと呼ばれる)が、B−インデックス付けされたデータセット830を生成するためにフィールドとして追加される。インデックスマップ840が、各A−record_idを同じレコードのキーフィールドのキー値と関連付けるために使用される。したがって、インデックスマップ840は、A−インデックス付けされたデータセット810の最初の2つの列のコピーである。インデックスマップ840は、例えば、プロファイリングデータストア110内のファイルにA−インデックス付けされたデータセット810とは分けて記憶される場合がある。
この例において、キーフィールドは、(図8AにおいてA−元のデータセット800の第1の列に示された)A−元のデータセット800の主キーであり、(図8AにおいてB−元のデータセット820の第2の列に示された)B−元のデータセット820の外部キーである。A−record_idの値は、そのキーフィールドが主キーであるので(そのキーフィールドに対するB−record_idの値の代わりに)そのキーフィールドへのマッピングのために選択され得る。しかし、データセットは、各データセットのキーフィールドとして指定された何らかのフィールドが存在する限り、そのような主キー/外部キーの関係を有することを必ずしも要求されない。インデックスマップ840は、両方のデータセットが2つの異なるレコードに繰り返されたキーフィールドの値を有するこの例のように、A−データセットに重複した主キーの値が存在する可能性があるので有用である。インデックスマップ840を用いて、プロファイリングモジュール106は、両方のデータセットが位置情報を指定するための参照の共通の枠組みを持つように、A−record_idの値を含む新しいフィールドを有するB−インデックス付けされたデータセット830の新しいバージョンを生成する。そのようにするために、プロファイリングモジュール106は、B−インデックス付けされたデータセット830のキーフィールドの値をインデックスマップ840のキー値と比較して、対応するA−record_idの値との任意の数の一致を見つける。この例においては、(外部キーの値「k4」を有する)B−インデックス付けされたデータセット830からの1つのレコードが、2つの異なるA−record_idの値にマッチングされ(845)、プロファイリングモジュール106が、B−インデックス付けされたデータセット830のレコードにA−record_idを付けるときに2つの対応するレコード(インデックスとして「A4」が追加された1つのレコード及びインデックスとして「A6」が追加されたもう1つのレコード)を追加して(847)B/A−インデックス付けされたデータセット850を生成する。B−インデックス付けされたデータセット830のその他のレコードは、インデックスマップ840の単一のA−record_idの値にマッチングされ、したがって、B/A−インデックス付けされたデータセット850に追加されるそれぞれの単一のレコードにそれぞれ対応し、対応するA−record_idの値がインデックスとして追加される。
ここで図8Bを参照すると、A−センサス860が、(第1のフィールドの)A−record_idの値に関連して位置情報が参照されるようにして、A−インデックス付けされたデータセット810の第3のフィールドに関して計算され、B−センサス870が、インデックスマップ840を用いて追加された(第1のフィールドの)A−record_idの値に関連して位置情報がやはり参照されるようにして、B/A−インデックス付けされたデータセット850の第5のフィールドに関して計算される。2つのセンサスの位置情報が、(A−センサスからのフィールドが「A」とラベル付けされ、B−センサスからのフィールドが「B」とラベル付けされる)センサスによって示されるフィールドのペアに関する組み合わされたセンサス880を計算するために上述のように組み合わされ(875)、組み合わされたセンサス880は、続いて、AフィールドとBフィールドとが相互に関連付けられないと結論づける関数従属性の結果890を表示するために使用される。
図9を参照すると、関数従属性の結果890からのノードのドリルダウン(900)が、ノードで表示された値によって表されるレコードに関連するより詳細な情報を示すために(例えば、グラフィカルユーザインターフェースでの表示された結果890とのユーザインタラクションに応じて)実行される。Bフィールドからの「p」値を表示するノードの選択に応じて、A−元のデータセット800とB−元のデータセット820との両方からの、そのノードに対応するレコードが取得され、ノード検索結果910で表示される。ドリルダウンは、まず、組み合わされたセンサス880において「p」値を検査(検索)し(915)、(Bフィールドに関して「p」を含む)それぞれの一致するエントリを見つけることによって達成される。これらのエントリに関する位置情報が、論理和(union)を用いて(A−record_idの値に関連する)位置情報A[1,3,4,6]を生成して組み合わされる。そして、これらの位置のそれぞれが、それらの位置の任意のレコードを取得するためにA−インデックス付けされたデータセット810とB/A−インデックス付けされたデータセット850との両方で検査される(925)。A−インデックス付けされたデータセット810の取得されたレコードは、ノード検索結果910に表示され(935)、「A」とラベル付けされる。B−元のデータセット820の取得されたレコードは、同じB−record_idの値を共有するすべてのレコードを見つけるために比較され、共有するすべてのレコードは、ノード検索結果910でそれらのレコードのうちの1つだけが表示されるように重複を排除される(945)。この例において、A−record_idの値A4及びA6を有するレコードは、同じB−record_idの値B2を有する。A−元のデータセット800からのレコードの重複するキーフィールドの値は、単一のB−元のデータセット820のレコードに対応する複数のA−元のデータセット800のレコードを持つことによってノード検索結果910に示される。
図10に、セグメンテーションを用いるセンサスの計算の例が、示される。A−元のデータセット1000は、3つのフィールドf、g、及びhを有する。A−元のデータセット1000の各レコードの一意識別子(record_idと呼ばれる)が、A−インデックス付けされたデータセット1010を生成するために各レコードにフィールドとして追加される。3つのフィールドのそれぞれに関する位置情報を有するソートされたセンサスの集合1020が、計算される。一部の実施形態において、システム100は、f−フィールドとg−フィールドとの組合せを指定された値を含むように制限することによって与えられるセグメント(つまり、データセットのすべてのレコードよりも少ないレコードのサブセット)のh−フィールドのデータプロファイル(すなわち、データの分布)はどうであるか?などの業務上の疑問(business question)に答えるためにユーザが問い合わせ(検索)することを可能にし得る。例えば、f−フィールドが、f−フィールドに関するあり得る値「f」又は「m」をそれぞれ有するレコードによって性別を示す場合があり、一方、g−フィールドは、g−フィールドに関するあり得る値「p」又は「q」をそれぞれ有するレコードによって「国外(foreign)」又は「国内(domestic)」を示す場合がある。f−及びg−フィールドでセグメント分けされた(例えば、センサスによって示される)データプロファイルは、「国外 男性」又は「国内 女性」に関してh−フィールドの最も頻度の高い値は何であるか?のような疑問に答えることを容易にすることができる。
集合1020は、A−元のデータセット1000のレコードのすべてを処理することを必要とせずに、セグメント分けされたプロファイルを計算するために使用され得る。セグメントセンサス1030が、f−フィールド及びg−フィールドのセンサスと、組み合わされたセンサスを計算するための上述の手順とを用いて、組み合わされたセンサスとして構築され得る。一部の実施形態において、セグメントセンサス1030の各エントリは、そのエントリに関連するセグメントの都合のよい識別のための(segment_idと呼ばれる)一意の値を与えられる。組み合わされたセンサスを計算するための手順が、セグメント分けされた組み合わされたセンサス1040を形成するために再び適用され、セグメント分けされた組み合わされたセンサス1040は、A−センサス集合1020のh−フィールドのセンサスとセグメントセンサス1030との組合せである。例えば、セグメント分けされた組み合わされたセンサス1040のh−s1エントリは、初めにセグメントセンサス1030のs1エントリを取得し、関連する位置情報A[1,4]を読み込むことによって計算され得る。位置ベクトルの第1の要素「1」が、h−フィールドの値「d」及び対応する位置情報A[1,4]を見つけるためにA−センサス集合1020のh−フィールドに関するセンサスで検査される。セグメントセンサス1030のs1とラベル付けされたエントリの位置情報A[1,4]が、h−センサスの「d」エントリの位置情報A[1,4]と比較される。これらの2つのエントリの間で位置情報の要素のすべてが一致するので、s1−セグメントに関する結果として得られる組み合わされたセンサスエントリのベクトルは、「d 2 A[1,4]」であることが分かり、s1−セグメントに残っている位置エントリは存在しない。これは、s1−セグメントが単一のh−フィールドの値「d」のみからなることを示す。h−センサスのレコードと組み合わせてその他のセグメントの値を用いて組み合わされたセンサスの構築を続けることは、セグメント分けされた組み合わされたセンサス1040を埋める。
図11に、セグメントキューブの計算の例が、示される。セグメンテーションが図10の例と同様に複数のフィールドの値の組合せに基づくとき、セグメント分けされたセンサスの結果がより少ないフィールドのそれぞれの組合せを含むセグメントに関するセンサスの結果へと再集約されるセグメントキューブが構築され得る。図10の例に関して、計算されたセグメント分けされた組み合わされたセンサス1040は、「国外 男性」(つまり、セグメントs4)及び「国内 女性」(つまり、セグメントs1)のようなセグメントを表す。ユーザは、セグメント「国外」又は「男性」に関するプロファイルを要求し得る。新しいセグメントに関して直接に図10の計算を繰り返すために戻る代わりに、前のセグメンテーションの結果が、以下のように「セグメントキューブ」のこれらのその他のエントリを計算するためにh−センサスと組み合わされ得る。
セグメントキューブ1020を形成するために、まず、元のセグメントのフィールドのあらゆるサブセットが形成される。現在の例において、完全なセグメンテーションは、2つのセグメンテーションのフィールドf及びgに基づく。2つのフィールドのこのセットの2つのサブセット、すなわち、fのみからなるセット及びgのみからなるセットが、存在する。これらのそれぞれをセグメントキューブフィールドと呼ぶ。元のセグメントのフィールドが3つのフィールドf、g、及びhからなっているとすれば、セグメントキューブフィールドは、セット{f,g}、{f,h}、{g,h}、{f}、{g}、及び{h}であり、つまり、セグメントキューブフィールドはセグメンテーションのフィールドのすべての(空でない)サブセットのセットの元である。
セグメントキューブ1120のエントリは、セグメントキューブフィールドのそれぞれに関連するそれぞれの異なる値(又は値の組合せ)からなる。一部の実施形態においては、セグメントキューブフィールドのそれぞれの値に関して、その値を含むセグメントの集合が特定され、そのようなセグメントのカウントとともにセグメントキューブ1120を記憶するデータ構造にセグメントの位置情報として保有される。別法は、(セグメントセンサスエントリと呼ばれる)セグメントセンサス1030のそれぞれの対応するエントリに関して論理和をとることによってA−インデックス付けされたデータセット1010に追加されたrecord_idに関連する位置情報を組み合わせることである。A−位置情報(すなわち、record_idに関連する位置情報)の代わりにセグメント位置情報(すなわち、segment_idに関連する位置情報)を用いることは、概して、レコードよりも少ないセグメントが多く存在するのでより効率的である場合があり、したがって、位置情報がより小さくまとまる。一部の実施形態においては、エントリをラベル付けするためにセグメントキューブ1120の各エントリにフィールドが追加される。
例において、セグメントキューブフィールドfは、セグメントs1及びs2に値「f」を有し、したがって、関連するセグメントの位置情報は、S[s1,s2]である。これは、セグメントキューブエントリ「c1 f f 2 S[s1,s2]」を形成する。ここで、c1は、セグメントキューブエントリのラベルであり、最初のfは、セグメントキューブフィールドであり、一方、「f」は、そのセグメントキューブフィールドの値である。この値は、位置情報S[s1,2]によって特定される2つのセグメントに現れる。あるいは、セグメントキューブフィールドgが、セグメントs1及びs4に値「q」を有し、したがって、関連するセグメントの位置情報は、S[s1,s4]である。セグメントキューブエントリは、「c4 g q 2 S[s1,s4]」である。
セグメント分けされ、組み合わされたセンサス1040が、以下の手順によって、セグメントキューブA−センサス集合1150を形成するためにセグメントキューブ1120と組み合わされる(1140)。セグメントキューブ1120の各エントリは、どのセグメントが(1又は2以上の)関連するセグメントキューブフィールドの値を含むかを特定するセグメント位置情報を含む。参照されるセグメントのそれぞれのセグメントセンサスエントリのセットの論理和が、セグメントキューブフィールドの値を有するセンサスエントリの集合を与える。例えば、c1セグメントキューブエントリは、セグメントの位置情報S[s1,s2]を有する。c1セグメントの結果が、セグメント分けされた組み合わされたセンサス1040のs1及びs2の結果のセンサスエントリのセットの論理和を実行することによって形成される。s1セグメントは、単一のエントリ「d 2 A[1,4]」からなり、一方、s2セグメントは、2つのエントリ「a 1 A[2]」及び「e 1 A[6]」からなる。これらのエントリの論理和は、3つすべてのエントリのセットであり、セグメントキューブA−センサス集合1150のh−センサスのc1−セグメントを形成する。セグメントキューブから、c1−セグメントが、fフィールドが値「f」を有するレコードからなることが分かる。したがって、h−センサスのc1−セグメントは、フィールドfが値「f」を有するh−センサスセグメントである。これは、図10のA−センサス集合1020を検査することによって確認され得る。f−フィールドは、レコードA[1,2,4,6]に値「f」を有し、一方、h−フィールドは、レコードA[1,4]に値「d」を有し、レコードA[2]に「a」を有し、レコードA[6]に「e」を有する。
値が2つ以上のセグメントに現れる場合、結果に関するA−位置情報が、各セグメントのA−位置情報の論理和から形成される。これは、示されたセグメントキューブ1120には現れないが、セグメント位置情報S[s2,s4]を有するセグメントキューブエントリが存在するとすれば、h−値「e」がセグメントs2とs4との両方に現れるので、そのセグメントキューブのセンサスの結果のh−値「e」に関するA−位置情報は、A[3,6]、すなわち、s2−セグメントからのA[6]及びs4−セグメントからのA[3]の論理和になる。
S[s2,s4]のようなセグメントキューブエントリは、単にフィールドの組合せではなくセグメントの組合せを取ることによって形成されるより包括的なセグメントキューブのセグメントキューブエントリの事例である。一部の実施形態においては、そのようなセグメントの組合せが許容される。そのようなエントリでは、許容されるセグメントフィールドの値が、セグメントの選択された組合せのそれぞれのセグメントに関連するそれらの値に対応する。この例において、S[s2,s4]のセグメントキューブエントリは、f−gフィールドが値「f p」か又は「m q」かのどちらかを有するセグメントに対応する。これは、フィールドとフィールドの値との条件付きの組合せが許容される複雑なセグメンテーションが形成されることを可能にする。
マルチフィールド検証規則が、元のデータセットのレコードのすべてを処理することを必要とせずに、位置情報を有するセンサスから計算され得る。マルチフィールド検証規則は、レコードが妥当であると考えられるために同時に満たされなければならない条件を2又は3以上のフィールドの値に適用する。条件を満たさないレコードは、妥当でないと考えられる。マルチフィールド検証規則の例は、f−値(性別)が「f」である場合、g−値(国外/国内)が「p」でなければならないということである。一部の実施形態において、検証規則は、不当(negative)で表される、つまり、満たされるときにレコードを妥当でないと特定する、2又は3以上のフィールドの値を組み合わせる規則が、与えられる。この例において、妥当でないレコードを特定する規則は、f−値が「f」であり、g−値が「p」でない場合、レコードは妥当でないということである可能性がある。
データ品質レポートが、1又は2以上の検証規則に関する妥当なレコード及び妥当でないレコードのカウントを含み得る。最初のセンサスが実行される前に検証規則が指定される場合、それらの検証規則は、センサスの収集中に検証される場合があり、妥当なレコード及び妥当でないレコードの関連するカウントが、実行される場合がある。しかし、多くの場合、検証規則は、センサスによって明らかにされた値及び値の組合せに応じて最初のセンサスの後に提案される。この場合、センサスをもう一度実行し、新しい検証規則を適用する代わりに、位置情報を有するセンサスが、センサスを再計算することなく妥当なレコード及び妥当でないレコードを特定するために使用され得る。マルチフィールド検証規則がフィールドの値の条件付きの組合せによって表されるので、検証規則の各値に対応するセンサスエントリは、概して、位置情報に対するブール演算を用いて組み合わされ、規則を検査するために使用され得る。妥当でないと考えられるすべての値の組合せは、妥当でないとマークを付けられ、妥当でないレコードの集合にカウントされる場合がある。位置情報は、検証規則の下で妥当であるか又は妥当でないかのどちらかである特定のレコードを特定するためにドリルダウンするためにやはり使用され得る。
検証規則「f−値が『f』である場合、g−値は『p』でなければならない」を考える。A−センサス集合1020が、ブール値「f=”f” and g=”p”」を計算するために使用され得る。f=”f”を有するレコードに関するこの位置情報は、A[1,2,4,6]であり、一方、g=”p”を有するレコードに関する位置情報は、A[2,3,6]である。妥当であるレコードは、位置情報の2つのセットの共通部分によって形成され、A[2,6]をもたらす。妥当でないレコードは、ベクトルA[1,4]によって位置を特定される妥当でないレコードをもたらすブール値「f=”f” and g!=”p”」によって計算されたレコードである。そして、結果として得られる位置情報は、妥当であるか又は妥当でないかのどちらかのレコードを取得するために使用され得る。例えば、レコード2及び6が、f=”f”及びg=”p”を有する2つのレコードを返すためにA−インデックス付けされたファイル1010から取得され得る。
上述の方法は、好適なソフトウェアを実行するコンピューティングシステムを用いて実装され得る。例えば、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力デバイス又はポートを用いて入力を受け取るため、及び少なくとも1つの出力デバイス又はポートを用いて出力を与えるための)少なくとも1つのユーザインターフェースを含む(分散、クライアント/サーバ、又はグリッドなどのさまざまなアーキテクチャである場合がある)1又は2以上のプログラムされた又はプログラミング可能なコンピュータシステムで実行される1又は2以上のコンピュータプログラムの手順を含み得る。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1又は2以上のモジュールを含む可能性がある。プログラムのモジュール(例えば、データフローグラフの要素)は、データリポジトリに記憶されたデータモデルに準拠するデータ構造又はその他の編成されたデータとして実装され得る。
ソフトウェアは、CD−ROM又は(例えば、多目的若しくは専用のコンピューティングシステム若しくはデバイスによって読み取り可能な)その他のコンピュータ可読媒体などの有形の非一時的媒体で提供されるか、或いはそのソフトウェアが実行されるコンピューティングシステムの有形の非一時的媒体にネットワークの通信媒体を介して配信される(例えば、伝播信号で符号化される)場合がある。処理の一部又はすべては、専用のコンピュータで、又はコプロセッサ若しくはフィールドプログラマブルゲートアレイ(FPGA,field-programmable gate array)若しくは専用の特定用途向け集積回路(ASIC,application-specific integrated circuit)などの専用のハードウェアを用いて実行される場合がある。処理は、ソフトウェアによって指定された計算の異なる部分が異なる計算要素によって実行される分散された方法で実装される場合がある。それぞれのそのようなコンピュータプログラムは、本明細書において説明された処理を実行するためにストレージデバイスの媒体がコンピュータによって読まれるときにコンピュータを構成し、動作させるために、多目的又は専用のプログラミング可能なコンピュータによってアクセス可能なストレージデバイスのコンピュータ可読ストレージ媒体(例えば、ソリッドステートメモリ若しくは媒体、又は磁気式若しくは光学式媒体)に記憶されるか又はダウンロードされることが好ましい。本発明のシステムは、コンピュータプログラムで構成された有形の非一時的媒体として実装されると考えられる可能性もあり、そのように構成された媒体は、本明細書において説明された処理ステップのうちの1又は2以上を実行するために特定の予め定義された方法でコンピュータを動作させる。
本発明のいくつかの実施形態が、説明された。しかしながら、上述の説明は、添付の請求項の範囲によって定義される本発明の範囲を例示するように意図されており、限定するように意図されていないことを理解されたい。したがって、その他の実施形態も、以下の請求項の範囲内にある。例えば、本発明の範囲を逸脱することなくさまざまな修正がなされ得る。さらに、上述のステップの一部は、順番に依存しない可能性があり、したがって、説明された順番とは異なる順番で実行され得る。

Claims (22)

  1. 少なくとも1つのデータストレージシステムに記憶されたデータをプロファイリングするための方法であって、
    前記データストレージシステムに接続されたインターフェースを介して前記データストレージシステムに記憶されたレコードの少なくとも1つの集合にアクセスするステップと、
    1又は2以上の値に関するプロファイル情報に基づいてレコードの前記集合の1又は2以上のフィールドの第1のセットに現れる値を特徴付ける結果情報を生成するためにレコードの前記集合を処理するステップであって、プロファイリングされているフィールドに現れる値に関するプロファイル情報が、前記値がプロファイリングされている前記フィールドに現れるレコードの前記集合を要約する、ステップとを含み、前記処理するステップが、
    レコードの前記集合の2又は3以上のフィールドの第2のセットに関して、それぞれのエントリが(1)2又は3以上のフィールドの前記第2のセットに現れる異なる値の組合せ、及び(2)前記異なる値の組合せに関するプロファイル情報を特定するエントリの対応するリストを受け取るステップと、
    第1の異なる値の組合せを有する前記リストの第1のエントリの第1のプロファイル情報と、前記第1の異なる値の組合せと異なる少なくとも1つの値を有する少なくとも1つのフィールドに関する第2のプロファイル情報とを組み合わせること、及び前記組み合わせたプロファイル情報に基づいて1又は2以上のフィールドの前記第1のセットの少なくとも1つのフィールドに現れる少なくとも1つの値に関するプロファイル情報を判定することに少なくとも部分的に基づいて、レコードの前記集合の1又は2以上のフィールドの前記第1のセットに現れる値を特徴付ける前記結果情報を生成するステップとを含
    前記異なる値の組合せに関するプロファイル情報が、それぞれの異なる値の組合せに関して、前記異なる値の組合せが現れる集合のすべてのレコードを特定する位置情報を含む、前記方法。
  2. リストが、2又は3以上のフィールドの第2のセットに現れる値のすべての異なる組合せに関するエントリを含む、請求項1に記載の方法。
  3. 1又は2以上のフィールドの第1のセットが、2又は3以上のフィールドの第2のセットのいかなるフィールドも含まない、請求項2に記載の方法。
  4. 第1の異なる値の組合せを有するリストの第1のエントリの第1のプロファイル情報と、前記第1の異なる値の組合せと異なる少なくとも1つの値を有する少なくとも1つのフィールドに関する第2のプロファイル情報とを組み合わせることが、第1の異なる値の組合せを有する前記リストの第1のエントリの第1のプロファイル情報と、1又は2以上のフィールドの第1のセットの少なくとも1つのフィールドに関する第2のプロファイル情報とを組み合わせることを含む、請求項3に記載の方法。
  5. リストの第1のエントリのプロファイル情報が、第1の異なる値の組合せが2又は3以上のフィールドの第2のセットに現れる集合のすべてのレコードを特定する位置情報を含む、請求項4に記載の方法。
  6. 第1の異なる値の組合せと異なる少なくとも1つの値を有する少なくとも1つのフィールドに関するプロファイル情報が、前記少なくとも1つの値が1又は2以上のフィールドの第1のセットに現れる集合のすべてのレコードを特定する位置情報を含む、請求項5に記載の方法。
  7. 第1のプロファイル情報と第2のプロファイル情報とを組み合わせることが、前記第1のプロファイル情報と第2のプロファイル情報との共通部分の演算を実行することを含む、請求項4に記載の方法。
  8. リストの各エントリが、前記リストのエントリに関連するインデックス値のすべての中で一意である、前記エントリに関するインデックス値に関連付けられる、請求項2に記載の方法。
  9. 1又は2以上のフィールドの第1のセットが、2又は3以上のフィールドの第2のセットのすべてのフィールドよりも少ないフィールドのサブセットである、請求項8に記載の方法。
  10. 第1の異なる値の組合せを有するリストの第1のエントリの第1のプロファイル情報と、前記第1の異なる値の組合せと異なる少なくとも1つの値を有する少なくとも1つのフィールドに関する第2のプロファイル情報とを組み合わせることが、第1の異なる値の組合せを有する前記リストの第1のエントリの第1のプロファイル情報と、第2の異なる値の組合せを有する前記リストの第2のエントリの第2のプロファイル情報とを組み合わせることを含む、請求項9に記載の方法。
  11. 第1の異なる値の組合せ及び第2の異なる値の組合せが、第1のフィールドに関して同一の値を有し、第2のフィールドに関して異なる値を有し、前記第1のフィールドが、第1のセットと第2のセットとの両方にあり、前記第2のフィールドが、前記第2のセットにはあるが、前記第1のセットにはない、請求項10に記載の方法。
  12. 第1のプロファイル情報が、第1のエントリに関連する第1のインデックス値を含み、第2のプロファイル情報が、第2のエントリに関連する第2のインデックス値を含む、請求項10に記載の方法。
  13. 各エントリが、異なる値の組合せが2又は3以上のフィールドの第2のセットに現れるレコードの数のカウントをさらに特定する、請求項1に記載の方法。
  14. 処理するステップが、特定されたカウントによって各リストのエントリをソートするステップをさらに含む、請求項13に記載の方法。
  15. 異なる値の組合せに関する位置情報を生成するステップが、前記異なる値の組合せの第1の異なる値に関する位置情報と、前記異なる値の組合せの第2の異なる値に関する位置情報との共通部分を判定するステップを含む、請求項に記載の方法。
  16. 位置情報が、異なる値が現れるすべてのレコードに関する一意のインデックス値を特定する、請求項に記載の方法。
  17. 位置情報が、特定の一意のインデックス値を記憶することによって前記特定の一意のインデックス値を特定する、請求項16に記載の方法。
  18. 位置情報が、前記位置情報に一意のインデックス値を符号化することによって前記一意のインデックス値を特定する、請求項16に記載の方法。
  19. 一意のインデックス値を符号化することが、前記一意のインデックス値に対応するベクトル内の位置にビットを記憶することを含む、請求項18に記載の方法。
  20. 少なくとも1つのデータストレージシステムに記憶されたデータをプロファイリングするための、コンピュータ可読ストレージ媒体に記憶されるコンピュータプログラムであって、コンピューティングシステムに請求項1〜19のいずれかに記載された方法を実行させるための命令を含む、前記コンピュータプログラム。
  21. 少なくとも1つのデータストレージシステムに記憶されたデータをプロファイリングするためのコンピューティングシステムであって、
    前記データストレージシステムに記憶されたレコードの少なくとも1つの集合にアクセスするように構成された、前記データストレージシステムに接続されたインターフェースと、
    請求項1〜19のいずれかに記載された方法を実行するように構成された少なくとも1つのプロセッサを含む、前記コンピューティングシステム。
  22. 少なくとも1つのデータストレージシステムに記憶されたデータをプロファイリングするためのコンピューティングシステムであって、
    前記データストレージシステムに記憶されたレコードの少なくとも1つの集合にアクセスするための手段と、
    1又は2以上の値に関するプロファイル情報に基づいてレコードの前記集合の1又は2以上のフィールドの第1のセットに現れる値を特徴付ける結果情報を生成するためにレコードの前記集合を処理するための手段であって、プロファイリングされているフィールドに現れる値に関するプロファイル情報が、前記値がプロファイリングされている前記フィールドに現れるレコードの前記集合を要約する、手段とを含み、前記処理することが、
    レコードの前記集合の2又は3以上のフィールドの第2のセットに関して、それぞれのエントリが(1)2又は3以上のフィールドの前記第2のセットに現れる異なる値の組合せ、及び(2)前記異なる値の組合せに関するプロファイル情報を特定するエントリの対応するリストを受け取ることと、
    第1の異なる値の組合せを有する前記リストの第1のエントリの第1のプロファイル情報と、前記第1の異なる値の組合せと異なる少なくとも1つの値を有する少なくとも1つのフィールドに関する第2のプロファイル情報とを組み合わせること、及び前記組み合わせたプロファイル情報に基づいて1又は2以上のフィールドの前記第1のセットの少なくとも1つのフィールドに現れる少なくとも1つの値に関するプロファイル情報を判定することに少なくとも部分的に基づいて、レコードの前記集合の1又は2以上のフィールドの前記第1のセットに現れる値を特徴付ける前記結果情報を生成することとを含
    前記異なる値の組合せに関するプロファイル情報が、それぞれの異なる値の組合せに関して、前記異なる値の組合せが現れる集合のすべてのレコードを特定する位置情報を含む、前記コンピューティングシステム。
JP2015538128A 2012-10-22 2013-10-22 位置情報を用いたデータのプロファイリング Active JP6377622B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261716766P 2012-10-22 2012-10-22
US61/716,766 2012-10-22
US13/958,057 US9323748B2 (en) 2012-10-22 2013-08-02 Profiling data with location information
US13/958,057 2013-08-02
PCT/US2013/066061 WO2014066314A1 (en) 2012-10-22 2013-10-22 Profiling data with location information

Publications (2)

Publication Number Publication Date
JP2015537296A JP2015537296A (ja) 2015-12-24
JP6377622B2 true JP6377622B2 (ja) 2018-08-22

Family

ID=48985856

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2015537694A Active JP6207619B2 (ja) 2012-10-22 2013-08-02 ソース追跡によるデータのプロファイリング
JP2015537698A Active JP6357162B2 (ja) 2012-10-22 2013-08-02 位置情報を用いたデータのプロファイリング
JP2015538128A Active JP6377622B2 (ja) 2012-10-22 2013-10-22 位置情報を用いたデータのプロファイリング

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2015537694A Active JP6207619B2 (ja) 2012-10-22 2013-08-02 ソース追跡によるデータのプロファイリング
JP2015537698A Active JP6357162B2 (ja) 2012-10-22 2013-08-02 位置情報を用いたデータのプロファイリング

Country Status (9)

Country Link
US (5) US9323748B2 (ja)
EP (5) EP2909745B1 (ja)
JP (3) JP6207619B2 (ja)
KR (3) KR102129643B1 (ja)
CN (4) CN104737167B (ja)
AU (4) AU2013335231B2 (ja)
CA (3) CA2887670C (ja)
HK (3) HK1211109A1 (ja)
WO (3) WO2014065919A1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104737167B (zh) 2012-10-22 2019-01-04 起元科技有限公司 使用源跟踪剖析数据
US9953054B2 (en) * 2013-04-22 2018-04-24 Salesforce.Com, Inc. Systems and methods for implementing and maintaining sampled tables in a database system
US9292554B2 (en) * 2013-08-20 2016-03-22 Pivotal Software, Inc. Thin database indexing
US9292553B2 (en) * 2013-08-20 2016-03-22 Pivotal Software, Inc. Queries for thin database indexing
US10515231B2 (en) * 2013-11-08 2019-12-24 Symcor Inc. Method of obfuscating relationships between data in database tables
US20150199645A1 (en) * 2014-01-15 2015-07-16 Bank Of America Corporation Customer Profile View of Consolidated Customer Attributes
US9984173B2 (en) * 2014-02-24 2018-05-29 International Business Machines Corporation Automated value analysis in legacy data
CN106062751B (zh) 2014-03-07 2020-08-11 起元科技有限公司 对与数据类型有关的数据剖析操作的管理
US10769122B2 (en) * 2014-03-13 2020-09-08 Ab Initio Technology Llc Specifying and applying logical validation rules to data
GB2524073A (en) * 2014-03-14 2015-09-16 Ibm Communication method and system for accessing media data
US9628107B2 (en) 2014-04-07 2017-04-18 International Business Machines Corporation Compression of floating-point data by identifying a previous loss of precision
US10089409B2 (en) 2014-04-29 2018-10-02 Microsoft Technology Licensing, Llc Event-triggered data quality verification
US10877955B2 (en) * 2014-04-29 2020-12-29 Microsoft Technology Licensing, Llc Using lineage to infer data quality issues
US9959299B2 (en) 2014-12-02 2018-05-01 International Business Machines Corporation Compression-aware partial sort of streaming columnar data
US10909078B2 (en) 2015-02-25 2021-02-02 International Business Machines Corporation Query predicate evaluation and computation for hierarchically compressed data
US10467215B2 (en) * 2015-06-23 2019-11-05 Microsoft Technology Licensing, Llc Matching documents using a bit vector search index
US10733164B2 (en) 2015-06-23 2020-08-04 Microsoft Technology Licensing, Llc Updating a bit vector search index
US11392568B2 (en) 2015-06-23 2022-07-19 Microsoft Technology Licensing, Llc Reducing matching documents for a search query
US10229143B2 (en) 2015-06-23 2019-03-12 Microsoft Technology Licensing, Llc Storage and retrieval of data from a bit vector search index
US10565198B2 (en) 2015-06-23 2020-02-18 Microsoft Technology Licensing, Llc Bit vector search index using shards
US11281639B2 (en) 2015-06-23 2022-03-22 Microsoft Technology Licensing, Llc Match fix-up to remove matching documents
US10242071B2 (en) 2015-06-23 2019-03-26 Microsoft Technology Licensing, Llc Preliminary ranker for scoring matching documents
US20170242876A1 (en) * 2016-02-22 2017-08-24 Ca, Inc. Maintaining Database Referential Integrity Using Different Primary and Foreign Key Values
US11475026B2 (en) * 2016-02-26 2022-10-18 Douglas Schiller Value discrepancy visualization apparatus and method thereof
CN106227837B (zh) * 2016-07-27 2019-08-02 浪潮金融信息技术有限公司 一种数据分析方法和装置
JP2018036977A (ja) * 2016-09-02 2018-03-08 富士ゼロックス株式会社 情報処理装置及びプログラム
US10474649B2 (en) * 2016-09-27 2019-11-12 Halo Tech Corp. Providing action corrections using a dual model system
US10817465B2 (en) * 2016-12-09 2020-10-27 Salesforce.Com, Inc. Match index creation
US10636293B2 (en) * 2017-06-07 2020-04-28 International Business Machines Corporation Uncertainty modeling in traffic demand prediction
US10528549B2 (en) 2017-09-25 2020-01-07 Mastercard International Incorporated Systems and methods for use in loading data based on a hierarchical framework
US10795915B1 (en) 2017-12-29 2020-10-06 Iqvia Inc. System and method for merging slowly changing data
CA3030513A1 (en) 2018-01-19 2019-07-19 Sofdesk Inc. Automated roof surface measurement from combined aerial lidar data and imagery
CA3089465A1 (en) * 2018-01-25 2019-08-01 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US10430100B2 (en) 2018-02-28 2019-10-01 International Business Machines Corporation Transactional operations in multi-master distributed data management systems
US10891307B2 (en) * 2018-05-31 2021-01-12 Microsoft Technology Licensing, Llc Distributed data synchronization in a distributed computing system
US11042522B2 (en) 2018-06-11 2021-06-22 International Business Machines Corporation Resolving versions in an append-only large-scale data store in distributed data management systems
US11188539B2 (en) 2018-07-27 2021-11-30 International Business Machines Corporation Matching non-sequential log metadata with out-of-order record data
JP6573187B1 (ja) * 2019-01-08 2019-09-11 株式会社ビジネスインテリジェンス データ処理プログラム、データ出力装置、データ統合方法、出力プログラム、データ出力方法及びデータ処理システム
US11360990B2 (en) 2019-06-21 2022-06-14 Salesforce.Com, Inc. Method and a system for fuzzy matching of entities in a database system based on machine learning
US11194844B1 (en) * 2020-09-01 2021-12-07 Skyline Al Ltd. System and method for detecting second degree relationships between entities by uniquely resolving entities
US11909750B1 (en) * 2020-10-15 2024-02-20 Splunk Inc. Data reduction and evaluation via link analysis

Family Cites Families (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179643A (en) 1988-12-23 1993-01-12 Hitachi, Ltd. Method of multi-dimensional analysis and display for a large volume of record information items and a system therefor
JPH032938A (ja) 1989-05-31 1991-01-09 Hitachi Ltd データベース処理方法
US5604899A (en) 1990-05-21 1997-02-18 Financial Systems Technology Pty. Ltd. Data relationships processor with unlimited expansion capability
FR2698465B1 (fr) 1992-11-20 1995-01-13 Bull Sa Méthode d'extraction de profils de statistiques, utilisation des statistiques créées par la méthode.
US5847972A (en) * 1993-09-24 1998-12-08 Eick; Stephen Gregory Method and apparatus for graphically analzying a log-file
US5742806A (en) 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
JP3519126B2 (ja) 1994-07-14 2004-04-12 株式会社リコー 自動レイアウトシステム
US5842200A (en) 1995-03-31 1998-11-24 International Business Machines Corporation System and method for parallel mining of association rules in databases
US6601048B1 (en) 1997-09-12 2003-07-29 Mci Communications Corporation System and method for detecting and managing fraud
CN1052316C (zh) * 1995-09-15 2000-05-10 殷步九 计算机管理设计系统
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5778373A (en) 1996-07-15 1998-07-07 At&T Corp Integration of an information server database schema by generating a translation map from exemplary files
US6138123A (en) 1996-07-25 2000-10-24 Rathbun; Kyle R. Method for creating and using parallel data structures
JPH1055367A (ja) 1996-08-09 1998-02-24 Hitachi Ltd データ利用システム
US5845285A (en) 1997-01-07 1998-12-01 Klein; Laurence C. Computer system and method of data analysis
US5987453A (en) 1997-04-07 1999-11-16 Informix Software, Inc. Method and apparatus for performing a join query in a database system
US7031843B1 (en) * 1997-09-23 2006-04-18 Gene Logic Inc. Computer methods and systems for displaying information relating to gene expression data
US6134560A (en) 1997-12-16 2000-10-17 Kliebhan; Daniel F. Method and apparatus for merging telephone switching office databases
JP3474106B2 (ja) * 1998-06-17 2003-12-08 アルプス電気株式会社 液晶表示装置
USRE41901E1 (en) 1998-08-11 2010-10-26 Turbo Data Laboratories, Inc. Method and apparatus for retrieving accumulating and sorting table formatted data
US6553366B1 (en) 1998-10-02 2003-04-22 Ncr Corporation Analytic logical data model
US7039919B1 (en) * 1998-10-02 2006-05-02 Microsoft Corporation Tools and techniques for instrumenting interfaces of units of a software program
US6546416B1 (en) 1998-12-09 2003-04-08 Infoseek Corporation Method and system for selectively blocking delivery of bulk electronic mail
US6959300B1 (en) 1998-12-10 2005-10-25 At&T Corp. Data compression method and apparatus
US6343294B1 (en) 1998-12-15 2002-01-29 International Business Machines Corporation Data file editor for multiple data subsets
US6741995B1 (en) 1999-03-23 2004-05-25 Metaedge Corporation Method for dynamically creating a profile
US6430539B1 (en) 1999-05-06 2002-08-06 Hnc Software Predictive modeling of consumer financial behavior
GB2349961A (en) * 1999-05-08 2000-11-15 Int Computers Ltd Analysing data files to produce summaries therefrom
US6163774A (en) 1999-05-24 2000-12-19 Platinum Technology Ip, Inc. Method and apparatus for simplified and flexible selection of aggregate and cross product levels for a data warehouse
AU5624700A (en) 1999-06-18 2001-01-09 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
JP3318834B2 (ja) 1999-07-30 2002-08-26 三菱電機株式会社 データファイルシステム及びデータ検索方法
JP3363120B2 (ja) 1999-08-30 2003-01-08 ファンクルシステム株式会社 コンテンツ収集・貼付方法及び装置並びにコンテンツ収集・貼付のためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001331362A (ja) 2000-03-17 2001-11-30 Sony Corp ファイル変換方法、データ変換装置及びファイル表示システム
JP3567861B2 (ja) 2000-07-07 2004-09-22 日本電信電話株式会社 情報源所在推定方法及び装置及び情報源所在推定プログラムを格納した記憶媒体
JP4366845B2 (ja) 2000-07-24 2009-11-18 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム提供媒体
US6788302B1 (en) 2000-08-03 2004-09-07 International Business Machines Corporation Partitioning and load balancing graphical shape data for parallel applications
US20020073138A1 (en) 2000-12-08 2002-06-13 Gilbert Eric S. De-identification and linkage of data records
US6952693B2 (en) 2001-02-23 2005-10-04 Ran Wolff Distributed mining of association rules
US20020161778A1 (en) 2001-02-24 2002-10-31 Core Integration Partners, Inc. Method and system of data warehousing and building business intelligence using a data storage model
US20020120602A1 (en) 2001-02-28 2002-08-29 Ross Overbeek System, method and computer program product for simultaneous analysis of multiple genomes
WO2002079942A2 (en) * 2001-03-29 2002-10-10 Artmecca.Com System for visual preference determination and predictive product selection
CA2349265A1 (en) * 2001-05-30 2002-11-30 Andrew Emili Protein expression profile database
US20030033138A1 (en) 2001-07-26 2003-02-13 Srinivas Bangalore Method for partitioning a data set into frequency vectors for clustering
US7130852B2 (en) 2001-07-27 2006-10-31 Silicon Valley Bank Internal security system for a relational database system
US7013290B2 (en) 2001-08-03 2006-03-14 John Allen Ananian Personalized interactive digital catalog profiling
US6801903B2 (en) 2001-10-12 2004-10-05 Ncr Corporation Collecting statistics in a database system
US7359847B2 (en) * 2001-11-30 2008-04-15 International Business Machines Corporation Tracking converage results in a batch simulation farm network
US20030140027A1 (en) 2001-12-12 2003-07-24 Jeffrey Huttel Universal Programming Interface to Knowledge Management (UPIKM) database system with integrated XML interface
US7813937B1 (en) 2002-02-15 2010-10-12 Fair Isaac Corporation Consistency modeling of healthcare claims to detect fraud and abuse
US7031969B2 (en) 2002-02-20 2006-04-18 Lawrence Technologies, Llc System and method for identifying relationships between database records
CA2479838C (en) 2002-03-19 2011-02-08 Mapinfo Corporation Location based service provider
US7032212B2 (en) 2002-05-06 2006-04-18 Microsoft Corporation Method and system for generating test matrices for software programs
US20040083199A1 (en) 2002-08-07 2004-04-29 Govindugari Diwakar R. Method and architecture for data transformation, normalization, profiling, cleansing and validation
US6657568B1 (en) 2002-08-27 2003-12-02 Fmr Corp. Data packing for real-time streaming
US7047230B2 (en) 2002-09-09 2006-05-16 Lucent Technologies Inc. Distinct sampling system and a method of distinct sampling for optimizing distinct value query estimates
US7043476B2 (en) * 2002-10-11 2006-05-09 International Business Machines Corporation Method and apparatus for data mining to discover associations and covariances associated with data
US20040111410A1 (en) 2002-10-14 2004-06-10 Burgoon David Alford Information reservoir
US7395243B1 (en) 2002-11-01 2008-07-01 Checkfree Corporation Technique for presenting matched billers to a consumer
US7698163B2 (en) 2002-11-22 2010-04-13 Accenture Global Services Gmbh Multi-dimensional segmentation for use in a customer interaction
US7403942B1 (en) 2003-02-04 2008-07-22 Seisint, Inc. Method and system for processing data records
US7117222B2 (en) 2003-03-13 2006-10-03 International Business Machines Corporation Pre-formatted column-level caching to improve client performance
US7433861B2 (en) 2003-03-13 2008-10-07 International Business Machines Corporation Byte-code representations of actual data to reduce network traffic in database transactions
US7130760B2 (en) 2003-03-31 2006-10-31 National Instruments Corporation Reporting invalid parameter values for a parameter-based system
US20040249810A1 (en) 2003-06-03 2004-12-09 Microsoft Corporation Small group sampling of data for use in query processing
GB0314591D0 (en) 2003-06-21 2003-07-30 Ibm Profiling data in a data store
US20050240354A1 (en) * 2003-08-27 2005-10-27 Ascential Software Corporation Service oriented architecture for an extract function in a data integration platform
US20060069717A1 (en) * 2003-08-27 2006-03-30 Ascential Software Corporation Security service for a services oriented architecture in a data integration platform
US7426520B2 (en) 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
CN101271472B (zh) * 2003-09-15 2011-04-13 起元科技有限公司 数据处理方法和数据处理系统
EP1676217B1 (en) 2003-09-15 2011-07-06 Ab Initio Technology LLC Data profiling
US7587394B2 (en) 2003-09-23 2009-09-08 International Business Machines Corporation Methods and apparatus for query rewrite with auxiliary attributes in query processing operations
US7149736B2 (en) 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
US7698345B2 (en) 2003-10-21 2010-04-13 The Nielsen Company (Us), Llc Methods and apparatus for fusing databases
US7620630B2 (en) * 2003-11-12 2009-11-17 Oliver Lloyd Pty Ltd Directory system
US8078481B2 (en) * 2003-12-05 2011-12-13 John Steinbarth Benefits administration system and methods of use and doing business
US7689542B2 (en) 2004-01-13 2010-03-30 Oracle International Corporation Dynamic return type generation in a database system
US20050177578A1 (en) 2004-02-10 2005-08-11 Chen Yao-Ching S. Efficient type annontation of XML schema-validated XML documents without schema validation
US7376656B2 (en) 2004-02-10 2008-05-20 Microsoft Corporation System and method for providing user defined aggregates in a database system
KR100619064B1 (ko) 2004-07-30 2006-08-31 삼성전자주식회사 메타 데이터를 포함하는 저장 매체, 그 재생 장치 및 방법
US8447743B2 (en) 2004-08-17 2013-05-21 International Business Machines Corporation Techniques for processing database queries including user-defined functions
CN1314634C (zh) 2004-09-17 2007-05-09 南京理工大学 单质炸药降静电处理方法
US7392169B2 (en) * 2004-10-21 2008-06-24 International Business Machines Corporation Method, system and program product for defining and recording minimum and maximum event counts of a simulation utilizing a high level language
US7899833B2 (en) 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US20060129893A1 (en) * 2004-11-30 2006-06-15 Smith Alan R Apparatus, system, and method for criteria driven summarization of trace entry data
US8145642B2 (en) 2004-11-30 2012-03-27 Oracle International Corporation Method and apparatus to support bitmap filtering in a parallel system
US7694088B1 (en) * 2005-03-31 2010-04-06 Symantec Operating Corporation System and method for efficient creation of aggregate backup images
US20060230019A1 (en) * 2005-04-08 2006-10-12 International Business Machines Corporation System and method to optimize database access by synchronizing state based on data access patterns
US8572018B2 (en) * 2005-06-20 2013-10-29 New York University Method, system and software arrangement for reconstructing formal descriptive models of processes from functional/modal data using suitable ontology
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US7584205B2 (en) 2005-06-27 2009-09-01 Ab Initio Technology Llc Aggregating data with complex operations
US20070021995A1 (en) 2005-07-20 2007-01-25 Candemir Toklu Discovering patterns of executions in business processes
US7774346B2 (en) 2005-08-26 2010-08-10 Oracle International Corporation Indexes that are based on bitmap values and that use summary bitmap values
US20070073721A1 (en) 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for serviced data profiling operations
US7565349B2 (en) * 2005-11-10 2009-07-21 International Business Machines Corporation Method for computing frequency distribution for many fields in one pass in parallel
US20070214179A1 (en) 2006-03-10 2007-09-13 Khanh Hoang Searching, filtering, creating, displaying, and managing entity relationships across multiple data hierarchies through a user interface
US8271452B2 (en) 2006-06-12 2012-09-18 Rainstor Limited Method, system, and database archive for enhancing database archiving
NO325864B1 (no) 2006-11-07 2008-08-04 Fast Search & Transfer Asa Fremgangsmåte ved beregning av sammendragsinformasjon og en søkemotor for å støtte og implementere fremgangsmåten
US20080114789A1 (en) 2006-11-15 2008-05-15 Wysham John A Data item retrieval method and apparatus
JP2008146242A (ja) * 2006-12-07 2008-06-26 Ricoh Co Ltd 発注支援システム、機器監視装置、機器監視方法及びプログラム
US7894075B2 (en) * 2006-12-11 2011-02-22 Zygo Corporation Multiple-degree of freedom interferometer with compensation for gas effects
US8412713B2 (en) * 2007-03-06 2013-04-02 Mcafee, Inc. Set function calculation in a database
US9224179B2 (en) * 2007-05-14 2015-12-29 The University Of Utah Research Foundation Method and system for report generation including extensible data
US7958142B2 (en) 2007-09-20 2011-06-07 Microsoft Corporation User profile aggregation
JP5241738B2 (ja) * 2008-01-28 2013-07-17 株式会社ターボデータラボラトリー 表からツリー構造データを構築する方法及び装置
US20090226916A1 (en) * 2008-02-01 2009-09-10 Life Technologies Corporation Automated Analysis of DNA Samples
US7912867B2 (en) 2008-02-25 2011-03-22 United Parcel Services Of America, Inc. Systems and methods of profiling data for integration
US7904464B2 (en) * 2008-08-27 2011-03-08 International Business Machines Corporation Virtual list view support in a distributed directory
US8463739B2 (en) * 2008-08-28 2013-06-11 Red Hat, Inc. Systems and methods for generating multi-population statistical measures using middleware
JP5287071B2 (ja) * 2008-09-17 2013-09-11 株式会社リコー データベース管理システムおよびプログラム
US20100114976A1 (en) * 2008-10-21 2010-05-06 Castellanos Maria G Method For Database Design
CN101393521B (zh) * 2008-11-13 2012-04-25 上海交通大学 Windows应用程序内部固化数据的提取系统
US8150832B2 (en) * 2009-03-06 2012-04-03 Oracle International Corporation Methods and systems for automatically determining a default hierarchy from data
US9251212B2 (en) * 2009-03-27 2016-02-02 Business Objects Software Ltd. Profiling in a massive parallel processing environment
US20110029478A1 (en) 2009-05-20 2011-02-03 Broeker Stephen A Stream Star Schema and Nested Binary Tree for Data Stream Analysis
US8977705B2 (en) * 2009-07-27 2015-03-10 Verisign, Inc. Method and system for data logging and analysis
EP2478433A4 (en) 2009-09-16 2016-09-21 Ab Initio Technology Llc MAPPING DATA SET ELEMENTS
US8560575B2 (en) * 2009-11-12 2013-10-15 Salesforce.Com, Inc. Methods and apparatus for selecting updates to associated records to publish on an information feed in an on-demand database service environment
EP2499565B1 (en) 2009-11-13 2019-01-09 Ab Initio Technology LLC Managing record format information
US8595284B2 (en) 2009-12-14 2013-11-26 Samsung Electronics Co., Ltd Web application script migration
US8396873B2 (en) 2010-03-10 2013-03-12 Emc Corporation Index searching using a bloom filter
US8326824B2 (en) * 2010-05-28 2012-12-04 International Business Machines Corporation Methods to estimate existing cache contents for better query optimization
CN103080932B (zh) * 2010-06-22 2016-08-31 起元技术有限责任公司 处理相关数据集
JP2012009996A (ja) * 2010-06-23 2012-01-12 National Institute Of Information & Communication Technology 情報処理システム、中継装置、および情報処理方法
JP5398663B2 (ja) * 2010-08-06 2014-01-29 三菱電機株式会社 データ処理装置及びデータ処理方法及びプログラム
WO2012051216A1 (en) * 2010-10-11 2012-04-19 The Regents Of The University Of Colorado, A Body Corporate Direct echo particle image velocimetry flow vector mapping on ultrasound dicom images
US8296274B2 (en) 2011-01-27 2012-10-23 Leppard Andrew Considering multiple lookups in bloom filter decision making
EP2668725B1 (en) 2011-01-28 2021-12-22 Ab Initio Technology LLC Generating data pattern information
JP5556695B2 (ja) * 2011-02-16 2014-07-23 株式会社島津製作所 質量分析データ処理方法及び該方法を用いた質量分析装置
US9275367B2 (en) * 2011-05-05 2016-03-01 Aegis Analytical Corporation System for designating, displaying and selecting types of process parameters and product outcome parameters
EP2608122A1 (en) * 2011-12-22 2013-06-26 Philip Morris Products S.A. Systems and methods for quantifying the impact of biological perturbations
US8615519B2 (en) 2011-06-17 2013-12-24 Sap Ag Method and system for inverted indexing of a dataset
DE102012210794A1 (de) * 2011-07-01 2013-02-07 International Business Machines Corporation System und Verfahren zur Datenqualitätsüberwachung
US8856085B2 (en) 2011-07-19 2014-10-07 International Business Machines Corporation Automatic consistent sampling for data analysis
US8666919B2 (en) 2011-07-29 2014-03-04 Accenture Global Services Limited Data quality management for profiling, linking, cleansing and migrating data
US20140296327A1 (en) * 2011-10-24 2014-10-02 The Brigham And Women's Hospital, Inc. Diagnosis and treatment of mesothelioma
CN103176973B (zh) 2011-12-20 2016-04-20 国际商业机器公司 用于生成数据库的测试工作负载的系统和方法
US8762396B2 (en) 2011-12-22 2014-06-24 Sap Ag Dynamic, hierarchical bloom filters for network data routing
US9336246B2 (en) 2012-02-28 2016-05-10 International Business Machines Corporation Generating composite key relationships between database objects based on sampling
US9483268B2 (en) * 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
US10061807B2 (en) * 2012-05-18 2018-08-28 Splunk Inc. Collection query driven generation of inverted index for raw machine data
WO2013190083A1 (en) * 2012-06-21 2013-12-27 Philip Morris Products S.A. Systems and methods relating to network-based biomarker signatures
CN104756106B (zh) * 2012-10-22 2019-03-22 起元科技有限公司 表征数据存储系统中的数据源
CN104737167B (zh) * 2012-10-22 2019-01-04 起元科技有限公司 使用源跟踪剖析数据
US9348773B2 (en) * 2013-05-28 2016-05-24 Dell Products, L.P. Systems and methods for adaptive interrupt coalescing in a converged network

Also Published As

Publication number Publication date
KR20150079689A (ko) 2015-07-08
AU2013335229B2 (en) 2018-08-09
CA2887931A1 (en) 2014-05-01
JP2015537296A (ja) 2015-12-24
CN104756107A (zh) 2015-07-01
CN110096494B (zh) 2024-04-26
CN104737167A (zh) 2015-06-24
EP2909752B1 (en) 2020-07-29
HK1211116A1 (en) 2016-05-13
EP2909746A1 (en) 2015-08-26
HK1211113A1 (en) 2016-05-13
US9990362B2 (en) 2018-06-05
CA2888250C (en) 2020-07-21
US20140114927A1 (en) 2014-04-24
EP2909746B1 (en) 2019-12-18
KR20150076227A (ko) 2015-07-06
US20140114926A1 (en) 2014-04-24
KR20150076225A (ko) 2015-07-06
US20160012100A1 (en) 2016-01-14
CN104756107B (zh) 2019-01-01
AU2013335231A1 (en) 2015-04-30
CN104769586B (zh) 2019-03-22
US9323749B2 (en) 2016-04-26
US9323748B2 (en) 2016-04-26
KR102129643B1 (ko) 2020-07-02
WO2014065917A1 (en) 2014-05-01
AU2013335231B2 (en) 2018-08-09
EP3764242A1 (en) 2021-01-13
JP2016502699A (ja) 2016-01-28
EP2909745B1 (en) 2020-01-01
CN110096494A (zh) 2019-08-06
CA2888250A1 (en) 2014-05-01
AU2013334870B2 (en) 2018-08-09
EP3657348B1 (en) 2021-12-01
US20170154075A1 (en) 2017-06-01
CN104769586A (zh) 2015-07-08
CN104737167B (zh) 2019-01-04
AU2013335229A1 (en) 2015-04-30
EP2909745A1 (en) 2015-08-26
CA2887931C (en) 2022-12-13
HK1211109A1 (en) 2016-05-13
JP2016502166A (ja) 2016-01-21
US20140114968A1 (en) 2014-04-24
US9569434B2 (en) 2017-02-14
WO2014066314A1 (en) 2014-05-01
KR102134494B1 (ko) 2020-07-15
JP6207619B2 (ja) 2017-10-04
WO2014065919A1 (en) 2014-05-01
AU2013334870A1 (en) 2015-04-30
EP2909752A1 (en) 2015-08-26
CA2887670A1 (en) 2014-05-01
EP3657348A1 (en) 2020-05-27
KR102074026B1 (ko) 2020-02-05
AU2018253523B2 (en) 2020-07-02
US10719511B2 (en) 2020-07-21
AU2018253523A1 (en) 2018-11-15
JP6357162B2 (ja) 2018-07-11
CA2887670C (en) 2021-05-25

Similar Documents

Publication Publication Date Title
JP6377622B2 (ja) 位置情報を用いたデータのプロファイリング
US10140325B2 (en) Data source identification mapping in blended data operations
US20050102325A1 (en) Functional dependency data profiling
US20140351241A1 (en) Identifying and invoking applications based on data in a knowledge graph
JP7465870B2 (ja) 多次元データベース環境における依存関係分析のためのシステムおよび方法
US9158599B2 (en) Programming framework for applications
US10901987B2 (en) Dynamic automatic generation of database views
US11144549B2 (en) Dynamic generation of join statements for database operations
US8805811B2 (en) Executing user-defined function on a plurality of database tuples
JP6567043B2 (ja) 階層的なエンティティのための計算の管理
WO2016033130A1 (en) Computing device classifier improvement through n-dimensional stratified input sampling
US11422984B2 (en) Clustering within database data models

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180725

R150 Certificate of patent or registration of utility model

Ref document number: 6377622

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250