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.
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. | Sì | N/D | 3 |
Type | Tipo di partizionamento logico da usare: partizione id o partizione key . |
Sì | key |
key |
Espressione | Espressione jq da eseguire sul messaggio in ingresso per calcolare la partizione id o la partizione key . |
Sì | 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.
Contenuto correlato
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per