You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Scope

  • Provide technical information on the data model and possible customizations.
  • Users can use this information to create their own reports from the data model.
  • SQL scripts in this article are provided for PostgreSQL. The SQL scrpts for the respective DBMS are provided by the JobScheduler installer.

Standard Data Model

Standard Tables

Inventory Tables

  • The following tables are managed by reporting inventory jobs that create an inventory of existing jobs, job chains and orders.
  • Records are overwritten by each run of the reporting inventory jobs.
  • SQL Scripts

 

FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
SCHEDULER_IDNOT NULLVARCHAR corresponds to the SCHEDULER_ID that is specified during installation of the JobScheduler instance
HOSTNAMENOT NULLVARCHAR host on which the JobScheduler instance has been installed
PORTNOT NULLNUMERIC 

TCP port that the JobScheduler instance is listening to. Should not TCP port be specified then the UDP port is provided.

LIVE_DIRECTORYNOT NULLVARCHAR path of the live directory
CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification
FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
INSTANCE_IDNOT NULLNUMERICForeign Key

references INVENTORY_INSTANCES.ID

FILE_TYPENOT NULLVARCHAR 

file types in use:

  • job
  • job_chain
  • order

file types not used:

  • process_class
  • config
  • lock
  • schedule
  • ...
FILE_NAMENOT NULLVARCHAR 

path from live directory

e.g. test/my_job.job.xml

FILE_BASENAMENOT NULLVARCHAR 

file base name

e.g. my_job

FILE_DIRECTORYNOT NULLVARCHAR 

path calculated from the live directory

e.g. test

FILE_CREATEDNULLDATETIME UTC timestamp of the creation date of the file
FILE_MODIFIEDNULLDATETIME UTC timestamp of the modification date of the file
FILE_LOCAL_CREATEDNULLDATETIME local timestamp of the creation date of the file
FILE_LOCAL_MODIFIEDNULLDATETIME local timestamp of the modification date of the file
CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification
FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
INSTANCE_IDNOT NULLNUMERICForeign Key

references INVENTORY_INSTANCES.ID

used for simplified clean-up

FILE_IDNOT NULLNUMERICForeign Keyreferences INVENTORY_FILES.ID
NAMENOT NULLVARCHAR 

job name

e.g. test/my_job for a given job path test/my_job.job.xml

BASENAMENOT NULLVARCHAR 

job base name

e.g. my_job for a given job path test/my_job.job.xml

TITLENULLVARCHAR job title

IS_ORDER_JOB

NOT NULLNUMERIC 

specifies if this job is part of a job chain:

  • 1: yes
  • 0: no

IS_RUNTIME_DEFINED

 

NOT NULLNUMERIC 

specifies if a start time has been configured:

  • 1: yes
  • 0: no
CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification
FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
INSTANCE_IDNOT NULLNUMERICForeign Key

references INVENTORY_INSTANCES.ID

used for simplified clean-up
FILE_IDNOT NULLNUMERICForeign Keyreferences INVENTORY_FILES.ID
START_CAUSENOT NULLVARCHAR 

the following start causes are available:

  • file_trigger
  • order
  • TODO complete the list of start causes
NAMENOT NULLVARCHAR 

job chain name

e.g. test/my_jobchain for a given job chain path test/my_jobchain.job_chain.xml

BASENAMENOT NULLVARCHAR 

job chain base name

e.g. my_jobchain for a given job chain path test/my_jobchain.job_chain.xml
TITLENULLVARCHAR job chain title
CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification
FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
INSTANCE_IDNOT NULLNUMERICForeign Key

references INVENTORY_INSTANCES.ID

used for simplified clean-up
JOB_CHAIN_IDNOT NULLNUMERICForeign Keyreferences INVENTORY_JOB_CHAINS.ID
NAMENOT NULLVARCHAR 

job node name:

  • file_order_source
  • job_chain_node
  • file_order_sink
ORDERINGNOT NULLNUMERIC ordering of node in job chain

STATE

NULLVARCHAR job node state as specified in the configuration
NEXT_STATENULLVARCHAR next state for an order in case of successful execution
ERROR_STATENULLVARCHAR error state for an order in case of unsuccessful execution
JOBNULLVARCHAR 

job name as specified in the job node configuration

e.g. ../my_job

JOB_NAMENOT NULLVARCHARForeign Key

corresponds to INVENTORY_JOBS.NAME. Paths are resolved to absolute values starting from the live directory

e.g. test/my_job

CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification
FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
INSTANCE_IDNOT NULLNUMERICForeign Key

