การสร้าง data pipeline
การใช้ factory method ไม่เพียงช่วยให้โค้ดอ่านง่ายขึ้น แต่ยังทำให้ใช้งานได้สะดวกขึ้นด้วย ในแบบฝึกหัดนี้ จะได้ฝึกสร้าง data pipeline สำหรับดึงข้อมูลจากฐานข้อมูล คลาส DataPipeline นำรูปแบบ factory method design pattern มาใช้งาน ดังที่แสดงด้านล่าง นอกจากนี้ยังมี concrete product สองตัวของคลาส 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
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Object-Oriented Programming ใน Python ระดับกลาง
คำแนะนำการฝึกหัด
- สร้าง
items_pipelineโดยใช้คลาสDataPipelineแล้วดึงชุดข้อมูลจากฐานข้อมูล"Redshift"ด้วยคิวรีSELECT * FROM items; - อัปเดต
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;")