Condividi tramite


Creare flussi di dati in Azure IoT Operations

Importante

Questa pagina include istruzioni per la gestione dei componenti Azure IoT Operations usando i manifesti di distribuzione kubernetes, disponibile in ANTEPRIMA. Questa funzionalità viene fornita con diverse limitazioni e non deve essere usata per i carichi di lavoro di produzione.

Vedere le condizioni per l'utilizzo di Supplemental Terms of Use for Microsoft Azure Previews per le condizioni legali applicabili alle funzionalità di Azure disponibili in versione beta, in anteprima o non ancora rilasciate nella disponibilità generale.

Un data flow è il percorso che i dati prendono dall'origine alla destinazione con trasformazioni facoltative. È possibile configurare il data flow creando un Data flow risorsa personalizzata o usando l'interfaccia utente Web dell'esperienza operativa. Un data flow è costituito da tre parti: source, transformation e destination.

flowchart LR
  subgraph Source
  A[DataflowEndpoint]
  end
  subgraph BuiltInTransformation
  direction LR
  Datasets - -> Filter
  Filter - -> Map
  end
  subgraph Destination
  B[DataflowEndpoint]
  end
  Source - -> BuiltInTransformation
  BuiltInTransformation - -> Destination

Diagramma di un flusso di dati che mostra il passaggio dall'origine alla trasformazione e poi alla destinazione.

Per definire l'origine e la destinazione, è necessario configurare gli endpoint data flow. La trasformazione è facoltativa e può includere operazioni come l'arricchimento dei dati, il filtro dei dati e il mapping dei dati a un altro campo.

Importante

Ogni flusso di dati deve avere l'endpoint predefinito del broker MQTT locale di Operazioni di Azure IoT come o origine o destinazione.

È possibile usare l'esperienza operativa in Azure IoT Operations per creare un data flow. L'esperienza operativa fornisce un'interfaccia visiva per configurare il data flow. È anche possibile usare Bicep per creare un data flow usando un file Bicep oppure usare Kubernetes per creare un data flow usando un file YAML.

Continuare a leggere per informazioni su come configurare l'origine, la trasformazione e la destinazione.

Prerequisiti

È possibile distribuire i flussi di dati non appena si dispone di un'istanza di Azure IoT Operations usando il profilo e l'endpoint data flow predefiniti. Tuttavia, è possibile configurare i profili di flusso di dati e gli endpoint per personalizzare il flusso di dati.

profilo del flusso di dati

Se non sono necessarie varie impostazioni di scalabilità per i flussi di dati, utilizzare il profilo di flusso di dati predefinito fornito da Azure IoT Operations. Evitare di associare troppi flussi di dati a un singolo profilo di data flow. Se si dispone di un numero elevato di flussi di dati, distribuirli tra più profili data flow per ridurre il rischio di superare il limite di dimensioni di configurazione del profilo data flow pari a 70.

Per informazioni su come configurare un nuovo profilo di data flow, vedere Configurare i profili data flow.

Endpoint del flusso di dati

Sono necessari endpoint di flusso di dati per configurare l'origine e la destinazione del flusso di dati. Per iniziare rapidamente, usare l'endpoint predefinito del flusso di dati per il broker MQTT locale. È anche possibile creare altri tipi di endpoint data flow come Kafka, Hub eventi, OpenTelemetry o Azure Data Lake Storage. Per altre informazioni, vedere Configurare gli endpoint data flow.

Inizia

Quando si hanno i prerequisiti, è possibile iniziare a creare un data flow.

  1. Per creare un flusso di dati in esperienza delle operazioni, selezionare flusso di dati>Crea flusso di dati.

  2. Selezionare il nome segnaposto new-data-flow per impostare le proprietà data flow. Immettere il nome del data flow e scegliere il profilo data flow da usare. Il profilo di data flow predefinito è selezionato per impostazione predefinita. Per altre informazioni sui profili di flusso di dati, vedere Configurare il profilo di flusso di dati.

    Screenshot dell'interfaccia dell'esperienza operativa in cui un utente assegna un nome al flusso di dati e seleziona un profilo per esso.

    Importante

    È possibile scegliere il profilo data flow solo durante la creazione di un data flow. Non è possibile modificare il profilo di data flow dopo la creazione del data flow. Per modificare il profilo di data flow di un data flow esistente, eliminare il data flow originale e crearne uno nuovo con il nuovo profilo di data flow.

  3. Configurare l'endpoint di origine, trasformazione e destinazione per il data flow selezionando gli elementi nel diagramma data flow.

    Screenshot dell'interfaccia dell'esperienza operativa che visualizza un diagramma data flow con un endpoint di origine, una fase di trasformazione e un endpoint di destinazione.

