ComeçarComece de graça

Construindo um pipeline de dados

Usar factory methods não só deixa o código mais fácil de ler, como também mais fácil de usar. Neste exemplo, você vai praticar a criação de um pipeline de dados que extrai dados de um banco de dados. A classe DataPipeline implementa o padrão de projeto factory method e está mostrada aqui. Também foram definidos para você dois produtos concretos da classe Database: Postgres e 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

Este exercício faz parte do curso

Programação Orientada a Objetos Intermediária em Python

Ver curso

Instruções do exercício

  • Crie um items_pipeline usando a classe DataPipeline e extraia um conjunto de dados de um banco "Redshift" com a consulta SELECT * FROM items;.
  • Atualize o items_pipeline para buscar de um banco "Postgres" em vez disso, usando a mesma consulta de antes.
  • Crie um etl_pipeline que extraia dados de "Redshift".

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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;")
Editar e executar o código