Configuration de base
Le déploiement standard de Manufacturing Data Engine (MDE) n'applique aucun paramètre de configuration par défaut, qui sont nécessaires pour commencer à ingérer des données.
Ce guide vous explique comment effectuer une configuration de base de MDE. Par exemple, pour tester le fonctionnement de bout en bout du système. Ce guide vous permet de créer des classes de messages, des types et des analyseurs pour les trois archétypes.
Si vous prévoyez d'utiliser Manufacturing Connect Edge (MCe) pour ingérer des données, déployez plutôt le package de configuration par défaut.
Vous pouvez utiliser l'API MDE ou l'interface Web pour effectuer cette configuration.
Classes de messages
Cette section fournit des exemples de classes de messages disponibles dans MDE.
Classe de messages pour numeric
Voici un exemple de classe de messages basic-numeric :
REST
POST /configuration/v1/message-classes
{
"name": "basic-numeric",
"priority": 2000,
"expression": "#root.event['value'] instanceof T(Number) && #root.event['timestamp'] != null && #root.event['tagName'] != null"
}
Interface Web
Nom de la classe de messages : basic-numeric
- Dans l'interface Web de MDE, cliquez sur Message Classes (Classes de messages).
- Cliquez sur Add new Message Class (Ajouter une classe de messages).
- Dans le champ Message Class name (Nom de la classe de messages), saisissez
basic-numeric. Copiez l'expression suivante et collez-la dans la zone Expression :
#root.event['value'] instanceof T(Number) && #root.event['timestamp'] != null && #root.event['tagName'] != nullRemplacez la priorité par
2000.Cliquez sur Create (Créer).

Classe de messages pour discrete
Voici un exemple de classe de messages basic-discrete :
REST
POST /configuration/v1/message-classes
{
"name": "basic-discrete",
"priority": 1975,
"expression": "#root.event['value'] != null && !(#root.event['value'] instanceof T(Number)) && #root.event['timestamp'] != null && #root.event['tagName'] != null"
}
Interface Web
Nom de la classe de messages : basic-discrete
- Dans l'interface Web de MDE, cliquez sur Message Classes (Classes de messages).
- Cliquez sur Add new Message Class (Ajouter une classe de messages).
- Dans le champ Message Class name (Nom de la classe de messages), saisissez
basic-discrete. Copiez l'expression suivante et collez-la dans la zone Expression :
#root.event['value'] != null && !(#root.event['value'] instanceof T(Number)) && #root.event['timestamp'] != null && #root.event['tagName'] != nullRemplacez la priorité par
1975.Cliquez sur Create (Créer).

Classe de messages pour continuous
Voici un exemple de classe de messages basic-continuous :
REST
POST /configuration/v1/message-classes
{
"name": "basic-continuous",
"priority": 1950,
"expression": "#root.event['value'] != null && !(#root.event['value'] instanceof T(Number)) && #root.event['startTimestamp'] != null && #root.event['endTimestamp'] != null && #root.event['tagName'] != null"
}
Interface Web
Nom de la classe de messages : basic-continuous
- Dans l'interface Web de MDE, cliquez sur Message Classes (Classes de messages).
- Cliquez sur Add new Message Class (Ajouter une classe de messages).
- Dans le champ Message Class name (Nom de la classe de messages), saisissez
basic-continuous. Copiez l'expression suivante et collez-la dans la zone Expression :
#root.event['value'] != null && !(#root.event['value'] instanceof T(Number)) && #root.event['startTimestamp'] != null && #root.event['endTimestamp'] != null && #root.event['tagName'] != nullRemplacez la priorité par
1950.Cliquez sur Create (Créer).

