Release Notes > Version 9.0 Release Notes > Analytics Server 9.0 Release Notes
Analytics Server 9.0 Release Notes
The following sections describe the new functionality, enhancements, bug fixes, and known issues in Analytics Server 9.0.
New Functionality
Alignment with ThingWorx High Availability Architecture
ThingWorx Analytics has been updated for compatibility with deployment of ThingWorx Platform in the active-active high availability architecture. Designed to scale easily from one to many ThingWorx servers, the high availability architecture can handle large amounts of IIoT data. For more information on the ThingWorx high availability architecture, see ThingWorx High Availability in the ThingWorx Platform Help Center.
Confidence Model Functionality
Confidence model functionality has been expanded to include the following new capabilities:
Create confidence models in Analytics Builder – You can now choose to create one or more confidence models during model training in Analytics Builder.
Multiple confidence models – You can now generate more than one confidence model at a time, via both ThingWorx APIs and in Analytics Builder. Simply add multiple confidence level values separated by commas.
In ThingWorx Analytics 9.0, confidence model functionality is available for continuous and ordinal data only.
For more information, see Confidence Models.
Confusion Matrix Weights
When creating a predictive model with a Boolean goal, either in APIs or Analytics Builder, new Confusion Matrix Weight parameters can now be applied during model training and validation. Because the cost of different prediction errors (false positives and false negatives) may not be equivalent, these new weight values can help optimize the predictive model threshold based on the cost of different types of errors, rather than on the total count of errors.
Setting matrix weight parameters is an advanced option that can be used to steer the selection of the true/false threshold in a specific direction. These parameters are available only when the model contains a Boolean goal variable.
For more information, see Customizing Confusion Matrix Weights.
Predictive Scoring Service for Edge Applications
In this release, the Synchronous Microservice provides a reduced-footprint predictive scoring capability that can be deployed independently, without the need for a full ThingWorx Platform installation. The Synchronous Microservice can be deployed close to a data source so that insights from predictive models can be generated in a timely fashion. The microservice can now be used by third-party software, like FactoryTalk Edge, to simplify the deployment and architecture of edge applications that can score predictive models created in ThingWorx Analytics.
This capability is currently designed to be implemented by the PTC Solutions and Services teams. Enablement materials and documentation are not available in this release. To enable this scoring capability, contact your Technical Support representative.
Enhancement Description
Reference #
Analytics Builder: Dataset metrics display on Profile and Signals list pages
Previously, top level dataset metrics, such as Dataset Name, Goal, Filter, Percent of Records Used, were only displayed when Signals and Profiles were viewed individually from a model results page. The dataset metrics were not displayed for Profiles and Signals viewed from a list page. With this enhancement, dataset metrics are always displayed for Profiles and Signals.
Analytics Server: Enable Signals and Profiles to run using Ordinal and Categorical goals
Previously in Analytics Server, Ordinal and Categorical goals could only be used when running training and scoring jobs. In this release, the use of Ordinal and Categorical goals has been expanded to include signals and profiles jobs.
Analytics Server: Allow the data directory to be moved to a different file system location
After installation, the data directory can be moved to a new location in the file system. For more information about implementing this capability, contact ThingWorx Analytics Technical Support.
Analytics Server: Change the default Windows installation directory
For improved consistency and clarity, the default directory for a Windows installation has been changed from Program Files (x86) to Program Files.
Analytics Builder: Remove learner configuration restrictions
When adding a Neural Net learner to a model in Analytics Builder restrictions on the Hidden Unit % and the Layer Count values have been removed. With this enhancement, the following are acceptable values:
Hidden Unit % – Any integer greater than 0
Layer Count – Any integer greater than or equal to 2
ThingWorx Analytics: Security improvements
In this release, security was improved by closing several vulnerabilities.
Analytics Server: New DetectMetadataJSON service added to the Data Thing
The existing DetectMetadata service produces metadata in an infotable format which Analytics Server cannot use directly for dataset creation. In this release, a new DetectMetadataJSON service has been added to the Data Thing. The new service can be used to output the detected metadata to a valid JSON format that can be used in subsequent dataset creation jobs.
Analytics Server: Add a configurable expiration date property to the API key
For improved security, the automatically generated and encrypted ThingWorx Analytics API key now includes an expiration date. At the end of the Analytics Server installation, the expiration date is set, by default, for 90 days. However, the date can be changed manually by updating the property in the file.
Analytics Builder and Analytics Server: Add new neural net learner parameters
The following parameters are now available for configuration when adding a neural net learner during model creation:
Hidden Layer Activation Function
Output Layer Activation Function
These parameters provide more user control over the output transformations applied to nodes on either the hidden or output layers. Configuring these parameters can help fine tune the behavior of the neural net.
Analytics Builder: Add a Model Description field
An optional Model Description field has been added to the New Predictive Model dialog box so that a description of the new model can be entered during model creation.
Analytics Builder and Analytics Server: Add the ability to validate on the training portion of the data
A new Validate on Training Data flag has been added to the model creation process. When enabled, a second validation job runs during model creation and evaluates the predictive model using the training portion of the data. This job runs separately from the job that evaluates the model using the validation holdout portion of the data. Model results are reported separately as well.
Analytics Builder: Reorganize the menu order to match the workflow
The order of the Analytics Builder menu items in the left navigation pane in ThingWorx Composer has been changed to more closely match the Analytics workflow. New menu order: Data, Signals, Profiles, Models, Settings.
Analytics Server: Add thingworx:// and thingworxs:// schemes for CSV data in scoring requests
For both batch and real time scoring services in the PredictionThing and the PrescriptiveThing, CSV datasets can now be retrieved from ThingWorx via the thingworx:// or thingworxs:// schemes.
Changes that Break Backwards Compatibility
When accessing Analytics Server through the ThingWorx Thing model hierarchy, the following API changes may require updates to existing data or models. For a table of Thing and service changes, see API Changes – 9.0.
Change Description
Reference #
Analytics Server: Align results from the batch and real time scoring services on both the Prediction and Prescriptive Things
Predictive and Prescriptive scoring return results in differing formats depending on whether those results are returned from a real time (synchronous) scoring job or a batch (asynchronous) scoring job. Real time scoring results are returned via a RealtimeScore service. Batch scoring results are returned via a RetrieveResult service.
In this release, these results have been aligned so that they are returned in the same Infotable format used by the batch scoring RetrieveResult service. This change will prevent backwards compatibility for your existing real time scoring jobs.
Analytics Server: Accomodate multiple confidence levels in the same job
In the Training and Validation microservices, CreateJob services have been updated to allow creation of multiple confidence models in a single job. To accommodate this enhancement, the confidenceLevel parameter has been modified to plural confidenceLevels. When you upgrade to ThingWorx Analytics 9.0 from an earlier version, an automated migration script converts existing jobs to use the new parameter name. However, to use existing REST API requests, this parameter change must be handled manually.
Analytics Server: Security enhancement to hide file structure information
Security enhancements have been made to ensure that the body of a request does not disclose operating system details by including absolute paths for CSV and JSON files. Only relative paths will be included. These changes could prevent backwards compatibility for these existing jobs:
CreateJob for Signals, Profiles, and Training
RealtimeScore and BatchScore for Prediction and Prescriptive
Analytics Server: Confusion matrix orientation is inconsistent
When a confusion matrix is returned in results from the validation service, the matrix orientation differs depending on the OpType of the goal variable. Matrix tables for Boolean goals are oriented with actual values represented by the rows (labeled along the side) and predicted values are represented by the columns (labeled across the top or bottom). Matrix tables for Categorical and Ordinal goals are oriented the other way around.
This issue has been resolved by changing the way that Boolean goals are represented in confusion matrix tables. All matrix tables are now oriented the same, with predicted values represented by the rows and the actual values by the columns.
When you upgrade to ThingWorx Analytics 9.0 from an earlier version, existing Boolean confusion matrix tables are migrated automatically to the new table orientation. However, when integrating with existing mashups or applications, keep in mind, for confusion matrix tables from old models with Boolean goals, the results are presented with the new orientation.
Confusion matrix tables in Analytics Builder were already displayed with the correct orientation and did not need to change.
Analytics Server:  Align results from different Signals results jobs
By design, signal results are returned in different formats depending on which Signals Thing service is used to retrieve those results. When retrieved via the RetrieveResults service, the results are converted to an Infotable for use in ThingWorx. When retrieved via the SaveJobResult service, the results are written to a JSON file and saved to the AnalyticsResultsStorage repository.
The two formats are useful in different scenarios. However, there is inconsistency between the two formats in the parameters and parameter names included in the signal results. In this release, those inconsistencies have been resolved so that the two formats for signals results display the same parameters with the same naming conventions. This resolution includes adding the missing redundantWithFeature column to the Infotable output of the RetrieveResults service.
This change will prevent backwards compatibility for the RetrieveResults service because the structure of results has changed.
Analytics Builder and Analytics Server: Issues caused by using non-English locales in PMML models
If a PMML model is created using a non-English locale, inaccuracies can occur when that PMML model is used for subsequent calculations. Because the PMML specifications stipulate in particular that the character “.” represents a decimal in the presentation of real number values, ThingWorx Analytics will enforce English locale settings for PMML generation.
When upgrading from an earlier version of Analytics Server, existing models in the ThingWorx Analytics database, that were created in non-English locales, will be migrated automatically.
Bug Fixes
Bug Fix Description
Reference #
Analytics Manager: Simulation analysis events cannot be triggered by custom events
A simulation analysis event in Analytics Manager is an event that is created with the Run as Simulation parameter set to true. You can configure simulation analysis events to be triggered by specific ThingWorx events. When the triggering event is one of multiple out-of-the-box events available in ThingWorx, the simulation analysis event runs successfully. However, if you create a custom event in ThingWorx to act as the trigger event, errors occur and the simulation analysis event cannot run.
This issue has been resolved so that custom events can be used to trigger simulation analyses.
Analytics Builder: Actual model Lookback Size is not displayed
When using time series data to build a predictive model, you can enter a specific Lookback Size or enter 0 and allow auto-windowing to select the value. In the case of auto-windowing, the actual size selected for training the model is not exposed in Analytics Builder. This information is necessary when scoring time series data.
This issue has been resolved so that the actual Lookback Size selected during training is displayed in the model details header at the top of the Model Results page.
Analytics Builder and Analytics Server: Distribution queries fail when field names contain square brackets
There is currently not a way to handle field names with square brackets in distribution queries. This issue is resolved with a code update that disallows the use of square brackets in data field names and in distribution queries.
Analytics Builder: Clean up the use of spaces in names throughout the system
All requirements to name datasets, filters, model, and signals without spaces have been removed. Names for all of these files and jobs can handle spaces.
Analytics Builder: Filtering on list pages does not work as expected
When filtering is applied to a list page with multiple pages (such as the Models list page), the filtered results are not aggregated for display on a single page. Instead, the filtered results remain on their original pages and multiple pages must be clicked through to find all the filtered results.
This issue has been resolved so that filtered results are displayed as expected.
Analytics Builder: The Settings tab is out of sync with actual connection status
In Analytics Builder, the ThingWorx Analytics Server Configuration page indicates the status of your connection to an Analytics Server. The right-hand panel on the page displays the version of the Analytics Server and a list of the datasets it contains. On occasion, the display in the right panel does not match the actual connection status of the Analytics Server selected on the left. This issue has been resolved so that the information displayed on the right side of the page is in sync with the selection on the left.
Analytics Builder: Profiles generated from the Models tab are not displayed automatically
In Analytics Builder, when profiles are generated for an existing model from the Models list page, the completed profile results are not displayed automatically. The page must be refreshed to see the profile results. This issue has been resolved so that profiles are displayed automatically when the job completes.
Analytics Server: Duplicate installation folders are created when installing in a non-default location
When a non-default location is selected during the Analytics Server installation, a duplicate set of folders is created in the default location. This issue has been resolved so that installation folders are created only in the selected location.
Analytics Server: Profiles fail when using a non-string categorical data field
Currently, the Categorical opType can only accept String data. This issue has been addressed by displaying a meaningful error message when non-string data is used.
Analytics Server: Delete job response codes are not consistent
Some delete jobs return a 204 (No Content) response code when the delete job cannot be completed. For consistency, all delete jobs that fail now return a 404 (Not Found) response code.
Analytics Server: The AppendDatasetWithDatasetRef service does not work as expected
When using the AppendDatasetWithDatasetRef service to append CSV data in the request body, the append job fails. This issue has been resolved so that CSV data can be appended successfully in a request body.
Analytics Builder: Predictive scoring Job ID disappears from Job Details when page refreshes
When launching the Job Details dialog box for a predictive scoring job, the page refreshes and the Job ID information can no longer be displayed. This issue has been resolved so that the page does not refresh when Job Details opens.
Analytics Builder: Hidden Unit % learner parameter is labeled as a percentage but displayed as a decimal
The display of the Hidden Unit % parameter has been changed to display percentage values in both the Learning Techniques table and the Model Details page.
Analytics Server Installer: Localhosts are not accepted when configuring SSL access
When installing Analytics Server in an SSL environment, the Analytics Server installation requires a host IP address selected from a dropdown menu. Localhost names are not accepted. To resolve this issue, the dropdown menu has been changed to a text field and valid entries include either an IP address or a Fully Qualified Domain Name.
Analytics Server: Installer does not support HTTP 300 error codes
For security reasons, the Analytics Server installer cannot support HTTP redirections. For clarity, an error message has been added that will notify the user during installation that redirection is not supported.
Analytics Builder: Cannot properly display models that were created via APIs with no validation data
Models training job can be launched via APIs with no validation holdout data but Analytics Builder requires a holdout percentage. Because of this difference, when models created with no validation holdout are displayed in Analytics Builder, the training jobs appear to run indefinitely. This issue has been resolved so that models without validation holdout data can still be displayed properly in Analytics Builder. New messaging has been added to the View Model Results page to indicate when no validation statistics are available.
Analytics Server: Using string values for Boolean data generates errors for profiles, signals, and models jobs
The conversion of Boolean string values, such as True/False, fails when creating profiles, signals, and models. This issue has been resolved so that string values are accepted and successfully converted for Boolean parameters.
Analytics Builder: Model retraining fails when new Categorical data is added
This issue has been resolved so that new values for Categorical data can be added and model retraining will complete successfully.
Analytics Builder: Refactor pagination on the Signals, Profiles, and Scoring list page
Pagination on the list page now works correctly with filters. Each page is fully populated, even when results are filtered out.
Analytics Server: Dataset creation jobs run indefinitely when an invalid metadata JSON file is loaded
During dataset creation, if an invalid metadata JSON file is uploaded, the dataset job continues to run indefinitely. For a better user experience, a more informative error message is returned to alert the user that the supplied metadata file is invalid.
Analytics Builder: Accepts multiple datasets with identical names
During dataset creation, if the Submit button is clicked multiple times, multiple datasets with identical names are created. This issue has been resolved so that multiple datasets cannot be created with the same name.
Analytics Server: Prescriptive batch scoring jobs fail when using inferred metadata
Certain inferred data types are inconsistent with the prescriptive scoring service. To resolve this issue, the DetectMetadata service has been updated to infer Byte and Short datatypes as Integer data.
Analytics Builder and Analytics Server: Issues caused by using non-English locales in Confidence models
When a confidence model is created using a non-English locale, the model fails and an exception is generated. The issue occurs because the PMML specifications does not recognize the character “,” for a decimal in the presentation of real numbers values. This issue has been resolved by adding localization to the confidence model section of the PMML file.
Analytics Builder: List pages go blank when a job is in Queued state
This issue has been resolved so that list pages for Datasets, Models, Profiles, and Signals are not displayed as blank while a new job is in Queued state.
Analytics Builder: Exclusions are not displayed with models
This issue has been resolved so that exclusions are displayed when viewing model results and job details.
Analytics Builder: Predictive scoring jobs do not display when created from data that is not in a dataset
When predictive scoring is run using data from a file or data included in a request body, the predictive scoring job is not displayed on the Analytics Builder Predictive Scoring list page. This issue has been resolved so that scoring jobs are displayed in Analytics Builder as expected.
Known Issues
Known Issue Description
Reference #
Analytics Manager: Time window event does not work for non-time series models
When a non-time series model is uploaded using the Analytics Server Connector, and all of the properties, including the key field are mapped, a time window event does not work.
ThingWorx Analytics Server: Two-at-a-time Signals request does not return MI for all field combinations
When running a request for Signals, and specifying maxAtATime = 2, Mutual Information (MI), in relation to the goal, is not returned for all field combinations as expected. Instead, individual (one-at-a-time) MI scores are returned for all fields and then are filtered down to the top 25% most relevant fields. Two-at-a-time signals are calculated only for those fields. There is currently no way to modify this filtering behavior.
Analytics Extension: Unable to do a manual upgrade from 8.4.x to 8.5.4
When upgrading ThingWorx Analytics Server from an 8.4.x version to 8.5.4, the installation of the Analytics Extension does not complete successfully. This Analytics upgrade also requires an upgrade to one of the following ThingWorx versions: 8.5.0, 8.5.1, or 8.5.4. The upgrade failure occurs in all three ThingWorx versions and is caused by changes made to the ThingWorx Smartgrid extension package (AnalyticsSmartGrid_ExtensionPackage).
This issue has been resolved for upgrades handled through the Analytics Server installer. However, if you upgrade Analytics Extension manually, the problem still remains and will be fixed in a future ThingWorx release.
Until then, a work around is available that involves removing the AnalyticsSmartGrid_ExtensionPackagebefore upgrading the Analytics Extension.For more information, see the Resolution section of article CS314686.
Analytics Builder: Scoring records from a REST request are not displayed correctly
When a predictive scoring job is submitted via a REST API request, the information displayed on the Model list page in Analytics Builder is incorrect. The Number of Records Scored column should reflect the number of data rows submitted in the REST request. Instead, it displays a value of 0.
This issue will be resolved in a future release.
Analytics Builder: Signal job results not cleared in Chrome browser
When a filter is applied to the Signals list page and results in no matching jobs, the list is not cleared properly in a Chrome browser and previous results are displayed. This issue will be resolved in a future release.
Analytics Builder: Bubble plot shows the 0,0 bubble as overpredicted when it should be shown as accurate
When a continuous model is created and results are returned in a bubble plot, the bottom left bubble is displayed as overpredicted (shown in green), when it should really be shown as accurate (in blue). This behavior occurs especially at the 0,0 point (accurate = 0, predicted = 0). This issue will be resolved in a future release.
End of Life Information
ThingWatcher was discontinued as a standalone SDK in 8.3. However, ThingWatcher functionality is available in the Anomaly Detection features native to the ThingWorx platform. For more information, see Anomaly Detection.