tMatchGroupの標準プロパティ - Cloud - 8.0

Talendツールを使ってデータマッチング

Version
Cloud
8.0
Language
日本語
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > データクオリティコンポーネント > マッチング > データマッチングコンポーネント
ジョブデザインと開発 > サードパーティーシステム > データクオリティコンポーネント > マッチング > ファジーマッチコンポーネント
ジョブデザインと開発 > サードパーティーシステム > データクオリティコンポーネント > マッチング > マッチングおよび機械学習コンポーネント
ジョブデザインと開発 > サードパーティーシステム > データクオリティコンポーネント > マッチング > 継続的マッチングコンポーネント
データガバナンス > サードパーティーシステム > データクオリティコンポーネント > マッチング > データマッチングコンポーネント
データガバナンス > サードパーティーシステム > データクオリティコンポーネント > マッチング > ファジーマッチコンポーネント
データガバナンス > サードパーティーシステム > データクオリティコンポーネント > マッチング > マッチングおよび機械学習コンポーネント
データガバナンス > サードパーティーシステム > データクオリティコンポーネント > マッチング > 継続的マッチングコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > データクオリティコンポーネント > マッチング > データマッチングコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > データクオリティコンポーネント > マッチング > ファジーマッチコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > データクオリティコンポーネント > マッチング > マッチングおよび機械学習コンポーネント
データクオリティとプレパレーション > サードパーティーシステム > データクオリティコンポーネント > マッチング > 継続的マッチングコンポーネント
Last publication date
2024-02-06

これらのプロパティは、標準のジョブのフレームワークで実行されているtMatchGroupを設定するために使われます。

標準tMatchGroupのコンポーネントは、データクオリティファミリーに属しています。

このフレームワーク内のコンポーネントは、Talend Data Management PlatformTalend Big Data PlatformTalend Real-Time Big Data PlatformTalend Data Services Platform、およびTalend Data Fabricで使用できます。

基本設定

[Schema] (スキーマ)および[Edit schema] (スキーマを編集)

スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。

ジョブで接続している先行コンポーネントからスキーマを取得するためには、[Sync columns] (カラムを同期)をクリックします。

このコンポーネントの出力スキーマには、以下の読み取り専用フィールドが含まれています:

- GID: データ型[String] (文字列)のグループ識別コードを提供します。
注: 前のリリースから現在のTalend Studioに移行されたジョブでは、グループ識別子がLongデータ型である場合があります。グループ識別子をStringデータ型にするには、移行したジョブ内のtMatchGroupコンポーネントを[Palette] (パレット)からtMatchGroupコンポーネントへ置換します。

- [GRP_SIZE]: グループのレコード数をカウントします。マスターレコードでのみ計算されます。

MASTER: マッチング比較で使用されるレコードがマスターレコードかどうか、trueまたはfalseで識別されます。マスターレコードは各グループに1つのみです。

入力レコードはそれぞれマスターレコードと比較され、マッチングした入力レコードはグループに含められます。

[SCORE]: 使用されるマッチングアルゴリズムに基づいて、入力レコードとマスターレコードの違いが測定されます。

tMatchGroupコンポーネントで複数の出力フローを使用している場合、このカラムのスコアにより、レコードが送られる出力グループが決定されます。

- GRP_QUALITY[Matching Algorithm] (マッチングアルゴリズム)に依存します。
  • [Simple VSR] (シンプルVSR): GRP_QUALITYは、最小マッチ値の指定により、グループの類似性の品質を保ちます。品質スコアが存在するのはマスターレコードだけです。
  • T-Swoosh: GRP_QUALITYは、最小マッチ値の指定により、グループのすべてのレコードペアでグループの類似性の品質を保ちます。品質スコアが存在するのはマスターレコードだけです。
- MERGED_RECORD: この出力カラムは次の場合にのみ使用できます。
  • ジョブに複数のtMatchGroupコンポーネントがある場合、および
  • T-Swooshアルゴリズムが選択されている場合

レコードが初回のパスのマスターレコードか、マスターレコードでない場合は、それぞれカラムにtrueまたはfalseが表示されます。

 

