JP6526684B2 - データベースキーの識別 - Google Patents

データベースキーの識別 Download PDF

Info

Publication number
JP6526684B2
JP6526684B2 JP2016543564A JP2016543564A JP6526684B2 JP 6526684 B2 JP6526684 B2 JP 6526684B2 JP 2016543564 A JP2016543564 A JP 2016543564A JP 2016543564 A JP2016543564 A JP 2016543564A JP 6526684 B2 JP6526684 B2 JP 6526684B2
Authority
JP
Japan
Prior art keywords
filter
data set
field
value
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016543564A
Other languages
English (en)
Other versions
JP2017507392A (ja
Inventor
スペンサー ブッシュ,ティモシー
スペンサー ブッシュ,ティモシー
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2017507392A publication Critical patent/JP2017507392A/ja
Application granted granted Critical
Publication of JP6526684B2 publication Critical patent/JP6526684B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations

Landscapes

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

Description

本記載はデータ品質に関する。
多くの企業が、キーによって互いに紐付けられたデータセットの多大な集まりを所有している。そのようなデータセットは、リレーショナルデータベースのテーブルや、ディスク記憶システムにあるフラットファイル等である。集まりの数は数百または数千個のデータセットになる場合もあり、数十またはそれ以上のキーを伴う。構造は、複数のソースから時間をかけてデータが蓄積された結果、設計の計画性がない場合もある。かつては設計があったが、その設計が失われているか、忘れられているか、または現在の状況に合わなくなっていることが把握されている場合もある。設計が専門の人物だけに知られており、それ以外には文書化されていない場合もある。あるいは、設計は知られており、現在使用されているが、遵守されていない場合もある。
一般に、本明細書に記載される主題の新規な態様の1つは、第1のデータセット中の第1のフィールドの識別を受け取る動作を含む方法として実施することができ、第1のデータセットは複数のレコードを含んでいる。この方法は、値の集合を識別する動作を含み、集合は、レコードごとに、それぞれのレコードにある、上記フィールドに関連付けられた値を含む。この方法は、値の集合に基づいてフィルタマスクを生成する動作を含み、フィルタマスクを適用することにより、所与の値が値の集合にないことを判定することができる。この方法は、第2のデータセットを受け取る動作を含み、第2のデータセットは第2のフィールドを含んでおり、第2のデータセットは複数のレコードを含んでいる。この方法は、第2のフィールドと関連付けられた値であってフィルタマスクを通過する値を持つ、第2のデータセット中のレコードの数を判定する動作を含む。この方法は、その数をプロファイルに記憶する動作も含む。
この態様の他の実施形態は、それに対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶装置に記録されたコンピュータプログラムを含み、それぞれ、上記方法の動作を行うように構成される。1つまたは複数のコンピュータからなるシステムは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせをシステムにインストールし、それらが動作時にシステムに特定の動作を行わせることにより特定の動作を行うように構成することができる。データ処理装置によって実行されるとその装置に特定の動作を行わせる命令を含めることにより、1つまたは複数のコンピュータプログラムを、特定の動作を行うように構成することができる。
上記および他の実施形態はそれぞれ、任意選択により、以下の特徴の1つまたは複数を単独で、または組み合わせて含むことができる。上記方法は、値の集合と、第2のフィールドに関連付けられた値を持つ第2のデータセット中のレコードとのSorensen−Dice係数を求める動作を含むことができる。フィルタマスクを生成する動作は、値の集合にある値ごとに、対応する値にフィルタキーを生成する動作を含むことができる。対応する値にフィルタキーを生成する動作は、対応する値のハッシュ値を生成する動作と、ハッシュ値を所定数の整数に分割する動作と、その整数に基づいてビットベクトルにビットを設定することによりフィルタキーを作成する動作とを含むことができる。フィルタマスクを生成する動作は、生成されたフィルタキーそれぞれに2進演算を行う動作を含むことができる。第2のフィールドと関連付けられた値であってフィルタマスクを通過する値を持つ、第2のデータセット中のレコードの数を判定する動作は、第2のフィールドに関連付けられた値に第2のフィルタキーを計算する動作と、第2のフィルタキーをフィルタマスクと比較する動作とを含むことができる。
態様は、以下の利点の1つまたは複数を含む可能性がある。データ品質計画に信頼性を確立することができる。未知の関係や予想していなかった関係を明らかにすることができる。どのフィールドが共有値を保持しているかについての情報を発見することができる。予想していた関係と識別された関係との不一致を発見することができる。さらなるデータ品質分析の基礎とする正確な構造を判断することができる。詳細には、判明したキー関係の構造を、システム内のデータセットの集まりの参照整合性を定量化する開始点として使用することができる。
本発明の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになろう。
データベースクロール(crawling)技術を使用することが可能なデータ処理システムの例を示す図である。 例示的なフィルタマスク作成手順のフローチャートである。 フィルタキーを生成する例を説明する図である。 フィルタキーからフィルタマスクを作成する工程を説明する図である。 フィルタマスクに基づく例示的なプロファイリング手順のフローチャートである。
組織は多量のデータを収集する。データは長い期間にわたって収集される。時間の経過と共に、新しいデータセットが作成され、古いデータセットが変更される。データセット間の関係を識別することは難しい場合がある。
一般に、データセットは、構造化されたデータの集合である。データセットは個別のレコードに分割される。データセットの各レコードは、共通のレコード形式を共有する。例えば、リレーショナルデータベースのテーブルは、データの行を含み、各データのレコード(例えば行)は、そのテーブルのデータベーススキーマ定義に準拠する。スキーマは、テーブル(またはデータセット)の定義を含むことができる。一般に、スキーマは、そのデータセットに存在する1つまたは複数のフィールドを定義する。それらのレコードは、そのフィールドの1つまたは複数をキーとして使用して識別することができる。一般に、「主キー」は、値がデータセット中の各レコードを一意に識別する1つまたは複数のフィールドである。
実装によっては、主キーは、レコード中の1つまたは複数のフィールドを含む。キーは、レコードに含まれる業務情報から導出することができ、例えば、姓名と現住所で1人の顧客を識別することができる(例えば「John」、「Smith」、「154 Locke Lane」)。
主キーの種類の1つは「代理キー」である。代理キーは、業務情報から導出されるのではない一意の識別子、すなわち主キーである。例えば、代理キーは、数値の列から選択することができる。代理キーは、データセットごとに一意である場合も、特定のシステム内のすべてのデータセット(例えば特定の企業に対応するすべてのデータセット)にわたって一意である場合もある。例えば、番号「10234」で、154 Locke LaneのJohn Smithのレコードを識別することができる。業務情報は変化したり(例えばJohn Smithは154 Locke Laneから275 Greenwood Aveに転居する可能性がある)、または一意でない場合がある(例えば、154 Locke LaneのJohn Smithと、154 Lock Lane のJohn Smith Jr.が存在する可能性がある)ことから、代理キーが一般に好まれる。本明細書で使用される場合、特定のドメインにあるすべてのデータセットに一意の代理キーを「システム全体の代理キー」と呼ぶ。1つのデータセットの中で一意の代理キーを「データセット代理キー」と呼ぶ。
データセットは他のデータセットと関係付けることもでき、1つのデータセット内のレコードを他のデータセットのレコードと関係付けることができる。一般に、データセット間およびレコード間の関係は、「外部キー」を使用して記述される。外部キーは、値が別のフィールドの主キーを参照するデータセットのデータ形式で定義されたフィールドである。
例えば、顧客に製品を販売する事業が組織されるとする。顧客が、1つまたは複数の製品を参照する注文を行う。このビジネスモデルを支援するために、顧客レコードを顧客データセットに記憶することができる。顧客が注文を行うと、注文レコードを注文データセットの中に作成することができる。注文レコードは、通例は顧客レコードの主キーを参照することにより、その注文を行った顧客を参照するフィールドを含む。より具体的には、注文テーブルは、John Smithによって行われた注文についてのレコードを含むことができる。この注文は例えば数値987,321を持つ主キーを有し、数値10,234(上記のように154 Locke Lane のJohn Smithを参照する)を含んでいる「顧客識別子」フィールドを含むことができる。この例では、顧客データセットを主データセットと呼ぶことができ、注文データセット(その顧客データセットを参照する)を副データセットと呼ぶことができる。
一般に、用語「主データセット」および「副データセット」は、2つのデータセット間の関係の特性を定義し、絶対的ではない可能性がある。例えば、注文は複数の行項目を含む場合があり、各行項目は異なる製品を参照する場合がある。この例では、製品ごとに行項目レコードを作成することができる。行項目レコードは、その注文レコードを参照する外部キーを含むことができる。この例では、注文と行項目の関係に従って、注文が主データセットになり、行項目が副データセットになる。データセットは複数の関係の一部である場合もあり、例えば、行項目レコードは、製品データセットに記憶された製品レコードを参照する場合もある。この例では製品データセットが主データセットになり、行項目データセットが副データセットになる。
多くのデータストアは、そのような関係を実現するために使用できる機構を備えている(参照整合性と呼ばれる)。しかし、しばしばこの機構は運用または性能上の理由から使用されない。代わりに、システムは、プログラミングロジックに依拠して参照整合性を実現している。その結果、時間の経過と共にシステムの参照整合性が低下していく可能性がある。親なしレコード(主データセットとの外部キー関係を持たない、副データセットにあるレコード)が生じる、予想される関係が存在しない、などの可能性がある。場合によっては、新しいデータセットが既存のデータシステムに導入される場合がある(例えば合併事業時など)。データベース間で相当する主キーと外部キーの関係が正確に把握されない場合もある。
スキーマからではなくデータからキー関係の構造を判定することが、データセットの集まりにデータ駆動型のデータ品質分析を行う際の最初の段階になる場合がある。データに実際のキー関係が存在することを確認することができると、データ品質計画を開始するにあたって組織は確信を得られる。データセット間の未知の関係や予想していなかった関係が明らかになる場合があり、どのフィールドが共有値を保持しているかについての情報が発見される場合もある。予想していた関係と識別された関係との不一致が発見されることもある。さらなるデータ品質分析の基礎とする正確な構造を判断することができる。一般には、判明した主キーと外部キーの関係の構造を、システム内のデータセットの参照整合性を定量化する開始点として使用することができる。
主キーと外部キーの関係をリバースエンジニアリングする従来の方法は、潜在外部キーフィールドおよび潜在主キーフィールドを異なるデータセット内で識別することを伴う。これには、潜在外部キーの各値を潜在主キーの各値と比較することが必要になる。
本明細書に記載されるこれに代わる手法はフィルタマスクを利用することを含み、このフィルタマスクは偽肯定(false positive)を許し(すなわち、フィルタマスクは、値がある集合の要素でないときに要素であると示すことができる)、一方で偽否定(false negative)の可能性は排除する(すなわちフィルタマスクは、値が当該の集合の要素であるときに要素でないと示すことはない)。一般に、フィルタマスクは、潜在主キーの(1つまたは複数の)フィールドのレコードに記憶された値から作成される。そして、各レコードの潜在外部キーフィールドの値をフィルタマスクと比較する。
例えば、あるプロセスではブルーム(Bloom)フィルタを利用して、指定されたフィールドおよびデータセットの集まりにあるあらゆるデータセットの各フィールドの値の分布を特徴化する。ブルームフィルタは、空間効率のよい確率的データ構造であり、要素が集合の要素であるかどうかを検査するために使用することができる。
図1は、キーの照合および識別技術を使用することができるデータ処理システム100の例である。一般に、キーの照合および識別は、1つまたは複数のデータセットについての情報と、そのデータセット間の潜在的な関係を識別する情報を収集するプロセスを言う。システム100はデータソース102を含み、これは、記憶装置やオンラインのデータストリームへの接続などの1つまたは複数のデータソースを含むことができ、各データソースは、各種形式のデータを記憶または提供することができる(例えば、データベーステーブル、表計算ファイル、フラットテキストファイル、またはコンピュータに使用される固有形式)。実行環境104は、フィルタマスク作成モジュール106およびフィルタマスク適用モジュール112を備える。実行環境104は、例えば、任意バージョンのUNIXオペレーティングシステムなど、適切なオペレーティングシステムの制御下で1つまたは複数の汎用コンピュータにホストすることができる。例えば、実行環境104は、多ノードの並列演算環境を含むことができる。これは、複数の中央演算処理装置(CPU)またはプロセッサコアを使用するコンピュータシステムの構成を含むことができ、CPUまたはプロセッサコアは、ローカルにあるか(例えば対称型マルチ処理(SMP)コンピュータなどのマルチプロセッサシステム)、ローカルで分散されるか(例えば、クラスタや超並列処理(MPP)システムとして結合された複数のプロセッサ)、リモートにあるか、またはリモートで分散される(例えばローカルエリアネットワーク(LAN)および/もしくはワイドエリアネットワーク(WAN)を介して結合された複数のプロセッサ)、またはそれらの組み合わせとされる。
フィルタマスク作成モジュール106は、データソース102からデータを読み出し、データセットの1つまたは複数のフィールド用のフィルタマスクをデータソース102に記憶する。フィルタマスクは例えばブルームフィルタである。
従来のブルームフィルタは、複数のビットと1つまたは複数のハッシュ関数とを含む。各ハッシュ関数を使用して、入力値を、フィルタキー中のビットの部分集合にマッピングする。フィルタキーを組み合わせてフィルタマスクを作成する。ブルームフィルタは、下記のように1つのハッシュ関数を使用してフィルタキーを作成することによって作成することができる。
フィルタマスクは、潜在キーとして識別されたフィールドに対して作成することができる。フィルタマスクは、下記のプロセスを使用して生成することができる。データソース102を提供する記憶装置は、例えば実行環境104をホストするコンピュータに接続された記憶媒体(例えばハードドライブ108)に記憶されるなど実行環境104のローカルにある場合も、または、例えば遠隔への接続(例えばクラウドコンピューティング設備により提供される)を通じて実行環境104をホストするコンピュータと通信状態にある遠隔のシステム(例えばメインフレーム110)にホストされるなど、実行環境104からリモートにある場合もある。
フィルタマスク適用モジュール112は、フィルタマスク作成モジュール106によって生成されたフィルタマスクを使用して、データセットのレコードにある値を比較する。フィルタマスク適用モジュールは、データセットの特定のフィールドについて(とりわけ)、下記で説明するように、フィルタマスクで指定される特性と一致する値の数、フィルタマスクと一致する値の数の割合、および/または、Sorensen−Dice係数などのフィルタマスクと値の類似度を比較する統計値を求めることができる。データセットのフィールドが、識別されたキーフィールドに対して良好な一致であるかどうかを判定するために使用できる他の統計値を求めることもできる。
フィルタマスク適用モジュール112は、他のデータプロファイリングモジュールと連携して動作することができる。出力データ114は、データソース102に戻して記憶するか、または、実行環境104からアクセスできるか、その他の形で使用されるデータ記憶システム116に記憶することができる。データ記憶システム116は、開発者120が潜在キーである1つまたは複数のフィールドをデータセット内で識別できる開発環境118からもアクセスすることができる。
開発環境118は、実装によっては、頂点間の有向リンク(作業要素、すなわちデータの流れを表す)で結ばれた頂点(データ処理の構成要素またはデータセットを表す)を含むデータフローグラフとしてアプリケーションを開発するシステムである。例えば、そのような環境が、「Managing Parameters for Graph−Based Applications」という名称の米国特許出願公開第2007/0011668号に詳細に記載され、同出願は参照により本明細書に組み込まれる。そのようなグラフを利用した演算を実行するシステムが、「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」という名称の米国特許第5,966,072号に記載され、同特許は参照により本明細書に組み込まれる。このシステムに従って作成されたデータフローグラフは、グラフ構成要素で表される個々のプロセスに情報を出し入れし、プロセス間で情報を移動し、プロセスの実行順序を定義する方法をもたらす。このシステムは、利用可能な方法(例えば、グラフのリンクに従った通信経路にはTCP/IPまたはUNIXのドメインソケットを使用することができ、または共有メモリを使用してプロセス間でデータを渡す)からプロセス間通信の方法を選択するアルゴリズムを含む。
フィルタマスク作成モジュール106は、種々の形態のデータベースシステムを含む、データソース102を実装する可能性のある各種のシステムからデータを受け取ることができる。データは、個々のフィールド(「属性」または「列」とも呼ばれる)の値を持つレコードとして編成されている可能性があり、ナル値を含む場合もある。データソースから最初にデータを読み出す際、フィルタマスク作成モジュール106は通例、そのデータソースにあるレコードについての何らかの初期フォーマット情報から開始する。状況によっては、データソースのレコード構造が当初把握されていない場合もあり、代わりに、データソースまたはデータの分析後に判明することもある。レコードについての初期情報には、例えば、1つの異なる値を表すビット数、レコード内のフィールドの順序、およびビットで表される値の種類(例えばストリング、符号付き/符号なしの整数)が含まれる。
図2に、ブルームフィルタで使用される例示的なフィルタマスク作成手順200のフローチャート200を示す。この手順は、例えば図1のフィルタマスク作成モジュール106によって行うことができる。手順200は、データを受け取る工程を含む202。このデータは、データベーステーブルやフラットファイルなどのデータセットに含まれている可能性がある。データは、1つまたは複数のフィールドおよび1つまたは複数のレコードを含む可能性があり、各レコードは、フィールドのうち少なくとも一部の値を含んでいる。事例によっては、レコードは、NULL値、または特定のフィールドに値が存在しないことを示す他の指示を含むことができる。
手順200は、潜在キーを識別する工程を含む206。潜在キーは、1つまたは複数のフィールドから構成されることができる。潜在キーは、ユーザによって識別されるか、またはデータもしくはメタデータ(データについて記述するデータ)に基づいて判定することができる。例えば、潜在キーは、リレーショナルデータベーステーブルに対する主キー制約で識別することができる。一般に、制約は、リレーショナルデータベーステーブルなどのデータセットにあるデータについての規則を指定する。主キー制約は、特定のフィールド(またはフィールドの組み合わせ)を主キーにして、その特定のフィールド(またはフィールドの組み合わせ)がそのデータセット中の一レコードを一意に識別することを指示する。
レコードごとに、手順200は、フィルタキーを作成する208。一般に、フィルタキーは、レコードのフィールドに記憶された値に基づいて作成することができる疎な密度のキーである。偽否定を許さないフィルタマスクを生成するために、フィルタキーは、フィールドにある一意の値ごとに生成しなければならない。実装によっては、キーを生成する前に一意の値を識別し、一意の値ごとにキーを生成することができる。
図3は、フィルタキー350の生成の一例を説明する。従来のブルームフィルタでは、一続きのハッシュ関数を値に実行してフィルタキーを識別する。各ハッシュ関数は、いくつかの要素を、ビット配列中の1つまたは複数のビットにマッピングする。代替の実装では、下記で説明するように多工程のハッシュ化関数を使用することができる。
この例では、レコードのフィールドは値302、この例では「John Smith」を含む。ハッシュ化アルゴリズム304を値302に適用してハッシュ値306を生成し、この例では、ハッシュ値は16進表現、6117323D2CABBC17D44C2B44587F682Chexを有する。一般に、このハッシュ化アルゴリズムは、衝突の可能性が十分に低い任意のハッシュ化アルゴリズムとすることができる。この例では、MD5メッセージダイジェストアルゴリズムが使用される。MD5ハッシュは、128ビット(16バイト)のハッシュ値を生成する。160ビット(20バイト)のハッシュ値を生成するSHA−1や、224ビット、256ビット、384ビット、または512ビットのハッシュ値を生成するSHA−2などの他のハッシュ化アルゴリズムを使用することもできる。一般に、ハッシュ化アルゴリズムは、要求される性能特性を維持しつつ、データ内の衝突の可能性を最小にするように選択する。SHA−1は20バイトのストリングを返し、これは5つの符号なし4バイト整数として解釈することができる。SHA−256は、32バイトのストリングを返し、これは8つの符号なし4バイト整数として解釈することができる。一般に、キー、したがってアルゴリズムの大きさは、分析するデータの大きさに基づいて選択される。キーの大きさを増大することにより、キー空間内の衝突を回避する。例えば、64MBのキーと2500万行の候補キーテーブルの場合は、5つのキー(SHA-1)ではおよそ0.0004の偽肯定率、8つのキー(SHA-256)ではおよそ0.0001の偽肯定率となる。
手順は、ハッシュ値306を数値に分割し、この例では、4バイトの整数値、310、320、328、および330に分割する308。例えば、md5のハッシュ値、6117323D2CABBC17D44C2B44587F682Chexを、整数値である、6117323Dhex、2CABBC17hex、D44C2B44hex、587F682Chexに分割する。他の大きさを使用してもよく、例えば、ハッシュ値は8バイトの整数値に分割してもよい。
説明のために、図3に、整数値310の16進表現(6177323Dhex)は、10進値(1,628,910,141decimal)としても表せることを示す。
フィルタキーの長さが整数の最大値(例えば符号なしの4バイト整数の場合は4,294,967,295)よりも小さい事例では、モジュロ演算を使用して整数の値を減らすことができる。この例では、フィルタキー350の大きさが4096ビットである場合、各整数値310、320、328、および330をモジュロ4096で調整して、値316、324、332、および334を得る。
フィルタキーの大きさはシステムに応じて異なる可能性がある。例えば、フィルタキーの大きさは8メガバイト(MB)、すなわち67,108,864ビットである。正確な大きさは、最適な性能と精度が得られるように、よく理解されたブルームフィルタの統計データに基づいて選択される。一般に、ブルームフィルタの大きさは、フィルタマスクが疎な密度になるように、すなわち、設定されたビット(「1」)に対して多数の設定されていないビット(「0」)」を持つことを保証するように選択される。
手順は、各整数値をフィルタキー350のビットにマッピングする。実装によっては、フィルタキー350はビットの1次元配列である。配列中の場所は、インデックスと呼ばれる、配列の先頭からの数値オフセットに基づいて求めることができる。プログラミング言語に応じて、インデックス「0」(ゼロベースの番号付け)またはインデックス「1」を使用して配列中の最初のビットを参照することができる。この例では配列はゼロベースである。整数値1つごとに、配列中に1つのビットが設定される。インデックス値の位置では、ビットが「1」の値に設定される。この例では、インデックス位置、573、2092、2884、および3095のビットが「1」に設定され、残りのビットは「0」に設定される(または「0」のままにされる)。
再度図2を参照すると、手順は、フィルタキーを組み合わせてフィルタマスクを作成する212。図4は、フィルタキーからフィルタマスクを作成する工程の説明である。データセットはレコードを含み、各レコードは、潜在キーとして識別されたフィールド402a〜jの値を含む。手順は、値ごとにフィルタキー404a〜jを作成する(例えば、値Jonas Demers 402aを使用してフィルタキー、キーA 404aを生成し、値Sofia Votaw 402bを使用してフィルタキー、キーB 404bを生成する等)。手順は、フィルタキー404a〜jを組み合わせてフィルタマスク406を作成する。フィルタキー404a〜jは、例えば2進のOR演算を使用して組み合わせることができる。OR演算は2つのブール値を受け付け(ブール値は真または偽のどちらかを含んでいる)、2つの値のどちらかが真である場合に真を返し、2つの値が両方とも偽である場合に偽を返す。伝統的に、2進の「1」は真の値を表し、2進の「0」は偽の値を表す。2進のOR演算は、長さが等しい2つのビットパターンを受け取り、対応するビットの各ペアに論理包含的OR演算を行う。それぞれの位置の結果は、第1のビットが1であるか、または第2のビットが1であるか、または両方のビットが1である場合に1になり、それ以外の場合、結果は0になる。
例えば、数10011Bと数00010Bの2進ORでは以下が生成される。
Figure 0006526684
その結果得られるフィルタマスク406は、当該データセットの潜在キーの内容の「指紋」になる。
図2を参照すると、手順は、フィルタマスクを、データセットに関連付けられたメタデータと共に、恒久的なデータストア、または他の記憶媒体に記憶することができる214。
図5は、フィルタマスクに基づく例示的なプロファイリング手順500のフローチャートを示す。手順500はフィルタマスクを受け取る501。フィルタマスクは、上記のプロセスを使用して生成することができる。実装によっては、手順500は1つまたは複数のフィルタマスクを受け取る。例えば、システムまたはユーザが、2つのデータセットの間の主キーと外部キーの関係を識別することを試みて、比較する2つのデータセットを特定する場合がある。あるいは、初期データセットと、システム内のすべての他のデータセットとの間のキー関係を識別することを試みて、1つのデータセットを複数の異なるデータセットと比較することもできる。実装によっては、データセットの各フィールドにフィルタマスクを生成することができる。そのフィルタマスクそれぞれを、他のデータセットのフィールドと比較することができる。
手順500は、解析するデータを受け取る502。このデータは1つまたは複数のデータセットを含む可能性があり、各データセットは、1つまたは複数のフィールドと、その1つまたは複数のフィールドの値をそれぞれが含む1つまたは複数のレコードとを含んでいる。実装によっては、データセットの1つまたは複数のフィールドが必須でない場合もある。レコードは、必須でないフィールドについては、値を含む場合も、含まない場合もある。
手順500は、データセットを順次または並行して分析することができる。それぞれの並列プロセスには、それ専用のフィルタマスクのコピーを与えることができる。フィルタマスクは、比較的疎な密度にするのに十分な大きさであるが、処理されるデータと比較するとなお比較的小さい。レコードごとに、手順は、フィールドの値にフィルタマスクを適用する。実装によっては、手順は、1つのみのフィールド、例えばデータベーステーブルの所定の行を処理する場合もある。他の実装では、システムは、レコードの各値を1つまたは複数のフィルタマスクと比較することができる。
実装によっては、値をフィルタマスクと比較することは、値にフィルタキーを生成することを含む場合がある504。フィルタキーは、上記で図2および図3を参照して説明したプロセスを使用して生成することができる。一般に、各フィルタキーは、組み合わせられたキーを生成してフィルタマスクを作成するために使用されるプロセスと同じプロセスを使用して生成することができる。同じプロセスを使用することにより、すべてのキーがフィルタマスクと同じ長さになることが保証される。
2進のAND演算を行うことにより、生成されたフィルタキーをフィルタマスクと比較することができる506。一般に、AND演算は2つの値を受け付け、両方の値が真である場合に肯定の応答を生成し、それ以外の場合は否定の応答を生成する。伝統的に、2進の「1」は真の値を表し、2進の「0」は偽の値を表す。2進のAND演算は、長さが等しい2つのビットパターンを受け付けて、対応するビットの各ペアにAND演算を行う関数である。それぞれの位置の結果は、第1のビットが1である場合に「1」になり、第2のビット、それ以外の場合は結果は「0」になる。
例えば、数「10011B」と数「00010B」の2進のANDでは以下が生成される。
Figure 0006526684
2進のAND演算の結果をフィルタキーと比較することができる506。2進のAND演算の結果がフィルタキーと一致する場合、値はフィルタを通過し、潜在的な一致になる。2進のAND演算の結果がフィルタキーと一致しない場合は、値はフィルタを通過せず、一致とならない。
例えば、10011Bのフィルタマスクを00010Bのフィルタキーと比較する。上記のように、この2つの2進数に2進のAND演算を行うと、値00010Bが得られる。結果値(00010B)がフィルタキー(00010B)と同じなので、このフィルタキーはフィルタを通過する。
逆の例として、フィルタマスク10011Bをフィルタキー01001Bと比較する。このマスクおよびキーに対して実施される2進のAND演算を次に示す。
Figure 0006526684
結果である00001Bはフィルタキー01001Bと一致しないので、フィルタキーはフィルタを通過しない。
フィルタキーとフィルタマスクの比較は、比較的短時間で行える演算である。したがって、主キーフィールドである可能性のあるフィールドの各値を潜在外部キーフィールドの各値と比較することを通例伴う従来のキー識別方法と比べて、多数のレコードをより迅速かつ効率的に処理することができる。
上記のように、フィルタマスキングアルゴリズムを選択して、ある要素が、フィルタマスクを生成するために使用された集合の要素でないことを確実に判定することができる。比較の結果は、リレーショナルデータベースやフラットファイルなどの恒久的なデータストアに記憶することができる。
手順が、データセットのレコードに対して判定されたフィールドを処理すると、手順は、処理するデータセットがさらにあるかどうかを判定することができる508。処理するデータセットがさらにある場合は、次のデータセットが受け取られる502。
実装によっては、主テーブルの潜在主キーから生成されたフィルタマスクを、潜在副テーブルの各フィールドと比較することができる。
実装によっては、異なるデータセットから多数のフィルタマスクを手順の開始時に生成することができる502。候補データセットが処理されるのに伴って、すべてのキーマスクをコンピュータメモリにロードすることができる。追加的なオーバーヘッドを最小に抑えて、候補にある各フィールドの値を、それらのブルームフィルタそれぞれと比較して検査することができる。
すべての値が処理されると、統計が記録され、分析される510。フィルタマスクと比較される値を含んでいるフィールドごとに、統計を記録することができる。
追加的な統計値を計算することができ、例えば、上記手順で各列に統計を収集できると判定する場合があり、そのような統計には、レコードの数、フィールドの値がフィルタマスクに見つかるレコードの数、フィールドにある異なる値の数、およびSorensen−Dice係数(2つのサンプル間の類似度を比較するために使用される統計値)が含まれる。潜在キーフィールドと対象フィールドとの類似度を比較するために使用される他の統計も決定することができる。例えば、主テーブルの数値キー値の範囲(hi/lo)、平均、幾何平均、および標準偏差。
実装によっては、比較数、異なる値の数、交差のパーセント(すなわち、検査対象のフィールドと比較対象のフィールドの両方に出現する値の割合)、およびSorensen−Dice係数が算出される。数値キーには、標準偏差を算出することができる。
実装によっては、統計をレポートとしてフォーマットして、ユーザに提示することができる。
実装によっては、レポートは、外部キーと主キーの関係について一致する1つまたは複数のフィールドを識別することができる。例えば、フィールドの値がフィルタマスクに見つかるレコードの割合を閾値、例えば60%と比較し、Sorensen−Dice係数を閾値、例えば80%と比較し、交差のパーセントを閾値、例えば95%と比較する。これらすべての閾値と一致するフィールドが潜在的な一致としてユーザに提示される。
データセットにシステム全体の代理キーを使用する事例では、潜在的な一致は自動的に判定することができる。
実装によっては、レポートをユーザに提示して、ユーザが潜在外部キーの一致を識別できるようにする。
上記のデータベース分析手法は、適切なソフトウェアを実行するコンピューティングシステムを使用して実装することができる。例えば、ソフトウェアは、プログラムされた、またはプログラム可能な1つまたは複数のコンピューティングシステム(分散、クライアント/サーバ、またはグリッドなどの各種アーキテクチャを取り得る)で実行される1つまたは複数のコンピュータプログラム中の手順を含むことができ、それぞれのコンピューティングシステムは、少なくとも1つのプロセッサと、少なくとも1つのデータ記憶システム(揮発性メモリおよび/または不揮発性メモリおよび/または記憶素子を含む)と、少なくとも1つのユーザインターフェース(少なくとも1つの入力装置またはポートを使用して入力を受け取り、少なくとも1つの出力装置またはポートを使用して出力を提供する)とを備える。ソフトウェアは、例えばデータフローグラフの設計、設定、および実行に関連するサービスを提供する、より大きなプログラムの1つまたは複数のモジュールを含む場合もある。プログラムのモジュール(例えばデータフローグラフの要素)は、データリポジトリに記憶されたデータモデルに準拠したデータ構造または他の編成データとして実装することができる。
ソフトウェアは、CD−ROMや他のコンピュータ可読媒体(例えば汎用または特殊目的のコンピューティングシステムまたはデバイスによって読み取ることができる)などの有形の非一時的媒体で提供される場合も、ネットワークの通信媒体を通じて、実行先のコンピューティングシステムの有形の非一時的媒体に送付される(例えば伝搬信号の中に符号化される)場合もある。処理の一部またはすべては、特殊目的コンピュータで行われるか、またはコプロセッサもしくは利用者プログラム可能ゲートアレイ(FPGA)、または専用の特定用途集積回路(ASIC)などの特殊目的ハードウェアを使用して行うことができる。処理は、ソフトウェアによって指定される演算の異なる部分が異なる演算要素によって行われる分散方式で実装することもできる。そのような各コンピュータプログラムは、好ましくは、汎用または特殊目的のプログラム可能コンピュータからアクセス可能な記憶装置のコンピュータ可読記憶媒体(例えば固体状態メモリもしくは媒体、または磁気媒体もしくは光学媒体)に記憶されるか、またはダウンロードされて、記憶装置媒体がコンピュータに読み取られるとコンピュータを構成および動作させて本明細書に記載の処理を行わせる。本発明のシステムは、コンピュータプログラムと共に構成された有形の非一時的媒体として実装されると考えることもでき、そのように構成された媒体が、コンピュータを特定の事前定義された方式で動作させて、本明細書に記載の処理工程の1つまたは複数を行わせる。
本発明のいくつかの実施形態について説明した。それでも、上述の説明は、本発明の範囲を例示するものであり、制限するものではないことを理解されたい。本発明の範囲は下記の特許請求の範囲によって定義される。
したがって、他の実施形態も下記の特許請求の範囲内にある。例えば、本発明の範囲から逸脱することなく様々な変更を加えることができる。また、上記の工程の一部は順序に依存しない場合もあり、そのため、記載の順序とは異なる順序で行うことができる。

Claims (19)

  1. 第1のデータセット中の第1のフィールドの識別を受け取る工程であって、前記第1のデータセットは複数のレコードを含んでいる、工程と、
    値の集合を識別する工程であって、前記集合は、レコードごとに、それぞれのレコードにある、前記フィールドに関連付けられた値を含む、工程と、
    前記値の集合に基づいてフィルタマスクを生成する工程であって、前記フィルタマスクを適用することにより、所与の値が前記値の集合にないことを判定することができる工程と、
    第2のデータセットを受け取る工程であって、前記第2のデータセットは第2のフィールドを含んでおり、前記第2のデータセットは複数のレコードを含んでいる、工程と、
    前記第2のフィールドと関連付けられた値であって前記フィルタマスクを通過する値を持つ、前記第2のデータセット中のレコードの数を判定する工程と、
    前記数をプロファイルに記憶する工程と、
    を含む、コンピュータが実行する方法。
  2. 前記値の集合と、前記第2のフィールドに関連付けられた値を持つ前記第2のデータセット中の前記レコードとのSorensen−Dice係数を求める工程をさらに含む請求項1に記載の方法。
  3. フィルタマスクを生成する工程が、前記値の集合にある値ごとに、対応する値にフィルタキーを生成する工程を含む請求項1に記載の方法。
  4. 前記対応する値にフィルタキーを生成する工程が、
    前記対応する値のハッシュ値を生成する工程と、
    前記ハッシュ値を、所定数の整数に分割する工程と、
    前記整数に基づいてビットベクトルにビットを設定することにより、フィルタキーを作成する工程と、
    を含む請求項3に記載の方法。
  5. 前記フィルタマスクを生成する工程が、前記生成されたフィルタキーそれぞれに2進演算を行う工程をさらに含む請求項3に記載の方法。
  6. 前記第2のフィールドと関連付けられた値であって前記フィルタマスクを通過する値を持つ、前記第2のデータセット中のレコードの数を判定する工程が、
    前記第2のフィールドに関連付けられた値に第2のフィルタキーを計算する工程と、
    前記第2のフィルタキーを前記フィルタマスクと比較する工程と、
    を含む請求項5に記載の方法。
  7. 1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、
    第1のデータセット中の第1のフィールドの識別を受け取る工程であって、前記第1のデータセットは複数のレコードを含んでいる、工程と、
    値の集合を識別する工程であって、前記集合は、レコードごとに、それぞれのレコードにある、前記フィールドに関連付けられた値を含む、工程と、
    前記値の集合に基づいてフィルタマスクを生成する工程であって、前記フィルタマスクを適用することにより、所与の値が前記値の集合にないことを判定することができる工程と、
    第2のデータセットを受け取る工程であって、前記第2のデータセットは第2のフィールドを含んでおり、前記第2のデータセットは複数のレコードを含んでいる、工程と、
    前記第2のフィールドと関連付けられた値であって前記フィルタマスクを通過する値を持つ、前記第2のデータセット中のレコードの数を判定する工程と、
    前記数をプロファイルに記憶する工程と、
    を含む動作を行わせるコンピュータプログラム命令が符号化された非一時的なコンピュータ記憶媒体。
  8. 前記値の集合と、前記第2のフィールドに関連付けられた値を持つ前記第2のデータセット中の前記レコードとのSorensen−Dice係数を求める工程をさらに含む請求項7に記載の媒体。
  9. フィルタマスクを生成する工程が、前記値の集合にある値ごとに、対応する値にフィルタキーを生成する工程を含む請求項7に記載の媒体。
  10. 前記対応する値にフィルタキーを生成する工程が、
    前記対応する値のハッシュ値を生成する工程と、
    前記ハッシュ値を、所定数の整数に分割する工程と、
    前記整数に基づいてビットベクトルにビットを設定することにより、フィルタキーを作成する工程と、
    を含む請求項9に記載の媒体。
  11. 前記フィルタマスクを生成する工程が、前記生成されたフィルタキーそれぞれに2進演算を行う工程をさらに含む請求項9に記載の媒体。
  12. 前記第2のフィールドと関連付けられた値であって前記フィルタマスクを通過する値を持つ、前記第2のデータセット中のレコードの数を判定する工程が、
    前記第2のフィールドに関連付けられた値に第2のフィルタキーを計算する工程と、
    前記第2のフィルタキーを前記フィルタマスクと比較する工程と、
    を含む請求項11に記載の媒体。
  13. 1つまたは複数のコンピュータと、1つまたは複数の記憶装置とを備えるシステムであって、前記1つまたは複数の記憶装置は、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、
    第1のデータセット中の第1のフィールドの識別を受け取る工程であって、前記第1のデータセットは複数のレコードを含んでいる、工程と、
    値の集合を識別する工程であって、前記集合は、レコードごとに、それぞれのレコードにある、前記フィールドに関連付けられた値を含む、工程と、
    前記値の集合に基づいてフィルタマスクを生成する工程であって、前記フィルタマスクを適用することにより、所与の値が前記値の集合にないことを判定することができる工程と、
    第2のデータセットを受け取る工程であって、前記第2のデータセットは第2のフィールドを含んでおり、前記第2のデータセットは複数のレコードを含んでいる、工程と、
    前記第2のフィールドと関連付けられた値であって前記フィルタマスクを通過する値を持つ、前記第2のデータセット中のレコードの数を判定する工程と、
    前記数をプロファイルに記憶する工程と、
    を含む動作を行わせるように動作可能な命令を記憶しているシステム。
  14. 前記値の集合と、前記第2のフィールドに関連付けられた値を持つ前記第2のデータセット中の前記レコードとのSorensen−Dice係数を求める工程をさらに含む請求項13に記載のシステム。
  15. フィルタマスクを生成する工程が、前記値の集合にある値ごとに、対応する値にフィルタキーを生成する工程を含む請求項13に記載のシステム。
  16. 前記対応する値にフィルタキーを生成する工程が、
    前記対応する値のハッシュ値を生成する工程と、
    前記ハッシュ値を、所定数の整数に分割する工程と、
    前記整数に基づいてビットベクトルにビットを設定することにより、フィルタキーを作成する工程と、
    を含む請求項15に記載のシステム。
  17. 前記フィルタマスクを生成する工程が、前記生成されたフィルタキーそれぞれに2進演算を行う工程をさらに含む請求項15に記載のシステム。
  18. 前記第2のフィールドと関連付けられた値であって前記フィルタマスクを通過する値を持つ、前記第2のデータセット中のレコードの数を判定する工程が、
    前記第2のフィールドに関連付けられた値に第2のフィルタキーを計算する工程と、
    前記第2のフィルタキーを前記フィルタマスクと比較する工程と、
    を含む請求項17に記載のシステム。
  19. 第1のデータセット中の第1のフィールドの識別を受け取る手段であって、前記第1のデータセットは複数のレコードを含んでいる、手段と、
    値の集合を識別する手段であって、前記集合は、レコードごとに、それぞれのレコードにある、前記フィールドに関連付けられた値を含む、手段と、
    前記値の集合に基づいてフィルタマスクを生成する手段であって、前記フィルタマスクを適用することにより、所与の値が前記値の集合にないことを判定することができる手段と、
    第2のデータセットを受け取る手段であって、前記第2のデータセットは第2のフィールドを含んでおり、前記第2のデータセットは複数のレコードを含んでいる、手段と、
    前記第2のフィールドと関連付けられた値であって前記フィルタマスクを通過する値を持つ、前記第2のデータセット中のレコードの数を判定する手段と、
    前記数をプロファイルに記憶する手段と、
    を備えるシステム。
JP2016543564A 2014-01-16 2015-01-15 データベースキーの識別 Active JP6526684B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/156,544 2014-01-16
US14/156,544 US11487732B2 (en) 2014-01-16 2014-01-16 Database key identification
PCT/US2015/011518 WO2015109047A1 (en) 2014-01-16 2015-01-15 Database key identification

Publications (2)

Publication Number Publication Date
JP2017507392A JP2017507392A (ja) 2017-03-16
JP6526684B2 true JP6526684B2 (ja) 2019-06-05

Family

ID=52432993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016543564A Active JP6526684B2 (ja) 2014-01-16 2015-01-15 データベースキーの識別

Country Status (9)

Country Link
US (1) US11487732B2 (ja)
EP (1) EP3095047B1 (ja)
JP (1) JP6526684B2 (ja)
KR (1) KR102240137B1 (ja)
CN (1) CN105917336B (ja)
AU (1) AU2015206487B2 (ja)
CA (1) CA2934034C (ja)
SG (1) SG11201604859RA (ja)
WO (1) WO2015109047A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9892026B2 (en) 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US11227104B2 (en) * 2014-05-11 2022-01-18 Informatica Llc Composite data creation with refinement suggestions
US20160027123A1 (en) * 2014-07-22 2016-01-28 Gastke Inc. Automatic tagging of trial balance
US10891294B1 (en) 2014-07-22 2021-01-12 Auditfile, Inc. Automatically migrating computer content
US11232085B2 (en) * 2016-01-07 2022-01-25 Amazon Technologies, Inc. Outlier detection for streaming data
GB2566677A (en) * 2017-09-12 2019-03-27 Infosum Ltd Grouping datasets
CN107766570B (zh) * 2017-11-10 2020-04-07 广东电网有限责任公司电力科学研究院 一种档案同源核查方法
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
US10846307B1 (en) * 2020-04-03 2020-11-24 Csg Systems, Inc. System and method for managing interactions with a data lake
KR102416517B1 (ko) * 2020-11-13 2022-07-01 디비에프아이에스 주식회사 Rpa를 이용하는 데이터베이스 중앙 관리 장치 및 그 방법
CN112800085B (zh) * 2021-04-13 2021-09-14 成都四方伟业软件股份有限公司 一种基于布隆过滤器识别表间主外键字段的方法及装置

Family Cites Families (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179643A (en) 1988-12-23 1993-01-12 Hitachi, Ltd. Method of multi-dimensional analysis and display for a large volume of record information items and a system therefor
JPH032938A (ja) 1989-05-31 1991-01-09 Hitachi Ltd データベース処理方法
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.
JP3079881B2 (ja) 1993-08-10 2000-08-21 三菱自動車工業株式会社 道路交通状況推定方法および車両運転特性制御方法
JP3002938B2 (ja) 1993-10-28 2000-01-24 オークマ株式会社 自動工具交換装置及び工具交換方法
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
US5778373A (en) 1996-07-15 1998-07-07 At&T Corp Integration of an information server database schema by generating a translation map from exemplary files
US6138123A (en) 1996-07-25 2000-10-24 Rathbun; Kyle R. Method for creating and using parallel data structures
JPH1055367A (ja) 1996-08-09 1998-02-24 Hitachi Ltd データ利用システム
US5845285A (en) 1997-01-07 1998-12-01 Klein; Laurence C. Computer system and method of data analysis
US5987453A (en) 1997-04-07 1999-11-16 Informix Software, Inc. Method and apparatus for performing a join query in a database system
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
US6741995B1 (en) 1999-03-23 2004-05-25 Metaedge Corporation Method for dynamically creating a profile
US6163774A (en) 1999-05-24 2000-12-19 Platinum Technology Ip, Inc. Method and apparatus for simplified and flexible selection of aggregate and cross product levels for a data warehouse
AU5624700A (en) 1999-06-18 2001-01-09 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
JP3318834B2 (ja) 1999-07-30 2002-08-26 三菱電機株式会社 データファイルシステム及びデータ検索方法
JP3567861B2 (ja) 2000-07-07 2004-09-22 日本電信電話株式会社 情報源所在推定方法及び装置及び情報源所在推定プログラムを格納した記憶媒体
JP4366845B2 (ja) 2000-07-24 2009-11-18 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム提供媒体
US6788302B1 (en) 2000-08-03 2004-09-07 International Business Machines Corporation Partitioning and load balancing graphical shape data for parallel applications
US7039627B1 (en) 2000-12-22 2006-05-02 Nortel Networks Limited Method and apparatus for performing a radix search by selecting one of a valid table and a transition table
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
CA2349265A1 (en) 2001-05-30 2002-11-30 Andrew Emili Protein expression profile database
US20030033138A1 (en) 2001-07-26 2003-02-13 Srinivas Bangalore Method for partitioning a data set into frequency vectors for clustering
US7130852B2 (en) 2001-07-27 2006-10-31 Silicon Valley Bank Internal security system for a relational database system
AU2002355530A1 (en) 2001-08-03 2003-02-24 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
AU2003223314B2 (en) 2002-03-19 2007-04-05 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
US7043476B2 (en) 2002-10-11 2006-05-09 International Business Machines Corporation Method and apparatus for data mining to discover associations and covariances associated with data
AU2003284118A1 (en) 2002-10-14 2004-05-04 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
US7840664B2 (en) 2003-05-21 2010-11-23 Ixia Automated characterization of network traffic
US20040249810A1 (en) 2003-06-03 2004-12-09 Microsoft Corporation Small group sampling of data for use in query processing
GB0314591D0 (en) 2003-06-21 2003-07-30 Ibm Profiling data in a data store
US20050240354A1 (en) 2003-08-27 2005-10-27 Ascential Software Corporation Service oriented architecture for an extract function in a data integration platform
US20060069717A1 (en) 2003-08-27 2006-03-30 Ascential Software Corporation Security service for a services oriented architecture in a data integration platform
US7426520B2 (en) * 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
CN1853181A (zh) 2003-09-15 2006-10-25 Ab开元软件公司 数据归档
WO2005029369A2 (en) 2003-09-15 2005-03-31 Ab Initio Software Corporation Data profiling
US7587394B2 (en) 2003-09-23 2009-09-08 International Business Machines Corporation Methods and apparatus for query rewrite with auxiliary attributes in query processing operations
US7149736B2 (en) 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
US7698345B2 (en) 2003-10-21 2010-04-13 The Nielsen Company (Us), Llc Methods and apparatus for fusing databases
US7689542B2 (en) 2004-01-13 2010-03-30 Oracle International Corporation Dynamic return type generation in a database system
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
US20060074881A1 (en) 2004-10-02 2006-04-06 Adventnet, Inc. Structure independent searching in disparate databases
US8145642B2 (en) * 2004-11-30 2012-03-27 Oracle International Corporation Method and apparatus to support bitmap filtering in a parallel system
US8572018B2 (en) 2005-06-20 2013-10-29 New York University Method, system and software arrangement for reconstructing formal descriptive models of processes from functional/modal data using suitable ontology
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7584205B2 (en) 2005-06-27 2009-09-01 Ab Initio Technology Llc Aggregating data with complex operations
US7774346B2 (en) 2005-08-26 2010-08-10 Oracle International Corporation Indexes that are based on bitmap values and that use summary bitmap values
JP3962417B2 (ja) 2005-08-31 2007-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースに対するアクセスを制御するシステム、およびその方法
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
US8260910B2 (en) 2006-09-19 2012-09-04 Oracle America, Inc. Method and apparatus for monitoring a data stream to detect a pattern of data elements using bloom filters
NO325864B1 (no) 2006-11-07 2008-08-04 Fast Search & Transfer Asa Fremgangsmåte ved beregning av sammendragsinformasjon og en søkemotor for å støtte og implementere fremgangsmåten
CN101191069B (zh) 2006-11-21 2011-04-27 中国石油化工股份有限公司 石脑油催化裂解制乙烯和丙烯的方法
US8412713B2 (en) 2007-03-06 2013-04-02 Mcafee, Inc. Set function calculation in a database
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US7958142B2 (en) 2007-09-20 2011-06-07 Microsoft Corporation User profile aggregation
US20090226916A1 (en) 2008-02-01 2009-09-10 Life Technologies Corporation Automated Analysis of DNA Samples
US7912867B2 (en) 2008-02-25 2011-03-22 United Parcel Services Of America, Inc. Systems and methods of profiling data for integration
US8463739B2 (en) 2008-08-28 2013-06-11 Red Hat, Inc. Systems and methods for generating multi-population statistical measures using middleware
CN104731981B (zh) 2008-09-19 2018-03-20 甲骨文国际公司 存储器端存储请求管理
US20100114976A1 (en) 2008-10-21 2010-05-06 Castellanos Maria G Method For Database Design
US9251212B2 (en) 2009-03-27 2016-02-02 Business Objects Software Ltd. Profiling in a massive parallel processing environment
US20110029478A1 (en) 2009-05-20 2011-02-03 Broeker Stephen A Stream Star Schema and Nested Binary Tree for Data Stream Analysis
KR101631978B1 (ko) 2009-09-16 2016-06-20 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
CN101661510A (zh) 2009-09-29 2010-03-03 金蝶软件(中国)有限公司 一种数据匹配方法及装置
US8560575B2 (en) 2009-11-12 2013-10-15 Salesforce.Com, Inc. Methods and apparatus for selecting updates to associated records to publish on an information feed in an on-demand database service environment
US10445309B2 (en) 2009-11-13 2019-10-15 Ab Initio Technology Llc Managing record format information
US8396873B2 (en) 2010-03-10 2013-03-12 Emc Corporation Index searching using a bloom filter
EP2585949B1 (en) 2010-06-22 2015-03-25 Ab Initio Technology LLC Processing related datasets
US10558705B2 (en) 2010-10-20 2020-02-11 Microsoft Technology Licensing, Llc Low RAM space, high-throughput persistent key-value store using secondary memory
US8296274B2 (en) 2011-01-27 2012-10-23 Leppard Andrew Considering multiple lookups in bloom filter decision making
EP2668725B1 (en) 2011-01-28 2021-12-22 Ab Initio Technology LLC Generating data pattern information
EP2704682A4 (en) 2011-05-05 2014-10-22 Aegis Analytical Corp SYSTEM FOR DESIGNATING, DISPLAYING AND SELECTING TYPES OF PROCESS PARAMETERS AND PRODUCT RESET PARAMETERS
US8610605B2 (en) 2011-06-17 2013-12-17 Sap Ag Method and system for data compression
US8856085B2 (en) 2011-07-19 2014-10-07 International Business Machines Corporation Automatic consistent sampling for data analysis
US8666919B2 (en) 2011-07-29 2014-03-04 Accenture Global Services Limited Data quality management for profiling, linking, cleansing and migrating data
US8880880B2 (en) * 2011-07-29 2014-11-04 Qualcomm Incorporated Facilitating access control in peer-to-peer overlay networks
CN103176973B (zh) 2011-12-20 2016-04-20 国际商业机器公司 用于生成数据库的测试工作负载的系统和方法
US8762396B2 (en) 2011-12-22 2014-06-24 Sap Ag Dynamic, hierarchical bloom filters for network data routing
US9336246B2 (en) 2012-02-28 2016-05-10 International Business Machines Corporation Generating composite key relationships between database objects based on sampling
CN102681946B (zh) 2012-05-11 2015-03-11 龙芯中科技术有限公司 内存访问方法和装置
US11449952B2 (en) 2012-10-01 2022-09-20 Oracle International Corporation Efficiently modeling database scenarios for later use on live data
US9892026B2 (en) 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection

Also Published As

Publication number Publication date
CA2934034C (en) 2021-09-21
SG11201604859RA (en) 2016-08-30
EP3095047B1 (en) 2021-06-23
WO2015109047A1 (en) 2015-07-23
KR102240137B1 (ko) 2021-04-13
US20150199352A1 (en) 2015-07-16
AU2015206487A1 (en) 2016-06-30
JP2017507392A (ja) 2017-03-16
CN105917336B (zh) 2021-06-29
KR20160107188A (ko) 2016-09-13
CA2934034A1 (en) 2015-07-23
AU2015206487B2 (en) 2020-07-02
CN105917336A (zh) 2016-08-31
EP3095047A1 (en) 2016-11-23
US11487732B2 (en) 2022-11-01

Similar Documents

Publication Publication Date Title
JP6526684B2 (ja) データベースキーの識別
US9411712B2 (en) Generating test data
JP5372850B2 (ja) データプロファイリング
JP6427592B2 (ja) データ型に関連するデータプロファイリング操作の管理
JP6636009B2 (ja) 系統情報の管理
JP6533746B2 (ja) データレコード選択
US10713589B1 (en) Consistent sort-based record-level shuffling of machine learning data
KR101781416B1 (ko) 관련 데이터세트의 처리
US8719271B2 (en) Accelerating data profiling process
EP3070620A1 (en) Lightweight table comparison
US10877995B2 (en) Building a distributed dwarf cube using mapreduce technique
JP2014507713A (ja) データの集合体に対する変更の管理
AU2014265246B2 (en) Managing memory and storage space for a data operation
US7680833B1 (en) System and method for database structure comparison
Brown et al. Secure Record Linkage of Large Health Data Sets: Evaluation of a Hybrid Cloud Model
Pham et al. ELODU: Entity Resolution in Big Data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180410

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181004

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190508

R150 Certificate of patent or registration of utility model

Ref document number: 6526684

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250