Platform Analytics 7 Dataflow

WI_LSFFLEXEVENTMART table

This describes the wi_lsfflexeventmart table and how each column of data arises from the FLEXLM_LICENSE_EVENTS table.
The wi_lsfflexeventmart get its data from the FLEXLM_LICENSE_EVENTS table.
For each record we get, we will determine whether this is a lsf_job or not by looking at whether it contains a job_id and a cluster name. If it has a job_id and a cluster_name then the record will be sent over to wi_lsf_flex_LsfEtl.xml for the ETL to roll it up across the Cluster, SubmissionTime, JobID, JobArrayIndex, Vendor, Feature, Version, Server, EventReason, User, Event and CheckInTime and load the result into this table. If a record with the same job_id, finish_time, job_array_index, lic_vendor_code, lic_feature_code, lic_version_code, lic_server_code, lic_event_code, lic_eventreason_code, user_code, subhost_code, exechost_code and clustser_code exists, then the ETL will just increase the check_out_num, duration, check_out_max and event_count by this data. Otherwise, a new record will be created.
This is the column description of each data column of WI_LSFFLEXEVENTMART and how each column is filled with data.
Column Name
Description
Key
CLUSTER_CODE
This comes from the "Project" field in the FLEXLM_LICENSE_EVENTS table. We split the "Project" field into subfields and one of them is the cluster_name. Once we get the cluster_name, we then look it up in the wi_clustercode table to see if we have already has a record of it in there. If we do, then we'll get the code back, otherwise, we will insert it into the wi_clustercode table and generate the code. The code itself is a positive integer and each new code is equal to the maximum of the existing code+1.
Primary key
QUEUE_TIME
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

JOB_ID
This comes from the JobID subfield in the "Project" field in the FLEXLM_LICENSE_EVENTS table.
Primary key
JOB_ARRAY_INDEX
This comes from the JobID subfield in the "Project" field in the FLEXLM_LICENSE_EVENTS table.
Primary key
LIC_FEATURE_CODE
This comes from the "Feature" field in the FLEXLM_LICENSE_EVENTS table. Once we get the license feature, we then look it up in the wi_licfeaturecode table to see if we have already has a record of it in there. If we do, then we'll get the code back, otherwise, we will insert it into the wi_licfeaturecode table and generate the code. The code itself is a positive integer and each new code is equal to the maximum of the existing code+1.
Primary key
LIC_VENDOR_CODE
This comes from the "Vendor" field in the FLEXLM_LICENSE_EVENTS table. Once we get the license vendor, we then look it up in the wi_licvendorcode table to see if we have already has a record of it in there. If we do, then we'll get the code back, otherwise, we will insert it into the wi_licvendorcode table and generate the code. The code itself is a positive integer and each new code is equal to the maximum of the existing code+1.
Primary key
LIC_VERSION_CODE
This comes from the "Version" field in the FLEXLM_LICENSE_EVENTS table. Once we get the license version, we then look it up in the wi_licversioncode table to see if we have already has a record of it in there. If we do, then we'll get the code back, otherwise, we will insert it into the wi_licversioncode table and generate the code. The code itself is a positive integer and each new code is equal to the maximum of the existing code+1.
Primary key
MIN_CHECKOUT_TIME
This is the minimum checkout time of all the rolled-up records of CheckOut field that have the same key as described in the beginning of this page. This is in milliseconds that start from '1990-01-01 00:00:00.0000'.

MAX_CHECKIN_TIME
This is the maximum checkin time of all the rolled-up records of CheckIn field that have the same key as described in the beginning of this page. This is in milliseconds that start from '1990-01-01 00:00:00.0000'.

CHECK_OUT_MAX
This is the maximum of all the rolled-up records of the Num field that have the same key as described in the beginning of this page.

DURATION
For each data record, the duration is equal to the Checkin time - Checkout time. This field is the sum of all the rolled-up records of the Duration field that have the same key as described in the beginning of this page.

CHECK_OUT_NUM
This field is the sum of all the rolled-up records of the Num field that have the same key as described in the beginning of this page.

SUBMISSION_DATE
This comes from the SubmissionTime subfield in the "Project" field in the FLEXLM_LICENSE_EVENTS table.
Primary key
CLASSIFICATION
Not used

LIC_SERVER_CODE
This comes from the "LicenseServer" field in the data file. Once we get the license server, we then look it up in the wi_licservercode table to see if we have already has a record of it in there. If we do, then we'll get the code back, otherwise, we will insert it into the wi_licservercode table and generate the code. The code itself is a positive integer and each new code is equal to the maximum of the existing code+1.
Primary key
LIC_EVENT_CODE
This comes from the "Event" field in the data file. Once we get the event, we then look it up in the wi_liceventcode table to see if we have already has a record of it in there. If we do, then we'll get the code back, otherwise, we will insert it into the wi_liceventcode table and generate the code. The code itself is a positive integer and each new code is equal to the maximum of the existing code+1.
Primary key
LIC_EVENTREASON_CODE
This comes from the "Reason" field in the data file. Once we get the Event Reason, we then look it up in the wi_liceventreasoncode table to see if we have already has a record of it in there. If we do, then we'll get the code back, otherwise, we will insert it into the wi_liceventreasoncode table and generate the code. The code itself is a positive integer and each new code is equal to the maximum of the existing code+1.
Primary key
EVENT_COUNT
This is the total number of event record being rolled up into this record.

POOL_CODE
Not used.

START_TIME
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

FINISH_TIME
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.
Primary key

USER_CODE
This comes from the "User" field in the data file. Once we get the user name, we then look it up in the wi_usercode table to see if we have already has a record of it in there. If we do, then we'll get the code back, otherwise, we will insert it into the wi_usercode table and generate the code. The code itself is a positive integer and each new code is equal to the maximum of the existing code+1.
Primary key
EXECHOST_CODE
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.
Primary key

SUBHOST_CODE
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.
Primary key

QUEUE_CODE
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

PROJECT_CODE
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

JOB_TYPE
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

NUM_EXEC_PROCS
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

JOB_EXIT_STATUS
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

JOB_EXIT_CODE
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

TIMEDIFF_HOUR
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

RUN_TIME
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

PENDING_TIME
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

CPU_TIME
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

MEM_USAGE
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

SWAP_USAGE
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.

TIMEDIFF_MIN
This comes from the lookup of the job record in the wi_jobmart table based on the cluster_code, job_id and job_array_index.
Primary key
PLC_ID
This is the plc instance id.
 
LIC_SITE_NAME_CODE
This comes from the "LIC_SITE_NAME_CODE" field in the WI_LIC_SITENAMECODE table.
Primary key
JOB_GROUP_CODE

A code representing the job group. The source is the job_group field in the wi_jobgroupcode table. If the job_group already exists, the existing code is used; otherwise, the new group code is auto-incremented and inserted into the wi_jobgroupcode table.

 
INSERT_SEQ
This is a system generated sequence number. For each new record inserted, an unique sequence number is being assigned to this column.