[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。

 

[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。

[Matching Algorithm] (マッチングアルゴリズム)

[Simple VSR]またはT-Swooshのような、コンポーネントで使用するアルゴリズムをリストから選択します。

インポートアイコンをクリックして、Talend Studioリポジトリーからマッチングルールをインポートします。

[Match Rule Selector] (マッチングルールセレクター)ウィザードで、コンポーネントの基本設定で、選択したマッチングアルゴリズムと同じアルゴリズムでマッチングルールをインポートします。それ以外の場合、ジョブはSimple VSRアルゴリズムとT-Swooshアルゴリズムの間で互換性のないパラメーターのデフォルト値で実行されます。

ルールをインポートする方法の詳細は、マッチングルールをTalend Studioリポジトリーからインポートをご覧ください。

[Key Definition] (キー定義)

[Input Key Attribute] (入力キーの属性)

マッチングアルゴリズムを適用する入力フローからカラムを選択します。

注: 日付カラムにアルゴリズムやマッチングアルゴリズムを適用すると、日付形式で比較する内容を決定できます。

たとえば、日付の年のみを比較する場合は、コンポーネントスキーマで日付カラムのタイプを[Date]に設定し、[Date Pattern] (日付パターン)フィールドにyyyyと入力します。コンポーネントでは、スキーマで定義されたパターンに基づき、日付形式を文字列に変換してから文字列比較が開始されます。

 

[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] (指紋キー): 次のシーケンシャルプロセスを実行した後、エントリーにマッチングします。
  1. 先頭と末尾の空白を削除します。
  2. すべての文字を小文字に変更します。 漢字はサポートしていません。
  3. すべての句読点と制御文字を削除します。
  4. 文字列を空白で区切られたトークンに分割します。
  5. トークンをソートして重複を削除します。
  6. トークンを再結合します。文字列部分がソートされるため、トークンの順序は関係ありません。したがって、Cruise, TomTom Cruiseの両方が指紋cruise tomで終わるので、同じクラスターで終わります。
  7. 拡張西洋文字をASCII表現に正規化します(たとえば、gödelからgodelへ)。これは、ASCII のみのキーボードで拡張文字を入力する時のデータ入力ミスを再現します。ただし、この手順は間違った結果につながる可能性もあります。たとえば、gödelgodélの両方が指紋としてgodelとなりますが、別の名前になる可能性があります。したがって、拡張文字が大幅な差別化の役割を果たすデータセットでは、これはあまり効果的ではありません。

q-grams: 文字列を長さqの文字ブロックに分割して処理されたエントリーにマッチし、q 長さグラムの数を作成できるようにします。マッチング結果は、q-gramマッチに対して取り得るq-gramの数となります。

[Hamming]: 文字列を同じ長さの別の文字列に変換するのに必要な置換の最小数を計算します。たとえば、「masking」と「pairing」との間のハミング距離は3です。

[custom...]: [custom Matcher]カラムを使用してJavaライブラリーから外部マッチングアルゴリズムをロードできます。

外部Javaライブラリーをロードする方法の詳細は、tLibraryLoadをご覧ください。

カスタムマッチングアルゴリズムを作成する方法の詳細は、カスタムマッチングアルゴリズムの作成をご覧ください。

カスタムマッチングアルゴリズムの使用方法に関する関連シナリオについては、カスタムマッチングアルゴリズムを使用したエントリーのマッチングをご覧ください。

[Custom Matcher] (カスタムマッチャー)

マッチングタイプとして[Custom] (カスタム)を選択した場合は、使用するカスタムクラス(外部マッチングアルゴリズム)を指すパスを入力します。このパスはライブラリーファイル(.jarファイル)で定義されます。このファイルは[LibraryLoad]コンポーネントを使用してインポートできます。

たとえば、ユーザー定義のmydistance.jarライブラリーにあるorg/talend/mydistanceディレクトリーに保管されているMyDistance.classクラスを使用するには、org.talend.mydistance.MyDistanceといパスを入力します。

 

[Tokenized measure] (トークン化された測定)

トークン化とは文字列を単語に分割する概念です。選択したアルゴリズムのトークン化された測定を計算するために使用する方法を選択します。

[NO] (なし): 文字列にトークン化メソッドは使用されません。このオプションでは、「John Doe」と「Jon Doe」がマッチングします。

[Same place] (同じ場所): 2つの文字列を単語で2つのリストlist1とlist2に分割します。list1の各エレメントをlist2の同じ場所にあるエレメントに関連付けます。このメソッドを使用すると、"She is red and he is pink"と"Catherine is red and he is pink"はマッチングします。

[Same order] (同じ順序): 2つの文字列を単語で2つのリストlist1とlist2に分割し、list1がlist2よりも短いと想定します。list1のエレメントをlist2のエレメントと同じ順序で関連付けてみます。このメソッドを使用すると、「John Doe」と「John B. Doe」がマッチングします。

このメソッドは、数語の文字列でのみ使用する必要があります。そうしないと組み合わせの数が非常に大きくなります。

[Any order] (任意の順序): 2つの文字列を単語で2つのリストlist1とlist2に分割し、list1がlist2よりも短いと想定します。使用された類似性に関して最高のグローバル類似度になるようlist1の各単語のlist2の単語への割り当てを試行します。

このメソッドを使用すると、「John Doe」と「Doe John」がマッチングします。

 

[Threshold] (しきい値)

このカラムは、マッチングアルゴリズムとしてT-Swooshを選択すると表示されます。

確率が設定値以上になる場合、2件のデータレコードはマッチングしていると見なされます。

01の間のしきい値を設定するために使われます。小数点以下6桁まで入力できます。

0は、カラム内の値間の類似性が測定されないことを意味します。1は、カラムの比較された2つの値が完全にマッチングするように設定することを意味します。デフォルト値は1です。

 

[Confidence Weight] (信頼度の重み付け)

キー定義の各属性(カラム)の数値加重を設定するために使われます。

数値またはコンテキスト変数を入力できます。

0よりも大きい整数を指定してください。

[Handle null] (Nullの処理)

null値を処理するには、カラムから使用するnull演算子をリストから選択します。

[Null Match Null] (NullがNullにマッチング): Null属性は、他のNull属性にのみマッチングします。

[Null Match None] (Nullはマッチしない)は、次のことを意味します。Null属性は、他の属性とマッチングしません。

[Null Match All] (Nullがすべてにマッチング): Null属性は、他のすべての属性の値とマッチングします。

たとえば、[name][firstname]の2つのカラムがあり、nameが決してNullにはならない場合でも最初の[name]は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がすべてにマッチング): マッチングします。

 

[Survivorship Function] (サバイバーシップ関数): 類似した2つのレコードをドロップダウンリストからどのようにマージするかを選択します。T-Swooshアルゴリズムが選択されている場合のみ使用できます。

  • [Concatenate] (連結): このファンクションは、最初のレコードの内容と2番目のレコードの内容を合わせて追加します。たとえば、BillとWilliamは結合されてBillWilliamとなります。[Parameter] (パラメーター)フィールドで、値の区切りに使用する区切りを指定できます。
  • [Prefer True (for booleans)] (真を優先:ブール値): ソースレコードのすべてのブール値がFalseの場合を除き、マージされたレコードのブール値は常にTrueに設定されます。
  • [Prefer False (for booleans)] (偽を優先: ブール値): ソースレコードのすべてのブール値がTrueの場合を除き、マージされたレコードのブール値は常にFalseに設定されます。
  • [Most common] (最も一般的): この関数は、重複レコードの各グループで最も頻繁に発生するフィールド値を有効にします。
  • [Most recent] (最新): この関数は、重複レコードの各グループの最新の日付値を検証します。スキーマで複数の日付タイプが定義されている場合は、[Reference column] (参照カラム)でカラムを選択します 。スキーマで日付タイプが定義されていない場合、データは最新の読み取り順にソートされます。
  • [Most ancient] (最古): この関数は、重複レコードの各グループの最も古い日付値を検証します。スキーマで複数の日付タイプが定義されている場合は、[Reference column] (参照カラム)でカラムを選択します 。スキーマで日付タイプが定義されていない場合、データは最古の読み取り順にソートされます。
  • [Longest (for strings)] (最長: 文字列): この関数は、重複レコードの各グループの最長フィールド値を有効にします。
  • [Shortest (for strings)] (最短: 文字列): この関数は、重複レコードの各グループの最短フィールド値を有効にします。
  • [Largest (for numbers)] (最大: 数値): この関数は、重複レコードの各グループの中で最大の数値を有効にします。
  • [Smallest (for numbers)] (最小: 数値): この関数は、重複レコードの各グループの中で最小の数値を有効にします。
  • [Most trusted source] (最も信頼されるソース): 最も信頼性が高いと定義されているソースから取得されたデータを採用します。最も信頼できるデータソースは、[Parameter] (パラメーター)フィールドで設定されます。この機能は、Talend MDMでの統合マッチングのコンテキストでのみ使用されます。
  [Reference column] (参照カラム)

[Survivor Function] (サバイバー関数)[Most recent] (最新)または[Most ancient] (最古)に設定すると、このカラムは参照カラムの選択に使われます。

  パラメーター

[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アルゴリズムが選択されている場合のみ使用可能)

[Data Type] (データ型): サバイバーシップ関数を適用する入力フローからデータ型を選択します。

Survivorship Function (サバイバーシップ関数): ドロップダウンリストから2つの類似するレコードをマージする方法を選択します。

[Blocking Selection] (ブロッキング選択)

[Input Column] (入力カラム)

必要に応じて、処理されたデータをブロックに分割する入力フローのカラムを選択します。これは通常「ブロッキング」と呼ばれます。

ブロッキングにより、検査する必要があるレコードのペアの数が減ります。ブロッキングでは、入力データがパーティションに分割され、比較するペアの数を減らすと共に、徹底的なマッチを行ってマッチ率を向上させます。比較は各ブロックのレコードペアに制限されます。

非常に大きなデータを処理する場合、ブロッキングカラムを使用すると非常に便利です。

詳細設定

[Store on disk] (ディスクに保存)

処理されたデータブロックをディスクに保存して、システムパフォーマンスを最大化する場合は、[Store on disk] (ディスクに保存)チェックボックスをオンにします。

[Max buffer size] (最大バッファーサイズ): 処理されたデータに割り当てる物理メモリのサイズを入力します。

[Temporary data directory path] (一時データのディレクトリーパス): 一時ファイルを保管する場所を設定するために使われます。

[Multiple output] (複数の出力)

[Separate output] (出力の分離)チェックボックスをオンにすると、複数の出力フローが使えます。
  • [Uniques] (一意): グループサイズ(レコードで計算された最小距離)が1に等しい場合、レコードはこのフローにリスト表示されます。

    レコードが一意でない場合は、次のようになります。

  • [Matches] (マッチング): グループの品質が[Confident match threshold] (信頼できるマッチングしきい値)フィールドで定義したしきい値と同等かそれ以上の場合、レコードはこのフローにリスト表示されます。
  • [Suspects] (サスペクト): グループの品質が[Confident match threshold] (信頼できるマッチングしきい値)フィールドで定義したしきい値を下回る場合、レコードはこのフローにリスト表示されます。
注:

[Simple VSR] (シンプルVSR)アルゴリズムを使う場合、グループ品質はレコードで計算された最小距離です。

T-Swooshアルゴリズムを使う場合、グループの品質は、グループのすべてのレコードペア間で計算された最小距離です。

[Confident match threshold] (信頼できるマッチングしきい値):現在の[Match threshold] (マッチングしきい値)1の間の数値を設定するために使われます。このしきい値により、グループの品質を信頼できます。

[Multi-pass] (マルチパス)

このチェックボックスをオンにすると、tMatchGroupコンポーネントは、そのジョブの前の別のtMatchGroupからデータセットを受け取ることができます。これにより、さまざまなブロッキングキーに基づいてデータパーティションを作成し、各tMatchGroupコンポーネントによって受け取ったグループの絞り込みを行えます。

注: ジョブとこのオプションで2つのtMatchGroupコンポーネントを使う場合は、リンクする前に、両方のtMatchGroupコンポーネントでこのチェックボックスをオンにしておく必要があります。このチェックボックスをオンにする前にコンポーネントをリンクした場合は、ジョブフロー内の2番目のコンポーネントでこのチェックボックスをオンにして、続いて最初のコンポーネントで同チェックボックスをオンにします。この手順を守らないと、同じ名前の出力スキーマ内に2つのカラムがあるため、問題が発生するおそれがあります。片方の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] (詳細ラベルの表示)

このチェックボックスをオンにすると、マッチ率だけでなく、適用されたルールのキー属性として使用するカラムの名前も、出力[MATCHING_DISTANCES]カラムに表示されます。

たとえば、lname (姓)とfname (名)フィールドでマッチングする場合、チェックボックスがオンの場合はfname:1.0|lname:0.97が出力され、オフの場合は1.0|0.97が出力されます。

ウィザードオープン時のマッチング計算の無効化

このチェックボックスをオンにすると、設定ウィザードが開かれますが、ウィザードで定義されたマッチングルールは実行されません。

これにより、コンポーネントの操作体験を向上させることができます。そうしない場合、ウィザードの起動に時間がかかることがあります。

[tStatCatcher Statistics] (tStatCatcher統計)

このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。このチェックボックスは、コンポーネントのMap/Reduceバージョンでは使用できません。

グローバル変数

グローバル変数

ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。

Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。

フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。

変数の詳細は、コンテキストと変数を使用をご覧ください。

使用方法

使用ルール

このコンポーネントは中間ステップです。入力フロート出力フローが必要になります。