Talendツールとのデータマッチング - Cloud - 8.0

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
ジョブデザインと開発 > サードパーティーシステム > データクオリティコンポーネント > マッチング > データマッチングコンポーネント
ジョブデザインと開発 > サードパーティーシステム > データクオリティコンポーネント > マッチング > ファジーマッチコンポーネント
ジョブデザインと開発 > サードパーティーシステム > データクオリティコンポーネント > マッチング > マッチングおよび機械学習コンポーネント
ジョブデザインと開発 > サードパーティーシステム > データクオリティコンポーネント > マッチング > 継続的マッチングコンポーネント
データガバナンス > サードパーティーシステム > データクオリティコンポーネント > マッチング > データマッチングコンポーネント
データガバナンス > サードパーティーシステム > データクオリティコンポーネント > マッチング > ファジーマッチコンポーネント
データガバナンス > サードパーティーシステム > データクオリティコンポーネント > マッチング > マッチングおよび機械学習コンポーネント
データガバナンス > サードパーティーシステム > データクオリティコンポーネント > マッチング > 継続的マッチングコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > データクオリティコンポーネント > マッチング > データマッチングコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > データクオリティコンポーネント > マッチング > ファジーマッチコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > データクオリティコンポーネント > マッチング > マッチングおよび機械学習コンポーネント
データクオリティとプレパレーション > サードパーティーシステム > データクオリティコンポーネント > マッチング > 継続的マッチングコンポーネント

データマッチングとは

データマッチングとは、データセット内の同じエンティティを表すレコードを見つけることができるプロセスです。

一般的な定義

データマッチングによって次の操作が可能になります。
  • データソースで重複データ、重複の可能性があるデータ、非重複データを検索する
  • データを解析し、重み付けしたマッチング確率を返す
  • 同一または類似するエントリーを1つのエントリーにマージする
  • さまざまなデータソース間の不一致を低減させる

レコード連鎖

レコード連鎖は、データセット内にある同じエンティティを参照するレコードを識別することです。

データレコード連鎖には次の2つのタイプがあります。
  • 決定的レコード連鎖: 一致する識別子に基づきます。
  • 確率的レコード連結: 識別子が一致する確率に基づきます。

マッチングの前にするべきこと

データのプロファイリング

データプロファイリングは、さまざまなデータソースで使用可能なデータを検証し、このデータに関する統計と情報を収集するプロセスです。

データプロファイリングは、定義された目標に従ってデータのクオリティレベルを評価する際に役立ちます。

データクオリティ問題は、レガシーシステム、データの移行、データベースの変更、人のコミュニケーションの行き違い、その他の数え切れない潜在する異常を含め、多数の異なる原因から生じることがあります。データクオリティ問題は、原因に関係なく、そのデータを使用して洞察力のある意思決定を下すビジネスの能力に影響する可能性があります。

データのクオリティが低い、または企業のニーズを満たすように統合できない構造でデータが管理されている場合、ビジネスプロセスと意思決定に悪影響が及びます。

手動の分析手法と比較すると、データプロファイリングテクノロジーは、データクオリティ管理の課題を解決し、データ移行やデータ統合中に直面するデータクオリティ問題に対処したりする企業の能力を改善します。

データの標準化

