IniziaInizia gratis

Costruire una data pipeline

Usare i factory method non solo rende il codice più leggibile, ma anche più semplice da usare. In questo esempio, farai pratica nel creare una data pipeline che estrae dati da un database. La classe DataPipeline implementa il design pattern del factory method, ed è mostrata qui sotto. Sono inoltre definiti per te due prodotti concreti della classe Database: Postgres e 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

Questo esercizio fa parte del corso

Programmazione a oggetti intermedia in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un items_pipeline usando la classe DataPipeline, ed estrai un insieme di dati da un database "Redshift" con la query SELECT * FROM items;.
  • Aggiorna items_pipeline per prelevare invece da un database "Postgres", usando la stessa query di prima.
  • Crea un etl_pipeline che estragga dati da "Redshift".

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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;")
Modifica ed esegui il codice