クラスタリングの概念ガイド

クラスタリングは、マッチ結果の迅速な作成が求められるマッチ処理に必要な側面であり、マッチ・プロセッサが表内の個々のレコード同士のすべての比較(つまり、システム・パフォーマンスの観点からは適切でないプロセス)を試みないように、データ・セット経由でインテリジェントな「最初の区分け」を作成します。

クラスタリングは、EDQがシステム内の全レコードの同期されたコピーを保持しなくても、そのシステム内の既存のレコードと新規レコードとの照合を可能にするため、リアルタイム・マッチにも不可欠です。

クラスタ

EDQのマッチ処理は、すべてのレコードを相互に比較するのではなく、クラスタリング・プロセスで作成されるクラスタ内で実施されます。

クラスタリングでは、データ・セットでのレコードの比較は実行されません。データ・セットのクラスタは、レコードごとのマッチ処理に使用される1つ以上の識別値を操作することで作成されます。共通の操作値(クラスタ・キー)を保持するレコードは、同じクラスタ内に属し、マッチ処理では相互に比較されます。異なるクラスタにあるレコードは一緒に比較されることはなく、単一のレコードが格納されたクラスタはマッチ処理では使用されません。

次の図では、「Name」列の単一のクラスタについて、「Make Array from String」変換を使用して、スペースで区切られた「Name」識別子からすべての値をクラスタリングしています。

したがって、クラスタリング・プロセスはマッチ・プロセスのパフォーマンスと機能性にとって重要です。作成されたクラスタが非常に大きい場合は、マッチ処理で多数の比較が発生し、処理速度が低下する可能性があります。一方、クラスタが非常に小さい場合は、類似する値のクラスタリングに失敗し、マッチの可能性がある一部のレコードが見逃される可能性があります。

クラスタリングには、必要なマッチに応じて多少異なるレコードに共通のクラスタ・キーを作成する機能が必要です。たとえば、「Oracle」、「Oracle Ltd」などの識別子の値が含まれるレコードは、同じクラスタに属して相互に比較されることが期待されます。

複数のクラスタ

EDQでは複数のクラスタの使用がサポートされます。識別子の値がわずかに異なる場合でもマッチが存在する可能性があるため、特定のデータ・セットでは、単一の識別子の値によるクラスタリングでは不十分な場合があります。たとえば、「Surname」フィールドの一部のデータにスペルミスがあることが判明している場合、無変換での「Surname」クラスタは信頼性に欠け、SoundexまたはMetaphone変換を追加するとクラスタが非常に大きくなる可能性があります。この場合は、追加のクラスタが必要になります。追加のクラスタが別の識別子で構成されている場合、EDQは完全に新しいクラスタを作成し、それらのクラスタに対して同じマッチ・プロセスを実行します。たとえば、マッチ処理のために郵便番号がCB4のすべてのレコードが単一のクラスタに納まるように、郵便番号の最初の3桁によるクラスタを選択できます。

異なる変換が適用される異なるクラスタリング構成を使用して、同じ識別子を2回クラスタリングすることもできます。これを実行するには、同じ識別子に2つのクラスタを作成し、その識別子の値に対応する異なる変換を構成します。

クラスタ数が多いほど、多くのマッチ候補がマッチとして検出されます。ただし、マッチ処理のパフォーマンスが低下しないように、クラスタは慎重に使用してください。クラスタの数が多いほど、多くのレコード・マッチを比較する必要があります。

複合クラスタ

複合クラスタでは、複数の識別子を使用して、データ・セットをクラスタに分割する繊細で効果的な手段を使用できます。この場合、マッチ処理でのレコードのグループ化に使用する単一のクラスタ・キーを作成するために、各識別子の異なる部分が結合されます。たとえば、顧客のマッチ処理を実行する場合は、「Surname」と「Postcode」の識別子の組合せを使用して、次のクラスタを構成できます。

その結果、マッチ・プロセスの各レコードについて、「Surname」識別子の値が変換(大文字への変換、すべての空白文字の削除、Metaphone値の生成、および先頭から4文字を残して切捨て)され、次に「Postcode」識別子から変換(大文字への変換、すべての空白文字の削除、および先頭から3文字を残して切捨て)した値と連結されます。

変換後の識別子の値の連結は、構成したのではなく自動的に実行されることに注意してください。

このようにして前述のクラスタ構成を使用すると、次のクラスタ・キーが生成されます。

Surname(姓)

Postcode(郵便番号)

クラスタ・キー

Matthews

CB13 7AG

M0SCB1

Foster

CB4 1YG

FSTRCB4

JONES

SW11 3QB

JNSSW1

Jones

sw11   3qb

JNSSW1

これは、最後の2つのレコードが同じクラスタ内にあり、マッチの可能性について相互に比較されますが、他の2つのレコードとは比較されないことを意味します。

クラスタリングでの変換

クラスタリングでの変換を使用すると、スペース、大/小文字、スペル、他の相違を基本的に同じ値の間で標準化でき、それらの識別子の値で類似している(同一ではなく)レコードのクラスタを作成できます。

