Narzędzia do planowania przepływów pracy

Wprowadzenie do inżynierii danych

Vincent Vankrunkelsven

Data Engineer, DataCamp

Przykładowy potok

 

Przykładowy prosty potok, który pobiera dane z csv za pomocą Sparka

Jak zaplanować wykonanie?

  • Ręcznie
  • Narzędzie cron
  • A co z zależnościami?
Wprowadzenie do inżynierii danych

DAG-i

Graf skierowany acykliczny (DAG)

  • Zbiór węzłów
  • Krawędzie skierowane
  • Brak cykli

Przykładowy DAG

Wprowadzenie do inżynierii danych

Narzędzia do zadania

 

  • cron w Linuksie
  • Prefect i Dagster
  • Apache Airflow
Wprowadzenie do inżynierii danych

Logo Apache Airflow

  • Stworzony w Airbnb
  • DAG-i
  • Python
Wprowadzenie do inżynierii danych

Airflow: przykładowy DAG

 

Przykładowy DAG w Airflow

Wprowadzenie do inżynierii danych

Airflow: przykład w kodzie

@dag(dag_id="example_dag",
     start_date=datetime(2024, 1, 1),
     schedule="0 * * * *")
def example_dag():

@task def start_cluster(): ... @task def ingest_customer_data(): ... @task def ingest_product_data(): ... @task def enrich_customer_data(): ...
Wprowadzenie do inżynierii danych

Airflow: przykład w kodzie

@dag(dag_id="example_dag", ...)
def example_dag():
    ...
    # Set up dependency flow
    cluster = start_cluster()
    customers = ingest_customer_data()
    products = ingest_product_data()
    cluster >> [customers, products]
    [customers, products] >> enrich_customer_data()
# Run the DAG
example_dag()
Wprowadzenie do inżynierii danych

Czas na praktykę!

Wprowadzenie do inżynierii danych

Preparing Video For Download...