ПочатиПочніть безкоштовно

Побудова конвеєра даних

Використання фабричних методів не лише робить код читабельнішим, а й спрощує його використання. У цьому прикладі ви потренуєтеся створювати конвеєр даних, що витягує дані з бази. Клас DataPipeline реалізує шаблон проєктування factory method і наведений нижче. Також для вас визначено два конкретні продукти класу Database: Postgres і 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

Ця вправа є частиною курсу

Середній рівень об'єктно-орієнтованого програмування в Python

Переглянути курс

Інструкції до вправи

  • Створіть items_pipeline за допомогою класу DataPipeline, витягніть набір даних з бази "Redshift" за запитом SELECT * FROM items;.
  • Оновіть items_pipeline, щоб тепер дані забиралися з бази "Postgres", використовуючи той самий запит.
  • Створіть etl_pipeline, який витягує дані з "Redshift".

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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;")
Редагувати та запускати код