La función de reenvío de datos del motor de reglas permite enviar información a instancias de Tablestore (OTS) que usan el modelo TimeSeries. Este tema describe el proceso de reenvío de datos. En este ejemplo, se utiliza un topic de comunicación de Thing Specification Language (TSL) como topic de origen.
Requisitos previos
Se creó un origen de datos llamado DataSource y se agregó un topic de comunicación TSL a dicho origen. Para obtener más información, consulte Add a data source.
-
Se crearon una instancia de OTS y una tabla para recibir los datos. Para obtener más información, consulte "TimeSeries model" section in the OTS documentation.
ImportanteSi utiliza una instancia de IoT Platform Enterprise Edition, la región donde se despliega la instancia de OTS debe ser la misma que la de la instancia de IoT Platform.
Contexto
El modelo TimeSeries almacena datos de series temporales generados en escenarios como el monitoreo de dispositivos IoT, la recopilación de datos de dispositivos y el monitoreo de máquinas. Este modelo admite la indexación automática de metadatos de series temporales y consultas basadas en diversas condiciones compuestas. Para obtener más información, consulte TimeSeries model.
En este ejemplo, se llama a la función writeTableStoreTs() y se especifican los siguientes parámetros para escribir datos en la tabla de series temporales:
fields: use expresiones JSONPath para obtener los valores de las propiedades Temperature y Humidity que envía el dispositivo. Después, escriba esos valores en la tabla de series temporales.
timeInUs: llame a la función
timestamp()para obtener una marca de tiempo en milisegundos. Esta marca indica el momento exacto en que el dispositivo envió los datos. El valor del parámetro timeInUs debe estar en microsegundos. Calcule el valor de timeInUs con la siguiente fórmula: timestamp() × 1,000. Escriba el resultado en la tabla.tags: escriba {"region": "cn-shanghai"} en la tabla.
metricName: escriba property en la tabla.
dataSource: llame a la función deviceName() para obtener el DeviceName y escríbalo en la tabla.
Límites
Solo las instancias Enterprise Edition en la región China (Shanghai) permiten usar la nueva versión de la función de reenvío de datos para enviar información a instancias de OTS con el modelo TimeSeries.
Crear un destino de datos
Inicie sesión en la consola de IoT Platform.
-
En la pestaña Overview, busque la instancia que desea gestionar y haga clic en su nombre para ir a la página Instance Details.

En el panel de navegación izquierdo, elija .
-
En la página Data Forwarding, haga clic en Go to New Version en la esquina superior derecha.
NotaSi ya realizó esta operación antes, el sistema lo redirige automáticamente a la nueva versión de la página Data Forwarding.
Haga clic en la pestaña Data destination y luego en Create data destination.
-
En el cuadro de diálogo Create Data Destination, introduzca un nombre para el destino de datos; por ejemplo, DataPurpose. Configure los parámetros y haga clic en OK.
A continuación se describen los parámetros.
NotaSolo se pueden reenviar datos en formato JSON.
Parámetro
Descripción
Operation
Seleccione Store Data to Tablestore.
Region
Seleccione la región donde se activó OTS.
Instance
Seleccione una instancia de OTS.
Puede hacer clic en Create Instance para ir a la consola de OTS y crear una instancia con el modelo TimeSeries. Para obtener más información, consulte Create an instance of the TimeSeries model.
Storage Class
Seleccione TimeSeries Model.
Data Table
Seleccione la tabla de series temporales que usará para recibir los datos.
Puede hacer clic en Create Data Table para ir a la consola de OTS y crear una tabla de series temporales. Para obtener más información, consulte Create a time series table.
Role
Otorgue a IoT Platform los permisos necesarios para escribir datos en la tabla de series temporales.
Si no existe ningún rol de RAM, haga clic en Create RAM Role para crear un rol y una política de autorización en la consola de RAM. Create a RAM role.
Configurar e iniciar un analizador
Cree un analizador; por ejemplo, DataParser. Para obtener más información, consulte Step 1: Create a parser.
-
En la página Resolver Details, asocie el origen de datos.
En el asistente de configuración, dentro de Data Source, haga clic en Associate Data Source.
En el cuadro de diálogo, seleccione DataSource en la lista desplegable Data Source y haga clic en OK.
-
En la página Resolver Details, asocie los destinos de datos.
En el asistente de configuración, haga clic en Data Destination. Luego, en la esquina superior derecha de la lista Data Destination, haga clic en Associate Data Destination.
En el cuadro de diálogo que aparece, seleccione DataPurpose en la lista desplegable Data Destination y haga clic en OK.
-
En la lista de destinos de datos, busque el Data Destination ID y anótelo; por ejemplo, 1000.
Necesitará este Data Destination ID en el script de análisis.
En la página parser details, haga clic en la pestaña Parser Script.
-
En el editor de código, introduzca un script. Para obtener más información sobre cómo modificar un script, consulte Script syntax.
Para obtener más información sobre los parámetros de las funciones, consulte Function list.
// Call the payload() function to obtain the data that is submitted by devices and convert the data into the JSON format. var data = payload("json"); // Obtain the submitted property values. var h = data.items.Humidity.value; var t = data.items.Temperature.value; var datasource = deviceName(); var fields = {"temperature":t, "humidity":h}; var tags = {}; tags.put("region", "cn-shanghai"); var metricName = "property"; var timeInUs = timestamp()*1000; // Call the writeTableStoreTS method to write the temperature and humidity values to the corresponding columns based on the point in time at which the values are submitted. writeTableStoreTs(1000, timeInUs, metricName, tags, fields, datasource);También puede establecer el parámetro metricName en Temperature o Humidity y luego escribir los datos correspondientes. Código de ejemplo:
writeTableStoreTs(1000, [ { "timeInUs": timestamp() * 1000, "metricName": "Temperature", "tags":tags, "fields":{"temperature": t}, "dataSource": deviceName() }, { "timeInUs": timestamp() * 1000, "metricName": "Humidity", "tags":tags, "fields":{"humidity": h}, "dataSource": deviceName() }, ]); -
Haga clic en Debugging. En el cuadro de diálogo que aparece, seleccione un producto y un dispositivo, especifique un topic e introduzca los datos de carga útil para comprobar si el script se ejecuta correctamente.
En la siguiente imagen se muestran los parámetros.

Si se devuelve un resultado similar al de la siguiente imagen, el script se ejecutó correctamente.

Haga clic en Publish.
Regrese a la pestaña Resolver de la página Data Forwarding y haga clic en Start para el analizador DataParser.
-
Una vez enviados los datos, inicie sesión en la consola de OTS. Vaya a la página Data Editor de la tabla que recibe los datos y compruebe si llegó la información esperada. Para obtener más información, consulte Query time series data.
La función de consulta SQL le permite ejecutar consultas complejas y analizar los datos de OTS de manera eficiente. Para obtener más información, consulte Use SQL to query time series data.
