データマッチングとは
一般的な定義
- データソースで重複データ、重複の可能性があるデータ、非重複データを検索する
- データを解析し、重み付けしたマッチング確率を返す
- 同一または類似するエントリーを1つのエントリーにマージする
- さまざまなデータソース間の不一致を低減させる
レコード連鎖
レコード連鎖は、データセット内にある同じエンティティを参照するレコードを識別することです。
- 決定的レコード連鎖: マッチングする識別子に基づきます。
- 確率的レコード連結: 識別子がマッチングする確率に基づきます。
マッチングの前にするべきこと
データをプロファイリング
データプロファイリングは、定義された目標に従ってデータのクオリティレベルを評価する際に役立ちます。
データクオリティ問題は、レガシーシステム、データの移行、データベースの変更、人のコミュニケーションの行き違い、その他の数え切れない潜在する異常を含め、多数の異なる原因から生じることがあります。データクオリティ問題は、原因に関係なく、そのデータを使用して洞察力のある意思決定を下すビジネスの能力に影響する可能性があります。
データのクオリティが低い、または企業のニーズを満たすように統合できない構造でデータが管理されている場合、ビジネスプロセスと意思決定に悪影響が及びます。
手動の分析手法と比較すると、データプロファイリングテクノロジーは、データクオリティ管理の課題を解決し、データ移行やデータインテグレーション中に直面するデータクオリティ問題に対処したりする企業の能力を改善します。
データを標準化
- データはインデックスに対して標準化できます。シノニムは標準化されるか、「マスター」ワードに変換されます。
利用できるデータシノニムディクショナリーの詳細は、データシノニムディクショナリーをご覧ください。
- 住所検証コンポーネントを使用すれば、Experian QAS、Loqate、MelissaDataといった各検証ツールに対して住所データを標準化させることができます。これらのツールによって返される住所には一貫性があり、住所表現のバリエーションは排除されます。住所が標準化されればマッチングが容易になります。
tQASBatchAddressRow、tLoqateAddressRow、tMelissaDataAddressという各コンポーネントの詳細は、Address standardizationをご覧ください。
- tStandardizePhoneNumberコンポーネントを使用すれば、発信国の書式規則に基づいて電話番号を標準化できます。
電話番号の標準化の詳細は、Phone number standardizationをご覧ください。
- よりジェネリックなその他のコンポーネント(tReplace、tReplaceList、tVerifyEmail、tExtractRegexFields、tMapなど)を使ってデータを変換すれば、より標準的なレコードを取得できます。
マッチングの方法
古典的マッチングのアプローチ
パーティションによるブロッキング
ブロックキングとは、同じ属性を持つ似たような大きさのパーティションにデータを分類することです。その目的は、同じパーティション内にグループ化されているレコードに対して比較を限定することにあります。
効率的なパーティションを作成するためには、変更の可能性が低い属性(人のファーストネームやラストネームなど)を見つけることが必要です。このようにすることで、ブロックキングステップの信頼性とタスクの計算速度が向上します。
ブロッキングキーの生成とブロックの分布の表示には、tGenKeyコンポーネントを使用することをお勧めします。
ブロッキングキーの生成に関する詳細は、Identificationをご覧ください。
メトリクスを選択してマッチングルールを定義
データを同じようなサイズのグループにブロッキングした後は、tMatchGroupコンポーネントで使用する前に、マッチングルールを作成してテストできます。
マッチング分析の作成については、マッチング分析を作成をご覧ください。
tMatchGroupコンポーネントでのマッチング関数
tMatchGroupを使用すれば、1つまたは複数のマッチングルールを使うことで、大量のデータが含まれている任意のデータソースで類似したデータレコードのグループを作成できます。
- 音声アルゴリズム: SoundexやMetaphoneなどで、名前のマッチングに使われます。
- レーベンシュタイン距離: ある文字列を別の文字列に変換するために必要な最小編集回数を計算します。
- Jaro距離: 処理されたエントリーをスペルのずれに従ってマッチングさせます。
- Jaro-Winkler距離: Jaroの亜種で、文字列の先頭をより重視します。
標準ジョブやMap/ReduceジョブでtMatchGroupコンポーネントを使う詳細については、古典的マッチングをご覧ください。
シンプルVSRマッチャーアルゴリズムとT-Swooshアルゴリズム
- シンプルVSRマッチャー
- T-Swoosh
マッチング分析の詳細は、Talend Help Centerで「マッチングルールを作成」をご覧ください。
レコードはいつマッチングするのか
- T-Swooshアルゴリズムを使用する場合は、各マッチング関数で返されるスコアが設定したしきい値より高いこと。
- グローバルスコア(さまざまなマッチング関数の加重スコアとして計算)がマッチングしきい値を超えていること。
複数のパス
通常、さまざまなパーティショニングスキームが必要となります。そのため、tMatchGroupコンポーネントを順次使用し、異なるブロッキングキーに対してデータをマッチングさせる必要があります。
複数パスによるデータマッチングのサンプルは、古典的マッチングをご覧ください。
tRecordMatchingコンポーネントを使った作業
tRecordMatchingは、メインフローからの比較カラムとルックアップフローからの参照カラムを結合させます。定義されたマッチング戦略に従い、tRecordMatchingは、マッチングデータ、マッチング可能なデータ、拒否されたデータを出力します。マッチング戦略を調整する場合、ユーザ定義のマッチングスコアは対象データのマッチングレベルを決定するうえで重要です。
tRecordMatchingコンポーネントの詳細は、古典的マッチングをご覧ください。
機械学習のアプローチ
機械学習アプローチは、膨大なデータをマッチングさせたい場合に便利です。
モデルに学習させてマッチングを予測させれば、データマッチングのプロセスを自動化できます。
データマッチングのプロセス
古典的アプローチと比較すると、機械学習アプローチには次のような利点があります。
- 異なるブロッキングメカニズムにより、より高速でスケーラブルな計算が可能になります。機械学習アプローチの場合、ブロッキングは分割ではありません。1つのレコードがさまざまなブロックに属することもあり、ブロックのサイズも明確に区切られています。ただし、tGenKeyコンポーネントではそうではありません。
- 機械学習モデルによって学ばれ、保存されるルールは、人間が設計したマッチングルールよりもはるかに複雑でありながら恣意性は抑えられます。
- コンポーネントの設定はさらにシンプルです。機械学習モデルは特にマッチング距離や類似度のしきい値などを自動的に学習します。
- 最初のステップでは、tMatchPairingコンポーネントを使ってデータセットを事前分析します。このtMatchPairing コンポーネントによって、一意レコード、完全マッチングレコード、疑わしいマッチペア、疑わしいマッチペアのサンプルが出力されます。
その他の例は、疑わしいペアを作成してTalend Data Stewardshipにサンプルを書き込むとソースデータの疑わしいペアと疑わしいサンプルを計算をご覧ください。
- 2番目のステップは、サンプルからの疑わしいマッチペアを "match" または "no-match" として手動でラベル付けすることです。ラベル付けの作業ではTalend Data Stewardshipを活用できます。
たとえば"match"、"possible match"、"different"など、2つ以上のクラスを使用できます。
Talend Data Stewardshipでレコードのペア間のリレーションシップを決定するグルーピングタスクの処理については、Talend Data Stewardshipの例をご覧ください。
- 3番目のステップは、ラベル付けした疑わしいマッチペアをtMatchModelコンポーネントに送信して分類子モデルを学習、および出力することです。
マッチングするモデルを生成するサンプルは、このシナリオをご覧ください。
- 4 番目のステップは、tMatchModelで計算されたモデルをtMatchPredictコンポーネントで使用し、大規模なデータセットの疑わしいペアを自動的にラベル付けすることです。
サスペクトペアに割り当て済みのラベルを付けるサンプルは、このシナリオをご覧ください。
よいサンプルとは
サンプルはバランスが取れていることが必要です。つまり、各クラス("match" と "no match")のレコード数がほぼ同じであることが必要です。データサンプルのバランスが悪いと、生成されるモデルが不完全なものになります。
また、サンプルが多様であることも大切です。サンプルの例が多様であればあるほど、モデルが学習したルールもより効果的になります。
そして、サンプルが適切なサイズであることです。数百万件のレコードが含まれる大規模なデータセットの場合は、数百から数千件のサンプルで十分かもしれません。データセットのレコード数が10,000レコード未満であれば、サンプルサイズはフルデータセットの1~10%であることが必要です。
tMatchModelがモデルを生成するしくみ
定義されたカラムについて可能な限り多くの情報が得られるよう、機械学習アルゴリズムでは特徴量と呼ばれるさまざまなメジャーが計算されます。
モデルを生成するため、tMatchModelはランダムフォレストアルゴリズムを使ってデータを解析します。ランダムフォレストとは、分類問題解決のために使用されるデシジョンツリーのコレクションのことです。デシジョンツリーの各ノードは、入力データに関連付けられた特徴量に関する質問に対応しています。ランダムフォレストは、デシジョンツリーを成長させることによって分類の精度を向上させてモデルを生成します。
Apache Sparkでのデータマッチングの詳細は、tMatchModelのプロパティをご参照ください。
マスターレコードを存続
tRuleSurvivorshipを使ってレコードをマージ
重複、および重複の可能性がありグループ化されているものを推定した後は、tRuleSurvivorshipコンポーネントを使い、最善のデータによって重複する各グループに単一の表現を作成できます。これはサバイバーと呼ばれます。
tMatchPredictによってラベル付けされた疑わしいペア、そしてtMatchPairingによって計算された一意行からクリーンなデータセットを作成するサンプルは、機械学習を使ってマッチングをご覧ください。
事務的なレビューとレコードのマージでTalend Data Stewardshipを使用
Talend Data Stewardshipでマージキャンペーンを追加すれば、サバイバーシップルールのレビューと変更、マスターレコードの作成、データのマージが可能になります。
Talend Data Stewardshipでのキャンペーンのマージングについては、Talend Data Stewardshipの例をご覧ください。
Talend Data Stewardshipでは、データスチュワードが次のようなデータスチュワードシップタスクの解決を担当するビジネスユーザーとなります。- 定義済みのアービトレーション選択リストから選択したラベルを割り当ててデータを分類する
- 重複する可能性がある複数のレコードを1つのレコードにマージする
権限を持つデータスチュワードはマージングタスクによって、重複する可能性があるソースレコードを1つのレコード(ゴールデンレコード)にマージできます。マージングタスクの結果として、データスチュワードによりゴールデンレコードが生成されます。
Talend Data Stewardshipでのタスクのマージングについては、Talend Data Stewardshipの例をご覧ください。
ソースレコードは同じソース(データベース重複除去)または異なるソース(データベース照合)から取得できます。
機械学習コンポーネントを使った再マッチングの方法
継続的マッチングを実行
クリーンなデータセットに対して新しいレコードをマッチングさせる場合は、マッチングプロセスを最初からやり直す必要はありません。
継続的マッチングは、クリーンなデータセットを再利用してインデックスを作成すれば実行できます。継続的マッチングタスクを実行するためには、Elasticsearchのバージョン5.1.2以降が稼働している必要があります。
連続マッチングの処理は以下のステップで構成されています。
- まず、データセットからクリーンなレコードと重複除去されたレコードを分離するためのサフィックスを計算し、tMatchIndexを使ってElasticsearchでインデックス化します。
tMatchIndexを使ってElasticsearchでデータをインデックス化するサンプルは、このシナリオをご覧ください。
- 次のステップは、tMatchIndexPredictを使って、インデックス化されたレコードと同じスキーマを持つ新しいレコードを比較し、マッチングするレコードとマッチングしないレコードを出力することです。このコンポーネントでは、tMatchPairingやtMatchModelによって生成されたペアリングおよびマッチングモデルが使われます。
参照データセットのレコードに対して新しいレコードをマッチングさせるサンプルは、このシナリオをご覧ください。
次に、tRuleSurvivorshipを使って、マッチングしないレコードをクリーンアップして重複除去し、tMatchIndexを使ってElasticsearchでインデックス化されたクリーンデータセットを入力します。
完全マッチング
完全マッチングとは、2つのレコードの属性のサブセットが同一であることを言います。
コンポーネント
tUniqRow
ジョブの入力または出力フローのデータクオリティを保証します。
tUniqRowは、エントリーを比較して、入力フローから重複エントリーを除外します。
デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。機能マネージャーを使ってインストールする必要があります。 詳細は、機能マネージャーを使って機能をインストールをご覧ください。
tUniqRowの標準プロパティ
このプロパティは[Standard] (標準)ジョブのフレームワークで実行されているtUniqRowの設定で使用されます。
標準のtUniqRowコンポーネントはデータクオリティファミリーにのコンポーネントです。
このフレームワーク内のコンポーネントは、すべてのTalend製品で利用できます。
基本設定
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。
このコンポーネントはダイナミックスキーマ機能の利点を備えているので、ソースファイルから不明なカラムを取得したり、各カラムを個別にマッピングしなくてもソースからカラムを一括してコピーしたりできます。ダイナミックスキーマの詳細は、ダイナミックスキーマをご覧ください。 ダイナミックスキーマ機能は、テーブルの不明なカラムを取得するしくみになっており、その他の目的には使用しないことをお勧めします。テーブルの作成には推奨しません。 |
|
[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。 |
|
[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。 |
[Unique key] (一意キー) |
このエリアで、特定のカラムで重複除去を実行する1つ以上のカラムを選択します。 - [Key attribute] (キー属性)チェックボックスをオンにすると、すべてのカラムで重複除去が実行されます。 - [Case sensitive] (大文字と小文字を区別)チェックボックスをオンにすると、大文字小文字が区別されます。 |
詳細設定
[Only once each duplicated key] (各重複キーを1つに限定) |
このチェックボックスをオンにすると、カラムの最初の重複エントリーのみが重複の出力フローに送信するキーとして定義されます。 |
[Use of disk (suitable for processing large row set)] (ディスクの使用:大量行セットの処理に最適) |
このチェックボックスをオンにすると、大量のデータの処理時、ハードディスクに一時ファイルを生成できます。これにより、メモリオーバーフローが原因のジョブ実行エラーを回避できます。このチェックボックスをオンにすると、以下の定義も必要になります: -[Buffer size in memory] (メモリのバッファーサイズ): ハードディスクに一時ファイルを生成する前に、メモリにバッファリングできる行数を選択します。 -[Directory for temp files] (一時ファイルのディレクトリー): 一時ファイルを保存する場所を設定するために使われます。 警告:
一時ファイル用には既存のディレクトリーを指定するようにしてください。そうでない場合、ジョブの実行時にエラーが発生します。 |
[Ignore trailing zeros for BigDecimal] (BigDecimalの末尾のゼロを無視) |
このチェックボックスをオンにすると、BigDecimalデータの末尾のゼロが無視されます。 |
[tStatCatcher Statistics] (tStatCatcher統計) |
このチェックボックスをオンにすると、ジョブレベルやコンポーネントレベルでジョブ処理メタデータが収集されます。 |
グローバル変数
グローバル変数 |
NB_UNIQUES: 一意の行の数。これはAfter変数で、整数を返します。 NB_DUPLICATES: 重複行の数。これはAfter変数で、整数を返します。 ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。 Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。 フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。 変数の詳細は、コンテキストと変数を使用をご覧ください。 |
使用方法
使用ルール |
このコンポーネントはデータのフローを処理し、入力と出力を必要とするため、中間ステップとして定義されます。 |
Apache Spark BatchのtUniqRowプロパティ
このプロパティは[Spark Batch]ジョブのフレームワークで実行されているtUniqRowの設定で使用されます。
Spark BatchのtUniqRowコンポーネントは、変換処理ファミリーに属しています。
このフレームワーク内のコンポーネントは、ビッグデータ対応のサブスクリプションTalend 製品すべて、およびTalend Data Fabricで利用できます。
基本設定
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。
|
|
[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。 |
|
[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。 |
[Unique key] (一意キー) |
このエリアで、特定のカラムで重複除去を実行する1つ以上のカラムを選択します。 - [Key attribute] (キー属性)チェックボックスをオンにすると、すべてのカラムで重複除去が実行されます。 - [Case sensitive] (大文字と小文字を区別)チェックボックスをオンにすると、大文字小文字が区別されます。 |
詳細設定
[Only once each duplicated key] (各重複キーを1つに限定) |
このチェックボックスをオンにすると、カラムの最初の重複エントリーのみが重複の出力フローに送信するキーとして定義されます。 |
使用方法
使用ルール |
このコンポーネントは中間ステップとして使用されます。 このコンポーネントは、所属するSpark Batchのコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。 特に明記していない限り、このドキュメンテーションのシナリオでは、標準ジョブ、つまり従来の Talend Data Integrationジョブだけを扱います。 |
[Spark Connection] (Spark接続) |
[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
この接続は、ジョブごとに有効になります。 |
Apache Spark StreamingのtUniqRowプロパティ
このプロパティは[Spark Streaming]ジョブのフレームワークで実行されているtUniqRowの設定で使用されます。
Spark StreamingのtUniqRowコンポーネントは、変換処理ファミリーに属しています。
このコンポーネントは、Talend Real Time Big Data PlatformおよびTalend Data Fabricで利用できます。
基本設定
[Schema] (スキーマ)および[Edit schema] (スキーマを編集) |
スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。
|
|
[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。 |
|
[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。 |
[Unique key] (一意キー) |
このエリアで、特定のカラムで重複除去を実行する1つ以上のカラムを選択します。 - [Key attribute] (キー属性)チェックボックスをオンにすると、すべてのカラムで重複除去が実行されます。 - [Case sensitive] (大文字と小文字を区別)チェックボックスをオンにすると、大文字小文字が区別されます。 |
詳細設定
[Only once each duplicated key] (各重複キーを1つに限定) |
このチェックボックスをオンにすると、カラムの最初の重複エントリーのみが重複の出力フローに送信するキーとして定義されます。 |
使用方法
使用ルール |
このコンポーネントは中間ステップとして使用されます。 このコンポーネントは、所属するSpark Streamingのコンポーネントのパレットと共に、Spark Streamingジョブを作成している場合にだけ表示されます。 特に明記していない限り、このドキュメンテーションのシナリオでは、標準ジョブ、つまり従来の Talend Data Integrationジョブだけを扱います。 |
[Spark Connection] (Spark接続) |
[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
この接続は、ジョブごとに有効になります。 |
シナリオ
エントリーの重複を除去
5つのコンポーネントが含まれているこのジョブでは、入力名リストのエントリーをソートし、重複する名前を探して[Run] (実行)タブに固有名と重複名を表示させます。
ジョブを設定
手順
- [Palette] (パレット)からデザインワークスペースに、tFileInputDelimited、 tSortRow、tUniqRow、およびtLogRowのコンポーネントを2つドロップします。
- オプション: コンポーネント名はダブルクリックすれば変更できます。
- tFileInputDelimitedコンポーネント、tSortRowコンポーネント、tUniqRowコンポーネントを接続させます。 接続を使って、
- tUniqRowコンポーネントと最初のtLogRowコンポーネントを接続します。 接続を使って、
- tUniqRowコンポーネントと2番目のtLogRowコンポーネントを接続します。 接続を使って、
コンポーネントを設定
手順
ジョブを保存して実行
手順
ダイナミックスキーマに基づいてエントリーの重複を除去
このシナリオは、Talend Data Management Platform、Talend Big Data Platform、Talend Real Time Big Data Platform、Talend Data Services Platform、Talend MDM PlatformおよびTalend Data Fabricにのみ適用されます。
この例では、前述のシナリオのようなジョブを使用して、複数のファミリーに関する入力エントリーの重複除去を行い、各ファミリーで1人の名前だけがリストに残るようにします。このジョブのすべてのコンポーネントでダイナミックスキーマ機能がサポートされているため、このフィーチャーを活用することでスキーマのカラムを個別に設定する時間を節約できます。
ジョブを設定
手順
- [Palette] (パレット)からtFileInputDelimited、tExtractDynamicFields、tUniqRow、tFileOutputDelimited、およびtLogRowのコンポーネントをデザインワークスペースにドロップし、ロールを識別しやすくなるよう上記のようにコンポーネントに名前をつけます。
- オプション: コンポーネント名はダブルクリックすれば変更できます。
- tFileInputDelimitedコンポーネント、tExtractDynamicFieldsコンポーネント、tUniqRowコンポーネントを接続させます。 接続を使って、
- tUniqRowコンポーネントと最初のtLogRowコンポーネントを接続します。 接続を使って、
- tUniqRowコンポーネントと2番目のtLogRowコンポーネントを接続します。 接続を使って、
コンポーネントを設定
手順
ジョブを保存して実行
手順
Fuzzy matching
ファジーマッチングにより、部分的にマッチングするレコードを判定できます。
コンポーネント
tFuzzyMatch
メインフローのカラムとルックアップフローの参照カラムを比較し、距離を表示するメインフローデータを出力します。
デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。機能マネージャーを使ってインストールする必要があります。 詳細は、機能マネージャーを使って機能をインストールをご覧ください。
tFuzzyMatchの標準プロパティ
これらのプロパティを使って、[Standard] (標準)ジョブフレームワーク内で実行されているtFuzzyMatchを設定します。
[Standard] (標準) tFuzzyMatchコンポーネントは、データクオリティファミリーに属しています。
このフレームワーク内のコンポーネントは、すべてのTalend製品で利用できます。
基本設定
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明で、処理された後に次のコンポーネントに渡されるフィールドの数を定義するものです。スキーマは[Built-in] (組み込み)か、[Repository] (リポジトリー)にリモートで保存されます。 2つの読み取り専用列である[Value] (値)と[Match] (マッチング)が自動的に出力スキーマに追加されます。 |
|
[Built-in] (組み込み): このコンポーネントに対してのみ作成されたスキーマがローカルに保管されます。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。 |
|
[Repository] (リポジトリー): 既存のスキーマがリポジトリーに保管されているので、さまざまなプロジェクトやジョブデザインで再利用できます。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。 |
[Matching type ] (マッチングタイプ) |
次の中から適切なマッチングアルゴリズムを選択します。 Levenshtein: 編集距離理論に基づきます。参照エントリーとマッチングするエントリーに必要な挿入、削除、置換の回数を計算します。 [Metaphone] (メタフォン):発音によるエントリーの索引付けのための音声アルゴリズムに基づいています。ルックアップ参照のすべてのエントリーの発音をロードし、メインフローのすべてのエントリーを参照フローのエントリーに対してチェックします。 漢字はサポートしていません。 [Double Metaphone] (二重メタフォン): 音声アルゴリズムの新しいバージョン。元のアルゴリズムよりも正確な結果をもたらすメタフォン。文字列のプライマリーコードとセカンダリーコードの両方を返すことができます。これはあいまいなケースや共通の系統を持つ姓の複数のバリエーションに対応しています。 漢字はサポートしていません。 |
[Min distance] (最小距離) |
(Levenshteinのみ)参照とマッチングするために許可される変更の最小数を設定します。0に設定すると、完全マッチングのみが返されます。 |
[Max distance] (最大距離) |
(Levenshteinのみ)参照とマッチングするために許可される変更の最大数を設定します。 |
[Matching column] (マッチングカラム) |
参照(ルックアップ)キーカラムに対して照合が必要なメインフローのカラムを選択します |
[Unique matching] (一意のマッチング) |
利用できるマッチングがいくつか存在する場合は、可能な限りマッチングさせるため、このチェックボックスをオンにします。 |
[Matching item separator] (項目セパレータのマッチング) |
いくつかのマッチングが利用可能な場合、一意のマッチングボックスが選択されていなければ、それらはすべて表示されます。すべてのマッチング間の区切り文字を定義します。 |
詳細設定
[tStatCatcher Statistics] (tStatCatcher統計) |
このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |
グローバル変数
グローバル変数 |
NB_LINE: 入力コンポーネントによって読み取られた行の数、または出力コンポーネントに転送された行の数。これはAfter変数で、整数を返します。 ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。 Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。 フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。 変数の詳細は、コンテキストと変数を使用をご覧ください。 |
使用方法
使用ルール |
このコンポーネントは起動可能(緑色の背景)ではなく、2つの入力コンポーネントと1つの出力コンポーネントが必要です。 |
tFuzzyUniqRow
定義済みの照合方法を使用して入力フローのカラムを比較し、検出された重複を収集します。
デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。機能マネージャーを使ってインストールする必要があります。 詳細は、機能マネージャーを使って機能をインストールをご覧ください。
tFuzzyUniqRowの標準プロパティ
これらのプロパティを使って、[Standard] (標準)ジョブフレームワーク内で実行されているtFuzzyUniqRowを設定します。
[Standard] (標準) tFuzzyUniqRowコンポーネントは、データクオリティファミリーに属しています。
このコンポーネントは、Talend Data Management Platform、Talend Big Data Platform、Talend Real Time Big Data Platform、Talend Data Services Platform、Talend MDM PlatformおよびTalend Data Fabricで利用できます。
基本設定
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明で、処理された後に次のコンポーネントに渡されるフィールドの数を定義するものです。スキーマは[Built-in] (組み込み)か、[Repository] (リポジトリー)にリモートで保存されます。 |
|
[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。 |
|
[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。 |
カラム |
入力フロー内のすべてのカラムのリスト。 |
[Key Attribute] (キー属性) |
確認するカラムの横にあるチェックボックスをオンにします。 |
[Matching type ] (マッチングタイプ) |
関連するマッチングアルゴリズムをリストから選択します。 [Exact Match] (完全マッチング): 処理された各エントリーを、まったく同じ値を持つすべての可能な参照エントリーにマッチングさせます。 Levenshtein: 編集距離理論に基づきます。参照エントリーとマッチングするエントリーに必要な挿入、削除、置換の回数を計算します。 [Metaphone] (メタフォン):発音によるエントリーの索引付けのための音声アルゴリズムに基づいています。ルックアップ参照のすべてのエントリーの発音をロードし、メインフローのすべてのエントリーを参照フローのエントリーに対してチェックします。 漢字はサポートしていません。 [Double Metaphone] (二重メタフォン): 音声アルゴリズムの新しいバージョン。元のアルゴリズムよりも正確な結果をもたらすメタフォン。文字列のプライマリーコードとセカンダリーコードの両方を返すことができます。これはあいまいなケースや共通の系統を持つ姓の複数のバリエーションに対応しています。 漢字はサポートしていません。 |
[Min. Distance] (最小距離) |
Levenshteinのみ参照とマッチングするために許可される変更の最小数を設定します。0に設定すると、[Exact Match] (完全マッチング)のみが返されます。 |
[Max. Errors] (最大エラー数) Distance] (最大距離) |
Levenshteinのみ参照とマッチングするために許可される変更の最大数を設定します。 |
詳細設定
[tStatCatcher Statistics] (tStatCatcher統計) |
このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |
グローバル変数
グローバル変数 |
NB_UNIQUES: 一意の行の数。これはAfter変数で、整数を返します。 NB_DUPLICATES: 重複行の数。これはAfter変数で、整数を返します。 ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。 Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。 フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。 変数の詳細は、コンテキストと変数を使用をご覧ください。 |
使用方法
使用ルール |
このコンポーネントは起動可能(緑色の背景)ではなく、1つの入力コンポーネントと2つの出力コンポーネントが必要です。 |
tBlockedFuzzyJoin
参照データソースとの照合によりあらゆるソースデータのデータクオリティを保証します。
tBlockedFuzzyJoinは、複数のカラムにファジーマッチを実行することで、2つのテーブルを結合します。このコンポーネントは、メインフローからのカラムをルックアップフローからの参照カラムと比較し、マッチングデータ、マッチングデータの候補、およびリジェクトデータを出力します。
tBlockedFuzzyJoinの標準プロパティ
このプロパティは[Standard] (標準)ジョブのフレームワークで実行されているtBlockedFuzzyJoinの設定で使用されます。
標準tBlockedFuzzyJoinコンポーネントは、データクオリティファミリーに属しています。
このコンポーネントは、Talend Data Management Platform、Talend Big Data Platform、Talend Real Time Big Data Platform、Talend Data Services Platform、Talend MDM PlatformおよびTalend Data Fabricで利用できます。
基本設定
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明で、処理された後に次のコンポーネントに渡されるフィールドの数を定義するものです。スキーマは[Built-in] (組み込み)か、[Repository] (リポジトリー)にリモートで保存されます。 |
|
[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。 |
|
[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保存されています。他のプロジェクトやジョブデザインで再利用できます。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。 |
[Replace output column with lookup column if matches or possible matches] (マッチング、または可能性があるマッチングの場合は、出力カラムをルックアップカラムに置き換えます) |
値がマッチング、または可能性があるマッチングの場合に出力カラムをルックアップカラムに置換するには、このチェックボックスをオンにします。 |
[Input key attribute] (入力キー属性) |
参照(ルックアップ)キーカラムを基にチェックする必要のあるメインフローからカラムを選択します。 |
[Lookup key attribute] (ルックアップキー属性) |
入力フローからのカラムを比較する参照元として使用するルックアップキーカラムを選択します。 |
[Matching type ] (マッチングタイプ) |
関連するマッチングアルゴリズムをリストから選択します。 [Exact Match] (完全マッチング): 処理された各エントリーを、まったく同じ値を持つすべての可能な参照エントリーにマッチングさせます。 Levenshtein: 編集距離理論に基づきます。参照エントリーとマッチングするエントリーに必要な挿入、削除、置換の回数を計算します。 [Metaphone] (メタフォン):発音によるエントリーの索引付けのための音声アルゴリズムに基づいています。ルックアップ参照のすべてのエントリーの発音をロードし、メインフローのすべてのエントリーを参照フローのエントリーに対してチェックします。 [Double Metaphone] (二重メタフォン): 音声アルゴリズムの新しいバージョン。元のアルゴリズムよりも正確な結果をもたらすメタフォン。文字列のプライマリーコードとセカンダリーコードの両方を返すことができます。これはあいまいなケースや共通の系統を持つ姓の複数のバリエーションに対応しています。 |
Case sensitive |
このチェックボックスを選択して、大文字と小文字を考慮します。 |
[Min distance] (最小距離) |
Levenshteinのみ参照とマッチングするために許可される変更の最小数を設定します。0に設定すると、[Exact Match] (完全マッチング)のみが返されます。 注:
最小距離と最大距離のコンテクスト変数を作成および保管した後にそれらの値でジョブをループさせ、低い最大数から行とマッチングさせ、より高い最大数に増やして可能な行とさらにマッチングさせることができます。[Ctrl+Space]を押して、変数リストにアクセスして、新しいコンテキスト変数を選択できます。コンテキスト変数の詳細は、コンテキストと変数を使用をご覧ください。 |
[Max distance] (最大距離) |
Levenshteinのみ参照とマッチングするために許可される変更の最大数を設定します。 |
詳細設定
[tStatCatcher Statistics] (tStatCatcher統計) |
このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |
グローバル変数
グローバル変数 |
ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。 Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。 フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。 変数の詳細は、コンテキストと変数を使用をご覧ください。 |
使用方法
使用ルール |
このコンポーネントは非推奨です。代わりにtRecordMatchingコンポーネントを使います。 このコンポーネントは開始可能でなく(緑色の背景)、2つの入力コンポーネントと1つ以上の出力コンポーネントを必要とします。 |
tFuzzyJoin
複数のカラムであいまいマッチングを行ったり、メインフローからのカラムをルックアップフローからの参照カラムと比較したり、メインフローデータまたはリジェクトデータを出力したりして、2つのテーブルを結合します。
tFuzzyJoin Standardプロパティ
このプロパティは[Standard] (標準)ジョブのフレームワークで実行されているtFuzzyJoinの設定で使用されます。
[Standard] (標準)tFuzzyJoinコンポーネントは、データクオリティファミリーに属しています。
このコンポーネントは、Talend Data Management Platform、Talend Big Data Platform、Talend Real Time Big Data Platform、Talend Data Services Platform、Talend MDM PlatformおよびTalend Data Fabricで利用できます。
基本設定
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明で、処理された後に次のコンポーネントに渡されるフィールドの数を定義するものです。スキーマは[Built-in] (組み込み)か、[Repository] (リポジトリー)にリモートで保存されます。 |
|
[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。 |
|
[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保存されています。他のプロジェクトやジョブデザインで再利用できます。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。 |
[Include lookup columns in output] (ルックアップカラムを出力に含める) |
定義するルックアップカラムを出力フローに含めるには、このチェックボックスをオンにします。 |
[Input key attribute] (入力キー属性) |
参照(ルックアップ)キーカラムを基にチェックする必要のあるメインフローからカラムを選択します。 |
[Lookup key attribute] (ルックアップキー属性) |
入力フローからのカラムを比較する参照元として使用するルックアップキーカラムを選択します。 |
[Matching type ] (マッチングタイプ) |
関連するマッチングアルゴリズムをリストから選択します。 [Exact Match] (完全マッチング): 処理された各エントリーを、まったく同じ値を持つすべての可能な参照エントリーにマッチングさせます。 Levenshtein: 編集距離理論に基づきます。参照エントリーとマッチングするエントリーに必要な挿入、削除、置換の回数を計算します。 [Metaphone] (メタフォン):発音によるエントリーの索引付けのための音声アルゴリズムに基づいています。ルックアップ参照のすべてのエントリーの発音をロードし、メインフローのすべてのエントリーを参照フローのエントリーに対してチェックします。 [Double Metaphone] (二重メタフォン): 音声アルゴリズムの新しいバージョン。元のアルゴリズムよりも正確な結果をもたらすメタフォン。文字列のプライマリーコードとセカンダリーコードの両方を返すことができます。これはあいまいなケースや共通の系統を持つ姓の複数のバリエーションに対応しています。 |
Case sensitive |
このチェックボックスを選択して、大文字と小文字を考慮します。 |
[Min distance] (最小距離) |
Levenshteinのみ参照とマッチングするために許可される変更の最小数を設定します。0に設定すると、[Exact Match] (完全マッチング)のみが返されます。 注:
最小距離と最大距離のコンテクスト変数を作成および保管し、低い最大数から行とマッチングさせ、より高い最大数に増やして可能な行とさらにマッチングさせることができます。[Ctrl+Space]を押して、変数リストにアクセスして、新しいコンテキスト変数を選択できます。コンテキスト変数の詳細は、コンテキストと変数を使用をご覧ください。 |
[Max distance] (最大距離) |
Levenshteinのみ参照とマッチングするために許可される変更の最大数を設定します。 |
[Inner join (with reject output)] (内部結合(リジェクト出力付き)) |
最初に2つのテーブルを結合し、リジェクトデータをメインフローから収集するには、このチェックボックスをオンにします。 |
詳細設定
[tStatCatcher Statistics] (tStatCatcher統計) |
このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |
グローバル変数
グローバル変数 |
ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。 Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。 フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。 変数の詳細は、コンテキストと変数を使用をご覧ください。 |
使用方法
使用ルール |
このコンポーネントは非推奨です。代わりにtRecordMatchingコンポーネントを使います。 このコンポーネントは開始可能でなく、2つの入力コンポーネントと1つ以上の出力コンポーネントを必要とします。 |
シナリオ
ファーストネーム内のLevenshtein距離0をチェック
このシナリオでは、入力ファイルの[First Name] (名前)カラムと参照入力ファイルのデータとの間の編集距離をチェックすることを目的とした4コンポーネントジョブについて説明します。このLevenshtein型チェックの出力はメインフローの内容と共にテーブルに表示されます。
ジョブを設定
手順
- [Palette] (パレット)からデザインワークスペースに2つのtFixedFlowInputコンポーネント、tFuzzyMatchコンポーネント、tLogRowコンポーネントをドラッグ&ドロップします。
- [Row] (行) > [Main] (メイン)接続を使って、最初のtFixedFlowInputコンポーネントをtFuzzyMatchコンポーネントにリンクさせます。
- [Row] (行) > [Main] (メイン)接続(デザインワークスペースのLookup行として表示)を使って、2番目のtFixedFlowInputコンポーネントをtFuzzyMatchにリンクさせます。
- Row > Main接続を使用して、tFuzzyMatchコンポーネントを標準出力tLogRowにリンクします。
コンポーネントを設定
手順
ジョブを実行
手順
Brad|Los angeles|0|Brad
Jason|New York|0|Jason
Margaret||0|Margaret
Kourtney|Seattle||
Nicole|Saint-Louis|0|Nicole
John|Denver||
タスクの結果
編集距離が0(最小値と最大値)に設定されているので、メインフローとルックアップ(参照)フローとの間の規則的な結合の結果が出力に表示されるため、値0の完全マッチングのみが表示されます。
よりわかりやすいサンプルとして、最小距離が1で最大距離が2の場合を挙げます。 シナリオをご覧ください。
ファーストネーム内のLevenshtein距離1または2のチェック
手順
タスクの結果
次のシナリオで説明するように、メタフォンという別のメソッドを使用して、メインフローと参照間の距離を評価することもできます。
ファーストネームのメタフォニック距離のチェック
異なるマッチング方法を使用して4つのカラムを比較し、発生した重複を収集
このシナリオは、Talend Data Management Platform、Talend Big Data Platform、Talend Real Time Big Data Platform、Talend Data Services Platform、Talend MDM PlatformおよびTalend Data Fabricにのみ適用されます。
このシナリオでは、LevenshteinのマッチングタイプとDouble Metaphoneのマッチングタイプに基づいて、定義済みの一部のカラムから一意のエントリーと重複エントリーをすべて2つの別々のファイルで収集する4コンポーネントのジョブについて説明します。
このサンプルの入力ファイルは、次のようになります。
ID;Status;FirstName;Email;City;Initial;ZipCode
1;married;Paul;pnewman@comp.com;New York;P.N.;55677
2;single;Raul;rnewman@comp.com;New Ork;R.N.;55677
3;single;Mary;mnewman@comp.com;Chicago;M.N;66898