開始使用免費開始

建立資料管線

使用 factory methods 不僅讓程式碼更易讀,也更好用。這個練習中,你會實作一個從資料庫擷取資料的資料管線。DataPipeline 類別採用了 factory method 設計模式,已在下方示範。同時也為你定義了 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;")
編輯並執行程式碼