Vedere le sezioni seguenti per informazioni su come configurare i tipi di operazione del data flow.

Origine

Configurare l'endpoint di origine e le origini dati (argomenti) per il flusso di dati. È possibile usare il broker MQTT predefinito, un asset o un endpoint MQTT o Kafka personalizzato come origine.

Per informazioni complete sulla configurazione, inclusi caratteri jolly dell'argomento MQTT, sottoscrizioni condivise, argomenti Kafka e schema di origine, vedere Configurare un'origine del flusso di dati.

Se non si usa l'endpoint predefinito come origine, è necessario usarlo come destinazione. Per altre informazioni sull'uso dell'endpoint broker MQTT locale, vedere Flussi di dati che devono usare l'endpoint broker MQTT locale.

Richiedere la persistenza del disco

La persistenza del disco mantiene lo stato di elaborazione del flusso di dati tra i riavvii. Per informazioni dettagliate sulla configurazione, vedere Configurare la persistenza del disco.

Trasformazione

L'operazione di trasformazione consente di trasformare i dati dall'origine prima di inviarli alla destinazione. Le trasformazioni sono facoltative. Se non è necessario apportare modifiche ai dati, non includere l'operazione di trasformazione nella configurazione data flow. Più trasformazioni si concatenano in fasi indipendentemente dall'ordine in cui vengono specificate nella configurazione. L'ordine delle fasi è sempre:

  1. Arricchimento: aggiungere altri dati ai dati di origine in base a un set di dati e a una condizione per la corrispondenza.
  2. Filtro: filtra i dati in base a una condizione.
  3. Mappa, Calcola, Rinomina, o aggiungi una Nuova proprietà: sposta dati da un campo ad un altro con una conversione opzionale.

Questa sezione presenta un'introduzione alle trasformazioni data flow. Per informazioni più dettagliate, vedere Eseguire il mapping dei dati usando flussi di dati e Arricchire i dati usando i flussi di dati.

Nell'esperienza operativa selezionare Data flow>Aggiungi trasformazione (facoltativo).

Screenshot dell'interfaccia dell'esperienza delle operazioni che mostra l'aggiunta di una fase di trasformazione a un flusso di dati.

Arricchire: Aggiungere dati di riferimento

Per arricchire i dati, aggiungere prima un set di dati di riferimento nell'archivio Azure IoT Operations state. Il set di dati aggiunge dati aggiuntivi ai dati di origine in base a una condizione. La condizione viene specificata come campo nei dati di origine che corrispondono a un campo nel set di dati.

È possibile caricare dati di esempio nell'archivio stati usando l'interfaccia della riga di comando state store. I nomi delle chiavi nell'archivio stati corrispondono a un set di dati nella configurazione data flow.

Attualmente, la fase Enrich non è supportata nell'esperienza operativa.

Se il set di dati ha un record con il campo asset, simile al seguente:

{
  "asset": "thermostat1",
  "location": "room1",
  "manufacturer": "Contoso"
}

I dati dell'origine con il campo deviceId corrispondente a thermostat1 hanno i campi location e manufacturer disponibili nelle fasi di filtro e mappa.

Per altre informazioni sulla sintassi delle condizioni, vedere Arricchire i dati tramite flussi di dati

Filtro: filtrare i dati in base a una condizione

Usare la fase di filtro per eliminare i messaggi che non soddisfano una condizione. È possibile definire più regole di filtro con campi di input ed espressioni booleane.

Per informazioni complete sulla configurazione ed esempi, vedere Filtrare i dati in un flusso di dati.

Mappa: spostare i dati da un campo a un altro

