Kom igångKom igång gratis

Bygga en datapipeline

Att använda fabriksmetoder gör inte bara koden lättare att läsa – den blir också enklare att använda. I det här exemplet får du öva på att skapa en datapipeline som hämtar data från en databas. Klassen DataPipeline implementerar ett fabriksmetodsdesignmönster och visas nedan. Dessutom är två konkreta produkter av klassen Database definierade åt dig: Postgres och 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

Den här övningen är en del av kursen

Objektorienterad programmering i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Skapa en items_pipeline med klassen DataPipeline och hämta en datamängd från en "Redshift"-databas med frågan SELECT * FROM items;.
  • Uppdatera items_pipeline så att den hämtar från en "Postgres"-databas i stället, med samma fråga som tidigare.
  • Skapa en etl_pipeline som hämtar data från "Redshift".

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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;")
Redigera och kör kod