(57)【特許請求の範囲】
【請求項１】
データを特徴付けるための方法であって、
データストレージシステムとのインターフェースからデータを読み込み、前記データストレージシステムの異なるそれぞれのデータソースに記憶されたデータを要約した２又は３以上の要約データのセットを記憶するステップと、
前記データストレージシステムの複数のデータソースのデータを特徴付けるシステム情報を生成するために、少なくとも１つのプロセッサを用いて、前記記憶した要約データのセットを処理するステップと
を含み、前記処理するステップが、
前記記憶した要約データのセットを分析して、所定の基準を満たすデータを記憶する、２又は３以上のデータソースを選択するステップと、
第１の前記選択したデータソースを要約し、記憶した要約データのセットの値と、第２の前記選択したデータソースを要約し、記憶した要約データのセットの値との比較に少なくとも部分的に基づいて、異なるデータソースに含まれるレコードのフィールド間の潜在的関係を識別する情報を含む前記システム情報を生成するステップとを含み、
前記処理するステップが、以下のいずれかのステップ：
１又は２以上のフィールドを、前記複数のデータソースのうちの少なくとも１つの前記レコードに追加するステップ；或いは
それぞれの要約データのセットに対応するデータユニットを記憶するステップであって、前記データユニットのうちの少なくともいくつかが、前記対応する要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報を含む、ステップと、
前記記憶されたデータユニットから集約した記述情報に基づいて、システム情報を生成するステップとを更に含む、前記方法。
【請求項２】
処理するステップが、
１又は２以上のルールを、２又は３以上の第２の要約データのセットに適用するステップと、
前記第２の要約データのセットを集約して、第３の要約データのセットを生成するステップと、
前記第３の要約データのセットを記憶するステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
１又は２以上のルールが、２又は３以上の第２の要約データのセットにおいて１又は２以上の選択されたフィールドの値を比較する、請求項２に記載の方法。
【請求項４】
特定のデータソースに記憶されたデータを要約し、記憶した要約データのセットが、前記特定のデータソースにおけるレコードの少なくとも１つの選択されたフィールドに関して、値エントリの対応するリストを含み、各値エントリが、前記選択されたフィールドに現れる値を含む、請求項１に記載の方法。
【請求項５】
特定のデータソースに対応する値エントリのリスト内の各値エントリが、選択されたフィールドに値が現れるレコードの個数のカウントをさらに含む、請求項４に記載の方法。
【請求項６】
特定のデータソースに対応する値エントリのリスト内の各値エントリが、選択されたフィールドに値が現れるレコードの前記特定のデータソース内のそれぞれの位置を識別する位置情報をさらに含む、請求項４に記載の方法。
【請求項７】
位置情報が、識別されたそれぞれの位置のビットベクトル表現を含む、請求項６に記載の方法。
【請求項８】
ビットベクトル表現が、圧縮されたビットベクトルを含む、請求項７に記載の方法。
【請求項９】
位置情報がデータを既に記憶していない位置を参照すると、前記位置情報が参照するデータを、記憶されたコピーに基づいて再構築する、請求項６に記載の方法。
【請求項１０】
追加したフィールドに、少なくとも１つのデータソースにおける１又は２以上の選択されたフィールド又はフィールドのフラグメントから計算されたデータを入力する、請求項１に記載の方法。
【請求項１１】
追加したフィールドに、少なくとも１つのデータソースにおける１又は２以上の選択されたフィールド又はフィールドのフラグメントから計算されたデータと、前記少なくとも１つのデータソースの外部のデータとを入力する、請求項１に記載の方法。
【請求項１２】
処理するステップが、１又は２以上のフィールドを第１の要約データのセットに追加するステップをさらに含む、請求項１に記載の方法。
【請求項１３】
分析するステップが、記憶した要約データのセットを分析して、所定の基準を満たすデータを記憶するデータソースのうちの少なくとも１つにおける、１若しくは２以上の選択されたフィールド又は１若しくは２以上の選択されたレコードの少なくとも一部を選択するステップを含み、
生成するステップが、記憶した要約データのセットの値に少なくとも部分的に基づいて、前記選択された一部のうちの少なくとも１つに関する観測結果を識別する情報を含むシステム情報を生成するステップを含む、請求項１に記載の方法。
【請求項１４】
データを特徴付けるための、コンピュータ可読記憶媒体に記憶されたコンピュータプログラムであって、前記コンピュータプログラムが、コンピューティングシステムに、請求項１〜１３のいずれかに記載の方法を実行させるための命令を含む、前記コンピュータプログラム。
【請求項１５】
データを特徴付けるためのコンピューティングシステムであって、
データを読み込み、データストレージシステムの異なるそれぞれのデータソースに記憶されたデータを要約した２又は３以上の要約データのセットを記憶するように構成された、前記データストレージシステムに接続されたインターフェースと、
請求項１〜１３のいずれかに記載の方法を実行させるように構成された少なくとも１つのプロセッサとを含む、前記コンピューティングシステム。
【請求項１６】
データを特徴付けるためのコンピューティングシステムであって、
データストレージシステムとのインターフェースからデータを読み込み、前記データストレージシステムの異なるそれぞれのデータソースに記憶されたデータを要約した２又は３以上の要約データのセットを記憶するための手段と、
前記データストレージシステムの複数のデータソースのデータを特徴付けるシステム情報を生成するために、前記記憶した要約データのセットを処理するための手段と
を含み、前記処理が、
前記記憶した要約データのセットを分析して、所定の基準を満たすデータを記憶する２又は３以上のデータソースを選択することと、
第１の前記選択したデータソースを要約し、記憶した要約データのセットの値と、第２の前記選択したデータソースを要約し、記憶した要約データのセットの値との比較に少なくとも部分的に基づいて、異なるデータソースに含まれるレコードのフィールド間の潜在的関係を識別する情報を含む前記システム情報を生成することとを含み、
前記処理が、以下のいずれか：
１又は２以上のフィールドを、前記複数のデータソースのうちの少なくとも１つの前記レコードに追加すること、或いは
それぞれの要約データのセットに対応するデータユニットを記憶することであって、前記データユニットのうちの少なくともいくつかが、前記対応する要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報を含むことと、
前記記憶されたデータユニットから集約した記述情報に基づいて、システム情報を生成することとを更に含む、前記コンピューティングシステム。
【請求項１７】
データを特徴付けるための方法であって、
データストレージシステムとのインターフェースからデータを読み込み、前記データストレージシステムの異なるそれぞれのデータソースに記憶されたデータを要約した２又は３以上の要約データのセットを記憶するステップと、
前記データストレージシステムの複数のデータソースのデータを特徴付けるシステム情報を生成するために、少なくとも１つのプロセッサを用いて、前記記憶した要約データのセットを処理するステップと
を含み、前記処理するステップが、
それぞれの要約データのセットに対応するデータユニットを記憶するステップであって、前記データユニットのうちの少なくともいくつかが、前記対応する要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報を含む、ステップと、
前記記憶したデータユニットから集約された記述情報に基づいて、前記システム情報を生成するステップと
を含む、前記方法。
【請求項１８】
少なくとも第１のデータソースに記憶されたデータを要約した第１の要約データのセットが、前記第１のデータソースに記憶されたレコードの少なくとも１つのフィールドに関して、フィールドに現れる相異なる値のリスト、及び各相異なる値が現れるレコードの個数のそれぞれのカウントを含む、請求項１７に記載の方法。
【請求項１９】
第１の要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報が、前記第１の要約データのセットに関連付けられた１又は２以上の潜在的問題を記述する問題情報を含む、請求項１８に記載の方法。
【請求項２０】
１又は２以上の潜在的問題が、候補主キーフィールドとして検出されるフィールドにおける重複する値の存在を含む、請求項１９に記載の方法。
【請求項２１】
第１の要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報が、第１のデータソースに記憶されたレコードのフィールドの入力の程度を記述する入力情報を含む、請求項１８に記載の方法。
【請求項２２】
第１の要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報が、第１のデータソースに記憶されたレコードのフィールドに現れる値の一意性の程度を記述する一意性情報を含む、請求項１８に記載の方法。
【請求項２３】
第１の要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報が、第１のデータソースに記憶されたレコードのフィールドに現れる値を特徴付ける１又は２以上の反復パターンを記述するパターン情報を含む、請求項１８に記載の方法。
【請求項２４】
データを特徴付けるための、コンピュータ可読記憶媒体に記憶されたコンピュータプログラムであって、コンピューティングシステムに、請求項１７〜２３のいずれかに記載の方法を実行させるための命令を含む、前記コンピュータプログラム。
【請求項２５】
データを特徴付けるためのコンピューティングシステムであって、
データを読み込み、前記データストレージシステムの異なるそれぞれのデータソースに記憶されたデータを要約した２又は３以上の要約データのセットを、データストレージシステムに記憶するように構成された、前記データストレージシステムに接続されたインターフェースと、
請求項１７〜２３のいずれかに記載の方法を実行するように構成された少なくとも１つのプロセッサとを含む、前記コンピューティングシステム。
【請求項２６】
データを特徴付けるためのコンピューティングシステムであって、
データストレージシステムとのインターフェースからデータを読み込み、前記データストレージシステムの異なるそれぞれのデータソースに記憶されたデータを要約した２又は３以上の要約データのセットを記憶するための手段と、
前記データストレージシステム内の複数のデータソースからのデータを特徴付けるシステム情報を生じさせるために、前記記憶された要約データのセットを処理するための手段と
を含み、前記処理が、
それぞれの要約データのセットに対応するデータユニットを記憶することであって、前記データユニットのうちの少なくともいくつかが、前記対応する要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報を含むことと、
前記記憶されたデータユニットから集約した記述情報に基づいて、前記システム情報を生成することと
を含む、前記コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照により本明細書に組み込まれている、２０１２年１０月２２日に出願した米国特許出願第６１／７１６，９０９号の優先権を主張する。
【０００２】
本明細書は、データストレージシステムにおけるデータソースを特徴付けることに関する。
【背景技術】
【０００３】
記憶されたデータセットは、種々の特徴が知られていないデータを含むことがしばしばある。例えば、データセットの値の範囲若しくは典型的な値、データセット内の異なるフィールドの間の関係、又は異なるフィールドにおける値の間の従属性が知られていないことがある。データプロファイリングは、そのような特徴を決定するためにデータセットのソースを検査することを伴うことがある。
【発明の概要】
【課題を解決するための手段】
【０００４】
一態様では、一般に、データを特徴付けるための方法が、データストレージシステムとのインターフェースからデータを読み込み、データストレージシステムの異なるそれぞれのデータソースに記憶されたデータを要約した２又は３以上の要約データのセットを記憶するステップと、データストレージシステムの複数のデータソースのデータを特徴付けるシステム情報を生成するために、少なくとも１つのプロセッサを用いて、記憶した要約データのセットを処理するステップとを含む。処理するステップが、記憶した要約データのセットを分析して、所定の基準を満たすデータを記憶する２又は３以上のデータソースを選択するステップと、第１の選択したデータソースを要約し、記憶した要約データのセットの値と、第２の選択したデータソースを要約し、記憶した要約データのセットの値との比較に少なくとも部分的に基づいて、異なるデータソースに含まれるレコードのフィールド間の潜在的関係を識別する情報を含むシステム情報を生成するステップとを含む。
【０００５】
態様は、以下の特徴のうちの１又は２以上を含むことができる。
【０００６】
処理するステップは、それぞれの要約データのセットに対応するデータユニットを記憶するステップであって、データユニットのうちの少なくともいくつかが、対応する要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報を含む、ステップと、記憶されたデータユニットから集約した記述情報に基づいて、システム情報を生成するステップとをさらに含む。
【０００７】
処理するステップが、１又は２以上のルールを、２又は３以上の第２の要約データのセットに適用するステップと、第２の要約データのセットを集約して、第３の要約データのセットを生成するステップと、第３の要約データのセットを記憶するステップとをさらに含む。
【０００８】
２又は３以上の第２の要約データのセットは、同じレコードフォーマットの２又は３以上のデータソースから導き出される。
【０００９】
１又は２以上のルールは、２又は３以上の第２の要約データのセットの間で１又は２以上の選択されたフィールドの値を比較する。
【００１０】
特定のデータソースに記憶されたデータを要約し、記憶した要約データのセットが、特定のデータソースにおけるレコードの少なくとも１つの選択されたフィールドに関して、値エントリの対応するリストを含み、各値エントリが、選択されたフィールドに現れる値を含む。
【００１１】
特定のデータソースに対応する値エントリのリスト内の各値エントリが、選択されたフィールドに値が現れるレコードの個数のカウントをさらに含む。
【００１２】
特定のデータソースに対応する値エントリのリスト内の各値エントリが、選択されたフィールドに値が現れるレコードの特定のデータソース内のそれぞれの位置を識別する位置情報をさらに含む。
【００１３】
位置情報が、識別されたそれぞれの位置のビットベクトル表現を含む。
【００１４】
ビットベクトル表現が、圧縮されたビットベクトルを含む。
【００１５】
位置情報がデータを既に記憶していない位置を参照すると、位置情報が参照するデータを、記憶されたコピーに基づいて再構築する。
【００１６】
処理するステップが、１又は２以上のフィールドを、複数のデータソースのうちの少なくとも１つのレコードに追加するステップをさらに含む。
【００１７】
追加したフィールドに、少なくとも１つのデータソースにおける１又は２以上の選択されたフィールド又はフィールドのフラグメントから計算されたデータを入力する。
【００１８】
追加したフィールドに、少なくとも１つのデータソースにおける１又は２以上の選択されたフィールド又はフィールドのフラグメントから計算されたデータと、少なくとも１つのデータソースの外部から（例えば、レコードをリッチ化するためのルックアップから）のデータとを入力する。
【００１９】
処理するステップが、１又は２以上のフィールドを第１の要約データのセットに追加するステップをさらに含む。
【００２０】
別の態様では、一般に、データを特徴付けるための方法であって、データストレージシステムとのインターフェースからデータを読み込み、データストレージシステムの異なるそれぞれのデータソースに記憶されたデータを要約した２又は３以上の要約データのセットを記憶するステップと、データストレージシステムの複数のデータソースのデータを特徴付けるシステム情報を生成するために、少なくとも１つのプロセッサを使用して、記憶した要約データのセットを処理するステップとを含む。処理するステップが、それぞれの要約データのセットに対応するデータユニットを記憶するステップであって、データユニットのうちの少なくともいくつかが、対応する要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報を含む、ステップと、記憶したデータユニットから集約された記述情報に基づいて、システム情報を生成するステップとを含む。
【００２１】
態様は、以下の特徴のうちの１又は２以上を含むことができる。
【００２２】
第１のデータソースに記憶されたデータを要約した少なくとも第１の要約データのセットが、第１のデータソースに記憶されたレコードの少なくとも１つのフィールドに関して、フィールドに現れる相異なる値のリスト、及び各相異なる値が現れるレコードの個数のそれぞれのカウントを含む。
【００２３】
第１の要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報が、第１の要約データのセットに関連付けられた１又は２以上の潜在的問題を記述する問題情報を含む。
【００２４】
１又は２以上の潜在的問題が、候補主キーフィールドとして検出されるフィールドにおける重複する値の存在を含む。
【００２５】
第１の要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報が、第１のデータソースに記憶されたレコードのフィールドの入力の程度を記述する入力情報を含む。
【００２６】
第１の要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報が、第１のデータソースに記憶されたレコードのフィールドに現れる値の一意性の程度を記述する一意性情報を含む。
【００２７】
第１の要約データのセットに関連付けられた１又は２以上の特徴を記述する記述情報が、第１のデータソースに記憶されたレコードのフィールドに現れる値を特徴付ける１又は２以上の反復パターンを記述するパターン情報を含む。
【００２８】
別の態様では、一般に、データを特徴付けるための、コンピュータ可読記憶媒体に記憶されたコンピュータプログラムが、コンピュータシステムに、上記方法のいずれかのステップを実行させるための命令を含む。
【００２９】
別の態様では、一般に、データを特徴付けるためのコンピューティングシステムが、データストレージシステム、及びデータストレージシステムからデータを受け取るように構成された入力デバイス又はポートと、上記方法のいずれかのステップを実行するように構成された少なくとも１つのプロセッサとを含む。
【００３０】
態様は、以下の利点のうちの１又は２以上を含むことができる。
【００３１】
いくつかのデータ処理及び／又はソフトウェア開発環境において、データ品質追跡プログラムの一態様が、データストレージシステム内のデータソースをプロファイリングして、プログラムがデータ品質を定量化することを可能にするプロファイルを生成することを含む。プロファイル内の情報及びプロファイルから抽出されたデータ品質情報は、ユーザ又はデータアナリストがデータをより良く理解することを可能にする。一意の及び相異なる値のカウント、最大及び最小値、又は一般的値及び非一般的値のリストなど、プロファイル内の情報に加えて、フィールド固有検証ルール（例えば、「クレジットカード番号フィールド内の値が１６桁の番号でなければならない」）をプロファイリングの前に行使することが可能であり、プロファイルは、フィールド毎に各検証ルールについての無効インスタンスのカウントを含むことになる。長い期間にわたって、データ品質指標（例えば、「無効なクレジットカード番号を有するレコードの割合」）が、同じフォーマット及び来歴を有するデータソースの系列がプロファイリングされていく時間の経過とともにデータ品質を監視するために定義され使用され得る。
【００３２】
プログラムによっては、データプロファイリング及びデータ品質追跡が、基本的に、フィールド毎に、したがって一度に１つのソースで考えられる（ただし、ソースのペアにわたるフィールドに関与するルールを許容する）。データプロファイリングにおける検証ルールは、フィールド又はフィールドの組み合わせのレベルで適用され、プロファイリングの前に指定され、フィールド固有値を分類する働きをする。複数の検証ルールを同じフィールドに適用してよく、それにより、分析されるレコードのそのフィールドに含まれる値に関して、単純に有効又は無効とするよりもリッチな分類がもたらされる。
【００３３】
データ品質指標は、データソースの特定のフィールドについて最初に定義された後で、プロファイリング後に適用されてよい。データ品質指標の値は、階層にわたってデータ品質測定値として集約されて、関連したフィールドのセットにわたる見通しを与える。例えば、顧客（Customer）データセット内の「名（first_name）」及び「姓（last_name）」フィールドの品質及び入力についてのフィールド固有データ品質指標が、「顧客名（customer name）」のデータ品質測定値に集約され、この「顧客名」は「顧客住所（customer address）」の同様の集約データ品質測定値と組み合わされて、「顧客情報（customer information）」のデータ品質測定値が計算され得る。それにもかかわらず、こうした要約はデータ固有であり、「顧客情報」データ品質測定値の意味及び有用性は、（製品データと対照的に）顧客データを含むフィールドにおけるその出自に由来する。
【００３４】
しかしながら、状況によっては、データ品質のシステムレベルの見通しが役に立つことがある。例えば、第１のシナリオにおいて、会社が１０００個のテーブルを含むリレーショナルデータベースを有する。１０００個のデータプロファイルは、すべての各テーブルに関する大量の有用な情報を含むことができるが、データアナリストによる相当なさらなる時間及び労力の投資なしには、全体としてのデータベースの見通しを提供することができない。特に、検証ルールが漸増的に展開されていくすべてのテーブルの再プロファイリングのコストが高くなり得る一方、プロファイリングを開始する前に検証ルールのフルセットを構築するための遅延が長くなり得る。
【００３５】
第２のシナリオでは、会社が新しい請求システムへの移行をしている。彼らの既存の請求システムは、複数のデータベースを含み、いくつかのデータベースは１０００個以上のテーブルを含んでいる。彼らは自身がデータ移行の開始前にデータをプロファイリングすべきことを知っているが、プロファイル結果のすべてを適時にどのように要約し、さらには、どのようにそれを活用するのだろうか。さらに、彼らは、データを移行しようとする前にデータが予め定められたデータ品質規格を満たすことを保証する必要がある。彼らはデータをきれいにする取組みにどのように優先順位を付けることができるのだろうか？
【００３６】
第３のシナリオでは、会社が複数のレプリカデータベースを有するが、それらのデータベースは独立して更新されること、及び場合によっては独立して修正されることを許可されている。それらが依然として同期しているか又は差異が何であり得るかは、誰も確信していない。彼らは、検証ルールの本体を構築する必要なしに、単にデータベースを比較したいのであり、彼らは検証自体よりも整合性について懸念している。
【００３７】
本明細書に説明される方法は、処理の順序と目的の観点の両方で、データプロファイリングとデータ品質追跡の間で実行され得る、バルクデータコンテキストを含む１又は２以上の特徴付け手順の適用に基づくデータの特徴付けを可能にする。いくつかの実施形態では、特徴付け手順が、データストレージシステム内のすべてのデータソースの複数のデータプロファイリングパスを必ずしも必要とせずに、検証ルール又は種々のデータ品質指標の効率的適用のために、プロファイル結果に基づくデータ特徴付けを可能にする。
【００３８】
本発明の他の特徴及び利点は、以下の説明及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００３９】
【図１】データソースを特徴付けるためのシステムのブロック図である。
【図２】データ特徴付け手順の概略図である。
【発明を実施するための形態】
【００４０】
図１を参照すると、データ処理システム１００が、データストレージシステムに記憶された１又は２以上のデータソース１０２（例えば、データベーステーブル又はレコードの集合を含む他のデータセット）からデータを読み込み、プロファイリングエンジン１０４を用いてそれらをプロファイリングする。データソース１０２を記憶するデータストレージシステムは、例えば、任意の個数のデータベースシステム若しくは記憶媒体を含むことができ、データ処理システム１００に統合されてよく、又は１若しくは２以上のローカル若しくはオンライン接続を介して接続されてもよい。プロファイリングエンジン１０４は、メタデータストア１０６から、レコードフォーマット情報、検証ルール、並びに任意に、データセット位置情報、及びプロファイル構成情報を読み込み、プロファイリングを準備する。プロファイルストア１０８に記憶されるプロファイル結果は、（フィールド、レコード、又はデータセットを含む）データソース１０２における任意のオブジェクトを要約する情報を含むことができる。例えば、フィールドレベルプロファイルは、データソースのレコードの特定のフィールド内に現れる値に関する情報を要約する。プロファイル結果は、選択されたフィールドに対する値エントリのリストとして配置されたセンサスデータを記憶する、要約センサスファイルを含むことができてもよく、各値エントリは、選択されたフィールドに現れる相異なる値を含んでおり、また、選択されたフィールドに相異なる値が現れるレコードの個数のカウントを含んでもよい。プロファイリングの後に、選択されたオブジェクトについてのプロファイル結果が、プロファイルストア１０８から読み込まれ、特徴付けエンジン１１０によって処理される。特徴付けエンジン１１０は、メタデータストア１０６又はユーザインターフェース１１２から、特徴付け手順、特徴付け構成情報、及びプロファイル識別情報を読み込んで、１又は２以上の選択された特徴付け手順を実行するための準備をする。ユーザインターフェース１１２からのユーザ入力は、特徴付けエンジン１１０の態様を直接制御することができ、それらには、どのプロファイルが特徴付けられるべきか、どの特徴付け手順（カテゴリーによってグループ分けされることがある）を適用すべきか、及びどんな閾値を特定の特徴付け手順で使用すべきかを選択することが含まれる。また、ユーザ入力は、適用すべき新しい特徴付け手順を構築するために用いることもできる。１又は２以上の特徴付け手順が１又は２以上のプロファイルに適用された後、データ（例えば、特徴付け手順の結果）が、経時的なデータ品質追跡及び監視のためにデータ品質エンジン１１４に渡されてもよい。
【００４１】
いくつかの実施形態では、プロファイルストア１０８に記憶されたセンサスファイルが、データソース内のどの特定のレコードが所与の値を含んでいるかを識別する位置情報を含むことができ、（選択された）データソースのインデックス付きの（圧縮されていてもよい）コピーが、インデックス付きソースアーカイブ１１６にアーカイブされてよい。これらのデータソースのコピーは、データソース（例えば、データベース）が経時的に変化している場合に、プロファイリング時のデータのスナップショットの役割をする。システム１００は、（例えば、ユーザインターフェース１１２を介した要求に応答して）「ドリルダウン」をサポートするために特徴付け手順の結果に付着された位置情報を使用することにより、データ特徴付け観測結果（特徴付け手順の結果）に対応するインデックス付きソースアーカイブ１１６の（原則的に網羅的セットの）レコードを取り出すことができる。取り出されたレコードは、さらなる処理及び／又は記憶のために他のデータ処理システムに転送されてもよい。いくつかの実施形態では、この位置情報表現は、ビットベクトルの形態をとる。値が現れるレコードの個数のカウントが値エントリに明示的に含まれない場合、それは位置情報から計算され得る。
【００４２】
１又は２以上の特徴付け手順に基づくデータ特徴付けは、データブラインド方法で適用することができ、フィールド内の特定の値及びそれらの意味が無視されて、それらのパターン、カウント、及び分布（例えば、プロファイル及びセンサスデータの構成要素）が優先される。例えば、いくつかの特徴付け手順の場合、フィールドが、「ｐ」、「ｑ」、及び「ｒ」の代わりに値「ｅｑｕｉｔｙ」、「ｂｏｎｄ」、及び「ｄｅｒｉｖａｔｉｖｅ」を保持することは重要でないが、フィールドが、１つの値を選択した分布を有する３つの値を含むことは重要であり得る。特徴付け手順は、一般に、プロファイル（又はセンサス）オブジェクトのクラス内の任意のオブジェクト、例えば、任意のフィールドレベルプロファイルに適用する。これは、同じ特徴付け手順が、オブジェクトの基礎にある意味論的意味の事前知識なしに、プロファイルオブジェクトのクラスのすべてのオブジェクトに適用され得ることを意味する。特徴付け手順の一部が、それ自体で、その適用可能性を決定することができる。
【００４３】
例えば、フィールドレベルプロファイルは、値の一般的パターン及びそれらに関連したカウント（すなわち、特定のパターンを示すレコードの個数のカウント）のリストを含むことができ、パターンの一例は、他のすべてのキャラクタ（例えば、スペース又は句読点）を変更しないままで、すべてのアルファベット文字を「Ａ」に置き換え、すべての数字を「９」に置き換えることによって、フィールド値から形成される。「支配的パターン（predominant-pattern）」特徴付け手順は、最も一般的な（非ブランク）パターンを有するレコードの割合を閾値と比較することにより、特定のパターンを有する値がフィールドに支配的に入力されているかどうかを決定するように構成され得る（「入力されたレコードの９５％より多くが一般的パターンを有する場合、フィールドにそのパターンが支配的に入力されている」）。この特徴付け手順はすべてのフィールドに適用され得るが、いくつかの特定のフィールドのみが、条件を満たし、「１つのパターンが支配的に入力された」データ特徴付け観測結果をもたらすことになる。パターンの他の例は、参照により本明細書に組み込まれる米国特許出願第２０１２／０１９７８８７号に記載されている。
【００４４】
特徴付け手順のデータ固有（意味論的）洗練及び拡張が可能であり、結果をリッチ化するために適用されてもよい。そのような拡張は、プロファイル若しくはセンサスデータにおける値の評価を必要とすることがあり、又はそのアイデンティティが特定の意味論的意義を有する特別な値を参照することがある。拡張された特徴付け手順は、やはり、それらのクラスのすべてのプロファイルオブジェクト（又は、特徴付け手順が関連するより前に条件を適用する場合はサブクラス）に適用されてよい。
【００４５】
特徴付け手順は、階層構造及び／又は条件付きであってよい。フィールドに１つのパターンが支配的に入力されていると決定されると、パターンの性質に応じて追加の特徴付け手順が適用されてよい。例えば、支配的パターン特徴付け手順が、フィールドに１６桁の数が支配的に入力されていることを検知（確認）した場合、２次（データ固有）特徴付け手順を呼び出し（起動し）、特定の１６桁の値がＬｕｈｎテストを満たすかどうかをチェックしてもよく、このテストは、最初の１５桁に適用されたアルゴリズムが１６桁目を決定した場合に成功である。値のサンプルが、一般的値及び非一般的値のリストにおけるフィールドレベルプロファイル内に提供され得る。サンプルは、ランダムな成功の機会が１０回に１回のみであるので、フィールド内の値がＬｕｈｎテストを満たす可能性があるかどうかを信頼して決定するのに十分であり得るが、相異なる値のフルセットが、異なる状況において又はテストに失敗する値の正確なセットを検知するために必要とされる場合、センサスデータ内に存在する。
【００４６】
データ特徴付けの１つの目的は、フィールドと意味論的内容との関連付けの事前知識なしに、データストレージシステムの入力構造から推論され得るものを、ユーザ、おそらくはデータアナリスト又はプログラマに通知するために、観測結果をカタログすることである。観測結果は、データプロファイリング及びデータ品質監視の価値判断（例えば、「無効」、「低データ品質」）を必ずしも示唆しないが、データの特徴（例えば、「支配的にヌル」、「候補主キー」）を単純に識別し得る。
【００４７】
意味論的コンテンツのフィールドの分離の例として、意味論的結論を推論するデータ特徴付けを考えると、Ｌｕｈｎテストを満たす１６桁の番号からなるフィールドの値が、有効なクレジットカード番号として推論される。Ｌｕｈｎテストを適用することによって有効なクレジットカード番号として１６桁の番号を認識する特徴付け手順が、特徴付け手順が開始される前に定義されるが、手順が適用される特定のフィールドは必ずしも事前に指定されず、これらのフィールドは特徴付けプロセス中に推定される。検証ルールと同様に、特徴付け手順は意味論的結論（「有効なクレジットカード番号」）を最終的に実現し得るが、特徴付けられるフィールドを推定するこの能力は、このタイプの特徴付け手順をおおよその検証ルールから区別する。データベース内に多数のテーブルを含むデータストレージシステムのコンテキストでは、差異が著しくなり得る。どのフィールドがクレジットカード番号を保持すべきかをデータベーススキーマから識別すること、及び、データプロファイリング中に実行される検証ルールに関して行われるように、クレジットカード検証ルールがそれらの識別されたフィールドのそれぞれに適用されるべきと指定することには、主題の専門知識及び相当な努力を必要とすることがある。対照的に、データプロファイリング後に適用されるデータ特徴付けは、プロファイル結果を活用して、どのフィールドに１６桁の番号が支配的に入力されているかを発見し、続いてＬｕｈｎテストをそれらのフィールド内の値に適用し、（例えば、テストを満たす値の統計に基づいて）どれがクレジットカード番号を含む可能性があるかを識別することができる。さらに、フィールドがクレジットカード番号を含むという実行結果（観測結果）を提供した後、無効なクレジットカード番号のサブセットが（センサスデータから）識別され抽出され得る。
【００４８】
このクレジットカード番号の例は、少なくともいくつかの検証ルールが、データを再プロファイリングすることなく、特徴付け手順として再キャストされ遡及的に適用され得ることを示す。
【００４９】
いくつかのデータ特徴付け結果は、それらの結果から引き出され得る潜在的な結論（例えば、「このフィールドはクレジットカード番号を保持する」又は「このフィールドは主キーである」）を伴ってもよい。システム全体で、他の観測結果（例えば、「このフィールドは支配的にヌルである」）とともに、これらの結論は、潜在的な結論及び観測結果の性質に基づいて種々の階層に従って、優先順位が付けられた様式で（例えば、結論での信頼性を示す評価とともに）カタログされユーザに提示され得る。これは、データストレージシステムのコンテンツの予備的アウトライン（例えば、キー識別、提示されたキー関係、列挙されたドメイン識別など）、潜在的結論（意味論的推論）を肯定又は否定するために主題の専門知識が必要とされるという表示、及び、それらが基礎的なデータ品質問題の兆候（例えば、参照整合性違反、ドメイン又はパターン違反、異常値など）であるかどうかを決定するために調査を必要とする問題を含む、それらのデータへの種々のエントリルートを、ユーザコミュニティに提供する。
【００５０】
複数のデータソースを記憶したデータストレージシステムにおいて、システムをどのように見るかの視点を提供するために、大まかなアウトラインであっても１又は２以上のロードマップを有することは有用である。データ特徴付けは、そのようなマップで入力し、それらを有用にするための詳細の一部を提供することができる。リレーショナルデータベースに関して、データベースのスキーマは１つのマップを提供するが、スキーママップは、データそれ自体から収集された情報で注釈が付けられたときに大幅にリッチ化される。データ特徴付けの後に入力されるユーザインターフェース内の注釈付きスキーマ図は、以下の質問に回答することができる。各エンティティ内にいくつのレコードがあるか？、エンティティ間の関係のカーディナリティは何か？、関係のカーディナリティが多対一又は多対多である場合、カーディナリティ度の分布（すなわち、Ｎ対１マッピングにおける数Ｎ）は何であるか、そして各々のカーディナリティ度はどのようなものか？
【００５１】
代替の視点は、コンテンツ領域以外のライン及びキー関係（例えば、主キー対外部キー関係）に沿ってスキーマが再表現されるときに可能である。例えば、１つの代替形態では、種々のフィールド内の値を有するレコードの複数のデータセットを記憶するデータストレージシステムが考えられ、データセットが、未処理のレコードカウント、又は最も多様なフィールド（典型的には１次キーフィールド）の相異なる値のカウントによってサイズで順序付けられ、最も密集したデータセットの間のキー関係パスの長さを最小にする２次構成を備える。この構成（表現）は、データの集中を強調する。フィールドの入力（例えば、入力されていない又はヌルのフィールド）を評価するデータ特徴付けの視覚的表示に結合されたとき、データの完全性又は包括性を確認することができる。データがより完全でない領域は、調査及び可能な修復のために識別され得る。
【００５２】
第２の代替形態は、個々のフィールドに焦点を当てることができ、フィールド毎に、そのフィールドに現れる関連したデータセットのセットを挙げる。システム１００は、フィールドの表現を含むユーザへの表示のための図を作成することができ、フィールド間のリンクが、それらが一般的データセットに属する場合に作成される。最も高く使用されたフィールドを中央に、最も使用されていないフィールドを図の領域の外側に配置することにより、順序付け全体が実行され得る。ここで、特徴付け問題は、例えば、フィールドに関連付けられた各データセットに特徴付けを関連付けることにより、この図の上部に重ねられ得る。例えば、フィールドに関連付けられたデータセットのリストは、各データセットとペアにされてそのデータセットフィールドペアで特徴付けられた状態を示す（異なる特徴付け状態にマッピングされた緑／黄／赤色を有する）トラフィック光インジケータを有してもよい。そうすると、特定のフィールドに結び付けられたデータセットにわたる特徴付けインジケータの相関が、視覚的に見分けることが容易となる。表示される特徴付け手順の選択は、その手順の結果のシステム全体の見通しの視覚化を提供するようにユーザによって変更され得る。
【００５３】
そのようなフィールド中心の見方が提供するデータ特徴付けの別の態様は、システム全体にわたる列挙されたドメイン値の使用を示す。いくつかの特定のフィールドは、しばしばエンコードされた、参照データを保持し、その参照データに対して、あるデータセットが、許容値のリスト及びそれらの説明を提供する。列挙されたドメインとして検知されているフィールドの入力の整合性を検証することが、一般的フィールドを共有するデータセットのリストを示すように構成された見方において可能となる。例えば、データセットは、列挙されたドメインの許容値のすべてを保持するデータセット、許容値のサブセットを保持するデータセット、及び許容値を超える付加的値を含むデータセットを区別するように塗色され得る。エンコードされた値のリストの類似性の測定値によって並び替えることにより、表示が整えられる。多数の特徴付けに関連付けられた結果を伝達しようとするとき、そのような視覚化はかなり有益である。
【００５４】
データ特徴付けが提供するデータソースへの他のエントリルートのうち、意味論的推論が潜在的に重要である。既に説明したように、可能なクレジットカードフィールドのリストを確認することは、スキーマ全体からそれらを識別することより容易なことがあり、したがって、開始時において、それが完全に正確でなくても、白紙状態（何もなされていない状態）よりも優れている可能性がある。同様に、特定の種類のデータ、例えば、社会保障番号のような個人識別情報の識別が、特にフリーテキストを含むフィールドで重要である多くのシナリオが存在する。特徴付け手順は、そのような情報を識別するために定式化され得る。
【００５５】
１  データプロファイリング
データソースのデータプロファイリングは、データ品質追跡プログラムの一部として実行することができる。個々のデータソースは、それらのコンテンツを要約するようにプロファイリングされてよく、これは、相異なる、一意、ブランク、ヌル、又は他のタイプの値の個数をカウントすること、各フィールド内の値をその関連付けられたメタデータと比較して、データタイプ仕様との整合性を判定すること（例えば、数値フィールドに文字があるか？）、検証ルールを１又は２以上のフィールドに適用して、例えば、ドメイン、範囲、パターン、又は整合性を確認すること、関数従属性に関してフィールドを比較すること、１又は２以上のデータセット内のフィールドをそれらの参照整合性（すなわち、フィールドが結合のためのキーとして使用された場合にデータがどのように一致するか）に関して比較することを含む。ユーザのためにプロファイリングを可視化した結果は、例えば、要約レポート又はデータプロファイルであり、これは、一般的、非一般的、又は他のタイプの値及び値のパターンのリストも含むことができる（例えば、すべての文字がＡに置き換えられ、すべての数字が９に置き換えられたとき、結果は、値における文字、数字、スペース、及び句読点の位置を示すパターンである）。データプロファイルを見るためのユーザインターフェースは、上記の情報を伝達するために種々のテーブル及びチャートからなることが可能であり、レポートから元のデータにドリルダウンする能力を提供することができる。データプロファイルは、正しいデータ処理を妨げるおそれがある欠損、不整合、無効、又は他の形の問題のあるデータを明らかにするために有用である。ソフトウェアの開発を開始する前にそのような問題を識別して対処することは、開発後に初めて問題に遭遇した場合にソフトウェアを修復しようとするよりもかなり低費用で容易である。
【００５６】
データプロファイルを実行する上で、データソースのすべてのフィールド内の相異なる値のフルセットと、それらの値を有するレコードの個数のカウントとを記録するセンサスファイルがあってよい。いくつかの実施形態では、元のレコードの位置（例えば、元のデータソース又はデータソースのコピー内の記憶位置）が所与の値を有するのを識別する位置情報も取り込まれる。
【００５７】
検証ルールは、種々のデータ固有の条件を検出するためにプロファイリング前に指定されてよい。例えば、フィールド内の値は、有効な値（若しくは既知の無効な値）の列挙されたリスト、又は有効な（又は無効な）値を含む参照データセットと比較することができる。有効若しくは無効な値の範囲、又は有効若しくは無効な値のパターンが指定されてもよい。複数のフィールド、閾値、事例ベースのビジネスロジックの階層を含むより複雑なルールが適用されてもよい。
【００５８】
データプロファイル情報は、粒度の複数のレベルにあってよい。例えば、データソース内のレコードの各フィールドに関連付けられたプロファイル情報、データソース内の各レコードに関連付けられた別のプロファイル情報、及び全体としてデータソースに関連付けられた別のプロファイル情報があってよい。
【００５９】
フィールドレベルプロファイル情報は、フィールド内の相異なる値の個数、一意の値（すなわち、一度発生する相異なる値）の個数、又はヌル、ブランク、若しくは他のタイプの値の個数を含む、カウントの数を含むことができる。種々の条件を検出し記録するために、プロファイルの処理中に閾値、範囲、又は互いに対して異なる数を比較するための問題ルールが作成され得る。或いは、相異なる値の個数が、一意の値の個数より大きい場合（「相異なる値の個数＞一意の値の個数」）、「このフィールド内に重複」があるはずである。システムレベルに要約されたとき、各問題のインスタンスの個数がカウントされ得る。
【００６０】
マルチフィールド又はレコードレベルプロファイル情報は、入力の相関パターン（例えば、フィールドのペアが共に入力されている若しくは共に入力されていない）を含む複数のフィールドを伴う検証ルールに関連付けられたカウント、相関値及び／又はパターン（例えば、ｃｏｕｎｔｒｙ＿ｃｄが「ＵＳ」である場合、郵便番号（zipcode）フィールドに５桁の数が入力されているはずである）、或いは、複数のフィールドの指定された組み合わせ（「複合キー」）の一意性を示すカウントを含むことができる。
【００６１】
データパターンコードフィールドが、フィールドの相関入力に関連付けられた特徴付け手順をサポートするために、プロファイリング前にレコードに追加され得る。データパターンコードは、１又は２以上のフィールド又はフィールドのフラグメントの１又は２以上のクラスにおける値の存在をエンコードするために割り当てられた値である。例えば、入力パターンコードが、以下の分類を使用してレコードの文字列フィールドについて構築され得る。すなわち、各文字列フィールドには、それがヌルである（存在しない）場合に「０」の値が割り当てられ、入力されている（存在し、空又はブランクでない）場合に「１」が割り当てられ、空である（存在するがデータを含まない、つまり空の文字列である）場合に「２」が割り当てられ、ブランクである（存在し、１又は２以上のスペースキャラクタ（空白文字）からなる）場合に「３」が割り当てられる。レコードの値は、レコード内に現れる文字列フィールドの順序セットのためのこれらの値の連結であり、例えば、５文字列フィールドレコードに対する「１１２３０」は、第１及び第２の文字列フィールドが入力されており、第３のフィールドが空であり、第４のフィールドがブランクであり、最後がヌルであることを示す。別のパターンコードは、２つの値のうちの１つ（例えば、０又は１、「Ｙ」又は「Ｎ」、「Ｍ」又は「Ｆ」）のみをとるインジケータフィールドの設定の集合をビットマップとして表現してよい。異なる値クラスを組み合わせることが、データパターンコードを構築するときに可能である。データパターンコードは、元のデータソースに戻ることなくレコードの複数のフィールドの間の相関に関して多くのレコードレベル検証ルールが定式化されることを可能にする。
【００６２】
データソースレベルプロファイル情報は、レコードの数、ボリューム、プロファイル実行の時間を含むことができる。システムレベルに処理されたとき、これは、データストレージシステムに記憶されたデータソースのレコードの個数及びボリュームの分布を与える。時間を経て、レコードの個数及び／又はボリュームの増加率が、個々のソース及び集合の両方について判定され得る。データ移行に関して、データベース内の入力されていないテーブル及びその割合、並びに他のテーブルの間のサイズ分布を知ることが、移行を計画するために役立つ。キャパシティ計画のために、データベースに追加されるレコードの個数及びボリュームの指標が重要である。
【００６３】
データプロファイリングは、本質的に一度に１つのソースとみなされることがある。各データソースに１つのプロファイルがあり、第２のデータソースとの参照整合性及び関数従属性を分析するデータソース間に時折、重複を伴う。
【００６４】
このタイプのプロファイリングを実行する上での課題は、センサスファイル及びデータプロファイルを計算するために長い時間がかかり得る大きなデータソース及び／又は多数のデータソースに関するものである。また、どんな検証ルールが適用するために興味ある又は適切であるかの事前知識がないことがある。或いは、多数のソースについて、プロファイリングが始まる前に、ソースの集合に対する検証ルールを定式化し適用するために長い時間がかかることがある。データソースのデータプロファイルは、最初に検証ルールなしに取得され得る。データプロファイルが分析され、候補検証ルールが定式化され、第２のプロファイルが生成される。長い時間をかけて、（徐々に）検証ルールが蓄積され洗練されて、プロファイルが再実行される。
【００６５】
２  特徴付け手順
特徴付け手順は、既存のデータプロファイル及びそれらの関連付けられたセンサスファイルに適用することができる。これは、データソースの所与の集合について、完全なプロファイルを生じさせる潜在的に高価なステップを１回のみ実行することを可能にする。これはまた、プロファイリングの開始前に、検証ルールの完全なセットの定式化の遅延を回避することができる。任意のフィールドレベルプロファイルに適用可能な予め定義された特徴付け手順の範囲は、完全なプロファイルの結果に最初に適用され得る。さらに、検証ルールにいくらか類似したデータ固有の特徴付け手順は、プロファイリングの開始前に（任意のプロファイル結果が利用可能になる前に）、１つより多くの完全なプロファイルを取得するコスト、又は検証ルールの完全なセットの定式化の遅延を被ることなく、漸増的に展開され得る。完全なデータプロファイルは、データソースが変化したときに要求に応じて再び生成されてもよく、特徴付け手順は、もたらされたデータプロファイルに適用されてよい。
【００６６】
以下の例における「システム」は、２又は３以上のデータソースを含むものとする。各データソースは、上述のように、一緒に又は別々に、ことによると複数のやり方で、プロファイリングされ、例えば、データの特徴付けから関数従属性及び参照整合性分析が分離される。これは、２又は３以上のデータプロファイルの集合及びそれらの関連したセンサスファイルをもたらす。特徴付けエンジン１１０は、データプロファイルの選択を処理する。特に、特徴付け手順が１又は２以上のプロファイルに適用されて、観測結果によりリッチ化された要約を生成する。また、特徴付け手順観測結果が、集約されるとともに追加の特徴付け手順を受けて、システムレベルの要約を生成し得る。システムは、場合によっては重複する方法で、グループ化されて、より大きなシステムを形成してよく、その結果は、データソース及びシステムの異なる組み合わせについての要約の集合となる。
【００６７】
（網羅的でなく例示的な）いくつかの例で、特徴付け手順をデータプロファイルに適用するときに実行され得る分析の種類を説明する。まず、フィールド及びレコードの入力の問題に注目する単一のプロファイルの分析を考える。フィールドにヌル値を含むレコードの割合が閾値より大きい場合（例えば、「ヌル値の個数／レコードの個数＞０．９５」）、問題「支配的にヌルのフィールド」が検出され記録され得る。或いは、ブランク、空、又はヌルのフィールドの個数が閾値より大きい場合（例えば、「ブランクの個数＋空の個数＋ヌルの個数＞０．９５」）、「支配的に入力されていないフィールド」がマーク付けされ得る。同様に、「特に入力されていないフィールド」を検出するために、ユーザが、調節可能な閾値を修正し、デフォルトで０．３に設定してもよい。
【００６８】
１又は２以上の値が偏って表現されるフィールドが関心（注意）の対象となり得る。いくつかの実施形態では、これは次のように検出され得る。値に関連付けられたレコードのカウントが、任意の値に関連付けられたレコードの平均カウントより上の２以上の標準偏差である場合、特徴付けエンジン１１０は、「支配的に入力されたフィールド」を報告し、支配的な値のリストを提供することができる。これは、一般的値のセット及びそれらのカウントから平均及び標準偏差を推定することによって計算することができる。また、すべての値のうちの支配的な値と、特定の値、例えば、ブランク若しくはヌル値（又はユーザ宣言「センチネル（sentinel）」値）を除外した支配的な値との両方を報告することが役立つことがある。例として、一般的値のリストが、カウント１０、１、及び１を有する３つの値を含むと想定する。平均カウントは、(１０＋１＋１)／３＝４である。標準偏差は、sqrt（（３６＋９＋９）／３）≒４．２である。したがって、１０＞４＋４．２が、最も大きいカウントを有する値が支配的に入力されることを示唆する。この手順は、値の知識を必要としない。
【００６９】
この手順のデータ固有の変形形態は、特定のデータ値を伴う。３つのフィールド値が「Ａ」、「Ｐ」、及び「Ｚ」であると想定し、「Ａ」レコードの割合が５０％より大きい場合に注目に値するとする。特徴付け手順は、以下のように「３つの値「Ａ」、「Ｐ」、及び「Ｚ」を含むフィールドについて、「Ａ」レコードの割合が５０％より大きい場合に注目に値する」として定式化されてよい。特徴付け手順は、まず、相異なる値のカウント３を有したフィールドを識別し、次いで、そのうち一般的な値である「Ａ」、「Ｐ」、及び「Ｚ」を有するものを識別し、最後に、「Ａ」の割合が５０％より大きいかどうかを識別する。第１印象では、これは不自然に見えるかもしれないが、手順が関連するフィールドが迅速に検知されて適切なテストがデータモデルの専門知識を必要とせずに適用されるので、実際には、システム内のすべてのフィールドにまとめて適用される場合に効率的である。
【００７０】
上述の手順のいくつかは、プロファイル出力に存在する１又は２以上のカウント、値リスト、又はカウント及びリストの関数を使用して、フィールドに関する入力問題を検出し、それを記録する。いくつかの実施形態では、特徴付けエンジン１１０によって実行されるプロファイルのセットの後続する要約が、各種類の観測結果の個数をカウントし、その観測結果が発生する各データセット／フィールド／プロファイルの３つから構成される組へのリンクを記録することができる。（複数のプロファイルが、特に時間の経過とともに、所与のデータセット／フィールドペアから作成され得るので、３つから構成される組が使用される。）このリンクは、観測結果が作成された各基礎的データセット／フィールド／プロファイルに対する最終的要約プロファイルレポートでの「ドリルダウン」をサポートするために記憶され得る。すると、問題を明らかにする特定のレコードを見るための識別されたプロファイル内のさらなるドリルダウンが、インデックス付きソースアーカイブ１１６を使用して可能となる。
【００７１】
場合によっては、より詳細な分析がプロファイルから行われることを可能にするために、プロファイルの実行前にデータセットをリッチ化することが有用である。例えば、上述のような入力のためのデータパターンコードが、プロファイリングの実行前にシステム１００によってデータに追加されてよい。入力されている又はされていない各フィールドの入力の状態は、記録のためにコードに組み込まれる。これにより、複数のフィールドにわたる相関入力パターンをプロファイルの分析で検出することが可能になる。例えば、２つのフィールドが、いつも両方とも、入力されているか入力されていないかのいずれかであり得る。これは、フィールドの各ペアの間のペアの相関を有するレコードの割合をチェックすることにより、入力パターンコードの集合から決定することができ、すなわち、「排他的ＮＯＲ」をとる、つまり、両方のフィールドが入力されている若しくは両方が入力されていない場合に１、そうでない場合に０をとることにより、入力のそれらの状態の論理的同等のレコードの割合を計算することができる。この種の一般的計算は、フィールドのコンテンツについて見えず、したがって、一括処理のコンテキストで適用することができる。
【００７２】
データ固有パターンコードはまた、有用な特徴付け手順をもたらす。例えば、元のレコードが、顧客名について該当する３つのフィールド「名（first）」、「ミドル（middle）」、「姓（last）」を含むと想定する。単純なパターンコードは、名が入力された場合の文字「Ｆ」、ミドルネームが入力された場合の文字「Ｍ」、及び姓が入力された場合の文字「Ｌ」の連結としてよい。いずれかのフィールドが入力されていない場合、対応する文字がコードに含まれていない。例えば、「ＦＭ」コードは、名及びミドルネームを含むが姓を含まないレコードを表す。プロファイルにおいて、各コードのカウントの数は、一般的値のリスト内に出される（より一般的には、すべての相異なる値のカウントが記録されるプロファイルの基礎となるセンサスファイルに存在する）。そして、ユーザは、いくつのレコードが名とミドルネームの両方を有するが姓を有していないかを、「ＦＭ」に関連付けられたカウントから決定することができる。この数は、入力パターンコードなしに、データセットのプロファイルに存在する名フィールド内の入力されたレコードのカウント及びミドルネームフィールド内の入力されたレコードのカウントから決定することはできない。
【００７３】
名及びミドルネームが入力されたときの姓の不在は、上流工程における特定のエラーの発生のインジケータとなり得る。この条件を有するレコードのカウントを監視することにより、会社は、このエラーの発生の頻度を監視し、問題を解決するための取り組みの有効性を検証することができる。
【００７４】
２又は３以上のフィールドの相関入力で示される問題は、診断するには微細であることが多く、したがって、プロファイル内の相関レコードを識別する手段を有することが有用である。問題の発生に対するフィールド間の相関の関係付けは最初にわからない場合がある。そのような関連付けは、特定のエラーを有することが知られるレコードのリストを、異なる入力パターンコードに関連付けられたレコードのリストと相関させることによって推定され得る。いったん関連付けが識別されると、何を探すべきかが知られる前に、過去にエラーが発生した頻度を決定するために、過去のプロファイルが使用され得る。これは、システム１００により、そのような相関を遡及的に識別することができる十分にリッチな入力コードを構築することによって可能にされ得る。データパターンコード及び関連したレコード位置情報を含む意図は、部分的にはこの種の遡及的分析を促進するためである。
【００７５】
フィールドの入力の単なる状態を考慮した後、可能な次のステップがフィールド内のキャラクタのパターンに注目する。例えば、文字が「Ａ」に置き換えられ、数字が「９」に置き換えられ、句読点及びスペースがそのままにされた場合、フィールド値を構成するキャラクタからパターンが形成される。しばしば、確立すべき最初のことは、支配的にフィールド内のエントリのすべてが同じパターンを満たすかどうかである。これ自体が、固定されたフォーマットのフィールドを、より制約されないテキストを含むフィールドから区別するので、検出され記録されるべき注目に値する特徴である。日付、クレジットカード番号、社会保障番号、及びアカウント番号などの多くのフィールド値は、特徴的パターンを有する。例えば、日付は、典型的には、種々の可能なフォーマットの８つの数、例えば、９９／９９／９９９９、９９９９−９９−９９、又は単純に９９９９９９９９からなる。これらの特徴的パターンの１つを認識すると、プロファイル内の一般的値のリストを、日付として検証するための関数に渡すことができ、この関数が、リスト内の値にわたって一貫して、同じ２桁が１と１２の間であり、さらに２桁が１と３１の間であり、残りの４桁が１９１０〜２０２０の範囲（ことによっては状況に応じてより狭い又はより広い）であるかどうかをチェックし得る。クレジットカード番号は、１６桁のフィールドであり、その最後の桁が、有効なクレジットカード番号であることを確認するためにＬｕｈｎテストによって検証することができる数字である。
【００７６】
フィールドが支配的であるが普遍的でないパターンを有する場合、例外がしばしば関心の対象となる。これは検出され記録され得る。位置情報、例えば、各パターンに関連付けられたレコードがプロファイルに記録された場合、それらは、要約レポートからドリルダウンで取り出すことができる。
【００７７】
フィールドにおけるパターンの検査はまた、フィールドのデータタイプ仕様に対するフィールドのコンテンツの検証を可能にする。この検証は、独立してプロファイルに記録され得るが、場合によっては、より詳細な分析をプロファイルから行うことができる。特に、例えば、表面上は数値のフィールドに文字がある場合に注目に値する。アカウント番号が、例えば、ＮＵＭＥＲＩＣ（１０）として指定されるが、プロファイルは、アカウント番号の最初の２つのキャラクタが実際には数字の代わりに文字であることを示すことがある。これが支配的パターンである場合、実際のアカウント番号が２つの文字で始まるという推論が導かれる可能性があり、それは、間違ったタイプ仕様である。これは、複数のプロファイルのうちの１つのプロファイルを準備している場合にプロファイルを分析した後に記録される結論であろう。
【００７８】
各フィールド内のデータのパターンを考慮した後、フィールド内の値のセットに注意が引き付けられ得る。第１の考慮事項は、フィールド内の相異なる値の個数である。（絶対数、又はレコードの個数に対して相対的に）比較的少数の相異なる値を有するフィールドは、しばしば、限られたセットの列挙された値から引き出される参照データを含む。そのようなフィールドは、相異なる値の個数がレコードの個数と匹敵するフィールドと異なる。これらは、典型的には、キー（レコードを一意に識別する）、又は、ファクト（各レコードでランダムに異なる取引量のような特定のデータ項目）である。さらに、キーは、データをリンクするために、他のデータセットで再使用されるが、ファクトはそうではない。データセット間の交差結合分析は、フィールド値の相対的一意性及び重複範囲に基づいて最初に提示されるキー関係を確認することができる。
【００７９】
関心のある値の第３のセットは、相異なる値のカーディナリティが、レコードの個数に匹敵せず、非常に小さくもないものである。これらの値は、外部キー又はファクトデータであり得る。他のプロファイル内のデータとの比較が、決定をするために必要であり得る。
【００８０】
比較的少数の相異なる値を有するフィールドのセットを考える。レコードの個数が相異なる値の（少ない）個数と等しいデータセットが、列挙された値の完全なセットを含む候補参照データセットである。候補参照データセット及びフィールドの識別が注目に値し、要約プロファイルに記録され得る。そのような参照データセットは、しばしば、同じ個数の相異なる値を有する少なくとも２つのフィールドを有し、一方は他のデータセットで再使用されるコードであり、他方は記述である。これらは、２つのやり方で区別され得る。第１に、記述は、典型的にはコードより自由なフォーマットである（セットのレコードにわたって不規則なパターンがある）。第２に、コードは、他のデータセットで再使用される。
【００８１】
一実施形態では、あるデータセットのあるフィールドのフィールド値の他のデータセットの他のフィールドでの再使用は、以下のやり方で決定することができる。フィールドレベルプロファイルの集合を取り上げる。相異なる値の個数が閾値（例えば１５０）より小さく相異なる値の個数が一意の値と等しい、それらのフィールドレベルプロファイルを探し出すことによって、候補参照データセットに対応するフィールドレベルプロファイルの部分集合を探し出す。次に、各候補参照データセットフィールド内の相異なる値のセットを残りのフィールドレベルプロファイルのそれぞれにおける相異なる値のセットと比較して、相当な重複を有するものを探し出す。データ品質問題があり得るため、一致は完全である必要はなく、実際、相当な重複の存在での不一致を検出することが、比較の１つの目的である。相当な重複は、候補参照データセットフィールドで１又は２以上の値を有する入力されたレコードの割合が閾値より大きいこととして定義され得る。これにより、関連付けを損なわずにソースデータセットにおける入力されていないレコードが許容され、それにより、（少数の）いくつかの無効な値（すなわち、候補参照データセットフィールドに存在しない値）が許容される。
【００８２】
この特徴付け手順は、異なるデータセットにおけるフィールド間の関連付けが未知であり、検知されなければならないときに、検知段階の際に有用である。そのような関連付けが知られて宣言されたときに後の段階の動作において、特徴付け手順は、不一致の値の閾値割合を超えるときを検出するように変更され得る。例えば、（例えば、新しいデータソースが上流に追加されたときに）新しい値がデータセットに追加されているが、参照データセットには（まだ）追加されていないことがある。これは、識別するために重要な変更である。したがって、同じセットの値を共有することが期待されているフィールド内の相異なる値のセットを比較することは、継続的に、データセットフィールドプロファイルに適用され得る重要なテストである。
【００８３】
２又は３以上のフィールドレベルプロファイルにおける相異なる値のセットが比較され得る種々のやり方がある。素朴な実施形態は、そのほとんどが成功の機会がない全対全のペア毎の比較であるので、特に、１０００個のテーブルを有するデータベースでそれが有することになる多数のフィールドレベルプロファイルに直面した場合に、比較の回数を減少させる手法は重要である。図２は、特徴付けエンジン１１０によって実行される特徴付け手順の一実施形態を示す。第１のステップは、相異なる値のカウントＮにより降順でデータセットＡ、Ｂ、Ｃ、Ｄの候補参照データセットフィールドのためのプロファイルのセット２００Ａ、２００Ｂ、２００Ｃ、２００Ｄを編成する。非参照データセットフィールドプロファイルと呼ばれる各残りのデータセットフィールドプロファイル、例えば、データセットＦに対するプロファイル２００Ｆの次に、特徴付けエンジン１１０は、相当な重複テストを満たすために必要な相異なる値の最小数を探し出す。これは、入力されたフィールド値の合計をとり、続いて、残りの入力されたレコードの割合が相当な重複閾値を下回るまで、最も一般的でないフィールドを除去することによって行われ得る。参照値の最小数は、残りのフィールド値の個数に１を足した数である。プロファイル２００Ｆにおいて、最後の値「ｓ」が廃棄され、値２０４に関して、「ｓ」を除外した入力されたレコードの割合は、（１６３＋１３０＋１２１）／（１６３＋１３０＋１２１＋９８）＝４１４／５１２であり、相当な重複閾値の０．９５より小さいことが見出される。これは、３＋１＝４つの値が、プロファイル２００Ｆにおいて値カウントとの相当な重複基準を満たすために参照データセットで必要とされることを意味する。４つより少ない値を含むいずれのデータセットも、プロファイル２００Ｆとの相当な重複テストを満たすことができず、その理由は、プロファイル２００Ｆから選ばれた３つ以下の値の任意のセットは、９５％より小さなＦレコードの割合に及んでおり、これは、３つの最も一般的な値が及ぶ割合を見出すことにより証明されている。これにより、相当な重複の機会となるにはそこで少なすぎる値を有する参照データセットは、考慮から外される。このケースでは、プロファイル２００ＤのデータセットＤの参照データセットフィールドが除去される。
【００８４】
次のステップは、非参照データセットフィールドの最頻値を各参照データセットフィールドと比較して、どの参照データセットフィールドでそれが発生しないかを決定する。最も一般的な値を含まない入力されたレコードのすべての入力されたレコードに対する割合が、相当な重複閾値より低い場合、最も一般的な値を含まない、いずれのデータセットフィールドも、相当な重複閾値を満たすことができないので除外することができる。この例では、２００Ｆにおける最も一般的な値は「ｐ」である。値「ｐ」を含まない入力されたレコードの割合は、（１３０＋１２１＋９８）／（１６３＋１３０＋１２１＋９８）＝３４９／５１２＜０．９５であり、相当な重複閾値より低い。これは、「ｐ」を含まないいずれの他のデータセットフィールドも除外できることを意味する。（一致がないレコードの割合が、相当な重複閾値が満たされ得ないのに十分な大きさである間、２つ以上の値が除外される必要があり得る。）
【００８５】
この比較を行う１つのやり方は、特徴付けエンジン１１０がルックアップデータ構造２０６（例えば、ルックアップテーブル）を構築することであり、ルックアップデータ構造２０６のエントリは、各参照データセットフィールド値、及びそのデータセット（又はデータセットプロファイル）において値が発生することを示す位置情報のベクトルからなる。エントリをラベル付けするフィールドが便宜上追加されてもよい。例示的ルックアップデータ構造２０６において、エントリ「ｐ１［Ａ，Ｂ，Ｄ］」は、プロファイル２００Ｆからの値「ｐ」がプロファイル２００Ａ、２００Ｂ、及び２００Ｄで発生することを示す（１は、エントリをラベル付けするフィールド値である）。ルックアップデータ構造２０６は、正規化された形態で保持されてもよく、各エントリは、値が発生する１つのデータセットプロファイルを識別する。ここで、ルックアップデータ構造２０６において「ｐ」値を探索することにより、関連した参照データセット「［Ａ，Ｂ，Ｄ］」を探し出すが、このうちＤは、有する参照値が少なすぎるとして既に除去されている。この探索の効果は、十分な個数の値を有するが最も一般的な値「ｐ」を含んでいないＣを除去することである。
【００８６】
最後に、相当な重複の条件が潜在的に満たされ得る参照データセットフィールド及び非参照データセットフィールドのペアのセットが与えられると、相異なる値のセットの直接比較を行うことができる。一実施形態では、この直接比較は、相異なる値のセットのベクトル交差を形成し、一致する残りのデータセットフィールドにおけるレコードの割合を決定し、相当な重複閾値との比較をすることによって行うことができる。第２の実施形態では、ビットベクトルが、参照データセットフィールドプロファイルと非参照データセットフィールドプロファイルとの両方で相異なる値のセットから形成され得る（候補参照データセットフィールドと候補非参照データセットフィールドとにわたって相異なる値の総計から各異なる値にビットを割り当てることにより、形成され得る。同じ値が２以上の参照データセットフィールドに存在する場合、それに１ビットのみが割り当てられる必要があることに留意されたい。）参照値のビットへの割り当ては、ルックアップデータ構造２０６の最初の２つの列によって示される。各参照データセットについて得られたビットベクトルは、システム情報２０８内に収集される。どの参照値がプロファイル２００Ｆに入力されたかを示すビットベクトルが、ビットベクトル２１２によって与えられている。５番目のビットは０であり、これは、参照値「ｔ」がプロファイル２００Ｆにプロファイリングされたデータセットフィールドに存在しないことを示す。プロファイル２００Ｆビットベクトル２１２、及びシステム情報２０８のＡ及びＢエントリにおける各ビットベクトルにおけるビットベクトルの単純な論理ＡＮＤは、共通して保持される相異なる値の集合を与える。そして、残りのデータセットフィールド内のレコードの割合が計算されて相当な重複閾値と比較され得る。結果２１４では、プロファイル２００Ａと２００Ｂの両方のデータセットフィールドがプロファイル２００Ｆの非参照データセットフィールドに対する可能な参照データセットフィールドであることが見出される。
【００８７】
いくつかの実施形態では、追加の特徴が、計算時間を減少させることができる。ルックアップデータ構造２０６に対する最も一般的な値に関する探索の後、いくつかの非参照データセットフィールドプロファイルが、図２のように２以上の参照データセットフィールドに対する候補一致となり得る。一度、非参照データセットフィールドを第１の参照データセットフィールドとペアにする一致が見出されると、非参照データセットフィールドは、一致する参照データセットフィールドに十分に類似する他の参照データセットフィールドに対する候補としてのみ考えられればよい。
【００８８】
追加の処理及び／又は前処理が、類似の参照データセットフィールドを識別するために使用される。そのような類似性の検出は、この計算最適化から独立して関心の対象となってよい。キー観測結果では、同じ数の値を有する参照データセットのすべてが同じ値を実際に共有するわけではないとされる。参照データセットフィールドプロファイルの集合は、互いに比較されて、それぞれがいくつの共有された値を有するかを見出すことができる。相当な重複テストが、非参照データセットフィールドと共有されなければならない相異なる値の最小数を既に決定している。プロファイル２００Ａを有する参照データセットフィールドＡが、プロファイル２００Ｆを有する非参照データセットフィールドＦに一致すると見出されている、すなわち、それらは、プロファイル２００Ｆを有する相当な重複テストを満たすのに十分な値を共有すると想定する。４つの値「ｐ」、「ｑ」、「ｒ」、及び「ｗ」からなるプロファイル２００Ｅを有する追加の参照データセットフィールドＥがあると想定する。この参照データセットフィールドは、４つの値を有し、したがって、上述のプロファイル２００Ｆを有する相当な重複テストを満たすのに十分な値を有する。しかし、データセットフィールドＥは、（相当な重複において）非参照データセットフィールドＦと一致することが知られる、データセットフィールドＡと共通して３つの値を共有するにすぎない。これは、実際、データセットフィールドＥが多くて３つの値を非参照データセットフィールドＦと共有し、したがって、相当な重複テストを失敗することを示す。候補参照データセットフィールド間の共有値の個数を知ることにより、いくつかの候補参照データセットフィールドを候補として拒絶することが可能となり、その理由は、それらが、非参照データセットフィールドを用いて有する共有値が確かに少なすぎるためである。知られている一致する参照データセットフィールドを用いて十分な個数の共有値を有する各候補参照データセットフィールドは、上述のように評価される。候補参照データセットフィールド及び非参照データセットフィールドの新しいペアの一部は、相当な重複の条件を満たすことができる一方、その他は満たすことができない。２以上が条件を満たす場合、ペアを明確にするためにさらなる知識が必要とされ得るので、それらはすべて候補一致として報告され得る。
【００８９】
相異なるフィールド値のいくつかの特定のセット、特に０、１、又はＹ、Ｎは、異なる意味を有して種々の異なるデータセットフィールドで使用される。それらの意味はコンテキストで（たいていはフィールド名から）明確であるので、それらは厳密に参照値ではなく、それらの意味を定義するために参照データセットは必要ない。しかしながら、それらは、発見段階での検出、及び動作の後の段階での監視のために重要である。非常に低いカーディナリティ（例えば、３又は４未満）のデータセットフィールドは、一致する参照データセットフィールドを有していない場合、インジケータフィールドでラベル付けされてそのように報告されてよい。後の処理で、特に時間の経過とともに、各値を有するレコードの割合の変化を監視することは重要となり得る。より高いが依然として低いカーディナリティのデータセットフィールドが、一致する参照データセットフィールドを有しない場合、これは、報告されてよく、また「関連した参照データを有しない低いカーディナリティのフィールド」であり得る。
【００９０】
データセットフィールド値リストを比較する第２の手法は、異なるが同様に重要な結論をもたらす。同じ又は類似のフィールド名を有するデータセットフィールドのセットを比較して、それらのフィールドコンテンツが類似しているかどうかを決定することができる。これは、同じ（又は類似の）名前を実際に共有するフィールドが同じ種類のデータを含むかどうかを決定する。いくつかのレガシシステムでは、特に記憶スペースが高価なメインフレーム上では、いくつかのフィールドが過負荷にされ、（例えば、ＣＯＢＯＬコピーブックで）フィールド名で示されるのと異なるデータが記憶される。他のシステムでは、システムの設計及び進化の変動のため、一般的用語が、相異なる種類のデータを保持する２以上のフィールドのためのフィールド名として使用されている。馴染みのないシステムがそのデータプロファイルを介して分析される発見モードでは、素朴なユーザが、フィールド名が同じ場合にそれらのフィールドが必ず類似のデータを保持するとみなすので、この種の不一致を明らかにしておくことが重要である。
【００９１】
比較のプロセスは、上記とほとんど同じであるが、例外は、類似の個数の相異なる値を有するデータセットフィールドを見出す比較の選択を行うのでなく、候補ペアは、それらが同じ又は類似のフィールド名を有するため見出されることである。編集距離に基づくファジーマッチングを使用してフィールド名を比較できるが、類似性の第２の形態も関連する。これは、同じ系列のキャラクタ（場合によっては、両方のフィールド名においていくつかの個数までの一致しないキャラクタ）が同じ順序で各フィールドに発生する場合、２つのフィールドを類似として識別するものである。これは、１つのフィールド名が他の部分列である、例えば、ＣｏｕｎｔｒｙとＯｒｉｇｉｎＣｏｕｎｔｒｙである、フィールドを識別する助けとなる。これは参照データセットフィールドで特によく発生するが、その理由は、特定の参照データセットフィールドからの値が別のデータセット内の同じレコードでの複数のフィールドで使用されることがあり、各フィールドはしばしば参照フィールド名の修正者によって変えられるからである。
【００９２】
この形態の類似性は、キャラクタを廃棄することによってフィールド名が変更されている、例えば、ＥｑｕｉｔｙＦｕｎｄｓＭａｒｋｅｔとＥｑＦｄｓＭｋｔである、候補ペアを識別する。これらの種類の変形例の両方が実際に観測されるが、前者がより一般的である。後者は前者と組み合わされることがあるが、その場合は、より大きな許容差が可能にされなければならない。例えば、１つのフィールド名における一致するキャラクタが、同じ順序で発生しなければならないが、他方で追加のキャラクタは無視される必要があり得る。そのとき、ｃｏｕｎｔｒｙ＿ｃｄ及びｏｒｇｎ＿ｃｎｔｒｙが一致となる。当然、これはより多くの一致を認めることになるので、さらなる比較を必要とし得る。
【００９３】
一致の組み合わせのユーザ可視性、及びさらなる評価のためにどの一致が受け渡されるべきかに関する制御（さらなるペアを追加する能力を含む）を提供することは、明らかに有益である。
【００９４】
一実施形態では、フィールド名に基づいてデータセットフィールドの候補ペアの集合を識別した後、相異なる値の比較的低いカーディナリティに関して、参照データセットフィールドの場合と同様に、相当な重複基準、一致が可能な候補を識別するための最頻値の探索、及び相異なる値セットの最終的に直接の比較を使用して、ペアが比較され得る。より高いカーディナリティセットの場合、結合分析又は参照整合性評価が必要とされ得る。いくつかの実施形態では、いくつの一致する値が各データセットに存在するかを見出すために、データセット毎にデータセットフィールド値及び値カウントからなるセンサスファイルを比較することを含む。この分析の結果は、値の重複が強くフィールド名が一致するデータセットフィールドを識別することであり、重複が強くない又はない場合、それはフィールドが過負荷であることを示し得るので、これは注目に値する。もちろん、２つのフィールドが強い重複を有することだけで、そちらが同じ量であることを必ずしも示唆しない。これは、偶然に重複し得る代理キーフィールドで特にあてはまり、その理由は、両方が、順次（又は準順次的に）生じさせられているキーのセットであるためである。いずれにしても、フィールド名が一致する場合、機能する仮定は、重複する値セットを有するデータセットフィールドが関係付けられることである。
【００９５】
値のセットを比較するときに行われ得る他のチェックの１つは、最大の数の一意の値（又は低いカーディナリティの相異なる値）を有するデータセットの最大及び最小値の外側にある値を探すことである。これは、異常値を示し得る。
【００９６】
比較の別の集合は、同じ論理データセットが時間の経過とともに繰り返しプロファイリングされるデータ監視シナリオに関連する。このシナリオでは、目下のデータ品質問題が、時間の経過を伴うデータ整合性に関する。一般ルールが、ベースライン平均値、平均値の変化率、平均曲線の周辺の変動の大きさ、及び他の統計測定値を計算するように定式化され得る。これは、特定の種類（入力された、ヌルなど）のレコードの個数のカウントと、値それら自体との両方に適用されてよい。回答され得る質問の中で、データ量は成長しているか？成長は単調かそれとも循環的か？データ品質問題の頻度はどうか（上記の問題の各クラス、すなわち、入力、パターン、列挙された値が、このやり方で分析され得る）。そのようなルールはまた、データパターンコードに適用されてよく、ことによると、時間の経過とともに生じるデータパターンの個数の変化（より大きなパターン変動が、データ量の増加に伴ってしばしば期待される）、又はパターンコードによって示されるフィールドの間の相関の変化を測定する。
【００９７】
上述の技法は、適切なソフトウェアを実行するコンピューティングシステムを使用して実装され得る。例えば、ソフトウェアは、１又は２以上のプログラムされた若しくはプログラム可能なコンピューティングシステム（分散型、クライアント／サーバ、又はグリッドなどの種々のアーキテクチャであってよい）上で実行される１又は２以上のコンピュータプログラムにおいて手順を含むことができ、コンピューティングシステムのそれぞれは、少なくとも１つのプロセッサ、（揮発性及び／若しくは非揮発性メモリ並びに／又はストレージ要素を含む）少なくとも１つのデータストレージシステム、（少なくとも１つの入力デバイス又はポートを使用して入力を受け取るため、及び少なくとも１つの出力デバイス又はポートを使用して出力を提供するための）少なくとも１つのユーザインターフェースを含む。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関係するサービスを提供する、より大きなプログラムの１又は２以上のモジュールを含むことができる。プログラムのモジュール（例えば、データフローグラフの要素）は、データ構造、又はデータリポジトリに記憶されたデータモデルに適合する他の編成されたデータとして実装され得る。
【００９８】
ソフトウェアは、ＣＤ−ＲＯＭなど、有形の非一時的媒体上、又は（例えば、汎用若しくは専用コンピューティングシステム若しくはデバイスによって可読の）他のコンピュータ可読媒体上で提供されてよく、或いは、ネットワークの通信媒体を介して、それが実行されるコンピューティングシステムの有形の非一時的媒体に送達されてもよい（例えば、伝搬信号にエンコードされる）。処理の一部又は全部は、専用コンピュータ上で、或いは、コプロセッサ若しくはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は専用の特定用途向け集積回路（ＡＳＩＣ）などの専用ハードウェアを使用して、実行されてよい。処理は、ソフトウェアにより指定された計算の様々な部分が異なるコンピューティング要素によって実行される、分散様式で実装されてよい。それぞれのそのようなコンピュータプログラムは、好ましくは、汎用又は専用のプログラマブルコンピュータによってアクセス可能なストレージデバイスのコンピュータ可読記憶媒体（例えば、ソリッドステートメモリ若しくは媒体、又は磁気媒体若しくは光媒体）上に格納され、又はダウンロードされて、ストレージデバイス媒体がコンピュータによって読み取られると、本明細書に説明された処理を実行するようにコンピュータを構成し又は動作させる。また、本発明のシステムは、コンピュータプログラムを備えて構成された有形の非一時的媒体として実装されると考えられてよく、そのように構成された媒体は、コンピュータを特定の予め定義された様式で動作させて、本明細書で説明された処理ステップの１又は２以上を実行させる。
【００９９】
本発明のいくつかの実施形態が説明されている。それでも、上記の説明は、添付の特許請求の範囲によって規定される本発明の範囲を限定することなく例示するように意図されていることは理解されよう。したがって、他の実施形態も添付の特許請求の範囲内にある。例えば、本発明の範囲から逸脱することなく種々の修正を行うことができる。さらに、上記に説明したステップのいくつかは、順序に依存しなくてよく、したがって説明と異なる順序で実行されてよい。
【図１】
0006357161.tif 000002
【図２】
0006357161.tif 000003