Sie sind auf Seite 1von 14

FusionOps Forecast

Server
Design Document
Landing Page
after login
New Forecast Archives

Forecast Run Date Forecast Proj Environme Subject Report Holdout Last date Horizon Min. CPUs Items to Items Forecast Upload/ Estimate Actual
ID Name ect nt Area Name date Training Forecast forecaste Status Discarde Run Time Forecast
Period d d or Runtime
created
new SA
1245 7/1/2016 test1 XYZ PRD 100 30 In Not 60 mins 30 mins
Progress started
1244 6/30/2016 test0 XYZ PRD 100 100 In New 130 mins 120 mins
Progress

Table is stored in a DB and displayed on the webpage: fact_forecastserverstatus


Forecast ID is auto-generated.
Clicking this takes the This table is updated after each selection made by the user
user to last page
Settings Input Validation Forecast Settings

Data Settings

Select Input Subject Area Forecast Run Identifier


Select Environment

Select Project Select Input Report


Meta-calls to be made to get the project ID, Subject area and report names

projectid --> SELECT id from ispring.project where name = <projectname>;


( e.g HDSMITHE6D )

subjectarea/fact --> SELECT md_factid


from fusionops.md_fact where FactName = <FactName> and projectid =
<projectid>;  ( e.g Sales Analysis)
Data Mapping
md_objectid (for report) --> SELECT md_biobjectid
from fusionops.md_biobject where BIObjectName = <Report Name> and
Date projectid = <projectid>;
Part (attribute level 1)
fact_forecastserverstatus gets updated with these settings

Plant (attribute level 2) Sales Quantity

Back Validate

Get data using the Report and call validate.py


Settings Input Validation Forecast Settings

Validation

Item Description
Parts 1000
Plant 4 [Shravan] Return a
JSON attribute (0 or
Part/Plant Combination 2000 1). If the attribute is
1, then show
Start Date 1/1/2013 forecast, otherwise
do not proceed.
End Date 6/30/2016
Average Sales 100 units
Expected Time 120 mins

Back Forecast

Display the results from Python validation script.


The results are returned as a JSON
Fact_forecastserverstatus gets updated with these settings
Settings Input Validation Forecast Settings

Forecast Settings

Holdout Date
Number of Horizon period Number of CPUs

Default = last date – 6 months Default:24 Default:30

Minimum Training Period Values: 5,10,15,20,25,30,35,40,45,50


Last Date

Default = End date – 1 months Default:18

[Shravan] Acknowledge
“End Date” needs to when this button is pressed
be remembered from that the python is running
previous page
Run
Back Forecast

fact_forecastserverstatus gets updated with these settings


This page appears
after the job is
submitted to run
New Forecast Archives

Forecast Run Date Forecast Proj Environme Subject Report Holdout Last date Horizon Min. CPUs Items to Items Forecast Upload/ Estimate Actual
ID Name ect nt Area Name date Training Forecast forecaste Status Discarde Run Time Forecast
Period d d or Runtime
created
new SA
1245 7/1/2016 test1 XYZ PRD 100 30 In Not 60 mins 30 mins
Progress started
1244 6/30/2016 test0 XYZ PRD 100 100 Done New 130 mins 120 mins
1243 7/15/2016 test0 XYZ PRD 100 100 Done 130 mins 120 mins

A way is needed to know when the forecast run is over.

[Shravan] to add a try/catch logic if there is an error


[Lokesh] Run a script after the forecast is to edit the dd_forecaststatus
After the job is done, a user can click to “Done” or “Error” in fact_forecastserverstatus. If the user clicks on the row for which forecast is already
on the forecast ID to go to next step. uploaded or archived then it will take to Archive page. For
[Sankar] If there is error or in progress [Lokesh] Run a script after the forecast to populate discarded run, there will be no clickable option
• Fact_mapehistogram
then it is not clickable
• fact_forecastserverstatus
• Fact_forecastaccuracy
• Fact_bestmethods
Results Load in FusionOps Finish

MAPE Distribution Errors and Failed Methods


Item Description
Time Started 12 Jul 2016 5pm
Time Ended 12 Jul 2016 10 pm
Status Success, Paused, Failed
Logfile Name 12JUL2016-Name.log
Time Taken to Forecast 130 mins

Table of Parts and Accuracy Best Methods


Item Description
Parts/Plant Forecasted 200
Parts 150
Plants 3
Mode MAPE 23
Average MAPE 30
% Parts less than 20% MAPE 20
% Parts less than 20% MAPE 22

