Configurazione di base

La deployment standard di Manufacturing Data Engine (MDE) non applica impostazioni di configurazione predefinite, necessarie per iniziare l'importazione dei dati.

Questa guida ti illustra una configurazione di base di MDE. Ad esempio, per verificare che il sistema funzioni end-to-end. Con questa guida puoi creare classi di messaggi, tipi e parser per tutti e tre gli archetipi.

Se intendi utilizzare Manufacturing Connect edge (MCe) per importare i dati, esegui il deployment del pacchetto di configurazione predefinito invece.

Per completare questa configurazione, puoi utilizzare l'API MDE o l'interfaccia web.

Classi di messaggi

Questa sezione fornisce esempi delle classi di messaggi disponibili in MDE.

Classe di messaggi per numeric

Di seguito è riportato un esempio di classe di messaggi 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"
}

Interfaccia web

Nome della classe di messaggi: basic-numeric

  1. Nell'interfaccia web di MDE, fai clic su Classi di messaggi.
  2. Fai clic su Aggiungi nuova classe di messaggi.
  3. Inserisci basic-numeric nel campo Nome della classe di messaggi.
  4. Copia la seguente espressione e incollala nella casella Espressione:

       #root.event['value'] instanceof T(Number) && #root.event['timestamp'] != null && #root.event['tagName'] != null
    
  5. Modifica la priorità in 2000.

  6. Fai clic su Crea.

    MC numerico di base

Classe di messaggi per discrete

Di seguito è riportato un esempio di classe di messaggi 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"
   }

Interfaccia web

Nome della classe di messaggi: basic-discrete

  1. Nell'interfaccia web di MDE, fai clic su Classi di messaggi.
  2. Fai clic su Aggiungi nuova classe di messaggi.
  3. Inserisci basic-discrete nel campo Nome della classe di messaggi.
  4. Copia la seguente espressione e incollala nella casella Espressione:

       #root.event['value'] != null && !(#root.event['value'] instanceof T(Number)) && #root.event['timestamp'] != null  && #root.event['tagName'] != null
    
  5. Modifica la priorità in 1975.

  6. Fai clic su Crea.

    MC di base discreto

Classe di messaggi per continuous

Di seguito è riportato un esempio di classe di messaggi 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"
   }

Interfaccia web

Nome della classe di messaggi: basic-continuous

  1. Nell'interfaccia web di MDE, fai clic su Classi di messaggi.
  2. Fai clic su Aggiungi nuova classe di messaggi.
  3. Inserisci basic-continuous nel campo Nome della classe di messaggi.
  4. Copia la seguente espressione e incollala nella casella Espressione:

    #root.event['value'] != null && !(#root.event['value'] instanceof T(Number)) && #root.event['startTimestamp'] != null && #root.event['endTimestamp'] != null && #root.event['tagName'] != null
    
  5. Modifica la priorità in 1950.

  6. Fai clic su Crea.

    MC di base continuo

Tipi

Questa sezione fornisce una panoramica dei tipi disponibili in MDE.

Tipo per numeric

Di seguito è riportato un esempio di tipo basic-numeric:

REST

POST /configuration/v1/types

{
   "archetype": "NUMERIC_DATA_SERIES",
   "name": "basic-numeric"
}

Interfaccia web

Nome: basic-numeric

  1. Nell'interfaccia web di MDE, fai clic su Tipi.
  2. Fai clic su Aggiungi nuovo tipo.
  3. Inserisci basic-numeric nel campo Nome del tipo.
  4. Seleziona NUMERIC_DATA_SERIES nel menu a discesa per Archetipo:

    Tipo numerico di base

  5. Apri la sezione Impostazioni di archiviazione.

  6. Attiva/disattiva l'opzione Invia a BigQuery.

  7. Fai clic su Crea.

Tipo per discrete

Di seguito è riportato un esempio di tipo basic-discrete:

REST

POST /configuration/v1/types

{
   "archetype": "DISCRETE_DATA_SERIES",
   "name": "basic-discrete"
}

Interfaccia web

Nome: basic-discrete

  1. Nell'interfaccia web di MDE, fai clic su Tipi.
  2. Fai clic su Aggiungi nuovo tipo.
  3. Inserisci basic-discrete nel campo Nome del tipo.
  4. Seleziona `DISCRETE_DATA_SERIES nel menu a discesa per Archetipo:

    Tipo Basic-discrete

  5. Apri la sezione Impostazioni di archiviazione.

  6. Attiva/disattiva l'opzione Invia a BigQuery.

  7. Fai clic su Crea.

Tipo per continuous

Di seguito è riportato un esempio di tipo basic-continuous:

REST

POST /configuration/v1/types

{
   "archetype": "CONTINUOUS_DATA_SERIES",
   "name": "basic-continuous"
}

Interfaccia web

Nome: basic-continuous

  1. Nell'interfaccia web di MDE, fai clic su Tipi.
  2. Fai clic su Aggiungi nuovo tipo.
  3. Inserisci basic-continuous nel campo Nome del tipo.
  4. Seleziona `CONTINUOUS_DATA_SERIES nel menu a discesa per Archetipo:

    Tipo di base-continua

  5. Apri la sezione Impostazioni di archiviazione.

  6. Attiva/disattiva l'opzione Invia a BigQuery.

  7. Fai clic su Crea.

Parser

Questa sezione fornisce una panoramica dei vari parser disponibili in MDE. Prima di creare i parser, assicurati che il provisioning dei tipi sia completo e che siano active. Questa operazione può richiedere fino a tre minuti.

Parser per numeric

Di seguito è riportato un esempio di parser 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}"
}

Interfaccia web

Nome: basic-numeric-to-basic-numeric

  1. Nell'interfaccia web di MDE, fai clic su Parser.
  2. Fai clic su Aggiungi nuovo parser.
  3. Inserisci basic-numeric-to-basic-numeric nel campo Nome del parser.
  4. Seleziona basic-numeric nel menu a discesa per Nome della classe di messaggi.
  5. Copia e incolla il seguente codice Whistle nella casella Parser:

     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;
     }
    
  6. Seleziona basic-numeric | version: 1 nel menu a discesa per Tipo.

  7. Fai clic su Crea.

    Parser numerico di base

Parser per discrete

Di seguito è riportato un esempio di parser 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"
}

Interfaccia web

Nome: basic-discrete-to-basic-discrete

  1. Nell'interfaccia web di MDE, fai clic su Parser.
  2. Fai clic su Aggiungi nuovo parser.
  3. Inserisci basic-numeric-to-basic-discrete nel campo Nome del parser.
  4. Seleziona basic-discrete nel menu a discesa per Nome della classe di messaggi.
  5. Copia e incolla il seguente codice Whistle nella casella Parser:

     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;
     }
    
  6. Seleziona basic-discrete | version: 1 nel menu a discesa per Tipo.

  7. Fai clic su Crea.

    Parser di base discreto

Parser per continuous

Di seguito è riportato un esempio di parser 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"
}

Interfaccia web

Nome: basic-continuous-to-basic-continuous

  1. Nell'interfaccia web di MDE, fai clic su Parser.
  2. Fai clic su Aggiungi nuovo parser.
  3. Inserisci basic-numeric-to-basic-continuous nel campo Nome del parser.
  4. Seleziona basic-continuous nel menu a discesa per Nome della classe di messaggi.
  5. Copia e incolla il seguente codice Whistle nella casella Parser:

     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;
     }
    
  6. Seleziona basic-continuous | version: 1 nel menu a discesa per Tipo.

  7. Fai clic su Crea.

    Analizzatore sintattico di base continuo