开始使用免费开始使用

构建数据管道

使用工厂方法不仅让代码更易读,也更易用。这个练习中,您将练习创建一个从数据库提取数据的数据管道。DataPipeline 类实现了工厂方法设计模式,代码如下。同时还为您定义了 Database 类的两个具体产品:PostgresRedshift

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 面向对象编程进阶

查看课程

练习说明

  • 使用 DataPipeline 类创建一个 items_pipeline,并以查询 SELECT * FROM items;"Redshift" 数据库中提取数据集。
  • 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;")
编辑并运行代码