Construirea unui pipeline de date
Utilizarea metodelor factory nu doar că face codul mai ușor de citit, ci și mai ușor de folosit. În acest exemplu, vei exersa crearea unui pipeline de date care extrage date dintr-o bază de date. Clasa DataPipeline implementează pattern-ul de design factory method și este prezentată mai jos. De asemenea, sunt definite pentru tine două produse concrete ale clasei Database: Postgres și 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
Acest exercițiu face parte din cursul
Programare orientată pe obiecte intermediară în Python
Instrucțiuni pentru exercițiu
- Creează un
items_pipelinefolosind clasaDataPipeline, extrage un set de date dintr-o bază de date"Redshift"cu interogareaSELECT * FROM items;. - Actualizează
items_pipelinepentru a extrage date dintr-o bază de date"Postgres"în loc, folosind aceeași interogare ca înainte. - Creează un
etl_pipelinecare extrage date din"Redshift".
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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;")