変換関数ライブラリの拡張

変換関数ライブラリを拡張する外部Groovyスクリプトを作成し、次にカスタム変換で関数を呼び出すことができます。これによって、BDDに付属しているデフォルトのGroovyベースの変換関数のセットに拡張ポイントが提供されます。

作成するカスタムGroovyスクリプトは、Studioとデータ処理コンポーネントの両方にプラグインとして使用可能にするJARでパッケージ化される必要があります。次に、runExternalPlugin関数を使用してStudioでカスタム変換スクリプトを実行できます。

注意: 変換関数ライブラリの拡張はBig Data Discovery Cloud Serviceでサポートされていません。この機能はBig Data Discoveryでサポートされています。
このサンプルGroovyスクリプト(名前はMyPlugin.groovy)が例として使用されます。
def pluginExec(Object[] args) {
    String input = args[0] //args[0] is the input field from the BDD Transformation Editor 

    //Return a lowercase version of the input.
    input.toLowerCase()
}

このスクリプトは、Object配列(名前はargs)を引数として取得するpluginExec()メソッドを定義します。 args[0]は、変換される文字列属性に対応し、input変数に割り当てられます。次に、変換関数toLowerCase()が、入力データを小文字に変更するために呼び出され、そのデータを単一割当て文字列属性に格納するために戻します。

より複雑な変換スクリプト(たとえば、外部のJavaライブラリをインポートし、スクリプト内で使用するスクリプトなど)をGroovyで作成できます。Groovy言語のドキュメンテーションは、http://www.groovy-lang.org/documentation.htmlで入手できます

注意: セキュリティ上の理由で、Groovy System.xxxメソッド(System.getProperty()メソッドなど)を使用しないでください。

変換関数ライブラリを拡張し、カスタム変換スクリプトを実行するには、次の手順を実行します。

  1. カスタム変換プラグイン用のディレクトリを作成します。
    mkdir /opt/custom_lib

    このディレクトリには、GroovyスクリプトによってインポートされるJavaライブラリも格納されます。

  2. カスタム・プラグイン・ディレクトリで、Groovyスクリプト(前述のMyPlugin.groovyの例など)を作成します。
  3. jar cfコマンドを使用して、GroovyスクリプトをJARにパッケージ化します。
    jar cf MyPlugin.jar MyPlugin.groovy
    Groovyスクリプトは、JARのルートに配置されます。スクリプトによって使用される追加ファイルもJAR内に含められます。
  4. $BDD_HOME/workflowmanager/dp/configディレクトリに移動し、sparkContext.propertiesファイルを編集し、手順1で作成したディレクトリを示すspark.executor.extraClassPathプロパティを追加します。
    パスの末尾にアスタリスク文字を追加して、ディレクトリ内のすべてのJARを含めることを示してください。
    編集したファイルは次の例のようになります。
    #########################################################
    # Spark additional runtime properties, see
    # https://spark.apache.org/docs/1.0.0/configuration.html
    # for examples
    #########################################################
    spark.executor.extraClassPath=/opt/custom_lib/*
    ファイルにspark.executor.extraClassPathプロパティがすでに存在する場合、プロパティによって参照されるライブラリは、Sparkクラス・パス内にまだ含まれているため、custom_libディレクトリに移動する必要があります。
  5. クラスタ化された(マルチノード)Hadoop環境を所有している場合、YARNを実行する各ノードで手順1-4を繰り返してください。これにより、どのYARNノードが変換ワークフローを実行しているかにかかわらず、カスタム変換スクリプトを使用できます。
  6. Studioの「変換」ページで、新規プラグインを実行します。
    1. データ・セットが「変換」ページ内に存在することを確認してください。
    2. 「変換エディタ」を開きます。
    3. 「関数」メニューから、runExternalPlugin関数を選択します。
    4. 関数のシグネチャで、処理するGroovyスクリプトの名前(引用符で囲む)および属性を指定します。たとえば、次のようになります。
      runExternalPlugin("MyPlugin.groovy", surveys)
    5. 「出力設定の構成」で、「既存の属性に適用」または「新規属性の作成」のいずれかを構成します。
    6. スクリプトに追加をクリックします。(プレビューはカスタム変換スクリプトでは機能しないため、「プレビュー」を選択しないでください。)
    7. 「プロジェクトにコミット」をクリックします。
    変換スクリプトがデータ・セットに適用された後、新規または既存の属性が新規データ・セットに表示されます。