Configuração básica

A implantação padrão do Manufacturing Data Engine (MDE) não aplica nenhuma configuração por padrão, o que é necessário para começar a ingerir dados.

Este guia mostra uma configuração básica do MDE. Por exemplo, para testar se o sistema funciona de ponta a ponta. Com este guia, você pode criar classes, tipos e analisadores de mensagens para todos os três arquétipos.

Se você pretende usar o Manufacturing Connect Edge (MCe) para ingerir dados, implante o pacote de configuração padrão.

É possível usar a API MDE ou a interface da Web para concluir essa configuração.

Classes de mensagem

Esta seção apresenta exemplos das classes de mensagens disponíveis no MDE.

Classe de mensagem para numeric

Confira abaixo um exemplo de classe de mensagem 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 da Web

Nome da classe da mensagem: basic-numeric

  1. Na interface da Web do MDE, clique em Classes de mensagens.
  2. Clique em Adicionar nova classe de mensagem.
  3. Preencha o Nome da classe de mensagem como basic-numeric.
  4. Copie e cole a seguinte expressão na caixa Expressão:

       #root.event['value'] instanceof T(Number) && #root.event['timestamp'] != null && #root.event['tagName'] != null
    
  5. Mude a prioridade para 2000.

  6. Clique em Criar.

    MC numérica básica

Classe de mensagem para discrete

Confira abaixo um exemplo de classe de mensagem 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 da Web

Nome da classe da mensagem: basic-discrete

  1. Na interface da Web do MDE, clique em Classes de mensagens.
  2. Clique em Adicionar nova classe de mensagem.
  3. Preencha o Nome da classe de mensagem como basic-discrete.
  4. Copie e cole a seguinte expressão na caixa Expressão:

       #root.event['value'] != null && !(#root.event['value'] instanceof T(Number)) && #root.event['timestamp'] != null  && #root.event['tagName'] != null
    
  5. Mude a prioridade para 1975.

  6. Clique em Criar.

    MC básica discreta

Classe de mensagem para continuous

Confira abaixo um exemplo de classe de mensagem 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 da Web

Nome da classe da mensagem: basic-continuous

  1. Na interface da Web do MDE, clique em Classes de mensagens.
  2. Clique em Adicionar nova classe de mensagem.
  3. Preencha o Nome da classe de mensagem como basic-continuous.
  4. Copie e cole a seguinte expressão na caixa Expressão:

    #root.event['value'] != null && !(#root.event['value'] instanceof T(Number)) && #root.event['startTimestamp'] != null && #root.event['endTimestamp'] != null && #root.event['tagName'] != null
    
  5. Mude a prioridade para 1950.

  6. Clique em Criar.

    MC básica contínua

Tipos

Esta seção fornece uma visão geral dos tipos disponíveis no MDE.

Tipo de numeric

Confira abaixo um exemplo de tipo basic-numeric:

REST

POST /configuration/v1/types

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

Interface da Web

Nome: basic-numeric

  1. Na interface da Web do MDE, clique em Tipos.
  2. Clique em Adicionar novo tipo.
  3. Preencha o Nome do tipo como basic-numeric.
  4. Selecione NUMERIC_DATA_SERIES no menu suspenso Arquétipo:

    Tipo básico-numérico

  5. Abra a seção Configurações de armazenamento.

  6. Ative a opção Enviar para o BigQuery.

  7. Clique em Criar.

Tipo de discrete

Confira abaixo um exemplo de tipo basic-discrete:

REST

POST /configuration/v1/types

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

Interface da Web

Nome: basic-discrete

  1. Na interface da Web do MDE, clique em Tipos.
  2. Clique em Adicionar novo tipo.
  3. Preencha o Nome do tipo como basic-discrete.
  4. Selecione DISCRETE_DATA_SERIES no menu suspenso Arquétipo:

    Tipo básico discreto

  5. Abra a seção Configurações de armazenamento.

  6. Ative a opção Enviar para o BigQuery.

  7. Clique em Criar.

Tipo de continuous

Confira abaixo um exemplo de tipo basic-continuous:

REST

POST /configuration/v1/types

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

Interface da Web

Nome: basic-continuous

  1. Na interface da Web do MDE, clique em Tipos.
  2. Clique em Adicionar novo tipo.
  3. Preencha o Nome do tipo como basic-continuous.
  4. Selecione CONTINUOUS_DATA_SERIES no menu suspenso Arquétipo:

    Tipo básico-contínuo

  5. Abra a seção Configurações de armazenamento.

  6. Ative a opção Enviar para o BigQuery.

  7. Clique em Criar.

Analisadores

Esta seção oferece uma visão geral dos vários analisadores disponíveis no MDE. Verifique se os tipos estão totalmente provisionados e active antes de criar os analisadores. Esse processo pode levar até três minutos.

Analisador para numeric

Confira abaixo um exemplo de analisador 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 da Web

Nome: basic-numeric-to-basic-numeric

  1. Na interface da Web do MDE, clique em Analistas.
  2. Clique em Adicionar novo analisador.
  3. Preencha o Nome do analisador como basic-numeric-to-basic-numeric.
  4. Selecione basic-numeric no menu suspenso Nome da classe de mensagem.
  5. Copie e cole o seguinte código do Whistle na caixa 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. Selecione basic-numeric | version: 1 no menu suspenso Tipo.

  7. Clique em Criar.

    Analisador numérico básico

Analisador para discrete

Confira abaixo um exemplo de analisador 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 da Web

Nome: basic-discrete-to-basic-discrete

  1. Na interface da Web do MDE, clique em Analistas.
  2. Clique em Adicionar novo analisador.
  3. Preencha o Nome do analisador como basic-numeric-to-basic-discrete.
  4. Selecione basic-discrete no menu suspenso Nome da classe de mensagem.
  5. Copie e cole o seguinte código do Whistle na caixa 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. Selecione basic-discrete | version: 1 no menu suspenso Tipo.

  7. Clique em Criar.

    Analisador básico discreto

Analisador para continuous

Confira abaixo um exemplo de analisador 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 da Web

Nome: basic-continuous-to-basic-continuous

  1. Na interface da Web do MDE, clique em Analistas.
  2. Clique em Adicionar novo analisador.
  3. Preencha o Nome do analisador como basic-numeric-to-basic-continuous.
  4. Selecione basic-continuous no menu suspenso Nome da classe de mensagem.
  5. Copie e cole o seguinte código do Whistle na caixa 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. Selecione basic-continuous | version: 1 no menu suspenso Tipo.

  7. Clique em Criar.

    Analisador básico contínuo