Definiera en DAG
I de föregående övningarna tillämpade du de tre stegen i ETL-processen:
- Extrahera: Extrahera PostgreSQL-tabellen
filmtillpandas. - Transformera: Dela upp kolumnen
rental_ratei DataFrame:enfilm. - Ladda: Ladda DataFrame:en
filmtill ett PostgreSQL-datalager.
Funktionerna extract_film_to_pandas(), transform_rental_rate() och load_dataframe_to_film() är definierade i din arbetsyta. I den här övningen lägger du till en ETL-uppgift i en befintlig DAG. DAG:en som ska utökas och den uppgift som ska inväntas är definierade i din arbetsyta som dag respektive wait_for_table.
Den här övningen är en del av kursen
Introduktion till datatekniker
Övningsinstruktioner
- Komplettera funktionen
etl()med hjälp av de funktioner som beskrivs i övningsbeskrivningen. - Se till att
etl_taskanvänderetlsom callable. - Ange rätt uppströmsberoende. Observera att
etl_taskska invänta attwait_for_tableär klar. - Exempelkoden innehåller en provkörning. Det innebär att ETL-pipelinen körs när du kör koden.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Define the ETL function
def etl():
film_df = ____()
film_df = ____(____)
____(____)
# Define the ETL task using PythonOperator
etl_task = PythonOperator(task_id='etl_film',
python_callable=____,
dag=dag)
# Set the upstream to wait_for_table and sample run etl()
etl_task.____(wait_for_table)
etl()