Per eseguire il mapping dei dati a un altro campo con conversione facoltativa, usare l'operazione map . Specificare la conversione come formula che utilizza i campi nei dati di origine.

Nell'esperienza operativa è attualmente possibile mappare i dati utilizzando le trasformazioni Compute, Rinomina e Nuova proprietà.

Calcolo

Usare la trasformazione Calcolo per applicare una formula ai dati di origine. Questa operazione applica una formula ai dati di origine e archivia il risultato in un campo.

  1. In Trasforma (facoltativo), selezionare Calcola>Aggiungi.

    Screenshot che usa l'esperienza operativa per aggiungere una trasformazione di calcolo.

  2. Immettere le impostazioni necessarie.

    Impostazione Descrizione
    Selezionare la formula Scegliere una formula esistente dall'elenco a discesa o selezionare Personalizzato per immetterne una manualmente.
    Risultato Specificare il nome visualizzato dell'output per il risultato.
    Formula Immettere la formula da applicare ai dati di origine.
    Descrizione Specificare una descrizione per la trasformazione.
    Ultimo valore noto Facoltativamente, è possibile usare l'ultimo valore noto nel caso in cui il valore corrente non fosse disponibile.

    Immettere o modificare una formula nel campo Formula . La formula può utilizzare i campi nei dati di origine. Immettere @ o selezionare CTRL+SPAZIO per scegliere i punti dati da un elenco a discesa. Per le formule predefinite, selezionare il segnaposto <dataflow> per visualizzare l'elenco dei punti dati disponibili.

    Immettere le proprietà dei metadati MQTT usando il formato @$metadata.user_properties.<property> o @$metadata.topic. Immettere le intestazioni $metadata usando il formato @$metadata.<header>. La sintassi $metadata è necessaria solo per le proprietà MQTT che fanno parte dell'intestazione del messaggio. Per altre informazioni, vedere riferimenti ai campi.

    La formula può utilizzare i campi nei dati di origine. Ad esempio, è possibile usare il campo temperature nei dati di origine per convertire la temperatura in Celsius e archiviarla nel campo di output temperatureCelsius.

  3. Selezionare Applica.

Rinominare

Utilizzare la trasformazione Rinomina per rinominare un punto dati. Questa operazione rinomina un punto dati nei dati di origine in un nuovo nome. Usare il nuovo nome nelle fasi successive del flusso di dati.

  1. In Trasforma (facoltativo), selezionare Rinomina>Aggiungi.

    Screenshot che usa l'esperienza operativa per rinominare un punto dati.

  2. Immettere le impostazioni necessarie.

    Impostazione Descrizione
    Punto Dati Selezionare un punto dati dall'elenco a discesa o immettere un'intestazione $metadata.
    Nuovo nome del punto dati Immettere il nuovo nome per il punto dati.
    Descrizione Specificare una descrizione per la trasformazione.

    Immettere le proprietà dei metadati MQTT usando il formato @$metadata.user_properties.<property> o @$metadata.topic. Immettere le intestazioni $metadata usando il formato @$metadata.<header>. La sintassi $metadata è necessaria solo per le proprietà MQTT che fanno parte dell'intestazione del messaggio. Per altre informazioni, vedere riferimenti ai campi.

  3. Selezionare Applica.

Nuova proprietà

Utilizzare la trasformazione Nuova proprietà per aggiungere una nuova proprietà ai dati di origine. Questa operazione aggiunge una nuova proprietà ai dati di origine. Utilizzare la nuova proprietà nelle fasi successive del data flow.

  1. In Trasforma (facoltativo), selezionare Nuova proprietà>Aggiungi.

    Screenshot che usa l'esperienza operativa per aggiungere una nuova proprietà.

  2. Immettere le impostazioni necessarie.

    Impostazione Descrizione
    Chiave proprietà Immettere la chiave per la nuova proprietà.
    Valore proprietà Immettere il valore per la nuova proprietà.
    Descrizione Specificare una descrizione per la nuova proprietà.
  3. Selezionare Applica.

Per altre informazioni, vedere Eseguire il mapping dei dati usando i flussi di dati.

Rimuovi

