IoT Platform propose diverses fonctions utilisables dans un script d'analyse pour traiter les données. Ces fonctions permettent de convertir des types de données, de transférer des données vers des destinations et de traiter des charges utiles de types spécifiques. Cette rubrique décrit les fonctions fournies par IoT Platform.
Vous pouvez utiliser les fonctions prises en charge par Data Forwarding v1.0 dans les scripts d'analyse de Data Forwarding v2.0. Pour plus d'informations, consultez la section Fonctions.
Conversion de types de données
Fonction | Description |
toBoolean(Object) | Convertit le paramètre Object en valeur booléenne. Le paramètre prend en charge les types de données suivants :
|
toNumber(Object) | Convertit la valeur du paramètre Object en nombre. Le paramètre prend en charge les types de données suivants :
|
toString(Object) | Convertit la valeur du paramètre Object en chaîne. Si le paramètre est défini sur une valeur autre que NULL, la fonction renvoie cette valeur sous forme de chaîne. Si le paramètre est défini sur NULL, la fonction renvoie une chaîne vide. Si le paramètre est de type binaire, la fonction renvoie une valeur décodée en UTF-8. |
toMap(Object) | Convertit la valeur du paramètre Object en map. Le paramètre prend en charge les types de données suivants :
|
toArray(Object) | Convertit la valeur du paramètre Object en tableau. Le paramètre prend en charge les types de données suivants :
|
toBinary(Object) | Convertit la valeur du paramètre Object en valeur binaire. Le paramètre prend en charge les types de données suivants :
|
Conversion de formats temporels
Fonction | Description |
format_date(timestamp, patten, timeZone) | Convertit un horodatage en millisecondes en valeur temporelle selon un format spécifié. Une chaîne est renvoyée.
|
to_timestamp(dateString, patten, timeZone) | Convertit une valeur temporelle selon un format spécifié en horodatage en millisecondes. Une valeur numérique est renvoyée.
|
Transfert des données vers les destinations
Dans les fonctions suivantes, le paramètre destinationId spécifie l'identifiant de la destination de données et le paramètre payload spécifie le contenu du message.
Fonction | Description | Exemple |
writeAmqp(destinationId, payload, tag) | Transmet les données à un groupe de consommateurs AMQP (Advanced Message Queuing Protocol). tag : ce paramètre est facultatif. Si vous spécifiez un tag, celui-ci est ajouté à tous les messages transmis au groupe de consommateurs AMQP. La longueur du tag doit être comprise entre 1 et 128 caractères. Vous pouvez spécifier une constante ou une variable dans le tag.
| |
writeDatahub(destinationId, data) | Transmet les données à DataHub. data : les données que vous souhaitez écrire dans DataHub. Seuls les types de données map et binary sont pris en charge. | |
writeFc(destinationId, data) | Transmet les données à Function Compute. data : les données que vous souhaitez transmettre à Function Compute. | |
writeKafka(destinationId, payload, key) | Transmet les données à ApsaraMQ for Kafka. key : la clé que vous souhaitez spécifier dans les messages à transmettre à ApsaraMQ for Kafka. Ce paramètre est facultatif. Vous pouvez router les messages en fonction des tags sur votre client consommateur. | |
writeMns(destinationId, payload) | Transmet les données à Simple Message Queue (formerly MNS) (SMQ). | |
writeMq(destinationId, payload, tag) | Transmet les données à ApsaraMQ for RocketMQ. tag : ce paramètre est facultatif. Si vous spécifiez un tag, celui-ci est ajouté à tous les messages transmis à ApsaraMQ for RocketMQ. Vous pouvez filtrer les messages en fonction des tags sur votre client consommateur. La longueur du tag doit être comprise entre 1 et 128 caractères. Vous pouvez spécifier une constante ou une variable dans le tag.
| |
writeTableStore(destinationId, data, flowType) | Transmet les données aux instances Tablestore (OTS) du modèle Wide Column.
| Transmettre des données à un modèle de table large Tablestore |
writeTableStoreTs(destinationId, timeInUs, metricName, tags, fields, dataSource) | Transmet les données aux instances OTS du modèle TimeSeries.
Vous pouvez utiliser cette fonction pour écrire des données dans une ligne d'OTS. Pour écrire des données dans plusieurs lignes à la fois, utilisez la fonction suivante : Pour plus d'informations sur les paramètres, consultez Modèle TimeSeries. | Transmettre des données aux instances OTS du modèle Wide Column |
writeRds(destinationId, data) | Écrit des données dans une table ApsaraDB RDS. data : les données que vous souhaitez écrire dans ApsaraDB RDS. Seul le type de données map est pris en charge. La clé spécifie le nom de la colonne de la table et la valeur spécifie la valeur de la colonne. | |
updateRds(destinationId, data, condition, limit) | Met à jour les données écrites dans une table ApsaraDB RDS.
Exemples :
| |
writeTsdb(destinationId, timestamp, metricName, value, tag) | Transfère des données vers Time Series Database.
| |
writeIotTopic(destinationId, topic, payload) | Transfère des données vers un autre topic. Topic : le topic de destination vers lequel vous souhaitez transférer les données. Les topics suivants sont pris en charge :
La valeur de la variable Pour plus d'informations, consultez Étape 1 : Créer une destination de données. Important
If a device does not subscribe to the destination topic, it cannot receive forwarded messages. For example, if Device A connects to IoT Platform through MQTT.fx, it does not automatically subscribe to device topics. If Device B forwards data to the For automatic topic subscriptions, see Auto-subscribed topics. | |
writeLindorm(destinationId, timestamp, tags, fields) | Transfère des données vers Lindorm.
|
Fonctions prises en charge par chaque type de données de base
-
Map
Function
Description
[Object]
Récupère la valeur associée à une clé spécifiée.
size()
Renvoie le nombre de paires clé-valeur contenues dans une map.
containsKey(String)
Vérifie si une map contient une clé spécifique.
keySet()
Récupère les clés d'une map sous forme de tableau.
remove(Object)
Supprime la paire clé-valeur correspondant à une clé donnée.
put(Object, Object)
Ajoute des paires clé-valeur à une map.
putAll(map)
Fusionne une autre map avec une map existante.
-
Array
Function
Description
[int]
Récupère la valeur située à un index donné. L'index du premier élément d'un tableau est 0.
contains(Object)
Vérifie la présence d'un élément spécifique dans un tableau.
remove(Object)
Supprime un élément désigné d'un tableau.
removeAt(int)
Supprime l'élément situé à un index précis dans un tableau.
add(Object)
Ajoute un élément à la fin d'un tableau.
add(index, Object)
Insère un élément à un index spécifié.
addAll(array)
Ajoute les éléments d'un autre tableau à un tableau existant.
size()
Renvoie le nombre d'éléments présents dans un tableau.
-
String
Function
Description
substring(start, end)
Extrait une sous-chaîne depuis la position
startjusqu'à la positionend-1.Si vous ne configurez pas le paramètre, l'extraction se poursuit jusqu'à la fin de la chaîne.length()
Renvoie la longueur d'une chaîne de caractères.
split(String)
Découpe une chaîne en utilisant un séparateur défini.
startsWith(String)
Vérifie si une chaîne commence par une sous-chaîne donnée.
endsWith(String)
Vérifie si une chaîne se termine par une sous-chaîne spécifique.
indexOf(String, index)
Recherche la première occurrence d'une sous-chaîne à partir d'un index précisé.
La valeur par défaut du paramètre index est 0.
Autres fonctions
Fonction | Description |
endWith(input, suffix) | Vérifie si la chaîne input se termine par le suffix spécifié. Renvoie une valeur booléenne. |
productKey() | Renvoie le ProductKey du produit actuel. |
getDeviceTag(key) | Renvoie la valeur du tag de l'appareil correspondant à la clé de tag spécifiée. Si aucun tag contenant la key indiquée n'est associé à l'appareil, aucune valeur n'est renvoyée. |
getOrNull(data, "items", ......) | Renvoie la valeur d'un champ spécifié dans le paramètre data au format JSON. Vous pouvez configurer un ou plusieurs champs dans la fonction. Les champs multiples doivent être configurés selon leur niveau hiérarchique. La fonction renvoie la valeur du dernier champ. Si ce dernier champ n'existe pas ou s'il est vide, la fonction renvoie null. Exemple de data : Exemples :
|
payload(textEncoding) | Encode la charge utile du message envoyée par un appareil. Le paramètre textEncoding spécifie le schéma d'encodage.
|
parseNumber(numberString, radix) | Convertit la chaîne spécifiée par le paramètre numberString en nombre, selon le système numérique indiqué par le paramètre radix. Le paramètre radix est facultatif. Valeurs valides :
Exemples : |
Références
Pour transférer des données vers une destination, vous pouvez rédiger un script en utilisant la syntaxe prise en charge afin d'appeler des fonctions spécifiques. Pour plus d'informations, consultez la rubrique Syntaxe des scripts.