Record Generator


This stage generates new records based on the specified conditions. The functions of this stage include:

  • Generating required records by fixed calculation or querying frequency, or by triggering points.

  • Determining the dataset to be generated for the specific device and point, i.e., Map<assetId,Set<pointId>>, based on the filtering conditions (such as asset ID, model ID, asset tag, asset tree ID, and asset tree tag).


The triggering conditions for generating the records are based on the determined dataset:

  • Get the record data from Redis based on the fixed query frequency and time interval.

  • Get the record data from TSDB based on the fixed query frequency and time range.

  • Simulate the record data of certain types based on the fixed calculation frequency.

  • Simulate triggering point data based on the fixed calculation frequency.

Configuration

The configuration tabs for this stage are General, Basic, Input/Output, and Record Generate.

General

Name

Required?

Description

Name

Yes

The name of the stage.

Description

No

The description of the stage.

Stage Library

Yes

The streaming operator library to which the stage belongs.

Required Fields

No

The fields that the data records must contain. If the specified fields are not included, the record will be filtered out.

Preconditions

No

The conditions that must be satisfied by the data records. Records that do not meet the conditions will be filtered out. For example, ${record:value('/value') > 0}. For the syntax of EL expressions, see Expression Language.

On Record Error

Yes

The processing method for error data.

  • Discard: Error data will be discarded and ignored

  • Send to Error: Error messages will be reported

  • Stop Pipeline: The pipeline will be stopped

Basic

Name

Required?

Description

Trigger Type

Yes

Select the method of triggering the data record generation. Options are By Fixed Frequency and By Input Point.

Trigger Frequency

Yes

When you select generating data records by fixed frequency, select the frequency for generating new records.

Trigger Point

Yes

When you select generating data records by input point, enter the name of the triggering point (by the format of pointId, not modelId::pointId).

Input/Output

Name

Required?

Description

Generate Type

Yes

Select the method to generate new records.

  • By AssetIDs:Match measurement points by asset IDs

  • By ModelIDs:Match measurement points by model IDs

  • By Asset Tags:Match measurement points by asset tags

  • By Asset Tree:Match measurement points by asset tree IDs or asset tree tags

Output Asset

No

When the By AssetIDs method is selected, specify the asset ID. In the Output Point field, specify the measurement point for the generated data records, using the format {pointId}.

Asset Tag

No

When the By Asset Tags method is selected, specify the tag key and value. In the Output Point field, specify the measurement point for the generated data records, using the format {modelId}::{pointId} or {pointId}.

Tree Selector

No

When the By Asset Tree method is selected, specify the method of searching asset trees, either by asset tree IDs or by asset tree tags.

Tree ID

No

Specify asset tree ID. In the Output Point field, specify the measurement point for the generated data records, using the format {modelId}::{pointId} or {pointId}.

Tree Tag

No

Specify asset tree tag and value. In the Output Point field, specify the measurement point for the generated data records, using the format {modelId}::{pointId} or {pointId}.

Output Point

Yes

When the By ModelIDs method is selected, specify the measurement point for the generated data records, using the format {modelId}::{pointId}.

Record Generate

The methods of generating records include: Query From Redis, Query From TSDB, Generate New Point, and Generate Trigger Point. The configuration for each method is as follows.

Query From Redis

Name

Required?

Description

Use LastUpdate Interval Filter

No

Select whether to get the latest asset data from Redis using a fixed time interval.

LastUpdate Interval(Minutes)

No

Enter the time interval for getting the latest asset data.

NotExistHandle

Yes

Select the processing method when no data is retrieved.

  • Ignore this Point: Ignore the point data

  • Mock New Point: For all devices of a model, when no latest data is found for a measurement point in Redis, generate mock data for the point.

Query From TSDB

Name

Required?

Description

Start Time

Yes

Enter the start time to query the data from TSDB, using the format 2019-08-26T00:00:00+08:00.

Time Interval

Yes

Enter the time range to query the data.

End Time

Yes

Enter the end time to query the data from TSDB, using the format 2019-08-26T00:00:00+08:00.

NotExistHandle

Yes

Select the processing method when no data is retrieved.

  • Ignore this Point: Ignore the point data

  • Ignore and Send Error: Ignore the point data and report error

Generate New Point

Name

Required?

Description

Date Format

Yes

Select the date format of the generated data. Options are SimpleDateFormat and TimeFunctions.

  • SimpleDateFormat: Generate timestamp by the existing date format.

  • TimeFunctions: Generate timestamp by StreamSets expressions.

Start Time

Yes

Enter the timestamp for the start time of the new point, using the format 2019-08-26T00:00:00+08:00.

Time Interval

Yes

Specify the time interval for generating the new point data.

Value Generator

Yes

Select the method of generating new point data and the data type.

  • Random Number (Double): Randomly generate the point data.

  • Fixed Incremental as Value: Generate point data by a fixed incremental value. In the Beginning Number field, specify the starting value for the new point data. In the Fixed Incremental field, specify the fixed incremental value.

  • Random Number in Range: Randomly generate the point data within a specified value range. In the MinMax Range field, specify the value range. In the Decimal Scale field, specify the number of decimal places for the point data value.

  • Current System Time: Use the system time when the point is generated as its data value.

  • Input String as Value: Specify a string as the point data value. In the Input field, specify the string. In the Data Type menu, select the data type of the string.

Generate Trigger point

Name

Required?

Description

Date Format

Yes

Select the date format of the generated data. Options are SimpleDateFormat and TimeFunctions.

  • SimpleDateFormat: Generate timestamp by the existing date format.

  • TimeFunctions: Generate timestamp by StreamSets expressions.

Start Time

Yes

Enter the start time of the generated data, using the format 2019-08-26T00:00:00+08:00, or enter the StreamSets expression for generating the timestamp.

Time Interval

Yes

Specify the time interval for generating the new point data.

Value Generator

Yes

Select the method of generating new point data and the data type.

  • Random Number (Double): Randomly generate the point data.

  • Fixed Incremental as Value: Generate point data by a fixed incremental value. In the Beginning Number field, specify the starting value for the new point data. In the Fixed Incremental field, specify the fixed incremental value.

  • Random Number in Range: Randomly generate the point data within a specified value range. In the MinMax Range field, specify the value range. In the Decimal Scale field, specify the number of decimal places for the point data value.

  • Current System Time: Use the system time when the point is generated as its data value.

  • Input String as Value: Specify a string as the point data value. In the Input field, specify the string. In the Data Type menu, select the data type of the string.

Output Results

The output results of this stage are the generated records, which include the following:

  • Common fields (such as assetId, pointId, modelId, time, value)

  • Stage configuration attributes, which are included in the /attr/recordGenerator field, described in the table below.

Name

Data Type

Description

assetCfg

String

The selected method used to determine the dataset to be generated.

generateBy

String

The selected method used to generate the records.

queryStart/queryEnd

String

The specified start time and end time to query data from TSDB.

offset

String

The count of the generated data when the record is simulated.

curQueryBatch

String

The count of the record batches that triggers the generation of the simulated data.

triggerPoint

Boolean

Whether the generated data records are triggering points.

generatorKey

String

When generating triggering points, the value of Generate Type.

Output Example

By Tree ID + Query From Redis

../../../_images/record_generator_result_1.png

By Asset ID + Query From TSDB

../../../_images/record_generator_result_2.png

Generate New Point

../../../_images/record_generator_result.png

Generate Trigger Point

../../../_images/record_generator_result_3.png