You can use the data forwarding feature of the rules engine to forward data to Tablestore (OTS) instances of the Wide Column model. This topic describes the data forwarding process. In this example, a Thing Specification Language (TSL) communication topic is used as a source topic.
Prerequisites
An IoT Platform instance whose data can be forwarded to OTS instances of the wide column model is created in a region that supports data forwarding to OTS instances of the wide column model. For more information, see Regions.
A data source named DataSource is created and a TSL communication topic is added to the data source. For more information, see Create a data source.
- A Tablestore instance and a table that is used to receive data are created. For more information, see the Tablestore documentation. Important If you use an IoT Platform instance of Enterprise Edition, the region in which the Tablestore instance is deployed must be the same as the region in which the IoT Platform instance resides.
Background information
Wide Column model: The model is similar to the Bigtable or HBase model. The model is suitable for various scenarios, such as metadata and big data processing. The model supports multiple features, such as data versions, time to live (TTL), auto-increment of primary key columns, conditional updates, local transactions, atomic counters, and filters. For more information, see Overview.
Usage notes
You can use the new or previous version of the data forwarding feature to forward data to OTS. For more information about how to use the previous version of the data forwarding feature, see Forward data to Tablestore.
Create a data destination
- Log on to the IoT Platform console.
On the Overview page, click All environment. On the All environment tab, find the instance that you want to manage and click the instance ID or instance name.
- In the left-side navigation pane, choose .
In the upper-right corner of the Data Forwarding page, click Go to New Version to go to the new version.
NoteIf you have performed this step, the Data Forwarding page of the new version appears after you choose Message Forwarding > Data Forwarding.
Click Data Destination. On the Data Destination tab, click Create Data Destination.
In the Create Data Destination dialog box, enter a data destination name. In this example, DataPurpose is used. Configure the parameters and click OK.
NoteYou can forward only data in the JSON format.
Parameter
Description
Operation
Select Store Data to Tablestore.Region
Select the region where your Tablestore instance is deployed.Instance
Select a Tablestore instance.You can click Create Instance to go to the Tablestore console and create a Tablestore instance. For more information, see the Tablestore documentation.
Storage Class
Select Wide Column Model.
Data Table
Select a Tablestore table that is used to receive data.You can click Create Data Table to go to the Tablestore console and create a Tablestore table.
Roles
Authorize IoT Platform to write data to Tablestore.If no RAM roles exist, click Create RAM Role to go to the Resource Access Management (RAM) console, create a RAM role, and then grant permissions to the RAM role. For more information, see Create a RAM role.
Configure and start a parser
Create a parser named DataParser. For more information, see Create a parser.
On the Parser Details page, associate the parser with the created data source.
In the Data Source step of the wizard, click Associate Data Source.
In the dialog box that appears, select DataSource from the Data Source drop-down list, and then click OK.
On the Parser Details page, associate the parser with the created data destination.
Click Data Destination in the wizard. In the Data Destination section, click Associate Data Destination.
In the dialog box that appears, select DataPurpose from the Data Destination drop-down list, and then click OK.
In the Data Destination section, view and save the data destination ID. In this example, the ID is 1000.
When you write the parser script, you must use the data destination ID.
On the parser details page, click Parser Script.
In the code editor, enter a script. For more information about how to modify a script, see Script syntax.
For more information about function parameters, see Functions.
// Use the payload() function to obtain the data that is submitted by devices and convert the data to JSON-formatted data. var data = payload("json"); // Obtain the submitted property values. var h = data.items.Humidity.value; var t = data.items.Temperature.value; // Add the deviceName and id primary keys to the table. You can use the writeTableStore() method to write humidity and temperature values to columns by using the column:value format. writeTableStore(1000, {"deviceName":deviceName(), "id":timestamp(), "temperature":t, "humidity":h});
Click Debugging. In the dialog box that appears, select a product and a device, specify a topic, and then enter payload data to check whether the script runs as expected.
The following figure shows the parameters.
The following result indicates that the script runs as expected.
Click Publish.
Go to the Parser tab of the Data Forwarding page. Find the DataParser parser and click Start in the Actions column to start the parser.
After the data is pushed, log on to the OTS console. Go to the Query Data tab of the table that is used to receive data and check whether the specified data is received.