references INVENTORY_INSTANCES.ID

used for simplified clean-up
FILE_IDNOT NULLNUMERICForeign Keyreferences INVENTORY_FILES.ID
JOB_CHAIN_NAMENOT NULLVARCHARForeign Key

corresponds to INVENTORY_JOB_CHAINS.NAME

e.g. test/my_jobchain

ORDER_IDNOT NULLVARCHAR 

order identification (unique per job chain)

e.g. my_order for a given order path test/my_jobchain,my_order.order.xml

TITLENULLVARCHAR order title

IS_RUNTIME_DEFINED

 

NOT NULLNUMERIC 

specifies if a start time has been configured:

  • 1: yes
  • 0: no
CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification

Fact Tables

  • The following tables are used to collect facts from the JobScheduler history.
  • No standalone jobs are given. Fact tables contain job chain starts exclusively.
  • These tables can be used to create individual reports.
  • SQL Scripts

 

FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 

SCHEDULER_ID

NOT NULL

VARCHAR

 

corresponds to SCHEDULER_ORDER_HISTORY.SCHEDULER_ID

HISTORY_IDNOT NULLNUMERIC 

corresponds to SCHEDULER_ORDER_HISTORY.HISTORY_ID

NAMENOT NULLVARCHAR 

corresponds to SCHEDULER_ORDER_HISTORY.ORDER_ID

TITLENULLVARCHAR 

order title

corresponds to INVENTORY_JOB_CHAIN_ORDERS.TITLE

PARENT_NAMENOT NULLVARCHAR 

corresponds to SCHEDULER_ORDER_HISTORY.JOB_CHAIN

PARENT_BASENAMENULLVARCHAR job chain base name
PARENT_TITLENULLVARCHAR 

corresponds to INVENTORY_JOB_CHAINS.TITLE

START_TIMENOT NULLDATETIME 

corresponds to SCHEDULER_ORDER_HISTORY.START_TIME

END_TIMENULLDATETIME 

corresponds to SCHEDULER_ORDER_HISTORY.END_TIME

SYNC_COMPLETEDNOT NULLNUMERIC 

for use by the JobScheduler Reporting Interface jobs only:
specifies if a synchronization has been configured and has been completed successfully:

  • 1: yes
  • 0: no
RESULTS_COMPLETEDNOT NULLNUMERIC 

for use by the JobScheduler Reporting Interface jobs only:
specifies if all job nodes have been completed successfully:

  • 1: yes
  • 0: no
CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification
FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
SCHEDULER_ID NOT NULLNUMERIC corresponds to SCHEDULER_ORDER_HISTORY.SCHEDULER_ID
HISTORY_IDNOT NULLNUMERIC corresponds to SCHEDULER_ORDER_HISTORY.HISTORY_ID
TRIGGER_IDNOT NULLNUMERICForeign Keyreferences REPORT_TRIGGERS.ID
STEPNOT NULLNUMERIC 

corresponds to SCHEDULER_ORDER_STEP_HISTORY.STEP

NAMENOT NULLVARCHAR 

corresponds to SCHEDULER_HISTORY.JOB_NAME

e.g. test/my_job

BASENAMENOT NULLVARCHAR 

job base name

e.g. my_job, for a given job path test/my_job.job.xml

TITLENULLVARCHAR corresponds to INVENTORY_JOBS.TITLE
START_TIMENOT NULLDATETIME 

corresponds to SCHEDULER_ORDER_STEP_HISTORY.START_TIME

END_TIMENULLDATETIME 

corresponds to SCHEDULER_ORDER_STEP_HISTORY.END_TIME

STATENOT NULLVARCHAR 

corresponds to SCHEDULER_ORDER_STEP_HISTORY.STATE

CAUSENOT NULLVARCHAR start cause for execution, can be mapped to an individual start cause by use of table REPORT_MAP_CAUSES
ERRORNOT NULLNUMERIC 

specifies if an error occurred:

  • 0: no error
  • 1: error
ERROR_CODENULLVARCHAR JobScheduler error code
ERROR_TEXTNULLVARCHAR error message
IS_RUNTIME_DEFINEDNOT NULLNUMERIC 

specifies if a start time has been configured:

  • 1: yes
  • 0: no
CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification

Aggregation Tables

  • The following tables contain aggregations for
    • job steps per order 
    • triggers and executions per day, week, month, quarter, year
  • SQL Scripts

 

FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
SCHEDULER_IDNOT NULLVARCHAR corresponds to SCHEDULER_ORDER_HISTORY.SCHEDULER_ID
HISTORY_IDNOT NULLNUMERIC corresponds to SCHEDULER_ORDER_HISTORY.HISTORY_ID
TRIGGER_IDNOT NULLNUMERICForeign Key

references REPORT_TRIGGERS.ID

START_CAUSENOT NULLVARCHAR 

references SCHEDULER_HISTORY.CAUSE of the first step

for the value order check the start cause given in INVENTORY_JOB_CHAINS.START_CAUSE

STEPSNOT NULLNUMERIC 

specifies the number of job steps that have been executed

ERRORNOT NULLNUMERIC 

specifies if an error occurred

  • 0: no error
  • 1: error
ERROR_CODENULLVARCHAR JobScheduler error code
ERROR_TEXTNULLVARCHAR error message
CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification
FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
SCHEDULER_IDNOT NULLVARCHAR corresponds to SCHEDULER_ORDER_HISTORY.SCHEDULER_ID
HISTORY_IDNOT NULLNUMERIC corresponds to SCHEDULER_ORDER_HISTORY.HISTORY_ID
REFERENCE_IDNOT NULLNUMERICForeign Key

references REPORT_TRIGGERS.ID or REPORT_EXECUTIONS.ID

REFERENCE_TYPENOT NULLNUMERIC 

type of reference:

  • 0: references REPORT_TRIGGERS
  • 1: references REPORT_EXECUTIONS
START_DAYNOT NULLNUMERIC 

calendar day

e.g. 1

START_WEEKNOT NULLNUMERIC 

calendar week

e.g. 52

START_MONTHNOT NULLNUMERIC 

calendar month

e.g. 12

START_QUARTERNOT NULLNUMERIC 

quarter

e.g. 1

START_YEARNOT NULLNUMERIC 

year

e.g. 2015

END_DAYNOT NULLNUMERIC 

calendar day

e.g. 1

END_WEEKNOT NULLNUMERIC 

calendar week

e.g. 52

END_MONTHNOT NULLNUMERIC 

calendar month

e.g. 12

END_QUARTERNOT NULLNUMERIC 

quarter

e.g. 1

END_YEARNOT NULLNUMERIC 

calendar year

e.g. 2015

CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification

Mapping Tables

  • The following tables are used for the mapping of report data. Users can add individual records that are used for the mapping of results in individual reports:
    • Mapping of start causes for jobs
  • Contents in these tables is optional, however, their existence is required.
  • SQL Scripts

 

FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
CAUSENOT NULLVARCHAR 

start cause as used by JobScheduler:

possible values include

  • order: job start triggered by manual order
  • min_tasks: job start triggered by forced minimum number of tasks
  • delay_after_error: job start due to a setback event
  • period_single: job start triggered by order start time
  • period_repeat: job start triggered by order repeat interval
  • queue_at: job start scheduled manually or by task congestion

additional values provided by the JobScheduler Reporting Interface include

  • file_trigger: job start due to an incoming file
MAPPED_CAUSENOT NULLVARCHAR individual mapping of start cause
CREATEDNOT NULLDATETIME timestamp of record creation
MODIFIEDNOT NULLDATETIME timestamp of record modification

Standard Procedures

  • For most DBMS it is recommended to use views or procedures in order to speed up queries by pre-compiled statements.
  • The following procedures implement the use of the standard tables for reporting results.
  • SQL Scripts

Report about Installed Objects

  • Report about jobs, job chains and orders as collected from disk.

 

CREATE OR REPLACE FUNCTION REPORT_INSTALLED_OBJECTS(start_date DATE, end_date DATE) RETURNS TABLE (
"ID" BIGINT,
"SCHEDULER_ID" VARCHAR(100),
"HOSTNAME" VARCHAR(255),
"JOB_CHAIN" VARCHAR(255),
"JOB_NAME" VARCHAR(255),
"JOB_BASENAME" VARCHAR(100),
"JOB_CHAIN_BASENAME" VARCHAR(100),
"JOB_TITLE" VARCHAR(255),
"JOB_CHAIN_TITLE" VARCHAR(255),
"CAUSE" VARCHAR(100),
"IS_ACTIVE_CALENDAR" INT,
"FILE_CREATED" TIMESTAMP,
"FILE_MODIFIED" TIMESTAMP
)

Report about Execution Summary

  • Report about executions of jobs and job chains.

 

