Aan de slagGa gratis aan de slag

Een datapipeline bouwen

Factorymethoden maken code niet alleen makkelijker leesbaar, maar ook makkelijker te gebruiken. In dit voorbeeld ga je oefenen met het maken van een datapipeline die gegevens uit een database haalt. De klasse DataPipeline implementeert het factory method-ontwerppatroon en staat hier hieronder. Ook gedefinieerd zijn twee concrete producten van de klasse Database: Postgres en Redshift.

class DataPipeline:
  def _get_database(self, provider):
    if provider == "Postgres":
      return Postgres()
    elif provider == "Redshift":
      return Redshift()

  def extract_data(self, provider, query):
    database = self._get_database(provider)
    dataset = database.query_data(query)
    print(f"Extracted dataset from {provider} database")
    return dataset

Deze oefening maakt deel uit van de cursus

Gevorderde objectgeoriënteerde programmering in Python

Cursus bekijken

Oefeninstructies

  • Maak een items_pipeline met de klasse DataPipeline, en haal een gegevensset op uit een "Redshift"-database met de query SELECT * FROM items;.
  • Werk items_pipeline bij zodat die in plaats daarvan uit een "Postgres"-database haalt, met dezelfde query als eerder.
  • Maak een etl_pipeline die gegevens uit "Redshift" extraheert.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Create an ETL DataPipeline, query using Redshift
items_pipeline = ____()
____.extract_data("____", "SELECT * FROM items;")

# Now, switch the pipeline to Postgres
____

# Finally, create an etl_pipeline with Redshift
____ = ____()
____.____("____", "SELECT * FROM sales;")
Code bewerken en uitvoeren