Rilasciato Apache Airflow 2.0: nuovo scheduler, API Full Rest e altro
Microsoft aggiunge l’hindi al suo servizio di analisi del testo per rafforzare il supporto dell’analisi del sentiment
W3Schools
Apache Airflow, uno dei sistemi di gestione del flusso di lavoro open source di tendenza tra gli sviluppatori, è una piattaforma per creare, pianificare e monitorare in modo programmatico i flussi di lavoro. Recentemente, il team di Airflow ha svelato la nuova versione di questa piattaforma, che è Apache Airflow 2.0. L’anno scorso, la Apache Software Foundation (ASF) ha annunciato Apache Airflow come il progetto di primo livello (TLP).
Con modifiche sostanziali rispetto alla versione precedente, la versione 2.0 di Airflow è arrivata con un aggiornamento significativo. Per iniziare a utilizzare Airflow 2.0, è necessario seguire alcuni prerequisiti, ad esempio se gli utenti utilizzano Python 2.7 , devono migrare a Python 3.6+. Inoltre, quando l’utente utilizza l’ultima versione di Airflow 1.10, può utilizzare il comando airflow upgrade-check per vedere se può migrare alla nuova versione di Airflow.
Prima di immergerti negli aggiornamenti significativi, lascia che ti guidiamo prima attraverso le basi di AirFlow.
Dietro le basi
Creato da Airbnb, Apache Airflow è una piattaforma open source per creare, programmare e monitorare in modo programmatico i flussi di lavoro. La piattaforma è un sistema di pianificazione e automazione del flusso di lavoro flessibile e scalabile per la creazione e la gestione di pipeline di elaborazione di Big Data di centinaia di petabyte.
È un motore di flusso di lavoro che esegue diverse attività, come la gestione della pianificazione e l’esecuzione di lavori e pipeline di dati, la gestione dell’allocazione di risorse scarse, fornisce meccanismi per monitorare lo stato dei lavori e il ripristino da errori e altro ancora.
Ci sono quattro componenti chiave di Airflow, che sono:
Server Web: è la GUI, che rimane sotto il cofano di un’app Flask in cui è possibile tenere traccia dello stato dei lavori e leggere i registri da un archivio di file remoto
Scheduler: Scheduler è un processo Python multithread ed è responsabile della pianificazione dei lavori. Utilizza l’oggetto DAGb per decidere quali attività devono essere eseguite, quando e dove.
Executor: Executor è il meccanismo che esegue le attività.
Database di metadati: il database di metadati alimenta il modo in cui interagiscono gli altri componenti, memorizza gli stati del flusso d’aria e tutti i processi leggono e scrivono da qui.
Alcune delle funzionalità intuitive di AIrflow sono menzionate di seguito:
Uno dei principali vantaggi dell’utilizzo di un sistema di flusso di lavoro come Airflow è che tutto è codice, il che rende i flussi di lavoro mantenibili, controllabili, verificabili e collaborativi.
Airflow è di natura versatile e può essere utilizzato in vari domini, tra cui analisi della crescita, data warehousing, analisi del coinvolgimento, rilevamento delle anomalie, targeting della posta elettronica, tra gli altri.
Airflow ha il supporto integrato utilizzando gli scheduler.
Attraverso la pianificazione intelligente, la gestione del database e delle dipendenze, la gestione degli errori e la registrazione, Airflow automatizza la gestione delle risorse, dai singoli server ai cluster su larga scala.
Scritto in Python, il progetto è altamente estensibile e in grado di eseguire attività scritte in altri linguaggi, consentendo l’integrazione con architetture e progetti di uso comune come AWS S3, Docker, Apache Hadoop HDFS, Apache Hive, Kubernetes, MySQL, Postgres, tra gli altri.
Arrivando alla versione principale della versione 2.0, gli sviluppatori hanno annunciato che Airflow 2.0 è in fase di test alpha e dovrebbe essere generalmente disponibile a dicembre del 2020. Secondo i suoi sviluppatori , Airflow 2.0 include centinaia di funzionalità e correzioni di bug, entrambe di grandi dimensioni e piccoli, dove la maggior parte degli aggiornamenti significativi è stata influenzata dal feedback del sondaggio comunitario 2019 di Airflow.
Alcuni degli aggiornamenti significativi sono menzionati di seguito:
Un nuovo scheduler: bassa latenza + alta disponibilità
Secondo gli sviluppatori, Scheduler Performance è stato il miglioramento più richiesto nel sondaggio comunitario. Con la versione 2.0, il team ha introdotto un nuovo Scheduler refactoring. La modifica più impattante di Airflow 2.0 in quest’area è il supporto per l’esecuzione simultanea di più pianificatori in un modello attivo / attivo. La nuova funzionalità include scalabilità orizzontale, latenza ridotta delle attività, tempi di ripristino pari a zero e manutenzione più semplice.
Airflow 2.0 introduce una nuova API REST completa che pone una solida base per una nuova interfaccia utente e CLI di Airflow in futuro. Questa nuova API include funzionalità di autorizzazione, facilita l’accesso da parte di terze parti e altro ancora.
Sensori intelligenti
I sensori sono un tipo speciale di operatore del flusso d’aria il cui scopo è attendere un particolare trigger. La versione 2.0 ha introdotto Smart Sensor ed è in grado di controllare lo stato di un batch di attività del sensore, memorizzare le informazioni sullo stato del sensore nel database dei metadati di Airflow e altro.
API TaskFlow
Airflow 2.0 ha introdotto l’API TaskFlow e Task Decorator per mitigare il problema della pianificazione e dell’esecuzione delle attività idempotenti. L’API TaskFlow implementata nella 2.0 semplifica notevolmente la scrittura dei DAG astraendo il livello di gestione delle dipendenze e delle attività dagli utenti. Le funzionalità dell’API TaskFlow includono il supporto per i backend XCom personalizzati, crea automaticamente attività PythonOperator dalle funzioni Python e gestisce il passaggio di variabili e altro ancora.