#08 : Alteryxサンプルワークフロー「ベンダーファジーマッチング」- Alteryx & Tableau 連携 Advent Calendar 2018
当エントリは『Alteryx&Tableau連携 Advent Calendar 2018』シリーズの8本目のエントリです。
- Alteryx & Tableau 連携 Advent Calendar 2018 - Qiita
- Alteryx & Tableau 連携 Advent Calendar 2018 | シリーズ | DevelopersIO
当エントリでは、Alteryx Designerの実行ワークフローサンプル「Vendor Fuzzy Matching(ベンダーファジーマッチング)」の内容を紹介します。
目次
「本日のテーマ」概要紹介
AlteryxとTableauはそのツール特性から非常に相性が良く、製品間それぞれにパートナー企業としての(特集)ページが設けられています。
本日は、Alteryx Designerの「Sample Workflows」にて展開されている「Tableau Starter Kit」の中で、「Data Preparation」配下の「Vendor Fuzzy Matching(ベンダーファジーマッチング)」というサンプルワークフローについて見ていきたいと思います。
このワークフローでは、2つのソースから成る「厄介なデータ」をいかにして迅速に組み合わせるか、という内容について紹介しています。ここでの"厄介"とは、一致させる情報同士が正確な(完全一致している)状況ではないものを指します。Alteryxではツールを用いて「ファジーマッチング(あいまい一致)」させる事が可能です。
「ベンダーのレビュー」と「経費」を結び付けて「評価が悪く、且つPOの価格が高いベンダーのリスト」を作成し、ベンダーが品質の高い製品を一貫して提供できるようにするためのインサイトを(洞察)を得るためのTableauワークブックを作成しています。
ワークフローの全体像
サンプルワークフローの全体像は以下となります。
ワークフローを読み解く
こちらのワークフロー、解説のためのスライド資料的なものがAlteryxで作られていますので、その内容を順を追って見ていく事にしたいと思います。
このワークフローでは、ベンダーデータとレビューデータを「ファジーマッチ(あいまい一致)」ツールに掛けます。このツールでは、値が正確に一致しない場合でも、類似した内容であれば一致させる事が出来ます。
このワークフローの目的は、完了したレビューとビジネスアカウント番号を一致させることです。 ビジネス名は手動で入力されているのでベンダーデータとレビューデータには若干ながら違いがある場合が想定されます。ファジーマッチのフローを経た後、一致したレコードは元データやマスタファクトデータとマージされ、最終的にTableauに出力されます。
このワークフローでは、3つのデータセットを利用しています。
- ベンダー
- ベンダーレビュー
- マスターファクトテーブル
ワークフローの序盤では、上記2つのデータを入力データとして設定しています。
2つの入力データをUnion Toolで統合。
統合の方法については[Manually Configure Fields]を選択して、任意の条件でデータを統合させています。
[VendorReviewID]と[VendorID]を同じ列(Col11)に設定していますが、この項目を後続で設定するファジーマッチの判定に使います。ファジーマッチツールでは、両方のデータソースの各レコードに固有のIDが必要ですが、データソース内のIDは、両方のデータセットに固有であり、ファジーマッチツールの要件を満たしています。
Formula Toolを使い、新しい要素:[Business ID]を生成。[VendorID]と[NAME]を連結させる形で生成します。
このワークフローのポイントとなる「ファジーマッチ」は、計2箇所で実施しています。
「ファジーマッチ」を行う上で設定する項目は非常に多岐に渡っています。当エントリではざっくり紹介するに留めたいと思います(別途エントリを改めて詳解してみたいと思います)が、凡そ以下の様な設定を行っています。
- 一致モードの選択
- Purge Mode(パージモード: すべてのレコードを比較)
- Marge Mode(マージモード: 別のソースからのレコードのみが比較)
- レコードIDフィールドの指定
- 一致の閾値(パーセンテージ指定、デフォルト80%)
- 一致フィールドの指定
- 一致スタイルの指定
1つ目のファジーマッチでは「会社名」、
2つ目のファジーマッチでは「電話番号」の一致をチェックしています。
ファジーマッチツールで得られたデータ同士を、Union Toolで統合し、
Make Group Toolで2つのフィールド間のデータ関係を分析し、それらの関係に基づいてデータをグループに編成しています。
Join Toolを2度使い、一致したレコードを元のデータと結合して、ACCOUNT_NUMBERフィールドとREVIEW_SCOREフィールドを取得。
Filter Toolで[ACCOUNT_NUMBER」がNULLのデータを除去し、
Join Toolで一致するレコードと、マスターファクトデータを結合します。
Union Toolで結合されたレコードと結合されていないレコードをマスターファクトテーブルからマージした上で、最終的にTableauワークブックに出力するためのフィールドを選択、リネームして完了です。
ワークフローの実行・Tableauワークブックの内容確認
こちらのサンプルについては、ワークフローが添付されていなかったので割愛します。
まとめ
という訳で、『Alteryx & Tableau 連携 Advent Calendar 2018 』8本目、「Vendor Fuzzy Matching(ベンダーファジーマッチング)」のご紹介でした。今回取り上げた「ファジーマッチ(Fuzzy Match)」ツール、非常に便利かつ強力な機能を兼ね備えていますが、「日本語」を対象にした場合はどこまで信用・信頼出来るものなのでしょうか。その辺ちょっと気になりました。機会を見つけて深掘りして行きたいと思います。
引き続き、明日もお楽しみに!
- Alteryx & Tableau 連携 Advent Calendar 2018 - Qiita
- Alteryx & Tableau 連携 Advent Calendar 2018 | シリーズ | DevelopersIO
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。