Ce mois-ci, eKuiper est à l'ère précoce du développement des nouvelles fonctionnalités pour la version 1.6.0. Les principaux ajouts portent sur la prise en charge du codage/décodage Protobuf. En réponse aux nombreuses demandes des utilisateurs souhaitant créer des règles de traitement des données via un glisser-déposer, nous menons également une phase de validation de prototype. Les correctifs de bugs de la version 1.5.1 sont toujours en cours de développement et devraient être publiés début juin.
En tant que logiciel de traitement de données en flux sur le bord, eKuiper participe également à l'évaluation du standard « Exigences en matière de capacités techniques de traitement des données en flux edge » initiée par l'Académie des Sciences et Technologies de Chine. Une fois validé, eKuiper deviendra le premier produit certifié par ce standard.
Gestion des schémas
Actuellement, la propriété format par défaut des sources et puits concernant le codage/décodage est définie sur JSON. Les utilisateurs peuvent désormais choisir l'option Protobuf pour bénéficier de la fonctionnalité de codage/décodage associée. Comparé au format JSON sans schéma, Protobuf permet d’obtenir des données plus compactes, réduisant ainsi la bande passante utilisée lors de la transmission entre le cloud et le bord. Cette fonctionnalité est actuellement achevée mais non encore publiée. Les utilisateurs peuvent la tester via la branche v1.6.0 du code source disponible sur le bord.
Contrairement au format JSON sans schéma, Protobuf nécessite la définition d’un fichier proto comme schéma pour le codage/décodage. Avant d’utiliser le format Protobuf, les utilisateurs doivent enregistrer le schéma via l’API REST, en fournissent le contenu soit via un chemin de fichier, soit directement en texte.
Exemple d'enregistrement via un fichier :
POST /schemas
{
"id":"fileName",
"file":"http://myhost/files/abc.proto"
}
Ou via du contenu texte :
POST /schemas
{
"id":"schemaName",
"content":"message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}"
}
Quel que soit le mode choisi, le contenu est stocké dans etc/schemas/protobuf.
Utilisation de Protobuf dans les Puits
format: spécifie le format de codage utiliséschemaId: identifie le schéma à utiliser
{
"mqtt":{
"server":"tcp://127.0.0.1:1883",
"topic": "result",
"format":"protobuf",
"schemaId":"schemaName.Person"
}
}
Utilisation de Protobuf dans les Sources
FORMAT: supporte ProtobufSCHEMA_ID: spécifie le schéma à utiliser
CREATE STREAM demo() WITH (TYPE="NEURON", FORMAT="protobuf", SCHEMA_ID="schemaName.Person")
Capacité d'édition visuelle par glisser-déposer
Auparavant, eKuiper ne permettait de créer des règles de traitement de données en flux qu’en utilisant du code SQL, ce qui posait un certain niveau de complexité et rendait difficile la participation directe des utilisateurs métiers. Afin de réduire davantage cette barrière d'entrée, eKuiper va prendre en charge la création de règles de traitement de données via une interface visuelle, permettant de faire glisser des unités de traitement et de les configurer simplement. Ces unités seront ensuite connectées automatiquement pour former une règle complète. Cela facilitera l'utilisation directe d'eKuiper par un plus grand nombre d'utilisateurs. Ce projet se trouve actuellement à la phase de conception du prototype.
Prochaines étapes
Le mois prochain, nouss finaliserons l’interface visuelle de glisser-déposer et la fusionnerons dans la branche principale. Par ailleurs, eKuiper améliorera son mécanisme de mise en cache après une erreur de puits, en implémentant un stockage hors ligne basé sur la mémoire et le disque, permettant de retransmettre les données dans l'ordre une fois la panne résolue. Cela renfocrera la capacité de récupération en cas de déconnexion réseau, avec une conservation prolongée des données.
Droits d'auteur : Cet article est une œuvre originale d'EMQ. Merci de citer la source lors de sa reproduction.
Lien vers l'article original : https://www.emqx.com/zh/blog/ekuiper-newsletter-202205