데이터 파이프라인 구축
Factory method를 사용하면 코드를 더 읽기 쉽게 만들 뿐만 아니라 사용하기도 쉬워집니다. 이 연습에서는 데이터베이스에서 데이터를 추출하는 데이터 파이프라인을 만들어 보겠습니다. DataPipeline 클래스는 factory method 디자인 패턴을 구현하며, 아래에 제시되어 있어요. 또한 Database 클래스의 두 가지 구체 제품인 Postgres와 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
이 연습은 강의의 일부입니다
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;")