SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 68437: Trying to score a Teradata table with a model that uses an analytic store (ASTORE) score code might result in incorrect output

DetailsHotfixAboutRate It

When you score a Teradata table, incorrect results might be returned when the following is true:

  • You perform the scoring in Teradata.
  • You use the SAS® Embedded Process.
  • The model's score code relies on an ASTORE file. Here are a few examples: Gradient Boosting, a Forest, an Ensemble, and SVM.
  • You define an input variable as one of the Teradata integer data types, such as INTEGER, SMALLINT, or BIGINT.

The issue does not occur with non-integer data types or if the model's score code is DATA Step.

The workaround for this issue is to define a Teradata view in which the variables defined as integer are casted to float using the Teradata CAST function.

cast(xxx as float) as xxx

Click the Hot Fix tab in this note for a link to instructions about accessing and applying the software update.

Post-Installation Instructions

An updated SAS Embedded Process, - sas-sepcoretera-19.0.1-20211011.121842368417.suse.x86_64.rpm, is part of the hot fix. After you download the new embedded process, complete the following steps to update the embedded process on Teradata:

  1. Shut down the embedded process by running the following commands:
CALL SQLJ.ServerControl('SAS', 'disable', :msg);
CALL SQLJ.ServerControl('SAS', 'shutdown', :msg);
  1. Shut down the Teradata database.
  2. Check to ensure the SAS Embedded Process has terminated by running the following command:
# psh "ps -fe | egrep 'tktera|udfsas' | grep -v grep"
  1. Remove the old embedded process RPM on all nodes by following the instructions under Upgrading or Uninstalling SAS Embedded Process for Teradata.
  2. Verify that the embedded process has been removed by running the following command:
#psh "rpm -qa sas-sepcoretera"
  1. Remove the SAS Formats library, if it is installed, by following the instructions under, Upgrading from a Previous Version.
  2. Verify that the SAS Formats library has been removed by running the following command:
#psh "rpm -qa accelterafmt"
  1. Determine whether anything still needs removed by running the following commands:  
#psh rpm -qa tkindbsrv
#psh rpm -qa jazxfbrs
#psh rpm -qa sepcoretera
#psh rpm -qa sepcoreterahf4

Remove any that still exist by running the psh rpm -e command.

  1. Transfer the RPM to all nodes by following the instructions under Move the SAS Embedded Process RPM Package File to Teradata.
  2. Deploy the embedded process by following the instructions under Deploy SAS Embedded Process with the Teradata Parallel Upgrade Tool.
  3. Start the Teradata database.
  4. Check the status of the embedded process and enable it if needed by running the following commands:
CALL SQLJ.ServerControl('SAS','status',:msg);
CALL SQLJ.ServerControl('SAS', 'enable', :msg);
  1. Request the latest copy of the SAS Embedded Process Support Functions from Teradata and run the sasepfunc update.sh script to start the embedded process.
# cd /opt/teradata/sasepfunc
# update.sh
  1. Republish the SAS formats in Teradata by following the instructions under Running the %INDTD_PUBLISH_FORMATS Macro.


Operating System and Release Information

Product FamilyProductSystemSAS Release
ReportedFixed*
SAS SystemSAS Embedded Process for TeradataLinux for x64ViyaViya
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.