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
Instruções do exercício
- Crie um
items_pipelineusando a classeDataPipelinee extraia um conjunto de dados de um banco"Redshift"com a consultaSELECT * FROM items;. - Atualize o
items_pipelinepara buscar de um banco"Postgres"em vez disso, usando a mesma consulta de antes. - Crie um
etl_pipelineque 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;")