Bir veri hattı oluşturma
Factory method'ları kullanmak kodu sadece daha okunur kılmaz, aynı zamanda kullanımı da kolaylaştırır. Bu örnekte, bir veritabanından veri çıkaran bir veri hattı oluşturmayı pratik edeceksin. DataPipeline sınıfı bir factory method tasarım desenini uygular ve burada gösterilmiştir. Ayrıca senin için Database sınıfının iki somut ürünü; Postgres ve Redshift de tanımlandı.
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
Bu egzersiz
Python'da Orta Düzey Nesne Yönelimli Programlama
kursunun bir parçasıdırEgzersiz talimatları
DataPipelinesınıfını kullanarak biritems_pipelineoluştur veSELECT * FROM items;sorgusuyla"Redshift"veritabanından bir veri kümesi çıkar.- Aynı sorguyu kullanarak
items_pipeline'ı bu kez"Postgres"veritabanından veri çekecek şekilde güncelle. - Veriyi
"Redshift"'ten çıkaran biretl_pipelineoluştur.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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;")