Per impostazione predefinita, lo schema di output include tutti i punti dati. Rimuovere qualsiasi punto dati dalla destinazione usando la trasformazione Rimuovi .

  1. In Trasforma (facoltativo) selezionare Rimuovi.

  2. Selezionare il punto dati da rimuovere dallo schema di output.

    Screenshot che usa l'esperienza operativa per rimuovere il punto dati di peso dallo schema di output.

  3. Selezionare Applica.

Per altre informazioni, vedere Eseguire il mapping dei dati usando i flussi di dati.

Serializzare i dati in base a uno schema

Se si desidera serializzare i dati prima di inviarli alla destinazione, specificare uno schema e un formato di serializzazione. Per informazioni dettagliate, vedere Serializzare l'output con uno schema.

Destinazione

Configurare l'endpoint di destinazione e la destinazione dati (argomento, contenitore o tabella) per il flusso di dati. È possibile usare qualsiasi tipo di endpoint supportato come destinazione, tra cui MQTT, Kafka, Azure Data Lake Storage, Microsoft Fabric, Esplora dati di Azure e archiviazione locale.

Per informazioni complete sulla configurazione, tra cui la tabella di destinazione dei dati, gli argomenti relativi alla destinazione dinamica e la serializzazione dell'output, vedere Configurare una destinazione del flusso di dati.

Per inviare dati a una destinazione diversa dal broker MQTT locale, creare un endpoint data flow. Per informazioni su come, vedere Configurare gli endpoint data flow.

Importante

gli endpoint Storage richiedono un schema per la serializzazione. Per usare data flow con Microsoft Fabric OneLake, Azure Data Lake Storage, Azure Data Explorer o Storage locale, è necessario specificare un riferimento allo schema.

Esempio

L'esempio seguente è una configurazione data flow che usa l'endpoint MQTT per l'origine e la destinazione. L'origine filtra i dati dal topic MQTT azure-iot-operations/data/thermostat. La trasformazione converte la temperatura in Fahrenheit e filtra i dati in cui la temperatura moltiplicata per l'umidità è minore di 100000. La destinazione invia i dati all'argomento MQTT factory.

Screenshot che mostra un esempio di flusso dati dell'esperienza operativa con un endpoint di origine, trasformazioni e un endpoint di destinazione.

Per altri esempi di configurazioni di data flow, vedere Azure API REST - Data flow e quickstart Bicep.

Verificare che un data flow funzioni

Per verificare che il data flow funzioni, seguire Tutorial: ponte MQTT bidirezionale per Azure Event Grid.

Esportare configurazione del flusso di dati

Per esportare la configurazione del flusso di dati, utilizzare l’esperienza operativa o esportare la risorsa personalizzata del flusso di dati.

Selezionare il data flow da esportare, quindi selezionare Export dalla barra degli strumenti.

Screenshot dell'interfaccia dell'ambiente operativo che mostra l'opzione di esportazione per un flusso di dati configurato.

Configurazione data flow corretta

Per assicurarsi che il data flow funzioni come previsto, verificare le condizioni seguenti:

  • L'endpoint MQTT data flow predefinito deve essere utilizzato come origine o destinazione.
  • Il profilo data flow esiste ed è referenziato nella configurazione del flusso di dati.
  • L'origine è un endpoint MQTT, un endpoint Kafka o un asset. Non è possibile usare endpoint di tipo storage come origine.
  • Quando si usa Griglia di eventi come origine, si imposta il numero di istanze del profilo del flusso di dati su 1 perché il broker MQTT di Griglia di eventi non supporta le sottoscrizioni condivise.
  • Quando si usano Hub eventi come origine, ogni hub eventi nello spazio dei nomi è un argomento Kafka separato ed è necessario specificare ognuno come origine dati.
  • La trasformazione, se usata, viene configurata con la sintassi corretta, incluso l'escape corretto di caratteri speciali.
  • Quando si usano endpoint di tipo storage come destinazione, viene specificato un schema.
  • Quando si usano argomenti di destinazione dinamici per gli endpoint MQTT, assicurarsi che le variabili dell'argomento facciano riferimento a segmenti validi.

Passaggi successivi