JP2010267289A - データプロファイリング - Google Patents

データプロファイリング Download PDF

Info

Publication number
JP2010267289A
JP2010267289A JP2010153800A JP2010153800A JP2010267289A JP 2010267289 A JP2010267289 A JP 2010267289A JP 2010153800 A JP2010153800 A JP 2010153800A JP 2010153800 A JP2010153800 A JP 2010153800A JP 2010267289 A JP2010267289 A JP 2010267289A
Authority
JP
Japan
Prior art keywords
data
field
value
record
profiling
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.)
Granted
Application number
JP2010153800A
Other languages
English (en)
Other versions
JP5372851B2 (ja
Inventor
Joel Gould
ジョエル ゴールド
Carl Feynman
カール ファインマン
Paul Bay
ポール ベイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ab Initio Technology LLC
Original Assignee
Ab Initio Technology LLC
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 Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Publication of JP2010267289A publication Critical patent/JP2010267289A/ja
Application granted granted Critical
Publication of JP5372851B2 publication Critical patent/JP5372851B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • 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/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Operations Research (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Television Systems (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Numerical Control (AREA)
  • Holo Graphy (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)
  • Optical Communication System (AREA)

Abstract

【課題】データセットの特性を検査して、データセットの特性を決定する。
【解決手段】データを処理するための方法であって、データソースのデータレコードのフィールドの複数のサブセットを識別するステップと、前記複数サブセットのそれぞれに対する共出現統計を決定するステップと、前記複数サブセットの1つ以上を、前記識別サブセットの前記フィールド間に機能関連性があると識別するステップと、を含む。
【選択図】図1

Description

発明の詳細な説明
関連出願の相互参照
本出願は、2003年9月15日付の米国仮出願第60/502,908号、2003年10月20日付の第60/513,038号、および2003年12月22日付の第60/532,956号の優先権を主張するものである。
発明の背景
本発明はデータプロファイリングに関する。
格納データセットには、各種の特性が事前に把握されていないデータが含まれることが多い。例えば、データセットの値の範囲もしくは代表的な値、データセット内の異なるフィールド間の関係、または異なるフィールドの値の間の機能依存性が未知のことがある。データプロファイリングは、データセットのソースを検査して、このような特性を決定することに関わるものである。データプロファイリングシステムの一利用法としては、データセットについての情報を収集し、その情報を用いて、データセットをロードするためのステージング領域を設計してから、後続の処理に進むということがある。その場合、データプロファイリングで収集された情報に基づいて、データセットを所望の目標フォーマットおよび配置にマッピングするのに必要な変換がステージング領域内で実行できる。このような変換は、例えば、サードパーティのデータに既存データ格納との互換性をもたせたり、または古いコンピューターシステムから新しいコンピューターシステムにデータを転送したりするのに必要なことがある。
発明の概要
一態様では、一般に、本発明は、データを処理するための方法、および対応ソフトウエア、ならびにシステムを特徴とする。データソースからのデータをプロファイリングする。このプロファイリングには、データソースからデータを読み取るステップ、データを読み取りながらデータを特性付ける要約データを計算するステップ、および要約データに基づくプロファイル情報を格納するステップが含まれる。本処理には、格納プロファイル情報へアクセスするステップ、およびアクセスしたプロファイル情報に従ってデータを処理するステップが含まれる。
別の態様では、一般に、本発明はデータを処理するための方法を特徴とする。データソースからのデータをプロファイリングする。このプロファイリングには、データソースからデータを読み取るステップ、データを読み取りながらデータを特性付ける要約データを計算するステップ、および要約データに基づくプロファイル情報を格納するステップが含まれる。データのプロファイリングには、データを並列にプロファイリングするステップが含まれ、その並列プロファイリングには、データをパーツへパーティション化するステップ、および並列成分の第1セットのうちの別々のものを用いてパーツを処理するステップが含まれる。
本発明の態様には、以下の特徴のうちの1つ以上を含めることができる。
データソースからのデータを処理するステップには、データソースからデータを読み取るステップが含まれる。
データプロファイリングステップは、データソース外にデータのコピーを維持せずに実行される。データには、例えば、条件付きフィールド、および/または可変数フィールドなどの、可変レコード構造をもつレコードを含めることができる。データを読み取りながら要約データを計算するステップには、データを特性付ける要約データを計算しながら可変レコード構造のレコードを解釈するステップが含まれる。
データソースには、データベースシステム、または直列もしくは並列ファイルシステムなどの、データ格納システムが含まれる。
要約データ計算ステップには、フィールドに対する別個の値のセット毎の出現数をカウントするステップが含まれる。プロファイル情報には、前記フィールドに対する出現数カウントに基づくフィールド統計を含めることができる。
データソースに関連するメタデータを収容するメタデータ格納が維持される。プロファイル情報格納ステップには、データソースに関連するメタデータを更新するステップを含めることができる。データプロファイリングステップ、およびデータ処理ステップはそれぞれ、データソースのメタデータを利用することができる。
データソースからのデータをプロファイリングするステップには、プロファイル情報に基づいてフォーマット仕様を決定するステップがさらに含まれる。また、プロファイル情報に基づいて検証仕様を決定するステップも含めることができる。妥当でないレコードは、フォーマット仕様、および/または検証仕様に基づいてデータ処理中に識別できる。
データ変換命令は、プロファイル情報に基づいて指定する。従って、データ処理ステップに、データへ変換命令を適用するステップを含めることができる。
データ処理ステップには、データ格納サブシステムへデータをインポートするステップが含まれる。データを検証してからデータ格納サブシステムへデータをインポートできる。このようなデータ検証には、データの統計特性を比較するなど、データ特性をデータの基準特性と比較するステップを含めることができる。
データプロファイリングステップは、並列に実行できる。これには、データをパーツへパーティション化するステップ、および並列成分の第1セットのうちの別々のものを用いてパーツを処理するステップを含めることができる。データの異なるフィールドについて要約データを計算するステップには、並列成分の第2セットのうちの別々のものを使用するステップを含めることができる。並列成分の第1セットの出力を再パーティション化して、並列成分の第2セットに対する入力を形成できる。データは並列データソースから読み取ることができ、並列データソースの各パーツは、並列成分の第1セットのうちの異なるものにより処理される。
別の態様では、一般に、本発明は、データを処理するための方法、および対応するソフトウエア、ならびにシステムを特徴とする。第1データソースのレコードの第1フィールドの値を特性化する情報、および第2データソースのレコードの第2フィールドの値を特性化する情報を受け取る。次いで、第1フィールドと第2フィールドとの間の関連性を特性化する量を、受け取った情報に基づいて計算する。第1フィールドと第2フィールドとを関連付ける情報を表示する。
本発明の態様には、以下の特徴のうちの1つ以上を含めることができる。
第1フィールドと第2フィールドとを関連付ける情報は、ユーザーに提示される。
第1データソースおよび第2データソースは、同一のデータソースか、または別々のデータソースである。データソースのいずれか、または両方は、データベーステーブル、またはファイルとすることができる。
関連性を特性化する量には、第1フィールドの値と第2フィールドの値との結合特性を特性化する量が含まれる。
第1フィールドの(または同様に、第2フィールドの)値を特性化する情報には、そのフィールドの値分布を特性化する情報が含まれる。このような情報は、「センサス(census)」データ構造などの、データ構造に格納してもよい。第1フィールドの値分布を特性化する情報には、多数のデータレコードを含めることができ、そのそれぞれは、第1データソースの第1フィールドにある異なる値と、その値の対応する出現数とを関係付ける。同様に、第2フィールドの値分布を特性化する情報には、同一または同様のフォーマットの多数のレコードを含めることができる。
第1フィールドの値、および第2フィールドの値分布を特性化する情報を処理して、多数の異なる値共出現カテゴリに関連付ける量を計算する。
値共出現カテゴリに関連付ける量には、多数のデータレコードが含まれ、そのそれぞれは、共出現カテゴリの1つと関係付けられ、そのカテゴリにある第1および第2のフィールドの異なる値の数が含まれる。
第1フィールドおよび第2フィールド上における第1データソースおよび第2データソースの「結合(join)」の値の分布を特性化する情報をそれぞれ計算する。この計算には、複数の値共出現カテゴリに関連付ける量を計算するステップを含めることができる。このようなカテゴリの実施例には、第1および第2のフィールドの一方に少なくとも一回出現するが他方のフィールドには出現しない値、第1および第2のフィールドのそれぞれに唯一回出現する値、第1および第2のフィールドの一方に唯一回出現し、他方のフィールドに二回以上出現する値、および第1および第2のフィールドのそれぞれに二回以上出現する値が含まれる。
値を特性化する情報を受け取るステップ、および値の結合特性を特性化する量を計算するステップは、多数の異なるフィールド対、すなわち、第1データソースからの一方のフィールド、および第2データソースからの他方のフィールドについて繰り返される。これにより、複数のフィールド対のうちの1つ以上のフィールドに関連する情報をユーザーに提示できる。
フィールド対のうちの1つ以上のフィールドに関連する情報を提示するステップには、フィールドの関連性の候補の種類を識別するステップが含まれる。このようなフィールドの関連性の種類の実施例には、一次キーと外部キーとの関連性、および共通ドメイン関連性が含まれる。
別の態様では、一般に、本発明は、データを処理するための方法、および対応するソフトウエア、ならびにシステムを特徴とする。データソースのデータレコードのフィールドの複数サブセットを識別する。複数サブセットのそれぞれについて共出現統計を決定する。複数サブセットのうちの1つ以上を、識別サブセットのフィールド間に機能関連性があると識別する。
本発明の態様には、以下の特徴のうちの1つ以上を含めることができる。
フィールドのサブセットの少なくとも1つは、2つのフィールドのサブセットである。
複数サブセットのうちの1つ以上について、識別サブセットのフィールド間に機能関連性があると識別するステップには、複数サブセットのうちの1つ以上が、可能性のある所定の複数の機能関連性のうちの1つを有すると識別するステップが含まれる。
共出現統計を決定するステップには、それぞれが一対のフィールドを識別するデータ構成要素を形成するステップ、およびデータレコードのうちの1つにあるそのフィールド対に出現する一対の値を識別するステップが含まれる。
共出現統計を決定するステップには、第1フィールドおよび第2フィールドを有するデータレコードをパーツへパーティション化するパーティション化ステップと、そのパーツの最初において1つ以上のレコードの第1フィールドに出現する共通の値を有し、その1つ以上のレコードの第2フィールドに出現する値の分布に基づいて量を決定する決定ステップと、その量と全体の量を生成するための他のパーツのレコードからの他の量とを組み合わるステップとが含まれる。
複数サブセットのうちの1つ以上について、識別サブセットのフィールド間に機能関連性があると識別するステップには、全体の量に基づいて第1および第2のフィールド間の機能関連性を識別するステップが含まれる。
パーツは、第1フィールドおよび第2フィールドの値に基づく。
パーツは、並列成分のセットのうちの別々のものを用いて処理する。
複数サブセットのうちの1つ以上について、識別サブセットのフィールド間に機能関連性があると識別するステップには、機能関連性に対する一致度を決定するステップが含まれる。
一致度には、機能関連性と整合しない幾つかの例外レコードが含まれる。
機能関連性には、第1フィールドの少なくとも幾つかの値の、第2フィールドの少なくとも幾つかの値へのマッピングが含まれる。
例えば、マッピングは、多対一のマッピング、一対多のマッピング、または一対一のマッピングとすることができる。
本方法には、複数のサブセットのフィールドの値を特性化する情報に基づいて複数のサブセットをフィルタ処理するステップが更に含まれる。
データレコードには、1つ以上のデータベーステーブルのレコードが含まれる。
本発明の態様には、以下の利点のうちの1つ以上を含めることができる。
本発明の態様は、様々なシナリオにおいて利点を提供する。例えば、アプリケーションの開発に際して、開発者は入力データセットを用いてアプリケーションを試験することができる。試験データセットを用いたアプリケーション実行の出力を、予測される試験結果と比較するか、または手動で検査する。しかしながら、現実的な「生成データ(production data)」を用いてアプリケーションを実行する場合、得られた結果は検査で検証するには大きすぎるのが通常である。データプロファイリングはアプリケーションの挙動を検証することに用いることができる。生成データを用いてアプリケーションを実行することにより生成される全レコードを検査する代わりに、出力のプロファイルを検査する。データプロファイリングにより、アプリケーション設計の不具合を示唆する出力の予期しないパターンまたは分布は無論のこと、妥当でないか、または予期しない値を検出できる。
別のシナリオでは、データプロファイリングは、生産プロセスの一部として用いることができる。例えば、通常の生産工程の一部である入力データをプロファイリングできる。データのプロファイリングが終了してから、処理モジュールは、プロファイル結果をロードし、入力データが特定の品質基準を満たすことを検証できる。入力データが良好でないように見える場合、生産工程をキャンセルでき、しかるべき人が警告を受ける。
別のシナリオでは、定期的にデータをプロファイリングすることにより、大規模な収集データ(例えば、多数のデータセット内の数百のデータベーステーブル)の定期的監査を実行できる。例えば、データプロファイリングは、データのサブセットについて毎晩実行できる。全てのデータがプロファイルされるように、プロファイリングするデータを巡回し、例えば、全てのデータベーステーブルが年に4回プロファイルされるように四半期に一回巡回する。これは、必要に応じて後で参照できる全データに関する履歴データ品質監査を提供する。
データプロファイリングは自動的に実行できる。例えば、データプロファイリングは、スクリプト(例えば、シェルスクリプト)により実行でき、他の形式の処理と統合できる。データプロファイリングの結果は、例えばウェブブラウザに表示する形式で、自動的に発行でき、結果を手動で後処理したり、または別の報告アプリケーションを実行したりする必要はない。
データソース自体のレコードをやむを得ず直接演算するよりも、データソースのレコードの値を特性化する情報の演算の方が、計算量をかなり低減できる。例えば、生のデータレコードではなくセンサスデータを用いると、2つのフィールドの結合特性の計算の複雑さが、2つのデータソースのデータレコード数を乗算した次数から、2つのデータソースの一意の値の数を乗算した次数に低減される。
データソース外にデータのコピーを維持しないでデータをプロファイリングことにより、複製コピー維持に関係付けられるエラーの可能性を回避でき、データコピーのための余分な格納空間の使用を回避できる。
演算はデータ値に従って並列処理できるので、効率的な分散処理が可能になる。
フィールド間の関連性を特性化する量は、異なる種類の関連性ではどのフィールドが関連しているかの示唆を提供できる。すると、ユーザーは、データをさらに精査して、それらのフィールドがその種類の関連性を真に形成しているかを判定できる。
データソースのデータレコードのフィールドの複数サブセットのそれぞれについて共出現統計を決定するステップにより、フィールド間の潜在的な機能関連性を効率的に識別することができる。
本発明の態様は、ユーザーが習熟していないデータセットをプロファイリングする際に有用である。自動的に決定されるか、またはユーザーとの協調作業で決定される情報を用いて、データソースについてのメタデータをポピュレートし、後続の処理に用いることができる。
本発明の他の特徴、および利点は、以下の説明および請求項により明らかになる。
<説明>
1 概要
図1を参照する。データ処理システム10には、プロファイリングおよび処理のサブシステム20が含まれ、それを用いてデータソース30からのデータを処理し、データ格納サブシステム40のメタデータ格納112、およびデータ格納124を更新する。すると、格納したメタデータおよびデータは、インターフェースサブシステム50を用いてユーザーにとってアクセス可能になる。
データソース30は、一般に、多様な個々のデータソースを含み、それぞれは、例えば、データベーステーブル、スプレッドシートファイル、平文ファイル、またはメインフレーム110が用いるネイティブのフォーマットなどの独自の格納フォーマットおよびインターフェースを有する。個々のデータソースは、プロファイリングおよび処理のサブシステム20に対してローカルの関係、例えば、ファイル102にように同一のコンピューターシステムでホストされてもよいし、またはプロファイリングおよび処理のサブシステム20に対してリモートの関係、例えば、ローカルエリアまたは広域データネットワークでアクセスするリモートコンピューター(例えば、メインフレーム110)でホストされてもよい。
データ格納サブシステム40には、データ格納124、およびメタデータ格納112が含まれる。メタデータ格納112には、データソース30内のデータに関連する情報、およびデータ格納124内のデータについての情報が含まれる。このような情報には、レコードフォーマット、およびこれらのレコードのフィールド値の妥当性を決定するための仕様(検証仕様)を含めることができる。
プロファイリング処理中に、メタデータ格納112を用いて、プロファイリングすべきデータソース30内のデータセットについての初期情報、ならびにこのようなデータセットについて得られる情報、およびそのデータセットから導かれるデータ格納124内のデータセットを格納できる。データ格納124を用いて、データソース30から読み込まれ、オプションとしてデータプロファイリングから導かれた情報を用いて変換されたデータを格納できる。
プロファイリングおよび処理のサブシステム20には、プロファイリングモジュール100が含まれ、データの完全なコピーを格納媒体に置かなくても、データソースから直接データを読み取ってから、個々のレコードなどの、別個のワーク構成要素の単位でプロファイリングする。典型的には、レコードは、1セットのデータフィールドと関係付けられ、各フィールドは各レコードについて特定の値をもつ(ヌル値の可能性もある)。データソースのレコードは、各レコードが同一のフィールドを含む固定レコード構造を有してもよい。代替として、レコードは、可変レコード構造を有しても良く、例えば、可変長ベクトルまたは条件付きフィールドを含んでもよい。可変レコード構造の場合には、レコードは、プロファイリングする前にデータの「フラット(flattened)」(つまり、固定レコード構造)なコピーを格納しなくても処理される。
データソースからデータを最初に読み取る場合、プロファイリングモジュール100は、そのデータソース内のレコードについての初期フォーマット情報により開始するのが普通である。(注意すべきは、状況によっては、データソースのレコード構造でさえ未知のこともある、ということである。)レコードについての初期情報には、値の区別を表すビット数(例えば、16ビット(=2バイト))、およびレコードフィールドと関係付けられる値と、タグまたは区切り文字と関係付けられる値とを含む値の順序、ならびにビットが表す値の型(例えば、文字列、符号付き/符号なし整数)が含まれる。データソースのレコードについての情報は、メタデータ格納112に格納されるデータ操作言語(DML)ファイルで規定される。プロファイリングモジュール100は、所定のDMLを用いて、多様な一般的データシステムフォーマット(例えば、SQLテーブル、XMLファイル、CSVファイル)によるデータを自動的に解釈でき、またはカスタム化したデータシステムフォーマットを記述するメタデータ格納112から取得したDMLファイルを用いることができる。
部分的で、おそらく不正確な、データソースのレコードについての初期情報が、プロファイリングモジュール100が初期データを読み取る前に、プロファイリングおよび処理のサブシステム20で利用可能な場合ある。例えば、データソースと関係付けられるCOBOLコピーブックが、格納されたデータ114として利用可能であり、またはユーザーインターフェース116を介してユーザー118が入力する場合がある。このような既存情報は、メタデータインポートモジュール115により処理され、メタデータ格納112に格納され、および/またはデータソースにアクセスするために用いるDMLファイルを定義するのに用いる。
プロファイリングモジュール100がデータソースからレコードを読み取る時、データセットの内容を反映する統計、および他の説明情報を計算する。次いで、プロファイリングモジュール100は、これらの統計、および説明情報を「プロファイル(profile)」の形でメタデータ格納112に書き込み、それらは、ユーザーインターフェース116、またはメタデータ格納112へのアクセスを有する何らかの他のモジュールを介して検査できる。プロファイルの統計には、各フィールドの値のヒストグラム、最大値、最小値、および平均値、ならびに最小頻度値、および最大頻度値のサンプルが含まれることが好ましい。
データソースからの読み取りで取得する統計は、各種の用途に用いることができる。そのような用途には、不明データセットの内容の把握、データセットに関係付けられるメタデータの収集構築、購入または使用前のサードパーティデータの検査、および収集したデータに対する品質管理計画の実施が含まれる。このようなタスクを実行するデータ処理システム10を用いるための手順について以下に詳細に説明する。
メタデータ格納112は、プロファイリングした各フィールドと関係付けられる検証情報、例えば、検証情報をコード化する検証仕様など、を格納できる。代替として、検証情報は、外部の格納場所に格納でき、プロファイリングモジュール100で検索できる。データセットをプロファイリングする前に、検証情報は、フィールド毎に妥当なデータ型を指定できる。例えば、フィールドが人の「肩書き(title)」の場合、デフォルトの妥当な値は、「文字列(string)」データ型の任意の値とすることができる。また、データソースをプロファイリングする前に、ユーザーが、「Mr.」、「Mrs.」、および「Dr.」などの、妥当な値を与えることにより、プロファイリングモジュール100が読み込むそれ以外の値を妥当でないと識別することもできる。プロファイリング実行から得られる情報をユーザーが用いて、特定フィールドに対する妥当な値を指定することもできる。例えば、ユーザーは、データセットをプロファイリングした後、値「Ms.」、「Msr.」が頻出値として出現することに気付く。ユーザーは妥当な値として「Ms.」を追加し、データクリーニングオプションとして、値「Msr.」を値「Mrs.」にマッピングできる。このように、検証情報には、妥当な値、およびマッピング情報を含めて、妥当でない値を、妥当な値にマッピングすることによりクリーニングできる。プロファイリングを連続実行することによりデータソースについての更なる情報が発見されるので、データソースのプロファイリングは、繰り返し行ってもよい。
プロファイリングモジュール100は、実行可能なコードを生成して、プロファイリングしたデータシステムにアクセスできる他のモジュールを実装することもできる。例えば、処理モジュール120には、プロファイリングモジュール100が生成したコードを含めることができる。このようなコードの実施例として、データソースへのアクセス手順の一部として、値「Msr.」を「Mrs.」にマッピングしてもよい。処理モジュール120は、プロファイリングモジュール100と同一のランタイム環境で実行でき、メタデータ格納112と通信してデータセットと関係付けられるプロファイルにアクセスできることが好ましい。処理モジュール120は、例えば、メタデータ格納112から同一のDMLファイルを取得することによって、プロファイリングモジュール100と同一のデータフォーマットを読み取ることができる。処理モジュール120は、データセットプロファイルを用いて、入力されてくるレコードを検証、またはクリーニングするのに用いる値を取得してから、データ格納124内にそれらを格納することができる。
プロファイリングモジュール100と同様に、処理モジュール120も個別のワーク構成要素の単位でデータシステムからデータを直接読み込む。ワーク構成要素のこの「データフロー(data flow)」は、ローカルストレージ(例えば、ディスクドライブ)にデータをコピーしなくても、大規模なデータセットにデータプロファイリングが実行できる利点を有する。この、以下に詳細に説明するデータフローモデルはまた、最初にソースデータをステージング領域にコピーしなくても、複雑なデータ変換を処理モジュールにより実行でき、格納空間および時間を節約できる可能性がある。
2 メタデータ格納編成
プロファイリングモジュール100は、メタデータ格納112を用いて、各種のメタデータおよびプロファイリングの初期設定(preference)、および結果を編成し、データオブジェクト内に格納する。図2を参照する。メタデータ格納112は、それぞれがプロファイルジョブと関連する情報に対するプロファイル設定オブジェクトグループ201、それぞれがデータセットと関連する情報に対するデータセットオブジェクトグループ207、およびそれぞれが特定のデータフォーマットを記述するDMLファイルグループ211を格納できる。プロファイル設定オブジェクトは、プロファイリングモジュール100が実行するプロファイリング実行のための初期設定を含む。ユーザー118は、新規プロファイル設定オブジェクトを作成するか、またはあらかじめ格納してあるプロファイル設定オブジェクト200を選択するのに用いる情報を入力できる。
プロファイル設定オブジェクト200は、データセットオブジェクト206への参照204を含む。データセット設定オブジェクト206は、データセットロケータ202を含み、そのロケータにより、プロファイリングモジュール100は、プロファイルされるデータをランタイム環境内でアクセス可能な1つ以上のデータシステム上で位置特定できる。データセットロケータ202は、パス/ファイル名、URL、または多くの場所に散在するデータセットに対するパス/ファイル名および/またはURLのリストであるのが普通である。データセットオブジェクト206にはオプションとして、1つ以上のDMLファイル210への参照208を含めることができる。
DMLファイル210は、データセット内のデータのフォーマットについての知識に基づいてあらかじめ選択してもよく、またはユーザーが実行時に指定してもよい。プロファイリングモジュール100は、データセットの最初の部分を取得でき、デフォルトのDMLファイルに基づいて最初の部分の解釈をユーザーインターフェース116上でユーザーに提示できる。次いで、ユーザーは、その解釈を見ながらデフォルトのDMLファイル仕様をインタラクティブに修正できる。データセットが多数のフォーマットのデータを含む場合、2つ以上のDMLファイルを参照できる。
データセットオブジェクト206には、フィールドオブジェクトセット214への参照212が含まれる。プロファイリングするデータセットのレコード内の各フィールドについて1つのフィールドオブジェクトがある。プロファイリングモジュール100が実行するプロファイリングが完了すると、データセットプロファイル216が、プロファイリングしたデータセットに対応するデータセットオブジェクト206内に収納される。データセットプロファイル216は、全てのレコード数、および全ての妥当/非妥当のレコード数などの、データセットに関連する統計を含む。
フィールドオブジェクト218には、対応するフィールドに対して妥当な値かどうかを決定するとともに、妥当でない値をクリーニングする(すなわち、妥当でない値を妥当な値にマッピングする)ための規則を規定するためにプロファイリングモジュール100が用いることができる検証情報220をオプションとして含めることができる。フィールドオブジェクト218には、プロファイリングの実行が完了した時に、プロファイリングモジュール100が格納するフィールドプロファイル222も含まれ、それには、区別値、ヌル値、および妥当/非妥当値の数などの、対応するフィールドに関連する統計が含まれる。フィールドプロファイル222には、最大、最小、最大頻度、最小頻度の値などの、サンプル値も含めることができる。完全な「プロファイル」には、データセットプロファイル216、およびプロファイリングした全フィールドについてのフィールドプロファイルが含まれる。
プロファイル実行のための他のユーザーの初期設定は、プロファイル設定オブジェクト200内に収集し、格納することができる。例えば、ユーザーは、フィールド、またはプロファイリングする値の数を限定するのに用いることができるフィルタの式を選択でき、それには、値のランダムサンプルのプロファイリング(例えば、1%)が含まれる。
3 ランタイム環境
プロファイリングモジュール100は、データソースからのデータを読み取り、個別のワーク構成要素のフローとして処理できるランタイム環境で動作する。プロファイリングモジュール100、および処理モジュール120が実行する計算は、計算要素がグラフの頂点と関係付けられ、および要素間のデータフローがグラフのリンク(弧、枝)と対応する有向グラフによるデータフローの形式で表すことができる。このようなグラフベースの計算を実装するシステムは、米国特許第5,966,072号の「グラフとして表される計算の実行」に記載されている。このシステムにより作成されるグラフは、グラフ要素により表される個々の処理に情報を出入りさせ、処理間で情報を移動し、そして処理の実行順序を定義するための方法を提供する。このシステムには、処理間通信方法(例えば、グラフのリンクによる通信パスは、TCP/IP、またはUNIX(登録商標)ドメインソケットを用いることができ、または共有メモリを用いて処理間でデータを受け渡すことができる)を選定するアルゴリズムが含まれる。
ランタイム環境は、また、プロファイリングモジュール100を並列処理として動作させる。上記グラフ表現と同一の形式を用いて並列処理システムを記述できる。その説明として、並列処理システムには、多数の中央処理ユニット(CPU)を用いる任意の構成のコンピューターシステムが含まれ、ローカル型(例えば、SMPコンピューターなどのマルチプロセッサシステム)、もしくはローカル分散型(例えば、クラスタとして接続したマルチプロセッサ、またはMPP)、またはリモート型、もしくはリモート分散型(例えば、LANまたはWANネットワークを介して接続したマルチプロセッサ)、またはこれらの任意の組合せである。繰り返しになるが、グラフは、要素(グラフ頂点)、およびフロー(グラフリンク)により構成される。グラフの構成要素(要素およびフロー)を明示的または暗示的に複製することにより、システムの並列処理を表すことができる。
フロー制御メカニズムは、要素に入るリンクに対する入力待ち行列を用いて実装する。このフロー制御メカニズムにより、データは、大容量だが低速な典型的なディスクドライブなどの不揮発性ローカルストレージに書き込まなくても、グラフの要素間を流れることができる。入力待ち行列を十分小さく保つことにより、不揮発性メモリより小型で高速な典型的な揮発メモリにワーク構成要素を保持することができる。この格納空間および時間を節約する可能性は、非常に大規模なデータセットにも存在する。要素は、入力待ち行列の代わりに、または追加して、出力バッファを用いることができる。
2つの要素をフローにより接続する場合、上流要素は、下流要素がワーク構成要素を消費し続ける限り、ワーク構成要素を下流要素に送る。下流要素が遅れた場合、上流要素は、下流要素の入力待ち行列を満たし、入力待ち行列が再び空になるまで動作を停止する。
計算グラフは、様々な抽象レベルにより規定できる。従って、要素およびリンクを含む「サブグラフ(sub-graph)」を、グラフの他の部分と接続するリンクだけが現される単一の要素として別のグラフ内に表すことができる。
4 プロファイリンググラフ
図3を参照する。好適な実施の形態では、プロファイリンググラフ400は、プロファイリングモジュール100の計算を実行する。「入力データセット」要素402は、何種類かの可能性があるデータシステムからのデータを表す。データシステムは、異なる物理媒体形式(例えば、磁気式、光学式、磁気光学式)、および/または異なるデータフォーマット型(例えば、バイナリ、データベース、スプレッドシート、ASCII文字列、CSV、またはXML)を有してもよい。「入力データセット」要素402は、データフローをセンサス作成要素406に送る。センサス作成要素406は、データセットの「センサス(census)」を実施して、要素に流れ込むレコードの一意のフィールド/値の各対について別々のセンサスレコードを新規作成する。各センサスレコードには、そのセンサスレコードに対する一意のフィールド/値の対の出現数のカウントを含む。
センサス作成要素406は、対応するフィールドオブジェクトに格納される検証情報に従って、妥当でない値のセットを妥当な値にマッピングするクリーニングオプションを有する。クリーニングオプションは、妥当でない値を含むフィールドを有するレコードを、非妥当レコード要素408により表される場所に格納することもできる。これにより、妥当でないレコードを、例えば、妥当でない値のソースの判定を望むユーザーが検査できる。
図示した実施の形態では、センサス作成要素406から流れ出すセンサスレコードは、センサスファイル要素410により表されるファイルに格納される。センサスレコードのこの中間格納は、場合によっては、センサスレコードにアクセスする多数のグラフ要素にとって効率を向上させることもある。代替として、センサスレコードは、ファイルに格納せずに、センサス作成要素406からセンサス解析要素412に直接流れてもよい。
センサス解析要素412は、各フィールド値のヒストグラムを新規作成し、センサスレコードに基づいて他のデータ解析を実行する。図示した実施の形態では、フィールドプロファイル要素414が、フィールドプロファイルに対する中間格納場所を表す。メタデータ格納ロード要素416は、フィールドプロファイル、および他のプロファイル結果を、メタデータ格納112の対応するオブジェクトにロードする。
ユーザーインターフェース116により、ユーザーは解析したデータをブラウジングして、例えば、フィールドのヒストグラム、または頻出値を見ることができる。例えば、ヒストグラムのバーと関係付けられる特定のレコードを見るための「掘り下げ(drill-down)」機能が提供される。ユーザーはまた、ユーザーインターフェース116を介して、プロファイリング結果に基づき初期設定を更新することもできる。
サンプル作成要素418は、ユーザーインターフェース116に示す値と関係付けられるレコード(例えば、ヒストグラムのバーと関係付けられるレコード)のサンプリングを表す収集サンプルレコード420を格納する。フェーズの区切り線422は、グラフ400の2つの実行フェーズを表し、線の左側の全要素の動作が終了した後、線の右側の要素の動作が開始する。従って、サンプル作成要素418は、センサス解析要素412がフィールドプロファイル要素414に結果の格納を終えた後に動作する。代替として、サンプルレコードは、「入力データセット」402のレコード場所から読み出せる。
プロファイリングモジュール100は、ユーザー118、または自動スケジュールプログラムにより開始される。プロファイリングモジュール100を初期化すると、マスタースクリプト(不図示)が、プロファイリンググラフ400が用いる何れかのDMLファイルおよびパラメータをメタデータ格納112から収集する。パラメータは、プロファイル設定オブジェクト200、データセットオブジェクト206、およびフィールドオブジェクト218などのオブジェクトから取得できる。必要であれば、マスタースクリプトが、プロファイリングするデータセットについて供給される情報に基づいて新規DMLファイルを新規作成できる。便宜的に、マスタースクリプトは、パラメータをジョブファイルにできる。次いで、マスタースクリプトは、ジョブファイルからの適切なパラメータによりプロファイリンググラフ400を実行し、経過時間を追跡し、プロファイリンググラフ400の実行が完了するまでの残り時間を推定するプログレス表示を提示する。推定した残り時間は、プロファイリンググラフ400を実行するときに、メタデータ格納112に書き込まれるデータ(例えば、ワーク構成要素)に基づいて計算される。
4.1 データフォーマット解釈
インポート要素は、広く多様なデータシステムのデータフォーマットを解釈するプロファイリングモジュール100の一部を実装する。インポート要素は、DMLファイルを使わずに幾つかのデータフォーマットを直接解釈するよう構成する。例えば、インポート要素は、データベースにアクセスし、操作するための、ANSI規格のコンピューター言語である構造化照会言語(SQL)を用いるデータシステムからのデータを読むことができる。DMLファイルを用いずに扱える他のデータフォーマットは、例えば、XML規格によるか、またはカンマ区切りフォーマット(CSV)を用いてフォーマットされたテキストファイルである。
他のデータフォーマットについては、インポート要素は、プロファイル設定オブジェクト200で規定されるDMLファイルを用いる。DMLファイルはデータセット内のデータの解釈、および操作の様々な局面を規定できる。例えば、DMLファイルは、データセットについて以下を規定できる。
型オブジェクト − 生データと、生データにより表される値との間の対応を定義する。
キー指定子 − レコード間の順序、区切り、およびグループ化の関係を定義する。
式 − 定数、データレコードのフィールド、または他の式の結果からの値を用いて新しい値を生成する計算を定義する。
変換関数 − ゼロ個以上の入力レコードから1つ以上の出力レコードを生成するために用いる規則および他の論理の集合を定義する。
パッケージ − 各種のタスクを実行するために要素が用いることができる型オブジェクト、変換関数、および変数をグループ化する有用な方法を提供する。
型オブジェクトは、データシステム内の生データからの個々のワーク構成要素(例えば、個々のレコード)を読み取るために用いる基本メカニズムである。ランタイム環境は、物理的コンピューター可読格納媒体(例えば、磁気式、光学式、磁気光学式)へのアクセスを、生データビットの文字列(例えば、ファイルシステムへマウントするか、またはネットワーク接続上に流す文字列)として提供する。インポート要素は、DMLファイルにアクセスして、ワーク構成要素のフローを生成するために生データをどのように読み取り、解釈するかを決定できる。
図4を参照する。型オブジェクト502は、例えば、基本型504か、または複合型506である。基本型オブジェクト504は、(所与の長さの)ビットの文字列をどのように単一の値として解釈するかを規定する。基本型オブジェクト504には、読み取り、構文解析する生データのビット数を指示する長さ仕様が含まれる。長さ仕様は、規定バイト数などの固定長、もしくは可変長、データの最後の区切り文字規定(例えば、特定の文字または文字列)、または(可変長の可能性がある)読み取るべき文字数を指示できる。
ボイド型514は、意味、または内部構造を解釈する必要がないデータ、例えば、解凍するまでは解釈されない圧縮データのブロックを表す。ボイド型514の長さはバイトで規定する。数字型516は、数字を表し、数字に整数524、実数526、または小数点付528の指定がある場合は、特定CPUに標準の、またはネイティブの各種符号化に従って別々に解釈する。文字型518は、規定された文字セットによりテキストを解釈するのに用いる。日付520、および日付時刻522の型は、規定文字セット、および他のフォーマット情報により、カレンダの日付および/または時刻を解釈するのに用いる。
複合型506は、それ自体が基本型または複合型のいずれかである多数のサブオブジェクトから成るオブジェクトである。ベクトル型508は、同一型(基本型または複合型のいずれか)のオブジェクトのシーケンスを含むオブジェクトである。ベクトルのサブオブジェクトの数(すなわち、ベクトルの長さ)は、DMLファイル内の定数によるか、または可変長のベクトルのプロファイリングを可能とする規則(例えば、ベクトルの最後を指示する区切り文字)により指示できる。レコード型510は、オブジェクトのシーケンスを含むオブジェクトであり、それぞれは別の基本型または複合型とすることができる。シーケンスの各オブジェクトは、名前を付けたフィールドと関係付けられる値と対応する。レコード型510を用いて、要素は、生データのブロックを解釈して、レコードの全フィールドに対する値を抽出できる。ユニオン型512は、別々のフィールドに対応するオブジェクトが同一の生データビットを異なる値として解釈できる他は、レコード型510と同様のオブジェクトである。ユニオン型512は、同一の生データに幾つかの解釈をもたせる方法を提供する。
DMLファイルにより、カスタムのデータ型をもつデータのプロファイリングも可能である。ユーザーは、他のDML型オブジェクトの形で、基本型または複合型のいずれかの型定義を与えることにより、カスタム型オブジェクトを定義できる。そして、プロファイリングモジュール100がカスタム型オブジェクトを用いて、非標準の構造をもつデータを解釈する。
DMLファイルにより、条件付き構造をもつデータのプロファイリングも可能である。レコードは、他のフィールドと関係付けられる値に基づく幾つかのフィールドを含むだけでよい。例えば、レコードは、フィールド「既婚」が「はい」の場合、フィールド「配偶者」を含むだけでよい。DMLファイルには、条件付きフィールドが所与のレコードについて存在するかどうかを決定するための規則が含まれる。条件付きフィールドがレコードにある場合、フィールドの値はDML型オブジェクトにより解釈できる。
インポート要素をグラフが用いることにより、各種型のレコード構造を効率的に取り扱うことができる。条件付きレコード、または可変長ベクトルなどの、可変レコード構造をもつレコードを解釈するインポート要素の能力により、このようなデータをまず固定長セグメントにフラット化しなくても、グラフはこのデータを処理することができる。インポート要素を用いてグラフが実行できる別のタイプの処理は、データの各部の間、例えば、異なるレコード、テーブル、またはファイル間の関連を把握することである。グラフは、インポート要素内の規則を用いて、あるテーブルの外部キーまたはフィールドと、別のテーブルの一次キーまたはフィールドとの間の関連を見出し、またはデータの各部に機能依存性計算を実行できる。
4.2 統計
図5Aを参照する。センサス作成要素406の一実施の形態を実装するサブグラフ600には、プロファイル設定オブジェクト200に格納されるフィルタ式に基づいて入力されてくるレコードの一部を通過させるフィルタ要素602が含まれる。フィルタ式は、プロファイルされる値のフィールド、または数を制限できる。フィルタ式の実施例は、入力されてくる各レコードの単一フィールド(例えば、「タイトル」)にプロファイリングを制限するものである。フィルタ要素602の別のオプション機能は、上記のクリーニングオプションを実装することであり、妥当でないレコードのサンプルを非妥当レコード要素408に送る。フィルタ要素602から流れ出るレコードは、ローカルロールアップシーケンス統計要素604、および総当たりによるパーティション要素612に流れ込む。
マルチプロセッサ、および/またはマルチコンピューター上で並列に動作するプロファイリンググラフ400(および他のグラフおよびサブグラフ)の能力、および多数の場所にまたがって格納された並列データセットを読み取るプロファイリンググラフ400の能力は、要素、および要素間のリンク上のシンボルの線の太さにより、サブグラフ600内に暗示的に表される。「入力データセット」要素402などの、格納場所を表す要素の太い境界線は、それがオプションとして並列データセットになり得るということを示している。フィルタ要素602などの、処理要素の太い境界線は、その処理がオプションとして多数のパーティション内で実行できることを示し、各パーティションは、別のプロセッサまたはコンピューター上で実行される。ユーザーは、ユーザーインターフェース116を介して、オプションで、並列のグラフ要素を、並列に実行するか、または直列に実行するかを指示できる。細い境界線は、データセットまたは処理が直列であることを示す。
ローカルロールアップシーケンス統計要素604は、入力されてくるレコードのシーケンシャル特性に関連する統計を計算する。例えば、要素604は、増加、減少、または1だけ増分するフィールドの値をもつレコードのシーケンシャル対の数をカウントできる。並列動作の場合は、各パーティションについて別々にシーケンス統計を計算する。ロールアップ処理は、多数の入力構成要素からの情報(この要素604が実行するロールアップ処理についてのシーケンス統計)を組み合わせるステップ、および、組み合わせた入力構成要素に代わる単一の出力構成要素を生成するステップを含む。集結リンクシンボル606は、並列成分の任意の多数パーティションからのデータフローを、直列成分への単一データフローに組み合わせること、すなわち「集結(gathering)」を表す。グローバルのロールアップシーケンス統計は、多数のパーティションからの「ローカル」シーケンス統計を、全てのパーティションからのレコードを表すシーケンス統計の単一「グローバル」集合に組み合わせる。得られるシーケンス統計は、一時ファイル610に格納できる。
図6は、ロールアップ処理を実行するための処理700の実施例のフロー図であり、ローカルロールアップシーケンス統計要素604、およびグローバルロールアップシーケンス統計要素608により実行されるロールアップ処理が含まれる。処理700は、702にて入力構成要素を受け取ることにより開始される。次いで、処理700は、704にて集計される情報を更新し、706にて集計する構成要素があるかどうかを判定する。構成要素がある場合、処理700は702にて次の構成要素を受け取り、704にてしかるべく情報を更新する。構成要素がそれ以上ない場合、処理700は、708にて集計したロールアップ情報に基づいて出力構成要素を最終処理する。ロールアップ処理は、構成要素グループを単一構成要素に集約したり、または構成要素グループの集合特性(これら構成要素の値の統計など)を決定したりするのに用いる。
総当たりによるパーティション要素612は、「入力データセット」402の単一または多数のパーティションからレコードをとり、幾つかの並列プロセッサおよび/またはコンピューター(例えば、ユーザーの選択による)間でレコードを再パーティション化してプロセッサおよび/またはコンピューター間のワーク負荷を均衡させる。クロス接続リンクシンボル614は、データフローの再パーティション(リンクされた要素612により実行される)を表す。
正規化要素616は、レコードのフローを取り込み、入力レコード内の各フィールドについての値を表すフィールド/値の対を含むセンサス構成要素のフローを送り出す。例えば、10個のフィールドをもつ入力レコードは、10個のセンサス構成要素のフローを生み出す。各値は、人が読める正規化(すなわち、事前に決定したフォーマットによる)文字列表現に変換される。センサス構成要素にはまた、値が妥当であるか、値がヌルである(すなわち、事前に決定した「ヌル」値に対応する)か、を示すフラグも含まれる。センサス構成要素は、(各パーティションについて)同一フィールドに対する同一の値の出現を取り込み、それらを出現数カウントを含む1つのセンサス構成要素に組み合わせるローカルのロールアップフィールド/値要素622に流れ込む。正規化要素616の別の出力は、全てのパーティションについて集結されるとともに、ロールアップ総カウント要素618で組み合わされるフィールドおよび値の総数のカウントである。総カウントは、データセットプロファイル216にロードするため、一時ファイル620に格納される。
図7は、全てが同一のフィールドを有するとは限らない条件付きレコードを取り扱って、フィールド/値の対を含むセンサス構成要素のフローを生成可能な正規化要素が実行する処理710の実施例のフロー図である。処理710は、712にて新しいレコードを取得することにより開始するネストループを実行する。処理710は、レコード毎に、714にてそのレコード内のフィールドを取得し、716にてそのフィールドが条件付きフィールドかどうかを判定する。フィールドが条件付きの場合、処理710は、718にてそのフィールドがそのレコードに存在するかどうかを判定する。フィールドが存在する場合、処理710は、720にてそのフィールドのレコードの値を正規化し、フィールド/値の対を含む対応する出力構成要素を生成する。フィールドが存在しない場合、処理710は、722における別のフィールドがあるかどうかの判定、または、724における別のレコードがあるかどうかの判定に進む。フィールドが条件付きでない場合、処理710は、720にてそのフィールドのレコード(ヌル値の可能性を含む)を正規化し、次のフィールドまたはレコードに進む。
フィールド/値によるパーティション要素624は、センサス構成要素をフィールドおよび値により再パーティション化し、それにより、グローバルロールアップフィールド/値要素626で実行するロールアップ処理が、異なるパーティションで計算した出現回数を加算して、プロファイリングしたレコード内に含まれる一意の各フィールド/値の対に対する単一センサス構成要素内の総出現カウントを生成できる。グローバルロールアップフィールド/値要素626は、センサスファイル要素410により表される潜在的並列ファイルに対する潜在的多数パーティション内のこれらのセンサス構成要素を処理する。
図5Bは、プロファイリンググラフ400のセンサス解析要素412を実装するサブグラフ630を説明する図である。フィールドによるパーティション要素632は、センサスファイル要素410からのセンサス構成要素のフローを読み取り、同一のフィールド(但し、異なる値)をもつセンサスレコードが同一のパーティション内にあるように、フィールドに基づくハッシュ値によりセンサス構成要素を再パーティション化する。文字列、数字、日付へのパーティション要素634は、センサス構成要素内の値の型に従ってセンサス構成要素を更にパーティション化する。各種の統計を、(ロールアップ文字列要素636内の)文字列、(ロールアップ数字要素638内の)数字、または(ロールアップ日付要素640内の)日付/日付時刻の値について(ロールアップ処理を用いて)計算する。例えば、数字については、平均値および標準偏差を計算するのは適切であるが、文字列について不適切である。
全てのパーティションから結果が集められ、ヒストグラム/十分位数情報計算要素642は、ヒストグラムを構築するのに有用な情報(例えば、各フィールドの最大値および最小値)を、バケット計算要素654に提供し、十分位数統計を計算するために有用な情報(例えば、各フィールドの値の数)を十分位数情報計算要素652に提供する。ヒストグラムおよび十分位数統計を生成するサブグラフ630の要素(フェーズ区切り線644の下)は、ヒストグラム/十分位数情報計算要素642(フェーズ区切り線644の上)が動作を終了してから動作する。
サブグラフ630は、十分位数境界での値(例えば、値の10%、値の20%などより大きな値)のリストを以下により構築する。すなわち、(ソート要素646で)各パーティション内の値によりセンサス構成要素をソートする。(値によるパーティション要素648で)ソートした値によりセンサス構成要素を再パーティション化する。および、十分位数計算要素652へのソートした(直列の)フローに構成要素をマージする。十分位数計算要素652は、各フィールドについてのソート値をそのフィールド内の値の総数の10分の1のグループでカウントして、十分位数境界の値を得る。
サブグラフ630は、各フィールドについて以下によりヒストグラムを構築する。すなわち、一括した値(または「バケット(bucket)」)それぞれを定義する値を計算する。(ローカルロールアップヒストグラム要素656で)同一のバケットに入る各パーティション内の値をカウントする。(グローバルロールアップヒストグラム要素658で)全てのパーティションからの各バケット内の値を計算する。次いで、フィールドプロファイルパーツ組合せ要素660が、ヒストグラム、十分位数統計、および一時ファイル610からのシーケンス統計を含む各フィールドプロファイルについての全情報を、フィールドプロファイル要素414内に収集する。図5Cは、プロファイリンググラフ400のサンプル作成要素418を実装するサブグラフ662を説明する図である。サブグラフ600にあるように、総当たりによるパーティション要素664は、入力データセット402の単一または多数のパーティションからレコードを取り込み、幾つかの並列プロセッサおよび/またはコンピューター間でレコードを再パーティション化し、プロセッサおよび/またはコンピューター間のワーク負荷を均衡させる。
ルックアップおよび選択要素666は、フィールドプロファイル要素414からの情報を用いて、レコードと、ユーザーが掘り下げて見るために選択可能なユーザーインターフェース116上で示される値とが対応するかどうかを判定する。ユーザーインターフェース116で示される値の型はそれぞれ、異なる「サンプル型」と対応する。レコードの値がサンプル型と対応する場合、ルックアップおよび選択要素666は、レコードがサンプル型を表すよう選択されるかどうかを決定するランダム選択数を計算する。
例えば、特定サンプル型の全5つのサンプルレコードに対して、選択数が、これまでに見られた(単一パーティション内の特定サンプル型の)5つの最大のもののうちの1つである場合、対応するレコードを、どの値が掘り下げて見るのに対応するのかを指示する情報と併せて、出力として通過させる。この仕組みにより、任意のサンプル型のうちの最初の5つのレコード、これまでに見られた5つの最大選択数のうちの1つを有する任意の他のレコードが、自動的に次の要素に渡される。
次の要素は、サンプル型に従ってレコードを再パーティション化するサンプル型によるパーティション要素668であり、それにより、ソート要素670が各サンプル型内の選択数によりソートできる。次いで、走査要素672が、各サンプル型について(全てのパーティションの間で)最大選択数をもつ5つのレコードを選択する。次いで、サンプル書き込み/リンク要素674は、これらのサンプルレコードをサンプルレコードファイル420に書き込み、そのレコードをフィールドプロファイル要素414内の対応する値にリンクする。
メタデータ格納ロード要素416は、一時ファイル要素620からのデータセットプロファイルを、メタデータ格納112のデータセットプロファイル216のオブジェクトにロードし、フィールドプロファイル要素414からの各フィールドプロファイルを、メタデータ格納112のフィールドプロファイル222のオブジェクトにロードする。これにより、ユーザーインターフェース116は、データセットのためのプロファイリング結果を引き出し、ユーザーインターフェース116により生成されるスクリーン上で、ユーザー118にそれを表示する。ユーザーは、プロファイル結果をブラウジングして、フィールドについてのヒストグラム、または頻出値を知ることができる。例えば、ヒストグラムのバーと関係付けられる特定のレコードを見ることを可能にする掘り下げ機能を提供してもよい。
図8A〜図8Cは、プロファイリング結果を示すユーザーインターフェース画面出力の実施例である。図8Aは、データセットプロファイル216からの結果を示す。データセット全体について各種の総計802を、プロファイリングしたフィールドと関係付けられる特性の要約804と併せて示す。図8B〜図8Cは、例示のフィールドプロファイル222からの結果を示す。最大頻度値806、および最大頻度非妥当値808などの、選択値が、以下を含む各種の形式で表示される。すなわち、人が読める文字列810としての値そのもの、値の出現総カウント数812、値の総数のパーセント814、およびバーチャート816で表される。値のヒストグラム818は、ゼロのカウントをもつバケットを含み、値の範囲に渡る多数のバケットのそれぞれについて表示する。十分位数境界820も表示する。
5 実施例
5.1 データ把握
図9は、別の処理で用いることができるようにデータセットをプロファイリングしてその内容を把握するための手順900の実施例についてのフロー図を示す。手順900は、自動的に(例えば、スケジュール化スクリプトによる)、または手動で(例えば、ユーザーが端末で)実行できる。手順900はまず、902にてランタイム環境内でアクセス可能な1つ以上のデータシステム上で、プロファイリングするデータセットを識別する。次いで、手順900はオプションとして、供給される情報または既存のメタデータに基づいて、904にてレコードフォーマットを設定でき、906にて検証規則を設定できる。データベーステーブルなどの、データ型によっては、デフォルトのレコードフォーマット、および検証規則を用いることができる。次いで、手順900は、908にてデータセット(またはデータセットのサブセット)にプロファイルを実行する。手順900は、初期プロファイルの結果に基づいて、910にてレコードフォーマットを改良し、または、912にて検証規則を改良することができる。いずれかのプロファイリングオプションを変更した場合、手順900は、914にて新規オプションを用いてデータに別のプロファイルを実行するか、またはデータセットについての十分な情報が(おそらく繰り返しの)プロファイリングから得られた場合、916にてデータセットを処理するかどうかを決定する。その処理は、プロファイリングから得られた情報を用いて、1つ以上のデータシステムから直接読み取る。
5.2 品質検査
図10は、データ格納に変換およびロードできるように、データセットをプロファイリングして、その品質を検査するための手順1000の実施例についてのフロー図を示す。手順1000は、自動的に、または手動で実行できる。データセットの品質を検査するための規則は、データセットの過去の知識から、および/または類似のデータセット(例えば、検査するデータセットと同一のソースからのデータセット)に実行する手順900などの、プロファイリング手順の結果からもたらされる。この手順1000は、例えばビジネスで、ビジネス相手から送られてくる定期的な(例えば、月次)データをプロファイリングしてから、データをインポートし、または処理するのに用いることができる。これにより「不良(bad)」データ(例えば、妥当でない値の割合が閾値を超えるデータ)を検出することが可能となり、既存のデータ格納が、取り消しが困難なアクションにより「汚染(pollute)」されなくなる。
手順1000は、まず1002にてランタイム環境内の1つ以上のアクセス可能なデータシステム上の検査すべきデータセットを識別する。次いで、手順1000は、1004にてデータセット(またはデータセットのサブセット)にプロファイルを実行し、1006にてプロファイル結果に基づいて品質検査を実行する。例えば、データセット内の特定の頻出値の出現率を、過去のデータセットでの(過去のプロファイル実行に基づく)その特定頻出値の出現率と比較でき、両者の率に10%を超える差がある場合、品質検査は不合格となる。この品質検査は、一貫して(10%以内に)出現することが判っている一連のデータセットの値にも適用できる。手順1000は、1008にて品質検査の結果を判定し、1010にて不合格になるとフラグ(例えば、ユーザーインターフェースプロンプト、またはログファイルに記入)を生成する。品質検査を合格すると、手順1000は、1012にて1つ以上のデータシステムから直接読み取り、変換し(恐らくはプロファイルからの情報を用いて)、そしてデータセットからのデータをデータ格納にロードする。次いで、例えば、1002にて別のデータセットを識別することにより、その手順を繰り返すことができる。
5.3 コード生成
プロファイリングモジュール100は、データセットからのレコードのフローを処理するために用いることができるグラフ要素などの、実行可能なコードを生成できる。生成した要素は、入力されてくるレコードにフィルタをかけることができ、プロファイリンググラフ400のクリーニングオプションと同様に、妥当なレコードだけを流し出すことができる。例えば、ユーザーは、プロファイル実行が完了した時に、クリーニング要素が生成されるよう指示するプロファイルオプションを選択できる。要素を実装するためのコードは、(ユーザーが指定する)ファイル場所に向けられる。そして、生成されたクリーニング要素は、プロファイリング実行中にメタデータ格納112に格納した情報を用いて、プロファイリングモジュール100と同一のランタイム環境で動作可能である。
6 結合フィールド解析
プロファイリングモジュール100は、1つ以上のフィールドグループ関連性をオプションで解析できる。例えば、プロファイリングモジュール100は、同一でも異なってもよいデータセット内の2つのフィールド対の間の解析を実行できる。同様に、プロファイリングモジュール100は、幾つかのフィールド対の解析を実行でき、例えば、あるデータセット内の各フィールドを、別のデータセット内の全てのフィールドにより解析したり、または、あるデータセット内の各フィールドを、同一データセット内の他の全てのフィールドにより解析したりできる。異なるデータセット内の2つのフィールドの解析は、以下に詳細に説明するように、これらのフィールド上の2つのデータセットの結合演算の特性と関連している。
結合フィールド解析へ第1のアプローチでは、2つのデータセット(例えば、ファイルまたはテーブル)に結合演算が実行される。下記のセクション6.1に説明する別のアプローチでは、センサス作成要素406が、データセットに対するセンサスファイルを生成した後、センサスファイルの情報を用いて、2つの異なるプロファイリングしたデータセットのフィールド間の、または同一のプロファイリングしたデータセット(もしくは、センサスファイルが存在する任意の他のデータセット)の2つの異なる部分のフィールド間の、結合フィールド解析を実行できる。結合フィールド解析の結果には、フィールド間の潜在的な関連性についての情報が含まれる。
見出される3種類の関連性は、「共通領域」関連性、「十分結合」関連性、および「外部キー」関連性がある。フィールド対は、結合フィールド解析結果が下記のような特定基準を満たす場合、これら3種類の関連性のうちの1つを有するとして分類される。
結合フィールド解析には、キーフィールドとして2つのフィールドを用いて実行する結合演算から生成されるレコード数などの情報の集計が含まれる。図11A〜図11Bにより、2つのデータベーステーブルからのレコードに実行される結合演算の実施例を説明する。テーブルAおよびテーブルBはそれぞれ、「フィールド1」および「フィールド2」とラベル付けされた2つのフィールド、および4つのレコードを有する。
図11Aを参照する。結合要素1100は、テーブルAからのレコードのキーフィールドからの値を、テーブルBからのレコードのキーフィールドからの値と比較する。テーブルAでは、キーフィールドはフィールド1、テーブルBではキーフィールドはフィールド1である。従って、結合要素1100は、テーブルA、フィールド1(A1)からの値1102を、テーブルB、フィールド1(B1)からの値1104と比較する。結合要素1100は、テーブルから入力レコードフロー1110を受け取り、キーフィールド値の比較に基づいて、新規結合テーブルとなるテーブルCを形成する結合レコードフロー1112を生成する。結合要素1100は、入力フロー内の一致キーフィールド値の各対に対する一致キーフィールド値を有するレコードの連結である結合レコードを生成する。
結合出力ポート1114から出る特定キーフィールド値を有する結合レコードの数は、それぞれの入力のそのキーフィールド値を有するレコード数のデカルト積となる。図示の実施例では、レコード1110の入力フローは、それぞれのキーフィールドの値でラベル付けして示し、結合レコード1112の出力フローは、一致した値でラベル付けして示す。2つの入力フローそれぞれに2つの「X」値が現れるので、出力フローに4つの「X」値がある。他方の入力フローのどのレコードとも一致しないキーフィールド値をもつ一方の入力フローのレコードは、テーブルA、およびテーブルBの入力フローそれぞれについて「除去(rejected)」出力ポート1116A、および1116Bから出る。図示の実施例では、「W」値が除去ポート1116Aに現れている。
プロファイリングモジュール100は、2つのフィールド間の関連性をカテゴリ化するために、結合、および除去した値の統計を集計する。統計は、2つのフィールドの値の出現をカテゴリ化する出現チャート1118に要約される。「出現数」は、値がフィールドに出現する回数を表す。チャートの列は、第1フィールド(本実施例ではテーブルAからの)に対する出現数0、1、およびN(ここでN>1)と対応し、チャートの行は、第2フィールド(本実施例ではテーブルBからの)に対する出現数0、1、およびN(ここでN>1)と対応する。チャート内のボックスには、対応する出現パターンと関係付けられるカウントが収納される。すなわち、「列出現数」×「行出現数」である。各ボックスには、2つのカウントが収納される。すなわち、その出現パターンをもつ別個の値の数、およびこれらの値に対する個々の結合レコードの総数、である。場合によっては、値は両フィールドに出現し(すなわち、1×1、1×N、N×1、またはN×Nの出現パターンを有する)、別の場合には、値が唯1つのフィールドに出現する(すなわち、1×0、0×N、N×0、または0×Nの出現パターンを有する)。カウントはコンマで分ける。
出現チャート1118には、結合レコード1112、およびポート1116Aの除去レコードと対応するカウントが収納される。除去出力ポート1116Aの値「W」は、単一値および単一レコードそれぞれを指示する1×0の出現パターンに対するボックス内の「1,1」カウントと対応する。値「X」は、N×Nの出現パターンに対するボックス内の「1,4」カウントに対応する。なぜなら、値「X」は、各入力フローに2回出現し、全4つの結合レコードとなるからである。値「Y」は、1×Nの出現パターンに対するボックス内の「1,2」カウントに対応する。なぜなら、値「Y」は、第1入力フローに1回出、第2入力フローに2回出現し、全2つの結合レコードをなるからである。
図11Bにより、図11Aの実施例と類似しているが、異なるキーフィールド対をもつ実施例を説明する。テーブルAではキーフィールドはフィールド1であり、テーブルBではキーフィールドはフィールド2である。従って、結合要素は、テーブルA、フィールド1(A1)からの値1102を、テーブルB、フィールド2(B2)からの値1120と比較する。この実施例は、これらのフィールドに対する入力レコードフロー1124と対応するカウントをもつ出現チャート1122を有する。図11Aの実施例と同様に、出現パターン0×1に対するボックス内の「1,1」カウントと対応する単一の除去された値「Z」がある。しかしながら、この実施例では、出現パターン1×1をもつ2つの値、「W」および「Y」があり、出現パターン1×1に対するボックス内の「2,2」カウントとしている。なぜなら、2つの値、および2つの結合レコードがあるからである。値「X」は、単一値および2つの結合レコードを指示するN×1の出現パターンに対するボックス内の「1,2」カウントと対応する。
各種合計を出現チャート内の数字から計算する。これらの合計の幾つかには、テーブルA、およびテーブルBの両方に出現する別個のキーフィールド値の合計数、テーブルAに出現する別個のキーフィールド値の合計数、テーブルBに出現する別個のキーフィールド値の合計数、およびそれぞれのテーブルに一意の値(すなわち、キーフィールドの単一のレコードにのみ出現する値)の合計数が含まれる。これらの合計に基づく統計を用いて、フィールド対が上記3種類の関連性のうちの1つを有するかを判定する。統計には、別個の、または一意の値をもつフィールド内の全レコードの割合、特定の出現パターンをもつ全レコードの割合、および各フィールドに対する「相対重複値」が含まれる。相対重複値は、一方のフィールドに出現し、他方のフィールドにも出現する別個の値の割合である。フィールド対が3種類の関連性(必ずしも相互排他とは限らない)のうちの1つを有するかどうかを判定するための基準は次の通りである。
外部キー関連性 − フィールドの第1のものが、高い相対重複値を有し(例えば、>99%)、第2フィールドが、一意の値の高い割合(例えば、>99%)を有する。第2フィールドは、一次キーの可能性があり、第2フィールドは、一次キーの外部キーの可能性がある。
十分結合関連性 − フィールドの少なくとも1つが、除去レコードの割合が少なく(例えば、<10%)、N×Nの出現パターンをもつ個々の結合レコードの割合が少ない(例えば、<1%)。
共通領域関連性 − フィールドの少なくとも1つが、高い相対重複値を有する(例えば、>95%)。
フィールド対が、外部キー、および十分結合または共通領域関連性の両方を有する場合、外部キー関連性を報告する。フィールド対が、十分結合関連性、および共通領域関連性の両方を有するが、外部キー関連性をもたない場合、十分結合関連性を報告する。
6.1 センサス結合
図12Aを参照する。テーブルに結合演算を実際に実行する代替として、センサス結合要素1200が、テーブルAおよびテーブルBからのフィールドを解析し、テーブルに対するセンサスデータから「センサス結合」演算を実行することにより、出現チャートについての統計を集計する。各センサスレコードは、フィールド/値の対、およびフィールド内の値の出現カウントを有する。各センサスレコードは、一意のフィールド/値の対を有するので、所与のキーフィールドに対して、センサス結合要素1200の入力フローの値は一意である。図12Aの実施例は、キーフィールドA1、B1(図11Aに図示)の対への結合演算と対応する。フィルタ1202が「フィールド1」(A1)を選択し、およびフィルタ1204が「フィールド1」(B1)を選択して、結合演算のキーフィールドと対応するセンサスレコードを比較することにより、センサス結合要素1200は、テーブルAおよびテーブルBからの個々のレコードのキーフィールドを比較する結合要素1100よりずっと少ない数の比較ですむ可能性がある。図12Bの実施例は、フィルタ1206が、「フィールド1」(A1)を選択し、およびフィルタ1208が「フィールド2」(B2)を選択する結合演算と対応する。選択したセンサスレコード1210〜1218は、フィールド/値の対のそれぞれのフィールドに対する値、およびその値に対する出現カウントによるラベルを付けて示す。
センサス結合要素1200が、2つの入力センサスレコード1210〜1218の値の間に一致を見付けた場合、出力レコードには、一致した値、2つのカウントに基づく対応する出現パターン、およびキーフィールド対への結合演算で生成されるレコードの総数(単に2つのカウントの積)が収納される。値の一致が見付からない場合も、その値は、対応する出現パターン、およびレコードの総数(単一の入力レコードにおける単一カウント)とともに出力される。センサス結合要素1200の出力レコード内のこの情報により、結合演算に対する出現チャートのカウント全てを十分集計できる。
図12Aの実施例では、値「W」は、出現パターン1×0、および総数1を伴って出力に現れ、値「X」は、出現パターンN×N、および総数4を伴って出力に現れ、値「Y」は、出現パターン1×N、および総数2を伴って出力に現れる。この情報は、図11Aの出現チャート1118の情報と一致する。図12Bの実施例では、値「W」は、出現パターン1×1、および総数1を伴って出力に現れ、値「X」は、出現パターンN×1、および総数2を伴って出力に現れ、値「Y」は、出現パターン1×1、および値1を伴って出力に現れ、値「Z」は、出現パターン0×1、および値1を伴って出力に現れる。この情報は、図11Bの出現チャート1122の情報と一致する。
6.2 拡張レコード
単一のセンサス結合演算での多数のフィールド対に対する結合フィールド解析には、センサスレコードに基づいて「拡張レコード」を生成するステップが含まれる。図13に示す実施例では、センサス結合要素1200は、図12A〜図12Bに示す結合フィールド解析を組み合わせて、キーフィールドA1、B1、およびA1、B2の二対の結合フィールド解析に対するレコードを比較する。拡張レコードは、結合されたキーフィールド対に対する一意の識別子をセンサスレコードの値と連結し、センサスレコードと同一の出現カウントを保持することにより、センサスレコードから生成される。
結合フィールド解析が、多数の他のフィールドと結合されているフィールドの結果を含む場合、そのフィールドの値毎に多数の拡張レコードが生成される。例えば、センサスレコード1210は、値「W」がそれぞれ識別子「A1B1」、および「A1B2」と連結された2つの拡張レコード1301〜1302と対応する。センサス結合要素1200は、値「WA1B1」をもつセンサスレコードを扱うかのように拡張レコード1301を扱う。同様に、センサスレコード1211は、2つの拡張レコード1303〜1304と対応し、センサスレコード1212は、2つの拡張レコード1305〜1306と対応する。
図13の結合フィールド解析では、フィールドB1は1つの他のフィールド(A1)と結合されるだけであり、従って、各センサスレコード1213〜1214は、単一の拡張レコード1307〜1308とそれぞれ対応する。同様に、フィールドB2は1つの他のフィールド(A1)と結合され、従って、各センサスレコード1215〜1218は、単一の拡張レコード1309〜1312と対応する。各拡張レコードには、一意のフィールド識別子と連結された元の値に基づく値が含まれる。
図14を参照する。拡張要素1400は、結合フィールド解析で、どのフィールドが他のどのフィールドと結合されているかを指示する結合情報1401に基づいて、入力センサスレコードを処理して拡張レコードを生成する。本実施例では、結合情報1401、テーブルT1(4つのセンサスレコード1402をもつ)に対するセンサスデータからのフィールドF1が4つの他のフィールド、すなわち、テーブルT2(2つのセンサスレコード1404をもつ)に対するセンサスデータからのフィールドF1、テーブルT2(2つのセンサスレコード1406をもつ)に対するセンサスデータからのフィールドF2、テーブルT3(2つのセンサスレコード1408をもつ)に対するセンサスデータからのフィールドF1、およびテーブルT3(2つのセンサスレコード1410をもつ)に対するセンサスデータからのフィールドF2、と結合されていることを指示する。拡張要素1400に流入するセンサスレコード1412は、フィールドF1をもつテーブルT1に対するセンサスデータからの4つのセンサスレコード1402のうちの1つ、および値Vi(i=1、2、3、または4)を表す。拡張要素1400は、入力センサスレコード1412に対して4つの拡張レコード1413〜1416を生成する。
センサス結合要素1200は、同一名をもつ異なるテーブルのフィールドを含むフィールドに対して一意の識別子を用いる。拡張レコード1413は、元の値Viを、結合されているフィールドに対する識別子、およびフィールドに対するセンサスデータが生成されたテーブル(またはファイルか他のデータソース)に対する識別子と連結したものである値c(T1、F1、T2、F1、Vi)を有する。テーブルに対する識別子を含むのは、同一名のフィールドを区別できるようにするためである。テーブルT2およびT3がともに同一のフィールド名F1をもつ場合、値c(T1、F1、T3、F1、Vi)をもつ拡張レコード1415を、拡張レコード1413の値c(T1、F1、T2、F1、Vi)と区別できる。代替として、一意の数字を各フィールドに割り当てて、フィールド名の代わりに用いることができる。
6.3 結合フィールド解析グラフ
図15A〜図15Bは、データソース30内のソース(例えば、テーブルまたはファイル)にある選択フィールドの結合フィールド解析をオプションとして実行するためにプロファイリングモジュール100が用いるグラフを示す。ユーザー118は、プロファイリングし、結合フィールド解析をするためのオプションを選択する。オプションは、結合フィールド解析せずにプロファイルを実行するステップを含む。ユーザー118は、互いに対となる2つの特定フィールド、他の全てのフィールドと対になる1つのフィールド、または他の全てのフィールドと対になる全てのフィールドを含む結合フィールド解析のためのフィールド対を選択する。ユーザー118は、同一のテーブルまたはファイル内のフィールドを対にできるオプション、または異なるテーブルまたはファイルからのフィールドだけを対にできるオプションを選択する。これらのオプションはメタデータ格納112に格納されている。
図15Aを参照する。結合フィールド解析オプションで指定したフィールドの各ソース(例えば、テーブルまたはファイル)について、グラフ1500は、これらの指定フィールドについて作成したセンサスデータ1510をもつファイルを生成する。グラフ1500は、結合フィールド解析に含まれるこのようなソース毎に一回実行される。フィルタ1504は、センサス作成要素406が生成するセンサスデータ1502からレコードを受け取り、結合フィールド解析についてのレコードを作成する。フィルタ1504は、(メタデータ格納112に格納したユーザーオプションにより決定された)解析に含まれないフィールドのレコードを破棄する。フィルタ1504はまた、妥当でない値、ヌル値、およびデータソース内容の意義ある解析に含まれないその他の値(例えば、既知のデータフラグ)を破棄する。
センサスデータ1502内の値は、センサス作成要素406内の正規化要素616により正規化されている。しかしながら、これらの正規化された値は、例えば、先頭または末尾にスペースをもつ文字列、または先頭または末尾にゼロをもつ数字など、値の論理比較で用いるべきでない部分を有することがある。ユーザー118は、これらの値を「文字通り(literally)」比較すべきか、あるいは「論理的に(logically)」比較すべきかのオプションを選択できる。ユーザー118が「文字通り」の比較を選択する場合、センサスレコードの値は正規化形式のまま残される。ユーザー118が「論理的な」比較を選択する場合、フィルタ1504は、先頭または末尾のスペースを除去し、数字では先頭または末尾のゼロを除去するなどの、規則に従ってセンサスレコードの値を変換する。
値によるパーティション要素1506は、センサスレコードの値に基づいてレコードを再パーティション化する。同一の値をもつセンサスレコードは何れも、同一のパーティションに置く。これにより、結合フィールド解析を任意の数のパーティションについて並列に実行することが可能になる。センサス結合要素1200は、値が一致する入力レコードに対する出力だけを生成するので、別のパーティションのセンサスレコード(またはそれらから生成される何らかの拡張レコード)を互いに比較する必要はない。
ロールアップ論理値要素1508は、フィルタ1504が実行する変換により、一致するフィールド/値の対をもつ任意のセンサスレコードを組み合わせる。組み合わせたレコードは、組み合わされる全てのレコードに対するカウントを合計した出現カウントを有する。例えば、「量,01.00,5」のフィールド、値、カウントをもつセンサスレコードが、「量,1,5」に変換され、「量,1.0,3」のフィールド、値、カウントをもつセンサスレコードが、「量,1,3」に変換される場合、ロールアップ論理値要素1508は、これら2つの変換されたレコードを、「量,1,8」のフィールド、値、カウントをもつ単一のレコードに組み合わせる。
図15Bを参照する。結合フィールド解析オプションで指定したように、比較する1つ以上のフィールドをもつソースA、およびソースBの各ソース対について、グラフ1512は、それぞれグラフ1500が作成した作成センサスデータA1514、および作成センサスデータB1516を用いて実行される。2つの拡張要素1400は、ソースBの特定フィールドと比較すべきソースAの特定フィールドを規定する結合情報1515と併せて、これらの作成したセンサスデータのセットからレコードを受け取る。比較するフィールドに対する値、出現パターン、および出現チャートのカウントを含むレコードを生成するセンサス結合要素1200に拡張レコードが流れ込む。ローカルロールアップ結合統計要素1518は、各パーティション内のこれらのレコードにある情報を集計する。各種のパーティションのレコードは、解析するソース対全てのフィールドに対する結合フィールド解析統計のファイル1522を出力するグローバルロールアップ結合統計要素1520により集結され、集計される。各種のフィールド間に、3種類の関連性のうちのどれが存在する可能性があるかを含む結合フィールド解析の結果が、ユーザー118への提示のためにメタデータ格納112にロードされる。例えば、ユーザー118は、可能性のある関連性をもつフィールド対に対するユーザーインターフェース116上のリンクを選択し、フィールド対に対する出現チャートからのカウントを含む詳細な解析結果をもつユーザーインターフェース116上のページを見ることができる。
図15Cを参照する。結合フィールド解析を、同一ソース(ソースC)内の2つのフィールドに対して実行する場合、グラフ1524は、グラフ1500が作成した作成センサスデータC1526を用いて実行される。単一の拡張要素1400は、比較すべきソースCの特定フィールドを規定する結合情報1528と併せて、作成センサスデータC1526のセットからレコードを受け取る。比較するフィールドに対する値、出現パターン、および出現チャートのカウントを含むレコードを生成するセンサス結合要素1200の両ポートに、拡張レコードが流れ込む。
ソースCの全てのフィールドを、(4つのフィールド:F1、F2、F3、F4をもつ)ソースCの他の全てのフィールドと比較するよう指示する結合フィールド解析オプションの場合、一手法では、結合情報1528が、12対のフィールド(F1−F2,F1−F3,F1−F4,F2−F1,F2−F3,F2−F4,F3−F1,F3−F2,F3−F4,F4−F1,F4−F2,F4−F3)を指定する。しかしながら、F1−F3、およびF3−F1の対では同一の演算が実行されるので、幾つかの演算は繰り返しである。従って、別の手法では、結合情報が、一意の6対、F1−F2,F1−F3,F1−F4,F2−F3,F2−F4,F3−F4だけを指定する。この場合、出力ファイル1530の結果は、解析した6対の解析結果のフィールド順を逆にすることにより、他の6対のフィールドの結果を含めるように補う。
7 機能依存性解析
プロファイリングモジュール100が実行可能な別の種類の解析は、フィールドの値の間の機能関連性の検査である。検査するフィールドは、フィールドセットをもつ単一のテーブルからでも、(例えば、セクション7.3で更に詳細に説明するように、共通キーフィールドを用いるフィールドの結合演算により)関連する多数のソースからのフィールドを含む「仮想テーブル(virtual table)」からでもよい。フィールド対の間の機能関連性の一種に、レコードのあるフィールドと関係付けられる値が、そのレコードの別のフィールドと関係付けられる値により一意に決定できる「機能依存性」がある。例えば、データベースが「State」フィールド、および「Zip Code」フィールドを有する場合、「Zip Code」フィールドの値(例えば、「90019」)は、「State」フィールドの値(例えば、「CA」)を決定する。すなわち、「多対一」マッピングにより、「Zip Code」フィールドの各値を「State」フィールドの一意の値にマッピングする。機能依存関連性は、レコードの一方のフィールドと関係付けられる値を、レコードの他のフィールドと関係付けられる値により一意に決定できるフィールドのサブセット間に存在させることもできる。例えば、「Zip Code」フィールドの値は、「City」フィールド、および「Street」フィールドの値により一意に決定できる。
機能依存性は、「近似機能依存性」とすることもできる。あるフィールドと関係付けられる値の、全てとは限らない幾つかが、一意の値にマッピングされないある割合の例外を除いて、別のフィールドの一意の値にマッピングされる。例えば、レコードの幾つかが、特別な値「00000」で示される未知の「Zip Code」をもつことがある。この場合、「Zip Code」フィールドの値「00000」は、「State」フィールド(例えば、「CA」、「FL」、および「TX」)の2つ以上の値にマッピングされることになる。例外は、不正確な値、または他のエラーにより発生することもある。例外の率が所定の(例えば、ユーザー入力の)閾値より小さい場合には、フィールドは別のフィールドに機能的に依存していると判定できる。
図16を参照する。機能依存性、または近似機能依存性を検査するレコード(行)、およびフィールド(列)を有する例示のテーブル1600を示す。「Last Name」フィールドは、12のレコード(行1〜12)と対応する12の値を有する。値のうちの10個は一意であり、2つは同一の繰り返しの値「name_g」を有する。「Citizenship」フィールドは、2つの一意の値、すなわち、11回出現する「US」、および一回出現する「CANADA」を有する。「Zip Code」フィールドは、「State」フィールドの3つの値「CA」、「FL」、および「TX」のうちの1つとそれぞれ対応する様々な値を有する。「Zip Code」の各値は、あるレコード(行10)では「FL」、およびもう1つのレコード(行12)では「TX」と対応するZip Code値「00000」を除いて、一意に「State」の値を決定する。
7.1 機能依存性解析グラフ
図17は、データソース30内の1つ以上のソース(例えば、単一のテーブル、もしくはファイル、またはセクション7.3で説明するような多数のテーブルおよび/もしくはファイル)の選択フィールドの機能依存性解析オプションを実行するためにプロファイリングモジュール100が用いるグラフ1700の実施例を示す。ユーザー118は、プロファイリング、および機能依存性解析のためのオプションを選択する。機能依存性解析をせずにプロファイリングを実行するオプションも含まれる。ユーザー118は、機能関連性を検査するフィールド対を選択する。ユーザー118は、データソース(例えば、テーブルまたはファイル)の特定フィールドを選択し、例えば、「全てから選択したものに」、もしくは「選択したものから選択したものに」を選んで、検査するフィールド対を決定するか、または「全てから全てに」を選んでデータソースのフィールド対全てを検査する。ユーザーは機能依存度を判定するための閾値を選択してから、あるフィールドが別のフィールドと機能依存しているかどうかを決定することもできる。例えば、ユーザーは、どれくらいの例外を(レコードの割合として)許容するかを決定する閾値を選択してもよい。これらのオプションはメタデータ格納112に格納される。
解析すべき各フィールド対(f1、f2)について、グラフ1700は、機能依存関連性が存在するかどうかを判定し、存在する場合は、フィールドf1とフィールドf2との間の関連性を以下のように分類する。すなわち、「f1がf2を決定する」、「f2がf1を決定する」、「一対一」(f1とf2との間には一対一のマッピングが存在する)、または「同一」(f1がレコードのそれぞれについてf2と完全に同一な値を有する)と分類する。グラフ1700は、プロファイリングモジュール100が格納するフィールド情報1702を読み取って、解析するフィールドの一意の識別子を判定する。対作成要素1704は、検査するフィールド対それぞれの一意の識別子対を用いて、フィールド対(f1、f2)のフローを生成する。対(f1、f2)は、f1とf2との間の関連性が必ずしも対称ではないので、整然と並ぶ対である。従って、(f1、f2)、および(f2、f1)の両方の対がフローに含まれる。
対選択要素1706は、ユーザーが解析のために選んだフィールド対を選択することにより、グラフ1700の残りの部分に流れるフィールド対を制限する。対選択要素1706は、グラフ1700の残りの部分に流れる対を各種の最適化に基づいてさらに制限する。例えば、フィールドはそれ自体と対にすることはできない。なぜなら、そのような対は定義により「完全同一」と分類されるからである。従って、対(f1、f1),(f2、f2)...などはフローに含まれない。他の最適化は、セクション7.2で、より詳細に説明するように、フローから1つ以上のフィールド対を除去できる。
一斉通知要素1708は、一斉通知リンクシンボル1710により表されるように、フィールド対の直列フローを(並列の可能性がある)値アタッチ要素1718のパーティションそれぞれに一斉通知する。値アタッチ要素1718の各パーティションは、フィールド対のフロー(例えば、(Last Name,Citizenship),(Zip,State)...など)、およびフィールド/値の対のフロー(例えば、(Last Name,name_a),(Last
Name,name_b),(Last Name,name_c),...,(Citizenship,Canada),(Citizenship,US),(Citizenship,US)...など)を入力として取り込む。
フィールド/値の対のフローを取得するために、フィルタ要素1712は、「入力データセット」要素402からレコードを抽出し、オプションとして、フィルタ式に基づいてレコードの一部を除去する。フィルタ要素1712から流れ出るレコードは、総当たりによるパーティション要素1714に流れ込む。総当たりによるパーティション要素1714は、「入力データセット」要素402のパーティションからレコードを取りだし、幾つかの並列プロセッサ、および/またはコンピューター間のレコードを再パーティション化して、プロセッサ、および/またはコンピューター間のワーク負荷を均衡させる。正規化要素1716(上記の正規化要素616と類似している)は、レコードのフローを取り込み、入力レコード内の各フィールドについての値を表すフィールド/値の対のフローを送り出す。上記のように、各値は、人が読める正規化文字列表現に変換される。
値アタッチ要素1718は、一連の結合演算を実行して、f1/f2/v1/v2の4重フローを生成する。ここでf1、およびf2は、入力で受け取るフィールド対のうちの1つと対応し、v1、およびv2は、レコードのこれらフィールドと対になる値と対応する。テーブル1600の実施例では、「Last Name」フィールドがf1、「Citizenship」フィールドがf2、に対応する場合、値アタッチ要素1718は、12個の4重フローf1/f2/v1/v2を生成し、それらには(LastName/Citizenship/name_a/Canada),(LastName/Citizenship/name_b/US),...,(LastName/Citizenship/name_k/US),(LastName/Citizenship/name_g/US)が含まれる。値アタッチ要素1718は、(Zip 、State)について、同様な一連の4重のf1/f2/v1/v2、および解析する任意の他のフィールド対を生成する。
値アタッチ要素1718は、4重フローf1/f2/v1/v2を、「ローカルロールアップf1/f2/v1/v2」要素1720に出力する。この要素は(各パーティションについて)、同一のフィールド、および値f1,f2,v1,v2をもつ多数の4重対を蓄積し、入力4重フローの出現数カウントをもつ単一の4重対としてそれらを表す。「ローカルロールアップf1/f2/v1/v2」要素1720の出力フローは、カウントをもつ4重対(または「蓄積した4重対」)から成る。
「ローカルロールアップf1/f2/v1/v2」要素1720で出現する蓄積は各パーティション内にある。従って、同一のf1/f2/v1/v2の値をもつ幾つかの4重対は、この要素1720に蓄積されない可能性がある。「f1/f2によるパーティション」要素1721は、同一のフィールドf1、f2をもつ4重対が同一のパーティションになるように、蓄積した4重対フローを再パーティション化する。「グローバルロールアップf1/f2/v1/v2」要素1722は、再パーティション化した4重対を更に蓄積する。「グローバルロールアップf1/f2/v1/v2」要素1722の出力フローは、一意の蓄積4重対から成る。テーブル1600の実施例では、「Zip」フィールドがf1に対応し、「State」フィールドがf2に対応する場合、要素1720〜1722の組合せ効果は、(Zip/State/90019/CA,4),(Zip/State/90212/CA,2),(Zip/State/33102/FL,3),(Zip/State/00000/FL,1),(Zip/State/77010/TX,1),(Zip/State/00000/TX,1)の6つの蓄積4重対を生成する。「State」フィールドがf1と対応し、「Zip」フィールドがf2と対応する場合は、要素1720〜1722の組合せ効果は、(State/Zip/CA/90019,4),(State/Zip/CA/90212,2),(State/Zip/FL/33102,3),(State/Zip/FL/00000,1),(State/Zip/TX/77010,1),(State/Zip/TX/00000,1)の6つの蓄積4重対を生成する。
一対のフィールド間の機能依存関連性についての検査を準備するために、「グローバルロールアップf1/f2/v1」要素1724は、f1、f2の両フィールド、および第1の値v1を共有する蓄積した4重対を組み合わせる。出力構成要素を生成する際には、この要素1724は、v1の値と組になるv2の全ての値を検査し、そのv1値と関係付けする最大頻度のv2を選択する。最大頻度のv2を共有する4重対の数を「良好(good)」としてカウントし、残りの4重対を「例外(exception)」としてカウントする。所与のv1に対して、唯一のv2値がある場合、その値をもつ蓄積した4重対は良好であり、例外はない。最大頻度のv2値が同点の場合、最初の値を選択する。テーブル1600の実施例では、「Zip」フィールドがf1に対応し、「State」フィールドがf2に対応する場合、要素1724は、(Zip/State/90019/CA,4 good),(Zip/State/90212/CA,2
good),(Zip/State/33102/FL,3 good),(Zip/State/00000/FL,1 good,1 exception),(Zip/State/77010/TX,1
good)を生成する。「State」フィールドがf1と対応し、「Zip」フィールドがf2と対応する場合は、要素1724は、(State/Zip/CA/90019,4
good,2 exceptions),(State/Zip/FL/33102,3 good,1
exception),(State/Zip/TX/77010,1 good,1 exception)を生成する。
「グローバルロールアップf1/f2」要素1726は、フィールドf1、f2の一意の各対について良好カウント、および例外を加算する。テーブル1600の実施例では、「Zip」フィールドがf1に対応し、「State」フィールドがf2に対応する場合、要素1726は、(Zip/State,11 good,1 exception)を生成する。「State」フィールドがf1と対応し、「Zip」フィールドがf2と対応する場合は、要素1726は、(State/Zip,8
good,4 exceptions)を生成する。
依存性検出要素1728は、「グローバルロールアップf1/f2」要素1726からの蓄積した共出現統計(すなわち、良好および例外のレコード数)を用いて、一対のフィールドが、「f1がf2を決定する」関連性を有するかどうかを判定する。例外数/(良好数+例外数)により与えられる例外率が、例外を幾つまで許容するかを決定するために選択した閾値より低い場合、フィールド対は、「f1がf2を決定する」関連性を有する。テーブル1600の実施例では、10%の閾値に対して、「Zip」フィールドがf1に対応し、「State」フィールドがf2に対応する場合、例外率は8.3%であり、「Zip」フィールドの値が「State」フィールドの値を決定する。「State」フィールドがf1と対応し、「Zip」フィールドがf2と対応する場合は、例外率は33%であり、従って、「Zip」と「State」フィールドとの間の関連性は、一対一ではない。代替として、蓄積した値の数学的特性に基づく値(例えば、フィールドf1の値が与られたフィールドf2の値の条件付きエントロピー、または数値の標準偏差など)を用いて、フィールドf1がフィールドf2を決定するかどうかを判定できる。
7.2 フィールド対選択最適化
多様な最適化を適用して、例えば、対選択要素1706でフィールド対にフィルタをかけることにより、またはフィルタ要素1712でレコードにフィルタをかけることにより、機能依存性解析を高速化できる。幾つかの最適化は、上記のグラフ1700で発見される機能依存関連性には、ユーザーにとって、他のものより重要でないものもあるという考えに基づく。所与のフィールド対に対して、これらのケースの幾つかは、プロファイリングモジュール100が提供する統計に基づいて対選択要素1706により検出し、フィルタで排除することにより、コンピューターリソースを節約できる。例えば、第1フィールドf1の値全てが一意の場合(各値が単一のレコードだけに出現する)、そのフィールドf1の値は、フィールドf2に出現する値にかかわらず、第2フィールドf2の値を決定する。
グラフ1700は、プロファイリング中に取得したセンサスデータを用いて、フィールドの値のランダムなペア化(例えば、一様な確率で分配)に基づいた場合、第1フィールドf1が第2フィールドf2を決定する確率を計算することができる。ランダムな対により機能依存性が生じる確率が高い場合(例えば、>10%)、そのフィールド対を対選択要素1706によりフィルタで排除する。テーブル1600の実施例では、「Last Name」フィールドがf1に対応し、「Citizenship」フィールドがf2に対応する場合、「Last Name」フィールドと「Citizenship」フィールドとの全てのランダムペア化により、「name_g」値(行7、または行12)の1つが値「Canada」とランダムにペア化される場合を除いて、全ての4重対が良好とカウントされることになる。このランダムペア化が起きる場合でも(16.7%の確率で(12対のうちの2))、例外率は、8.3%に過ぎず、閾値未満である。従って、本実施例では、対選択要素1706は、対(Last Name、Citizenship)にフィルタをかける。
別の最適化は、プロファイリングモジュール100がセンサスデータから計算した値のヒストグラムに基づく。対選択要素1706は、フィールドf1がフィールドf2を決定できない場合、対にフィルタをかける。テーブル1600の実施例では、「State」の最大頻度値は6回であり、「Zip」の最大頻度値は4回にすぎない。従って、「State」の値は「Zip」の値を決定できない。なぜなら、値の少なくとも半分に対して少なくとも2/6の例外があり、少なくとも16.7%の例外率を生じるからである。従って、本実施例では、対選択要素1706は、対(State、Zip)にフィルタをかける。
レコード数の規模が大きい時には、グラフ1700は、レコードの小サンプルを処理して、機能的に関連しない可能性が高いフィールド対を除去してからレコード全体を処理することにより、機能依存性の検査を高速化できる。グラフ1700は、フィルタ要素1712を用いてレコードの一部を選択できる。代替として、グラフ1700は、正規化要素1716を用いてフィールド/値の対の一部を選択できる。
レコード、またはフィールド/値の対は、各種の基準に基づいてサンプリングできる。グラフ1700は、プロファイリングモジュール100が提供する統計に基づいてサンプリングできる。例えば、グラフ1700は、第1フィールドf1の最大頻度値(「判定子(determiner)」)に基づいて機能依存性を検査できる。得られた例外数が閾値を超える場合、判定子の残りの値を処理する必要はない。グラフ1700は、判定子の値のランダムサンプルに基づく機能依存性の検査もできる。サンプル値の中に良好とカウントされた4重対の数が十分ある場合、他の値の中に大量の例外数を発見する確率は無視できると仮定される。他のサンプリング基準も可能である。
別の最適化オプションは、既知の機能のライブラリに基づいて、フィールド間の所定の機能依存性を検査することである。この検査は、レコード上で、または4重対の値について実行できる。
7.3 多数のソースを横断する機能依存性解析
多数のソース(例えば、データベーステーブル)を横断する機能依存性を検査するための一手法では、プロファイリングモジュール100は、多数のソースからのフィールドを含む「仮想テーブル」を生成する。仮想テーブルは、例えば、ソースに共通なキーフィールドを用いて、ソース上に結合演算を実行することにより生成できる。
仮想テーブルを用いる機能依存性解析の一実施例では、第1のデータソースは、自動車登録情報のデータベース(自動車登録(MVR)データベース)であり、第2のデータソースは、発行済み交通違反召喚状のデータベース(交通違反召喚状(TC)データベース)である。MVRデータベースには、「製造」、「モデル名」、「色」などのフィールドが含まれ、「一次キー」フィールドとして指定された「ライセンス」フィールドが含まれる。MVRデータベースの各レコードは、ライセンスフィールドの一意の値を有する。TCデータベースには、名前、日付、場所、違反、車両メーカー、車両モデル、車両色などのフィールドが含まれ、「外部キー」として指定される車両ライセンスフィールドが含まれる。車両ライセンスフィールドの各値は、ライセンスフィールドにその値をもつMVRデータベースに対応するレコードを有する。TCデータベースには、車両ライセンスフィールドの値が同一の多数のレコードがあってもよい。
プロファイリングモジュール100は、MVRデータベース、およびTCデータベースからのレコードを結合して、例えば、図11Aに示す結合要素1100を参照して上述したように、仮想テーブルを形成する。仮想テーブルの各レコードは、MVRライセンスフィールド、およびTC車両ライセンスフィールドからの一致した値をもつ単一のライセンスフィールドを含む2つのデータベースからのフィールドそれぞれを有する。しかしながら、レコードは、TCデータベースの車両色フィールドの値と異なるMVRデータベースの色フィールドの値を有してもよい。例えば、MVRデータベースが「BLU」コードを用いて青色を指示し、TCデータベースが「BU」コードを用いて青色を指示してもよい。このケースでは、車両が両方のデータベースに同じ色をもつ場合、色フィールドは、車両色フィールドと「一対一」の機能関連性を有することになる。代替として、登録時と召喚状を受領した時との間に車両が異なる色で塗装されている場合、レコードは色フィールドおよび車両色フィールドで異なる値を有し得る。
結合した仮想テーブルには、多数のデータセットそれぞれからのフィールドが含まれるので、プロファイリングモジュール100は、これらのデータセットのフィールド間に存在する各種の関連性のいずれも発見できる。上記と同一、または類似の依存性解析を、結合した仮想テーブルのフィールドに実行できる。
上記の手法は、コンピューター上で実行するソフトウエアを用いて実装できる。例えば、ソフトウエアは、一台以上にプログラムされるか、またはプログラム可能なコンピューターシステム(分散型、クライアント/サーバ、またはグリッドなどの、各種アーキテクチャのもの)上で動作する1つ以上のコンピュータープログラムの手順を形成し、各コンピューターシステムには、少なくとも1つのプロセッサ、少なくとも1つのデータ格納システム(例えば、揮発、または不揮発メモリ、および/または格納構成要素)、少なくとも1つの入力装置またはポート、および少なくとも1つの出力装置またはポートが含まれる。ソフトウエアは、より大きなプログラム、例えば、グラフの設計および構成と関連する他のサービスを提供するプログラムの、1つ以上のモジュールを形成してもよい。
ソフトウエアは、汎用、または専用のプログラム可能コンピューターにより可読な媒体、または装置上で提供しても、またはネットワークを通じて実行されコンピューターに配送してもよい。全ての機能は、専用コンピューター上で実行してもよく、またはコプロセッサなどの専用ハードウエアを用いて実行してもよい。ソフトウエアは、ソフトウエアが規定する計算の異なる部分を異なるコンピューターで実行する分散型で実装してもよい。このようなコンピュータープログラムはそれぞれ、汎用または専用のプログラム可能コンピューターが可読な格納媒体または装置(例えば、固体メモリもしくは媒体、または磁気式もしくは光学式媒体)上に格納するか、またはダウンロードするのが好ましく、コンピューターシステムが格納媒体または装置を読み取って本明細書で説明した手順を実行する場合に、そのプログラムがコンピューターを構成し、動作させる。本発明のシステムはまた、コンピュータープログラムを伴って構成され、コンピューター可読格納媒体として実装することも考えられ、そのように構成される格納媒体により、コンピューターシステムが特定かつ所定の方法で動作して、本明細書で説明した機能を実行する。
上記の記述は説明を意図したものであり、付帯の請求項の範囲により定義される本発明の範囲を限定する意図はないことはいうまでもない。他の実施の形態は、以下の請求項の範囲内にある。
図1は、データプロファイリングモジュールを含むシステムのブロック図である。 図2は、データプロファイリングに用いられるメタデータ格納内のオブジェクトの編成を説明するブロック図である。 図3は、プロファイリングモジュールに対するプロファイリンググラフである。 図4は、データフォーマットを解釈するために用いる型オブジェクトについての階層ツリー図である。 図5Aは、プロファイリンググラフのセンサス作成要素、センサス解析要素、およびサンプル作成要素を実装するサブグラフを説明する図である。 図5Bは、プロファイリンググラフのセンサス作成要素、センサス解析要素、およびサンプル作成要素を実装するサブグラフを説明する図である。 図5Cは、プロファイリンググラフのセンサス作成要素、センサス解析要素、およびサンプル作成要素を実装するサブグラフを説明する図である。 図6は、ロールアップ手順のフロー図である。 図7は、正規化手順のフロー図である。 図8Aは、プロファイル結果を示す例示のユーザーインターフェース画面出力である。 図8Bは、プロファイル結果を示す例示のユーザーインターフェース画面出力である。 図8Cは、プロファイル結果を示す例示のユーザーインターフェース画面出力である。 図9は、例示のプロファイリング手順のフロー図である。 図10は、例示のプロファイリング手順のフロー図である。 図11Aは、2対のフィールドからのレコードに実行する結合演算の2つの実施例である。 図11Bは、2対のフィールドからのレコードに実行する結合演算の2つの実施例である。 図12Aは、2対のフィールドからのセンサスレコードへのセンサス結合演算の2つの実施例である。 図12Bは、2対のフィールドからのセンサスレコードへのセンサス結合演算の2つの実施例である。 図13は、2対のフィールドに単一のセンサス結合演算を実行するために用いる拡張レコードの実施例である。 図14は、拡張レコードを生成するために用いる拡張要素である。 図15Aは、結合フィールド解析を実行するために用いるグラフである。 図15Bは、結合フィールド解析を実行するために用いるグラフである。 図15Cは、結合フィールド解析を実行するために用いるグラフである。 図16は、機能依存関連性を有するフィールドをもつ例示のテーブルである。 図17は、機能依存解析を実行するために用いるグラフである。

Claims (82)

  1. データを処理するための方法であって、
    データソースからのデータをプロファイリングするステップであって、前記データソースから前記データを読み取るステップ、前記データを読み取りながら前記データを特性付ける要約データを計算するステップ、および前記要約データに基づくプロファイル情報を格納するステップ、を含むプロファイリングステップと、
    前記データソースからの前記データを処理するステップであって、前記格納したプロファイル情報にアクセスするステップ、および前記アクセスしたプロファイル情報に従って前記データを処理するステップを含む、処理ステップと、
    を含む方法。
  2. 前記データソースからの前記データを処理するステップが、前記データソースから前記データを読み取るステップを更に含む請求項1の方法。
  3. 前記データをプロファイリングするステップが、前記データソース外に前記データのコピーを保持せずに実行される請求項1の方法。
  4. 前記データが、条件付きフィールド、および可変数のフィールドのうちの少なくとも一方を有する可変レコード構造の記録を含む請求項3の方法。
  5. 前記データを読み取りながら前記データを特性付ける要約データを計算するステップが、前記データを特性付ける要約データを計算しながら前記可変レコード構造のレコードを解釈するステップを含む請求項4の方法。
  6. 前記データソースが、データ格納システムを含む請求項1の方法。
  7. 前記データ格納システムが、データベースシステムを含む請求項6の方法。
  8. 前記要約データを計算するステップが、フィールドに対する個別の値のセットそれぞれの出現数をカウントするステップを含む請求項1の方法。
  9. プロファイル情報を格納するステップが、前記フィールドに対する前記出現カウント数に基づいて前記フィールドに対する統計を格納するステップを含む請求項8の方法。
  10. 前記データソースに関連するメタデータを収容するメタデータ格納を維持するステップを更に含む請求項1の方法。
  11. 前記プロファイル情報を格納するステップが、前記データソースに関連する前記メタデータを更新するステップを含む請求項10の方法。
  12. 前記データをプロファイリングするステップ、および前記データを処理するステップがそれぞれ、前記データソースのメタデータを利用する請求項10の方法。
  13. 前記データソースからのデータをプロファイリングするステップが、前記プロファイル情報に基づいてフォーマット仕様を決定するステップを更に含む請求項1の方法。
  14. 前記データソースからのデータをプロファイリングするステップが、前記プロファイル情報に基づいて検証仕様を決定するステップを更に含む請求項1の方法。
  15. 前記データを処理するステップが、前記検証仕様に基づいて前記データ内の妥当でないレコードを識別するステップを含む請求項14の方法。
  16. 前記データソースからのデータをプロファイリングするステップが、前記プロファイル情報に基づいてデータ変換命令を指定するステップを更に含む請求項1の方法。
  17. 前記データを処理するステップが、前記データに前記変換命令を適用するステップを含む請求項16の方法。
  18. 前記データを処理するステップが、データ格納サブシステムに前記データをインポートするステップを含む請求項1の方法。
  19. 前記データを処理するステップが、データ格納サブシステムに前記データをインポートする前に前記データを検証するステップを含む請求項18の方法。
  20. 前記データを検証するステップが、前記データの特性を前記データの基準特性と比較するステップを含む請求項19の方法。
  21. 前記基準特性が、前記データの統計特性を含む請求項20の方法。
  22. 前記データをプロファイリングするステップが、前記データを並列にプロファイリングするステップを含み、前記並列プロファイリングステップは、前記データをパーツにパーティション化するステップ、および並列成分の第1セットの別々のものを用いて前記パーツを処理するステップを含む請求項1の方法。
  23. 前記データを並列にプロファイリングするステップが、並列成分の第2セットの別々のものを用いて、前記データの異なるフィールドに対する前記要約データを計算するステップを更に含む請求項22の方法。
  24. 前記データを並列にプロファイリングするステップが、並列成分の前記第1セットの出力を再パーティション化して、並列成分の前記第2セットに対する入力を形成するステップを更に含む請求項23の方法。
  25. 前記データを並列にプロファイリングするステップが、並列データソースからの前記データを読み取るステップを含み、前記並列データソースの各パーツは、並列成分の前記第1セットのうちの異なるものにより処理される請求項22の方法。
  26. データを処理するための方法であって、
    データソースからのデータをプロファイリングするステップであって、前記データソースから前記データを読み取るステップ、前記データを読み取りながら前記データを特性付ける要約データを計算するステップ、および前記要約データに基づくプロファイル情報を格納するステップを含む、プロファイリングステップを含み、
    前記データをプロファイリングするステップは、前記データを並列にプロファイリングするステップを含み、前記並列プロファイリングステップは、前記データをパーツにパーティション化するステップ、および並列成分の第1セットのうちの別々のものを用いて前記パーツを処理するステップを含む方法。
  27. データ処理システム上で実行されると、請求項1から26までの何れかの方法ステップ全てを実行するように成された命令を含むソフトウエア。
  28. コンピューター可読媒体上に実装される請求項27のソフトウエア。
  29. データ処理システムであって、
    データソースからデータを読み取り、前記データを読み取りながら前記データを特性付ける要約データを計算し、前記要約データに基づくプロファイル情報を格納するよう構成されるプロファイリングモジュールと、
    前記格納したプロファイル情報にアクセスし、前記アクセスしたプロファイル情報に従って前記データソースからの前記データを処理するよう構成される処理モジュールと、
    を含むデータ処理システム。
  30. データ処理システムであって、
    データソースからデータをプロファイリングするための手段であって、前記データソースから前記データを読み取るための手段、前記データを読み取りながら前記データを特性付ける要約データを計算するための手段、および前記要約データに基づくプロファイル情報を格納するための手段を含む、プロファイル手段と、
    前記データソースからの前記データを処理するための手段であって、前記格納したプロファイル情報にアクセスするための手段、および前記アクセスしたプロファイル情報に従って前記データを処理するための手段を含む、処理手段と、
    を含むデータ処理システム。
  31. データを処理するための方法であって、
    第1データソースのレコードの第1フィールドの値を特性化する情報、および第2データソースのレコードの第2フィールドの値を特性化する情報を受け取るステップと、
    前記受け取った情報に基づいて、前記第1フィールドと、前記第2フィールドとの間の関連性を特性化する量を計算するステップと、
    前記第1フィールド、および前記第2フィールドを関連付ける情報を提示するステップと、
    を含む方法。
  32. 前記情報を提示するステップが、前記情報をユーザーに提示するステップを含む請求項31の方法。
  33. 前記第1データソース、および前記第2データソースが同一のデータソースである請求項31の方法。
  34. 前記第1データソース、および前記第2データソースのうちの少なくとも1つがデータベーステーブルを含む請求項31の方法。
  35. 前記関連性を特性化する前記量が、前記第1フィールド、および前記第2フィールドの値の結合特性を特性化する量を含む請求項31の方法。
  36. 前記第1フィールドの値を特性化する前記情報が、前記第1フィールドの値の分布を特性化する情報を含む請求項35の方法。
  37. 前記第1フィールドの値の分布を特性化する前記情報が、複数のデータレコードを含み、前記各データレコードは、異なる値と、その値の前記第1データソースの前記第1フィールドにおける対応する出現数とを関係付ける請求項36の方法。
  38. 前記第2フィールドの値を特性化する情報が、前記フィールドの値の分布を特性化する情報を含む請求項36の方法。
  39. 前記結合特性を特性化する前記量を計算するステップが、前記第1フィールド、および前記第2フィールドの値の前記分布を特性化する前記情報を処理して、複数の値共出現カテゴリと関連する量を計算するステップを含む請求項38の方法。
  40. 前記第1フィールド、および前記第2フィールドの値の前記分布を特性化する前記情報が、複数のデータレコードを含み、前記各データレコードは、異なる値と、その値の対応する出現数とを関係付け、値の前記分布を特性化する前記情報を処理するステップが、それぞれ前記第1フィールド、および前記第2フィールド上の、前記第1データソース、および前記第2データソースの結合の値分布を特性化する情報を計算するステップを含む請求項39の方法。
  41. 前記複数の値共出現カテゴリと関連する前記量が、複数のデータレコードを含み、前記データレコードのそれぞれは、前記共出現カテゴリの1つと関係付けられ、前記カテゴリにある前記第1および前記第2フィールドの一意の値の数を含む請求項39の方法。
  42. 前記第1フィールド、および前記第2フィールドの前記値の前記結合特性を特性化する前記量を計算するステップが、それぞれ前記第1フィールド、および前記第2フィールドを用いて、前記第1データソース、および前記第2データソースの結合の値分布を特性化する情報を計算するステップを含む請求項35の方法。
  43. 前記第1フィールド、および前記第2フィールドの前記値の前記結合特性を特性化する前記量を計算するステップが、複数の値共出現カテゴリと関連する量を計算するステップを含む請求項35の方法。
  44. 前記値共出現カテゴリが、前記第1フィールド、および前記第2フィールドのうちの一方に少なくとも一回出現するが、前記フィールドの他方には出現しない値を含む請求項42の方法。
  45. 前記値共出現カテゴリが、前記第1フィールド、および前記第2フィールドのそれぞれに唯一回出現する値を含む請求項42の方法。
  46. 前記値共出現カテゴリが、前記第1フィールドおよび前記第2フィールドの一方に唯一回出現し、前記フィールドの他方に二回以上出現する値を含む請求項42の方法。
  47. 前記値共出現カテゴリが、前記第1フィールド、および前記第2フィールドのそれぞれに二回以上出現する値を含む請求項42の方法。
  48. 値を特性化する情報を受け取るステップ、および前記値の結合特性を特性化する量を計算するステップを更に含み、複数の第1および第2フィールド対について繰り返される請求項35の方法。
  49. 複数のフィールド対それぞれが、前記値の前記結合特性を特性化する前記量を計算するよう前記フィールド対の値とともに含まれる一意の識別子を有する請求項48の方法。
  50. 前記複数のフィールド対のうちの1つ以上の前記フィールドに関連する情報を提示するステップを更に含む請求項48の方法。
  51. 前記複数のフィールド対のうちの1つ以上の前記フィールドに関連する前記情報を提示するステップが、フィールドを、複数種類のフィールド関連性のうちの1つの候補フィールドと識別するステップを含む請求項50の方法。
  52. 前記複数種類のフィールド関連性が、一次キーと外部キーとの関連性を含む請求項51の方法。
  53. 前記複数種類のフィールド関連性が、共通領域関連性を含む請求項51の方法。
  54. 前記量を計算するステップが、前記第1フィールド、および前記第2フィールドの文字値から変換される論理値に基づいて前記量を計算するステップを含む請求項31の方法。
  55. 前記量を計算するステップが、前記量を並列計算するステップを含み、前記並列計算ステップは、前記データレコードをパーツにパーティション化するステップ、および並列成分のセットのうちの別々のものを用いて前記パーツを処理するステップを含む請求項37の方法。
  56. 前記パーツが、前記第1フィールド、および前記第2フィールドの値に基づく請求項55の方法。
  57. 同一の値を有するデータレコードが、同一のパーツにある請求項56の方法。
  58. データ処理システム上で実行されると、請求項31から57までの何れかの方法ステップ全てを実行するように成された命令を含むソフトウエア。
  59. コンピューター可読媒体上に実装される請求項58のソフトウエア。
  60. データを処理するためのシステムであって、
    第1データソースのレコード内の第1フィールドの値を特性化する情報、および第2データソースのレコード内の第2フィールドの値を特性化する情報を受け取るよう構成された値処理モジュールと、
    前記受け取った情報に基づいて、前記第1フィールドと、前記第2フィールドとの間の関連性を特性化する量を計算するよう構成される関連性処理モジュールと、
    前記第1フィールドと、前記第2フィールドとに関連する情報を提示するよう構成されるインターフェースと、
    を含むシステム。
  61. データを処理するためのシステムであって、
    第1データソースのレコード内の第1フィールドの値を特性化する情報、および第2データソースのレコード内の第2フィールドの値を特性化する情報を受け取るための手段と、
    前記受け取った情報に基づいて、前記第1フィールドと、前記第2フィールドとの間の関連性を特性化する量を計算するための手段と、
    前記第1フィールドと、前記第2フィールドとを関連付ける情報を提示するための手段と、
    を含むシステム。
  62. データを処理するための方法であって、
    データソースのデータレコードのフィールドの複数サブセットを識別するステップと、
    前記複数サブセットのそれぞれに対する共出現統計を決定するステップと、
    前記複数サブセットの1つ以上を、前記識別サブセットの前記フィールド間に機能関連性があると識別するステップと、
    を含む方法。
  63. フィールドの前記サブセットの少なくとも1つが、2つのフィールドのサブセットである請求項62の方法。
  64. 前記複数サブセットの1つ以上を、前記識別サブセットの前記フィールド間に機能関連性があると識別するステップが、前記複数サブセットの1つ以上を、可能性がある所定の複数の機能関連性のうちの1つを有すると識別するステップを含む請求項62の方法。
  65. 前記共出現統計を決定するステップが、それぞれが一対のフィールドを識別するデータ構成要素を形成するステップ、および前記データレコードのうちの1つにある前記フィールド対に出現する一対の値を識別するステップを含む請求項62の方法。
  66. 前記共出現統計を決定するステップが、
    前記データレコードをパーツにパーティション化するステップであって、前記データレコードは第1フィールド、および第2フィールドを有するパーティション化ステップと、
    前記パーツの第1にある1つ以上のレコードの前記第2フィールドに出現する値の分布に基づいて量を決定するステップであって、前記1つ以上のレコードは、前記1つ以上のレコードの第1フィールドに出現する共通値を有する、決定ステップと、
    前記量を前記パーツの他にあるレコードからの他の量と組み合わせて合計量を生成するステップと、
    を含む請求項62の方法。
  67. 前記複数サブセットの1つ以上を、前記識別サブセットの前記フィールド間に機能関連性があると識別するステップが、前記合計量に基づいて前記第1および第2フィールド間の機能関連性を識別するステップを含む請求項66の方法。
  68. 前記パーツが、前記第1フィールド、および前記第2フィールドの値に基づく請求項66の方法。
  69. 前記パーツが、並列成分のセットのうちの別々のものを用いて処理される請求項66の方法。
  70. 前記複数サブセットの1つ以上を、前記識別サブセットの前記フィールド間に機能関連性があると識別するステップが、前記機能関連性に対する一致度を決定するステップを含む請求項62の方法。
  71. 前記一致度が、前記機能関連性と整合しない幾つかの例外レコードを含む請求項70の方法。
  72. 前記機能関連性が、第1フィールドの少なくとも幾つかの前記値の、第2フィールドの少なくとも幾つかの前記値へのマッピングを含む請求項62の方法。
  73. 前記マッピングが、多対一のマッピングである請求項72の方法。
  74. 前記マッピングが、一対多のマッピングである請求項72の方法。
  75. 前記マッピングが、一対一のマッピングである請求項72の方法。
  76. 前記複数のサブセットのフィールドの値を特性化する情報に基づいて前記複数のサブセットにフィルタをかけるステップを更に含む請求項62の方法。
  77. 前記データレコードが、データベーステーブルのレコードを含む請求項62の方法。
  78. 前記データレコードが、複数のデータベーステーブルのレコードを含む請求項77の方法。
  79. データ処理システム上で実行されると、請求項62から78までの何れかの方法ステップ全てを実行するように成された命令を含むソフトウエア。
  80. コンピューター可読媒体上に実装される請求項79のソフトウエア。
  81. データを処理するためのシステムであって、
    データソースのデータレコードのフィールドの複数サブセットを識別するよう構成される識別処理モジュールと、
    前記複数サブセットのそれぞれに対する共出現統計を決定するよう構成される統計処理モジュールと、
    前記複数サブセットの1つ以上を、前記識別サブセットの前記フィールド間に機能関連性があると識別するよう構成される機能関連性処理モジュールと、
    を含むシステム。
  82. データを処理するためのシステムであって、
    データソースのデータレコードのフィールドの複数サブセットを識別するための手段と、
    前記複数サブセットのそれぞれに対する共出現統計を決定するための手段と、
    前記複数サブセットの1つ以上を、前記識別サブセットの前記フィールド間に機能関連性があると識別するための手段と、
    を含むシステム。
JP2010153800A 2003-09-15 2010-07-06 データプロファイリング Expired - Lifetime JP5372851B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US50290803P 2003-09-15 2003-09-15
US60/502,908 2003-09-15
US51303803P 2003-10-20 2003-10-20
US60/513,038 2003-10-20
US53295603P 2003-12-22 2003-12-22
US60/532,956 2003-12-22

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006526986A Division JP5328099B2 (ja) 2003-09-15 2004-09-15 データプロファイリング

Publications (2)

Publication Number Publication Date
JP2010267289A true JP2010267289A (ja) 2010-11-25
JP5372851B2 JP5372851B2 (ja) 2013-12-18

Family

ID=34381971

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2006526986A Expired - Lifetime JP5328099B2 (ja) 2003-09-15 2004-09-15 データプロファイリング
JP2010153799A Expired - Lifetime JP5372850B2 (ja) 2003-09-15 2010-07-06 データプロファイリング
JP2010153800A Expired - Lifetime JP5372851B2 (ja) 2003-09-15 2010-07-06 データプロファイリング

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2006526986A Expired - Lifetime JP5328099B2 (ja) 2003-09-15 2004-09-15 データプロファイリング
JP2010153799A Expired - Lifetime JP5372850B2 (ja) 2003-09-15 2010-07-06 データプロファイリング

Country Status (10)

Country Link
US (5) US7756873B2 (ja)
EP (3) EP2261821B1 (ja)
JP (3) JP5328099B2 (ja)
KR (4) KR20090039803A (ja)
CN (1) CN102982065B (ja)
AT (1) ATE515746T1 (ja)
AU (3) AU2004275334B9 (ja)
CA (3) CA2655731C (ja)
HK (1) HK1093568A1 (ja)
WO (1) WO2005029369A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160107188A (ko) * 2014-01-16 2016-09-13 아브 이니티오 테크놀로지 엘엘시 데이터베이스 키 식별
US11163670B2 (en) 2013-02-01 2021-11-02 Ab Initio Technology Llc Data records selection

Families Citing this family (210)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE515746T1 (de) * 2003-09-15 2011-07-15 Ab Initio Technology Llc Datenprofilierung
US7653641B2 (en) * 2004-05-04 2010-01-26 Accruent, Inc. Abstraction control solution
US7349898B2 (en) * 2004-06-04 2008-03-25 Oracle International Corporation Approximate and exact unary inclusion dependency discovery
US7647293B2 (en) * 2004-06-10 2010-01-12 International Business Machines Corporation Detecting correlation from data
US7386566B2 (en) * 2004-07-15 2008-06-10 Microsoft Corporation External metadata processing
US8732004B1 (en) 2004-09-22 2014-05-20 Experian Information Solutions, Inc. Automated analysis of data to generate prospect notifications based on trigger events
US20060082581A1 (en) 2004-10-14 2006-04-20 Microsoft Corporation Encoding for remoting graphics to decoder device
US7852342B2 (en) 2004-10-14 2010-12-14 Microsoft Corporation Remote client graphics rendering
US7610264B2 (en) * 2005-02-28 2009-10-27 International Business Machines Corporation Method and system for providing a learning optimizer for federated database systems
CN101208649B (zh) * 2005-04-25 2010-12-08 因文西斯系统公司 用于处理制造环境所引起的生产事件的系统和方法
US7836104B2 (en) * 2005-06-03 2010-11-16 Sap Ag Demonstration tool for a business information enterprise system
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070006070A1 (en) * 2005-06-30 2007-01-04 International Business Machines Corporation Joining units of work based on complexity metrics
US8788464B1 (en) * 2005-07-25 2014-07-22 Lockheed Martin Corporation Fast ingest, archive and retrieval systems, method and computer programs
US20070033198A1 (en) * 2005-08-02 2007-02-08 Defries Anthony Data representation architecture for media access
US8527563B2 (en) * 2005-09-12 2013-09-03 Microsoft Corporation Remoting redirection layer for graphics device interface
US20070074176A1 (en) * 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for parallel processing of data profiling information
US20070073721A1 (en) * 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for serviced data profiling operations
US8996586B2 (en) * 2006-02-16 2015-03-31 Callplex, Inc. Virtual storage of portable media files
US7873628B2 (en) * 2006-03-23 2011-01-18 Oracle International Corporation Discovering functional dependencies by sampling relations
US20070271259A1 (en) * 2006-05-17 2007-11-22 It Interactive Services Inc. System and method for geographically focused crawling
US7526486B2 (en) * 2006-05-22 2009-04-28 Initiate Systems, Inc. Method and system for indexing information about entities with respect to hierarchies
EP2030134A4 (en) 2006-06-02 2010-06-23 Initiate Systems Inc SYSTEM AND METHOD FOR AUTOMATIC WEIGHT GENERATION FOR CHARACTERISTICITY
US7711736B2 (en) * 2006-06-21 2010-05-04 Microsoft International Holdings B.V. Detection of attributes in unstructured data
US8356009B2 (en) 2006-09-15 2013-01-15 International Business Machines Corporation Implementation defined segments for relational database systems
US7685093B1 (en) 2006-09-15 2010-03-23 Initiate Systems, Inc. Method and system for comparing attributes such as business names
US7698268B1 (en) 2006-09-15 2010-04-13 Initiate Systems, Inc. Method and system for filtering false positives
US8266147B2 (en) * 2006-09-18 2012-09-11 Infobright, Inc. Methods and systems for database organization
US8700579B2 (en) * 2006-09-18 2014-04-15 Infobright Inc. Method and system for data compression in a relational database
US8762834B2 (en) * 2006-09-29 2014-06-24 Altova, Gmbh User interface for defining a text file transformation
US7809747B2 (en) * 2006-10-23 2010-10-05 Donald Martin Monro Fuzzy database matching
US9846739B2 (en) 2006-10-23 2017-12-19 Fotonation Limited Fast database matching
US20080097992A1 (en) * 2006-10-23 2008-04-24 Donald Martin Monro Fast database matching
US7613707B1 (en) * 2006-12-22 2009-11-03 Amazon Technologies, Inc. Traffic migration in a multilayered data service framework
US8150870B1 (en) 2006-12-22 2012-04-03 Amazon Technologies, Inc. Scalable partitioning in a multilayered data service framework
US7774329B1 (en) 2006-12-22 2010-08-10 Amazon Technologies, Inc. Cross-region data access in partitioned framework
CN101226523B (zh) * 2007-01-17 2012-09-05 国际商业机器公司 数据概况分析方法和系统
US8359339B2 (en) 2007-02-05 2013-01-22 International Business Machines Corporation Graphical user interface for configuration of an algorithm for the matching of data records
US20080195575A1 (en) * 2007-02-12 2008-08-14 Andreas Schiffler Electronic data display management system and method
US8515926B2 (en) * 2007-03-22 2013-08-20 International Business Machines Corporation Processing related data from information sources
WO2008121824A1 (en) 2007-03-29 2008-10-09 Initiate Systems, Inc. Method and system for data exchange among data sources
US8423514B2 (en) 2007-03-29 2013-04-16 International Business Machines Corporation Service provisioning
US8321393B2 (en) 2007-03-29 2012-11-27 International Business Machines Corporation Parsing information in data records and in different languages
WO2008121700A1 (en) 2007-03-29 2008-10-09 Initiate Systems, Inc. Method and system for managing entities
US20120164613A1 (en) * 2007-11-07 2012-06-28 Jung Edward K Y Determining a demographic characteristic based on computational user-health testing of a user interaction with advertiser-specified content
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US20090254588A1 (en) * 2007-06-19 2009-10-08 Zhong Li Multi-Dimensional Data Merge
US20110010214A1 (en) * 2007-06-29 2011-01-13 Carruth J Scott Method and system for project management
DE112008001800B4 (de) * 2007-07-12 2020-07-30 Atmel Corporation Zweidimensionales Touchpanel
US20090055828A1 (en) * 2007-08-22 2009-02-26 Mclaren Iain Douglas Profile engine system and method
US8954482B2 (en) * 2007-09-20 2015-02-10 Ab Initio Technology Llc Managing data flows in graph-based computations
US9690820B1 (en) * 2007-09-27 2017-06-27 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
JP5306359B2 (ja) 2007-09-28 2013-10-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数言語によるデータ記録を関連付ける方法およびシステム
CN101878461B (zh) 2007-09-28 2014-03-12 国际商业机器公司 分析用于匹配数据记录的系统的方法和系统
US8713434B2 (en) 2007-09-28 2014-04-29 International Business Machines Corporation Indexing, relating and managing information about entities
US8321914B2 (en) * 2008-01-21 2012-11-27 International Business Machines Corporation System and method for verifying an attribute in records for procurement application
US8224797B2 (en) * 2008-03-04 2012-07-17 International Business Machines Corporation System and method for validating data record
US8046385B2 (en) * 2008-06-20 2011-10-25 Ab Initio Technology Llc Data quality tracking
JP5331203B2 (ja) 2008-06-30 2013-10-30 アビニシオ テクノロジー エルエルシー グラフベース計算におけるデータ記録
US8239389B2 (en) * 2008-09-29 2012-08-07 International Business Machines Corporation Persisting external index data in a database
CN102197406B (zh) 2008-10-23 2014-10-15 起元技术有限责任公司 模糊数据操作
AU2009322602B2 (en) 2008-12-02 2015-06-25 Ab Initio Technology Llc Mapping instances of a dataset within a data management system
US20100174638A1 (en) 2009-01-06 2010-07-08 ConsumerInfo.com Report existence monitoring
WO2010088523A1 (en) * 2009-01-30 2010-08-05 Ab Initio Technology Llc Processing data using vector fields
US8051060B1 (en) * 2009-02-13 2011-11-01 At&T Intellectual Property I, L.P. Automatic detection of separators for compression
CN102317911B (zh) 2009-02-13 2016-04-06 起元技术有限责任公司 管理任务执行
EP2399192A4 (en) * 2009-02-13 2016-09-07 Ab Initio Technology Llc COMMUNICATION WITH DATA STORAGE SYSTEMS
US10102398B2 (en) * 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
KR20150040384A (ko) * 2009-06-10 2015-04-14 아브 이니티오 테크놀로지 엘엘시 테스트 데이터의 생성
JP2011008560A (ja) * 2009-06-26 2011-01-13 Hitachi Ltd 情報管理システム
US8205113B2 (en) * 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
KR101631978B1 (ko) * 2009-09-16 2016-06-20 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US8683214B2 (en) * 2009-09-17 2014-03-25 Panasonic Corporation Method and device that verifies application program modules
US8700577B2 (en) * 2009-12-07 2014-04-15 Accenture Global Services Limited GmbH Method and system for accelerated data quality enhancement
CA2782414C (en) * 2009-12-14 2021-08-03 Ab Initio Technology Llc Specifying user interface elements
US9477369B2 (en) * 2010-03-08 2016-10-25 Salesforce.Com, Inc. System, method and computer program product for displaying a record as part of a selected grouping of data
US8205114B2 (en) 2010-04-07 2012-06-19 Verizon Patent And Licensing Inc. Method and system for partitioning data files for efficient processing
US8577094B2 (en) 2010-04-09 2013-11-05 Donald Martin Monro Image template masking
US8417727B2 (en) 2010-06-14 2013-04-09 Infobright Inc. System and method for storing data in a relational database
US8521748B2 (en) 2010-06-14 2013-08-27 Infobright Inc. System and method for managing metadata in a relational database
KR20150042297A (ko) 2010-06-15 2015-04-20 아브 이니티오 테크놀로지 엘엘시 동적으로 로딩하는 그래프 기반 계산
US8775447B2 (en) 2010-06-22 2014-07-08 Ab Initio Technology Llc Processing related datasets
US8990165B2 (en) * 2010-07-13 2015-03-24 Hewlett-Packard Development Company, L.P. Methods, apparatus and articles of manufacture to archive data
US8515863B1 (en) * 2010-09-01 2013-08-20 Federal Home Loan Mortgage Corporation Systems and methods for measuring data quality over time
WO2012061109A1 (en) 2010-10-25 2012-05-10 Ab Initio Technology Llc Managing data set objects in a dataflow graph that represents a computer program
KR20120061308A (ko) * 2010-12-03 2012-06-13 삼성전자주식회사 휴대용 단말기에서 데이터 베이스를 제어하기 위한 장치 및 방법
CA2824282C (en) 2011-01-14 2019-05-21 Ab Initio Technology Llc Managing changes to collections of data
CN103348598B (zh) * 2011-01-28 2017-07-14 起元科技有限公司 生成数据模式信息
US9116759B2 (en) 2011-02-18 2015-08-25 Ab Initio Technology Llc Restarting data processing systems
US9021299B2 (en) 2011-02-18 2015-04-28 Ab Initio Technology Llc Restarting processes
US9311487B2 (en) * 2011-03-15 2016-04-12 Panasonic Corporation Tampering monitoring system, management device, protection control module, and detection module
US9558519B1 (en) 2011-04-29 2017-01-31 Consumerinfo.Com, Inc. Exposing reporting cycle information
US20120330880A1 (en) * 2011-06-23 2012-12-27 Microsoft Corporation Synthetic data generation
US8782016B2 (en) * 2011-08-26 2014-07-15 Qatar Foundation Database record repair
US9116934B2 (en) * 2011-08-26 2015-08-25 Qatar Foundation Holistic database record repair
US8863082B2 (en) 2011-09-07 2014-10-14 Microsoft Corporation Transformational context-aware data source management
US8719271B2 (en) 2011-10-06 2014-05-06 International Business Machines Corporation Accelerating data profiling process
US9438656B2 (en) 2012-01-11 2016-09-06 International Business Machines Corporation Triggering window conditions by streaming features of an operator graph
US9430117B2 (en) * 2012-01-11 2016-08-30 International Business Machines Corporation Triggering window conditions using exception handling
US20130304712A1 (en) * 2012-05-11 2013-11-14 Theplatform For Media, Inc. System and method for validation
US9582553B2 (en) * 2012-06-26 2017-02-28 Sap Se Systems and methods for analyzing existing data models
US9633076B1 (en) * 2012-10-15 2017-04-25 Tableau Software Inc. Blending and visualizing data from multiple data sources
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
CA3128654A1 (en) * 2012-10-22 2014-05-01 Ab Initio Technology Llc Characterizing data sources in a data storage system
US9323748B2 (en) * 2012-10-22 2016-04-26 Ab Initio Technology Llc Profiling data with location information
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9703822B2 (en) 2012-12-10 2017-07-11 Ab Initio Technology Llc System for transform generation
EP2757467A1 (en) * 2013-01-22 2014-07-23 Siemens Aktiengesellschaft Management apparatus and method for managing data elements of a version control system
US9471545B2 (en) 2013-02-11 2016-10-18 Oracle International Corporation Approximating value densities
US9135280B2 (en) * 2013-02-11 2015-09-15 Oracle International Corporation Grouping interdependent fields
US9110949B2 (en) 2013-02-11 2015-08-18 Oracle International Corporation Generating estimates for query optimization
US9811233B2 (en) 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
US10332010B2 (en) 2013-02-19 2019-06-25 Business Objects Software Ltd. System and method for automatically suggesting rules for data stored in a table
US9576036B2 (en) 2013-03-15 2017-02-21 International Business Machines Corporation Self-analyzing data processing job to determine data quality issues
KR101444249B1 (ko) * 2013-05-13 2014-09-26 (주) 아트리아트레이딩 대차 거래, 공매도 거래 또는 주식 스왑 거래에 관한 정보를 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
CN105556474B (zh) 2013-05-17 2019-04-30 起元科技有限公司 管理数据操作的存储器和存储空间
US20150032907A1 (en) * 2013-07-26 2015-01-29 Alcatel-Lucent Canada, Inc. Universal adapter with context-bound translation for application adaptation layer
WO2015027085A1 (en) 2013-08-22 2015-02-26 Genomoncology, Llc Computer-based systems and methods for analyzing genomes based on discrete data structures corresponding to genetic variants therein
KR102349573B1 (ko) 2013-09-27 2022-01-10 아브 이니티오 테크놀로지 엘엘시 데이터에 적용되는 규칙 평가
US20150120224A1 (en) * 2013-10-29 2015-04-30 C3 Energy, Inc. Systems and methods for processing data relating to energy usage
CA2932763C (en) 2013-12-05 2022-07-12 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
WO2015095275A1 (en) 2013-12-18 2015-06-25 Ab Initio Technology Llc Data generation
US9529849B2 (en) 2013-12-31 2016-12-27 Sybase, Inc. Online hash based optimizer statistics gathering in a database
US9984173B2 (en) * 2014-02-24 2018-05-29 International Business Machines Corporation Automated value analysis in legacy data
EP3114578A1 (en) * 2014-03-07 2017-01-11 AB Initio Technology LLC Managing data profiling operations related to data type
WO2015138497A2 (en) 2014-03-10 2015-09-17 Interana, Inc. Systems and methods for rapid data analysis
US9846567B2 (en) 2014-06-16 2017-12-19 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines
US9633058B2 (en) 2014-06-16 2017-04-25 International Business Machines Corporation Predictive placement of columns during creation of a large database
JP6457622B2 (ja) 2014-07-18 2019-01-23 アビニシオ テクノロジー エルエルシー パラメータの集合の管理
SG11201701667WA (en) * 2014-09-02 2017-04-27 Ab Initio Technology Llc Visually specifying subsets of components in graph-based programs through user interactions
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
US9880818B2 (en) * 2014-11-05 2018-01-30 Ab Initio Technology Llc Application testing
US10055333B2 (en) 2014-11-05 2018-08-21 Ab Initio Technology Llc Debugging a graph
US10296507B2 (en) 2015-02-12 2019-05-21 Interana, Inc. Methods for enhancing rapid data analysis
US9952808B2 (en) 2015-03-26 2018-04-24 International Business Machines Corporation File system block-level tiering and co-allocation
CN104850590A (zh) * 2015-04-24 2015-08-19 百度在线网络技术(北京)有限公司 一种生成结构化数据的元数据的方法与装置
US11068647B2 (en) * 2015-05-28 2021-07-20 International Business Machines Corporation Measuring transitions between visualizations
KR101632073B1 (ko) * 2015-06-04 2016-06-20 장원중 통계 분석 기반의 데이터 프로파일링을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
CA3001304C (en) 2015-06-05 2021-10-19 C3 Iot, Inc. Systems, methods, and devices for an enterprise internet-of-things application development platform
US9384203B1 (en) * 2015-06-09 2016-07-05 Palantir Technologies Inc. Systems and methods for indexing and aggregating data records
US10409802B2 (en) 2015-06-12 2019-09-10 Ab Initio Technology Llc Data quality analysis
US10241979B2 (en) * 2015-07-21 2019-03-26 Oracle International Corporation Accelerated detection of matching patterns
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10127264B1 (en) 2015-09-17 2018-11-13 Ab Initio Technology Llc Techniques for automated data analysis
US10607139B2 (en) 2015-09-23 2020-03-31 International Business Machines Corporation Candidate visualization techniques for use with genetic algorithms
JP6893209B2 (ja) * 2015-10-30 2021-06-23 アクシオム コーポレーション 構造化されたマルチフィールドファイルのレイアウトの自動解釈
US10140337B2 (en) * 2015-10-30 2018-11-27 Sap Se Fuzzy join key
US11410230B1 (en) 2015-11-17 2022-08-09 Consumerinfo.Com, Inc. Realtime access and control of secure regulated data
US10757154B1 (en) 2015-11-24 2020-08-25 Experian Information Solutions, Inc. Real-time event-based notification system
WO2017145386A1 (ja) * 2016-02-26 2017-08-31 株式会社日立製作所 時系列データと分析データとのうちの少なくとも一部を入力データとした分析処理を実行する分析システム及び分析方法
US10685035B2 (en) 2016-06-30 2020-06-16 International Business Machines Corporation Determining a collection of data visualizations
US10423387B2 (en) 2016-08-23 2019-09-24 Interana, Inc. Methods for highly efficient data sharding
US10146835B2 (en) 2016-08-23 2018-12-04 Interana, Inc. Methods for stratified sampling-based query execution
US12013895B2 (en) 2016-09-26 2024-06-18 Splunk Inc. Processing data using containerized nodes in a containerized scalable environment
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11093703B2 (en) 2016-09-29 2021-08-17 Google Llc Generating charts from data in a data table
US9720961B1 (en) 2016-09-30 2017-08-01 Semmle Limited Algebraic data types for database query languages
US9633078B1 (en) * 2016-09-30 2017-04-25 Semmle Limited Generating identifiers for tuples of recursively defined relations
DE112017006106T5 (de) 2016-12-01 2019-09-19 Ab Initio Technology Llc Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
US10650050B2 (en) 2016-12-06 2020-05-12 Microsoft Technology Licensing, Llc Synthesizing mapping relationships using table corpus
US10936555B2 (en) * 2016-12-22 2021-03-02 Sap Se Automated query compliance analysis
US10565173B2 (en) * 2017-02-10 2020-02-18 Wipro Limited Method and system for assessing quality of incremental heterogeneous data
US10002146B1 (en) * 2017-02-13 2018-06-19 Sas Institute Inc. Distributed data set indexing
US10514993B2 (en) * 2017-02-14 2019-12-24 Google Llc Analyzing large-scale data processing jobs
CN107220283B (zh) * 2017-04-21 2019-11-08 东软集团股份有限公司 数据处理方法、装置、存储介质及电子设备
US9934287B1 (en) 2017-07-25 2018-04-03 Capital One Services, Llc Systems and methods for expedited large file processing
US12118009B2 (en) * 2017-07-31 2024-10-15 Splunk Inc. Supporting query languages through distributed execution of query engines
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US11989194B2 (en) * 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US11423083B2 (en) 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
US11055074B2 (en) * 2017-11-13 2021-07-06 Ab Initio Technology Llc Key-based logging for processing of structured data items with executable logic
US11509540B2 (en) * 2017-12-14 2022-11-22 Extreme Networks, Inc. Systems and methods for zero-footprint large-scale user-entity behavior modeling
WO2019147249A1 (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
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
EP3575980A3 (en) 2018-05-29 2020-03-04 Accenture Global Solutions Limited Intelligent data quality
CA3106682A1 (en) * 2018-07-19 2020-01-23 Ab Initio Technology Llc Publishing to a data warehouse
US11080266B2 (en) * 2018-07-30 2021-08-03 Futurewei Technologies, Inc. Graph functional dependency checking
US11265324B2 (en) 2018-09-05 2022-03-01 Consumerinfo.Com, Inc. User permissions for access to secure data at third-party
US11227065B2 (en) 2018-11-06 2022-01-18 Microsoft Technology Licensing, Llc Static data masking
US11423009B2 (en) * 2019-05-29 2022-08-23 ThinkData Works, Inc. System and method to prevent formation of dark data
US11704494B2 (en) * 2019-05-31 2023-07-18 Ab Initio Technology Llc Discovering a semantic meaning of data fields from profile data of the data fields
US11153400B1 (en) 2019-06-04 2021-10-19 Thomas Layne Bascom Federation broker system and method for coordinating discovery, interoperability, connections and correspondence among networked resources
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
CN111143433B (zh) * 2019-12-10 2024-07-09 中国平安财产保险股份有限公司 一种统计数据仓数据的方法及装置
KR102365910B1 (ko) * 2019-12-31 2022-02-22 가톨릭관동대학교산학협력단 속성 값 품질 지수를 이용한 데이터 프로파일링 방법 및 데이터 프로파일링 시스템
FR3105844A1 (fr) * 2019-12-31 2021-07-02 Bull Sas PROCEDE ET système D’IDENTIFICATION DE VARIABLES PERTINENTES
US11200215B2 (en) * 2020-01-30 2021-12-14 International Business Machines Corporation Data quality evaluation
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11321340B1 (en) 2020-03-31 2022-05-03 Wells Fargo Bank, N.A. Metadata extraction from big data sources
US11556563B2 (en) * 2020-06-12 2023-01-17 Oracle International Corporation Data stream processing
US11403268B2 (en) * 2020-08-06 2022-08-02 Sap Se Predicting types of records based on amount values of records
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
KR102265937B1 (ko) * 2020-12-21 2021-06-17 주식회사 모비젠 시퀀스데이터의 분석 방법 및 그 장치
US11847390B2 (en) 2021-01-05 2023-12-19 Capital One Services, Llc Generation of synthetic data using agent-based simulations
US20220215243A1 (en) * 2021-01-05 2022-07-07 Capital One Services, Llc Risk-Reliability Framework for Evaluating Synthetic Data Models
US12106026B2 (en) 2021-01-05 2024-10-01 Capital One Services, Llc Extensible agents in agent-based generative models
WO2022165321A1 (en) 2021-01-31 2022-08-04 Ab Initio Technology Llc Data processing system with manipulation of logical dataset groups
US11537594B2 (en) 2021-02-05 2022-12-27 Oracle International Corporation Approximate estimation of number of distinct keys in a multiset using a sample
CN112925792B (zh) * 2021-03-26 2024-01-05 北京中经惠众科技有限公司 数据存储控制方法、装置、计算设备及介质
US12072939B1 (en) 2021-07-30 2024-08-27 Splunk Inc. Federated data enrichment objects
CN113656430B (zh) * 2021-08-12 2024-02-27 上海二三四五网络科技有限公司 一种批量表数据自动扩充的控制方法及装置
KR102437098B1 (ko) 2022-04-15 2022-08-25 이찬영 인공 지능 기반의 오류 데이터 판정 방법 및 그 장치
US12093272B1 (en) 2022-04-29 2024-09-17 Splunk Inc. Retrieving data identifiers from queue for search of external data system
US11907051B1 (en) 2022-09-07 2024-02-20 International Business Machines Corporation Correcting invalid zero value for data monitoring

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091633A (ja) * 1996-07-15 1998-04-10 At & T Corp 情報サーバの情報リソースの統合化
JPH10320423A (ja) * 1997-04-07 1998-12-04 Informix Software Inc データベースシステムにおいて結合質問を実行する方法及び装置
JP2002024262A (ja) * 2000-07-07 2002-01-25 Nippon Telegr & Teleph Corp <Ntt> 情報源所在推定方法及び装置及び情報源所在推定プログラムを格納した記憶媒体

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2760794B2 (ja) * 1988-01-29 1998-06-04 株式会社日立製作所 データベース処理方法および装置
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 データベース処理方法
JPH04152440A (ja) * 1990-10-17 1992-05-26 Hitachi Ltd 知的問合せ処理方法
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.
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
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
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
US6134560A (en) 1997-12-16 2000-10-17 Kliebhan; Daniel F. Method and apparatus for merging telephone switching office databases
US6826556B1 (en) * 1998-10-02 2004-11-30 Ncr Corporation Techniques for deploying analytic models in a parallel
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
JP4037001B2 (ja) * 1999-02-23 2008-01-23 三菱電機株式会社 データベース作成装置およびデータベース検索装置
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
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
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
JP4600847B2 (ja) 1999-06-18 2010-12-22 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクションの意味規則を用いた連続データストリームのセグメント化および処理
JP3318834B2 (ja) 1999-07-30 2002-08-26 三菱電機株式会社 データファイルシステム及びデータ検索方法
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
JP2002269114A (ja) * 2001-03-14 2002-09-20 Kousaku Ookubo 知識データベース及び知識データベースの構築方法
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
WO2003014867A2 (en) * 2001-08-03 2003-02-20 John Allen Ananian Personalized interactive digital catalog profiling
US6801903B2 (en) 2001-10-12 2004-10-05 Ncr Corporation Collecting statistics in a database system
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
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
WO2004036461A2 (en) * 2002-10-14 2004-04-29 Battelle Memorial Institute Information reservoir
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
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
US7117222B2 (en) * 2003-03-13 2006-10-03 International Business Machines Corporation Pre-formatted column-level caching to improve client performance
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
US7426520B2 (en) 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
ATE515746T1 (de) 2003-09-15 2011-07-15 Ab Initio Technology Llc Datenprofilierung
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
WO2005050482A1 (en) 2003-10-21 2005-06-02 Nielsen Media Research, Inc. Methods and apparatus for fusing databases
US7376656B2 (en) 2004-02-10 2008-05-20 Microsoft Corporation System and method for providing user defined aggregates 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
US8447743B2 (en) * 2004-08-17 2013-05-21 International Business Machines Corporation Techniques for processing database queries including user-defined functions
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
US8271452B2 (en) 2006-06-12 2012-09-18 Rainstor Limited Method, system, and database archive for enhancing database archiving
US8412713B2 (en) 2007-03-06 2013-04-02 Mcafee, Inc. Set function calculation in a database
US7912867B2 (en) * 2008-02-25 2011-03-22 United Parcel Services Of America, Inc. Systems and methods of profiling data for integration
US9251212B2 (en) 2009-03-27 2016-02-02 Business Objects Software Ltd. Profiling in a massive parallel processing environment
KR101631978B1 (ko) 2009-09-16 2016-06-20 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
KR20120115233A (ko) 2009-11-13 2012-10-17 아브 이니티오 테크놀로지 엘엘시 레코드 포맷 정보의 관리
US8396873B2 (en) 2010-03-10 2013-03-12 Emc Corporation Index searching using a bloom filter
US8296274B2 (en) 2011-01-27 2012-10-23 Leppard Andrew Considering multiple lookups in bloom filter decision making
CN103348598B (zh) 2011-01-28 2017-07-14 起元科技有限公司 生成数据模式信息
US8615519B2 (en) 2011-06-17 2013-12-24 Sap Ag Method and system for inverted indexing of a dataset
US8762396B2 (en) 2011-12-22 2014-06-24 Sap Ag Dynamic, hierarchical bloom filters for network data routing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091633A (ja) * 1996-07-15 1998-04-10 At & T Corp 情報サーバの情報リソースの統合化
JPH10320423A (ja) * 1997-04-07 1998-12-04 Informix Software Inc データベースシステムにおいて結合質問を実行する方法及び装置
JP2002024262A (ja) * 2000-07-07 2002-01-25 Nippon Telegr & Teleph Corp <Ntt> 情報源所在推定方法及び装置及び情報源所在推定プログラムを格納した記憶媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11163670B2 (en) 2013-02-01 2021-11-02 Ab Initio Technology Llc Data records selection
KR20160107188A (ko) * 2014-01-16 2016-09-13 아브 이니티오 테크놀로지 엘엘시 데이터베이스 키 식별
JP2017507392A (ja) * 2014-01-16 2017-03-16 アビニシオ テクノロジー エルエルシー データベースキーの識別
KR102240137B1 (ko) 2014-01-16 2021-04-13 아브 이니티오 테크놀로지 엘엘시 데이터베이스 키 식별

Also Published As

Publication number Publication date
AU2004275334B2 (en) 2011-02-10
US9323802B2 (en) 2016-04-26
ATE515746T1 (de) 2011-07-15
EP2261821B1 (en) 2022-12-07
CA2655731A1 (en) 2005-03-31
AU2009200293A1 (en) 2009-02-19
CN102982065B (zh) 2016-09-21
EP2261821A3 (en) 2010-12-29
WO2005029369A2 (en) 2005-03-31
EP2261820A2 (en) 2010-12-15
US7756873B2 (en) 2010-07-13
JP5328099B2 (ja) 2013-10-30
KR100899850B1 (ko) 2009-05-27
CA2655735A1 (en) 2005-03-31
AU2004275334B9 (en) 2011-06-16
HK1093568A1 (en) 2007-03-02
EP1676217A2 (en) 2006-07-05
US20150106341A1 (en) 2015-04-16
AU2009200294A1 (en) 2009-02-19
KR20060080588A (ko) 2006-07-10
JP2007506191A (ja) 2007-03-15
CA2655731C (en) 2012-04-10
CN102982065A (zh) 2013-03-20
EP1676217B1 (en) 2011-07-06
WO2005029369A3 (en) 2005-08-25
AU2009200293B2 (en) 2011-07-07
KR20070106574A (ko) 2007-11-01
EP2261820A3 (en) 2010-12-29
KR100922141B1 (ko) 2009-10-19
KR101033179B1 (ko) 2011-05-11
US20050114369A1 (en) 2005-05-26
CA2538568C (en) 2009-05-19
KR20080016532A (ko) 2008-02-21
US20160239532A1 (en) 2016-08-18
JP5372851B2 (ja) 2013-12-18
JP5372850B2 (ja) 2013-12-18
JP2010267288A (ja) 2010-11-25
KR20090039803A (ko) 2009-04-22
EP2261821A2 (en) 2010-12-15
US20050114368A1 (en) 2005-05-26
WO2005029369A9 (en) 2006-05-04
CA2655735C (en) 2011-01-18
US7849075B2 (en) 2010-12-07
US8868580B2 (en) 2014-10-21
AU2004275334A1 (en) 2005-03-31
US20050102325A1 (en) 2005-05-12
CA2538568A1 (en) 2005-03-31

Similar Documents

Publication Publication Date Title
JP5328099B2 (ja) データプロファイリング
JP5826260B2 (ja) 関連データセットの処理
CN101271471B (zh) 数据处理方法、软件和数据处理系统
AU2013200067B2 (en) Data profiling
JP2017532652A (ja) 階層的なエンティティのための計算の管理

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120323

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130612

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130730

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: 20130823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130918

R150 Certificate of patent or registration of utility model

Ref document number: 5372851

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250