Scheduler RMI クライアント API¶
Denodo Scheduler クライアント API では、ジョブとデータソースをプログラムで構成して管理できます。また、ジョブのリストの表示、ジョブの開始/停止、アクセス許可の管理なども実行できます。
これを実現するため、プラットフォームには、以下の機能を許可するファサード com.denodo.scheduler.client.SchedulerManager
が用意されています。
ジョブリストをジョブの状態 (
JobData
) に関する情報とともに取得:getJobsInformation
ジョブの実行レポート (
JobReport
) を表示:getJobReports
ジョブとデータソースの構成 (
Configuration
) を作成、取得、更新、削除:addJob
およびaddDataSource
、getJob
およびgetDataSource
、updateJob
およびupdateDataSource
、removeJob
およびremoveDataSource
ジョブを有効または無効にする:
resumeJob
およびpauseJob
ジョブの構成の開始時間と終了時間を考慮せずに 1 回だけジョブを実行:
startJob
ジョブを依存関係とともに実行 (「 ジョブ 」のセクションの Start With Dependencies の説明を参照):
startJobWithDependencies
特定の状態のジョブを実行。ジョブの実行でエラーが発生した場合は、特定の状態のジョブを再実行することで、エラーが発生したクエリのみを実行します (「 ジョブ 」のセクションの Start with state の説明を参照):
retryOrContinueJob
ジョブの実行を停止:
stopJob
ジョブのタイプと、システムによって許容されるデータソースを取得: VDP、CSV など:
getElementTypes
およびgetElementSubTypes
ジョブスケジューラーを一時停止。スケジューラーが一時停止されると、ジョブはスケジューラーが再開されるまで待機してから再実行されます。この命令はジョブが実行中でない場合のみ正常に実行されます:
pauseScheduler
スケジューラーが一時停止されている場合にスケジューラーの実行を再開:
resumeScheduler
構成エレメント (ジョブとデータソース) はすべて、オブジェクト com.denodo.configuration.Configuration
に基づいています。このオブジェクトは、エレメントを構成するパラメータ (単純または複合) の集合です。パラメータとそれらの仕様 (データ型、必須かどうかなど) のリストは、オブジェクト com.denodo.configuration.metadata.MetaConfiguration
によって提供されます。
ジョブは、ID、説明、タイプ (VDP、VDPCache、または VDPIndexer)、いくつかの関連付けられたハンドラー、時間ベースのスケジューラー、およびデータの抽出元を指定する抽出セクション (どちらも使用できるデータソースのタイプによって異なります) を持ちます。VDP および VDPIndexer タイプのジョブには、エクスポーターのリスト (Scheduler Index、Elasticsearch、JDBC、CSV、カスタムエクスポーター) が定義されているエクスポートセクションがあります。また、ジョブには、ジョブのエクスポート段階の後に実行されるハンドラーのリスト (メール、カスタムハンドラー) が指定されたハンドラーセクションもあります。さらに、ジョブを再実行するタイミングと理由を構成できる再試行セクションもあります。
以下に示しているのは、VDP タイプのジョブを作成する場合の例です。データソースはすでに作成されていて、 vdpDatasourceIdentifier
変数に保存された ID を持つものとします。この例は、ジョブパラメータを指定するための ParameterStructure
オブジェクトを使用して、ジョブの Configuration
オブジェクトがどのように作成されるかを示しています。
Configuration jobConfig = new Configuration();
jobConfig.setDraft(false);
jobConfig.setType("job");
jobConfig.setSubType("vdp");
ParameterStructure parameters = new ParameterStructure();
parameters.put(Helper.buildSimpleMonoValuedParam("name", "jobName"));
parameters.put(Helper.buildSimpleMonoValuedParam("description", "jobDescription"));
parameters.put(Helper.buildSimpleMonoValuedParam("dataSource", vdpDatasourceIdentifier));
parameters.put(Helper.buildSimpleMonoValuedParam("parameterizedQuery", "select * from emp"));
Parameter trigger = new CompoundParameter();
trigger.setName("trigger");
Collection<ParameterStructure> params = new ArrayList<ParameterStructure>();
ParameterStructure param = new ParameterStructure();
param.put(Helper.buildSimpleMonoValuedParam("type", "cron"));
param.put(Helper.buildSimpleMonoValuedParam("cronExpression", "0 10,44 14 ? 3 WED"));
params.add(param);
trigger.setValues(params);
parameters.put(trigger);
jobConfig.setParameters(parameters);
schedulerManager.addElement(projectId, jobConfig);
各タイプのエレメントを構成するために使用するパラメータの名前は <DENODO_HOME>/metadata/scheduler/elements
内の XML ファイルから取得できます。それらのパラメータは、エレメントタイプ別 (データソース、ジョブ、エクスポーター ...) のサブフォルダに整理されています。
詳細については「 Scheduler API の Javadoc 」を、例については「 <DENODO_HOME>/samples/scheduler/scheduler-api
」を参照してください。