Xây dựng một data pipeline
Việc dùng factory method không chỉ giúp mã dễ đọc hơn mà còn dễ dùng hơn. Trong ví dụ này, bạn sẽ thực hành tạo một data pipeline để trích xuất dữ liệu từ cơ sở dữ liệu. Lớp DataPipeline triển khai mẫu thiết kế factory method và được hiển thị dưới đây. Đồng thời, hai sản phẩm cụ thể của lớp Database là Postgres và Redshift cũng đã được định nghĩa sẵn cho bạn.
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
Bài tập này là một phần của khóa học
Lập trình Hướng đối tượng Nâng cao với Python
Hướng dẫn bài tập
- Tạo một
items_pipelinebằng lớpDataPipeline, trích xuất một dataset từ cơ sở dữ liệu"Redshift"với truy vấnSELECT * FROM items;. - Cập nhật
items_pipelineđể lấy dữ liệu từ cơ sở dữ liệu"Postgres"thay vì trước đó, dùng cùng một truy vấn. - Tạo một
etl_pipelineđể trích xuất dữ liệu từ"Redshift".
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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;")