始める無料で始める

データパイプラインを構築する

ファクトリメソッドを使うと、コードは読みやすくなるだけでなく、使いやすくもなります。この演習では、データベースからデータを抽出するデータパイプラインの作成を練習します。DataPipeline クラスはファクトリメソッドのデザインパターンを実装しており、以下に示しています。さらに、Database クラスの具体的なプロダクトとして PostgresRedshift の2つも用意されています。

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 を作成し、"Redshift" データベースから SELECT * FROM items; のクエリでデータセットを抽出します。
  • 同じクエリを使い、items_pipeline"Postgres" データベースから取得するように更新します。
  • "Redshift" からデータを抽出する etl_pipeline を作成します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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;")
コードを編集して実行