Condividi tramite


Configurare una fase di origine MQ in una pipeline di anteprima del processore di dati IoT di Azure

Importante

Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente disponibile in ANTEPRIMA. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.

Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

La fase di origine è la prima e obbligatoria in una pipeline di anteprima del processore di dati IoT di Azure. La fase di origine recupera i dati nella pipeline di elaborazione dati e lo prepara per un'ulteriore elaborazione. La fase di origine MQ consente di sottoscrivere i messaggi da un argomento MQTT. Nella fase di origine si definiscono i dettagli di connessione all'origine MQ e si stabilisce una configurazione di partizionamento in base ai requisiti di elaborazione dati specifici.

Prerequisiti

  • Istanza distribuita di Azure IoT Data Processor Preview che include il componente facoltativo responsabile del trattamento dei dati.
  • Un'istanza del broker di anteprima MQ di Azure IoT con tutti i dati non elaborati necessari disponibili è operativa e raggiungibile.

Configurare l'origine MQ

Per configurare l'origine MQ:

  • Specificare i dettagli di connessione all'origine MQ. Questa configurazione include il tipo di origine MQ, l'URL del broker MQTT, il livello QoS (Quality of Service), il tipo di sessione e gli argomenti da sottoscrivere.
  • Specificare il metodo di autenticazione. Attualmente limitato all'autenticazione basata su nome utente/password o al token dell'account del servizio.

La tabella seguente descrive i parametri di configurazione dell'origine MQ:

Campo Descrizione Richiesto Valore predefinito Esempio
Nome Nome visibile al cliente per la fase di origine. Richiesto ND asset-1broker
Descrizione Descrizione visibile al cliente della fase di origine. Facoltativo ND brokerforasset-1
Gestore URL del broker MQTT a cui connettersi. Richiesto ND tls://aio-mq-dmqtt-frontend:8883
Autenticazione Metodo di autenticazione da connettere al broker. Uno di: None, Username/Passworde Service Account Token (SAT). Richiesto Service Account Token (SAT) Service Account Token (SAT)
Nome utente/Nome utente password > Nome utente per l'autenticazione nome utente/password ND myuser
Nome utente/Segreto password > Riferimento alla password archiviata in Azure Key Vault. ND AKV_USERNAME_PASSWORD
QoS Livello QoS per il recapito dei messaggi. Obbligatorio 1 0
Sessione pulita Impostare su FALSE per una sessione persistente. Necessario FALSE FALSE
Argomento Argomento a cui sottoscrivere l'acquisizione dei dati. Richiesto ND contoso/site1/asset1, contoso/site1/asset2

Per altre informazioni sui segreti, vedere Gestire i segreti per la distribuzione di Azure IoT Operations Preview.

Il responsabile del trattamento dei dati non riordina i dati non ordinati provenienti dal broker MQTT. Se i dati non sono in ordine dal broker, rimangono così nella pipeline.

Selezionare il formato dati

In una pipeline del processore di dati il campo formato nella fase di origine specifica come deserializzare i dati in ingresso. Per impostazione predefinita, la pipeline del processore di dati usa il raw formato che significa che non converte i dati in ingresso. Per usare molte funzionalità del responsabile del trattamento dei dati, ad Filter esempio o Enrich fasi in una pipeline, è necessario deserializzare i dati nella fase di input. È possibile scegliere di deserializzare i dati in ingresso da JSON, jsonStream, MessagePack, CBOR, CSV, o Protobuf in un messaggio leggibile del responsabile del trattamento dei dati per usare la funzionalità completa del responsabile del trattamento dei dati.

Le tabelle seguenti descrivono le diverse opzioni di configurazione della deserializzazione:

Campo Descrizione Richiesto Valore predefinito Valore
Formato dati Tipo del formato dati. Raw Raw JSON jsonStream MessagePack CBOR CSV Protobuf

Il Data Format campo è obbligatorio e il relativo valore determina gli altri campi obbligatori.

Per deserializzare i messaggi CSV, è necessario specificare anche i campi seguenti:

Campo Descrizione Richiesto valore Esempio
Intestazione Indica se i dati CSV includono una riga di intestazione. Yes No No
Nome Nome della colonna in CSV - temp, asset
Percorso Percorso jq nel messaggio in cui sono state aggiunte le informazioni sulla colonna. No - Il percorso jq predefinito è il nome della colonna
Tipo di dati Tipo di dati dei dati nella colonna e come viene rappresentato all'interno della pipeline del responsabile del trattamento dei dati. No String, Float, Integer, BooleanBytes Impostazione predefinita: String

Per deserializzare i messaggi Protobuf, è necessario specificare anche i campi seguenti:

Campo Descrizione Richiesto valore Esempio
Descrittore Descrittore con codifica base64 per la definizione protobuf. - Zhf...
Message Nome del tipo di messaggio utilizzato per formattare i dati. - pipeline
Pacchetto Nome del pacchetto nel descrittore in cui è definito il tipo. - schedulerv1

Nota

Il responsabile del trattamento dei dati supporta un solo tipo di messaggio in ogni file con estensione proto .

Configurare il partizionamento

Il partizionamento in una pipeline divide i dati in ingresso in partizioni separate. Il partizionamento consente il parallelismo dei dati nella pipeline, che può migliorare la velocità effettiva e ridurre la latenza. Le strategie di partizionamento influiscono sul modo in cui i dati vengono elaborati nelle altre fasi della pipeline. Ad esempio, l'ultima fase del valore noto e la fase di aggregazione operano su ogni partizione logica.

Per partizionare i dati, specificare una strategia di partizionamento e il numero di partizioni da usare:

Campo Descrizione Richiesto Valore predefinito Esempio
Tipo di partizione Tipo di partizionamento da usare: Partizione ID o Partizione Key Richiesto Key Key
Espressione di partizione Espressione jq da usare nel messaggio in ingresso per calcolare la partizione ID o la partizione Key Richiesto .topic .topic
Numero di partizioni Numero di partizioni in una pipeline del responsabile del trattamento dei dati. Richiesto 2 2

Il responsabile del trattamento dei dati aggiunge metadati aggiuntivi al messaggio in arrivo. Per informazioni su come specificare correttamente l'espressione di partizionamento eseguita nel messaggio in arrivo, vedere Panoramica della struttura dei messaggi del responsabile del trattamento dei dati. Per impostazione predefinita, l'espressione di partizionamento è impostata su 0 con il tipo di partizione per ID inviare tutti i dati in ingresso a una singola partizione.

Per consigli e per altre informazioni, vedere Che cos'è il partizionamento?

Configurazione di esempio

Di seguito è illustrata una configurazione di esempio per la fase:

Parametro valore
Nome input data
Gestore tls://aio-mq-dmqtt-frontend:8883
Autenticazione Service Account Token (SAT)
Argomento azure-iot-operations/data/opc-ua-connector-0/#
Formato dati JSON

Questa configurazione genera quindi messaggi simili all'esempio seguente:

{
    "Timestamp": "2023-08-10T00:54:58.6572007Z", 
    "MessageType": "ua-deltaframe",
    "payload": {
      "temperature": {
        "SourceTimestamp": "2023-08-10T00:54:58.2543129Z",
        "Value": 7109
      },
      "Tag 10": {
        "SourceTimestamp": "2023-08-10T00:54:58.2543482Z",
        "Value": 7109
      }
    },
    "DataSetWriterName": "oven",
    "SequenceNumber": 4660
}