(57)【特許請求の範囲】
【請求項１】
１つ以上の子ノードについてのデータ品質に関連するメトリック値を特定するステップと、
上記子ノードの少なくとも幾つかのメトリック値に基づいて親ノードについてのメトリック値を特定するステップと、
１つ以上の親ノードと１つ以上の子ノードとの間の１つ以上の関係を表す階層を定義するステップと、
複数の特定について、上記親ノードについてのメトリック値の特定を繰り返すステップであって、上記複数の特定の少なくとも２つにおいて、上記親ノードと上記親ノードについてのメトリック値の特定において使用される１つ以上の子ノードとの間の関係が上記少なくとも２つの特定において同じであるステップと、
を含み、
上記１つ以上の子ノードについてのメトリック値若しくは上記親ノードについてのメトリック値の一方又は両方が、上記複数の特定の各々について特定され、そのメトリック値の履歴を表す時系列として格納される、方法。
【請求項２】
請求項１に記載の方法であって、上記親ノードについてのメトリック値の特定において使用される上記１つ以上の子ノードが子ノードを有していない方法。
【請求項３】
請求項１に記載の方法であって、上記子ノード及び親ノードによって表されるデータの特性を表すプロファイリング情報を生成するステップを更に含む方法。
【請求項４】
請求項３に記載の方法であって、上記子ノードについてのメトリック値が上記プロファイリング情報に基づくものである方法。
【請求項５】
請求項１に記載の方法であって、上記階層の配列がユーザによって規定される方法。
【請求項６】
請求項３に記載の方法であって、上記プロファイリング情報内の何れのデータフィールドが上記メトリック値の特定に影響を及ぼすかをユーザが規定する方法。
【請求項７】
請求項１に記載の方法であって、上記メトリック値の特定に影響を及ぼす１つ以上の予め構築された要因をユーザが選択する方法。
【請求項８】
請求項１に記載の方法であって、上記子ノードについてのメトリック値及び上記親ノードについてのメトリック値が０から１００までの数として表される方法。
【請求項９】
請求項１に記載の方法であって、上記１つ以上の子ノードについてのメトリック値若しくは上記親ノードについてのメトリック値の一方又は両方が、連続的な折れ線グラフ上の時間の関数として、複数の特定の各々について表示される方法。
【請求項１０】
請求項９に記載の方法であって、上記連続的な折れ線グラフが上記プロファイリング情報に基づいて自動的に生成される方法。
【請求項１１】
請求項９に記載の方法であって、上記連続的な折れ線グラフが、上記子ノードについてのメトリック値の特定を支配するルールにおける変化を示す方法。
【請求項１２】
請求項９に記載の方法であって、上記連続的な折れ線グラフが、上記親ノードについてのメトリック値の特定に使用されるメトリック値における変化を示す方法。
【請求項１３】
デバイス信号から値を得るのに使用するための実行可能なインストラクションを含むプログラムを格納するコンピュータ読み取り可能な記録媒体であって、上記インストラクションが、
１つ以上の子ノードについてのメトリック値を特定するステップと、
上記子ノードの少なくとも幾つかのメトリック値に基づいて親ノードについてのメトリック値を特定するステップと、
１つ以上の親ノードと１つ以上の子ノードとの間の１つ以上の関係を表す階層を定義するステップと、
複数の特定について、上記親ノードについてのメトリック値の特定を繰り返すステップであって、上記複数の特定の少なくとも２つにおいて、上記親ノードと上記親ノードについてのメトリック値の特定において使用される１つ以上の子ノードとの間の関係が上記少なくとも２つの特定において同じであるステップと、
をコンピュータに実行させるためのものであり、
上記１つ以上の子ノードについてのメトリック値若しくは上記親ノードについてのメトリック値の一方又は両方が、上記複数の特定の各々について特定され、そのメトリック値の履歴を表す時系列として格納される、コンピュータ読み取り可能な記録媒体。
【請求項１４】
請求項１３に記載のコンピュータ読み取り可能な記録媒体であって、上記親ノードについてのメトリック値の特定において使用される上記１つ以上の子ノードが子ノードを有していないコンピュータ読み取り可能な記録媒体。
【請求項１５】
請求項１３に記載のコンピュータ読み取り可能な記録媒体であって、上記子ノード及び親ノードによって表されるデータの特性を表すプロファイリング情報を生成するステップを更に含むコンピュータ読み取り可能な記録媒体。
【請求項１６】
請求項１５に記載のコンピュータ読み取り可能な記録媒体であって、上記子ノードについてのメトリック値が上記プロファイリング情報に基づくものであるコンピュータ読み取り可能な記録媒体。
【請求項１７】
請求項１３に記載のコンピュータ読み取り可能な記録媒体であって、上記階層の配列がユーザによって規定されるコンピュータ読み取り可能な記録媒体。
【請求項１８】
請求項１５に記載のコンピュータ読み取り可能な記録媒体であって、上記プロファイリング情報内の何れのデータフィールドが上記メトリック値の特定に影響を及ぼすかをユーザが規定するコンピュータ読み取り可能な記録媒体。
【請求項１９】
請求項１３に記載のコンピュータ読み取り可能な記録媒体であって、上記メトリック値の特定に影響を及ぼす１つ以上の予め構築された要因をユーザが選択するコンピュータ読み取り可能な記録媒体。
【請求項２０】
請求項１３に記載のコンピュータ読み取り可能な記録媒体であって、上記子ノードについてのメトリック値及び上記親ノードについてのメトリック値が０から１００までの数として表されるコンピュータ読み取り可能な記録媒体。
【請求項２１】
請求項１３に記載のコンピュータ読み取り可能な記録媒体であって、上記１つ以上の子ノードについてのメトリック値若しくは上記親ノードについてのメトリック値の一方又は両方が、連続的な折れ線グラフ上の時間の関数として、上記複数の特定の各々について表示されるコンピュータ読み取り可能な記録媒体。
【請求項２２】
請求項２１に記載のコンピュータ読み取り可能な記録媒体であって、上記連続的な折れ線グラフが上記プロファイリング情報に基づいて自動的に生成されるコンピュータ読み取り可能な記録媒体。
【請求項２３】
請求項２１に記載のコンピュータ読み取り可能な記録媒体であって、上記連続的な折れ線グラフが、上記子ノードについてのメトリック値の特定を支配するルールにおける変化を示すコンピュータ読み取り可能な記録媒体。
【請求項２４】
請求項２１に記載のコンピュータ読み取り可能な記録媒体であって、上記連続的な折れ線グラフが、上記親ノードについてのメトリック値の特定に使用されるメトリック値における変化を示すコンピュータ読み取り可能な記録媒体。
【請求項２５】
１つ以上の子ノードについてのメトリック値を特定する手段と、
上記子ノードの少なくとも幾つかのメトリック値に基づいて親ノードについてのメトリック値を特定する手段と、
１つ以上の親ノードと１つ以上の子ノードとの間の１つ以上の関係を表す階層を定義する手段と、
複数の特定について、上記親ノードについてのメトリック値の特定を繰り返す手段であって、上記複数の特定の少なくとも２つにおいて、上記親ノードと上記親ノードについてのメトリック値の特定において使用される１つ以上の子ノードとの間の関係が上記少なくとも２つの特定において同じである手段と、
を含み、
上記１つ以上の子ノードについてのメトリック値若しくは上記親ノードについてのメトリック値の一方又は両方が、上記複数の特定の各々について特定され、そのメトリック値の履歴を表す時系列として格納される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、データ品質トラッキングに関する。
【背景技術】
【０００２】
格納データセットは、種々の特性が事前に知られていないデータを含むことが多い。例えば、データセットについての値の範囲若しくは標準値、当該データセット内の異なるフィールド間の関係、又は異なるフィールドにおける値間での関数従属性が未知である場合がある。このような特性を特定するために、データプロファイリングは、データセットのソースを検査することを含むことができる。データプロファイリングシステムの１つの用途は、データプロファイリングの結果に基づいて、いずれかの単一のデータオブジェクトについて又はデータセット全体についてのデータ品質の尺度を特定することである。
【発明の概要】
【０００３】
１つの態様において、一般に、ある方法は、１つ以上の子ノードについてのデータ品質と関連するメトリック値を特定することを含む。当該子ノードの少なくとも幾つかのメトリック値に基づき、親ノードについてのメトリック値が特定され、１つ以上の親ノードと１つ以上の子ノードとの関係が階層を定義する。親ノードについてのメトリック値の特定は、複数のインスタンスについて繰り返される。
【０００４】
各態様は、以下の特徴の１つ以上を含むことができる。上記親ノードについてのメトリック値を特定するのに使用される上記１つ以上の子ノードは、子ノードを有していない。当該子ノード及び親ノードによって表されるデータの特性を表すプロファイリング情報が生成される。当該子ノードについてのメトリック値は、当該プロファイリング情報に基づくものである。階層の配列は、ユーザによって規定される。ユーザは、当該プロファイリング情報内の何れのデータフィールドが当該子ノードについてのメトリック値の特定に影響を及ぼすかを規定する。ユーザは、当該子ノードについてのメトリック値の特定に影響を及ぼす１つ以上の予め構築された要因を選択する。当該１つ以上の子ノードについてのメトリック値及び当該親ノードについてのメトリック値は、０から１００までの数として表される。当該１つ以上の子ノードについてのメトリック値若しくは当該親ノードについてのメトリック値の一方又は両方が、連続的な折れ線グラフ上の時間の関数として、複数のインスタンスの各々について表示される。当該連続的な折れ線グラフは、当該プロファイリング情報に基づいて、自動的に生成される。当該グラフは、当該子ノードについてのメトリック値の特定を支配するルールにおける変化を示す。当該グラフは、当該親ノードについてのメトリック値の特定に使用されるメトリック値における変化を示す。
【０００５】
もう１つの態様において、一般に、あるコンピュータ可読媒体は、デバイス信号から値を得るのに使用するための実行可能なインストラクションを格納し、当該インストラクションは、１つ以上の子ノードについてのメトリック値をコンピュータに特定させる。当該子ノードの少なくとも幾つかのメトリック値に基づき、親ノードについてのメトリック値が特定され、ここで、１つ以上の親ノードと１つ以上の子ノードとの関係が階層を定義する。親ノードについてのメトリック値の特定は、複数のインスタンスについて繰り返される。
【０００６】
各態様は、以下の特徴の１つ以上を含むことができる。上記親ノードについてのメトリック値を特定するのに使用される上記１つ以上の子ノードは、子ノードを有していない。当該子ノード及び親ノードによって表されるデータの特性を表すプロファイリング情報が生成される。当該子ノードについてのメトリック値は、当該プロファイリング情報に基づくものである。階層の配列は、ユーザによって規定される。ユーザは、当該プロファイリング情報内の何れのデータフィールドが当該子ノードについてのメトリック値の特定に影響を及ぼすかを規定する。ユーザは、当該子ノードについてのメトリック値の特定に影響を及ぼす１つ以上の予め構築された要因を選択する。当該１つ以上の子ノードについてのメトリック値及び当該親ノードについてのメトリック値は、０から１００までの数として表される。当該１つ以上の子ノードについてのメトリック値若しくは当該親ノードについてのメトリック値の一方又は両方が、連続的な折れ線グラフ上の時間の関数として、複数のインスタンスの各々について表示される。当該連続的な折れ線グラフは、当該プロファイリング情報に基づいて、自動的に生成される。当該グラフは、当該子ノードについてのメトリック値の特定を支配するルールにおける変化を示す。当該グラフは、当該親ノードについてのメトリック値の特定に使用されるメトリック値における変化を示す。
【０００７】
もう１つの態様において、一般に、あるシステムは、１つ以上の子ノードについてのメトリック値を特定するための手段を含む。あるシステムは、当該子ノードの少なくとも幾つかのメトリック値に基づき、親ノードについてのメトリック値を特定するための手段を更に含み、ここで、１つ以上の親ノードと１つ以上の子ノードとの関係が階層を定義する。あるシステムは、親ノードについてのメトリック値の特定を、複数のインスタンスについて繰り返すための手段を更に含む。
【０００８】
他の特徴及び利点は、以下の説明及び請求項から明らかである。
【図面の簡単な説明】
【０００９】
【図１】図１は、プロファイラエンジン及びデータ品質エンジンを含むシステムのブロック図である。
【００１０】
【図２】図２は、データセットについてのデータ品質メトリックを生成するプロセスを示すフローチャートである。
【００１１】
【図３】図３は、グラフィカルユーザインターフェースの例を示す。
【００１２】
【図４】図４は、階層の例である。
【００１３】
【図５】図５は、プロファイリング情報を表す値を生成するプロセスを示すフローチャートである。
【００１４】
【図６Ａ】図６Ａは、時間に対するメトリック値に基づくグラフである。
【００１５】
【図６Ｂ】図６Ｂは、概略報告に基づくグラフである。
【発明を実施するための形態】
【００１６】
図１を参照すると、データ処理システム１００は、オブジェクトデータストア１０２からのデータを処理するのに使用されるプロファイラエンジン１０４を含む。オブジェクトデータストア１０２におけるデータオブジェクトは、例えば、レコードフォーマットによって定義されるレコードのフィールドと関連するオブジェクトを含むことができる。ユーザインターフェース１０６を通して、ユーザ１１０は、オブジェクトデータストア１０２内のオブジェクトと関連する格納プロファイリング情報（時として、「フィールドプロファイル」と称される）にデータ品質エンジン１０８をアクセスさせることができる。当該データ品質エンジンは、オブジェクトデータストア１０２に格納されるオブジェクトについてのデータ品質（時として、「メトリック値」又は「データ品質メトリック」と称される）に関係のある情報を生成することができ、ユーザインターフェース１０６を通して当該生成された情報をユーザに表示することができる。
【００１７】
データソース１１２は、一般に、様々な個々のデータソースを含み、それらの各々は、独特な格納フォーマット及びインターフェース（例えば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブフォーマット）を有していてもよい。当該個々のデータソースは、例えば、同じコンピュータシステム上にホストされるなど、当該システムに対してローカルであってもよく、又は、例えば、ローカルエリア若しくはワイドエリアのデータネットワーク越しにアクセスされるリモートコンピュータ上にホストされるなど、当該システムに対してリモートであってもよい。
【００１８】
オブジェクトデータストア１０２は、データソース１１２におけるデータに関係する情報を含む。このような情報は、レコードフォーマット並びに、それらのレコードにおけるフィールド値のバリディティを特定するための仕様を含むことができる。データソース１１２内に出現するレコードの異なるフィールド間の関係（例えば、主キーと外部キーとの関係）は、様々な方法で表すことができる。例えば、オブジェクトデータストア１０２におけるデータオブジェクト間に存在する階層関係を、階層として表してもよい。
【００１９】
オブジェクトデータストア１０２を使用して、プロファイルされるべきデータソース１１２におけるデータセットに関する初期情報、並びに、このようなデータセットについて得られる情報を格納することができる。そのデータセットから当該プロファイリングプロセスによって導かれるフィールドプロファイルもまた、オブジェクトデータストア１０２に格納してもよい。
【００２０】
システム１００は、オブジェクトデータストア１０２からデータを読み取るプロファイラエンジン１０４を含む。データソース１１２から初めてデータを読み取る際、プロファイラエンジン１０４は、概して、そのデータソースにおけるレコードに関する幾つかの初期フォーマット情報によって起動する。（環境によっては、当該データソースのレコード構造さえ知られていない場合があることに注意。）レコードに関する初期情報は、ディスティンクト値を表すビット数（例えば、１６ビット（＝２バイト））及び値の順序（レコードフィールドと関連する値及びタグ又はデリミタと関連する値を含む）、並びに当該ビットによって表される値の型（例えば、文字列、符号有り／符号無し整数）を含むことができる。データソースのレコードに関するこの情報は、オブジェクトデータストア１０２に格納されるデータ操作言語（ＤＭＬ）ファイルにおいて規定される。プロファイラエンジン１０４は、事前に定義されたＤＭＬファイルを使用して様々な共通データシステムフォーマット（例えば、ＳＱＬテーブル、ＸＭＬファイル、ＣＳＶファイル）からデータを自動的に解釈したり、カスタマイズされたデータシステムフォーマットを既述するオブジェクトデータストア１０２から得られるＤＭＬファイルを使用することができる。また、プロファイラエンジン１０４が、ユーザが与えたＳＱＬ文及びＸＭＬスキーマについてのＤＭＬファイルを生成してもよい。
【００２１】
プロファイラエンジン１０４によるデータの初期読み取りに先立ち、データソースのレコードに関する、部分的で、ひょっとすると不正確な初期情報を当該システムが利用可能である場合もある。例えば、データソースと関連するＣＯＢＯＬコピーブックを、格納データとして利用可能である場合もあり、又はユーザインターフェース１０６を通してユーザ１１０が入力してもよい。一般に、フィールドプロファイルは、そのデータオブジェクトを包含するデータセットをプロファイルすることによって生ずるデータオブジェクトに関する統計情報のコレクションを指す。フィールドプロファイルは、概して、当該プロファイルが計算された日付に関する情報を含む。
【００２２】
プロファイラエンジン１０４は、データソースからレコードを読み取る際に、当該データセットの内容を反映する統計情報及び他の記述的情報を計算する。次に、プロファイラエンジン１０４は、それらの統計情報及び他の記述的情報を「プロファイル」の形式で、オブジェクトデータストア１０２に書き込む。これらの情報はオブジェクトデータストア１０２へのアクセスを有するユーザインターフェース１０６又は何らかの他のモジュールを通して後に検査することができる。場合によっては、当該プロファイルにおける統計情報は、例えば、各フィールドにおける値のヒストグラム、最大値、最小値、及び平均値、並びに最も希な値及び最も一般的な値のサンプルを含む。
【００２３】
当該データソースから読み取ることによって得られる当該統計情報は、様々な用途に使用することができる。このような用途には、未知のデータセットの内容を見出すこと、データセットと関連するメタデータのコレクションを蓄積すること、サードパーティデータを購入又は使用する前に検査すること、及び収集されたデータの品質管理スキームを実装することが含まれる。
【００２４】
オブジェクトデータストア１０２は、プロファイルされた各フィールドと関連するバリデーション情報を、例えば、当該バリデーション情報をエンコードするバリデーション仕様として、格納することができる。あるいは、当該バリデーション情報を、外部の格納先に格納し、プロファイラエンジン１０４によって読み出すこともできる。データセットがプロファイルされる前に、当該バリデーション情報が、各フィールドについての有効なデータ型を規定してもよい。例えば、あるフィールドが人の「称号」である場合、デフォルトの有効値は、「文字列」データ型であれば何れの値であってもよい。また、当該データソースをプロファイルするのに先立ち、「Ｍｒ．」、「Ｍｒｓ．」及び「Ｄｒ．」などの有効値をユーザが提供して、プロファイラエンジン１０４によって読み取られる他の値が何れも無効として識別されるようにしてもよい。また、プロファイリング実行（ｒｕｎ）から得られる情報をユーザが使用して、特段のフィールドについての有効値を規定することもできる。例えば、データセットをプロファイルした後に「Ｍｓ．」及び「Ｍｓｒ．」という値が共通値として現れるのを当該ユーザが見出す場合がある。当該ユーザは、「Ｍｓ．」を有効値として加え、データクリーニングオプションとして、「Ｍｓｒ．」という値を「Ｍｒｓ．」という値にマッピングしてもよい。このように、当該バリデーション情報は、有効値、及び無効値を有効値にマッピングすることによる無効値のクリーニングを可能とするマッピング情報を含むことができる。データソースに関するより多くの情報がプロファイリングの継続的な実行を通して見出されるので、当該データソースのプロファイリングを反復法で行ってもよい。
【００２５】
また、プロファイラエンジン１０４は、実行可能なコードを生成して、当該プロファイルされたデータシステムにアクセスすることができる他のモジュールを実装することもできる。このようなコードの例は、当該データソースへのアクセスプロシージャの一部として、「Ｍｓｒ．」という値を「Ｍｒｓ．」にマッピングしてもよい。
【００２６】
プロファイラエンジン１０４は、オブジェクトデータストア１０２を使用して、データオブジェクトにおける種々のメタデータ並びにプロファイリングの優先傾向及び結果を体系化し、格納する。オブジェクトデータストア１０２は、各々がプロファイリングジョブに関係する情報についてのものであるプロファイルセットアップオブジェクトのグループ、各々がデータセットに関係する情報についてのものであるデータセットオブジェクトのグループ、及び各々が特段のデータフォーマットを既述するＤＭＬファイルのグループを格納してもよい。プロファイルセットアップオブジェクトは、プロファイラエンジン１０４によって実行されるプロファイリングの実行についての優先傾向を包含する。ユーザ１１０は、新しいプロファイルセットアップオブジェクトを創出するのに使用される情報を入力したり、又は予め格納されたプロファイルセットアップオブジェクトを選択したりすることができる。
【００２７】
当該プロファイルセットアップオブジェクトは、データセットオブジェクトへの参照を包含する。データセットオブジェクトは、当該ランタイム環境内でアクセス可能な１つ以上のデータシステム上でプロファイルされるべきデータをプロファイラエンジン１０４が探し当てることを可能とするデータセットロケータを包含する。当該データセットロケータは、概して、パス／ファイル名、ＵＲＬ、テーブル名、ＳＱＬセレクト文、又は複数のロケーションにまたがって広がるデータセットについてのパス／ファイル名及び／若しくはＵＲＬのリストである。当該データセットオブジェクトは、任意選択的に、１つ以上のＤＭＬファイルへの参照を包含することもできる。
【００２８】
当該データセットオブジェクトは、フィールドオブジェクトのセットへの参照を包含する。プロファイルされるべきデータセットのレコード内の各フィールドについて１つのフィールドオブジェクトが存在する。プロファイラエンジン１０４によって行われるプロファイリング実行の完了時に、データセットプロファイルは、プロファイルされたデータセットに対応するデータセットオブジェクトと関連付けられる。当該データセットプロファイルは、レコードの総数及び有効／無効なレコードの総数、並びに当該データセットがプロファイルされた日時、及びプロファイリングにおいて使用されたバリデーションオブジェクトのバージョンなど、当該データセットに関係する統計情報を包含する。
【００２９】
フィールドオブジェクトは、任意選択的に、対応するフィールドについての有効値を特定したり、無効値をクリーニングするためのルールを規定したり（即ち、無効値を有効値にマッピングしたり）するのにプロファイラエンジン１０４が使用することができるバリデーション情報を包含する。当該フィールドオブジェクトもまた、プロファイリング実行の完了時に当該プロファイラエンジンによって格納される、ディスティンクト値、ヌル値、及び有効／無効な値の数など、対応するフィールドに関係する統計情報を包含するフィールドプロファイルと関連付けられる。また、当該フィールドプロファイルは、最大値、最小値、最も一般的な値、及び最も希な値などのサンプル値を含むこともできる。完全な「プロファイル」は、プロファイルされたフィールドの全てについてのデータセットプロファイル及びフィールドプロファイルを含む。
【００３０】
プロファイリング実行についての他のユーザ優先傾向は、当該プロファイルセットアップオブジェクト又は当該データセットオブジェクトに収集及び格納することができる。例えば、当該ユーザは、プロファイルされるフィールド、又は値の数を制限するのに使用することができるフィルター表現を選択することができる（値のランダムサンプル（例えば、１％）をプロファイルすることを含む）。
【００３１】
図２は、例えば、データセットをデータストアに変換及び格納する前にデータセットの品質を特定する等の様々な目的の何れかのためにデータセットをプロファイルして、その品質をテストするためのプロシージャ２００の例についてのフローチャートを示す。プロシージャ２００は、自動的に行うことも手動で行うこともできる。データセットの品質をテストするためのルールは、当該データセットの予備的知識から、及び／又は類似のデータセット（例えば、テストしようとするデータセットと同じソースに由来するデータセット）に対して行われたプロシージャ２００などのプロファイリングプロシージャの結果から、得ることができる。また、これらのルールをユーザがカスタマイズすることもできる（以下に詳細に論ずる）。このプロシージャ２００をビジネスで使用して、例えば、ビジネスパートナーから送られる定期的な（例えば、月々の）データフィードを、当該データをインポート又は処理する前に、プロファイルすることができる。これにより、当該ビジネスが「悪い」データ（例えば、無効値の割合が閾値よりも高いデータ）を検出して、取り消すことが困難である可能性があるアクションによって「悪い」データが既存のデータストアを「汚染」しないようにすることが可能となる。
【００３２】
プロシージャ２００は、先ず、当該ランタイム環境内でアクセス可能な１つ以上のデータシステム上でテストされるべきデータセットを識別する（２０２）。プロシージャ２００は、次に、当該データセット（又は当該データセットのサブセット）に対してプロファイルを実行し（２０４）、オブジェクトデータストア１０２（図１）などのロケーションにフィールドプロファイルを格納する（２０６）。当該プロシージャは、当該プロファイルの結果に基づいて品質テストを行う（２０８）。例えば、当該データセットにおける特段の共通値の発生割合を、（前のプロファイリング実行に基づく）前のデータセットにおける当該共通値の発生割合と比較することができ、これらの割合が互いに１０％を超えて異なる場合は、当該品質テストは失敗である。この品質テストは、一連のデータセットにおいて確実に発生する（発生頻度のばらつきが１０％以内）ことが知られている値に適用することができる。プロシージャ２００は、当該品質テストの結果を特定し（２１０）、そしてデータ品質メトリック（「データ品質尺度」とも呼ばれる）を使用して、当該テストされたデータの品質を表すデータ品質メトリック値を生成する。次に、別のデータセット又は同じデータセットを異なる時刻に識別することによって、当該プロシージャを繰り返すことができる。
【００３３】
以下により詳細に説明するように、例によっては、そのメトリック値が階層に従って関係付けられるデータオブジェクトにプロシージャ２００を適用することができる。データオブジェクト（又はデータオブジェクトのグループ）についてのデータ品質メトリック値を特定するにおいて、データ品質の何らかの尺度を示す（例えば、０〜１００の範囲内の）単一の値を当該システムが計算する。当該データ品質メトリックの計算は、当該データオブジェクトについてのフィールドプロファイルに適用される関数に基づく。
【００３４】
図３は、個々のデータ品質メトリックを定義するためのグラフィカルユーザインターフェース３００の例を示す。グラフィカルユーザインターフェース３００は、データオブジェクト３０４の名前（「物理要素名」と呼ばれる）、及び当該データオブジェクトがその一部であるデータセット３０２の名前を含む。ドロップダウンメニュー３０６は、単純な予め構築された尺度（「データ品質尺度」と呼ばれる）を使用して、データ品質メトリック値を生成するのに使用されるべきデータ品質メトリック（例えば、有効であったフィールドプロファイルにおいて見出される値の割合）を定義又は部分的に定義するオプションを当該ユーザに与える。編集ボタン３０８は、フィールドプロファイル内に包含される全てのデータフィールドを含む入力レコードを示す表現エディタを介してカスタム表現をユーザが定義することを可能とする。こうして、ユーザは、データ品質メトリック値を計算するための関数をカスタマイズすることができる。
【００３５】
フィールドプロファイルは２つのデータオブジェクト間の関係に関する情報を包含することができるので、このようなフィールド間情報によってデータ品質メトリックを定義することが可能である。例えば、別のデータオブジェクトとの重なりの割合によってデータオブジェクトの品質を定義することができる。また、要素のバリディティを既述するための複数の判定基準が存在する場合は、複数のデータ品質メトリックを単一のデータオブジェクトによって定義してもよい。
【００３６】
図４は、メトリック値の配列を示す。この配列においては、当該メトリック値は、親ノード（例えば、「顧客個人」ノード４０２）及び子ノード（例えば、「名」ノード４０４）の両方を含む階層４００において体系化される。親ノードは、親ノード及び子ノードの両方になることが可能である。例えば、「顧客個人」ノード４０２は、「名」ノード４０４に関しては親ノードであるが、「顧客情報」ノード４０６の子ノードである。この配列において、「名」ノード４０４は、子ノードを持たない「葉ノード」でもある。当該メトリック値を表すノード間の階層関係は、当該メトリック値によってその品質が測定されるデータオブジェクト間に存在する可能性がある何れの階層関係から独立であってもよい。
【００３７】
当該階層における種々のノードについて、ユーザ１１０（図１）は、ユーザインターフェース１０６（図１）を通して、データ品質メトリックを観察及び配列することができる。図４の例のように、例によっては、データ要素を、特別なインターフェースを通して追加及び削除したり、当該階層におけるあるロケーションから別のロケーションへと「ドラッグアンドドロップ」したりすることもできる。階層の配列は、組織内での責任の階層など、何れの階層構造に該当するものであってもよい。所定のデータオブジェクトについて格納された履歴データ品質メトリックに基づいて（又はデータ品質メトリック値を計算する元となる、格納された履歴プロファイリング情報に基づいて）、時間と共にデータ品質メトリック値をトラッキングするデータ品質履歴（以下により詳細に説明する）を計算することができる。観察及び報告が要求される際の要求に応じて、オンデマンド方式で、又はこれら２種の組み合わせによって、ノードの階層及びそれらの関連するメトリックが与えられるデータ品質履歴の計算を行うことができる。
【００３８】
例によっては、データ品質メトリックの計算において階層を使用してもよい。例えば、親ノードについてのデータ品質メトリック値（又は「メトリック値」）を計算するのに、プロシージャ５００が１つ以上の子ノードについてのメトリック値を特定する（５０２）。当該階層は、少なくとも１つの子ノード及び少なくとも１つの親ノードを包含する。プロシージャ５００は、少なくとも幾つかの子ノードのメトリック値に基づいて、親ノードのメトリック値を特定する（５０４）。当該親ノードと当該子ノードとの間の関係は、階層を定義する。この階層は、図４の例に似ていてもよいし、ユーザによってカスタマイズ可能であってもよい。例によっては、当該階層は、データ品質メトリックが計算される前に特定されてもよい。即ち、実装によっては、ステップ５０４がステップ５０２に先行してもよい。プロシージャ５００は、親ノードについてのメトリック値の特定を、複数のインスタンスについて繰り返す（５０６）。
【００３９】
対応する物理要素についての個々のデータ品質メトリック及びフィールドプロファイルのコレクション（又はデータ品質メトリック値の何らかの他の計算方法）があれば、メトリック値の時系列を作り出すことができる。結果として生ずる時系列は、そのメトリック値の履歴を表し、必要に応じて計算されるか、又は後の使用のために当該オブジェクトデータストアに格納されてメトリック仕様の表現と関連付けられるかの何れかが可能である。何れの場合も、その後、データプロファイラのユーザインターフェース１０６において図に記すことができる。
【００４０】
時間に対してデータ品質メトリック値をプロットするグラフの例を図６Ａに示す。グラフ６００Ａは、「顧客満足度」メトリックについて計算されたメトリック値の時系列を示す。ユーザがグラフ６００Ａにおける点６０２Ａの上にカーソルを動かすと、その点についての日付及び計算された品質値が表示される。当該バリデーション仕様がその前の値から変化した点は、当該グラフ上で黒い点によって印を付けられており、それらの上でカーソルを動かすと、当該バリデーション仕様における変化が示される。また、当該グラフ上の点は、当該計算において使用される子ノードについてのメトリック値が変化したインスタンスをも示す。即ち、当該特定において異なる子ノードメトリック値を使用した場合、当該グラフは、当該変化が起こった点を識別するであろう。また、当該グラフは、当該メトリック値を計算するのに使用されるメトリックの定義など、当該値の計算の他の要素が変化した点をも識別することができる。当該グラフの左上には、最新のデータ品質を「良好」、「要注意」、又は「不良」（それぞれ、緑色、黄色、又は赤色）として要約する着色ドット６０４Ａがある。
【００４１】
複数のデータ品質メトリックを「要約報告」（その一例は、図６Ｂにおいて見ることができる）としてグループ化することができる。要約報告は、階層に関係する上述の方法などの、複数のデータ品質メトリック値を単一の値として要約するためのルールを含む。ルールの例には、「最大」、「最小」、及び「平均」が含まれる。故に、要約報告を使用して、例えば、当該報告内に包含される全てのデータ品質メトリックについての値の平均である値を伴うデータ品質履歴を作り出すこともできる。
【００４２】
要約報告は、個々のデータ品質メトリックに加えて、他の要約報告を包含して、各々の報告がその要素を要約する報告の階層を結果として生ずることもできる。別の言い方をすれば、第３の親ノードに従属する２つの親ノードについてのメトリック値を使用して、当該第３の親ノードのメトリック値を計算してもよい。
【００４３】
要約報告の各要素についてのメトリック値の時系列があれば、当該要約報告それ自体についてのメトリック値の時系列を計算することができる。その後、当該時系列をグラフ化し、その成分についての時系列とみなすことができる。「顧客情報」という要約報告を図６Ｂに示す。当該要約報告内に包含されるメトリックは、グラフの上のテーブルに列挙されている。各々が、その最新の品質値、その値を上述のように要約する着色ドット、及びその履歴に対応するグラフのミニチュアによって示されている。これらのミニチュアグラフの１つを選択すると、そのグラフのフルサイズバージョンが「顧客情報」についてのグラフの上に重ねられる。図解では、「顧客とのコミュニケーション」が選択されている。
【００４４】
多くの理由（例えば、全ての計算されたフィールドプロファイルに関心がある訳ではない）から、当該時系列が計算可能なメトリック値のサブセットのみを含むことをユーザが望む場合がある。幾つかのフィールドプロファイルは部分データに基づいて計算されたものである場合があり、幾つかは最終的なプロファイル結果への途中の実験であった場合もあり、更に幾つかは誤って計算されたものである場合もある。故に、当該時系列の計算は、どのフィールドプロファイルを含むべきかを選ぶための何らかの判定基準を有する。１つの例示的な判定基準は、各暦日について最新の利用可能なフィールドプロファイル（例えば、最も最近のフィールドプロファイル）を常に選ぶことである。各暦日が始まったとみなされる日の時刻はユーザが定義することができる。即ち、暦日の定義を、日々の間の任意の期限を含むように延長してもよい。
【００４５】
フィールドプロファイルは、時間と共に変化することができるバリデーション仕様に部分的に依存して生ずる。故に、各メトリック値もまた、対応するフィールドプロファイルに適用されるバリデーション仕様のバージョンで注釈を付けられる。
【００４６】
個々のメトリック値もまた、時間と共に変化することができるメトリック仕様に依存する。故に、各メトリック値もまた、その値が計算された時刻に適用されたメトリックのバージョンで注釈を付けられる。
【００４７】
上述のアプローチは、コンピュータ上で実行するためのソフトウェアを使用して実装することができる。例えば、当該ソフトウェアは、各々が、少なくとも１つのプロセッサ、少なくとも１つのデータストレージシステム（例えば、揮発性及び不揮発性のメモリ及び／又は記憶素子）、少なくとも１つの入力装置又はポート、並びに少なくとも１つの出力装置又はポートを含む、１つ以上のプログラムされた又はプログラム可能なコンピュータシステム（分散型、クライアント／サーバ型、又はグリッド型など、種々のアーキテクチャのものであってもよい）上で実行する１つ以上のコンピュータプログラムにおけるプロシージャを形成する。当該ソフトウェアは、より大きなプログラム（例えば、グラフの設計及び構成に関係する他のサービスを提供するプログラム）の１つ以上のモジュールを形成していてもよい。
【００４８】
当該ソフトウェアは、汎用若しくは特殊目的のプログラム可能なコンピュータによって読み取り可能な媒体又はデバイスに提供されるものであっても、あるいは、それを実行するコンピュータへとネットワーク越しに（伝搬信号中にエンコードされて）届けられるものであってもよい。当該機能の全てを特殊目的のコンピュータ上で（又は、コプロセッサなどの特殊目的のハードウェアを使用して）行ってもよい。当該ソフトウェアは、当該ソフトウェアによって規定される計算の異なる部分が異なるコンピュータによって行われる分散方式にて実装してもよい。このようなコンピュータプログラムの各々は、汎用若しくは特殊目的のプログラム可能なコンピュータによって読み取り可能な記憶媒体又は記憶デバイス（例えば、固体メモリ若しくは固体媒体、又は磁気媒体若しくは光学媒体）が本明細書において説明されているプロシージャを行うコンピュータシステムによって読み取られる際に当該コンピュータを構成し、作動させるために、これらの記憶媒体又は記憶デバイスに格納又はダウンロードされるのが好ましい。また、本発明のシステムを、特定の事前に定義された方式にてコンピュータシステムを作動させて本明細書において説明されている機能を行わせるようにコンピュータプログラムによって構成されるコンピュータ可読記憶媒体として実装されるものと考えることもできる。
【００４９】
前述の説明は本発明の範囲を説明することを意図したものであり、本発明の範囲を限定することを意図したものではなく、本発明の範囲は、添付の請求の範囲によって定義されることが理解されるべきである。他の実施態様も、以下の請求の範囲の範囲内にある。
【図１】
0005535203.tif 000002
【図２】
0005535203.tif 000003
【図３】
0005535203.tif 000004
【図４】
0005535203.tif 000005
【図５】
0005535203.tif 000006
【図６Ａ】
0005535203.tif 000007
【図６Ｂ】
0005535203.tif 000008