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

Talend Big Data Platform Studioユーザーガイド

author
Talend Documentation Team
EnrichVersion
7.0
EnrichProdName
Talend Big Data Platform
task
ジョブデザインと開発
EnrichPlatform
Talend Studio

ユーザー定義インジケーターのJavaアーカイブを作成する前に、Eclipseで、ワークスペースプラグインのコンパイルおよびテスト対象となるターゲットプラットフォームを定義する必要があります。

ターゲットプラットフォームを定義するには、以下のようにします:

  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] (完了)をクリックしてダイアログボックスを閉じます。

ユーザー定義インジケーターの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. 必要に応じて、次のメソッドをコードで使用してインジケーターパラメーターを取得します。

  4. [IndicatorParameters] (インジゲーターパラメータ)オブジェクトを返すIndicator.getParameter()を使用します。

  5. [Domain] (ドメイン)オブジェクトを返すインジケーターパラメーターIndicatorParameters.getIndicatorValidDomain()を呼び出します。

  6. パラメーターを定義する各キー/値のペアを保存するJavaUDIIndicatorParameterのリストを返すDomain.getJavaUDIIndicatorParameter()を呼び出します。

  7. 変更を保存します。

  8. Eclipseを使用してこの新しいJavaアーカイブをエクスポートします。

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