Eine Datenpipeline aufbauen
Factory-Methoden machen Code nicht nur leichter lesbar, sondern auch einfacher nutzbar. In diesem Beispiel übst du, eine Datenpipeline zu erstellen, die Daten aus einer Datenbank extrahiert. Die Klasse DataPipeline implementiert das Factory-Method-Entwurfsmuster und ist hier gezeigt. Außerdem sind zwei konkrete Produkte der Klasse Database für dich definiert: Postgres und 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
Diese Übung ist Teil des Kurses
Fortgeschrittene objektorientierte Programmierung in Python
Anleitung zur Übung
- Erstelle eine
items_pipelinemit der KlasseDataPipelineund extrahiere einen Datensatz aus einer"Redshift"-Datenbank mit der AbfrageSELECT * FROM items;. - Aktualisiere die
items_pipeline, sodass sie stattdessen aus einer"Postgres"-Datenbank lädt, und verwende dieselbe Abfrage wie zuvor. - Erstelle eine
etl_pipeline, die Daten aus"Redshift"extrahiert.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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;")