マッチングタスクを実行する前にデータを標準化させることは、マッチング精度を向上させるために不可欠なステップです。
Talendは、データを標準化するうえでさまざまな方法を提供しています。
  • データはインデックスに対して標準化できます。シノニムは標準化されるか、「マスター」ワードに変換されます。

    利用できるデータシノニムディクショナリーの詳細は、Talend Data Fabric Studioユーザーガイドをご覧ください。

  • 住所検証コンポーネントを使用すれば、Experian QAS、Loqate、MelissaDataといった各検証ツールに対して住所データを標準化させることができます。これらのツールによって返される住所には一貫性があり、住所表現のバリエーションは排除されます。住所が標準化されればマッチングが容易になります。

    tQASBatchAddressRowtLoqateAddressRowtMelissaDataAddressという各コンポーネントの詳細は、アドレス標準化をご覧ください。

    住所検証コンポーネントの詳細は、Talend Help Center (https://help.talend.com)で、tQASBatchAddressRowtLoqateAddressRowtMelissaDataAddressという各コンポーネントに関する記事をご覧ください。

  • tStandardizePhoneNumberコンポーネントを使用すれば、発信国の書式規則に基づいて電話番号を標準化できます。

    電話番号の標準化の詳細は、Phone number standardizationをご覧ください。

    電話番号の標準化の詳細は、 Talend Help Center (https://help.talend.com)で、tStandardizePhoneNumberコンポーネントに関する記事をご覧ください。

  • より汎用的なその他のコンポーネント(tReplacetReplaceListtVerifyEmailtExtractRegexFieldstMapなど)を使ってデータを変換すれば、より標準的なレコードを取得できます。

マッチングの方法

古典的マッチングのアプローチ

古典的なアプローチでは、同じ属性を持つ似たようなサイズのパーティションにデータを分類し、メトリックを選択して、マッチングルールを定義します。

パーティションによるブロッキング

レコード連鎖は、各レコードをデータセットの他のレコードと比較する必要があるため、要求の厳しいタスクです。この作業の効率を上げるためにはブロッキングという手法が必要になる場合がほとんどです。

ブロックキングとは、同じ属性を持つ似たような大きさのパーティションにデータを分類することです。その目的は、同じパーティション内にグループ化されているレコードに対して比較を限定することにあります。

効率的なパーティションを作成するためには、変更の可能性が低い属性(人のファーストネームやラストネームなど)を見つけることが必要です。このようにすることで、ブロックキングステップの信頼性とタスクの計算速度が向上します。

ブロッキングキーの生成とブロックの分布の表示には、tGenKeyコンポーネントを使用することをお勧めします。

ブロッキングキーの生成に関する詳細は、識別をご覧ください。

メトリクスを選択してマッチングルールを定義

データを同じようなサイズのグループにブロッキングした後は、tMatchGroupコンポーネントで使用する前に、マッチングルールを作成してテストできます。

マッチング分析の詳細は、Talend Data Fabric Studioユーザーガイドをご覧ください。

tMatchGroupコンポーネントでのマッチング関数

tMatchGroupを使用すれば、1つまたは複数のマッチングルールを使うことで、大量のデータが含まれている任意のデータソースで類似したデータレコードのグループを作成できます。

作成されたグループはそれぞれ、マスターレコードとそのマスターレコードに類似したレコードで構成されます。類似したレコードとマスターレコードの間の類似度を計算するため、次のようなマッチング関数が使われます。
  • 音声アルゴリズム: SoundexやMetaphoneなどで、名前のマッチングに使われます。
  • レーベンシュタイン距離: ある文字列を別の文字列に変換するために必要な最小編集回数を計算します。
  • Jaro距離: 処理されたエントリーをスペルのずれに従ってマッチングさせます。
  • Jaro-Winkler距離: Jaroの亜種で、文字列の先頭をより重視します。

標準ジョブやMap/ReduceジョブでtMatchGroupコンポーネントを使う詳細については、古典的マッチングをご覧ください。

シンプルVSRマッチャーアルゴリズムとT-Swooshアルゴリズム

tMatchGroupコンポーネントを使用する場合は、次のいずれかのアルゴリズムを選択できます。
  • シンプルVSRマッチャー
  • T-Swoosh

マッチング分析の詳細は、Talend Help Centerで「マッチングルールを作成」をご覧ください。

レコードはいつマッチングするのか

2つのレコードは、以下の条件を満たした時にマッチングされます。
  • T-Swooshアルゴリズムを使用する場合は、各マッチング関数で返されるスコアが設定したしきい値より高いこと。
  • グローバルスコア(さまざまなマッチング関数の加重スコアとして計算)がマッチングしきい値を超えていること。

複数のパス

通常、さまざまなパーティショニングスキームが必要となります。そのため、tMatchGroupコンポーネントを順次使用し、異なるブロッキングキーに対してデータをマッチングさせる必要があります。

複数パスによるデータマッチングの例は、古典的マッチングをご覧ください。

tRecordMatchingコンポーネントを使った作業

tRecordMatchingは、メインフローからの比較カラムとルックアップフローからの参照カラムを結合させます。定義されたマッチング戦略に従い、tRecordMatchingは、マッチングデータ、マッチング可能なデータ、拒否されたデータを出力します。マッチング戦略を調整する場合、ユーザ定義のマッチングスコアは対象データのマッチングレベルを決定するうえで重要です。

tRecordMatchingコンポーネントの詳細は、古典的マッチングをご覧ください。

機械学習のアプローチ

機械学習アプローチは、膨大なデータをマッチングさせたい場合に便利です。

モデルに学習させて一致を予測させれば、データマッチングのプロセスを自動化できます。

データマッチングのプロセス

古典的アプローチと比較すると、機械学習アプローチには次のような利点があります。

  • 異なるブロッキングメカニズムにより、より高速でスケーラブルな計算が可能になります。機械学習アプローチの場合、ブロッキングは分割ではありません。1つのレコードがさまざまなブロックに属することもあり、ブロックのサイズも明確に区切られています。ただし、tGenKeyコンポーネントではそうではありません。
  • 機械学習モデルによって学ばれ、保存されるルールは、人間が設計したマッチングルールよりもはるかに複雑でありながら恣意性は抑えられます。
  • コンポーネントの設定はさらにシンプルです。機械学習モデルは特にマッチング距離や類似度のしきい値などを自動的に学習します。
  1. 最初のステップでは、tMatchPairingコンポーネントを使ってデータセットを事前分析します。このtMatchPairing コンポーネントによって、一意レコード、完全一致レコード、疑わしいマッチペア、疑わしいマッチペアのサンプルが出力されます。

    その他の例は、疑わしいペアを作成してTalend Data Stewardshipにサンプルを書き込むソースデータの疑わしいペアと疑わしいサンプルを計算をご覧ください。

  2. 2番目のステップは、サンプルからの疑わしいマッチペアを "match" または "no-match" として手動でラベル付けすることです。ラベル付けの作業ではTalend Data Stewardshipを活用できます。

    たとえば"match"、"possible match"、"different"など、2つ以上のクラスを使用できます。

    Talend Data Stewardshipでレコードのペア間の関係を決定するグルーピングタスクの処理については、Talend Data Stewardshipの例をご覧ください。

    Talend Data Stewardshipのグルーピングタスクの詳細は、Talend Help Center (https://help.talend.com)で、グルーピングタスクを処理してレコードのペア間の関係を決定する方法をご覧ください。

  3. 3番目のステップは、ラベル付けした疑わしいマッチペアをtMatchModelコンポーネントに送信して分類子モデルを学習、および出力することです。

    一致するモデルを生成する例は、このシナリオをご覧ください。

    Talend Help Center (https://help.talend.com)に一致モデルの生成方法の例があります。

  4. 4 番目のステップは、tMatchModelで計算されたモデルをtMatchPredictコンポーネントで使用し、大規模なデータセットの疑わしいペアを自動的にラベル付けすることです。

    疑わしいペアに指定のラベルを付ける例は、このシナリオをご覧ください。

    サスペクトペアに割り当て済みのラベルでラベル付けする例は、Talend Help Center (https://help.talend.com)をご覧ください。

よいサンプルとは

サンプルはバランスが取れていることが必要です。つまり、各クラス("match" と "no match")のレコード数がほぼ同じであることが必要です。データサンプルのバランスが悪いと、生成されるモデルが不完全なものになります。

また、サンプルが多様であることも大切です。サンプルの例が多様であればあるほど、モデルが学習したルールもより効果的になります。

そして、サンプルが適切なサイズであることです。数百万件のレコードが含まれる大規模なデータセットの場合は、数百から数千件のサンプルで十分かもしれません。データセットのレコード数が10,000レコード未満であれば、サンプルサイズはフルデータセットの1~10%であることが必要です。

tMatchModelがモデルを生成するしくみ

定義されたカラムについて可能な限り多くの情報が得られるよう、機械学習アルゴリズムでは特徴量と呼ばれるさまざまなメジャーが計算されます。

モデルを生成するため、tMatchModelはランダムフォレストアルゴリズムを使ってデータを解析します。ランダムフォレストとは、分類問題解決のために使用されるデシジョンツリーのコレクションのことです。デシジョンツリーの各ノードは、入力データに関連付けられた特徴量に関する質問に対応しています。ランダムフォレストは、デシジョンツリーを成長させることによって分類の精度を向上させてモデルを生成します。

Apache Sparkでのデータマッチングの詳細は、tMatchModelのプロパティをご参照ください。

マスターレコードを存続

tRuleSurvivorshipコンポーネントやTalend Data Stewardshipを使えばマスターレコードを存続させることができます。

tRuleSurvivorshipを使ってレコードをマージ

重複、および重複の可能性がありグループ化されているものを推定した後は、tRuleSurvivorshipコンポーネントを使い、最善のデータによって重複する各グループに単一の表現を作成できます。これはサバイバーと呼ばれます。

tMatchPredictによってラベル付けされた疑わしいペア、そしてtMatchPairingによって計算された一意行からクリーンなデータセットを作成する例は、機械学習を使ってマッチングをご覧ください。

tMatchPredictによってラベル付けされた疑わしいペアからクリーンなデータセットを作成する例は、Talend Help Center (https://help.talend.com)で見つかります。

事務的なレビューとレコードのマージでTalend Data Stewardshipを使用

Talend Data Stewardshipでマージキャンペーンを追加すれば、サバイバーシップルールのレビューと変更、マスターレコードの作成、データのマージが可能になります。

Talend Data Stewardshipでのマージングキャンペーンの詳細は、Talend Data Stewardshipの例をご覧ください。

Talend Data Stewardshipでは、データスチュワードが次のようなデータスチュワードシップタスクの解決を担当するビジネスユーザーとなります。
  • 定義済みのアービトレーション選択リストから選択したラベルを割り当ててデータを分類する
  • 重複する可能性がある複数のレコードを1つのレコードにマージする

    権限を持つデータスチュワードはマージングタスクによって、重複する可能性があるソースレコードを1つのレコード(ゴールデンレコード)にマージできます。マージングタスクの結果として、データスチュワードによりゴールデンレコードが生成されます。

    Talend Data Stewardshipでのマージタスクの詳細は、Talend Data Stewardshipの例をご覧ください。

    Talend Data Stewardshipでのマージングタスクの詳細は、Talend Help Center (https://help.talend.com)でマージングタスクの処理に関する記事をご覧ください。

    ソースレコードは同じソース(データベース重複除去)または異なるソース(データベース照合)から取得できます。

機械学習コンポーネントを使った再マッチングの方法

継続的マッチングを実行

クリーンなデータセットに対して新しいレコードをマッチングさせる場合は、マッチングプロセスを最初からやり直す必要はありません。

継続的マッチングは、クリーンなデータセットを再利用してインデックスを作成すれば実行できます。

継続的マッチングタスクを実行するためには、Elasticsearchのバージョン5.1.2以降が稼働している必要があります。

連続マッチングの処理は以下のステップで構成されています。

  1. まず、データセットからクリーンなレコードと重複除去されたレコードを分離するためのサフィックスを計算し、tMatchIndexを使ってElasticsearchでインデックス化します。

    tMatchIndexを使ってElasticsearchでデータをインデックス化する例は、このシナリオをご覧ください。

    tMatchIndexを使ってElasticsearchでデータをインデックス化する例は、Talend Help Center (https://help.talend.com)で見つかります。

  2. 次のステップは、tMatchIndexPredictを使って、インデックス化されたレコードと同じスキーマを持つ新しいレコードを比較し、一致するレコードと一致しないレコードを出力することです。このコンポーネントでは、tMatchPairingtMatchModelによって生成されたペアリングおよび一致モデルが使われます。

    参照データセットのレコードに対して新しいレコードをマッチングさせる例は、このシナリオをご覧ください。

    tMatchIndexを使って継続的マッチングを実行する例は、Talend Help Center (https://help.talend.com)をご覧ください。

次に、tRuleSurvivorshipを使って、マッチングしないレコードをクリーンアップして重複除去し、tMatchIndexを使ってElasticsearchでインデックス化されたクリーンデータセットを入力します。

完全一致

完全一致とは、2つのレコードの属性のサブセットが同一であることを言います。

コンポーネント

tUniqRow

ジョブの入力または出力フローのデータクオリティを保証します。

tUniqRowは、エントリーを比較して、入力フローから重複エントリーを除外します。

デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。機能マネージャーを使ってインストールする必要があります。 詳細は、機能マネージャーを使って機能をインストールをご覧ください。

使用しているTalend製品に応じて、このコンポーネントは次のジョブのフレームワークの1つ、一部、またはすべてで使用できます。

  • 標準:tUniqRowの標準プロパティをご覧ください。

    このフレームワーク内のコンポーネントは、すべてのTalend製品で利用できます。

  • Spark Batch:Apache Spark BatchのtUniqRowプロパティをご覧ください。

    このフレームワーク内のコンポーネントは、ビッグデータ対応のサブスクリプションTalend 製品すべて、およびTalend Data Fabricで利用できます。

  • Spark Streaming:Apache Spark StreamingのtUniqRowプロパティをご覧ください。

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

tUniqRowの標準プロパティ

このプロパティは[Standard] (標準)ジョブフレームワークで実行するtUniqRowの設定で使用されます。

[Standard] (標準) tUniqRowコンポーネントはデータクオリティファミリーにのコンポーネントです。

このフレームワーク内のコンポーネントは、すべてのTalend製品で利用できます。

基本設定

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

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

スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。

  • [View schema] (スキーマの表示): スキーマのみを表示する場合は、このオプションを選択します。

  • [Change to built-in property] (組み込みのプロパティに変更): ローカルで変更を行うためにスキーマを組み込みに変更する場合は、このオプションを選択します。

  • [Update repository connection] (リポジトリー接続をアップデート): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。

    変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーのコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

このコンポーネントはダイナミックスキーマ機能の利点を備えているので、ソースファイルから不明なカラムを取得したり、各カラムを個別にマッピングしなくてもソースからカラムを一括してコピーしたりできます。ダイナミックスキーマの詳細は、 Talend Studio ユーザーガイドをご覧ください。

このダイナミックスキーマ機能は、テーブルの不明なカラムを取得する目的で設計されており、この目的に限り使用をお勧めします。テーブルの作成で使用することは勧められていません。

 

[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] (統計情報)

このチェックボックスをオンにすると、ジョブレベルやコンポーネントレベルでジョブ処理メタデータが収集されます。

グローバル変数

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

NB_UNIQUES: 一意の行の数。これはAfter変数で、整数を返します。

NB_DUPLICATES: 重複行の数。これはAfter変数で、整数を返します。

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

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

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

変数の詳細は、 Talend Studio ユーザーガイドをご覧ください。

使用方法

[Usage rule] (使用ルール)

このコンポーネントはデータのフローを処理し、入力と出力を必要とするため、中間ステップとして定義されます。

Apache Spark BatchのtUniqRowプロパティ

このプロパティは[Spark Batch]ジョブフレームワークで実行するtUniqRowの設定で使用されます。

[Spark Batch]tUniqRowコンポーネントは、変換処理ファミリーに属しています。

このフレームワーク内のコンポーネントは、ビッグデータ対応のサブスクリプションTalend 製品すべて、およびTalend Data Fabricで利用できます。

基本設定

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

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

スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。

  • [View schema] (スキーマの表示): スキーマのみを表示する場合は、このオプションを選択します。

  • [Change to built-in property] (組み込みのプロパティに変更): ローカルで変更を行うためにスキーマを組み込みに変更する場合は、このオプションを選択します。

  • [Update repository connection] (リポジトリー接続をアップデート): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。

    変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーのコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

 

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

 

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

[Unique key] (一意キー)

このエリアで、特定のカラムで重複除去を実行する1つ以上のカラムを選択します。

- [Key attribute] (キー属性)チェックボックスをオンにすると、すべてのカラムで重複除去が実行されます。

- [Case sensitive] (大文字と小文字を区別)チェックボックスをオンにすると、大文字小文字が区別されます。

詳細設定

[Only once each duplicated key] (各重複キーを1つに限定)

このチェックボックスをオンにすると、カラムの最初の重複エントリーのみが重複の出力フローに送信するキーとして定義されます。

使用方法

[Usage rule] (使用ルール)

このコンポーネントは中間ステップとして使用されます。

このコンポーネントは、所属するSpark Batchのコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。

特に明記していない限り、このドキュメンテーションのシナリオでは、標準ジョブ、つまり従来の Talend データ統合ジョブだけを扱います。

[Spark Connection] (Spark接続)

[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
  • Yarnモード(YarnクライアントまたはYarnクラスター):
    • Google Dataprocを使用している場合、[Spark configuration] (Spark設定)タブの[Google Storage staging bucket] (Google Storageステージングバケット)フィールドにバケットを指定します。

    • HDInsightを使用している場合、[Spark configuration] (Spark設定)タブの[Windows Azure Storage configuration] (Windows Azure Storage設定)エリアでジョブのデプロイメントに使用するブロブを指定します。

    • Altusを使用する場合は、[Spark configuration] (Spark設定)タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。
    • オンプレミスのディストリビューションを使用する場合は、クラスターで使用されているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、tHDFSConfigurationを使用します。

  • [Standalone mode] (スタンドアロンモード): tHDFSConfigurationtS3Configurationなど、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。

    ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。

この接続は、ジョブごとに有効になります。

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つのオプションを利用できます。

  • [View schema] (スキーマの表示): スキーマのみを表示する場合は、このオプションを選択します。

  • [Change to built-in property] (組み込みのプロパティに変更): ローカルで変更を行うためにスキーマを組み込みに変更する場合は、このオプションを選択します。

  • [Update repository connection] (リポジトリー接続をアップデート): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。

    変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーのコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

 

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

 

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

[Unique key] (一意キー)

このエリアで、特定のカラムで重複除去を実行する1つ以上のカラムを選択します。

- [Key attribute] (キー属性)チェックボックスをオンにすると、すべてのカラムで重複除去が実行されます。

- [Case sensitive] (大文字と小文字を区別)チェックボックスをオンにすると、大文字小文字が区別されます。

詳細設定

[Only once each duplicated key] (各重複キーを1つに限定)

このチェックボックスをオンにすると、カラムの最初の重複エントリーのみが重複の出力フローに送信するキーとして定義されます。

使用方法

[Usage rule] (使用ルール)

このコンポーネントは中間ステップとして使用されます。

このコンポーネントは、所属するSpark Streamingのコンポーネントのパレットと共に、Spark Streamingジョブを作成している場合にだけ表示されます。

特に明記していない限り、このドキュメンテーションのシナリオでは、標準ジョブ、つまり従来の Talend データ統合ジョブだけを扱います。

[Spark Connection] (Spark接続)

[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
  • Yarnモード(YarnクライアントまたはYarnクラスター):
    • Google Dataprocを使用している場合、[Spark configuration] (Spark設定)タブの[Google Storage staging bucket] (Google Storageステージングバケット)フィールドにバケットを指定します。

    • HDInsightを使用している場合、[Spark configuration] (Spark設定)タブの[Windows Azure Storage configuration] (Windows Azure Storage設定)エリアでジョブのデプロイメントに使用するブロブを指定します。

    • Altusを使用する場合は、[Spark configuration] (Spark設定)タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。
    • オンプレミスのディストリビューションを使用する場合は、クラスターで使用されているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、tHDFSConfigurationを使用します。

  • [Standalone mode] (スタンドアロンモード): tHDFSConfigurationtS3Configurationなど、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。

    ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。

この接続は、ジョブごとに有効になります。

シナリオ

エントリーの重複を除去

5つのコンポーネントが含まれているこのジョブでは、入力名リストのエントリーをソートし、重複する名前を探して[Run] (実行)タブに固有名と重複名を表示させます。

ジョブを設定

手順

  1. [Palette] (パレット)からデザインワークスペースに、tFileInputDelimitedtSortRowtUniqRow、およびtLogRowのコンポーネントを2つドロップします。
  2. オプション: コンポーネント名はダブルクリックすれば変更できます。
  3. [Row] (行) > [Main] (メイン)接続を使って、tFileInputDelimitedコンポーネント、tSortRowコンポーネント、tUniqRowコンポーネントを接続させます。
  4. [Main] (メイン) > [Uniques] (一意)接続を使って、tUniqRowコンポーネントと最初のtLogRowコンポーネントを接続します。
  5. [Main] (メイン) > [Duplicates] (重複)接続を使って、tUniqRowコンポーネントと2番目のtLogRowコンポーネントを接続します。

コンポーネントを設定

手順

  1. tFileInputDelimitedコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
  2. [File Name/Stream] (ファイル名/ストリーム)の横にある[...]ボタンをクリックして、入力ファイルを参照します。
  3. ヘッダーとフッターの行を定義します。
    この例では、入力ファイルの最初の行がヘッダー行です。
  4. [Edit schema] (スキーマを編集)をクリックし、このコンポーネントのスキーマを定義します。
    1. [+]ボタンをクリックしてカラムを追加します。この例では、入力ファイルにIdFirstNameLastNameAgeCityという5つのカラムがあります。
    2. [OK]をクリックします。
  5. tSortRowコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
  6. エントリーを名前のアルファベット順に並べ替える場合は、[+]ボタンをクリックしてCriteriaテーブルに2つの行を追加します。
    1. [Schema column] (スキーマカラム)FirstNameカラムとLastNameカラムを選択します。
    2. ソートタイプとしてalphaを選択します。
    3. ソート順序としてascを選択します。
  7. tUniqRowコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
  8. [Unique key] (一意キー)エリアで、重複除去を実行するカラムを選択します。
    この例では、重複する名前を並べ替えます。
  9. tLogRowコンポーネントの[Basic settings] (基本設定)ビューで[Table] (テーブル)オプションを選択し、ジョブの実行結果をテーブルモードで表示させます。

ジョブを保存して実行

手順

  1. ジョブを保存します。
  2. [F6]を押すか、[Run] (実行)タブの[Run] (実行)ボタンをクリックしてジョブを実行します。
    一意名と重複名が別々のテーブルに表示されます。

ダイナミックスキーマに基づいてエントリーの重複を除去

このシナリオは、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人の名前だけがリストに残るようにします。このジョブのすべてのコンポーネントでダイナミックスキーマ機能がサポートされているため、このフィーチャーを活用することでスキーマのカラムを個別に設定する時間を節約できます。

ジョブを設定

手順

  1. [Palette] (パレット)からtFileInputDelimitedtExtractDynamicFieldstUniqRowtFileOutputDelimited、およびtLogRowのコンポーネントをデザインワークスペースにドロップし、ロールを識別しやすくなるよう上記のようにコンポーネントに名前をつけます。
  2. オプション: コンポーネント名はダブルクリックすれば変更できます。
  3. [Row] (行) > [Main] (メイン)接続を使って、tFileInputDelimitedコンポーネント、tExtractDynamicFieldsコンポーネント、tUniqRowコンポーネントを接続させます。
  4. [Main] (メイン) > [Uniques] (一意)接続を使って、tUniqRowコンポーネントと最初のtLogRowコンポーネントを接続します。
  5. [Main] (メイン) > [Duplicates] (重複)接続を使って、tUniqRowコンポーネントと2番目のtLogRowコンポーネントを接続します。

コンポーネントを設定

手順

  1. tFileInputDelimitedコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
    重要: ダイナミックスキーマ機能は[Built-In] (組み込み)モードでのみサポートされており、ヘッダー行を付けるには入力ファイルが必要になります。
  2. [File Name/Stream] (ファイル名/ストリーム)の横にある[...]ボタンをクリックして、入力ファイルを参照します。
  3. ヘッダーとフッターの行を定義します。
    この例では、入力ファイルの最初の行がヘッダー行です。
  4. [Edit schema] (スキーマを編集)をクリックし、このコンポーネントのスキーマを定義します。
    この例では、入力ファイルにFirstNameLastNameHouseNoStreetCityという5つのカラムがあります。ここで、ダイナミックスキーマフィーチャーを活用するため、スキーマに1列ダイナミックカラムを定義します(この例ではDynaとします)。
    1. [+]ボタンをクリックして、新しい行を追加します。
    2. [Column] (カラム)フィールドにDynaと入力します。
    3. [Type] (タイプ)リストから[Dynamic] (ダイナミック)を選択します。
    4. [OK]をクリックします。
  5. tExtractDynamicFieldsコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
    このコンポーネントを使用して、入力スキーマのダイナミックカラムを2つのカラム (1つは名前、もう1つはファミリー関連情報) に分割します。これを行うには、次の手順に従います。
    1. [Edit schema] (スキーマを編集)をクリックして、[Schema] (スキーマ)ダイアログボックスを開きます。
    2. 出力パネルで、[+]ボタンをクリックして出力スキーマに2つのカラムを追加し、それぞれ[FirstName][FamilyInfo]という名前を付けます。
    3. FirstNameカラム用に、[Type] (タイプ)リストでStringを選択します。
      これによって入力スキーマからこのカラムを抽出し、名前リストに各自のファーストネームが表示されるようになります。
    4. FamilyInfoカラム用に、[Type] (タイプ)リストでDynamicを選択します。
      このカラムによって、名前リストにある各人物の残りの情報(ラストネーム、家屋番号、通り、都市など)が表示され、すべてが合わさってファミリーが識別されます。
    5. [OK]をクリックしてスキーマをプロパゲートし、[Schema] (スキーマ)ダイアログボックスを閉じます。
  6. tUniqRowコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
  7. [Unique key] (一意キー)エリアで、FamilyInfoカラム用に[Key attribute] (キーの属性)チェックボックスをオンにします。
    これによってファミリー情報で重複除去が行われます。
  8. tFileOutputDelimitedコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
  9. 出力ファイルパスを定義して[Include header] (ヘッダーを含める)チェックボックスを選択します。
  10. その他の設定はそのままにしておきます。
  11. tLogRowコンポーネントの[Basic settings] (基本設定)ビューで[Table] (テーブル)オプションを選択し、ジョブの実行結果をテーブルモードで表示させます。

ジョブを保存して実行

手順

  1. ジョブを保存します。
  2. [F6]を押すか、[Run] (実行)タブの[Run] (実行)ボタンをクリックしてジョブを実行します。
    重複するファミリーに関数情報と共に出力ファイルが作成されます。リストに残るのは1ファミリーにつき1名のみです。

Fuzzy matching

ファジーマッチングにより、部分的に一致するレコードを判定できます。

コンポーネント

tFuzzyMatch

メインフローのカラムとルックアップフローの参照カラムを比較し、距離を表示するメインフローデータを出力します。

デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。機能マネージャーを使ってインストールする必要があります。 詳細は、機能マネージャーを使って機能をインストールをご覧ください。

tFuzzyMatchの標準プロパティ

これらのプロパティを使って、[Standard] (標準)ジョブフレームワーク内で実行されているtFuzzyMatchを設定します。

[Standard] (標準) tFuzzyMatchコンポーネントは、データクオリティファミリーに属しています。

このフレームワーク内のコンポーネントは、すべてのTalend製品で利用できます。

基本設定

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

スキーマとは行の説明で、処理された後に次のコンポーネントに渡されるフィールドの数を定義するものです。スキーマは[Built-in] (組み込み)か、[Repository] (リポジトリー)にリモートで保存されます。

2つの読み取り専用列である[Value] (値)と[Match] (一致)が自動的に出力スキーマに追加されます。

 

[Built-in] (組み込み): このコンポーネントに対してのみ作成されたスキーマがローカルに保管されます。関連項目: Talend Studioユーザーガイドをご覧ください。

 

[Repository] (リポジトリー): 既存のスキーマがリポジトリーに保管されているので、さまざまなプロジェクトやジョブデザインで再利用できます。関連項目: Talend Studioユーザーガイドをご覧ください。

[Matching type ] (一致するタイプ)

次の中から適切な一致アルゴリズムを選択します。

Levenshtein: 編集距離理論に基づきます。参照エントリーと一致するエントリーに必要な挿入、削除、置換の回数を計算します。

[Metaphone] (メタフォン):発音によるエントリーの索引付けのための音声アルゴリズムに基づいています。ルックアップ参照のすべてのエントリーの発音をロードし、メインフローのすべてのエントリーを参照フローのエントリーに対してチェックします。 漢字はサポートしていません。

[Double Metaphone] (二重メタフォン): 音声アルゴリズムの新しいバージョン。元のアルゴリズムよりも正確な結果をもたらすメタフォン。文字列のプライマリーコードとセカンダリーコードの両方を返すことができます。これはあいまいなケースや共通の系統を持つ姓の複数のバリエーションに対応しています。 漢字はサポートしていません。

[Min distance] (最小距離)

(Levenshteinのみ)参照と一致するために許可される変更の最小数を設定します。0に設定すると、完全一致のみが返されます。

[Max distance] (最大距離)

(Levenshteinのみ)参照と一致するために許可される変更の最大数を設定します。

[Matching column] (一致カラム)

参照(ルックアップ)キーカラムに対して照合が必要なメインフローのカラムを選択します

[Unique matching] (一意の一致)

利用できるマッチングがいくつか存在する場合は、可能な限りマッチングさせるため、このチェックボックスをオンにします。

[Matching item separator] (項目セパレータの一致)

いくつかの一致が利用可能な場合、一意の一致ボックスが選択されていなければ、それらはすべて表示されます。すべての一致間の区切り文字を定義します。

詳細設定

[tStatCatcher Statistics] (tStatCatcher統計)

このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。

グローバル変数

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

NB_LINE: 入力コンポーネントによって読み取られた行の数、または出力コンポーネントに転送された行の数。これはAfter変数で、整数を返します。

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

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

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

変数の詳細は、 Talend Studio ユーザーガイドをご覧ください。

使用方法

[Usage rule] (使用ルール)

このコンポーネントは起動可能(緑色の背景)ではなく、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] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。関連項目: Talend Studioユーザーガイドをご覧ください。

 

[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。関連項目: Talend Studioユーザーガイドをご覧ください。

[Column] (カラム)

入力フロー内のすべてのカラム列のリスト。

[Key Attribute] (キー属性)

確認するカラムの横にあるチェックボックスをオンにします。

[Matching type ] (一致するタイプ)

関連する一致アルゴリズムをリストから選択します。

[Exact Match] (完全一致): 処理された各エントリーを、まったく同じ値を持つすべての可能な参照エントリーに一致させます。

Levenshtein: 編集距離理論に基づきます。参照エントリーと一致するエントリーに必要な挿入、削除、置換の回数を計算します。

[Metaphone] (メタフォン):発音によるエントリーの索引付けのための音声アルゴリズムに基づいています。ルックアップ参照のすべてのエントリーの発音をロードし、メインフローのすべてのエントリーを参照フローのエントリーに対してチェックします。 漢字はサポートしていません。

[Double Metaphone] (二重メタフォン): 音声アルゴリズムの新しいバージョン。元のアルゴリズムよりも正確な結果をもたらすメタフォン。文字列のプライマリーコードとセカンダリーコードの両方を返すことができます。これはあいまいなケースや共通の系統を持つ姓の複数のバリエーションに対応しています。 漢字はサポートしていません。

[Min. Distance] (最小距離)

Levenshteinのみ参照と一致するために許可される変更の最小数を設定します。0に設定すると、[Exact Match] (完全一致)のみが返されます。

[Max. Errors] (最大エラー数) Distance] (最大距離)

Levenshteinのみ参照と一致するために許可される変更の最大数を設定します。

詳細設定

[tStatCatcher Statistics] (tStatCatcher統計)

このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。

グローバル変数

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

NB_UNIQUES: 一意の行の数。これはAfter変数で、整数を返します。

NB_DUPLICATES: 重複行の数。これはAfter変数で、整数を返します。

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

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

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

変数の詳細は、 Talend Studio ユーザーガイドをご覧ください。

使用方法

使用ルール

このコンポーネントは起動可能(緑色の背景)ではなく、1つの入力コンポーネントと2つの出力コンポーネントが必要です。

シナリオ

ファーストネーム内のLevenshtein距離0のチェック

このシナリオでは、入力ファイルの[First Name] (名前)カラムと参照入力ファイルのデータとの間の編集距離をチェックすることを目的とした4コンポーネントジョブについて説明します。このLevenshtein型チェックの出力は、メインフローの内容と共にテーブルに表示されます

ジョブを設定

手順

  1. [Palette] (パレット)から次のコンポーネントをデザインワークスペースtFileInputDelimited(x2)、tFuzzyMatchtLogRowにドラッグ&ドロップします。
  2. [Row] (行) > [Main] (メイン)接続を使用して、tFileInputDelimitedコンポーネントをtFuzzyMatchコンポーネントにリンクします。
  3. 2番目のtFileInputDelimitedコンポーネントを、Row > Main接続(デザインワークスペースのLookup行として表示)を使用してtFuzzyMatchにリンクします。
  4. Row > Main接続を使用して、tFuzzyMatchコンポーネントを標準出力tLogRowにリンクします。

コンポーネントの設定

手順

  1. 最初のtFileInputDelimited[Basic settings] (基本設定)ビューで定義します。解析する入力ファイルをシステムで参照します。
  2. コンポーネントのスキーマを定義します。このサンプルでは、入力スキーマには[Firstname] (名)[gender] (性別)の2つのカラムがあります。
  3. 同様に、2番目のtFileInputDelimitedコンポーネントを定義します。
    警告:

    ルックアップフローのスキーマで参照列がキーカラムとして設定されていることを確認します。

  4. tFuzzyMatchコンポーネントをダブルクリックして、その[Basic settings] (基本設定)ビューを開き、そのスキーマを定義します。
    メインフローを参照に対してチェックするには、[Schema] (スキーマ)[Main] (メイン)入力フロースキーマと一致する必要があります。
    [Value] (値)[Matching] (一致)の2つのカラムが出力スキーマに追加されていることにご注意ください。これらは標準一致情報であり、読み取り専用です。
  5. 受信データの確認に使用する方法を選択します。このシナリオでは、Levenshteinは使用する[Matching type ] (一致するタイプ)です。
  6. 次に距離を設定します。この方法では、距離は、エントリーが参照と完全に一致するために実行する必要がある文字変更(挿入、削除、置換)の数です。
    このユースケースでは、最小距離と最大距離の両方を0に設定します。これによって正確な一致のみが出力されます。
  7. また、[Case sensitive] (大文字と小文字を区別)チェックボックスをオフにします。
  8. 一致するカラムと参照カラムが正しく選択されていることを確認します。
  9. 他のパラメーターはデフォルトのままにします。

ジョブを実行

手順

ジョブを保存し、[F6]を押してジョブを実行します。

タスクの結果

編集距離が0(最小値と最大値)に設定されているので、メインフローとルックアップ(参照)フローとの間の規則的な結合の結果が出力に表示されるため、値0の完全一致のみが表示されます。

よりわかりやすい例として、最小距離が1で最大距離が2の場合を挙げます。 シナリオをご覧ください。

ファーストネーム内のLevenshtein距離1または2のチェック

このシナリオは、上記のシナリオに基づいています。tFuzzyMatchコンポーネントの最小距離と最大距離の設定のみが変更され、表示される出力が変更されます。

手順

  1. tFuzzyMatch[Component] (コンポーネント)ビューで、最小距離を0から1に変更します。これは正確な一致を直ちに除外します(距離は0になります)。
  2. 最大距離も2に変更してください。最大2文字の不一致を示すすべての一致するエントリーが出力されます。
    その他の変更は必要ありません。
  3. 複数の参照がメインフローエントリーと一致する可能性があるので、[Matching item separator] (項目セパレータの一致)が定義されていることをご確認ください。
  4. 新しいジョブを保存し、[F6]を押して実行します。
    編集距離が2に設定されているため、メインフローの一部のエントリーは複数の参照エントリーと一致します。

タスクの結果

次のシナリオで説明するように、メタフォンという別のメソッドを使用して、メインフローと参照間の距離を評価することもできます。

ファーストネームのメタフォニック距離のチェック

このシナリオは、上記のシナリオに基づいています。

手順

  1. [Matching type ] (一致するタイプ)メタフォンに変更します。一致方法は基準の音韻との不一致に基づいているため、設定する最小距離も最大距離もありません。
  2. ジョブを保存し、[F6]を押します。一致する可能性のある音声値が表示されます。

異なる一致方法を使用して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

ジョブを設定

手順

  1. [Palette] (パレット)から、tFileInputDelimitedtFuzzyUniqRow、および2つのtFileOutputExcelコンポーネントをデザインワークスペースにドロップします。
  2. [Main] (メイン)リンクを使用してtFileInputDelimitedtFuzzyUniqRowに接続し、1つの固有リンクの[Uniques] (一意値)ともう1つは[Duplicates] (重複値)リンクを使用して、tFuzzyUniqRowtFileOutputExcelコンポーネントに接続します。

コンポーネントの設定

手順

  1. tFileInputDelimitedをダブルクリックして[Basic settings] (基本設定)ビューを開き、プロパティを定義します。
  2. [File name] (ファイル名)の横にある[...]ボタンをクリックし、入力データを保持するファイルを参照します。
  3. 必要に応じて、ヘッダーフッター、および制限を設定します。
    このシナリオでは、[Header] (ヘッダー)を1に設定します。フッターと処理された行数の制限は設定されていません。
  4. [Edit schema] (スキーマを編集)をクリックして、ソース区切りファイルのデータ構造を記述できるダイアログボックスを開きます。
    このシナリオでは、ソーススキーマは、IDStatusFirstNameEmailCityInitial、およびZipCodeの各カラムで構成されます。
  5. tFuzzyUniqRowをダブルクリックして[Basic settings] (基本設定)ビューを表示し、プロパティを定義します。
  6. [Key Attribute] (キー属性)カラムで、定義されている一致メソッド、名前Eメール都市郵便番号を使用してチェックするカラムの横にあるチェックボックスをこのサンプルで選択します。
  7. [Matching type ] (一致するタイプ)カラムで、選択した各カラムで使用する一致方法を設定します。
    このサンプルでは、Leveshtein名前Eメール郵便番号カラムの一致方法として使用され、[Double Metaphone] (二重メタフォン)都市カラムの一致方法として使用されます。
    次に、Levenshteinメソッドの最小距離と最大距離を設定します。この方法では、距離は、エントリーが参照と完全に一致するために実行する必要がある文字変更(挿入、削除、置換)の数です。この例では、最小距離は0、最大距離は2になります。これにより、FirstNameカラム、Emailカラム、ZipCodeカラムの完全に一致するエントリー、または最大2文字の変更があるエントリーがすべて出力されます。この一致方法は、入力データの音声の不一致に基づいているため、[Double Metaphone] (二重メタフォン)に設定する最小距離も最大距離もありません。
  8. 最初のtFileOutputExcelをダブルクリックして[Basic settings] (基本設定)ビューを表示し、プロパティを定義します。
  9. 宛先のファイル名とシート名を設定し、[Include Header] (ヘッダーを含める)チェックボックスをオンにします。
  10. 2番目のtFileOutputExcelについても同じ操作を行います。

ジョブを実行

手順

ジョブを保存し、F6をクリックして実行します。

タスクの結果

tFuzzyUniqRowLevenshteinメソッドを使用して、定義された3つのカラムを別々に比較し、Double Metaphoneメソッドを使用して[City] (都市)カラムのデータを比較し、最後に一意の行と重複する行を定義された出力ファイルに渡します。このサンプルでは、最初の2つの行が一致しているため、2番目の行は 「duplicates」出力に入ります。

生成されたFIDカラムは、現在のレコードが参照する元のレコードの参照識別子を示します。

3行目は一意であり、「一意」の出力に入ります。