Utilisez la fonctionnalité de transfert de données du moteur de règles pour acheminer les données vers des instances Tablestore (OTS) basées sur le modèle TimeSeries. Cette rubrique décrit le processus de transfert. Dans cet exemple, un topic de communication TSL (Thing Specification Language) sert de source.
Prérequis
Créez une source de données nommée DataSource et ajoutez-y un topic de communication TSL. Pour plus d'informations, consultez Ajouter une source de données.
-
Créez une instance OTS et une table destinée à recevoir les données. Pour plus d'informations, reportez-vous à la section « Modèle TimeSeries » de la documentation OTS.
ImportantSi vous utilisez une instance IoT Platform Édition Entreprise, la région de déploiement de l'instance OTS doit être identique à celle de l'instance IoT Platform.
Contexte
Le modèle TimeSeries permet de stocker des séries temporelles générées dans divers scénarios, tels que la surveillance des appareils IoT, la collecte de données périphériques ou le suivi machine. Ce modèle prend en charge l'indexation automatique des métadonnées de série temporelle ainsi que des requêtes basées sur plusieurs conditions composites. Pour en savoir plus, consultez la rubrique Modèle TimeSeries.
Dans cet exemple, la fonction writeTableStoreTs() est appelée avec les paramètres suivants pour écrire des données dans la table de séries temporelles :
fields : utilise des expressions JSONPath pour extraire les valeurs des propriétés Temperature et Humidity soumises par l'appareil, puis les écrit dans la table de séries temporelles.
timeInUs : appelle la fonction
timestamp()afin d'obtenir un horodatage en millisecondes, correspondant au moment de la soumission des données par l'appareil. La valeur du paramètre timeInUs devant être exprimée en microsecondes, calculez-la à l'aide de la formule suivante : timestamp() × 1 000, puis écrivez le résultat dans la table.tags : écrit {"region": "cn-shanghai"} dans la table.
metricName : écrit property dans la table.
dataSource : appelle la fonction deviceName() pour récupérer le DeviceName, puis l'écrit dans la table.
Limites
Seules les instances Édition Entreprise déployées dans les régions Chine (Shanghai) permettent d'utiliser la nouvelle version de la fonctionnalité de transfert de données pour acheminer les informations vers des instances OTS du modèle TimeSeries.
Créer une destination de données
Connectez-vous à la console IoT Platform.
-
Dans l'onglet Aperçu, repérez l'instance à gérer, puis cliquez sur son nom pour accéder à la page Instance Details.

Dans le volet de navigation de gauche, sélectionnez .
-
Sur la page Data Forwarding, cliquez sur Go to New Version en haut à droite.
RemarqueSi cette opération a déjà été effectuée, vous êtes automatiquement redirigé vers la nouvelle version de la page Data Forwarding.
Cliquez sur l'onglet Data destination, puis sur Create data destination.
-
Dans la boîte de dialogue Create Data Destination, saisissez un nom pour la destination (par exemple, DataPurpose). Configurez les paramètres requis, puis cliquez sur OK.
Le tableau suivant détaille les paramètres.
RemarqueSeules les données au format JSON peuvent être transférées.
Paramètre
Description
Opération
Sélectionnez Store Data to Tablestore.
Région
Sélectionnez la région où OTS est activé.
Instance
Sélectionnez une instance OTS.
Cliquez sur Create Instance pour accéder à la console OTS et créer une instance OTS basée sur le modèle TimeSeries. Pour plus d'informations, consultez la rubrique Créer une instance du modèle TimeSeries.
Classe de stockage
Sélectionnez TimeSeries Model.
Table de données
Sélectionnez la table de séries temporelles qui recevra les données.
Cliquez sur Create Data Table pour accéder à la console OTS et créer une table de séries temporelles. Pour plus d'informations, consultez la rubrique Créer une table de séries temporelles.
Rôle
Accordez à IoT Platform les permissions nécessaires pour écrire des données dans la table de séries temporelles.
Si aucun rôle RAM n'existe, cliquez sur Create RAM Role afin de créer un rôle et une stratégie d'autorisation dans la console RAM. Consultez la rubrique Créer un rôle RAM.
Configurer et démarrer un analyseur
Créez un analyseur, par exemple DataParser. Pour plus d'informations, reportez-vous à l'étape Étape 1 : Créer un analyseur.
-
Sur la page Resolver Details, associez la source de données.
Dans l'assistant de configuration, sous la section Data Source, cliquez sur Associate Data Source.
Dans la boîte de dialogue, sélectionnez DataSource dans la liste déroulante Data Source, puis cliquez sur OK.
-
Sur la page Resolver Details, associez les destinations de données.
Dans l'assistant de configuration, cliquez sur Data Destination. Ensuite, dans le coin supérieur droit de la liste Data Destination, cliquez sur Associate Data Destination.
Dans la boîte de dialogue qui s'affiche, sélectionnez DataPurpose dans la liste déroulante Data Destination, puis cliquez sur OK.
-
Dans la liste des destinations de données, repérez l'Data Destination ID et notez-le (par exemple, 1000).
Cet Data Destination ID sera requis dans le script d'analyse.
Sur la page parser details, accédez à l'onglet Parser Script.
-
Dans l'éditeur de code, saisissez un script. Pour savoir comment modifier un script, consultez la rubrique Syntaxe des scripts.
Pour plus d'informations sur les paramètres des fonctions, consultez la liste des fonctions.
// 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);Vous pouvez également définir le paramètre metricName sur Temperature ou Humidity, puis écrire les données correspondantes. Exemple de code :
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() }, ]); -
Cliquez sur Debugging. Dans la boîte de dialogue qui s'affiche, sélectionnez un produit et un appareil, spécifiez un topic, puis saisissez les données de charge utile (payload) pour vérifier le bon fonctionnement du script.
L'illustration suivante présente les paramètres.

Si une sortie similaire aux informations ci-dessous est renvoyée, le script s'exécute correctement.

Cliquez sur Publish.
Revenez à l'onglet Resolver de la page Data Forwarding et cliquez sur Start pour l'analyseur DataParser.
-
Une fois les données poussées, connectez-vous à la console OTS. Accédez à la page Data Editor de la table de réception et vérifiez si les données attendues ont bien été reçues. Pour plus d'informations, consultez la rubrique Interroger des données de séries temporelles.
La fonctionnalité de requête SQL vous permet d'effectuer des analyses et des interrogations complexes sur les données OTS de manière efficace. Pour en savoir plus, consultez la rubrique Utiliser SQL pour interroger des données de séries temporelles.
