# tRecordMatching

参照データソースとの照合によりあらゆるソースデータのデータクオリティを保証します。

tRecordMatchingは、さまざまな比較アルゴリズムを使用して複数のカラムに対してファジーマッチを行うことで、2つのテーブルを結合します。このコンポーネントは、メインフローからのカラムをルックアップフローからの参照カラムと比較し、定義するマッチングストラテジーに従い、マッチングデータ、マッチングデータの候補、およびリジェクトデータを出力します。マッチングストラテジーを調整する際に、ユーザー定義の一致スコアは、目的とするデータの一致レベルを決める上で極めて重要です。

デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。機能マネージャーを使ってインストールする必要があります。 詳細は、[機能マネージャーを使って機能をインストール](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/install-features-to-talend-studio)をご覧ください。

## tRecordMatchingの標準プロパティ

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

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

このコンポーネントは、Talend Data Management Platform、Talend Big Data Platform、Talend Real-Time Big Data Platform、Talend Data Services Platform、Talend Data Fabricで利用できます。

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Schema] (スキーマ)と[Edit schema] (スキーマを編集) | <ul> <li> <p>スキーマとは行の説明で、処理された後に次のコンポーネントに渡されるフィールドの数を定義するものです。スキーマは<span>[Built-in] (組み込み)</span>か、<span>[Repository] (リポジトリー)</span>にリモートで保存されます。</p> </li> <li> <p> <span>[Built-in] (組み込み)</span>: そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。<span>[Basic settings] (基本設定)</span>タブにあるコンポーネントスキーマの詳細は、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/basic-settings-tab" target="_blank">[Basic settings] (基本設定)</a>をご覧ください。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: スキーマは作成済みで、リポジトリーに保存されています。他のプロジェクトやジョブデザインで再利用できます。<span>[Basic settings] (基本設定)</span>タブにあるコンポーネントスキーマの詳細は、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/basic-settings-tab" target="_blank">[Basic settings] (基本設定)</a>をご覧ください。</p> </li> </ul> |
| [Replace output column with lookup column if matches or possible matches] (マッチング、または可能性があるマッチングの場合は、出力カラムをルックアップカラムに置き換えます) | 値がマッチング、または可能性があるマッチングの場合に出力カラムをルックアップカラムに置換するには、このチェックボックスをオンにします。<br><br>このチェックボックスをオンにすると、[Columns Mapping] (カラムのマッピング)テーブルが表示されます。 |
| [Columns Mapping] (カラムのマッピング) | <ul> <li> <p>置換する出力カラムと対応する代替ルックアップカラムを定義するには、このテーブルに入力します。入力するカラムは次のとおりです。</p> <p><span>[Output Column] (出力カラム)</span>: 目的のカラムをドロップダウンリストから選択します。このリストでは、<em>MATCHING_WEIGHT</em>および<em>MATCHING_DISTANCES</em>という2つのカラムがデフォルトで定義されています。その他のカラムは、このコンポーネントのスキーマエディターで定義した場合にのみ使用できます。これら2つのデフォルトのカラムの詳細は、<a href="https://help.qlik.com/talend/ja-JP/data-matching/8.0/matching-entries-using-q-grams-and-levenshtein" target="_blank">Q-gramとLevenshteinアルゴリズムを使用したエントリーのマッチング</a>をご覧ください。</p> <p><span>[Lookup Column] (ルックアップカラム)</span>: 目的のカラムをドロップダウンリストから選択します。このリストは、このコンポーネントに対応するルックアップカラムを提供するようにルックアップリンクが定義されている場合に使用できます。</p> </li> <li> <p>インポートアイコンをクリックして、<span>Talend Studio</span>レポジトリからマッチングルールを選択します。</p> <p>インポートアイコンをクリックすると<span>[Match Rule Selector] (マッチングルールセレクター)</span>ウィザードが開き、<span>Talend Studio</span>のリポジトリーからマッチングルールをインポートして、ジョブに使用できます。</p> <p>VSRアルゴリズムで作成されたルールをインポートできます。T-Swooshアルゴリズムはこのコンポーネントでは使用できません。VARルールのインポートについては、<a href="https://help.qlik.com/talend/en-US/data-matching/8.0/importing-match-rules-from-studio-repository" target="_blank">リポジトリーからマッチングルールをインポート</a>をご覧ください。                         </p> </li> </ul> |
| [Input Key Attribute] (入力キー属性) | 参照(ルックアップ)キーカラムを基にチェックする必要のあるメインフローからカラムを選択します。<br><br>情報メモ注: 日付カラムにアルゴリズムやマッチングアルゴリズムを適用すると、日付形式で比較する内容を決定できます。<br><br>たとえば、日付の年のみを比較する場合は、コンポーネントスキーマで日付カラムのタイプを[Date]に設定し、[Date Pattern] (日付パターン)フィールドに*yyyy*と入力します。コンポーネントでは、スキーマで定義されたパターンに基づき、日付形式を文字列に変換してから文字列比較が開始されます。 |
| [Lookup Key Attribute] (ルックアップキー属性) | 入力フローからのカラムを比較する参照元として使用するルックアップキーカラムを選択します。 |
| [Matching Function] (マッチングファンクション) | 関連する一致アルゴリズムをリストから選択します。<br><br>[Exact Match] (完全マッチング): 処理された各エントリーを、まったく同じ値を持つすべての可能な参照エントリーにマッチングさせます。<br><br>Levenshtein: 編集距離理論に基づきます。参照エントリーとマッチングするエントリーに必要な挿入、削除、置換の回数を計算します。<br><br>[Metaphone]: 発音でエントリーをインデックス設定する音声アルゴリズムに基づきます。ルックアップ参照のすべてのエントリーの発音をロードし、メインフローのすべてのエントリーを参照フローのエントリーに対してチェックします。<br><br>[Double Metaphone] (二重メタフォン): 音声アルゴリズムの新しいバージョン。元のアルゴリズムよりも正確な結果をもたらすメタフォン。文字列のプライマリーコードとセカンダリーコードの両方を返すことができます。これはあいまいなケースや共通の系統を持つ姓の複数のバリエーションに対応しています。<br><br>[Exact - ignore case] (厳密 - 大文字と小文字を無視): 処理された各エントリーを、値の大文字小文字を無視して、まったく同じ値を持つすべての参照可能なエントリーにマッチングします。<br><br>[Soundex]: 処理されたエントリーを標準英語の音声アルゴリズムに従ってマッチングします。<br><br>[Soundex FR]: 標準フランス語の音声アルゴリズムに従って処理されたエントリーにマッチングさせます。<br><br>[Jaro]: スペルの逸脱に従って処理されたエントリーにマッチングさせます。<br><br>q-grams: q 長さグラムの数を作成するために文字列を長さqの文字ブロックに分割して処理されたエントリーにマッチします。マッチング結果は、q-gramマッチに対して取り得るq-gramの数となります。<br><br>[Hamming]: 文字列を同じ長さの別の文字列に変換するのに必要な置換の最小数を計算します。たとえば、「masking」と「pairing」との間のハミング距離は3です。<br><br>[custom...] (カスタム...): Javaライブラリーから外部マッチングアルゴリズムをロードできます。このオプションを選択すると、[Custom Matcher] (カスタムマッチャー)カラムも有効になります。<br><br>外部Javaライブラリーをロードする方法は、[tLibraryLoad](https://help.qlik.com/talend/ja-JP/components/8.0/library-import/tlibraryload)をご覧ください。 |
| [Custom Matcher] (カスタムマッチャー) | <ul> <li> <p>使用するカスタムクラス(外部マッチングアルゴリズム)を指すパスを入力します。このパスは、<span>tLibraryLoad</span>コンポーネントを使用してインポートできるライブラリーファイル(<em>.jar</em>ファイル)で定義します。</p> <p>詳細は、<a href="https://help.qlik.com/talend/en-US/data-matching/8.0/creating-custom-matching-algorithm" target="_blank">カスタムマッチングアルゴリズムの作成</a>をご覧ください。</p> </li> <li> <p> <span>[Tokenized measure] (トークン化された測定)</span> </p> <p>トークン化とは文字列を単語に分割する概念です。選択したアルゴリズムのトークン化された測定を計算するために使用する方法を選択します。</p> <p> <span>[NO] (なし)</span>: 文字列にトークン化メソッドは使用されません。このオプションでは、「John Doe」と「Jon Doe」がマッチングします。</p> <p> <span>[Same place] (同じ場所)</span>: 2つの文字列を単語で2つのリストlist1とlist2に分割します。list1の各エレメントをlist2の同じ場所にあるエレメントに関連付けます。このメソッドを使用すると、"She is red and he is pink"と"Catherine is red and he is pink"はマッチングします。</p> <p> <span>[Same order] (同じ順序)</span>: 2つの文字列を単語で2つのリストlist1とlist2に分割し、list1がlist2よりも短いと想定します。list1のエレメントをlist2のエレメントと同じ順序で関連付けてみます。このメソッドを使用すると、「John Doe」と「John B. Doe」が一致します。</p> <p>このメソッドは、数語の文字列でのみ使用する必要があります。そうしないと組み合わせの数が非常に大きくなります。</p> <p> <span>[Any order] (任意の順序)</span>: 2つの文字列を単語で2つのリストlist1とlist2に分割し、list1がlist2よりも短いと想定します。使用された類似性に関して最高のグローバル類似度になるようlist1の各単語のlist2の単語への割り当てを試行します。</p> <p>このメソッドを使用すると、「John Doe」と「Doe John」が一致します。</p> </li> </ul> |
| [Weight] (加重) | キー定義の各属性(カラム)の数値加重を設定します。0以上(&gt; = 0)の任意の値にできます。 |
| [Handle null] (Nullを処理) | [Handle Null] (Nullを処理)<br><br>null値を処理するには、カラムから使用するnull演算子をリストから選択します。<br><br>[Null Match Null] (NullがNullにマッチング): Null属性は、他のNull属性にのみマッチングします。<br><br>[Null Match None] (Nullのマッチングなし): Null属性は、他の属性とマッチングしません。<br><br>[Null Match All] (Nullがすべてにマッチング): Null属性は、他のすべての属性の値とマッチングします。<br><br>たとえば、*name*カラムと*firstname*カラムの2つがあり、nameが決してNullにはならない場合でも最初のnameがNullになることがあります。<br><br>2つのレコードが次のような場合:<br><br>"Doe", "John"<br><br>"Doe", ""<br><br>選択した演算子によって以下の2つのレコードがマッチングする場合とマッチングしない場合があります:<br><br>[Null Match Null] (NullがNullにマッチング): マッチングしません。<br><br>[Null Match None] (Nullのマッチングなし): マッチングしません。<br><br>[Null Match All] (Nullがすべてにマッチング): マッチングします。<br><br>以下のレコードについて:<br><br>"Doe", ""<br><br>"Doe", ""<br><br>[Null Match Null] (NullがNullにマッチング): マッチングします。<br><br>[Null Match None] (Nullのマッチングなし): マッチングしません。<br><br>[Null Match All] (Nullがすべてにマッチング): マッチングします。 |
| [Input Column] (入力カラム) | 必要に応じて、処理されたデータをブロックに分割する入力フローのカラムを選択します。これは通常「ブロッキング」と呼ばれます。<br><br>ブロッキングにより、検査する必要があるレコードのペアの数が減ります。ブロッキングでは、入力データがパーティションに分割され、比較するペアの数を減らすと共に、徹底的なマッチを行ってマッチ率を向上させます。比較は各ブロックのレコードペアに制限されます。<br><br>非常に大きなデータを処理する場合は、ブロッキングカラムを使用すると非常に便利です。 |
| [Matching strategy] (マッチングストラテジー) | ニーズに最適なマッチング出力を選択します。オプションは次のとおりです。<br><br><ul> <li> <p>[All matches] (すべてマッチング): このオプションは、マッチングレコードおよびマッチングする可能性のあるレコードのすべてを出力することを意味します。</p> </li> <li> <p>[Best match] (最良のマッチング): マッチングスコアが最高のレコードのみを出力します。</p> </li> <li> <p>[First match] (最初のマッチング): 最初のマッチングレコードを出力します。マッチングがない場合は、マッチングする可能性のある最初のレコードを出力します。</p> </li> <li> <p>[Last match] (最後のマッチング): 最後のマッチングレコードを出力します。マッチングがない場合は、マッチングする可能性のある最後のレコードを出力します。</p> <p>マッチングストラテジーを配置する際には、マッチングスコアが重要です。<span>[Advanced settings] (詳細設定)</span>ビューの<span>[Possible match interval] (可能性があるマッチング間隔)</span>フィールドで定義する必要があります。 </p> </li> </ul> |

## 詳細設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Matching Algorithm] (マッチングアルゴリズム) | リストからアルゴリズムを選択します。当面、使用できるアルゴリズムは1つだけです。<br><br>[Simple VSR] (単純VSR): このアルゴリズムは、2つのレコードがどのようにマッチングするかを指定するベクター空間検索(VSR)メソッドに基づいています。<br><br>VSRアルゴリズムに基づいてルールをインポートする方法については、[リポジトリーからマッチングルールをインポート](https://help.qlik.com/talend/en-US/data-matching/8.0/importing-match-rules-from-studio-repository)をご覧ください。 |
| [Possible match interval] (可能性があるマッチング間隔) | 最小値と最大値を入力します。<br><br>[minimum] (最小): 参照とマッチングするために許可される最小レコード距離を設定します(0 &lt;= 最小)。[maximum] (最大): 参照とマッチングするために許可される最大距離を設定します(最大&lt;=1)。<br><br>たとえば、最小値に0.5、最大値に0.9を設定すると、0.9以上のスコアはマッチングを示し、0.5よりも大きく0.9未満のスコアは可能性があるマッチング、その他のスコアはマッチングなしを示します。 |
| [Store on disk] (ディスクに保存) | 処理されたデータブロックをディスクに保存して、システムパフォーマンスを最大化する場合は、このチェックボックスをオンにします。 |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |

## [Global Variables] (グローバル変数)

| 変数 | 説明 |
| --- | --- |
| グローバル変数 | NB\_MATCH\_LINE: 比較アルゴリズムにマッチングする行の数。これはAfter変数で、整数を返します。<br><br>NB\_POSSIBLE\_MATCH\_LINE: 比較アルゴリズムにマッチングする可能性がある行の数。これはAfter変数で、整数を返します。<br><br>NB\_NONE\_MATCH\_LINE: 比較アルゴリズムにマッチングしない行の数。これはAfter変数で、整数を返します。<br><br>ERROR\_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。<br><br>Flow変数はコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。<br><br>フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。<br><br>変数の詳細は、[コンテキストと変数を使用](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/contexts-and-variables)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは開始可能でなく、2つの入力コンポーネントと1つ以上の出力コンポーネントを必要とします。 |