Ho bisogno di progettare una pipeline di dati, in particolare, ho qualche dubbio su come attivarlo. Questo è lo scenario:
-
Il sistema esterno memorizza i dati nello spazio di archiviazione su cloud di google ogni giorno
-
Non appena viene caricato un particolare file in GCS, la pipeline deve essere avviata (Airflow dag)
Il punto è come verificare se quel particolare file è stato caricato, ho in mente due opzioni:
- Utilizza le funzioni cloud, la funzione verrà attivata quando il file è stato scritto automaticamente (si tratta di un servizio cloud di Google), tale funzione comunicherà a Airflow l'utilizzo di rest-api per consentire l'avvio del DAG. Tieni presente che quando il DAG è terminato, non verrà automaticamente rieseguito (quindi nessuna pianificazione temporale).
- Esegui manualmente il flusso d'aria DAG con l'operatore del sensore di memoria di Google Cloud come primo nodo che attende la scrittura del file di trigger. In questo caso, il flusso d'aria verrà eseguito automaticamente ogni giorno.
Il problema con la seconda opzione è che l'operatore del sensore non è altro che un ciclo while con un sonno, quindi sembra essere inefficiente (preferisco non usare un approccio di polling). Di cosa stai pensando?