CREATE OR REPLACE FUNCTION REPORT_EXECUTION_SUMMARY(start_date DATE, end_date DATE) RETURNS TABLE ( 
"ID" BIGINT,
"SCHEDULER_ID" VARCHAR(100),
"HOSTNAME" VARCHAR(255),
"JOB_CHAIN" VARCHAR(255),
"JOB_NAME" VARCHAR(255),
"JOB_BASENAME" VARCHAR(100),
"JOB_CHAIN_BASENAME" VARCHAR(100),
"JOB_TITLE" VARCHAR(255),
"JOB_CHAIN_TITLE" VARCHAR(255),
"CAUSE" VARCHAR(100),
"IS_ACTIVE_CALENDAR" INT,
"START_TIME" TIMESTAMP,
"END_TIME" TIMESTAMP,
"START_DATE" DATE,
"END_DATE" DATE
)

Customization

  • The standard data model can be customized by use of additional tables and procedures.
  • Such tables are not required by the JobScheduler Reporting Interface.

Sample Custom Tables

  • The following tables implement samples for the customization of reports:
    • Assigning applications to jobs
    • Assigning mandators to jobs
  • Samples are presented for instructional use only.
  • SQL Scripts

Assigning Applications to Jobs

  • Should a report present information on a number of jobs that are used for the same application then the following tables could be used:

Application Master Data

 

FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
NAMENOT NULLVARCHAR application name
TITLENULLVARCHAR application title

Application Joins to Jobs

 

FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
JOB_NAMENOT NULLVARCHAR corresponds to INVENTORY_JOBS.NAME
APP_NAMENOT NULLVARCHAR corresponds REPORT_CUSTOM_APPS.NAME

Assigning Mandators to Jobs

Mandator Master Data

 

FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
NAMENOT NULLVARCHAR mandator name
TITLENULLVARCHAR mandator title

Mandator Joins to Jobs

 

FieldNullableData typeConstraintDescription
IDNOT NULLNUMERICPrimary Key 
JOB_CHAINNOT NULLVARCHARForeign Keyreferences REPORT_JOBS.ID
MANDATOR_IDNOT NULLNUMERICForeign Keyreferences REPORT_MANDATOR.ID

Sample Custom Procedures

  • For most DBMS it is recommended to use views or procedures in order to speed up queries by pre-compiled statements.
  • The following procedures implement the use of the above custom tables for reporting results that are aggregated per application and mandator.
  • SQL Scripts

Report about Installed Objects

  • The standard procedure is improved to map installed objects to applications and mandators.

Custom Report on Installed Objects

 

CREATE OR REPLACE FUNCTION REPORT_CUSTOM_INSTALLED_OBJECTS(start_date DATE, end_date DATE) RETURNS TABLE (
"ID" BIGINT,
"SCHEDULER_ID" VARCHAR(100),
"HOSTNAME" VARCHAR(255),
"JOB_CHAIN" VARCHAR(255),
"JOB_NAME" VARCHAR(255),
"JOB_BASENAME" VARCHAR(100),
"JOB_CHAIN_BASENAME" VARCHAR(100),
"JOB_TITLE" VARCHAR(255),
"JOB_CHAIN_TITLE" VARCHAR(255),
"CAUSE" VARCHAR(100),
"IS_ACTIVE_CALENDAR" INT,
"FILE_CREATED" DATE,
"FILE_MODIFIED" DATE,
"MANDATOR_NAME" VARCHAR(100),
"APPLICATION_NAME" VARCHAR(100)
)

Report about Executions

Custom Report on Execution Summary

 

CREATE OR REPLACE FUNCTION REPORT_CUSTOM_EXECUTION_SUMMARY(start_date DATE, end_date DATE) RETURNS TABLE (
    "ID"                    BIGINT,
"SCHEDULER_ID" VARCHAR(100),
"HOSTNAME" VARCHAR(255),
"JOB_CHAIN" VARCHAR(255),
"JOB_NAME" VARCHAR(255),
"JOB_BASENAME" VARCHAR(100),
"JOB_CHAIN_BASENAME" VARCHAR(100),
"JOB_TITLE" VARCHAR(255),
"JOB_CHAIN_TITLE" VARCHAR(255),
"CAUSE" VARCHAR(100),
"IS_ACTIVE_CALENDAR" INT,
"START_TIME" TIMESTAMP,
"END_TIME" TIMESTAMP,
"START_DATE" DATE,
"END_DATE" DATE,
"MIN_START_DATE" DATE,
"MAX_START_DATE" DATE,
"MANDATOR_NAME" VARCHAR(100),
"APPLICATION_NAME" VARCHAR(100)
)
  • No labels