एक डेटा पाइपलाइन बनाना
Factory methods का उपयोग कोड को न सिर्फ पढ़ने में आसान बनाता है, बल्कि इस्तेमाल करना भी सरल कर देता है. इस उदाहरण में, आप एक डेटा पाइपलाइन बनाना अभ्यास करेंगे जो डेटाबेस से डेटा निकालती है. DataPipeline क्लास में factory method design pattern लागू किया गया है, और वही यहाँ दिखाया गया है. साथ ही, Database क्लास के दो concrete products भी आपके लिए परिभाषित हैं: 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
यह अभ्यास पाठ्यक्रम का हिस्सा है
Intermediate Object-Oriented Programming in Python
अभ्यास निर्देश
DataPipelineक्लास का उपयोग करके एकitems_pipelineबनाएँ, और"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;")