たとえば、「Name」識別子には、クラスタリング時にMetaphoneまたはSoundexのいずれかの変換を使用して、類似した発音の名前が同じクラスタに含まれるようにできます。これにより、データにスペルミスがある場合もマッチが機能します。たとえば、「Surname」識別子にSoundex変換を使用すると、「Fairgrieve」と「Fairgreive」の姓は同じクラスタになり、マッチ処理では重複候補のレコードが比較されます。  

識別子に有効な変換は、識別子のタイプによって異なります(たとえば、文字列と数字では異なる変換が提供されます)。

たとえば、次の変換は文字列の識別子に使用できます。

ほとんどのニーズをカバーするために、EDQは変換のライブラリを備えています。カスタム変換をシステムに追加することもできます。「EDQでのマッチの拡張」を参照してください。

変換のオプションを使用すると、識別子の値の変換方法を変更できます。使用可能なオプションは変換によって異なります。

たとえば、「First N Characters」変換には、次のオプションを構成できます。

クラスタリングの使用

最適なクラスタリング構成は、マッチ処理で使用されるデータおよびマッチ・プロセスの要件によって異なります。

たとえば、「Surname」と大まかな「Date of Birth」(生まれた年など)別のグループに個人をクラスタリングする一方で、「First Name」または「Post Code」にはクラスタを作成せずに、これらのすべての属性をマッチ・プロセスで使用するなど、指定のエンティティに対して多数の識別子が使用されている場合は、識別子が1つまたは2つのみのクラスタを使用することが適切です。

最適なクラスタリングは、ソース・データおよび特に各属性のデータの品質と完全性に依存しています。正確なマッチ結果を得るためには、クラスタ機能で使用される属性に高い品質が必要です。特に、データは完全で正しい必要があります。マッチ処理の前には、クラスタリングに必要な属性に高品質のデータが移入されるように、監査プロセッサと変換プロセッサを使用できます。

通常は、かなり簡単なクラスタリング構成(たとえば、個人のマッチを処理する場合、大文字に変換した「Surname」属性の先頭の5文字を使用してレコードをグループ化する)で開始し、大規模な(多数のグループに数百件のレコードがある)クラスタを構成します。マッチ・プロセスをさらに開発し、サンプルではなく完全なデータ・セットに適用した後は、さらに厳密なクラスタリング構成にすることで(たとえば、「Surname」属性の先頭5文字の後に「Postcode」属性の先頭4文字を使用してレコードをグループ化する)、パフォーマンスを向上させることができます。これは、クラスタをより小さくし、実行する必要がある比較の総数を削減する効果があります。

多数の識別子についてマッチ処理を実行するときに、主要ないくつかの識別子に空白やnullがある場合は通常、大規模なグループを持つ単一のクラスタより、複数のクラスタを使用するほうが効率的です。

注意: すべての非データ(空白)文字は、ユーザー指定のクラスタリング変換をすべて適用した後と、クラスタリング・エンジンを終了する前に、クラスタ・キーから常に除外されます。たとえば、「Make Array from String」変換を使用し、データをスペースで分割すると、「Jim<space><carriage return>Jones」と「Jim<space>Jones」という両方の値では、「Jim」と「Jones」というクラスタ値が作成されます。前者によって、「<carriage return>Jones」というクラスタ値は作成されません。したがって、ユーザーは、クラスタリング時にデータ内で形式が異なる空白文字の処理方法を考慮する必要がありません。

クラスタリング・プロセスのレビュー

EDQでは、マッチ処理で使用するクラスタをレビューし、必要な細分レベルに対して作成されていることを確認できます。

この確認には、クラスタリング構成を使用したマッチ・プロセッサの実行時に作成されたクラスタのビューを使用できます。結果ブラウザには、そのクラスタ・キーで生成されたクラスタのビューが表示されます。

クラスタのリストは、おそらく区別が不要な類似グループを確認するために、クラスタ・キーの値でソートできます。

各クラスタ内の構成レコードは、各入力データ・セットからドリルダウンして確認できます。たとえば、前述の「KLRKEC3」のクラスタ・キーを持つ「Customers」データ・セットの9件のレコードは、次のとおりです。

このように、熟練したユーザーはクラスタリング・プロセスを調査および調整し、最短の時間で最適な結果を作成できます。たとえば、クラスタが大きすぎるためにマッチ処理で十分なパフォーマンスが得られない場合は、追加のクラスタを作成したり、クラスタ構成をさらに限定することができます。一方、異なるクラスタ間になんらかのマッチの可能性があることをユーザーが検出した場合は、クラスタを広げるようにクラスタリング・オプションを変更する必要があります。

注意: クラスタリング戦略によっては、大規模なクラスタが作成されます。たとえば、ある識別子について大量のnull値がある場合は、NULLのクラスタ・キーを使用して大規模なクラスタが作成されることがよくあります。構成可能な件数を超えるレコードがクラスタに含まれている場合や実行される比較件数が大量となる場合、そのクラスタはマッチ処理エンジンのパフォーマンスを確保するためにスキップされます。クラスタのデフォルトの最大サイズは500レコードで、各クラスタに対して実行する比較の最大件数は制限することもできます。これらのオプションの変更方法は、「マッチ・プロセッサの詳細オプション」を参照してください。

Oracle (R) Enterprise Data Qualityオンライン・ヘルプ バージョン8.1
Copyright (C) 2006,2011 Oracle and/or its affiliates.All rights reserved.