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
Istruzioni dell'esercizio
- Crea un
items_pipelineusando la classeDataPipeline, ed estrai un insieme di dati da un database"Redshift"con la querySELECT * FROM items;. - Aggiorna
items_pipelineper prelevare invece da un database"Postgres", usando la stessa query di prima. - Crea un
etl_pipelineche 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;")