Configure un analizador de reenvío de datos para enviar los datos procesados del dispositivo a Lindorm. En este ejemplo se utiliza un tema de comunicación de Thing Specification Language (TSL) como tema de origen.
Requisitos previos
Se creó un origen de datos llamado DataSource y se agregó un tema de comunicación TSL al origen de datos. Para obtener más información, consulte Add a data source.
Se creó una Lindorm instance en la consola de Lindorm y se configuraron los ajustes según sus requisitos empresariales. Solo se admiten instancias de Lindorm con modelos de facturación pay-as-you-go y subscription.
Se integró el SDK de LindormTSDB para Java nativo. Se crearon una base de datos de series temporales, una tabla y una cuenta con su contraseña correspondiente para gestionar la base de datos. Se configuró el almacenamiento de datos de series temporales en varias instancias de Lindorm. Para obtener más información, consulte Tutorial: Use the Java Native SDK to connect to and use LindormTSDB.
Contexto
Una vez configurado un destino de datos, el sistema aplica automáticamente los siguientes ajustes para reenviar los datos del dispositivo a Lindorm mediante el motor de reglas de IoT Platform.
IoT Platform ocupa dos direcciones IP del vSwitch al que está conectada la instancia de Lindorm. El bloque CIDR IPv4 del vSwitch se agrega a la lista de permitidos de la instancia de Lindorm.
Se crea un security group administrado en la virtual private cloud (VPC) donde se despliega la instancia de Lindorm. El nombre predeterminado del security group comienza con sg-nsm-.
En este ejemplo, se escriben los siguientes datos en la base de datos de series temporales:
timestamp: Llama a la función timestamp() para obtener la hora en que un dispositivo envía datos.
tags: Llama a la función
deviceName()para obtener el DeviceName. La etiqueta{"device_id": deviceName(), "region": "cn-shanghai"}se escribe en la base de datos.fields: Utiliza expresiones JSONPath para obtener los valores de las propiedades Temperature y Humidity enviadas por el dispositivo. Estos valores se escriben en la base de datos.
Límites
Solo la nueva versión de la función de reenvío de datos admite el reenvío a Lindorm. Actualmente, solo se admite el motor de series temporales de Lindorm como destino.
-
Regiones compatibles
Esta función solo está disponible en regiones específicas donde se aloja IoT Platform. Para consultar la lista detallada de regiones compatibles, véase Feature availability by region.
Su instancia de Lindorm debe desplegarse en la misma región que su instancia de IoT Platform.
NotaEn la región China (Shanghai), esta función no está disponible en la zona de disponibilidad B (cn-shanghai-b). Está disponible en las zonas de disponibilidad F (cn-shanghai-f) y G (cn-shanghai-g).
Creación de un destino de datos
Inicie sesión en la consola de IoT Platform.
En la página Overview, busque la instancia que desea gestionar y haga clic en el ID o el nombre de la instancia.
En el panel de navegación izquierdo, seleccione .
-
En la página Data Forwarding, haga clic en Go to New Version en la esquina superior derecha.
NotaSi ya realizó esta operación anteriormente, se le 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. Ejemplo: DataPurpose. Configure los demás parámetros y haga clic en OK. La siguiente tabla describe los parámetros.
Parámetro
Descripción
Operation
Seleccione Store Data to ApsaraDB for Lindorm.
Authorize
Haga clic en Authorize. El sistema crea automáticamente un rol y una directiva que autorizan a IoT Platform a escribir datos en Lindorm. Para obtener más información, consulte AliyunServiceRoleForIoTRuleengineLindorm.
NotaSi IoT Platform ya está autorizado, omita este paso.
Region
La región donde reside la instancia de IoT Platform.
Engine Type
Seleccione Time Series Engine.
Lindorm Instance
La instancia de Lindorm que creó en una VPC.
Database
El nombre de la base de datos que recibirá los datos. La base de datos debe pertenecer a la instancia de Lindorm.
Table Name
El nombre de la tabla que recibirá los datos. La tabla debe pertenecer a la base de datos.
Account
El nombre de la cuenta y la contraseña para gestionar la base de datos de series temporales.
Para obtener más información sobre las cuentas y contraseñas de gestión de bases de datos, consulte User and permission management.
Password
Configuración e inicio de 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, en 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, puede asociar 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 a device and convert the data to JSON-formatted data. var data = payload("json"); // Filter the submitted temperature and humidity values. var h = data.items.Humidity.value; var t = data.items.Temperature.value; var fields = {"temperature":t, "humidity":h}; var tags = {"device_id": deviceName(), "region": "cn-shanghai"}; var timestamp = timestamp(); // Forward the submitted TSL data. writeLindorm(1000, timestamp, tags, fields);NotaSi el tipo de datos del campo correspondiente en la tabla de la base de datos de Lindorm es Double, pero el dispositivo envía valores de humedad como INT, utilice el siguiente código para convertir el campo a Double y garantizar un reenvío de datos exitoso:
varfields={ "temperature":t, "humidity":{ "type":"DOUBLE", "value":h } }; -
Haga clic en Debugging. En el cuadro de diálogo que aparece, seleccione un producto y un dispositivo, especifique un tema y luego introduzca los datos de carga útil para comprobar si el script se ejecuta correctamente.
La siguiente imagen muestra los parámetros.

El siguiente resultado indica que el script se ejecutó:

Haga clic en Publish.
Regrese a la pestaña Resolver en la página Data Forwarding y haga clic en Start para el analizador DataParser.
-
Simule el envío de datos TSL desde el dispositivo y consulte el resultado del reenvío de datos. Para obtener más información, consulte Device simulation.
Una vez que los datos simulados del dispositivo se reenvían a la base de datos de series temporales de Lindorm, puede llamar a la query operation of a LindormTSDB SDK para recuperar los datos reenviados.