Discard Run Archive Only Upload Options


Errors and Failed Methods
Item Description
Time Started 12 Jul 2016 5pm
Time Ended 12 Jul 2016 10 pm
Status Success, Paused, Failed
MAPE Distribution
Logfile Name 12JUL2016-Name.log
Time Taken to Forecast 130 mins

Fact_mapehistogram fact_forecastserverstatus
Forecastid, bin, count Forecastid, and column names

Backend:
When a forecast finished, we will generate these
additional CSV files which will be appended to the
respective facts. Fact_bestmethods
Fact_forecastaccuracy Forecastid, method name, count
Forecastid, and the columns below
Best Methods
Table of Parts and Accuracy
Item Description
Parts/Plant Forecasted 200
Parts 150
Plants 3
Mode MAPE 23
Average MAPE 30
% Parts less than 20% MAPE 20
% Parts less than 20% MAPE 22
Results Load in FusionOps Finish

Options

Identifier

Default = None

Append to Existing Create New Subject A user can change this


Subject Area Area

New subject area name

Default = None

A user can change this


Results Load in FusionOps Finish

Finish

1. The results are archived as “Name”.

2. The results are uploaded (or not uploaded) to new subject area (or existing one).

Forecast Run Date Forecast Proj Environme Subject Report Holdout Last date Horizon Min. CPUs Items to Items Forecast Upload/ Estimate Actual
ID Name ect nt Area Name date Training Forecast forecaste Status Discarde Run Time Forecast
Period d d or Runtime
created
new SA

1245 7/1/2016 test1 XYZ PRD 100 30 In Not 60 mins 30 mins


Progress started

Home
Click here

New Forecast Archives

Forecast Run Date Forecast Proj Environme Subject Report Holdout Last date Horizon Min. CPUs Items to Items Forecast Upload/ Estimate Actual
ID Name ect nt Area Name date Training Forecast forecaste Status Discarde Run Time Forecast
Period d d or Runtime
created
new SA
1245 7/1/2016 test1 XYZ PRD 100 30 In Not 60 mins 30 mins
Progress started
1244 6/30/2016 test0 XYZ PRD 100 100 In New 130 mins 120 mins
Progress
Enter Run Identifier
Archives Home

MAPE Distribution Errors and Failed Methods


Item Description
Time Started 12 Jul 2016 5pm
Time Ended 12 Jul 2016 10 pm
Status Success, Paused, Failed
Logfile Name 12JUL2016-Name.log
Time Taken to Forecast 130 mins

Table of Parts and Accuracy Best Methods


Item Description
Parts/Plant Forecasted 200
Parts 150
Plants 3
Mode MAPE 23
Average MAPE 30
% Parts less than 20% MAPE 20
% Parts less than 20% MAPE 22

Discard Run
Suggestion Tasks Names
Shravan Modify python code to generate CSV files for • Fact_mapehistogram.csv
• Fact_bestmethods.csv
• Fact_forecastaccuracy.csv
Complete evaluation of spark versus multi-threading approach
Evaluate if kafka is needed for forecast server
Evaluate if spark is needed for forecast server
Prepare validation python code Validation.py
Prepare a logfile that tracks how many part/plants are forecasted Track.log
Lokesh Create VW tables and provide update queries • fact_forecastserverstatus
• Fact_mapehistogram
• Fact_bestmethods
• Fact_forecastaccuracy
PE team Technical Architecture • fact_forecastserverstatus
• Design distributed computing for sending files from one server to other • Fact_mapehistogram
• scp • Fact_bestmethods
• authentication • Fact_forecastaccuracy
• Design deletion of files
• Directory structure on each node
• Design UI to VW communication for the 4 CSV file
• Design error handling in the workflow
• Wiki page
Provide infrastructure to get the data from a report
Provide infrastructure to put data to VW from a different server
• Above mentioned facts
• FOPS demand forecast subject area
Create log mechanism and logfile for populating fact_forecastserverstatus.log
Anshuman UI pages
Learn JS and related frameworks
Server Description
Server 1 IP address: 172.17.0.7
RAM: 25 GB
Cores: 50
Server 2 IP address: 172.17.0.8
RAM: 25 GB
Cores: 50

Directory Filename
/home/forecasting/scripts Various scripts
 /home/forecasting/input/ sales_history_{job_Id}.txt
Forecast_{job_Id}.ini
/home/forecasting/input/
/home/forecasting/output/ sales_forecast_{job_Id}.txt
/home/forecasting/logs/ log_{job_Id}.txt