DataSpiderスクリプトをコマンドで起動する

DataSpiderのスクリプトを起動する方法としまして、通常DataSpider Studioから起動する方法とトリガーを設定する方法があります(バージョン4.2時点での情報です)。

しかし他のツールと連携して利用したい場合、スクリプトをコマンドで起動したいと思うことがあります。今回はスクリプトをコマンドプロンプトで起動するのに必要なScriptRunnerというツールについて解説したいと思います。

なお前提として、起動したいスクリプトをすでに作成しておりかつサービス登録しておく必要があります。

ScriptRunnerとは

ScriptRunnerとは、サーバに登録されたサービスのスクリプトを外部から実行するためのインターフェースです。これを利用することで、コマンドプロンプト上でスクリプトを実行することができます。

ScriptRunner実行画面

またScriptRunnerを実行する際引数を設定することで、設定値や引数の値を可変にすることもできます。このため、直前のジョブで取得した値をDataSpiderの引数として実行することも可能です。

設定ファイルの設定方法

ScriptRunnerを実行するため、XMLファイルを作成します。内容例は以下の通りです。

<?xml version="1.0" encoding="Shift_JIS"?>
<scriptrunner>
  <connection>
    <host>localhost</host>
    <port>7700</port>
    <ssl>false</ssl>
    <description>ScriptRunnerから実行します。</description>
    <user>root</user>
    <password>password</password>
  </connection>
  <params>
    <param project="root@SampleScript" script="入力テスト">
      <input key="Input1">testData</input>
      <input key="Input2">2020-09-02T12:34:56.000+0900</input>
      <input key="Input3">42</input>
      <option key="TYPE">production</option>
      <option key="ENABLE_TYPE_SWITCH">false</option>
      <option key="ENABLE_XML_LOG">true</option>
      <option key="LOG_LEVEL">FINFO</option>
    </param>
  </params>
</scriptrunner>

上記の内容は、自サーバにあるDataSpiderからrootユーザにて、サービス「root@SampleScript」のスクリプト「入力テスト」を実行するということを意味しております。また実行時に、入力変数Input1~3にそれぞれ要素値を設定して実行することを意味しております。

またファイル内のデータに%{1}、%{2}といった形式で記述することで、コマンド実行時に設定した引数を代入することができます。例えば上記ファイルで入力変数Input1~3に設定する値を可変にしたい場合、以下のように記述します。

<?xml version="1.0" encoding="Shift_JIS"?>
<scriptrunner>
  <connection>
    <host>localhost</host>
    <port>7700</port>
    <ssl>false</ssl>
    <description>ScriptRunnerから実行します。</description>
    <user>root</user>
    <password>password</password>
  </connection>
  <params>
    <param project="root@SampleScript" script="入力テスト">
      <input key="Input1">%{1}</input>
      <input key="Input2">%{2}</input>
      <input key="Input3">%{3}</input>
      <option key="TYPE">production</option>
      <option key="ENABLE_TYPE_SWITCH">false</option>
      <option key="ENABLE_XML_LOG">true</option>
      <option key="LOG_LEVEL">FINFO</option>
    </param>
  </params>
</scriptrunner>

このように記述することで、あとでコマンドプロンプト上で引数を設定することができます。

ScriptRunnerの実行

ScriptRunnerの実行には、以下のディレクトリにありますScriptRunner.exeを実行する必要があります。ScriptRunner.exeは、$DATASPIDER_HOME\server\binまたは$DATASPIDER_HOME\client\binのどちらかのものを利用します(上記はWindowsの場合。$DATASPIDER_HOMEはDataSpiderのホームディレクトリを意味します)。

ScriptRunner.exeの配置。今回の場合$DATASPIDER_HOMEは「C:\Program Files\DataSpiderServista_dss42」となる。

ScriptRunner.exeを起動する場合の引数は以下の通りです。

ScriptRunner.exe <起動設定ファイル> <第一引数> <第二引数>・・

この際<起動設定ファイル>を省略することもでき、その場合設定ファイルはScriptRunner.exeの配置されているフォルダにある「scriptrunner.xml」となります。

実際の実行例

今回、csvファイルを作成するようなスクリプト「入力テスト」を作成しこれを起動しようと思います。

サービスを作成する

また、ScriptRunner_3.xmlというファイル名で以下のようなXMLを用意しておきます。

実際にScriptRunner.exeを起動します。なお、起動時のコマンドは以下の通りです。なお、コマンド中の「\”」は引数の囲み文字をエスケープしたものです。

ScriptRunner.exe scriptrunner_3.xml \"テストデータ\" \"2020-09-02T17:56:32.123+0900\" 100

このコマンドで起動すると以下のようになります。

作成されたファイル。データに引数値が設定されていることに注目

今回はコマンドプロンプトから直接ScriptRunnerを利用してDataSpiderのスクリプトを実行しましたが、コマンドをbatファイル化し外部ツールからDataSpiderのスクリプトを実行するといったことも可能です。

このように様々なツールとの連携にも応用できますので、ぜひ活用してみてください。


<免責事項>
情報の掲載には注意を払っておりますが、掲載された情報の内容の正確性については一切保証しません。また、当サイトに掲載された情報を利用・使用(閲覧、投稿、外部での再利用など全てを含む)するなどの行為に関連して生じたあらゆる損害等につきましても、理由の如何に関わらず自己責任で行う必要があります。