ユーザー定義インジケーターのJavaアーカイブを作成する - Cloud

Talend Cloud Real-Time Big Data Platform Studioユーザーガイド

author
Talend Documentation Team
EnrichVersion
Cloud
EnrichProdName
Talend Cloud
task
ジョブデザインと開発
EnrichPlatform
Talend Management Console
Talend Studio
ユーザー定義インジケーターのJavaアーカイブを作成する前に、Eclipseで、ワークスペースプラグインのコンパイルおよびテスト対象となるターゲットプラットフォームを定義する必要があります。

手順

  1. ターゲットプラットフォームを定義します。
    1. Eclipseで、[Preferences] (環境設定)を選択して[Preferences] (環境設定)ウィンドウを表示します。
    2. [Plug-in Development] (プラグイン開発)を展開して[Target Platform] (ターゲットプラットフォーム)を選択し、[Add...] (追加...)をクリックしてターゲット定義を作成するためのビューを開きます。
    3. [Nothing: Start with an empty target definition] (なし: 空のターゲット定義で始める)オプションを選択し[Next] (次へ)をクリックして次の手順に進みます。
    4. [Name] (名前)フィールドに新しいターゲット定義の名前を入力し、[Add...] (追加...)をクリックして次の手順に進みます。
    5. [Add Content] (コンテンツの追加)リストから[Installation] (インストール)を選択し、[Next] (次へ)をクリックして次の手順に進みます。
    6. [Browse...] (参照...)ボタンを使用してインストールディレクトリーのパスを設定し、[Next] (次へ)をクリックして次の手順に進みます。

      場所のリストに新しいターゲット定義が表示されます。

    7. [Finish] (終了)をクリックして、ダイアログボックスを閉じます。
  2. ユーザー定義インジケーターのJavaアーカイブを作成する
    1. Eclipseでhttps://github.com/Talend/tdq-studio-se/tree/master/sample/test.myudiにアクセスし、GITからプロジェクトを確認します。

      このJavaプロジェクトには、インジケーターエディターの[Indicator Category] (インジケーターカテゴリ)ビューにリストされたインジケーターカテゴリに対応する4つのJavaクラスがあります。

      それぞれのJavaクラスは UserDefIndicatorImplインジケーターを拡張するものです。下の図はMyAvgLength Javaクラスのユースケースを示したものです。

      package test.udi;
      
      import org.talend.dataquality.indicators.sql.impl.UserDefIndicatorImpl;
      
      /**
       * @author mzhao
       * 
       * A very simple example of a java implementation of a user defined indicator. This indicator returns a user defined
       * real value. It implements the minimum number of required methods.
       */
      public class MyAvgLength extends UserDefIndicatorImpl {
      
          private double length = 0;
      
          @Override
          public boolean reset() {
              super.reset();
              length = 0;
              return true;
          }
      
          @Override
          public boolean handle(Object data) {
              super.handle(data);
              // an indicator which computes the average text length on data which are more than 2 characters (this means that
              // text values with less than 2 characters are not taken into account).
              int dataLength = (data != null) ? data.toString().length() : 0;
              if (dataLength > 2) {
                  length += dataLength;
              }
              return true;
          }
      
          /*
           * (non-Javadoc)
           * 
           * @see org.talend.dataquality.indicators.impl.IndicatorImpl#finalizeComputation()
           */
          @Override
          public boolean finalizeComputation() {
              value = String.valueOf(this.length / (this.getCount() - this.getNullCount()));
              return super.finalizeComputation();
          }
      
      }
    2. 必要に応じて各@Overrideに続くメソッドのコードを編集します。
    3. オプション: 必要に応じて、次のメソッドをコードで使用してインジケーターパラメーターを取得します。
      メソッド 説明
      Indicator.getParameter() IndicatorParametersオブジェクトを返します
      IndicatorParameters.getIndicatorValidDomain() Domainオブジェクトを返します
      Domain.getJavaUDIIndicatorParameter() パラメーターを定義する各キー/値のペアを保存するJavaUDIIndicatorParameterのリストを返します。
    4. 変更を保存します。
    5. Eclipseを使用してこの新しいJavaアーカイブをエクスポートします。

タスクの結果

Talend StudioProfilingパースペクティブで作成する任意のJavaインジケーターに、このJavaアーカイブを関連付けることができるようになりました。