Membangun data pipeline
Menggunakan factory method tidak hanya membuat kode lebih mudah dibaca, tetapi juga lebih mudah digunakan. Dalam contoh ini, Anda akan berlatih membuat data pipeline yang mengekstrak data dari basis data. Kelas DataPipeline menerapkan pola desain factory method, dan ditunjukkan di sini. Juga telah didefinisikan untuk Anda dua produk konkret dari kelas Database: Postgres dan 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
Latihan ini adalah bagian dari kursus
Pemrograman Berorientasi Objek Tingkat Menengah di Python
Petunjuk latihan
- Buat
items_pipelinemenggunakan kelasDataPipeline, ekstrak sebuah himpunan data dari basis data"Redshift"dengan kueriSELECT * FROM items;. - Perbarui
items_pipelineuntuk mengambil data dari basis data"Postgres"sebagai gantinya, menggunakan kueri yang sama seperti sebelumnya. - Buat
etl_pipelineyang mengekstrak data dari"Redshift".
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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;")