FMEリファレンス > トランスフォーマー
最終更新: 2015-10-13

トランスフォーマー (Transformers)

Workbench のインターフェースにおいて、データに対するさまざまな変換処理はトランスフォーマーと呼ばれるオブジェクトによって表現されます。
多種多様な変換処理を行うために FME は多数のトランスフォーマーを用意しており、それらは Transformer Gallery に表示されます。


Categorized フォルダのサブフォルダには処理対象とするフィーチャーのタイプや処理内容によって分類されたトランスフォーマーが含まれ、All フォルダには全てのトランスフォーマーが含まれます。

参照: トランスフォーマーの追加・接続・削除

参照: トランスフォーマーパラメーターの設定

トランスフォーマーのヘルプ

Transformer Gallery でトランスフォーマー名を選択、または、キャンバス上のトランスフォーマーを選択すると Help ウィンドウにそのトランスフォーマーのヘルプが表示され、機能や使用方法を確認することができます。
Help ウィンドウが表示されていないときは、Workbench メニュー: View > Windows > Help によって表示させてください。

Workbench メニュー: Help > FME Transformers で全てのトランスフォーマーのヘルプを閲覧することもできます。
また、次のドキュメントでは全てのトランスフォーマーの概要がコンパクトに整理されてます。
FME Transformer Reference Guide [PDF]

複数のトランスフォーマーの連結

FMEには多数のトランスフォーマーが用意されているとはいえ、単一のトランスフォーマーだけでワークスペースが目的とする全てのデータ変換が行えるとは限りません。そのようなデータ変換は複数のトランスフォーマーを組み合わせて使用することによって実現され、キャンバス上では、連結された一連のトランスフォーマー群によってデータ変換のプロセスがグラフィカルに表現されます。


大規模で複雑なデータ変換でも複数のトランスフォーマーを組み合わせて使用することによって実現可能にし、そのプロセスを分かり易く表現するということは、FMEのキーコンセプトのひとつです。

フィーチャーベース (Feature-Based) とグループベース (Group-Based)

ほとんどのトランスフォーマーには入力ポートと出力ポートがあり、ワークスペースの実行時に入力ポートからひとつずつフィーチャーを受け取り、出力ポートから処理後のフィーチャーをひとつずつ出力します。

フィーチャーを受け取ってから何らかのアクションをおこすという点は全てのトランスフォーマーに共通ですが、フィーチャーを受け取ってから出力するまで間の動作の仕方によって、トランスフォーマーは大きく次の2つのタイプに分類されます。

フィーチャーベーストランスフォーマーは入力順と同じ順番でフィーチャーを出力しますが、グループベーストランスフォーマーではフィーチャーの入力順が保たれるとは限りません。

グループベーストランスフォーマーに属する多くのトランスフォーマーには Group By パラメーターがあり、受け取ったフィーチャーを Group By パラメーターに指定された属性の値が等しいものでグループ化し、グループ単位で処理を行うことができます。

グループベーストランスフォーマーは、ひとつずつ送られてきたフィーチャーの流れをそこでブロックする (妨げる) ことから、ブロッキングトランスフォーマー (Blocking Transformers) と呼ばれることもあります。

なお、「フィーチャーを受け取ってから何らかのアクションをおこす」という性質を feature driven (フィーチャーによって動かされる) と表現することもあります。裏返して言えば、トランスフォーマーは「フィーチャーを受け取らなければ何もしない」ということです。
例外的に Creator, SQLCreator などの入力ポートを持たないトランスフォーマーは、フィーチャーを受け取らなくても処理を行います。

原則としてトランスフォーマーはフィーチャーベースかグループベースのどちらかに分類できますが、例外的に、パラメーターの設定によってどちらの動作をするかが決まるトランスフォーマーもあります。例えば Generalizer は、Preserve Shared Boundaries パラメーターに No (デフォルト) が設定されたときはフィーチャーベースとして動作し、Yes が設定されたときはグループベースとして動作します。また、PythonCaller は、パラメーターとして設定されたスクリプトの定義内容によって、フィーチャーベース、グループベースのどちらのタイプとなるかが決まります。

標準のトランスフォーマーとカスタムトランスフォーマー

トランスフォーマーには、FME に標準で含まれているトランスフォーマー (Regular Transformers) とユーザーが定義したカスタムトランスフォーマー (Custom Transformers) があり、カスタムトランスフォーマーには組込型 (Embedded) とリンク型 (Linked) の2種類の使い方があります。
参照: カスタムトランスフォーマー (Custom Transformers)

それらはキャンバス上で次のようにオブジェクトの色によって区別されますが、ワークスペースへの追加や他のオブジェクトとの接続などの基本的な操作方法は同じです。

標準のトランスフォーマー 組込型カスタムトランスフォーマー リンク型カスタムトランスフォーマー