Sestavení datového pipeline
Používání factory methods nejen zpřehledňuje kód, ale také usnadňuje jeho použití. V tomto příkladu si procvičíš vytvoření datového pipeline, který extrahuje data z databáze. Třída DataPipeline implementuje návrhový vzor factory method a je uvedena níže. Jako concrete products třídy Database jsou pro tebe také připraveny třídy Postgres a 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
Toto cvičení je součástí kurzu
Intermediate Object-Oriented Programming in Python
Pokyny k cvičení
- Vytvoř
items_pipelinepomocí třídyDataPipelinea extrahuj dataset z databáze"Redshift"s dotazemSELECT * FROM items;. - Aktualizuj
items_pipelinetak, aby místo toho načítal data z databáze"Postgres", přičemž použij stejný dotaz jako předtím. - Vytvoř
etl_pipeline, který extrahuje data z"Redshift".
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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;")