Condividi tramite


Che cos'è il partizionamento nell'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.

In una pipeline di anteprima di Azure IoT Data Processor il partizionamento divide i dati in ingresso in partizioni separate per abilitare il parallelismo dei dati. Il parallelismo dei dati migliora la velocità effettiva e riduce la latenza. Il partizionamento influisce anche sul modo in cui le fasi della pipeline, ad esempio l'ultimo valore noto e le fasi di aggregazione , elaborano i dati.

Concetti relativi al partizionamento

Il responsabile del trattamento dei dati usa due concetti di partizionamento:

  • Partizioni fisiche che corrispondono ai flussi di dati effettivi all'interno del sistema.
  • Partizioni logiche che corrispondono ai flussi di dati concettuali elaborati insieme.

Una pipeline del processore di dati espone le partizioni come partizioni logiche all'utente. Il sistema sottostante esegue il mapping di queste partizioni logiche alle partizioni fisiche.

Per specificare una strategia di partizionamento per una pipeline, fornire due informazioni:

  • Numero di partizioni fisiche per la pipeline.
  • Strategia di partizionamento che include il tipo di partizionamento e un'espressione per calcolare la partizione logica per ogni messaggio in ingresso.

È importante scegliere i conteggi delle partizioni e le espressioni di partizione corretti per lo scenario. Il responsabile del trattamento dei dati mantiene l'ordine dei dati all'interno della stessa partizione logica e i messaggi nella stessa partizione logica possono essere combinati in fasi della pipeline, ad esempio l'ultimo valore noto e le fasi di aggregazione . Il numero di partizioni fisiche non può essere modificato e determina i limiti di scalabilità della pipeline.

A diagram that shows the effect of partitioning a pipeline.

Configurazione del partizionamento

Il partizionamento all'interno di una pipeline viene configurato nella fase di input della pipeline. La fase di input calcola la chiave di partizionamento dal messaggio in arrivo. Tuttavia, il partizionamento influisce su altre fasi di una pipeline.

La configurazione del partizionamento include:

Campo Descrizione Richiesto Valore predefinito Esempio
Numero di partizioni Numero di partizioni fisiche in una pipeline del processore di dati. N/D 3
Type Tipo di partizionamento logico da usare: partizione id o partizione key. key key
Espressione Espressione jq da eseguire sul messaggio in ingresso per calcolare la partizione id o la partizione key. N/D .topic

Si fornisce un'espressione jq che si applica all'intero messaggio che arriva nella pipeline del responsabile del trattamento dei dati per generare la chiave di partizione o l'ID partizione. L'output di questa query non deve superare i 128 caratteri.

Tipi di partizionamento

È possibile configurare due tipi di partizionamento:

Chiave di partizione

Specificare un'espressione jq che calcola in modo dinamico una stringa di chiave di partizione logica per ogni messaggio:

  • Gestione partizioni assegna automaticamente le chiavi di partizione alle partizioni fisiche dal gestore partizioni.
  • Tutti i dati correlati, ad esempio gli ultimi valori noti e le aggregazioni, hanno come ambito una partizione logica.
  • L'ordine dei dati in ogni partizione logica è garantito.

Questo tipo di partizionamento è più utile quando sono presenti decine o più raggruppamenti logici di dati.

ID partizione

Specificare un'espressione jq che calcola in modo dinamico un ID di partizione fisica numerica per ogni messaggio, ad esempio .topic.assetNumber % 8.

  • I messaggi vengono inseriti nella partizione fisica specificata.
  • Tutti i dati correlati hanno come ambito una partizione fisica.

Questo tipo di partizionamento è più adatto quando si dispone di un numero ridotto di raggruppamenti logici di dati o si vuole un controllo preciso sul ridimensionamento e sulla distribuzione del lavoro. Il numero di ID di partizione prodotti deve essere un numero intero e non deve superare il valore di 'partitionCount' – 1.

Considerazioni

Quando si sceglie una strategia di partizionamento per la pipeline:

  • L'ordinamento dei dati viene mantenuto all'interno di una partizione logica durante la ricezione dagli argomenti del broker MQTT.
  • Scegliere una strategia di partizionamento in base alla natura dei dati in ingresso e ai risultati desiderati. Ad esempio, l'ultima fase di valore nota e la fase di aggregazione eseguono operazioni su ogni partizione logica.
  • Selezionare una chiave di partizione che distribuisce uniformemente i dati in tutte le partizioni.
  • L'aumento del numero di partizioni può migliorare le prestazioni, ma utilizza anche più risorse. Bilanciare questo compromesso in base ai requisiti e ai vincoli.