Bắt đầu ngayBắt đầu miễn phí

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 DatabasePostgresRedshift 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

Xem khóa học

Hướng dẫn bài tập

  • Tạo một items_pipeline bằng lớp DataPipeline, trích xuất một dataset từ cơ sở dữ liệu "Redshift" với truy vấn SELECT * 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;")
Chỉnh sửa và Chạy Mã