Types
Cette section présente les types disponibles dans MDE.
Type pour numeric
Voici un exemple de type basic-numeric :
REST
POST /configuration/v1/types
{
"archetype": "NUMERIC_DATA_SERIES",
"name": "basic-numeric"
}
Interface Web
Nom : basic-numeric
- Dans l'interface Web de MDE, cliquez sur Types.
- Cliquez sur Add new Type (Ajouter un type).
- Dans le champ Type name (Nom du type), saisissez
basic-numeric. Sélectionnez
NUMERIC_DATA_SERIESdans la liste déroulante Archetype (Archétype) :
Ouvrez la section Storage Settings (Paramètres de stockage).
Activez l'option Send to BigQuery (Envoyer à BigQuery).
Cliquez sur Create (Créer).
Type pour discrete
Voici un exemple de type basic-discrete :
REST
POST /configuration/v1/types
{
"archetype": "DISCRETE_DATA_SERIES",
"name": "basic-discrete"
}
Interface Web
Nom : basic-discrete
- Dans l'interface Web de MDE, cliquez sur Types.
- Cliquez sur Add new Type (Ajouter un type).
- Dans le champ Type name (Nom du type), saisissez
basic-discrete. Sélectionnez `
DISCRETE_DATA_SERIESdans la liste déroulante Archetype (Archétype) :
Ouvrez la section Storage Settings (Paramètres de stockage).
Activez l'option Send to BigQuery (Envoyer à BigQuery).
Cliquez sur Create (Créer).
Type pour continuous
Voici un exemple de type basic-continuous :
REST
POST /configuration/v1/types
{
"archetype": "CONTINUOUS_DATA_SERIES",
"name": "basic-continuous"
}
Interface Web
Nom : basic-continuous
- Dans l'interface Web de MDE, cliquez sur Types.
- Cliquez sur Add new Type (Ajouter un type).
- Dans le champ Type name (Nom du type), saisissez
basic-continuous. Sélectionnez `
CONTINUOUS_DATA_SERIESdans la liste déroulante Archetype :
Ouvrez la section Storage Settings (Paramètres de stockage).
Activez l'option Send to BigQuery (Envoyer à BigQuery).
Cliquez sur Create (Créer).
Analyseurs
Cette section présente les différents analyseurs disponibles dans MDE. Assurez-vous que les types sont entièrement provisionnés et active avant de créer les analyseurs. Ce processus peut prendre jusqu'à trois minutes.
Analyseur pour numeric
Voici un exemple d'analyseur basic-numeric :
REST
POST /configuration/v1/parsers
{
"name": "basic-numeric-to-basic-numeric",
"messageClassName": "basic-numeric",
"typeReference": {
"name": "basic-numeric",
"version": 1
},
"script": "package mde\n\n[{\ntagName: $root.tagName;\ntimestamps: MapTimestamp($root);\ndata: MapData($root);\nembeddedMetadata: $root[where ($.field != \"value\" and $.field != \"tagName\" and $.field != \"timestamp\" and $.field != \"messageId\")];\n}]\n\ndef MapTimestamp(input) {\n eventTimestamp: input.timestamp;\n}\n\ndef MapData(input) {\n numeric: input.value;\n}"
}
Interface Web
Nom : basic-numeric-to-basic-numeric
- Dans l'interface Web de MDE, cliquez sur Parsers (Analyseurs).
- Cliquez sur Add new Parser (Ajouter un analyseur).
- Dans le champ Parser name (Nom de l'analyseur), saisissez
basic-numeric-to-basic-numeric. - Sélectionnez
basic-numericdans la liste déroulante Message Class Name (Nom de la classe de messages). Copiez et collez le code Whistle suivant dans la zone Parser (Analyseur) :
package mde [{ tagName: $root.tagName; timestamps: MapTimestamp($root); data: MapData($root); embeddedMetadata: $root[where ($.field != "value" and $.field != "tagName" and $.field != "timestamp" and $.field != "messageId")]; }] def MapTimestamp(input) { eventTimestamp: input.timestamp; } def MapData(input) { numeric: input.value; }Sélectionnez
basic-numeric | version: 1dans la liste déroulante Type.Cliquez sur Create (Créer).

Analyseur pour discrete
Voici un exemple d'analyseur basic-discrete :
REST
POST /configuration/v1/parsers
{
"name": "basic-discrete-to-basic-discrete",
"messageClassName": "basic-discrete",
"typeReference": {
"name": "basic-discrete",
"version": 1
},
"script": "package mde\n\n[{\ntagName: $root.tagName;\ntimestamps: MapTimestamp($root);\ndata: MapData($root);\nembeddedMetadata: $root[where ($.field != \"value\" and $.field != \"tagName\" and $.field != \"timestamp\" and $.field != \"messageId\")];\n}]\n\ndef MapTimestamp(input) {\n eventTimestamp: input.timestamp;\n}\n\ndef MapData(input) {\n complex: input.value;\n}\n"
}
Interface Web
Nom : basic-discrete-to-basic-discrete
- Dans l'interface Web de MDE, cliquez sur Parsers (Analyseurs).
- Cliquez sur Add new Parser (Ajouter un analyseur).
- Dans le champ Parser name (Nom de l'analyseur), saisissez
basic-numeric-to-basic-discrete. - Sélectionnez
basic-discretedans la liste déroulante Message Class Name (Nom de la classe de messages). Copiez et collez le code Whistle suivant dans la zone Parser (Analyseur) :
package mde [{ tagName: $root.tagName; timestamps: MapTimestamp($root); data: MapData($root); embeddedMetadata: $root[where ($.field != "value" and $.field != "tagName" and $.field != "timestamp" and $.field != "messageId")]; }] def MapTimestamp(input) { eventTimestamp: input.timestamp; } def MapData(input) { complex: input.value; }Sélectionnez
basic-discrete | version: 1dans la liste déroulante Type.Cliquez sur Create (Créer).

Analyseur pour continuous
Voici un exemple d'analyseur basic-continuous :
REST
POST /configuration/v1/parsers
{
"name": "basic-continuous-to-basic-continuous",
"messageClassName": "basic-continuous",
"typeReference": {
"name": "basic-continuous",
"version": 1
},
"script": "package mde\n\n[{\ntagName: $root.tagName;\ntimestamps: MapTimestamp($root);\ndata: MapData($root);\nduration: $root.duration;\nembeddedMetadata: $root[where ($.field != \"value\" and $.field != \"tagName\" and $.field != \"startTimestamp\" and $.field != \"endTimestamp\" and $.field != \"messageId\")];\n}]\n\ndef MapTimestamp(input) {\n continuousTimestamp: {\n eventTimestampStart: input.startTimestamp;\n eventTimestampEnd: input.endTimestamp;\n };\n}\n\ndef MapData(input) {\n complex: input.value;\n}\n"
}
Interface Web
Nom : basic-continuous-to-basic-continuous
- Dans l'interface Web de MDE, cliquez sur Parsers (Analyseurs).
- Cliquez sur Add new Parser (Ajouter un analyseur).
- Dans le champ Parser name (Nom de l'analyseur), saisissez
basic-numeric-to-basic-continuous. - Sélectionnez
basic-continuousdans la liste déroulante Message Class Name (Nom de la classe de messages). Copiez et collez le code Whistle suivant dans la zone Parser (Analyseur) :
package mde [{ tagName: $root.tagName; timestamps: MapTimestamp($root); data: MapData($root); duration: $root.duration; embeddedMetadata: $root[where ($.field != "value" and $.field != "tagName" and $.field != "startTimestamp" and $.field != "endTimestamp" and $.field != "messageId")]; }] def MapTimestamp(input) { continuousTimestamp: { eventTimestampStart: input.startTimestamp; eventTimestampEnd: input.endTimestamp; }; } def MapData(input) { complex: input.value; }Sélectionnez
basic-continuous | version: 1dans la liste déroulante Type.Cliquez sur Create (Créer).
