ComenzarEmpieza gratis

Construyendo una canalización de datos

Usar métodos de fábrica no solo hace que el código sea más fácil de leer, también facilita su uso. En este ejemplo, vas a practicar la creación de una canalización de datos que extrae información de una base de datos. La clase DataPipeline implementa el patrón de diseño de método de fábrica y se muestra aquí. También tienes definidas dos implementaciones concretas de la clase Database: Postgres y 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 ejercicio forma parte del curso

Programación orientada a objetos intermedia en Python

Ver curso

Instrucciones del ejercicio

  • Crea un items_pipeline usando la clase DataPipeline; extrae un conjunto de datos de una base de datos "Redshift" con la consulta SELECT * FROM items;.
  • Actualiza items_pipeline para extraer de una base de datos "Postgres" en su lugar, usando la misma consulta que antes.
  • Crea un etl_pipeline que extraiga datos de "Redshift".

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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 y ejecutar código