Budowanie potoku danych
Stosowanie metod wytwórczych nie tylko sprawia, że kod jest czytelniejszy, ale też łatwiejszy w użyciu. W tym ćwiczeniu przećwiczysz tworzenie potoku danych, który pobiera dane z bazy danych. Klasa DataPipeline implementuje wzorzec projektowy metody wytwórczej i jest przedstawiona poniżej. Zdefiniowane są też dla ciebie dwa konkretne produkty klasy 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
To ćwiczenie jest częścią kursu
Programowanie obiektowe w Pythonie – poziom średnio zaawansowany
Instrukcje do ćwiczenia
- Utwórz
items_pipelineprzy użyciu klasyDataPipelinei pobierz zbiór danych z bazy"Redshift"za pomocą zapytaniaSELECT * FROM items;. - Zaktualizuj
items_pipelinetak, aby pobierał dane z bazy"Postgres", używając tego samego zapytania co poprzednio. - Utwórz
etl_pipeline, który pobiera dane z bazy"Redshift".
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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;")