30日間の無料評価版をお試しいただけます。


データトランスフォーメーション機能は、複数の構築ブロックにより構成されています。APIが機能する仕組みを理解するためには、これらのオブジェクトについて理解することが理想的です。これには、以下の項目が含まれます。


ステップ

ステップは、複雑な処理ロジックを実行するコードのブロックです。これは、YellowfinのトランスフォーメーションステップAPIに付随しており、その結果、無関係なコードのブロックに接続することができます。

すべてのステップは、ETLStep Javaインターフェイスを実装します。

インラインステップ(インラインフィールドトランスフォーメーションステップ)は特別なタイプで、単一のフィールドに適用され、キャンバス上では非表示になります。インラインステップは、ETLInlineStepインターフェイスを実装します。


フロー


フローは、2つのステップを結合するリンクです。ステップは、ひとつ以上のインプット、またはアウトプットを持ちます。フローは、インプット/アウトプットFlowUUIDを使用して識別されます。



メタデータフィールド


メタデータフィールドは、ステップに入力、または出力されるデータのカラム(列)を表します。ETLStepMetadataFieldBean classは、フィールドを表します。


フィールドオブジェクトには、数多くのUUIDがあります。以下は、ウィジェット開発に関連する一例です。

メタデータフィールド説明
etlStepMetadataFieldUUIDメタデータフィールドを一意に識別するために使用するUUIDです
groupUUID同一のインプットステップに含まれるデータフィールドを識別するために使用するUUIDです。これは通常、複数のインプットステップ内で使用されます。
linkFieldUUIDソースフィールド、またはデータを受け取るフィールドを識別するUUIDです。


以下は、その他関連するフィールドです。

メタデータフィールド説明
linkType

データフィールドが以下の条件を満たすかどうか指定するメタデータフィールドです。

  • インプットフィールドに直接マッピング
  • 新規フィールドとして生成
  • インプットからのフィールドを置き換えるために生成
  • 他のフィールドの複製として生成

より詳細な情報は、API参照内のETLlinkTypeを参照してください。

stepIncludeFieldフィールドがステップから作成されていない場合は、こちらをfalseに設定しなくてはいけません。


メタデータフィールドのタイプ

メタデータフィールドのタイプとして、以下の2つが考慮されます。

タイプ説明
デフォルトメタデータ

ステップで利用可能なすべてのインプットフィールドと、ステップが生成する任意のフィールドです。

デフォルトメタデータステップは、インプットステップがステップにリンクされる時、またはステップが構成されるときに作成されます。

これらのフィールドは、インプットやアウトプットステップの接続が解除されてもステップに残ります。デフォルトメタデータにより、ステップを独立した事前構成単位になります。

アウトプットメタデータ

ステップから実際に出力されるフィールドです。

アウトプットメタデータフィールドは、ステップが初めてアウトプットステップにリンクされた際に作成されます。

これらは始め、デフォルトメタデータフィールドと同一です。ユーザーは、複数のアウトプットステップがある場合に、デフォルトメタデータや、その他のアウトプットのアウトプットメタデータに影響を与えることなく名前の変更、順序の変更、フィールドの削除をすることができます。アウトプットメタデータフィールドは、アウトプットステップのリンクが解除された時に削除されます。


フィールドのリンク

以下のダイアグラムは、フィールドのリンク状況を説明しています。


  • すべてのステップが、デフォルトとアウトプットメタデータフィールドを持ちます。ターゲットフィールドは、linkFieldUUIDを使用して、ソースフィールドにリンクされます。ソースフィールドのfieldUUIDは、ターゲットフィールドのlinkedFeildUUIDです。例えば、S1DF1のUUIDは、S1O1F1のlinkFieldUUIDです。
  • ステップ1は、複数のアウトプットステップです。ひとつのデフォルトメタデータとリンクするアウトプットメタデータフィールドのセットが2つあります。
  • ステップ1は、インラインステップとリンクしています。インラインステップは概念的に、その他任意のトランスフォーメーションステップと同一ですが、ユーザーインターフェイスで適用される方法に違いがあります。
  • ステップ3には、S3OF3というアウトプットを持たないフィールドがあり、ステップ4のどのフィールドともリンクしていません。
  • ステップ4は、複数のインプットステップです。ステップ1とステップ3からのフィールドはリンクしています。デフォルトフィールドのS4DF1は、ステップ4から生成されているため、インプットステップからのフィールドとはリンクしていません。生成されたフィールドのlinkFieldUUIDは、その生成方法に応じて設定されます。
    • フィールドが、特定のデフォルトメタデータフィールドと関連しない場合、linkFieldUUIDは自分自身を指します。
    • フィールドが、任意のデフォルトフィールドの複製、または他フィールドを置き換える場合、linkFieldUUIDは、そのデフォルトメタデータフィールドのFieldUUIDになります。


ステップオプション


トランスフォーメーションステップのすべての構成情報は、ステップオプションとして保存されます。APIは、マップ内でキーと値のペアとして保存されるステップオプションの保存と取得方法を提供します。ユーザーインプットは、オプション値として直接保存するか、オプションとしてエンコードすることができます。それを設定し、使用するかどうかはステップに応じます。



Wires


FieldUUIDとlinkFieldUUIDを使用して、インプットフィールドと(デフォルトメタデータフィールドを介した)アウトプットフィールドのリンク方法を解決することができます。しかし、これにはフィールドの反復処理が必要になるため、常に便利な方法であるとは限りません。Wire classは、これらのフィールドを簡単にマッピングする方法を提供します。これはその後、データの取得や送信に使用されます。APIはwireをセットアップし、ウィジェット開発者は、デフォルト/アウトプットメタデータコレクション内のフィールド順序を心配することなく、これをデータ操作に使用することができます。



以下の例を考慮しましょう。


上図で強調表示されているリンクが、インラインステップ内でのwireです。wireは、その「結合(S1OF1、ISDF1、ISOF1は、それぞれ、inputFieldUUID、fieldUUID(デフォルトメタデータ)、outputFieldUUIDです)」のいずれかを使用して、インラインステップの実装から参照されます。


生成されたフィールドは、2つの結合(fieldUUID(デフォルトメタデータ)とoutputFieldUUID)のみを持ちます。