НачатьНачать бесплатно

Создание пайплайна данных

Фабричные методы не только делают код более читаемым, но и упрощают его использование. В этом упражнении вы попрактикуетесь в создании пайплайна данных, который извлекает данные из базы данных. Класс DataPipeline реализует паттерн проектирования «фабричный метод» и показан ниже. Также для вас определены два конкретных продукта класса 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;")
Редактировать и запускать код