Salta al contenuto

Prevedere in tempo reale la congestione dei passeggeri

I viaggiatori ferroviari nei Paesi Bassi possono utilizzare l'app dell'agenzia olandese per pianificare il loro viaggio. Durante la pianificazione, l'app offre una stima del livello di affollamento del treno, che è suddiviso in basso, medio o alto. I passeggeri possono utilizzare questi dati...

Anticipare i Livelli di Folla per i Viaggi in Treni: Immediata Visione d'Insieme degli Orari di...
Anticipare i Livelli di Folla per i Viaggi in Treni: Immediata Visione d'Insieme degli Orari di Folla

Prevedere in tempo reale la congestione dei passeggeri

Per migliorare l'esperienza di viaggio dei propri passeggeri, la compagnia ferroviaria olandese si è associata a Bynder per creare un avanzato sistema di streaming. Questa soluzione innovativa aggiorna in tempo reale le lunghezze, i tipi e l'occupazione prevista dei treni nell'app dell'azienda, fornendo ai viaggiatori informazioni preziose per pianificare i loro viaggi in modo più efficace.

Al centro di questo sistema c'è Azure Durable Functions, che gestisce l'ingestione dei dati e garantisce la comunicazione del successo o del fallimento dell'ingestione, nonché la gestione dei fallimenti con i tentativi di ripetizione. Questa configurazione robusta consente di gestire la natura dinamica degli orari dei treni, poiché circa il 20% dei treni in partenza cambia capacità il giorno del viaggio, spesso poco prima della partenza.

I dati per il calcolo della folla sui treni vengono ingestiti in un database Cosmos veloce dal lago dei dati in formato parquet. Le Azure Functions vengono utilizzate per filtrare, arricchire, trasformare i messaggi e ingestire i dati dal livello batch al livello di streaming.

L'approccio attuale utilizza Azure Functions, Azure Stream Analytics, Cosmos Database e Azure Event Hubs per aggiornare la folla in tempo reale. Viene implementata un'operazione di join broadcast nel sistema duplicando alcuni dei dati su diverse partizioni di Event Hub, garantendo che le query imbarazzantemente parallele possano essere eseguite in modo efficiente.

Vengono eseguiti test di integrazione automatici end-to-end sul flusso di streaming, inclusa l'ingestione del database Cosmos, per convalidare i messaggi alle uscite Event Hubs. Le query di Azure Stream Analytics sono scritte in un dialetto SQL e devono essere in grado di eseguire in modo imbarazzantemente parallelo per stare al passo con il flusso di input. Azure Stream Analytics viene anche utilizzata per mantenere lo stato dei messaggi di aggiornamento e riprodurli da un determinato timestamp quando è disponibile una nuova previsione batch.

Il primo tentativo di implementare un aggiornamento in tempo reale delle previsioni ha utilizzato Spark Structured Streaming, ma è stato abbandonato a causa dei costi elevati del cloud e delle difficoltà nel comprendere e mantenere il modello. La nuova soluzione utilizzando Azure Event Hubs, Azure Functions, Azure Stream Analytics e Azure Cosmos DB ha ridotto significativamente i costi dell'infrastruttura del cloud.

Tuttavia, l'utilizzo di componenti scollegati come Azure Functions e Azure Cosmos DB può portare a condizioni di corsa se la progettazione non viene considerata attentamente. Ci sono molti pezzi di infrastruttura e piccoli pezzi di codice da gestire, poiché la logica non è concentrata in un unico posto e richiede test più estesi.

Nonostante questi ostacoli, il sistema offre numerosi vantaggi. L'app mostra la folla come categorie di bassa, media o alta occupazione, consentendo ai viaggiatori di utilizzare queste informazioni per decidere se desiderano prendere un treno che potrebbe essere un po' meno affollato. Questa soluzione innovativa è destinata a rivoluzionare il modo in cui i viaggiatori ferroviari olandesi pianificano i loro viaggi.

Leggi anche:

Più recente