Scheduler RMI クライアント API

Denodo Scheduler クライアント API では、ジョブとデータソースをプログラムで構成して管理できます。また、ジョブのリストの表示、ジョブの開始/停止、アクセス許可の管理なども実行できます。

これを実現するため、プラットフォームには、以下の機能を許可するファサード com.denodo.scheduler.client.SchedulerManager が用意されています。

  • ジョブリストをジョブの状態 (JobData) に関する情報とともに取得: getJobsInformation

  • ジョブの実行レポート (JobReport) を表示: getJobReports

  • ジョブとデータソースの構成 (Configuration) を作成、取得、更新、削除: addJob および addDataSourcegetJob および getDataSourceupdateJob および updateDataSourceremoveJob および 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 」を参照してください。