DataSpiderスクリプトをコマンドで起動する
DataSpiderのスクリプトを起動する方法としまして、通常DataSpider Studioから起動する方法とトリガーを設定する方法があります(バージョン4.2時点での情報です)。
しかし他のツールと連携して利用したい場合、スクリプトをコマンドで起動したいと思うことがあります。今回はスクリプトをコマンドプロンプトで起動するのに必要な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を起動する場合の引数は以下の通りです。
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のスクリプトを実行するといったことも可能です。
このように様々なツールとの連携にも応用できますので、ぜひ活用してみてください。
<免責事項>
情報の掲載には注意を払っておりますが、掲載された情報の内容の正確性については一切保証しません。また、当サイトに掲載された情報を利用・使用(閲覧、投稿、外部での再利用など全てを含む)するなどの行為に関連して生じたあらゆる損害等につきましても、理由の如何に関わらず自己責任で行う必要があります。