Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz items_pipeline przy użyciu klasy DataPipeline i pobierz zbiór danych z bazy "Redshift" za pomocą zapytania SELECT * FROM items;.
  • Zaktualizuj items_pipeline tak, 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;")
Edytuj i uruchom kod