- Index

< Previous |  | Next >

# TERR Operator Samples

## Introduction

TIBCO StreamBase operator for TERR and the TIBCO StreamBase operator for TERR Predict were designed to make it easy to use TERR within a StreamBase application and support many options for dealing with TERR. These samples illustrate the minimum needed to use TERR. Their purpose is not to teach TERR; for that, see the extensive TERR documentation.

The TERR operators require an installation of TERR 4.0 or later on the same machine on which StreamBase is installed, as described in the Authoring Guide pages for each operator.

### Note

StreamBase releases since 7.6.3 have bundled a Developer Edition of TERR in `STREAMBASE_HOME/terr`. You can use the bundled edition of TERR for experimentation and development, but not for deployment as described in License Considerations.

## Importing This Sample into StreamBase Studio

In StreamBase Studio, import this sample with the following steps:

- From the top-level menu, click File → Load StreamBase Sample.

- Enter ``terr`` to narrow the list of options.

- Select the TERR and TERR Predict Operators from the Other TIBCO Product Connectivity category.

- Click OK.

StreamBase Studio creates a single project to contain the sample's files.

## TERR Predict Sample

The TERR Predict sample shows how the TERR Predict operator works. It is set up to use the included `myModel.RDS` file, which contains the following R data as follows:

`lm(y~x, data.frame(x=1:100,y=log(1:100)))`

### Running TERR Predict Sample in StreamBase Studio

The steps to run this sample in Studio are as follows:

1. In the Project Explorer view, open the sample you just loaded.

   If you see red marks on a project folder, wait a moment for the project to load its features.

   If the red marks do not resolve themselves after a minute, select the project, right-click, and select Maven → Update Project from the context menu.

2. Open the `src/main/eventflow/`packageName`` folder.

3. Open the ``predict.sbapp`` file and click the Run button. This opens the SB Test/Debug perspective and starts the module. Notes are also provided on the EventFlow Editor canvas.

4. In the Manual Input view of the SB Test/Debug perspective, you can either leave the input null for defaults to be used, or you can enter values for an input tuple.

   Each input tuple results in an R execution and a result is returned in the terrData output tuple. The status stream displays any messages if the execution had any errors.

## TERR General Sample

The TERR General sample shows how the TERR General operator works. It is set up to use the included `myModel.r`, `myModel.RDS`, and `myModel.RData` files, which all contain the same R data as follows:

`lm(y~x, data.frame(x=1:100,y=log(1:100)))`

### Running TERR General Sample in StreamBase Studio

The steps to run this sample in Studio are as follows:

1. Continuing with the same sample, open the ``general.sbapp`` file and click the Run button. This opens the SB Test/Debug perspective and starts the module. Notes are provided on the EventFlow Editor canvas.

2. In the Manual Input view of the SB Test/Debug perspective, you can either leave the input null for defaults to be used, or you can enter values for an input tuple.

   Each input tuple results in an R execution and a result is returned in the terrData output tuple. The status stream displays any messages if the execution had any errors.

## TERR Init Via File Load Sample

The TERR Init Via File Load sample shows how the TERR General operator can load R data objects during runtime. It is set up to use the included `myModel.r`, `myModel.RDS`, and `myModel.RData` files, which all contain the same R data as follows:

`lm(y~x, data.frame(x=1:100,y=log(1:100)))`

### Running TERR Init Via File Load Sample in StreamBase Studio

The steps to run this sample in Studio are as follows:

1. Continuing with the same sample, open the ``init_via_fileload.sbapp`` file and click the Run button. This opens the SB Test/Debug perspective and starts the module. Notes are also provided on the EventFlow Editor canvas.

2. In the Manual Input view of the SB Test/Debug perspective, you can either leave the input null for defaults to be used, or you can enter values for an input tuple.

   Each input tuple results in an R execution and a result is returned in the terrData output tuple. The status stream displays any messages if the execution had any errors.

## TERR Advanced Sample

The TERR Advanced sample shows how you could change from using the TERR Predict Operator over to use the TERR General operator without having to change event flow. If you have a use case that changes and you require the more advanced feature set of the TERR General operator you can set it up to mirror how the TERR Predict operator works fairly easily. The file `advanced_demo.R` in the project explorer shows what R information is stored in the RDS files used in this example.

### Running TERR Advanced Sample in StreamBase Studio

The steps to run this sample in Studio are as follows:

1. Continuing with the same sample, open the ``advanced.sbapp`` file and click the Run button. This opens the SB Test/Debug perspective and starts the module. Notes are also provided on the EventFlow Editor canvas.

2. In the Manual Input view of the SB Test/Debug perspective press the send tuple button to send a tuple into the event flow.

   Each input tuple results in an R execution and notice that the result of the `TERRGeneralOut` and `TERRPredictOut` streams match each other.

## TERR Artifact Management Sample

The artifact management sample demonstrates how you can use a TIBCO Artifact Management Server to load new versions of R artifacts at runtime.

The TIBCO Artifact Management Server is a separately installed product. This sample assumes that you have a running Artifact Management Server (AMS) that is accessible by StreamBase. Refer to the product documentation for more information regarding AMS.

This sample also requires that you do the following:

1. Create a project folder in the Artifact Management Server called `sample`.

2. Navigate to `sample/terr/src/main/resources` from your StreamBase installation directory and upload the `advanced_demo_data.rds` and `advanced_demo_model.rds` files to the AMS `sample` project folder. Note that the `sample/terr` directory in StreamBase is a different directory from the AMS `sample` project folder.

### Running the TERR Artifact Management Sample in StreamBase Studio

Run this sample in Studio as follows:

1. Continuing with the same sample, open the ``artifactmanagement.sbapp`` file and click the Run button. This opens the SB Test/Debug perspective and starts the module. Notes are also provided on the EventFlow Editor canvas.

2. The application will try to pull the artifacts from AMS. Note that the `Required On Startup` option is selected for all operators, which means all the artifacts must be loaded from the AMS system before the application will run. If all artifacts cannot be loaded within a specific period of time, the system will fail with an `artifact timeout` exception.

3. In the Manual Input view of the SB Test/Debug perspective press the send tuple button to send a tuple into the event flow.

   Each input tuple results in an R execution. Notice that the result of the `Data` streams match each other.

4. From AMS, deploy the model again to the running `artifactmanagement.sbapp` application using the following properties:

   1. Target Type: StreamBase Service Name

   2. StreamBase Service Name `The node name that appears in the studio cluster view for this application`

5. In the Output Streams view, notice the `Status` output tuple showing a new model was loaded.

## Sample Location

When you load the sample into StreamBase Studio, Studio copies the sample project's files to your Studio workspace, which is normally part of your home directory, with full access rights.

### Important

Load this sample in StreamBase Studio, and thereafter use the Studio workspace copy of the sample to run and test it, even when running from the command prompt.

Using the workspace copy of the sample avoids permission problems. The default workspace location for this sample is:

    studio-workspace/sample_terr

See Default Installation Directories for the default location of `studio-workspace` on your system.