プライマリ・コンテンツに移動
Oracle® Big Data Discovery Cloud Service Studioユーザー・ガイド

E65365-05
目次へ
目次
索引へ移動
索引

前
次
機械翻訳について

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

変換関数ライブラリを拡張する外部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 array (名前はargs)を引数として取るpluginExec()メソッドが定義されています。 args[0]は、変換する文字列属性に対応し、input変数に割り当てられます。 次に、入力データを小文字に変更し、単一割当て文字列属性に格納するために戻す変換関数toLowerCase()がコールされています。

Groovyでより複雑な変換スクリプトを作成できます。たとえば、外部Javaライブラリをインポートしてスクリプトで使用する変換スクリプトなどです。 Groovy言語に関するドキュメントは次の場所にあります。 : http://www.groovy-lang.org/documentation.html

注意:

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

変換関数ライブラリを拡張してカスタム変換スクリプトを実行するには:

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

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

  2. カスタム・プラグイン・ディレクトリに、前述のMyPlugin.groovyの例のようなGroovyスクリプトを作成します。
  3. jar cfコマンドを使用して、GroovyスクリプトをJARにパッケージ化します:
    jar cf MyPlugin.jar MyPlugin.groovy
    Groovyスクリプトは、JARのルートに配置する必要があります。 スクリプトで使用される追加ファイルもJARに含めることができます。
  4. $BDD_HOME/dataprocessing/edp_cli/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プロパティがすでに存在する場合は、このプロパティで参照されるライブラリをcustom_libディレクトリに移動して、Sparkのクラスパスに含まれるようにする必要があります。
  5. クラスタ化(マルチ・ノード) Hadoop環境がある場合は、YARNを実行する各ノードでステップ1-4を繰り返します。 これにより、どのYARNノードが変換ワークフローを実行するかに関係なく、カスタム変換スクリプトを使用できるようになります。
  6. Studioの変換ページで新規プラグインを実行します:
    1. データ・セットが「変換」ページに存在することを確認してください。
    2. 変換エディタを開きます。
    3. 「関数」メニューからrunExternalPlugin関数を選択します。
    4. 関数シグネチャで、Groovyスクリプトの名前(引用符内)および処理する属性を指定します。 次に例を示します。:
      runExternalPlugin("MyPlugin.groovy", surveys)
    5. 「出力設定の構成」で、「既存の属性に適用」または「新規属性の作成」を構成します。
    6. 「スクリプトに追加」をクリックします。 (プレビューとして「プレビュー」を選択しないでください。)はカスタム変換スクリプトでは機能しません。
    7. 「プロジェクトへのコミット」をクリックします。
    変換スクリプトをデータ・セットに適用した後、新規または既存の属性を新規データ・セットに表示する必要があります。