Best of Breed レコードの作成
データから重複レコードを除去するには、重複レコードのグループのデータを 1 つの "Best of Breed" レコードに結合できます。各重複レコードに同じタイプのデータ (電話番号や名前など) が含まれていて、各レコードの最善のデータを残されるレコードで維持したい場合、この方法が有効です。
この手順では、重複レコードを Best of Breed レコードに結合するデータフローを作成する方法について説明します。
-
Enterprise Designer で、マッチングによって重複レコードを特定するデータフローを作成します。
類似性のあるレコード (同じアカウント番号または名前を含むレコードなど) を特定する必要があるので、重複除外の最初のステップはマッチングです。レコードのマッチングを行うデータフローの作成方法については、以下のトピックを参照してください。
注: 作成する必要があるデータフローは、データを読み込み、Interflow Match、Intraflow Match、または Transactional Match ステージでマッチングを実行するところまでだけです。ここまでのデータフローを作成したら、引き続き以下の手順を実行します。 -
データを読み込んでレコードのマッチングを行うデータフローを定義した後、Best of Breed ステージをキャンバスにドラッグし、マッチングを実行するステージ (Interflow Match、Intraflow Match、または Transactional Match) に接続します。
例えば、ファイルからデータを読み込み、Intraflow Match でマッチングを実行するデータフローの場合は、Best of Breed ステージを追加した後は次のようになります。
- キャンバスで Best of Breed ステージをダブルクリックします。
- [グループ化] フィールドで、[コレクション番号] を選択します。
- [Best of Breed 設定] の条件ツリーで [ルール] を選択します。
-
[ルールの追加] をクリックします。
各グループのレコードが評価されて、ここで定義したルールを満たすかどうかが確認されます。レコードがルールと一致する場合、ルールと関連付けられているアクションの構成方法により、データを Best of Breed レコードにコピーできます。アクションは後で定義します。
-
重複レコードのデータが Best of Breed レコードにコピーされるために重複レコードが満たす必要のあるルールを定義します。
以下のオプションを使用してルールを定義します。
オプション 説明 フィールド名
条件を満たし、関連付けられているアクションを実行する必要があるかどうかを判断するために値を評価するデータフロー フィールドの名前を指定します。
フィールド タイプ
フィールドのデータのタイプを指定します。次のいずれかです。
- 数値以外
- フィールドに数値以外のデータ (文字列データなど) が含まれる場合は、このオプションを選択します。
- Numeric
- フィールドに数値データ (double、float など) が含まれる場合は、このオプションを選択します。
演算子
フィールドの評価で使用する比較のタイプを指定します。次のいずれかです。
- が次の値を含む
- フィールドが指定された値を含むかどうかを確認します。例えば、"sailboat" には値 "boat" が含まれます。
- 等しい
- フィールドが指定された値に正確に一致するかどうかを確認します。
- 次の値より大きい
- フィールド値が指定された値よりも大きいかどうかを確認します。この演算子は、数値のフィールドにのみ有効です。
- 以上
- フィールド値が指定された値に一致するか、またはそれよりも大きいかどうかを確認します。この演算子は、数値のフィールドにのみ有効です。
- 最高
- フィールドの値をグループ内のすべてのレコードについてチェックし、最も大きな値が格納されているレコードを特定します。例えば、グループ内でフィールドに値 10、20、30、および 100 が格納されている場合、フィールド値が 100 のレコードが選択されます。この演算子は、数値のフィールドにのみ有効です。最低値が複数のレコードにある場合は、1 つのレコードが選択されます。
- 空
- フィールドに値がないことを確認します。
- 空でない
- フィールドに値が含まれているかどうかを確認します。
- 次の値より小さい
- フィールド値が指定された値よりも小さいかどうかを確認します。この演算子は、数値のフィールドにのみ有効です。
- 以下
- フィールド値が指定された値以下であるかどうかを確認します。この演算子は、数値のフィールドにのみ有効です。
- 最長
- グループ内のすべてのレコードのフィールドの値を比較し、フィールドに (バイト数が) 最長の値が格納されているレコードを特定します。例えば、グループ内に、"Mike" という値と "Michael" という値が含まれる場合、"Michael" という値が格納されているレコードが選択されます。最低値が複数のレコードにある場合は、1 つのレコードが選択されます。
- 最低
- グループ内のすべてのレコードのフィールドの値を比較し、フィールドに最も小さい値が格納されているレコードを特定します。例えば、グループ内でフィールドに値 10、20、30、および 100 が格納されている場合、フィールド値が 10 のレコードが選択されます。この演算子は、数値のフィールドにのみ有効です。最低値が複数のレコードにある場合は、1 つのレコードが選択されます。
- 最多
- フィールド値が、グループ内のレコードのこのフィールドにおいて最も多く出現する値であるかどうかを確認します。最多の値が複数存在する場合、アクションは実行されません。
- が等しくない
- フィールド値が指定された値に一致しないことを確認します。
値タイプ
フィールドの値と比較する値のタイプを指定します。次のいずれかです。
注: このオプションは、演算子として [最高]、[最低]、または [最長] を選択している場合は使用できません。- フィールド
- フィールドを別のデータフロー フィールドの値と比較する場合は、このオプションを選択します。
- 文字列
- フィールドを特定の値と比較する場合は、このオプションを選択します。
値 フィールドの値と比較する値を指定します。[フィールド タイプ] フィールドで [フィールド] を選択した場合は、データフロー フィールドを選択します。[値タイプ] フィールドで [文字列] を選択した場合は、比較で使用する値を入力します。
注: このオプションは、演算子として [最高]、[最低]、または [最長] を選択している場合は使用できません。 - [OK] をクリックします。
- ツリーの [アクション] ノードをクリックします。
- [アクションの追加] をクリックします。
-
レコードがルールで定義されている条件を満たす場合に Best of Breed レコードにコピーするデータを指定します。
オプション 説明 ソース タイプ
Best of Breed レコードにコピーするデータのタイプを指定します。次のいずれかを選択します。
- フィールド
- Best of Breed レコードにフィールドの値をコピーする場合は、このオプションを選択します。
- 文字列
- Best of Breed レコードに定数値をコピーする場合は、このオプションを選択します。
ソース データ
Best of Breed レコードにコピーするデータを指定します。[ソース タイプ] が [フィールド] の場合は、デスティネーション フィールドに値をコピーするフィールドを選択します。[ソース タイプ] が [文字列] の場合は、デスティネーション フィールドにコピーする定数値を指定します。
デスティネーション
[ソース データ] フィールドで指定したデータのコピー先となる、Best of Breed レコード内のフィールドを指定します。
ソース データを蓄積
[ソース データ] フィールドのデータが数値の場合は、このオプションを有効にしてすべての重複レコードのソース データを集約し、その合計値を Best of Breed レコードにコピーできます。
例えば、グループ内に 3 つの重複レコードがあり、Deposits フィールドに以下の値が含まれていたとします。
100.00
20.00
5.00この場合、3 つすべての値が集約されて 125.00 になり、その合計値が Best of Breed レコードの Deposits フィールドにコピーされます。
-
[OK] をクリックします。
1 つのルールと 1 つのアクションを含む Best of Breed を構成しました。必要に応じて、さらにルールとアクションを追加できます。
- [OK] をクリックして [Best of Breed オプション] ウィンドを閉じます。
-
シンク ステージをキャンバスにドラッグし、Best of Breed ステージに接続します。
例えば、Write to File シンク ステージを使用した場合、データフローは次のようになります。
-
シンク ステージをダブルクリックして設定します。
シンク ステージの設定方法については、『データフロー デザイナー ガイド』を参照してください。
一致するレコードを特定し、コレクション内のレコードを単一の Best of Breed レコードに結合するデータフローができました。