tMatchGroupの標準プロパティ
これらのプロパティは、標準のジョブのフレームワークで実行されているtMatchGroupを設定するために使われます。
標準のtMatchGroupのコンポーネントは、データクオリティファミリーに属しています。
このフレームワーク内のコンポーネントは、Talend Data Management PlatformTalend Big Data Platform、Talend Real-Time Big Data PlatformTalend Data Services Platform、およびTalend Data Fabricで使用できます。
基本設定
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 ジョブで接続している先行コンポーネントからスキーマを取得するためには、[Sync columns] (カラムを同期)をクリックします。 このコンポーネントの出力スキーマには、以下の読み取り専用フィールドが含まれています:
|
|
[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。 |
|
[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。 |
[Matching Algorithm] (マッチングアルゴリズム) |
[Simple VSR]またはT-Swooshのような、コンポーネントで使用するアルゴリズムをリストから選択します。 |
|
インポートアイコンをクリックして、Talend Studioリポジトリーからマッチングルールをインポートします。 [Match Rule Selector] (マッチングルールセレクター)ウィザードで、コンポーネントの基本設定で、選択したマッチングアルゴリズムと同じアルゴリズムでマッチングルールをインポートします。それ以外の場合、ジョブはSimple VSRアルゴリズムとT-Swooshアルゴリズムの間で互換性のないパラメーターのデフォルト値で実行されます。 ルールをインポートする方法については、リポジトリーからマッチングルールをインポートをご覧ください。 |
[Key Definition] (キー定義) - [Input Key Attribute] (入力キー属性)カラム |
マッチングアルゴリズムを適用する入力フローからカラムを選択します。 情報メモ注: 日付カラムにアルゴリズムやマッチングアルゴリズムを適用すると、日付形式で比較する内容を決定できます。
たとえば、日付の年のみを比較する場合は、コンポーネントスキーマで日付カラムのタイプを[Date]に設定し、[Date Pattern] (日付パターン)フィールドにyyyyと入力します。コンポーネントでは、スキーマで定義されたパターンに基づき、日付形式を文字列に変換してから文字列比較が開始されます。 |
[Key Definition] (キー定義) - [Matching Function] (マッチングファンクション)カラム |
リストからマッチングアルゴリズムを選択します。各アルゴリズムの詳細は、マッチングアルゴリズムをご覧ください。 |
[Key Definition] (キー定義) - [Custom Matcher Class] (カスタムマッチャークラス)カラム |
マッチングタイプとして[Custom] (カスタム)を選択した場合は、使用するカスタムクラス(外部マッチングアルゴリズム)を指すパスを入力します。このパスはライブラリーファイル(.jarファイル)で定義されます。このファイルは[LibraryLoad]コンポーネントを使用してインポートできます。 たとえば、ユーザー定義のmydistance.jarライブラリーにあるorg/talend/mydistanceディレクトリーに保管されているMyDistance.classクラスを使用するには、org.talend.mydistance.MyDistanceといパスを入力します。 |
[Key Definition] (キー定義) - [Tokenized measure] (トークン化された測定)カラム |
トークン化とは文字列を単語に分割する概念です。選択したアルゴリズムのトークン化された測定を計算するために使用する方法を選択します。
|
[Key Definition] (キー定義) - [Threshold] (しきい値)カラム |
このカラムは、マッチングアルゴリズムとしてT-Swooshを選択すると表示されます。 確率が設定値以上になる場合、2件のデータレコードはマッチングしていると見なされます。 0と1の間のしきい値を設定するために使われます。小数点以下6桁まで入力できます。 0は、カラム内の値間の類似性が測定されないことを意味します。1は、カラムの比較された2つの値が完全にマッチングするように設定することを意味します。デフォルト値は1です。 |
[Key Definition] (キー定義) - [Confidence Weight] (信頼度の重み付け)カラム |
キー定義の各属性(カラム)の数値加重を設定するために使われます。 数値またはコンテキスト変数を入力できます。 0よりも大きい整数を指定してください。 |
[Key Definition] (キー定義) - [Handle Null] (Nullを処理)カラム |
null値を処理するには、カラムから使用するnull演算子をリストから選択します。 [Null Match Null] (NullがNullにマッチング): Null属性は、他のNull属性にのみマッチングします。 [Null Match None] (Nullのマッチングなし): Null属性は、他の属性とマッチングしません。 [Null Match ALL] (Nullがすべてにマッチング): Null属性は、他のすべての属性の値とマッチングします。 たとえばnameカラムとfirstnameカラムがあり、名前が決してNullにはならない場合も、最初の名前はNullになることがあります。 2つのレコードが次の場合: "Doe", "John" "Doe", "" 選択した演算子によって以下の2つのレコードがマッチングする場合とマッチングしない場合があります: [Null Match Null] (NullがNullにマッチング): マッチングしません。 [Null Match None] (Nullのマッチングなし): マッチングしません。 [Null Match All] (Nullがすべてにマッチング): マッチングします。 次のレコードの場合: "Doe", "" "Doe", "" [Null Match Null] (NullがNullにマッチング): マッチングします。 [Null Match None] (Nullのマッチングなし): マッチングしません。 [Null Match All] (Nullがすべてにマッチング): マッチングします。 |
[Key Definition] (キー定義) - [Survivorship Function] (サバイバーシップファンクション)カラム |
このカラムは、T-Swooshアルゴリズムが選択されている時に利用できます。 ドロップダウンリストから2つの類似するレコードをマージする方法を選択します。
|
[Key Definition] (キー定義) - [Reference column] (リファレンスカラム)カラム | [Survivor Function] (サバイバーファンクション)を[Most recent] (最新)または[Most ancient] (最古)に設定すると、このカラムは参照カラムの選択に使われます。 |
[Key Definition] (キー定義) - [Parameter] (パラメーター)カラム |
[Survivorship Function] (サバイバーシップファンクション)を[Most trusted source] (最も信頼できるソース)に設定すると、この項目はマスターレコードのベースとして使うデータソースの名前を設定するために使われます。 [Survivorship Function] (サバイバーシップファンクション)を[Concatenate] (連結)に設定すると、この項目はデータの連結に使う区切りを指定するために使われます。 |
[Match Threshold] (マッチングしきい値) |
マッチ率を入力します。確率が設定値以上になる場合、2件のデータレコードはマッチングしていると見なされます。 マッチングルールごとに異なるマッチングしきい値を入力できます。 |
[Survivorship Rules For Columns] (カラムのサバイバーシップルール) |
この設定は、T-Swooshアルゴリズムが選択されている時に利用できます。 [Input Column] (入力カラム): サバイバーシップファンクションを適用する入力フローからカラムを選択します。 Survivorship Function (サバイバーシップファンクション): ドロップダウンリストから2つの類似するレコードをマージする方法を選択します。 |
[Default Survivorship Rules] (デフォルトサバイバーシップルール) |
この設定は、T-Swooshアルゴリズムが選択されている時に利用できます。 [Input Column] (入力カラム): サバイバーシップファンクションを適用する入力フローからカラムを選択します。 Survivorship Function (サバイバーシップファンクション): ドロップダウンリストから2つの類似するレコードをマージする方法を選択します。 |
[Blocking Selection] (ブロッキング選択) |
必要に応じて、処理されたデータをブロックに分割する入力フローのカラムを選択します。これは通常「ブロッキング」と呼ばれます。 ブロッキングにより、検査する必要があるレコードのペアの数が減ります。ブロッキングでは、入力データがパーティションに分割され、比較するペアの数を減らすと共に、徹底的なマッチを行ってマッチ率を向上させます。比較は各ブロックのレコードペアに制限されます。 非常に大きなデータを処理する場合は、ブロッキングカラムを使用すると非常に便利です。 |
詳細設定
[Store on disk] (ディスクに保存) |
処理されたデータブロックをディスクに保存して、システムパフォーマンスを最大化する場合は、[Store on disk] (ディスクに保存)チェックボックスをオンにします。 [Max buffer size] (最大バッファーサイズ): 処理されたデータに割り当てる物理メモリのサイズを入力します。 [Temporary data directory path] (一時データのディレクトリーパス): 一時ファイルを保管する場所を設定するために使われます。 |
[Multiple output] (複数の出力) |
[Separate output] (出力の分離)チェックボックスをオンにすると、複数の出力フローが使えます。
情報メモ注:
[Simple VSR] (シンプルVSR)アルゴリズムを使う場合、グループクオリティはレコードで計算された最小距離です。 T-Swooshアルゴリズムを使う場合、グループのクオリティは、グループのすべてのレコードペア間で計算された最小距離です。 [Confident match threshold] (信頼できるマッチングしきい値):現在の[Match threshold] (マッチングしきい値)と1の間の数値を設定するために使われます。このしきい値により、グループのクオリティを信頼できます。 |
[Multi-pass] (マルチパス) |
このチェックボックスをオンにすると、tMatchGroupコンポーネントは、そのジョブの前の別のtMatchGroupからデータセットを受け取ることができます。これにより、さまざまなブロッキングキーに基づいてデータパーティションを作成し、各tMatchGroupコンポーネントによって受け取ったグループの絞り込みを行えます。 マルチパスマッチングでは、すべてのマスターレコードが生成されますが、中間マスターレコードは出力フローから削除されます。最後のマスターと元のレコードだけが最後に保管されます。 最初のtMatchGroupからの単一のマスターレコードが2番目のtMatchGroupが渡された後に1つのグループにマージされると、そのグループでの順序がジョブを実行するたびに変わることがあります。 ジョブの例は、複数のパスで顧客データをマッチングをご覧ください。 [Propagate original values] (元の値を伝播): このオプションは、T-Swooshアルゴリズムでのみ使用できます。このチェックボックスをオンにすると、パスした各回の元のレコード(不一致レコードに限定されない)が2回目のマッチングでも、お互いに対してと生き残ったマスターに対しての両方で考慮されます。これは、マッチングが見逃されないようにするのに役立ちます。 |
[Sort the output data by GID] (出力データをGIDでソート) |
このチェックボックスをオンにすると、出力データがグループIDでグルーピングされます。 出力は、グループ識別子によって降順の英数字でソートされます。 |
[Output distance details] (距離の詳細を出力) |
このチェックボックスをオンにすると、コンポーネントのスキーマに出力カラム[MATCHING_DISTANCES]が追加されます。このカラムには、各グループの入力レコードとマスタレコードの違いが示されます。 情報メモ重要: ジョブで2つのtMatchGroupコンポーネントを使用しており、一方のコンポーネントでこのオプションを選択した場合は、リンクさせる前に、両方のtMatchGroupコンポーネントでこのチェックボックスをオンにしておく必要があります。このチェックボックスをオンにする前にコンポーネントをリンクした場合は、ジョブフロー内の2番目のコンポーネントでこのチェックボックスをオンにして、続いて最初のコンポーネントで同チェックボックスをオンにします。この手順を守らないと、同じ名前の出力スキーマ内に2つのカラムがあるため、問題が発生するおそれがあります。片方のtMatchGroupコンポーネントだけでこのチェックボックスをオンにすると、スキーマの不一致の問題が発生するおそれがあります。
|
[Display detailed labels] (詳細ラベルの表示) |
このチェックボックスは、Output distance detailsが選択されている時に利用できます。 このチェックボックスをオンにすると、マッチ率だけでなく、適用されたルールのキー属性として使用するカラムの名前も、出力[MATCHING_DISTANCES]カラムに表示されます。 たとえば、lname (姓)とfname (名)フィールドでマッチングする場合、チェックボックスがオンの場合はfname:1.0|lname:0.97が出力され、オフの場合は1.0|0.97が出力されます。 |
ウィザードオープン時にマッチング計算を無効化 |
このチェックボックスをオンにすると[Configuration] (設定)ウィザードが開かれますが、ウィザードで定義されたマッチングルールは実行されません。 これにより、コンポーネントの操作体験を向上させることができます。そうしない場合、ウィザードの起動に時間がかかることがあります。 |
[tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスを選択すると、コンポーネントレベルでログデータを収集できます。 |
グローバル変数
グローバル変数 |
ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。 Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。 フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。 変数の詳細は、コンテキストと変数を使用をご覧ください。 |
使用方法
使用ルール |
このコンポーネントは、中間ステップです。入力フロート出力フローが必要になります。 |
マッチングアルゴリズム
このリストでは、[Matching Function] (マッチングファンクション)カラムの各マッチングアルゴリズムについて説明します:
- [Exact] (厳密): 処理された各エントリーを、まったく同じ値を持つ可能な全参照エントリーにマッチングさせます。2つの文字列が完全にマッチングした場合、1が返されますが、マッチングしない場合は0が返されます。
- [Exact - ignore case] (厳密 - 大文字と小文字を無視): 処理された各エントリーを、値の大文字と小文字を無視して、まったく同じ値を持つすべての参照可能なエントリーにマッチングさせます。
- Soundex: 処理されたエントリーを標準英語の音声アルゴリズムに従ってマッチングさせます。たとえば「Hello」、「H400」など、英語で発音されるように文字列の音声インデックスを作成します。漢字はサポートしていません。
- [Levenshtein] (編集距離): ある文字列を別の文字列に変換するために必要な編集(挿入、削除、置換)の最小回数を計算します。tMatchGroupコンポーネントでこのアルゴリズムを使用した場合、最大距離を指定する必要はありません。コンポーネントにより距離に基づいてマッチ率が自動的に計算されます。このマッチングスコアは、[Confidence Weight] (信頼度の重み付け)フィールドに割り当てたウェイトに基づいて、グローバルマッチング計算に使用されます。
- [Metaphone] (メタフォン): 発音によるエントリーの索引付けのための音声アルゴリズムに基づいています。ルックアップ参照のすべてのエントリーの発音をロードし、メインフローのすべてのエントリーを参照フローのエントリーに対してチェックします。 漢字はサポートしていません。
- [Double Metaphone] (二重メタフォン): 音声アルゴリズムの新しいバージョン。元のアルゴリズムよりも正確な結果をもたらすメタフォン。文字列のプライマリーコードとセカンダリーコードの両方を返すことができます。これはあいまいなケースや共通の系統を持つ姓の複数のバリエーションに対応しています。 漢字はサポートしていません。
- Soundex FR: 標準フランス語の音声アルゴリズムに従って処理されたエントリーにマッチングさせます。漢字はサポートしていません。
- Jaro: スペルの逸脱に従って処理されたエントリーにマッチングさせます。2つの文字列の間でマッチングする文字数を数えます。距離の値が高いほど文字列の類似性が高いことを表します。
- Jaro-Winkler: Jaroの亜種で、文字列の始まりを重視します。
- [Fingerprint key] (指紋キー): 次のシーケンシャルプロセスを実行した後、エントリーにマッチングさせます。
- 先頭と末尾の空白を削除します。
- すべての文字を小文字に変更します。 漢字はサポートしていません。
- すべての句読点と制御文字を削除します。
- 文字列を空白で区切られたトークンに分割します。
- トークンをソートして重複を削除します。
- トークンを再結合します。文字列部分がソートされるため、トークンの順序は関係ありません。したがって、Cruise, TomとTom Cruiseの両方が指紋cruise tomで終わるので、同じクラスターで終わります。
- 拡張西洋文字をASCII表現に正規化します(たとえば、gödelからgodelへ)。これは、ASCII のみのキーボードで拡張文字を入力する時のデータ入力ミスを再現します。ただし、この手順は間違った結果につながる可能性もあります。たとえば、gödelとgodélの両方が指紋としてgodelとなりますが、別の名前になる可能性があります。したがって、拡張文字が大幅な差別化の役割を果たすデータセットでは、これはあまり効果的ではありません。
- q-grams: 文字列を長さqの文字ブロックに分割して処理されたエントリーにマッチし、q 長さグラムの数を作成できるようにします。マッチング結果は、q-gramマッチに対して取り得るq-gramの数となります。
- [Hamming]: 文字列を同じ長さの別の文字列に変換するために必要な置換の最小数を計算します。たとえば、「masking」と「pairing」との間のハミング距離は3です。
- custom...: custom Matcherカラムを使い、Javaライブラリーから外部マッチングアルゴリズムをロードできます。
外部Javaライブラリーをロードする方法は、tLibraryLoadをご覧ください。
カスタムマッチングアルゴリズムを作成する方法は、カスタムマッチングアルゴリズムの作成をご覧ください。
カスタムマッチングアルゴリズムの使用方法に関する関連シナリオについては、カスタム一致アルゴリズムを使用したエントリーのマッチングをご覧ください。